@elderbyte/ngx-starter 17.11.0 → 18.0.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 (452) hide show
  1. package/esm2022/lib/common/arrays.mjs +1 -1
  2. package/esm2022/lib/common/async/refreshing-entity.mjs +1 -1
  3. package/esm2022/lib/common/csv/csv-serializer.mjs +1 -1
  4. package/esm2022/lib/common/csv/csv-spec.mjs +1 -1
  5. package/esm2022/lib/common/data/data-context/data-context-active-page.mjs +1 -1
  6. package/esm2022/lib/common/data/data-context/data-context-auto-starter.mjs +1 -1
  7. package/esm2022/lib/common/data/data-context/data-context-base.mjs +1 -1
  8. package/esm2022/lib/common/data/data-context/data-context-builder.mjs +1 -1
  9. package/esm2022/lib/common/data/data-context/data-context-continuable-base.mjs +1 -1
  10. package/esm2022/lib/common/data/data-context/data-context-continuable-paged.mjs +1 -1
  11. package/esm2022/lib/common/data/data-context/data-context-continuable-token.mjs +1 -1
  12. package/esm2022/lib/common/data/data-context/data-context-life-cycle-binding.mjs +1 -1
  13. package/esm2022/lib/common/data/data-context/data-context-simple.mjs +1 -1
  14. package/esm2022/lib/common/data/data-context/data-context-source-event-binding.mjs +1 -1
  15. package/esm2022/lib/common/data/data-context/data-context.mjs +1 -1
  16. package/esm2022/lib/common/data/data-context/indexed-entities.mjs +1 -1
  17. package/esm2022/lib/common/data/data-context/mat-table-data-context-binding.mjs +1 -1
  18. package/esm2022/lib/common/data/datasource/data-source-adapter.mjs +1 -1
  19. package/esm2022/lib/common/data/datasource/data-source-processor.mjs +1 -1
  20. package/esm2022/lib/common/data/datasource/data-source.mjs +1 -1
  21. package/esm2022/lib/common/data/datasource/entity-id-util.mjs +1 -1
  22. package/esm2022/lib/common/data/datasource/fetcher/delegate-data-source.mjs +1 -1
  23. package/esm2022/lib/common/data/datasource/local/local-list-data-source.mjs +1 -1
  24. package/esm2022/lib/common/data/datasource/local/local-paged-data-source.mjs +1 -1
  25. package/esm2022/lib/common/data/datasource/rest/rest-client.mjs +1 -1
  26. package/esm2022/lib/common/data/entity-set-patch.mjs +1 -1
  27. package/esm2022/lib/common/data/field-comparator.mjs +1 -1
  28. package/esm2022/lib/common/data/filters/filter-commons.mjs +12 -0
  29. package/esm2022/lib/common/data/filters/filter-context.mjs +1 -1
  30. package/esm2022/lib/common/data/filters/filter-value.mjs +2 -0
  31. package/esm2022/lib/common/data/filters/filter.mjs +1 -1
  32. package/esm2022/lib/common/data/http-params-builder.mjs +1 -1
  33. package/esm2022/lib/common/data/page.mjs +1 -1
  34. package/esm2022/lib/common/data/required-filter-evaluator.mjs +1 -1
  35. package/esm2022/lib/common/data/sort-context.mjs +1 -1
  36. package/esm2022/lib/common/enums/elder-enum-translation.service.mjs +4 -4
  37. package/esm2022/lib/common/format/bytes-format.mjs +1 -1
  38. package/esm2022/lib/common/format/bytes-per-second-format.mjs +1 -1
  39. package/esm2022/lib/common/format/curency-format-util.mjs +1 -1
  40. package/esm2022/lib/common/format/duration-format-util.mjs +1 -1
  41. package/esm2022/lib/common/format/iso-interval-format-util.mjs +1 -1
  42. package/esm2022/lib/common/forms/elder-entity-value-accessor.mjs +1 -1
  43. package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +4 -4
  44. package/esm2022/lib/common/forms/elder-from-field-base.mjs +4 -4
  45. package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +4 -4
  46. package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +4 -4
  47. package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +4 -4
  48. package/esm2022/lib/common/forms/elder-multi-entity-value-accessor.mjs +1 -1
  49. package/esm2022/lib/common/forms/form-field-base.component.mjs +4 -4
  50. package/esm2022/lib/common/forms/multi-model-base.component.mjs +4 -4
  51. package/esm2022/lib/common/forms/template-composite-control.mjs +4 -4
  52. package/esm2022/lib/common/forms/value-accessor-base.mjs +4 -4
  53. package/esm2022/lib/common/http/http-client-builder.service.mjs +4 -4
  54. package/esm2022/lib/common/http/http-client-pristine.mjs +4 -4
  55. package/esm2022/lib/common/http/transfer/data-transfer-base.mjs +1 -1
  56. package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +4 -4
  57. package/esm2022/lib/common/http/transfer/data-transfer-progress-aggregate.mjs +1 -1
  58. package/esm2022/lib/common/http/transfer/http-data-transfer.mjs +1 -1
  59. package/esm2022/lib/common/i18n/entity/localisation-picker.mjs +1 -1
  60. package/esm2022/lib/common/i18n/entity/translated-converter.mjs +1 -1
  61. package/esm2022/lib/common/objects.mjs +1 -1
  62. package/esm2022/lib/common/selection/selection-model.mjs +1 -1
  63. package/esm2022/lib/common/sets.mjs +1 -1
  64. package/esm2022/lib/common/templates/template-slot-manager.mjs +1 -1
  65. package/esm2022/lib/common/time/date-util.mjs +1 -1
  66. package/esm2022/lib/common/time/interval-coerce.mjs +1 -1
  67. package/esm2022/lib/common/time/interval.mjs +1 -1
  68. package/esm2022/lib/common/time/period-duration.mjs +1 -1
  69. package/esm2022/lib/common/time/time-util.mjs +1 -1
  70. package/esm2022/lib/common/url/elder-router.service.mjs +4 -4
  71. package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +5 -5
  72. package/esm2022/lib/common/url/url-query-params.mjs +1 -1
  73. package/esm2022/lib/common/utils/batcher.mjs +1 -1
  74. package/esm2022/lib/common/utils/collection-util.mjs +1 -1
  75. package/esm2022/lib/common/utils/filter-util.mjs +1 -1
  76. package/esm2022/lib/common/utils/focus-util.mjs +1 -1
  77. package/esm2022/lib/common/utils/next-number-util.mjs +1 -1
  78. package/esm2022/lib/common/utils/parse-util.mjs +1 -1
  79. package/esm2022/lib/common/utils/property-path-util.mjs +1 -1
  80. package/esm2022/lib/common/utils/sort-util.mjs +1 -1
  81. package/esm2022/lib/common/utils/url-builder.mjs +1 -1
  82. package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +4 -4
  83. package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +5 -5
  84. package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +4 -4
  85. package/esm2022/lib/components/auditing/elder-audit.module.mjs +5 -5
  86. package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +10 -10
  87. package/esm2022/lib/components/badge/elder-badge.directive.mjs +4 -4
  88. package/esm2022/lib/components/badge/elder-badge.module.mjs +5 -5
  89. package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +4 -4
  90. package/esm2022/lib/components/button-group/elder-button-group.module.mjs +5 -5
  91. package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +4 -4
  92. package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +4 -4
  93. package/esm2022/lib/components/card-organizer/card-organizer-data.mjs +1 -1
  94. package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +5 -5
  95. package/esm2022/lib/components/card-organizer/card-stack.mjs +1 -1
  96. package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +5 -5
  97. package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +4 -4
  98. package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +19 -19
  99. package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +5 -5
  100. package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +4 -4
  101. package/esm2022/lib/components/chips/elder-chips.module.mjs +5 -5
  102. package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +5 -5
  103. package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +4 -4
  104. package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +4 -4
  105. package/esm2022/lib/components/containers/elder-containers.module.mjs +5 -5
  106. package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +4 -4
  107. package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +4 -4
  108. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +4 -4
  109. package/esm2022/lib/components/csv/elder-csv-stream-exporter.mjs +3 -3
  110. package/esm2022/lib/components/csv/elder-csv.module.mjs +5 -5
  111. package/esm2022/lib/components/currency/elder-currency.module.mjs +5 -5
  112. package/esm2022/lib/components/currency/elder-currency.pipe.mjs +4 -4
  113. package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +5 -5
  114. package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +4 -4
  115. package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +4 -4
  116. package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +4 -4
  117. package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +4 -4
  118. package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +4 -4
  119. package/esm2022/lib/components/data-view/base/data-view-options-provider-binding.mjs +1 -1
  120. package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +4 -4
  121. package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +4 -4
  122. package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +5 -5
  123. package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +7 -7
  124. package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +4 -4
  125. package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +4 -4
  126. package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +4 -4
  127. package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +12 -12
  128. package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +5 -5
  129. package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +4 -4
  130. package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +4 -4
  131. package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +4 -4
  132. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +4 -4
  133. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +5 -5
  134. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +4 -4
  135. package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +4 -4
  136. package/esm2022/lib/components/data-view/master-detail/master-detail-activation-event.mjs +1 -1
  137. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +4 -4
  138. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +5 -5
  139. package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +4 -4
  140. package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +4 -4
  141. package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +4 -4
  142. package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +4 -4
  143. package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +4 -4
  144. package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +6 -6
  145. package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +4 -4
  146. package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +4 -4
  147. package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +4 -4
  148. package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +5 -5
  149. package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +4 -4
  150. package/esm2022/lib/components/data-view/table/elder-table.module.mjs +5 -5
  151. package/esm2022/lib/components/data-view/table/model/elder-column-layout.mjs +1 -1
  152. package/esm2022/lib/components/data-view/table/model/elder-table-model-cdk-table-binding.mjs +1 -1
  153. package/esm2022/lib/components/data-view/table/model/elder-table-model-query-group.mjs +1 -1
  154. package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +4 -4
  155. package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +4 -4
  156. package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +5 -5
  157. package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +4 -4
  158. package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +4 -4
  159. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +4 -4
  160. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +4 -4
  161. package/esm2022/lib/components/errors/elder-error.module.mjs +5 -5
  162. package/esm2022/lib/components/errors/error-util.mjs +1 -1
  163. package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +4 -4
  164. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +4 -4
  165. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +5 -5
  166. package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +5 -5
  167. package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +4 -4
  168. package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +4 -4
  169. package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +4 -4
  170. package/esm2022/lib/components/files/elder-file-select.directive.mjs +4 -4
  171. package/esm2022/lib/components/files/elder-file.module.mjs +5 -5
  172. package/esm2022/lib/components/files/file-select/file-select.component.mjs +4 -4
  173. package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +4 -4
  174. package/esm2022/lib/components/files/listing/file-entry.mjs +1 -1
  175. package/esm2022/lib/components/files/listing/file-listing-rx.mjs +1 -1
  176. package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +4 -4
  177. package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +4 -4
  178. package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +4 -4
  179. package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +4 -4
  180. package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +4 -4
  181. package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +4 -4
  182. package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +4 -4
  183. package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +4 -4
  184. package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +5 -5
  185. package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +7 -17
  186. package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +4 -4
  187. package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +4 -4
  188. package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +4 -4
  189. package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +4 -4
  190. package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +4 -4
  191. package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +4 -4
  192. package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +4 -4
  193. package/esm2022/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +4 -4
  194. package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +4 -4
  195. package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +4 -4
  196. package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +4 -4
  197. package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +4 -4
  198. package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +4 -4
  199. package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +4 -4
  200. package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +4 -4
  201. package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +4 -4
  202. package/esm2022/lib/components/forms/elder-forms.module.mjs +5 -5
  203. package/esm2022/lib/components/forms/search/domain/context/search-context.mjs +1 -1
  204. package/esm2022/lib/components/forms/search/domain/context/search-context.service.mjs +4 -4
  205. package/esm2022/lib/components/forms/search/domain/input/input-value.mjs +2 -0
  206. package/esm2022/lib/components/forms/search/domain/input/search-input-state.mjs +14 -15
  207. package/esm2022/lib/components/forms/search/domain/input/search-input.mjs +1 -1
  208. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.directive.mjs +4 -4
  209. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.service.mjs +4 -4
  210. package/esm2022/lib/components/forms/search/domain/url/search-query-params-parser.mjs +1 -1
  211. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +46 -35
  212. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +73 -48
  213. package/esm2022/lib/components/forms/search/elder-search.module.mjs +5 -5
  214. package/esm2022/lib/components/forms/search/filter/default-input-filter-converter.mjs +47 -0
  215. package/esm2022/lib/components/forms/search/filter/input-filter-converter.mjs +2 -0
  216. package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +6 -6
  217. package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +4 -4
  218. package/esm2022/lib/components/global-search/elder-global-search.component.mjs +4 -4
  219. package/esm2022/lib/components/global-search/elder-global-search.module.mjs +5 -5
  220. package/esm2022/lib/components/global-search/elder-global-search.service.mjs +4 -4
  221. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +4 -4
  222. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +5 -5
  223. package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +4 -4
  224. package/esm2022/lib/components/headers/elder-header.module.mjs +5 -5
  225. package/esm2022/lib/components/http-support/elder-http-client.service.mjs +4 -4
  226. package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +5 -5
  227. package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +4 -4
  228. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +4 -4
  229. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +4 -4
  230. package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +4 -4
  231. package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +4 -4
  232. package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +4 -4
  233. package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +4 -4
  234. package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +4 -4
  235. package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +4 -4
  236. package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +4 -4
  237. package/esm2022/lib/components/i18n/language/elder-language.module.mjs +5 -5
  238. package/esm2022/lib/components/i18n/language/elder-language.service.mjs +4 -4
  239. package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +4 -4
  240. package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +7 -7
  241. package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +4 -4
  242. package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +4 -4
  243. package/esm2022/lib/components/iframes/elder-iframe.module.mjs +5 -5
  244. package/esm2022/lib/components/iframes/iframe-close.directive.mjs +4 -4
  245. package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +4 -4
  246. package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +4 -4
  247. package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +4 -4
  248. package/esm2022/lib/components/iframes/iframe.service.mjs +4 -4
  249. package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +4 -4
  250. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +4 -4
  251. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +5 -5
  252. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.mjs +1 -1
  253. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.mjs +231 -0
  254. package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +4 -4
  255. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +7 -4
  256. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +12 -12
  257. package/esm2022/lib/components/input/autocomplete/many/word-position-finder.mjs +1 -1
  258. package/esm2022/lib/components/labels/elder-labels.module.mjs +5 -5
  259. package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +4 -4
  260. package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +4 -4
  261. package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +4 -4
  262. package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +4 -4
  263. package/esm2022/lib/components/measures/elder-measures.module.mjs +9 -9
  264. package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +4 -4
  265. package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +4 -4
  266. package/esm2022/lib/components/measures/elder-unit.service.mjs +6 -6
  267. package/esm2022/lib/components/measures/model/unit-registry.mjs +1 -1
  268. package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +4 -4
  269. package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +4 -4
  270. package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +4 -4
  271. package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +4 -4
  272. package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +4 -4
  273. package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +4 -4
  274. package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +5 -5
  275. package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +5 -5
  276. package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +4 -4
  277. package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +4 -4
  278. package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +4 -4
  279. package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +8 -7
  280. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +5 -5
  281. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +4 -4
  282. package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +4 -4
  283. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +4 -4
  284. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +4 -4
  285. package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +4 -4
  286. package/esm2022/lib/components/overlays/elder-overlay-ref.mjs +4 -4
  287. package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +4 -4
  288. package/esm2022/lib/components/overlays/elder-overlay.component.mjs +4 -4
  289. package/esm2022/lib/components/overlays/elder-overlay.module.mjs +5 -5
  290. package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +4 -4
  291. package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +4 -4
  292. package/esm2022/lib/components/panels/elder-panel.module.mjs +5 -5
  293. package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +4 -4
  294. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +4 -4
  295. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +10 -10
  296. package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +4 -4
  297. package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +5 -5
  298. package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +27 -7
  299. package/esm2022/lib/components/select/auto/elder-auto-select-first.service.mjs +38 -0
  300. package/esm2022/lib/components/select/auto/elder-auto-select-suggest-first.directive.mjs +66 -0
  301. package/esm2022/lib/components/select/auto/elder-select-first-util.mjs +4 -14
  302. package/esm2022/lib/components/select/elder-select-base.mjs +9 -9
  303. package/esm2022/lib/components/select/elder-select-chip.directive.mjs +10 -10
  304. package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +4 -4
  305. package/esm2022/lib/components/select/elder-select-value.directive.mjs +4 -4
  306. package/esm2022/lib/components/select/elder-select.module.mjs +36 -10
  307. package/esm2022/lib/components/select/filter/elder-chip-filter-style-resolver.mjs +74 -0
  308. package/esm2022/lib/components/select/filter/elder-chips-include-exclude.directive.mjs +144 -0
  309. package/esm2022/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.mjs +51 -0
  310. package/esm2022/lib/components/select/filter/include-exclude-model-filter-adapter.mjs +63 -0
  311. package/esm2022/lib/components/select/filter/include-exclude-selection-model.mjs +164 -0
  312. package/esm2022/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.mjs +4 -4
  313. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +4 -4
  314. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/chip-options-provider.mjs +1 -1
  315. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +10 -9
  316. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +16 -7
  317. package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +4 -4
  318. package/esm2022/lib/components/select/multi/elder-mutli-select-all-directive.mjs +4 -4
  319. package/esm2022/lib/components/select/multi/elder-search-include-exclude.directive.mjs +148 -0
  320. package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +4 -4
  321. package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +4 -4
  322. package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +4 -4
  323. package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +4 -4
  324. package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +9 -14
  325. package/esm2022/lib/components/select/single/elder-select-form-field.mjs +4 -4
  326. package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +4 -4
  327. package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +5 -5
  328. package/esm2022/lib/components/shell/drawers/drawer-outlet-binding.mjs +1 -1
  329. package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +4 -4
  330. package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +4 -4
  331. package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +4 -4
  332. package/esm2022/lib/components/shell/elder-shell.module.mjs +5 -5
  333. package/esm2022/lib/components/shell/elder-shell.service.mjs +4 -4
  334. package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +4 -4
  335. package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +13 -13
  336. package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +4 -4
  337. package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +4 -4
  338. package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +4 -4
  339. package/esm2022/lib/components/tabs/elder-tab.module.mjs +5 -5
  340. package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +4 -4
  341. package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +4 -4
  342. package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +4 -4
  343. package/esm2022/lib/components/theme/elder-theme.directive.mjs +4 -4
  344. package/esm2022/lib/components/theme/elder-theme.module.mjs +5 -5
  345. package/esm2022/lib/components/theme/elder-theme.service.mjs +4 -4
  346. package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +4 -4
  347. package/esm2022/lib/components/time/date-formats/locale-date-formats.mjs +1 -1
  348. package/esm2022/lib/components/time/duration/duration-format.mjs +1 -1
  349. package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +4 -4
  350. package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +4 -4
  351. package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +4 -4
  352. package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +4 -4
  353. package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +4 -4
  354. package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +4 -4
  355. package/esm2022/lib/components/time/elder-time.module.mjs +5 -5
  356. package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +4 -4
  357. package/esm2022/lib/components/time/period/period-format.mjs +1 -1
  358. package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +4 -4
  359. package/esm2022/lib/components/toasts/elder-toast.module.mjs +5 -5
  360. package/esm2022/lib/components/toasts/elder-toast.service.mjs +4 -4
  361. package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +5 -5
  362. package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +5 -5
  363. package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +4 -4
  364. package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +4 -4
  365. package/esm2022/lib/components/viewers/elder-viewers.module.mjs +5 -5
  366. package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.mjs +1 -1
  367. package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.service.mjs +4 -4
  368. package/esm2022/lib/features/event-source/standard/elder-event-source.service.mjs +4 -4
  369. package/esm2022/lib/features/event-source/standard/reactive-event-source.mjs +1 -1
  370. package/esm2022/lib/features/kafent/access-token-provider.mjs +4 -4
  371. package/esm2022/lib/features/kafent/kafent-config.mjs +4 -4
  372. package/esm2022/lib/features/kafent/kafent-event-stream.mjs +4 -4
  373. package/esm2022/lib/features/kafent/kafent-event.service.mjs +4 -4
  374. package/esm2022/lib/features/kafent/kafent.module.mjs +5 -5
  375. package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +4 -4
  376. package/esm2022/lib/features/kafent/sse/kafent-topic-sse.mjs +1 -1
  377. package/esm2022/lib/pipes/bytes.pipe.mjs +4 -4
  378. package/esm2022/lib/pipes/elder-pipes.module.mjs +11 -11
  379. package/esm2022/lib/pipes/elder-repeat.pipe.mjs +4 -4
  380. package/esm2022/lib/pipes/elder-round.pipe.mjs +4 -4
  381. package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +4 -4
  382. package/esm2022/lib/pipes/elder-truncate.pipe.mjs +4 -4
  383. package/esm2022/lib/pipes/iso-duration.pipe.mjs +4 -4
  384. package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +4 -4
  385. package/esm2022/lib/pipes/iso-interval.pipe.mjs +4 -4
  386. package/esm2022/lib/pipes/time-ago.pipe.mjs +4 -4
  387. package/esm2022/lib/pipes/time-duration.pipe.mjs +4 -4
  388. package/esm2022/lib/pipes/weight.pipe.mjs +4 -4
  389. package/fesm2022/elderbyte-ngx-starter.mjs +5141 -4279
  390. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  391. package/lib/common/data/filters/filter-commons.d.ts +6 -0
  392. package/lib/common/data/filters/filter-value.d.ts +1 -0
  393. package/lib/components/forms/directives/elder-initial-value.directive.d.ts +1 -9
  394. package/lib/components/forms/search/domain/input/input-value.d.ts +1 -0
  395. package/lib/components/forms/search/domain/input/search-input-state.d.ts +11 -17
  396. package/lib/components/forms/search/domain/input/search-input.d.ts +4 -3
  397. package/lib/components/forms/search/elder-search-context.directive.d.ts +9 -4
  398. package/lib/components/forms/search/elder-search-input.directive.d.ts +28 -19
  399. package/lib/components/forms/search/filter/default-input-filter-converter.d.ts +31 -0
  400. package/lib/components/forms/search/filter/input-filter-converter.d.ts +16 -0
  401. package/lib/components/forms/search/search-box/elder-search-box.component.d.ts +2 -1
  402. package/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.d.ts +3 -3
  403. package/lib/components/input/autocomplete/elder-autocomplete/{elder-autocomplete.component.d.ts → elder-suggestion-panel.component.d.ts} +17 -6
  404. package/lib/components/input/autocomplete/elder-autocomplete-many.directive.d.ts +3 -3
  405. package/lib/components/input/autocomplete/elder-autocomplete.directive.d.ts +3 -3
  406. package/lib/components/input/autocomplete/elder-autocomplete.module.d.ts +3 -3
  407. package/lib/components/navigation/toolbar/elder-toolbar-column.directive.d.ts +2 -3
  408. package/lib/components/select/auto/elder-auto-select-first.directive.d.ts +9 -1
  409. package/lib/components/select/auto/elder-auto-select-first.service.d.ts +23 -0
  410. package/lib/components/select/auto/elder-auto-select-suggest-first.directive.d.ts +32 -0
  411. package/lib/components/select/auto/elder-select-first-util.d.ts +2 -2
  412. package/lib/components/select/elder-select-base.d.ts +1 -1
  413. package/lib/components/select/elder-select.module.d.ts +10 -1
  414. package/lib/components/select/filter/elder-chip-filter-style-resolver.d.ts +19 -0
  415. package/lib/components/select/filter/elder-chips-include-exclude.directive.d.ts +50 -0
  416. package/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.d.ts +27 -0
  417. package/lib/components/select/filter/include-exclude-model-filter-adapter.d.ts +29 -0
  418. package/lib/components/select/filter/include-exclude-selection-model.d.ts +64 -0
  419. package/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.d.ts +1 -2
  420. package/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.d.ts +2 -0
  421. package/lib/components/select/multi/elder-search-include-exclude.directive.d.ts +78 -0
  422. package/lib/components/select/single/elder-select/elder-select.component.d.ts +0 -1
  423. package/package.json +1 -1
  424. package/src/lib/components/button-group/elder-button-group/elder-button-group.component.scss +1 -1
  425. package/src/lib/components/card-organizer/card-stack/elder-card-stack.component.scss +3 -3
  426. package/src/lib/components/cards/elder-card/elder-card.component.scss +2 -2
  427. package/src/lib/components/chips/_elder-chip-theme.scss +6 -6
  428. package/src/lib/components/data-view/grid/elder-grid/elder-grid.component.scss +8 -8
  429. package/src/lib/components/data-view/table/elder-table/elder-table.component.scss +6 -6
  430. package/src/lib/components/errors/exception-detail/elder-exception-detail.component.scss +1 -1
  431. package/src/lib/components/expand-toggle-button/elder-expand-toggle-button.component.scss +1 -1
  432. package/src/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.scss +6 -6
  433. package/src/lib/components/navigation/nav/_elder-nav-theme.scss +11 -11
  434. package/src/lib/components/panels/card-panel/elder-card-panel.component.scss +2 -2
  435. package/src/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.scss +2 -2
  436. package/src/lib/components/panels/flat/_elder-panel-theme.scss +5 -5
  437. package/src/lib/components/select/_elder-select-base.scss +2 -2
  438. package/src/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.scss +95 -0
  439. package/src/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.scss +5 -5
  440. package/src/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.scss +5 -5
  441. package/src/lib/components/select/multi/elder-select-include-exclude-chip/elder-select-include-exclude-chip.component.scss +0 -0
  442. package/src/lib/components/select/single/elder-select/elder-select.component.scss +5 -5
  443. package/src/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.scss +2 -2
  444. package/src/lib/components/time/_elder-time-input.theme.scss +2 -2
  445. package/theming/_elder-mdc-support.scss +13 -13
  446. package/theming/_elder-palettes.scss +1 -1
  447. package/theming/_elder-scrollbar-theme.scss +2 -2
  448. package/theming/_elder-theme.scss +1 -1
  449. package/theming/_elder-toast-theme.scss +3 -3
  450. package/theming/_elder-typography-utils.scss +2 -2
  451. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +0 -186
  452. /package/src/lib/components/input/autocomplete/elder-autocomplete/{elder-autocomplete.component.scss → elder-suggestion-panel.component.scss} +0 -0
@@ -436,4 +436,4 @@ export class Interval {
436
436
  return this.start?.compareTo(other.start);
437
437
  }
438
438
  }
439
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vdGltZS9pbnRlcnZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBa0IsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQVFuRCxNQUFNLE9BQU8sUUFBUTtJQUluQjs7OztnRkFJNEU7SUFFNUUsWUFDa0IsS0FBYyxFQUNkLEdBQVk7UUFEWixVQUFLLEdBQUwsS0FBSyxDQUFTO1FBQ2QsUUFBRyxHQUFILEdBQUcsQ0FBUztRQVZiLFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFXbEUsQ0FBQztJQUVMOzs7O2dGQUk0RTtJQUU1RTs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FDakIsR0FBbUI7UUFFbkIsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU3QixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQ2hGO1FBRUQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFD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QUcsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxTQUFTLENBQUMsS0FBZTtRQUM5QixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0R1cmF0aW9uLCBJbnN0YW50LCBMb2NhbERhdGUsIG5hdGl2ZUpzLCBQZXJpb2QsIFRlbXBvcmFsQW1vdW50LCBab25lSWR9IGZyb20gJ0Bqcy1qb2RhL2NvcmUnO1xuaW1wb3J0IHtUaW1lVXRpbH0gZnJvbSAnLi90aW1lLXV0aWwnO1xuaW1wb3J0IHtQZXJpb2REdXJhdGlvbn0gZnJvbSAnLi9wZXJpb2QtZHVyYXRpb24nO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBJU08tODYwMSBpbnRlcnZhbCBzdHJpbmcuXG4gKiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNUaW1lX2ludGVydmFsc1xuICovXG5leHBvcnQgdHlwZSBJc29JbnRlcnZhbFN0ciA9IHN0cmluZztcblxuZXhwb3J0IGNsYXNzIEludGVydmFsIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHN0YXJ0OiBJbnN0YW50LFxuICAgIHB1YmxpYyByZWFkb25seSBlbmQ6IEluc3RhbnRcbiAgKSB7IH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogU3RhdGljIEJ1aWxkZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogUGFyc2VzIGFuIElTTy04NjAxIGludGVydmFsIHN0cmluZy5cbiAgICogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjVGltZV9pbnRlcnZhbHNcbiAgICogQHBhcmFtIGlzb1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwYXJzZShcbiAgICBpc286IElzb0ludGVydmFsU3RyXG4gICk6IEludGVydmFsIHtcbiAgICBjb25zdCBwYXJ0cyA9IGlzby5zcGxpdCgnLycpO1xuXG4gICAgaWYgKHBhcnRzLmxlbmd0aCAhPT0gMikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgZ2l2ZW4gc3RyaW5nIGlzIG5vdCBhIHZhbGlkIGlzbyBpbnRlcnZhbDogXCInICsgaXNvICsgJ1wiJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnQgPSBwYXJ0c1swXSA/IEluc3RhbnQucGFyc2UocGFydHNbMF0pIDogbnVsbDtcblxuICAgIGNvbnN0IGVuZFN0ciA9IHBhcnRzWzFdO1xuICAgIC8vIFRoZSAnZW5kJyBwYXJ0IGNhbiBlaXRoZXIgYmUgYW4gaW5zdGFudCBvciBhIGR1cmF0aW9uIGluIGlzbyBmb3JtYXRcbiAgICBpZiAoc3RhcnQgJiYgZW5kU3RyICYmIGVuZFN0ci5zdGFydHNXaXRoKCdQJykgfHwgZW5kU3RyLnN0YXJ0c1dpdGgoJy1QJykpIHtcbiAgICAgIGNvbnN0IGR1cmF0aW9uID0gRHVyYXRpb24ucGFyc2UoZW5kU3RyKTtcbiAgICAgIHJldHVybiBJbnRlcnZhbC5vZlN0YXJ0QW5kT2Zmc2V0KFxuICAgICAgICBzdGFydCxcbiAgICAgICAgZHVyYXRpb25cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBJbnRlcnZhbC5vZihcbiAgICAgICAgc3RhcnQsXG4gICAgICAgIGVuZFN0ciA/IEluc3RhbnQucGFyc2UoZW5kU3RyKSA6IG51bGxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyB5ZXN0ZXJkYXkoem9uZUlkOiBab25lSWQpOiBJbnRlcnZhbCB7XG4gICAgcmV0dXJuIEludGVydmFsLm9mRGF5KFxuICAgICAgTG9jYWxEYXRlLm5vdygpLm1pbnVzRGF5cygxKSxcbiAgICAgIHpvbmVJZFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljICB0b21vcnJvdyh6b25lSWQ6IFpvbmVJZCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2ZEYXkoXG4gICAgICBMb2NhbERhdGUubm93KCkucGx1c0RheXMoMSksXG4gICAgICB6b25lSWRcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB0b2RheSh6b25lSWQ6IFpvbmVJZCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2ZEYXkoTG9jYWxEYXRlLm5vdygpLCB6b25lSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBJbnRlcnZhbCBmcm9tIGEgRGF0ZSBieSBzcHJlYWRpbmcgaXQgdG8gdGhlIGJlZ2luIGFuZCBlbmQgb2YgaXRzIGRheS5cbiAgICogQHBhcmFtIGRhdGUgRGF0ZSB0byBzcHJlYWRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2ZEYXlEYXRlKGRhdGU6IERhdGUpOiBJbnRlcnZhbCB7XG4gICAgY29uc3QgbG9jYWxEYXRlID0gTG9jYWxEYXRlLmZyb20obmF0aXZlSnMoZGF0ZSkpO1xuICAgIHJldHVybiBJbnRlcnZhbC5vZkRheShsb2NhbERhdGUsIFpvbmVJZC5zeXN0ZW1EZWZhdWx0KCkpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBvZkRheShkYXk6IExvY2FsRGF0ZSwgem9uZUlkOiBab25lSWQpOiBJbnRlcnZhbCB7XG4gICAgcmV0dXJuIEludGVydmFsLmJldHdlZW5EYXlzKFxuICAgICAgZGF5LFxuICAgICAgZGF5LnBsdXNEYXlzKDEpLFxuICAgICAgem9uZUlkXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYmV0d2VlbkRheXMoXG4gICAgc3RhcnREYXlJbmNsdXNpdmU6IExvY2FsRGF0ZSxcbiAgICBlbmREYXlFeGNsdXNpdmU6IExvY2FsRGF0ZSxcbiAgICB6b25lSWQ6IFpvbmVJZFxuICApIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2YoXG4gICAgICBzdGFydERheUluY2x1c2l2ZS5hdFN0YXJ0T2ZEYXkoem9uZUlkKS50b0luc3RhbnQoKSxcbiAgICAgIGVuZERheUV4Y2x1c2l2ZS5hdFN0YXJ0T2ZEYXkoem9uZUlkKS50b0luc3RhbnQoKVxuICAgICk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaW50ZXJ2YWwgd2l0aCB0aGUgZ2l2ZW4gc3RhcnQgdGltZSBwb2ludFxuICAgKiBhbmQgYSBvZmZzZXQgZnJvbSB0aGUgc3RhcnQuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB5b3Ugc2hvdWxkIHVzZSBQZXJpb2QgZm9yIGRheXMgdG8gYWNjb3VudCBmb3Igem9uZSBzcGVjaWZpY1xuICAgKiB0aGluZ3MgbGlrZSBkYXlsaWdodCBzYXZpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBzdGFydEluY2x1c2l2ZVxuICAgKiBAcGFyYW0gb2Zmc2V0RXhjbHVzaXZlIEEgUGVyaW9kIG9yIER1cmF0aW9uIG9mZnNldC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2ZTdGFydEFuZE9mZnNldChzdGFydEluY2x1c2l2ZTogSW5zdGFudCwgb2Zmc2V0RXhjbHVzaXZlOiBUZW1wb3JhbEFtb3VudCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2YoXG4gICAgICBzdGFydEluY2x1c2l2ZSxcbiAgICAgIHN0YXJ0SW5jbHVzaXZlLnBsdXMob2Zmc2V0RXhjbHVzaXZlKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG9mKFxuICAgIHN0YXJ0SW5jbHVzaXZlOiBJbnN0YW50LFxuICAgIGVuZEV4Y2x1c2l2ZTogSW5zdGFudFxuICApOiBJbnRlcnZhbCB7XG4gICAgcmV0dXJuIG5ldyBJbnRlcnZhbChcbiAgICAgIHN0YXJ0SW5jbHVzaXZlLFxuICAgICAgZW5kRXhjbHVzaXZlXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgb2ZEYXRlKFxuICAgIHN0YXJ0SW5jbHVzaXZlOiBEYXRlIHwgc3RyaW5nLFxuICAgIGVuZEV4Y2x1c2l2ZTogRGF0ZSB8IHN0cmluZ1xuICApOiBJbnRlcnZhbCB7XG4gICAgcmV0dXJuIG5ldyBJbnRlcnZhbChcbiAgICAgIFRpbWVVdGlsLmluc3RhbnQoc3RhcnRJbmNsdXNpdmUpLFxuICAgICAgVGltZVV0aWwuaW5zdGFudChlbmRFeGNsdXNpdmUpXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIHJhbmdlIGlzIGVtcHR5LlxuICAgKiA8cD5cbiAgICogQW4gZW1wdHkgcmFuZ2Ugb2NjdXJzIHdoZW4gdGhlIHN0YXJ0IGRhdGUgZXF1YWxzIHRoZSBpbmNsdXNpdmUgZW5kIGRhdGUuXG4gICAqXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgcmFuZ2UgaXMgZW1wdHlcbiAgICovXG4gIHB1YmxpYyBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0Py5lcXVhbHModGhpcy5lbmQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgc3RhcnQgb2YgdGhlIGludGVydmFsIGlzIHVuYm91bmRlZC5cbiAgICpcbiAgICogQHJldHVybiB0cnVlIGlmIHN0YXJ0IGlzIHVuYm91bmRlZFxuICAgKi9cbiAgcHVibGljIGlzVW5ib3VuZGVkU3RhcnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmVxdWFscyhJbnN0YW50Lk1JTik7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBlbmQgb2YgdGhlIGludGVydmFsIGlzIHVuYm91bmRlZC5cbiAgICpcbiAgICogQHJldHVybiB0cnVlIGlmIGVuZCBpcyB1bmJvdW5kZWRcbiAgICovXG4gIHB1YmxpYyBpc1VuYm91bmRlZEVuZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbmQ/LmVxdWFscyhJbnN0YW50Lk1BWCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgdG9EdXJhdGlvbigpOiBEdXJhdGlvbiB7XG4gICAgaWYoIXRoaXMuc3RhcnQgfHwgIXRoaXMuZW5kKSByZXR1cm4gRHVyYXRpb24uWkVSTztcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gRHVyYXRpb24uYmV0d2Vlbih0aGlzLnN0YXJ0LCB0aGlzLmVuZCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2cuZXJyb3IoJ0NvdWxkIG5vdCBjb252ZXJ0IHRvIER1cmF0aW9uISBFcnJvcjogJyxlICk7XG4gICAgICByZXR1cm4gRHVyYXRpb24uWkVSTztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdG9QZXJpb2REdXJhdGlvbih6b25lOiBab25lSWQpOiBQZXJpb2REdXJhdGlvbiB7XG4gICAgaWYoIXRoaXMuc3RhcnQgfHwgIXRoaXMuZW5kKSByZXR1cm4gUGVyaW9kRHVyYXRpb24uemVybygpO1xuXG4gICAgcmV0dXJuIFBlcmlvZER1cmF0aW9uLmJldHdlZW4oXG4gICAgICB0aGlzLnN0YXJ0Py5hdFpvbmUoem9uZSksXG4gICAgICB0aGlzLmVuZD8uYXRab25lKHpvbmUpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyB0b1N0cmluZygpOiBJc29JbnRlcnZhbFN0ciB7XG4gICAgcmV0dXJuIHRoaXMudG9EdXJhdGlvblN0cmluZygpO1xuICB9XG5cbiAgcHVibGljIHRvSW5zdGFudFN0cmluZygpOiBJc29JbnRlcnZhbFN0ciB7XG4gICAgbGV0IGluc3RhbnRTdHJpbmcgPSAnJztcbiAgICBpZiAodGhpcy5zdGFydCkge1xuICAgICAgaW5zdGFudFN0cmluZyA9IGluc3RhbnRTdHJpbmcgKyB0aGlzLnN0YXJ0LnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIGluc3RhbnRTdHJpbmcgPSBpbnN0YW50U3RyaW5nICsgJy8nO1xuICAgIGlmICh0aGlzLmVuZCkge1xuICAgICAgaW5zdGFudFN0cmluZyA9IGluc3RhbnRTdHJpbmcgKyB0aGlzLmVuZC50b1N0cmluZygpO1xuICAgIH1cbiAgICByZXR1cm4gaW5zdGFudFN0cmluZztcbiAgfVxuXG4gIHB1YmxpYyB0b0R1cmF0aW9uU3RyaW5nKCk6IElzb0ludGVydmFsU3RyIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydD8udG9TdHJpbmcoKSArICcvJyArIHRoaXMudG9EdXJhdGlvbigpLnRvU3RyaW5nKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIE1vZGlmaWNhdGlvbiBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogUmV0dXJucyBhIGNvcHkgb2YgdGhpcyByYW5nZSB3aXRoIHRoZSBzcGVjaWZpZWQgc3RhcnQgaW5zdGFudC5cbiAgICpcbiAgICogQHBhcmFtIHN0YXJ0ICB0aGUgc3RhcnQgaW5zdGFudCBmb3IgdGhlIG5ldyBpbnRlcnZhbCwgbm90IG51bGxcbiAgICogQHJldHVybiBhbiBpbnRlcnZhbCB3aXRoIHRoZSBlbmQgZnJvbSB0aGlzIGludGVydmFsIGFuZCB0aGUgc3BlY2lmaWVkIHN0YXJ0XG4gICAqIEB0aHJvd3MgRGF0ZVRpbWVFeGNlcHRpb24gaWYgdGhlIHJlc3VsdGluZyBpbnRlcnZhbCBoYXMgZW5kIGJlZm9yZSBzdGFydFxuICAgKi9cbiAgcHVibGljIHdpdGhTdGFydChzdGFydDogSW5zdGFudCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2Yoc3RhcnQsIHRoaXMuZW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY29weSBvZiB0aGlzIHJhbmdlIHdpdGggdGhlIHNwZWNpZmllZCBlbmQgaW5zdGFudC5cbiAgICpcbiAgICogQHBhcmFtIGVuZCAgdGhlIGVuZCBpbnN0YW50IGZvciB0aGUgbmV3IGludGVydmFsLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIGFuIGludGVydmFsIHdpdGggdGhlIHN0YXJ0IGZyb20gdGhpcyBpbnRlcnZhbCBhbmQgdGhlIHNwZWNpZmllZCBlbmRcbiAgICogQHRocm93cyBEYXRlVGltZUV4Y2VwdGlvbiBpZiB0aGUgcmVzdWx0aW5nIGludGVydmFsIGhhcyBlbmQgYmVmb3JlIHN0YXJ0XG4gICAqL1xuICBwdWJsaWMgd2l0aEVuZChlbmQ6IEluc3RhbnQpOiBJbnRlcnZhbCB7XG4gICAgcmV0dXJuIEludGVydmFsLm9mKHRoaXMuc3RhcnQsIGVuZCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgaW50ZXJ2YWwgdGhhdCBpcyB0aGUgaW50ZXJzZWN0aW9uIG9mIHRoaXMgaW50ZXJ2YWwgYW5kIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGlzIGZpbmRzIHRoZSBpbnRlcnNlY3Rpb24gb2YgdHdvIGludGVydmFscy5cbiAgICogVGhpcyB0aHJvd3MgYW4gZXhjZXB0aW9uIGlmIHRoZSB0d28gaW50ZXJ2YWxzIGFyZSBub3Qge0BsaW5rcGxhaW4gI2lzQ29ubmVjdGVkKEludGVydmFsKSBjb25uZWN0ZWR9LlxuICAgKlxuICAgKiBAcGFyYW0gb3RoZXIgIHRoZSBvdGhlciBpbnRlcnZhbCB0byBjaGVjayBmb3IsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdGhlIGludGVydmFsIHRoYXQgaXMgdGhlIGludGVyc2VjdGlvbiBvZiB0aGUgdHdvIGludGVydmFsc1xuICAgKiBAdGhyb3dzIERhdGVUaW1lRXhjZXB0aW9uIGlmIHRoZSBpbnRlcnZhbHMgZG8gbm90IGNvbm5lY3RcbiAgICovXG4gIHB1YmxpYyBpbnRlcnNlY3Rpb24ob3RoZXI6IEludGVydmFsKTogSW50ZXJ2YWwge1xuICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkKG90aGVyKSA9PT0gZmFsc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW50ZXJ2YWxzIGRvIG5vdCBjb25uZWN0OiAnICsgdGhpcyArICcgYW5kICcgKyBvdGhlcik7XG4gICAgfVxuICAgIGNvbnN0IGNtcFN0YXJ0ID0gdGhpcy5zdGFydD8uY29tcGFyZVRvKG90aGVyLnN0YXJ0KTtcbiAgICBjb25zdCBjbXBFbmQgPSB0aGlzLmVuZD8uY29tcGFyZVRvKG90aGVyLmVuZCk7XG4gICAgaWYgKGNtcFN0YXJ0ID49IDAgJiYgY21wRW5kIDw9IDApIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0gZWxzZSBpZiAoY21wU3RhcnQgPD0gMCAmJiBjbXBFbmQgPj0gMCkge1xuICAgICAgcmV0dXJuIG90aGVyO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBuZXdTdGFydCA9IChjbXBTdGFydCA+PSAwID8gdGhpcy5zdGFydCA6IG90aGVyLnN0YXJ0KTtcbiAgICAgIGNvbnN0IG5ld0VuZCA9IChjbXBFbmQgPD0gMCA/IHRoaXMuZW5kIDogb3RoZXIuZW5kKTtcbiAgICAgIHJldHVybiBJbnRlcnZhbC5vZihuZXdTdGFydCwgbmV3RW5kKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgaW50ZXJ2YWwgdGhhdCBpcyB0aGUgdW5pb24gb2YgdGhpcyBpbnRlcnZhbCBhbmQgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoaXMgZmluZHMgdGhlIHVuaW9uIG9mIHR3byBpbnRlcnZhbHMuXG4gICAqIFRoaXMgdGhyb3dzIGFuIGV4Y2VwdGlvbiBpZiB0aGUgdHdvIGludGVydmFscyBhcmUgbm90IHtAbGlua3BsYWluICNpc0Nvbm5lY3RlZChJbnRlcnZhbCkgY29ubmVjdGVkfS5cbiAgICpcbiAgICogQHBhcmFtIG90aGVyICB0aGUgb3RoZXIgaW50ZXJ2YWwgdG8gY2hlY2sgZm9yLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRoZSBpbnRlcnZhbCB0aGF0IGlzIHRoZSB1bmlvbiBvZiB0aGUgdHdvIGludGVydmFsc1xuICAgKiBAdGhyb3dzIERhdGVUaW1lRXhjZXB0aW9uIGlmIHRoZSBpbnRlcnZhbHMgZG8gbm90IGNvbm5lY3RcbiAgICovXG4gIHB1YmxpYyB1bmlvbihvdGhlcjogSW50ZXJ2YWwpOiBJbnRlcnZhbCB7XG4gICAgaWYgKHRoaXMuaXNDb25uZWN0ZWQob3RoZXIpID09PSBmYWxzZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcnZhbHMgZG8gbm90IGNvbm5lY3Q6ICcgKyB0aGlzICsgJyBhbmQgJyArIG90aGVyKTtcbiAgICB9XG4gICAgY29uc3QgY21wU3RhcnQgPSB0aGlzLnN0YXJ0Py5jb21wYXJlVG8ob3RoZXIuc3RhcnQpO1xuICAgIGNvbnN0IGNtcEVuZCA9IHRoaXMuZW5kPy5jb21wYXJlVG8ob3RoZXIuZW5kKTtcbiAgICBpZiAoY21wU3RhcnQgPj0gMCAmJiBjbXBFbmQgPD0gMCkge1xuICAgICAgcmV0dXJuIG90aGVyO1xuICAgIH0gZWxzZSBpZiAoY21wU3RhcnQgPD0gMCAmJiBjbXBFbmQgPj0gMCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5ld1N0YXJ0ID0gKGNtcFN0YXJ0ID49IDAgPyBvdGhlci5zdGFydCA6IHRoaXMuc3RhcnQpO1xuICAgICAgY29uc3QgbmV3RW5kID0gKGNtcEVuZCA8PSAwID8gb3RoZXIuZW5kIDogdGhpcy5lbmQpO1xuICAgICAgcmV0dXJuIEludGVydmFsLm9mKG5ld1N0YXJ0LCBuZXdFbmQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBzbWFsbGVzdCBpbnRlcnZhbCB0aGF0IGVuY2xvc2VzIHRoaXMgaW50ZXJ2YWwgYW5kIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGUgcmVzdWx0IG9mIHRoaXMgbWV0aG9kIHdpbGwge0BsaW5rcGxhaW4gI2VuY2xvc2VzKEludGVydmFsKSBlbmNsb3NlfVxuICAgKiB0aGlzIGludGVydmFsIGFuZCB0aGUgc3BlY2lmaWVkIGludGVydmFsLlxuICAgKlxuICAgKiBAcGFyYW0gb3RoZXIgIHRoZSBvdGhlciBpbnRlcnZhbCB0byBjaGVjayBmb3IsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdGhlIGludGVydmFsIHRoYXQgc3BhbnMgdGhlIHR3byBpbnRlcnZhbHNcbiAgICovXG4gIHB1YmxpYyBzcGFuKG90aGVyOiBJbnRlcnZhbCk6IEludGVydmFsIHtcbiAgICBjb25zdCBjbXBTdGFydCA9IHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhvdGhlci5zdGFydCk7XG4gICAgY29uc3QgY21wRW5kID0gdGhpcy5lbmQ/LmNvbXBhcmVUbyhvdGhlci5lbmQpO1xuICAgIGNvbnN0IG5ld1N0YXJ0ID0gKGNtcFN0YXJ0ID49IDAgPyBvdGhlci5zdGFydCA6IHRoaXMuc3RhcnQpO1xuICAgIGNvbnN0IG5ld0VuZCA9IChjbXBFbmQgPD0gMCA/IG90aGVyLmVuZCA6IHRoaXMuZW5kKTtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2YobmV3U3RhcnQsIG5ld0VuZCk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBTaGlmdCB0aGUgd2hvbGUgaW50ZXJ2YWwgYnkgdGhlIGdpdmVuIGRheXMgcGVyaW9kLlxuICAgKiBAcGFyYW0gZGF5c1xuICAgKi9cbiAgcHVibGljIHNoaWZ0RGF5cyhkYXlzOiBudW1iZXIpOiBJbnRlcnZhbCB7XG4gICAgcmV0dXJuIHRoaXMuc2hpZnQoUGVyaW9kLm9mRGF5cyhkYXlzKSk7XG4gIH1cblxuICAvKipcbiAgICogU2hpZnQgdGhlIHdob2xlIGludGVydmFsIGJ5IHRoZSBnaXZlbiB0ZW1wb3JhbCBhbW91bnQuXG4gICAqIE5vdGUgdGhhdCBvbmx5IFBlcmlvZCB3aWxsIGFjY291bnQgZm9yIHpvbmUgc3BlY2lmaWMgdGhpbmdzIHN1Y2ggYXMgZGF5bGlnaHQgc2F2aW5ncy5cbiAgICogVXNlIER1cmF0aW9uIG9ubHkgaWYgeW91IGFyZSBiZWxvdyBkYXlzLlxuICAgKiBAcGFyYW0gb2Zmc2V0XG4gICAqL1xuICBwdWJsaWMgc2hpZnQob2Zmc2V0OiBUZW1wb3JhbEFtb3VudCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2YoXG4gICAgICB0aGlzLnN0YXJ0Py5wbHVzKG9mZnNldCksXG4gICAgICB0aGlzLmVuZD8ucGx1cyhvZmZzZXQpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlU3RhcnQob2Zmc2V0OiBUZW1wb3JhbEFtb3VudCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2YoXG4gICAgICB0aGlzLnN0YXJ0Py5wbHVzKG9mZnNldCksXG4gICAgICB0aGlzLmVuZFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbW92ZUVuZChvZmZzZXQ6IFRlbXBvcmFsQW1vdW50KTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihcbiAgICAgIHRoaXMuc3RhcnQsXG4gICAgICB0aGlzLmVuZD8ucGx1cyhvZmZzZXQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBJbnRlcnZhbCBRdWVyeSBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gVGltZUZyYW1lIG92ZXJsYXBzIHdpdGggdGhpcyBvbmUuXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciBUaW1lRnJhbWUgdG8gY2hlY2sgYWdhaW5zdFxuICAgKiBAcmV0dXJuIFJldHVybnMge0Bjb2RlIHRydWV9IGlmIHRoZSB0d28gY2FuZGlkYXRlcyBvdmVybGFwLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHB1YmxpYyBvdmVybGFwcyhvdGhlcjogSW50ZXJ2YWwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gb3RoZXIuZXF1YWxzKHRoaXMpIHx8ICh0aGlzLnN0YXJ0Py5jb21wYXJlVG8ob3RoZXIuZW5kKSA8IDAgJiYgb3RoZXIuc3RhcnQ/LmNvbXBhcmVUbyh0aGlzLmVuZCkgPCAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaXQgdGhlIGdpdmVuIGxvY2FsRGF0ZSBvdmVybGFwcyB3aXRoIHRoZSBnaXZlbiBUaW1lRnJhbWUuXG4gICAqXG4gICAqIEBwYXJhbSB0aW1lRnJhbWUgVGltZUZyYW1lIHRvIGNoZWNrIGFnYWluc3RcbiAgICogQHBhcmFtIGxvY2FsRGF0ZSBMb2NhbERhdGUgdG8gY2hlY2tcbiAgICovXG4gIHB1YmxpYyBvdmVybGFwc1dpdGhMb2NhbERhdGUoXG4gICAgbG9jYWxEYXRlOiBEYXRlXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXBzKEludGVydmFsLm9mRGF5RGF0ZShsb2NhbERhdGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhpcyBpbnRlcnZhbCBjb250YWlucyB0aGUgc3BlY2lmaWVkIGluc3RhbnQuXG4gICAqIDxwPlxuICAgKiBUaGlzIGNoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGluc3RhbnQgaXMgd2l0aGluIHRoZSBib3VuZHMgb2YgdGhpcyBpbnRlcnZhbC5cbiAgICogSWYgdGhpcyByYW5nZSBoYXMgYW4gdW5ib3VuZGVkIHN0YXJ0IHRoZW4ge0Bjb2RlIGNvbnRhaW5zKEluc3RhbnQjTUlOKX0gcmV0dXJucyB0cnVlLlxuICAgKiBJZiB0aGlzIHJhbmdlIGhhcyBhbiB1bmJvdW5kZWQgZW5kIHRoZW4ge0Bjb2RlIGNvbnRhaW5zKEluc3RhbnQjTUFYKX0gcmV0dXJucyB0cnVlLlxuICAgKiBJZiB0aGlzIHJhbmdlIGlzIGVtcHR5IHRoZW4gdGhpcyBtZXRob2QgYWx3YXlzIHJldHVybnMgZmFsc2UuXG4gICAqXG4gICAqIEBwYXJhbSBpbnN0YW50ICB0aGUgaW5zdGFudCwgbm90IG51bGxcbiAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgaW50ZXJ2YWwgY29udGFpbnMgdGhlIGluc3RhbnRcbiAgICovXG4gIHB1YmxpYyAgY29udGFpbnMoaW5zdGFudDogSW5zdGFudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0Py5jb21wYXJlVG8oaW5zdGFudCkgPD0gMCAmJiAoaW5zdGFudC5jb21wYXJlVG8odGhpcy5lbmQpIDwgMCB8fCB0aGlzLmlzVW5ib3VuZGVkRW5kKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGVuY2xvc2VzIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGlzIGNoZWNrcyBpZiB0aGUgYm91bmRzIG9mIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwgYXJlIHdpdGhpbiB0aGUgYm91bmRzIG9mIHRoaXMgaW50ZXJ2YWwuXG4gICAqIEFuIGVtcHR5IGludGVydmFsIGVuY2xvc2VzIGl0c2VsZi5cbiAgICpcbiAgICogQHBhcmFtIG90aGVyICB0aGUgb3RoZXIgaW50ZXJ2YWwsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGludGVydmFsIGNvbnRhaW5zIHRoZSBvdGhlciBpbnRlcnZhbFxuICAgKi9cbiAgcHVibGljIGVuY2xvc2VzKG90aGVyOiBJbnRlcnZhbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0Py5jb21wYXJlVG8ob3RoZXIuc3RhcnQpIDw9IDAgJiYgb3RoZXIuZW5kPy5jb21wYXJlVG8odGhpcy5lbmQpIDw9IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJ2YWwgYWJ1dHMgKGlzIG5leHQgdG8gb3IgaGFzIGEgY29tbW9uIGJvdW5kYXJ5IHdpdGgpIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGUgcmVzdWx0IGlzIHRydWUgaWYgdGhlIGVuZCBvZiB0aGlzIGludGVydmFsIGlzIHRoZSBzdGFydCBvZiB0aGUgb3RoZXIsIG9yIHZpY2UgdmVyc2EuXG4gICAqIEFuIGVtcHR5IGludGVydmFsIGRvZXMgbm90IGFidXQgaXRzZWxmLlxuICAgKlxuICAgKiBAcGFyYW0gb3RoZXIgIHRoZSBvdGhlciBpbnRlcnZhbCwgbm90IG51bGxcbiAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgaW50ZXJ2YWwgYWJ1dHMgdGhlIG90aGVyIGludGVydmFsXG4gICAqL1xuICBwdWJsaWMgYWJ1dHMob3RoZXI6IEludGVydmFsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW5kPy5lcXVhbHMob3RoZXIuc3RhcnQpICE9PSB0aGlzLnN0YXJ0Py5lcXVhbHMob3RoZXIuZW5kKTsgLy8gIT09IG1lYW5zIFhPUlxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGlzIGNvbm5lY3RlZCB0byB0aGUgc3BlY2lmaWVkIGludGVydmFsLlxuICAgKiA8cD5cbiAgICogVGhlIHJlc3VsdCBpcyB0cnVlIGlmIHRoZSB0d28gaW50ZXJ2YWxzIGhhdmUgYW4gZW5jbG9zZWQgaW50ZXJ2YWwgaW4gY29tbW9uLCBldmVuIGlmIHRoYXQgaW50ZXJ2YWwgaXMgZW1wdHkuXG4gICAqIEFuIGVtcHR5IGludGVydmFsIGlzIGNvbm5lY3RlZCB0byBpdHNlbGYuXG4gICAqIDxwPlxuICAgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8ge0Bjb2RlIChvdmVybGFwcyhvdGhlcikgfHwgYWJ1dHMob3RoZXIpKX0uXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciAgdGhlIG90aGVyIGludGVydmFsLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBpbnRlcnZhbCBpcyBjb25uZWN0ZWQgdG8gdGhlIG90aGVyIGludGVydmFsXG4gICAqL1xuICBwdWJsaWMgaXNDb25uZWN0ZWQob3RoZXI6IEludGVydmFsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXF1YWxzKG90aGVyKSB8fCAodGhpcy5zdGFydD8uY29tcGFyZVRvKG90aGVyLmVuZCkgPD0gMCAmJiBvdGhlci5zdGFydD8uY29tcGFyZVRvKHRoaXMuZW5kKSA8PSAwKTtcbiAgfVxuXG4gIC8vIC0tLVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhpcyBpbnRlcnZhbCBpcyBhZnRlciB0aGUgc3BlY2lmaWVkIGluc3RhbnQuXG4gICAqIDxwPlxuICAgKiBUaGUgcmVzdWx0IGlzIHRydWUgaWYgdGhpcyBpbnN0YW50IHN0YXJ0cyBhZnRlciB0aGUgc3BlY2lmaWVkIGluc3RhbnQuXG4gICAqIEFuIGVtcHR5IGludGVydmFsIGJlaGF2ZXMgYXMgdGhvdWdoIGl0IGlzIGFuIGluc3RhbnQgZm9yIGNvbXBhcmlzb24gcHVycG9zZXMuXG4gICAqXG4gICAqIEBwYXJhbSBpbnN0YW50ICB0aGUgb3RoZXIgaW5zdGFudCB0byBjb21wYXJlIHRvLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHN0YXJ0IG9mIHRoaXMgaW50ZXJ2YWwgaXMgYWZ0ZXIgdGhlIHNwZWNpZmllZCBpbnN0YW50XG4gICAqL1xuICBwdWJsaWMgaXNBZnRlckluc3RhbnQoaW5zdGFudDogSW5zdGFudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0Py5jb21wYXJlVG8oaW5zdGFudCkgPiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGlzIGJlZm9yZSB0aGUgc3BlY2lmaWVkIGluc3RhbnQuXG4gICAqIDxwPlxuICAgKiBUaGUgcmVzdWx0IGlzIHRydWUgaWYgdGhpcyBpbnN0YW50IGVuZHMgYmVmb3JlIHRoZSBzcGVjaWZpZWQgaW5zdGFudC5cbiAgICogU2luY2UgaW50ZXJ2YWxzIGRvIG5vdCBpbmNsdWRlIHRoZWlyIGVuZCBwb2ludHMsIHRoaXMgd2lsbCByZXR1cm4gdHJ1ZSBpZiB0aGVcbiAgICogaW5zdGFudCBlcXVhbHMgdGhlIGVuZCBvZiB0aGUgaW50ZXJ2YWwuXG4gICAqIEFuIGVtcHR5IGludGVydmFsIGJlaGF2ZXMgYXMgdGhvdWdoIGl0IGlzIGFuIGluc3RhbnQgZm9yIGNvbXBhcmlzb24gcHVycG9zZXMuXG4gICAqXG4gICAqIEBwYXJhbSBpbnN0YW50ICB0aGUgb3RoZXIgaW5zdGFudCB0byBjb21wYXJlIHRvLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHN0YXJ0IG9mIHRoaXMgaW50ZXJ2YWwgaXMgYmVmb3JlIHRoZSBzcGVjaWZpZWQgaW5zdGFudFxuICAgKi9cbiAgcHVibGljIGlzQmVmb3JlSW5zdGFudChpbnN0YW50OiBJbnN0YW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW5kPy5jb21wYXJlVG8oaW5zdGFudCkgPD0gMCAmJiB0aGlzLnN0YXJ0Py5jb21wYXJlVG8oaW5zdGFudCkgPCAwO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGlzIGFmdGVyIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGUgcmVzdWx0IGlzIHRydWUgaWYgdGhpcyBpbnN0YW50IHN0YXJ0cyBhZnRlciB0aGUgZW5kIG9mIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIFNpbmNlIGludGVydmFscyBkbyBub3QgaW5jbHVkZSB0aGVpciBlbmQgcG9pbnRzLCB0aGlzIHdpbGwgcmV0dXJuIHRydWUgaWYgdGhlXG4gICAqIGluc3RhbnQgZXF1YWxzIHRoZSBlbmQgb2YgdGhlIGludGVydmFsLlxuICAgKiBBbiBlbXB0eSBpbnRlcnZhbCBiZWhhdmVzIGFzIHRob3VnaCBpdCBpcyBhbiBpbnN0YW50IGZvciBjb21wYXJpc29uIHB1cnBvc2VzLlxuICAgKlxuICAgKiBAcGFyYW0gaW50ZXJ2YWwgIHRoZSBvdGhlciBpbnRlcnZhbCB0byBjb21wYXJlIHRvLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBpbnN0YW50IGlzIGFmdGVyIHRoZSBzcGVjaWZpZWQgaW5zdGFudFxuICAgKi9cbiAgcHVibGljIGlzQWZ0ZXIoaW50ZXJ2YWw6IEludGVydmFsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhpbnRlcnZhbC5lbmQpID49IDAgJiYgIWludGVydmFsLmVxdWFscyh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhpcyBpbnRlcnZhbCBpcyBiZWZvcmUgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoZSByZXN1bHQgaXMgdHJ1ZSBpZiB0aGlzIGluc3RhbnQgZW5kcyBiZWZvcmUgdGhlIHN0YXJ0IG9mIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIFNpbmNlIGludGVydmFscyBkbyBub3QgaW5jbHVkZSB0aGVpciBlbmQgcG9pbnRzLCB0aGlzIHdpbGwgcmV0dXJuIHRydWUgaWYgdGhlXG4gICAqIHR3byBpbnRlcnZhbHMgYWJ1dC5cbiAgICogQW4gZW1wdHkgaW50ZXJ2YWwgYmVoYXZlcyBhcyB0aG91Z2ggaXQgaXMgYW4gaW5zdGFudCBmb3IgY29tcGFyaXNvbiBwdXJwb3Nlcy5cbiAgICpcbiAgICogQHBhcmFtIGludGVydmFsICB0aGUgb3RoZXIgaW50ZXJ2YWwgdG8gY29tcGFyZSB0bywgbm90IG51bGxcbiAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgaW5zdGFudCBpcyBiZWZvcmUgdGhlIHNwZWNpZmllZCBpbnN0YW50XG4gICAqL1xuICBwdWJsaWMgaXNCZWZvcmUoaW50ZXJ2YWw6IEludGVydmFsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW5kPy5jb21wYXJlVG8oaW50ZXJ2YWwuc3RhcnQpIDw9IDAgJiYgIWludGVydmFsLmVxdWFscyh0aGlzKTtcbiAgfVxuXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEVxdWFsaXR5ICYgSGFzaGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGlzIGVxdWFsIHRvIGFub3RoZXIgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBDb21wYXJlcyB0aGlzIHtAY29kZSBJbnRlcnZhbH0gd2l0aCBhbm90aGVyIGVuc3VyaW5nIHRoYXQgdGhlIHR3byBpbnN0YW50cyBhcmUgdGhlIHNhbWUuXG4gICAqIE9ubHkgb2JqZWN0cyBvZiB0eXBlIHtAY29kZSBJbnRlcnZhbH0gYXJlIGNvbXBhcmVkLCBvdGhlciB0eXBlcyByZXR1cm4gZmFsc2UuXG4gICAqXG4gICAqIEBwYXJhbSBvYmogIHRoZSBvYmplY3QgdG8gY2hlY2ssIG51bGwgcmV0dXJucyBmYWxzZVxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBpcyBlcXVhbCB0byB0aGUgb3RoZXIgaW50ZXJ2YWxcbiAgICovXG4gIHB1YmxpYyBlcXVhbHMob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcyA9PT0gb2JqKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKG9iaiBpbnN0YW5jZW9mIEludGVydmFsKSB7XG4gICAgICBjb25zdCBvdGhlciA9IDxJbnRlcnZhbD4gb2JqO1xuICAgICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmVxdWFscyhvdGhlci5zdGFydCkgJiYgdGhpcy5lbmQ/LmVxdWFscyhvdGhlci5lbmQpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdGhpcyBJbnRlcnZhbCB0byB0aGUgZ2l2ZW4gSW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGUgY29tcGFyaXNvbiBpcyBiYXNlZCBvbiB0aGUgdGltZS1saW5lIHBvc2l0aW9uIG9mIHRoZSBsb3dlciBib3VuZCBpbnN0YW50cyAoSW50ZXJ2YWwgc3RhcnQpLlxuICAgKlxuICAgKiBAcGFyYW0gb3RoZXIgdGhlIG90aGVyIEludGVydmFsIHRvIGNvbXBhcmUgdG8sIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdGhlIGNvbXBhcmF0b3IgdmFsdWUsIG5lZ2F0aXZlIGlmIGxlc3MsIHBvc2l0aXZlIGlmIGdyZWF0ZXJcbiAgICogQHRocm93cyBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiBvdGhlciBpcyBudWxsXG4gICAqL1xuICBwdWJsaWMgY29tcGFyZVRvKG90aGVyOiBJbnRlcnZhbCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhvdGhlci5zdGFydCk7XG4gIH1cblxuXG59XG4iXX0=
439
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vdGltZS9pbnRlcnZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBa0IsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQVFuRCxNQUFNLE9BQU8sUUFBUTtJQUluQjs7OztnRkFJNEU7SUFFNUUsWUFDa0IsS0FBYyxFQUNkLEdBQVk7UUFEWixVQUFLLEdBQUwsS0FBSyxDQUFTO1FBQ2QsUUFBRyxHQUFILEdBQUcsQ0FBUztRQVZiLFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFXbEUsQ0FBQztJQUVMOzs7O2dGQUk0RTtJQUU1RTs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FDakIsR0FBbUI7UUFFbkIsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU3QixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDakYsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFL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LEdBQUcsWUFBWSxRQUFRLEVBQUUsQ0FBQztZQUM1QixNQUFNLEtBQUssR0FBYyxHQUFHLENBQUM7WUFDN0IsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLFNBQVMsQ0FBQyxLQUFlO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RHVyYXRpb24sIEluc3RhbnQsIExvY2FsRGF0ZSwgbmF0aXZlSnMsIFBlcmlvZCwgVGVtcG9yYWxBbW91bnQsIFpvbmVJZH0gZnJvbSAnQGpzLWpvZGEvY29yZSc7XG5pbXBvcnQge1RpbWVVdGlsfSBmcm9tICcuL3RpbWUtdXRpbCc7XG5pbXBvcnQge1BlcmlvZER1cmF0aW9ufSBmcm9tICcuL3BlcmlvZC1kdXJhdGlvbic7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIElTTy04NjAxIGludGVydmFsIHN0cmluZy5cbiAqIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxI1RpbWVfaW50ZXJ2YWxzXG4gKi9cbmV4cG9ydCB0eXBlIElzb0ludGVydmFsU3RyID0gc3RyaW5nO1xuXG5leHBvcnQgY2xhc3MgSW50ZXJ2YWwge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhcnQ6IEluc3RhbnQsXG4gICAgcHVibGljIHJlYWRvbmx5IGVuZDogSW5zdGFudFxuICApIHsgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBTdGF0aWMgQnVpbGRlcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBQYXJzZXMgYW4gSVNPLTg2MDEgaW50ZXJ2YWwgc3RyaW5nLlxuICAgKiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fODYwMSNUaW1lX2ludGVydmFsc1xuICAgKiBAcGFyYW0gaXNvXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBhcnNlKFxuICAgIGlzbzogSXNvSW50ZXJ2YWxTdHJcbiAgKTogSW50ZXJ2YWwge1xuICAgIGNvbnN0IHBhcnRzID0gaXNvLnNwbGl0KCcvJyk7XG5cbiAgICBpZiAocGFydHMubGVuZ3RoICE9PSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBnaXZlbiBzdHJpbmcgaXMgbm90IGEgdmFsaWQgaXNvIGludGVydmFsOiBcIicgKyBpc28gKyAnXCInKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydCA9IHBhcnRzWzBdID8gSW5zdGFudC5wYXJzZShwYXJ0c1swXSkgOiBudWxsO1xuXG4gICAgY29uc3QgZW5kU3RyID0gcGFydHNbMV07XG4gICAgLy8gVGhlICdlbmQnIHBhcnQgY2FuIGVpdGhlciBiZSBhbiBpbnN0YW50IG9yIGEgZHVyYXRpb24gaW4gaXNvIGZvcm1hdFxuICAgIGlmIChzdGFydCAmJiBlbmRTdHIgJiYgZW5kU3RyLnN0YXJ0c1dpdGgoJ1AnKSB8fCBlbmRTdHIuc3RhcnRzV2l0aCgnLVAnKSkge1xuICAgICAgY29uc3QgZHVyYXRpb24gPSBEdXJhdGlvbi5wYXJzZShlbmRTdHIpO1xuICAgICAgcmV0dXJuIEludGVydmFsLm9mU3RhcnRBbmRPZmZzZXQoXG4gICAgICAgIHN0YXJ0LFxuICAgICAgICBkdXJhdGlvblxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEludGVydmFsLm9mKFxuICAgICAgICBzdGFydCxcbiAgICAgICAgZW5kU3RyID8gSW5zdGFudC5wYXJzZShlbmRTdHIpIDogbnVsbFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHllc3RlcmRheSh6b25lSWQ6IFpvbmVJZCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2ZEYXkoXG4gICAgICBMb2NhbERhdGUubm93KCkubWludXNEYXlzKDEpLFxuICAgICAgem9uZUlkXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgIHRvbW9ycm93KHpvbmVJZDogWm9uZUlkKTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZkRheShcbiAgICAgIExvY2FsRGF0ZS5ub3coKS5wbHVzRGF5cygxKSxcbiAgICAgIHpvbmVJZFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHRvZGF5KHpvbmVJZDogWm9uZUlkKTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZkRheShMb2NhbERhdGUubm93KCksIHpvbmVJZCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIEludGVydmFsIGZyb20gYSBEYXRlIGJ5IHNwcmVhZGluZyBpdCB0byB0aGUgYmVnaW4gYW5kIGVuZCBvZiBpdHMgZGF5LlxuICAgKiBAcGFyYW0gZGF0ZSBEYXRlIHRvIHNwcmVhZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZkRheURhdGUoZGF0ZTogRGF0ZSk6IEludGVydmFsIHtcbiAgICBjb25zdCBsb2NhbERhdGUgPSBMb2NhbERhdGUuZnJvbShuYXRpdmVKcyhkYXRlKSk7XG4gICAgcmV0dXJuIEludGVydmFsLm9mRGF5KGxvY2FsRGF0ZSwgWm9uZUlkLnN5c3RlbURlZmF1bHQoKSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG9mRGF5KGRheTogTG9jYWxEYXRlLCB6b25lSWQ6IFpvbmVJZCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwuYmV0d2VlbkRheXMoXG4gICAgICBkYXksXG4gICAgICBkYXkucGx1c0RheXMoMSksXG4gICAgICB6b25lSWRcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBiZXR3ZWVuRGF5cyhcbiAgICBzdGFydERheUluY2x1c2l2ZTogTG9jYWxEYXRlLFxuICAgIGVuZERheUV4Y2x1c2l2ZTogTG9jYWxEYXRlLFxuICAgIHpvbmVJZDogWm9uZUlkXG4gICkge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihcbiAgICAgIHN0YXJ0RGF5SW5jbHVzaXZlLmF0U3RhcnRPZkRheSh6b25lSWQpLnRvSW5zdGFudCgpLFxuICAgICAgZW5kRGF5RXhjbHVzaXZlLmF0U3RhcnRPZkRheSh6b25lSWQpLnRvSW5zdGFudCgpXG4gICAgKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBpbnRlcnZhbCB3aXRoIHRoZSBnaXZlbiBzdGFydCB0aW1lIHBvaW50XG4gICAqIGFuZCBhIG9mZnNldCBmcm9tIHRoZSBzdGFydC5cbiAgICpcbiAgICogTm90ZSB0aGF0IHlvdSBzaG91bGQgdXNlIFBlcmlvZCBmb3IgZGF5cyB0byBhY2NvdW50IGZvciB6b25lIHNwZWNpZmljXG4gICAqIHRoaW5ncyBsaWtlIGRheWxpZ2h0IHNhdmluZy5cbiAgICpcbiAgICogQHBhcmFtIHN0YXJ0SW5jbHVzaXZlXG4gICAqIEBwYXJhbSBvZmZzZXRFeGNsdXNpdmUgQSBQZXJpb2Qgb3IgRHVyYXRpb24gb2Zmc2V0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZlN0YXJ0QW5kT2Zmc2V0KHN0YXJ0SW5jbHVzaXZlOiBJbnN0YW50LCBvZmZzZXRFeGNsdXNpdmU6IFRlbXBvcmFsQW1vdW50KTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihcbiAgICAgIHN0YXJ0SW5jbHVzaXZlLFxuICAgICAgc3RhcnRJbmNsdXNpdmUucGx1cyhvZmZzZXRFeGNsdXNpdmUpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgb2YoXG4gICAgc3RhcnRJbmNsdXNpdmU6IEluc3RhbnQsXG4gICAgZW5kRXhjbHVzaXZlOiBJbnN0YW50XG4gICk6IEludGVydmFsIHtcbiAgICByZXR1cm4gbmV3IEludGVydmFsKFxuICAgICAgc3RhcnRJbmNsdXNpdmUsXG4gICAgICBlbmRFeGNsdXNpdmVcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBvZkRhdGUoXG4gICAgc3RhcnRJbmNsdXNpdmU6IERhdGUgfCBzdHJpbmcsXG4gICAgZW5kRXhjbHVzaXZlOiBEYXRlIHwgc3RyaW5nXG4gICk6IEludGVydmFsIHtcbiAgICByZXR1cm4gbmV3IEludGVydmFsKFxuICAgICAgVGltZVV0aWwuaW5zdGFudChzdGFydEluY2x1c2l2ZSksXG4gICAgICBUaW1lVXRpbC5pbnN0YW50KGVuZEV4Y2x1c2l2ZSlcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgcmFuZ2UgaXMgZW1wdHkuXG4gICAqIDxwPlxuICAgKiBBbiBlbXB0eSByYW5nZSBvY2N1cnMgd2hlbiB0aGUgc3RhcnQgZGF0ZSBlcXVhbHMgdGhlIGluY2x1c2l2ZSBlbmQgZGF0ZS5cbiAgICpcbiAgICogQHJldHVybiB0cnVlIGlmIHRoZSByYW5nZSBpcyBlbXB0eVxuICAgKi9cbiAgcHVibGljIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmVxdWFscyh0aGlzLmVuZCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBzdGFydCBvZiB0aGUgaW50ZXJ2YWwgaXMgdW5ib3VuZGVkLlxuICAgKlxuICAgKiBAcmV0dXJuIHRydWUgaWYgc3RhcnQgaXMgdW5ib3VuZGVkXG4gICAqL1xuICBwdWJsaWMgaXNVbmJvdW5kZWRTdGFydCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydD8uZXF1YWxzKEluc3RhbnQuTUlOKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGVuZCBvZiB0aGUgaW50ZXJ2YWwgaXMgdW5ib3VuZGVkLlxuICAgKlxuICAgKiBAcmV0dXJuIHRydWUgaWYgZW5kIGlzIHVuYm91bmRlZFxuICAgKi9cbiAgcHVibGljIGlzVW5ib3VuZGVkRW5kKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVuZD8uZXF1YWxzKEluc3RhbnQuTUFYKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyB0b0R1cmF0aW9uKCk6IER1cmF0aW9uIHtcbiAgICBpZighdGhpcy5zdGFydCB8fCAhdGhpcy5lbmQpIHJldHVybiBEdXJhdGlvbi5aRVJPO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBEdXJhdGlvbi5iZXR3ZWVuKHRoaXMuc3RhcnQsIHRoaXMuZW5kKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZy5lcnJvcignQ291bGQgbm90IGNvbnZlcnQgdG8gRHVyYXRpb24hIEVycm9yOiAnLGUgKTtcbiAgICAgIHJldHVybiBEdXJhdGlvbi5aRVJPO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB0b1BlcmlvZER1cmF0aW9uKHpvbmU6IFpvbmVJZCk6IFBlcmlvZER1cmF0aW9uIHtcbiAgICBpZighdGhpcy5zdGFydCB8fCAhdGhpcy5lbmQpIHJldHVybiBQZXJpb2REdXJhdGlvbi56ZXJvKCk7XG5cbiAgICByZXR1cm4gUGVyaW9kRHVyYXRpb24uYmV0d2VlbihcbiAgICAgIHRoaXMuc3RhcnQ/LmF0Wm9uZSh6b25lKSxcbiAgICAgIHRoaXMuZW5kPy5hdFpvbmUoem9uZSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHRvU3RyaW5nKCk6IElzb0ludGVydmFsU3RyIHtcbiAgICByZXR1cm4gdGhpcy50b0R1cmF0aW9uU3RyaW5nKCk7XG4gIH1cblxuICBwdWJsaWMgdG9JbnN0YW50U3RyaW5nKCk6IElzb0ludGVydmFsU3RyIHtcbiAgICBsZXQgaW5zdGFudFN0cmluZyA9ICcnO1xuICAgIGlmICh0aGlzLnN0YXJ0KSB7XG4gICAgICBpbnN0YW50U3RyaW5nID0gaW5zdGFudFN0cmluZyArIHRoaXMuc3RhcnQudG9TdHJpbmcoKTtcbiAgICB9XG4gICAgaW5zdGFudFN0cmluZyA9IGluc3RhbnRTdHJpbmcgKyAnLyc7XG4gICAgaWYgKHRoaXMuZW5kKSB7XG4gICAgICBpbnN0YW50U3RyaW5nID0gaW5zdGFudFN0cmluZyArIHRoaXMuZW5kLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW50U3RyaW5nO1xuICB9XG5cbiAgcHVibGljIHRvRHVyYXRpb25TdHJpbmcoKTogSXNvSW50ZXJ2YWxTdHIge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0Py50b1N0cmluZygpICsgJy8nICsgdGhpcy50b0R1cmF0aW9uKCkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgTW9kaWZpY2F0aW9uIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY29weSBvZiB0aGlzIHJhbmdlIHdpdGggdGhlIHNwZWNpZmllZCBzdGFydCBpbnN0YW50LlxuICAgKlxuICAgKiBAcGFyYW0gc3RhcnQgIHRoZSBzdGFydCBpbnN0YW50IGZvciB0aGUgbmV3IGludGVydmFsLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIGFuIGludGVydmFsIHdpdGggdGhlIGVuZCBmcm9tIHRoaXMgaW50ZXJ2YWwgYW5kIHRoZSBzcGVjaWZpZWQgc3RhcnRcbiAgICogQHRocm93cyBEYXRlVGltZUV4Y2VwdGlvbiBpZiB0aGUgcmVzdWx0aW5nIGludGVydmFsIGhhcyBlbmQgYmVmb3JlIHN0YXJ0XG4gICAqL1xuICBwdWJsaWMgd2l0aFN0YXJ0KHN0YXJ0OiBJbnN0YW50KTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihzdGFydCwgdGhpcy5lbmQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjb3B5IG9mIHRoaXMgcmFuZ2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGVuZCBpbnN0YW50LlxuICAgKlxuICAgKiBAcGFyYW0gZW5kICB0aGUgZW5kIGluc3RhbnQgZm9yIHRoZSBuZXcgaW50ZXJ2YWwsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gYW4gaW50ZXJ2YWwgd2l0aCB0aGUgc3RhcnQgZnJvbSB0aGlzIGludGVydmFsIGFuZCB0aGUgc3BlY2lmaWVkIGVuZFxuICAgKiBAdGhyb3dzIERhdGVUaW1lRXhjZXB0aW9uIGlmIHRoZSByZXN1bHRpbmcgaW50ZXJ2YWwgaGFzIGVuZCBiZWZvcmUgc3RhcnRcbiAgICovXG4gIHB1YmxpYyB3aXRoRW5kKGVuZDogSW5zdGFudCk6IEludGVydmFsIHtcbiAgICByZXR1cm4gSW50ZXJ2YWwub2YodGhpcy5zdGFydCwgZW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBpbnRlcnZhbCB0aGF0IGlzIHRoZSBpbnRlcnNlY3Rpb24gb2YgdGhpcyBpbnRlcnZhbCBhbmQgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoaXMgZmluZHMgdGhlIGludGVyc2VjdGlvbiBvZiB0d28gaW50ZXJ2YWxzLlxuICAgKiBUaGlzIHRocm93cyBhbiBleGNlcHRpb24gaWYgdGhlIHR3byBpbnRlcnZhbHMgYXJlIG5vdCB7QGxpbmtwbGFpbiAjaXNDb25uZWN0ZWQoSW50ZXJ2YWwpIGNvbm5lY3RlZH0uXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciAgdGhlIG90aGVyIGludGVydmFsIHRvIGNoZWNrIGZvciwgbm90IG51bGxcbiAgICogQHJldHVybiB0aGUgaW50ZXJ2YWwgdGhhdCBpcyB0aGUgaW50ZXJzZWN0aW9uIG9mIHRoZSB0d28gaW50ZXJ2YWxzXG4gICAqIEB0aHJvd3MgRGF0ZVRpbWVFeGNlcHRpb24gaWYgdGhlIGludGVydmFscyBkbyBub3QgY29ubmVjdFxuICAgKi9cbiAgcHVibGljIGludGVyc2VjdGlvbihvdGhlcjogSW50ZXJ2YWwpOiBJbnRlcnZhbCB7XG4gICAgaWYgKHRoaXMuaXNDb25uZWN0ZWQob3RoZXIpID09PSBmYWxzZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcnZhbHMgZG8gbm90IGNvbm5lY3Q6ICcgKyB0aGlzICsgJyBhbmQgJyArIG90aGVyKTtcbiAgICB9XG4gICAgY29uc3QgY21wU3RhcnQgPSB0aGlzLnN0YXJ0Py5jb21wYXJlVG8ob3RoZXIuc3RhcnQpO1xuICAgIGNvbnN0IGNtcEVuZCA9IHRoaXMuZW5kPy5jb21wYXJlVG8ob3RoZXIuZW5kKTtcbiAgICBpZiAoY21wU3RhcnQgPj0gMCAmJiBjbXBFbmQgPD0gMCkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIGlmIChjbXBTdGFydCA8PSAwICYmIGNtcEVuZCA+PSAwKSB7XG4gICAgICByZXR1cm4gb3RoZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5ld1N0YXJ0ID0gKGNtcFN0YXJ0ID49IDAgPyB0aGlzLnN0YXJ0IDogb3RoZXIuc3RhcnQpO1xuICAgICAgY29uc3QgbmV3RW5kID0gKGNtcEVuZCA8PSAwID8gdGhpcy5lbmQgOiBvdGhlci5lbmQpO1xuICAgICAgcmV0dXJuIEludGVydmFsLm9mKG5ld1N0YXJ0LCBuZXdFbmQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBpbnRlcnZhbCB0aGF0IGlzIHRoZSB1bmlvbiBvZiB0aGlzIGludGVydmFsIGFuZCB0aGUgc3BlY2lmaWVkIGludGVydmFsLlxuICAgKiA8cD5cbiAgICogVGhpcyBmaW5kcyB0aGUgdW5pb24gb2YgdHdvIGludGVydmFscy5cbiAgICogVGhpcyB0aHJvd3MgYW4gZXhjZXB0aW9uIGlmIHRoZSB0d28gaW50ZXJ2YWxzIGFyZSBub3Qge0BsaW5rcGxhaW4gI2lzQ29ubmVjdGVkKEludGVydmFsKSBjb25uZWN0ZWR9LlxuICAgKlxuICAgKiBAcGFyYW0gb3RoZXIgIHRoZSBvdGhlciBpbnRlcnZhbCB0byBjaGVjayBmb3IsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdGhlIGludGVydmFsIHRoYXQgaXMgdGhlIHVuaW9uIG9mIHRoZSB0d28gaW50ZXJ2YWxzXG4gICAqIEB0aHJvd3MgRGF0ZVRpbWVFeGNlcHRpb24gaWYgdGhlIGludGVydmFscyBkbyBub3QgY29ubmVjdFxuICAgKi9cbiAgcHVibGljIHVuaW9uKG90aGVyOiBJbnRlcnZhbCk6IEludGVydmFsIHtcbiAgICBpZiAodGhpcy5pc0Nvbm5lY3RlZChvdGhlcikgPT09IGZhbHNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludGVydmFscyBkbyBub3QgY29ubmVjdDogJyArIHRoaXMgKyAnIGFuZCAnICsgb3RoZXIpO1xuICAgIH1cbiAgICBjb25zdCBjbXBTdGFydCA9IHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhvdGhlci5zdGFydCk7XG4gICAgY29uc3QgY21wRW5kID0gdGhpcy5lbmQ/LmNvbXBhcmVUbyhvdGhlci5lbmQpO1xuICAgIGlmIChjbXBTdGFydCA+PSAwICYmIGNtcEVuZCA8PSAwKSB7XG4gICAgICByZXR1cm4gb3RoZXI7XG4gICAgfSBlbHNlIGlmIChjbXBTdGFydCA8PSAwICYmIGNtcEVuZCA+PSAwKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbmV3U3RhcnQgPSAoY21wU3RhcnQgPj0gMCA/IG90aGVyLnN0YXJ0IDogdGhpcy5zdGFydCk7XG4gICAgICBjb25zdCBuZXdFbmQgPSAoY21wRW5kIDw9IDAgPyBvdGhlci5lbmQgOiB0aGlzLmVuZCk7XG4gICAgICByZXR1cm4gSW50ZXJ2YWwub2YobmV3U3RhcnQsIG5ld0VuZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIHNtYWxsZXN0IGludGVydmFsIHRoYXQgZW5jbG9zZXMgdGhpcyBpbnRlcnZhbCBhbmQgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoZSByZXN1bHQgb2YgdGhpcyBtZXRob2Qgd2lsbCB7QGxpbmtwbGFpbiAjZW5jbG9zZXMoSW50ZXJ2YWwpIGVuY2xvc2V9XG4gICAqIHRoaXMgaW50ZXJ2YWwgYW5kIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciAgdGhlIG90aGVyIGludGVydmFsIHRvIGNoZWNrIGZvciwgbm90IG51bGxcbiAgICogQHJldHVybiB0aGUgaW50ZXJ2YWwgdGhhdCBzcGFucyB0aGUgdHdvIGludGVydmFsc1xuICAgKi9cbiAgcHVibGljIHNwYW4ob3RoZXI6IEludGVydmFsKTogSW50ZXJ2YWwge1xuICAgIGNvbnN0IGNtcFN0YXJ0ID0gdGhpcy5zdGFydD8uY29tcGFyZVRvKG90aGVyLnN0YXJ0KTtcbiAgICBjb25zdCBjbXBFbmQgPSB0aGlzLmVuZD8uY29tcGFyZVRvKG90aGVyLmVuZCk7XG4gICAgY29uc3QgbmV3U3RhcnQgPSAoY21wU3RhcnQgPj0gMCA/IG90aGVyLnN0YXJ0IDogdGhpcy5zdGFydCk7XG4gICAgY29uc3QgbmV3RW5kID0gKGNtcEVuZCA8PSAwID8gb3RoZXIuZW5kIDogdGhpcy5lbmQpO1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihuZXdTdGFydCwgbmV3RW5kKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFNoaWZ0IHRoZSB3aG9sZSBpbnRlcnZhbCBieSB0aGUgZ2l2ZW4gZGF5cyBwZXJpb2QuXG4gICAqIEBwYXJhbSBkYXlzXG4gICAqL1xuICBwdWJsaWMgc2hpZnREYXlzKGRheXM6IG51bWJlcik6IEludGVydmFsIHtcbiAgICByZXR1cm4gdGhpcy5zaGlmdChQZXJpb2Qub2ZEYXlzKGRheXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaGlmdCB0aGUgd2hvbGUgaW50ZXJ2YWwgYnkgdGhlIGdpdmVuIHRlbXBvcmFsIGFtb3VudC5cbiAgICogTm90ZSB0aGF0IG9ubHkgUGVyaW9kIHdpbGwgYWNjb3VudCBmb3Igem9uZSBzcGVjaWZpYyB0aGluZ3Mgc3VjaCBhcyBkYXlsaWdodCBzYXZpbmdzLlxuICAgKiBVc2UgRHVyYXRpb24gb25seSBpZiB5b3UgYXJlIGJlbG93IGRheXMuXG4gICAqIEBwYXJhbSBvZmZzZXRcbiAgICovXG4gIHB1YmxpYyBzaGlmdChvZmZzZXQ6IFRlbXBvcmFsQW1vdW50KTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihcbiAgICAgIHRoaXMuc3RhcnQ/LnBsdXMob2Zmc2V0KSxcbiAgICAgIHRoaXMuZW5kPy5wbHVzKG9mZnNldClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG1vdmVTdGFydChvZmZzZXQ6IFRlbXBvcmFsQW1vdW50KTogSW50ZXJ2YWwge1xuICAgIHJldHVybiBJbnRlcnZhbC5vZihcbiAgICAgIHRoaXMuc3RhcnQ/LnBsdXMob2Zmc2V0KSxcbiAgICAgIHRoaXMuZW5kXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlRW5kKG9mZnNldDogVGVtcG9yYWxBbW91bnQpOiBJbnRlcnZhbCB7XG4gICAgcmV0dXJuIEludGVydmFsLm9mKFxuICAgICAgdGhpcy5zdGFydCxcbiAgICAgIHRoaXMuZW5kPy5wbHVzKG9mZnNldClcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEludGVydmFsIFF1ZXJ5IEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBUaW1lRnJhbWUgb3ZlcmxhcHMgd2l0aCB0aGlzIG9uZS5cbiAgICpcbiAgICogQHBhcmFtIG90aGVyIFRpbWVGcmFtZSB0byBjaGVjayBhZ2FpbnN0XG4gICAqIEByZXR1cm4gUmV0dXJucyB7QGNvZGUgdHJ1ZX0gaWYgdGhlIHR3byBjYW5kaWRhdGVzIG92ZXJsYXAsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcHVibGljIG92ZXJsYXBzKG90aGVyOiBJbnRlcnZhbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvdGhlci5lcXVhbHModGhpcykgfHwgKHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhvdGhlci5lbmQpIDwgMCAmJiBvdGhlci5zdGFydD8uY29tcGFyZVRvKHRoaXMuZW5kKSA8IDApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpdCB0aGUgZ2l2ZW4gbG9jYWxEYXRlIG92ZXJsYXBzIHdpdGggdGhlIGdpdmVuIFRpbWVGcmFtZS5cbiAgICpcbiAgICogQHBhcmFtIHRpbWVGcmFtZSBUaW1lRnJhbWUgdG8gY2hlY2sgYWdhaW5zdFxuICAgKiBAcGFyYW0gbG9jYWxEYXRlIExvY2FsRGF0ZSB0byBjaGVja1xuICAgKi9cbiAgcHVibGljIG92ZXJsYXBzV2l0aExvY2FsRGF0ZShcbiAgICBsb2NhbERhdGU6IERhdGVcbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3ZlcmxhcHMoSW50ZXJ2YWwub2ZEYXlEYXRlKGxvY2FsRGF0ZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGNvbnRhaW5zIHRoZSBzcGVjaWZpZWQgaW5zdGFudC5cbiAgICogPHA+XG4gICAqIFRoaXMgY2hlY2tzIGlmIHRoZSBzcGVjaWZpZWQgaW5zdGFudCBpcyB3aXRoaW4gdGhlIGJvdW5kcyBvZiB0aGlzIGludGVydmFsLlxuICAgKiBJZiB0aGlzIHJhbmdlIGhhcyBhbiB1bmJvdW5kZWQgc3RhcnQgdGhlbiB7QGNvZGUgY29udGFpbnMoSW5zdGFudCNNSU4pfSByZXR1cm5zIHRydWUuXG4gICAqIElmIHRoaXMgcmFuZ2UgaGFzIGFuIHVuYm91bmRlZCBlbmQgdGhlbiB7QGNvZGUgY29udGFpbnMoSW5zdGFudCNNQVgpfSByZXR1cm5zIHRydWUuXG4gICAqIElmIHRoaXMgcmFuZ2UgaXMgZW1wdHkgdGhlbiB0aGlzIG1ldGhvZCBhbHdheXMgcmV0dXJucyBmYWxzZS5cbiAgICpcbiAgICogQHBhcmFtIGluc3RhbnQgIHRoZSBpbnN0YW50LCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBpbnRlcnZhbCBjb250YWlucyB0aGUgaW5zdGFudFxuICAgKi9cbiAgcHVibGljICBjb250YWlucyhpbnN0YW50OiBJbnN0YW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhpbnN0YW50KSA8PSAwICYmIChpbnN0YW50LmNvbXBhcmVUbyh0aGlzLmVuZCkgPCAwIHx8IHRoaXMuaXNVbmJvdW5kZWRFbmQoKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJ2YWwgZW5jbG9zZXMgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoaXMgY2hlY2tzIGlmIHRoZSBib3VuZHMgb2YgdGhlIHNwZWNpZmllZCBpbnRlcnZhbCBhcmUgd2l0aGluIHRoZSBib3VuZHMgb2YgdGhpcyBpbnRlcnZhbC5cbiAgICogQW4gZW1wdHkgaW50ZXJ2YWwgZW5jbG9zZXMgaXRzZWxmLlxuICAgKlxuICAgKiBAcGFyYW0gb3RoZXIgIHRoZSBvdGhlciBpbnRlcnZhbCwgbm90IG51bGxcbiAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgaW50ZXJ2YWwgY29udGFpbnMgdGhlIG90aGVyIGludGVydmFsXG4gICAqL1xuICBwdWJsaWMgZW5jbG9zZXMob3RoZXI6IEludGVydmFsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhvdGhlci5zdGFydCkgPD0gMCAmJiBvdGhlci5lbmQ/LmNvbXBhcmVUbyh0aGlzLmVuZCkgPD0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhpcyBpbnRlcnZhbCBhYnV0cyAoaXMgbmV4dCB0byBvciBoYXMgYSBjb21tb24gYm91bmRhcnkgd2l0aCkgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoZSByZXN1bHQgaXMgdHJ1ZSBpZiB0aGUgZW5kIG9mIHRoaXMgaW50ZXJ2YWwgaXMgdGhlIHN0YXJ0IG9mIHRoZSBvdGhlciwgb3IgdmljZSB2ZXJzYS5cbiAgICogQW4gZW1wdHkgaW50ZXJ2YWwgZG9lcyBub3QgYWJ1dCBpdHNlbGYuXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciAgdGhlIG90aGVyIGludGVydmFsLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBpbnRlcnZhbCBhYnV0cyB0aGUgb3RoZXIgaW50ZXJ2YWxcbiAgICovXG4gIHB1YmxpYyBhYnV0cyhvdGhlcjogSW50ZXJ2YWwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbmQ/LmVxdWFscyhvdGhlci5zdGFydCkgIT09IHRoaXMuc3RhcnQ/LmVxdWFscyhvdGhlci5lbmQpOyAvLyAhPT0gbWVhbnMgWE9SXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJ2YWwgaXMgY29ubmVjdGVkIHRvIHRoZSBzcGVjaWZpZWQgaW50ZXJ2YWwuXG4gICAqIDxwPlxuICAgKiBUaGUgcmVzdWx0IGlzIHRydWUgaWYgdGhlIHR3byBpbnRlcnZhbHMgaGF2ZSBhbiBlbmNsb3NlZCBpbnRlcnZhbCBpbiBjb21tb24sIGV2ZW4gaWYgdGhhdCBpbnRlcnZhbCBpcyBlbXB0eS5cbiAgICogQW4gZW1wdHkgaW50ZXJ2YWwgaXMgY29ubmVjdGVkIHRvIGl0c2VsZi5cbiAgICogPHA+XG4gICAqIFRoaXMgaXMgZXF1aXZhbGVudCB0byB7QGNvZGUgKG92ZXJsYXBzKG90aGVyKSB8fCBhYnV0cyhvdGhlcikpfS5cbiAgICpcbiAgICogQHBhcmFtIG90aGVyICB0aGUgb3RoZXIgaW50ZXJ2YWwsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGludGVydmFsIGlzIGNvbm5lY3RlZCB0byB0aGUgb3RoZXIgaW50ZXJ2YWxcbiAgICovXG4gIHB1YmxpYyBpc0Nvbm5lY3RlZChvdGhlcjogSW50ZXJ2YWwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lcXVhbHMob3RoZXIpIHx8ICh0aGlzLnN0YXJ0Py5jb21wYXJlVG8ob3RoZXIuZW5kKSA8PSAwICYmIG90aGVyLnN0YXJ0Py5jb21wYXJlVG8odGhpcy5lbmQpIDw9IDApO1xuICB9XG5cbiAgLy8gLS0tXG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGlzIGFmdGVyIHRoZSBzcGVjaWZpZWQgaW5zdGFudC5cbiAgICogPHA+XG4gICAqIFRoZSByZXN1bHQgaXMgdHJ1ZSBpZiB0aGlzIGluc3RhbnQgc3RhcnRzIGFmdGVyIHRoZSBzcGVjaWZpZWQgaW5zdGFudC5cbiAgICogQW4gZW1wdHkgaW50ZXJ2YWwgYmVoYXZlcyBhcyB0aG91Z2ggaXQgaXMgYW4gaW5zdGFudCBmb3IgY29tcGFyaXNvbiBwdXJwb3Nlcy5cbiAgICpcbiAgICogQHBhcmFtIGluc3RhbnQgIHRoZSBvdGhlciBpbnN0YW50IHRvIGNvbXBhcmUgdG8sIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgc3RhcnQgb2YgdGhpcyBpbnRlcnZhbCBpcyBhZnRlciB0aGUgc3BlY2lmaWVkIGluc3RhbnRcbiAgICovXG4gIHB1YmxpYyBpc0FmdGVySW5zdGFudChpbnN0YW50OiBJbnN0YW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhpbnN0YW50KSA+IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJ2YWwgaXMgYmVmb3JlIHRoZSBzcGVjaWZpZWQgaW5zdGFudC5cbiAgICogPHA+XG4gICAqIFRoZSByZXN1bHQgaXMgdHJ1ZSBpZiB0aGlzIGluc3RhbnQgZW5kcyBiZWZvcmUgdGhlIHNwZWNpZmllZCBpbnN0YW50LlxuICAgKiBTaW5jZSBpbnRlcnZhbHMgZG8gbm90IGluY2x1ZGUgdGhlaXIgZW5kIHBvaW50cywgdGhpcyB3aWxsIHJldHVybiB0cnVlIGlmIHRoZVxuICAgKiBpbnN0YW50IGVxdWFscyB0aGUgZW5kIG9mIHRoZSBpbnRlcnZhbC5cbiAgICogQW4gZW1wdHkgaW50ZXJ2YWwgYmVoYXZlcyBhcyB0aG91Z2ggaXQgaXMgYW4gaW5zdGFudCBmb3IgY29tcGFyaXNvbiBwdXJwb3Nlcy5cbiAgICpcbiAgICogQHBhcmFtIGluc3RhbnQgIHRoZSBvdGhlciBpbnN0YW50IHRvIGNvbXBhcmUgdG8sIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgc3RhcnQgb2YgdGhpcyBpbnRlcnZhbCBpcyBiZWZvcmUgdGhlIHNwZWNpZmllZCBpbnN0YW50XG4gICAqL1xuICBwdWJsaWMgaXNCZWZvcmVJbnN0YW50KGluc3RhbnQ6IEluc3RhbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbmQ/LmNvbXBhcmVUbyhpbnN0YW50KSA8PSAwICYmIHRoaXMuc3RhcnQ/LmNvbXBhcmVUbyhpbnN0YW50KSA8IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJ2YWwgaXMgYWZ0ZXIgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoZSByZXN1bHQgaXMgdHJ1ZSBpZiB0aGlzIGluc3RhbnQgc3RhcnRzIGFmdGVyIHRoZSBlbmQgb2YgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogU2luY2UgaW50ZXJ2YWxzIGRvIG5vdCBpbmNsdWRlIHRoZWlyIGVuZCBwb2ludHMsIHRoaXMgd2lsbCByZXR1cm4gdHJ1ZSBpZiB0aGVcbiAgICogaW5zdGFudCBlcXVhbHMgdGhlIGVuZCBvZiB0aGUgaW50ZXJ2YWwuXG4gICAqIEFuIGVtcHR5IGludGVydmFsIGJlaGF2ZXMgYXMgdGhvdWdoIGl0IGlzIGFuIGluc3RhbnQgZm9yIGNvbXBhcmlzb24gcHVycG9zZXMuXG4gICAqXG4gICAqIEBwYXJhbSBpbnRlcnZhbCAgdGhlIG90aGVyIGludGVydmFsIHRvIGNvbXBhcmUgdG8sIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGluc3RhbnQgaXMgYWZ0ZXIgdGhlIHNwZWNpZmllZCBpbnN0YW50XG4gICAqL1xuICBwdWJsaWMgaXNBZnRlcihpbnRlcnZhbDogSW50ZXJ2YWwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydD8uY29tcGFyZVRvKGludGVydmFsLmVuZCkgPj0gMCAmJiAhaW50ZXJ2YWwuZXF1YWxzKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGlzIGludGVydmFsIGlzIGJlZm9yZSB0aGUgc3BlY2lmaWVkIGludGVydmFsLlxuICAgKiA8cD5cbiAgICogVGhlIHJlc3VsdCBpcyB0cnVlIGlmIHRoaXMgaW5zdGFudCBlbmRzIGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhlIHNwZWNpZmllZCBpbnRlcnZhbC5cbiAgICogU2luY2UgaW50ZXJ2YWxzIGRvIG5vdCBpbmNsdWRlIHRoZWlyIGVuZCBwb2ludHMsIHRoaXMgd2lsbCByZXR1cm4gdHJ1ZSBpZiB0aGVcbiAgICogdHdvIGludGVydmFscyBhYnV0LlxuICAgKiBBbiBlbXB0eSBpbnRlcnZhbCBiZWhhdmVzIGFzIHRob3VnaCBpdCBpcyBhbiBpbnN0YW50IGZvciBjb21wYXJpc29uIHB1cnBvc2VzLlxuICAgKlxuICAgKiBAcGFyYW0gaW50ZXJ2YWwgIHRoZSBvdGhlciBpbnRlcnZhbCB0byBjb21wYXJlIHRvLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBpbnN0YW50IGlzIGJlZm9yZSB0aGUgc3BlY2lmaWVkIGluc3RhbnRcbiAgICovXG4gIHB1YmxpYyBpc0JlZm9yZShpbnRlcnZhbDogSW50ZXJ2YWwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbmQ/LmNvbXBhcmVUbyhpbnRlcnZhbC5zdGFydCkgPD0gMCAmJiAhaW50ZXJ2YWwuZXF1YWxzKHRoaXMpO1xuICB9XG5cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRXF1YWxpdHkgJiBIYXNoY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaW50ZXJ2YWwgaXMgZXF1YWwgdG8gYW5vdGhlciBpbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIENvbXBhcmVzIHRoaXMge0Bjb2RlIEludGVydmFsfSB3aXRoIGFub3RoZXIgZW5zdXJpbmcgdGhhdCB0aGUgdHdvIGluc3RhbnRzIGFyZSB0aGUgc2FtZS5cbiAgICogT25seSBvYmplY3RzIG9mIHR5cGUge0Bjb2RlIEludGVydmFsfSBhcmUgY29tcGFyZWQsIG90aGVyIHR5cGVzIHJldHVybiBmYWxzZS5cbiAgICpcbiAgICogQHBhcmFtIG9iaiAgdGhlIG9iamVjdCB0byBjaGVjaywgbnVsbCByZXR1cm5zIGZhbHNlXG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGlzIGVxdWFsIHRvIHRoZSBvdGhlciBpbnRlcnZhbFxuICAgKi9cbiAgcHVibGljIGVxdWFscyhvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzID09PSBvYmopIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAob2JqIGluc3RhbmNlb2YgSW50ZXJ2YWwpIHtcbiAgICAgIGNvbnN0IG90aGVyID0gPEludGVydmFsPiBvYmo7XG4gICAgICByZXR1cm4gdGhpcy5zdGFydD8uZXF1YWxzKG90aGVyLnN0YXJ0KSAmJiB0aGlzLmVuZD8uZXF1YWxzKG90aGVyLmVuZCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXJlcyB0aGlzIEludGVydmFsIHRvIHRoZSBnaXZlbiBJbnRlcnZhbC5cbiAgICogPHA+XG4gICAqIFRoZSBjb21wYXJpc29uIGlzIGJhc2VkIG9uIHRoZSB0aW1lLWxpbmUgcG9zaXRpb24gb2YgdGhlIGxvd2VyIGJvdW5kIGluc3RhbnRzIChJbnRlcnZhbCBzdGFydCkuXG4gICAqXG4gICAqIEBwYXJhbSBvdGhlciB0aGUgb3RoZXIgSW50ZXJ2YWwgdG8gY29tcGFyZSB0bywgbm90IG51bGxcbiAgICogQHJldHVybiB0aGUgY29tcGFyYXRvciB2YWx1ZSwgbmVnYXRpdmUgaWYgbGVzcywgcG9zaXRpdmUgaWYgZ3JlYXRlclxuICAgKiBAdGhyb3dzIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIG90aGVyIGlzIG51bGxcbiAgICovXG4gIHB1YmxpYyBjb21wYXJlVG8ob3RoZXI6IEludGVydmFsKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydD8uY29tcGFyZVRvKG90aGVyLnN0YXJ0KTtcbiAgfVxuXG5cbn1cbiJdfQ==
@@ -130,4 +130,4 @@ export class PeriodDuration {
130
130
  return this.of(Period.ZERO, Duration.ZERO);
131
131
  }
132
132
  }
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyaW9kLWR1cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL3RpbWUvcGVyaW9kLWR1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBWSxlQUFlLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFckYsTUFBTSxPQUFPLGNBQWM7SUFXekI7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ0UsTUFBYyxFQUNkLFFBQWtCO1FBRWxCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTBDRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBWTtRQUM5Qix3Q0FBd0M7UUFDeEMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDekIsS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUI7YUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEMsS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsTUFBTSxHQUFHLEdBQUcsQ0FBQztTQUNkO1FBQ0QseURBQXlEO1FBQ3pELElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxQixP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QztJQUVNLE1BQU0sQ0FBQyxJQUFJO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0R1cmF0aW9uLCBMb2NhbFRpbWUsIFBlcmlvZCwgVGVtcG9yYWwsIFRlbXBvcmFsUXVlcmllc30gZnJvbSAnQGpzLWpvZGEvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBQZXJpb2REdXJhdGlvbiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHJlYWRvbmx5IHBlcmlvZDogUGVyaW9kO1xuICBwdWJsaWMgcmVhZG9ubHkgZHVyYXRpb246IER1cmF0aW9uO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgcGVyaW9kOiBQZXJpb2QsXG4gICAgZHVyYXRpb246IER1cmF0aW9uXG4gICkge1xuICAgIHRoaXMucGVyaW9kID0gcGVyaW9kO1xuICAgIHRoaXMuZHVyYXRpb24gPSBkdXJhdGlvbjtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBTdGF0aWMgQnVpbGRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBPYnRhaW5zIGFuIGluc3RhbmNlIGZyb20gYSB0ZXh0IHN0cmluZyBzdWNoIGFzIHtAY29kZSBQblluTW5EVG5Ibk1uU30uXG4gICAqIDxwPlxuICAgKiBUaGlzIHdpbGwgcGFyc2UgdGhlIHN0cmluZyBwcm9kdWNlZCBieSB7QGNvZGUgdG9TdHJpbmcoKX0gd2hpY2ggaXNcbiAgICogYmFzZWQgb24gdGhlIElTTy04NjAxIHBlcmlvZCBmb3JtYXRzIHtAY29kZSBQblluTW5EVG5Ibk1uU30gYW5kIHtAY29kZSBQbld9LlxuICAgKiA8cD5cbiAgICogVGhlIHN0cmluZyBzdGFydHMgd2l0aCBhbiBvcHRpb25hbCBzaWduLCBkZW5vdGVkIGJ5IHRoZSBBU0NJSSBuZWdhdGl2ZVxuICAgKiBvciBwb3NpdGl2ZSBzeW1ib2wuIElmIG5lZ2F0aXZlLCB0aGUgd2hvbGUgYW1vdW50IGlzIG5lZ2F0ZWQuXG4gICAqIFRoZSBBU0NJSSBsZXR0ZXIgXCJQXCIgaXMgbmV4dCBpbiB1cHBlciBvciBsb3dlciBjYXNlLlxuICAgKiBUaGVyZSBhcmUgdGhlbiBhIG51bWJlciBvZiBzZWN0aW9ucywgZWFjaCBjb25zaXN0aW5nIG9mIGEgbnVtYmVyIGFuZCBhIHN1ZmZpeC5cbiAgICogQXQgbGVhc3Qgb25lIG9mIHRoZSBzZWN0aW9ucyBtdXN0IGJlIHByZXNlbnQuXG4gICAqIFRoZSBzZWN0aW9ucyBoYXZlIHN1ZmZpeGVzIGluIEFTQ0lJIG9mIFwiWVwiIGZvciB5ZWFycywgXCJNXCIgZm9yIG1vbnRocyxcbiAgICogXCJXXCIgZm9yIHdlZWtzLCBcIkRcIiBmb3IgZGF5cywgXCJIXCIgZm9yIGhvdXJzLCBcIk1cIiBmb3IgbWludXRlcywgXCJTXCIgZm9yIHNlY29uZHMsXG4gICAqIGFjY2VwdGVkIGluIHVwcGVyIG9yIGxvd2VyIGNhc2UuIE5vdGUgdGhhdCB0aGUgQVNDSUkgbGV0dGVyIFwiVFwiIHNlcGFyYXRlc1xuICAgKiB0aGUgZGF0ZSBhbmQgdGltZSBwYXJ0cyBhbmQgbXVzdCBiZSBwcmVzZW50IGlmIGFueSB0aW1lIHBhcnQgaXMgcHJlc2VudC5cbiAgICogVGhlIHN1ZmZpeGVzIG11c3Qgb2NjdXIgaW4gb3JkZXIuXG4gICAqIFRoZSBudW1iZXIgcGFydCBvZiBlYWNoIHNlY3Rpb24gbXVzdCBjb25zaXN0IG9mIEFTQ0lJIGRpZ2l0cy5cbiAgICogVGhlIG51bWJlciBtYXkgYmUgcHJlZml4ZWQgYnkgdGhlIEFTQ0lJIG5lZ2F0aXZlIG9yIHBvc2l0aXZlIHN5bWJvbC5cbiAgICogVGhlIG51bWJlciBtdXN0IHBhcnNlIHRvIGFuIHtAY29kZSBpbnR9LlxuICAgKiBBbnkgd2Vlay1iYXNlZCBpbnB1dCBpcyBtdWx0aXBsaWVkIGJ5IDcgYW5kIHRyZWF0ZWQgYXMgYSBudW1iZXIgb2YgZGF5cy5cbiAgICogPHA+XG4gICAqIFRoZSBsZWFkaW5nIHBsdXMvbWludXMgc2lnbiwgYW5kIG5lZ2F0aXZlIHZhbHVlcyBmb3Igd2Vla3MgYW5kIGRheXMgYXJlXG4gICAqIG5vdCBwYXJ0IG9mIHRoZSBJU08tODYwMSBzdGFuZGFyZC5cbiAgICogPHA+XG4gICAqIE5vdGUgdGhhdCB0aGUgZGF0ZSBzdHlsZSBmb3JtYXQge0Bjb2RlIFBZWVlZLU1NLUREVEhIOk1NOlNTfSBpcyBub3Qgc3VwcG9ydGVkLlxuICAgKiA8cD5cbiAgICogRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgYXJlIHZhbGlkIGlucHV0czpcbiAgICogPHByZT5cbiAgICogICBcIlAyWVwiICAgICAgICAgICAgIC0tIFBlcmlvZER1cmF0aW9uLm9mKFBlcmlvZC5vZlllYXJzKDIpKVxuICAgKiAgIFwiUDNNXCIgICAgICAgICAgICAgLS0gUGVyaW9kRHVyYXRpb24ub2YoUGVyaW9kLm9mTW9udGhzKDMpKVxuICAgKiAgIFwiUDRXXCIgICAgICAgICAgICAgLS0gUGVyaW9kRHVyYXRpb24ub2YoUGVyaW9kLm9mV2Vla3MoNCkpXG4gICAqICAgXCJQNURcIiAgICAgICAgICAgICAtLSBQZXJpb2REdXJhdGlvbi5vZihQZXJpb2Qub2ZEYXlzKDUpKVxuICAgKiAgIFwiUFQ2SFwiICAgICAgICAgICAgLS0gUGVyaW9kRHVyYXRpb24ub2YoRHVyYXRpb24ub2ZIb3Vycyg2KSlcbiAgICogICBcIlAxWTJNM0RcIiAgICAgICAgIC0tIFBlcmlvZER1cmF0aW9uLm9mKFBlcmlvZC5vZigxLCAyLCAzKSlcbiAgICogICBcIlAxWTJNM1c0RFQ4SFwiICAgIC0tIFBlcmlvZER1cmF0aW9uLm9mKFBlcmlvZC5vZigxLCAyLCAyNSksIER1cmF0aW9uLm9mSG91cnMoOCkpXG4gICAqICAgXCJQLTFZMk1cIiAgICAgICAgICAtLSBQZXJpb2REdXJhdGlvbi5vZihQZXJpb2Qub2YoLTEsIDIsIDApKVxuICAgKiAgIFwiLVAxWTJNXCIgICAgICAgICAgLS0gUGVyaW9kRHVyYXRpb24ub2YoUGVyaW9kLm9mKC0xLCAtMiwgMCkpXG4gICAqIDwvcHJlPlxuICAgKlxuICAgKiBAcGFyYW0gdGV4dCAgdGhlIHRleHQgdG8gcGFyc2UsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdGhlIHBhcnNlZCBwZXJpb2QsIG5vdCBudWxsXG4gICAqIEB0aHJvd3MgRGF0ZVRpbWVQYXJzZUV4Y2VwdGlvbiBpZiB0aGUgdGV4dCBjYW5ub3QgYmUgcGFyc2VkIHRvIGEgcGVyaW9kXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBhcnNlKHRleHQ6IHN0cmluZyk6IFBlcmlvZER1cmF0aW9uIHtcbiAgICAvLyBPYmplY3RzLnJlcXVpcmVOb25OdWxsKHRleHQsIFwidGV4dFwiKTtcbiAgICBsZXQgdXBwZXIgPSB0ZXh0LnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKTtcbiAgICBsZXQgbmVnYXRlID0gJyc7XG4gICAgaWYgKHVwcGVyLnN0YXJ0c1dpdGgoJysnKSkge1xuICAgICAgdXBwZXIgPSB1cHBlci5zdWJzdHJpbmcoMSk7XG4gICAgfSBlbHNlIGlmICh1cHBlci5zdGFydHNXaXRoKCctJykpIHtcbiAgICAgIHVwcGVyID0gdXBwZXIuc3Vic3RyaW5nKDEpO1xuICAgICAgbmVnYXRlID0gJy0nO1xuICAgIH1cbiAgICAvLyBkdXJhdGlvbiBvbmx5LCBwYXJzZSBvcmlnaW5hbCB0ZXh0IHNvIGl0IGRvZXMgbmVnYXRpb25cbiAgICBpZiAodXBwZXIuc3RhcnRzV2l0aCgnUFQnKSkge1xuICAgICAgcmV0dXJuIFBlcmlvZER1cmF0aW9uLm9mRHVyYXRpb24oRHVyYXRpb24ucGFyc2UodGV4dCkpO1xuICAgIH1cbiAgICAvLyBwZXJpb2Qgb25seSwgcGFyc2Ugb3JpZ2luYWwgdGV4dCBzbyBpdCBkb2VzIG5lZ2F0aW9uXG4gICAgY29uc3QgdHBvcyA9IHVwcGVyLmluZGV4T2YoJ1QnKTtcbiAgICBpZiAodHBvcyA8IDApIHtcbiAgICAgIHJldHVybiBQZXJpb2REdXJhdGlvbi5vZlBlcmlvZChQZXJpb2QucGFyc2UodGV4dCkpO1xuICAgIH1cbiAgICAvLyBwZXJpb2QgYW5kIGR1cmF0aW9uXG4gICAgY29uc3QgcGVyaW9kID0gUGVyaW9kLnBhcnNlKG5lZ2F0ZSArIHVwcGVyLnN1YnN0cmluZygwLCB0cG9zKSk7XG4gICAgY29uc3QgZHVyYXRpb24gPSBEdXJhdGlvbi5wYXJzZShuZWdhdGUgKyAnUCcgKyB1cHBlci5zdWJzdHJpbmcodHBvcykpO1xuICAgIHJldHVybiBQZXJpb2REdXJhdGlvbi5vZihwZXJpb2QsIGR1cmF0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRhaW5zIGFuIGluc3RhbmNlIGNvbnNpc3Rpbmcgb2YgdGhlIGFtb3VudCBvZiB0aW1lIGJldHdlZW4gdHdvIHRlbXBvcmFscy5cbiAgICogPHA+XG4gICAqIFRoZSBzdGFydCBpcyBpbmNsdWRlZCwgYnV0IHRoZSBlbmQgaXMgbm90LlxuICAgKiBUaGUgcmVzdWx0IG9mIHRoaXMgbWV0aG9kIGNhbiBiZSBuZWdhdGl2ZSBpZiB0aGUgZW5kIGlzIGJlZm9yZSB0aGUgc3RhcnQuXG4gICAqIDxwPlxuICAgKiBUaGUgY2FsY3VsYXRpb24gZXhhbWluZXMgdGhlIHRlbXBvcmFscyBhbmQgZXh0cmFjdHMge0BsaW5rIExvY2FsRGF0ZX0gYW5kIHtAbGluayBMb2NhbFRpbWV9LlxuICAgKiBJZiB0aGUgdGltZSBpcyBtaXNzaW5nLCBpdCB3aWxsIGJlIGRlZmF1bHRlZCB0byBtaWRuaWdodC5cbiAgICogSWYgb25lIGRhdGUgaXMgbWlzc2luZywgaXQgd2lsbCBiZSBkZWZhdWx0ZWQgdG8gdGhlIG90aGVyIGRhdGUuXG4gICAqIEl0IHRoZW4gZmluZHMgdGhlIGFtb3VudCBvZiB0aW1lIGJldHdlZW4gdGhlIHR3byBkYXRlcyBhbmQgYmV0d2VlbiB0aGUgdHdvIHRpbWVzLlxuICAgKlxuICAgKiBAcGFyYW0gc3RhcnRJbmNsdXNpdmUgIHRoZSBzdGFydCwgaW5jbHVzaXZlLCBub3QgbnVsbFxuICAgKiBAcGFyYW0gZW5kRXhjbHVzaXZlICB0aGUgZW5kLCBleGNsdXNpdmUsIG5vdCBudWxsXG4gICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGJldHdlZW4gdGhpcyBkYXRlIGFuZCB0aGUgZW5kIGRhdGUsIG5vdCBudWxsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGJldHdlZW4oc3RhcnRJbmNsdXNpdmU6IFRlbXBvcmFsLCBlbmRFeGNsdXNpdmU6IFRlbXBvcmFsKTogUGVyaW9kRHVyYXRpb24ge1xuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHN0YXJ0SW5jbHVzaXZlLnF1ZXJ5KFRlbXBvcmFsUXVlcmllcy5sb2NhbERhdGUoKSk7XG4gICAgY29uc3QgZW5kRGF0ZSA9IGVuZEV4Y2x1c2l2ZS5xdWVyeShUZW1wb3JhbFF1ZXJpZXMubG9jYWxEYXRlKCkpO1xuICAgIGxldCBwZXJpb2QgPSBQZXJpb2QuWkVSTztcbiAgICBpZiAoc3RhcnREYXRlICE9IG51bGwgJiYgZW5kRGF0ZSAhPSBudWxsKSB7XG4gICAgICBwZXJpb2QgPSBQZXJpb2QuYmV0d2VlbihzdGFydERhdGUsIGVuZERhdGUpO1xuICAgIH1cbiAgICBsZXQgc3RhcnRUaW1lID0gc3RhcnRJbmNsdXNpdmUucXVlcnkoVGVtcG9yYWxRdWVyaWVzLmxvY2FsVGltZSgpKTtcbiAgICBsZXQgZW5kVGltZSA9IGVuZEV4Y2x1c2l2ZS5xdWVyeShUZW1wb3JhbFF1ZXJpZXMubG9jYWxUaW1lKCkpO1xuICAgIHN0YXJ0VGltZSA9IHN0YXJ0VGltZSAhPSBudWxsID8gc3RhcnRUaW1lIDogTG9jYWxUaW1lLk1JRE5JR0hUO1xuICAgIGVuZFRpbWUgPSBlbmRUaW1lICE9IG51bGwgPyBlbmRUaW1lIDogTG9jYWxUaW1lLk1JRE5JR0hUO1xuICAgIGNvbnN0IGR1cmF0aW9uID0gRHVyYXRpb24uYmV0d2VlbihzdGFydFRpbWUsIGVuZFRpbWUpO1xuICAgIHJldHVybiBQZXJpb2REdXJhdGlvbi5vZihwZXJpb2QsIGR1cmF0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgb2ZQZXJpb2QocGVyaW9kOiBQZXJpb2QpOiBQZXJpb2REdXJhdGlvbiB7XG4gICAgcmV0dXJuIFBlcmlvZER1cmF0aW9uLm9mKHBlcmlvZCwgRHVyYXRpb24uWkVSTyk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG9mRHVyYXRpb24oZHVyYXRpb246IER1cmF0aW9uKTogUGVyaW9kRHVyYXRpb24ge1xuICAgIHJldHVybiBQZXJpb2REdXJhdGlvbi5vZihQZXJpb2QuWkVSTywgZHVyYXRpb24pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBvZihwZXJpb2Q6IFBlcmlvZCwgZHVyYXRpb246IER1cmF0aW9uKTogUGVyaW9kRHVyYXRpb24ge1xuXG4gICAgaWYgKCFwZXJpb2QpIHsgdGhyb3cgbmV3IEVycm9yKCdQYXJhbWV0ZXIgcGVyaW9kIG11c3Qgbm90IGJlIG51bGwhJyk7IH1cbiAgICBpZiAoIWR1cmF0aW9uKSB7IHRocm93IG5ldyBFcnJvcignUGFyYW1ldGVyIGR1cmF0aW9uIG11c3Qgbm90IGJlIG51bGwhJyk7IH1cblxuICAgIHJldHVybiBuZXcgUGVyaW9kRHVyYXRpb24ocGVyaW9kLCBkdXJhdGlvbik7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHplcm8oKTogUGVyaW9kRHVyYXRpb24ge1xuICAgIHJldHVybiB0aGlzLm9mKFBlcmlvZC5aRVJPLCBEdXJhdGlvbi5aRVJPKTtcbiAgfVxufVxuIl19
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyaW9kLWR1cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL3RpbWUvcGVyaW9kLWR1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBWSxlQUFlLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFckYsTUFBTSxPQUFPLGNBQWM7SUFXekI7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ0UsTUFBYyxFQUNkLFFBQWtCO1FBRWxCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTBDRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBWTtRQUM5Qix3Q0FBd0M7UUFDeEMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxQixLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDakMsS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUNmLENBQUM7UUFDRCx5REFBeUQ7UUFDekQsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLElB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UUFBQyxDQUFDO1FBRTNFLE9BQU8sSUFBSSxjQUFjLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSxNQUFNLENBQUMsSUFBSTtRQUNoQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEdXJhdGlvbiwgTG9jYWxUaW1lLCBQZXJpb2QsIFRlbXBvcmFsLCBUZW1wb3JhbFF1ZXJpZXN9IGZyb20gJ0Bqcy1qb2RhL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgUGVyaW9kRHVyYXRpb24ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyByZWFkb25seSBwZXJpb2Q6IFBlcmlvZDtcbiAgcHVibGljIHJlYWRvbmx5IGR1cmF0aW9uOiBEdXJhdGlvbjtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIHBlcmlvZDogUGVyaW9kLFxuICAgIGR1cmF0aW9uOiBEdXJhdGlvblxuICApIHtcbiAgICB0aGlzLnBlcmlvZCA9IHBlcmlvZDtcbiAgICB0aGlzLmR1cmF0aW9uID0gZHVyYXRpb247XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogU3RhdGljIEJ1aWxkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogT2J0YWlucyBhbiBpbnN0YW5jZSBmcm9tIGEgdGV4dCBzdHJpbmcgc3VjaCBhcyB7QGNvZGUgUG5Zbk1uRFRuSG5NblN9LlxuICAgKiA8cD5cbiAgICogVGhpcyB3aWxsIHBhcnNlIHRoZSBzdHJpbmcgcHJvZHVjZWQgYnkge0Bjb2RlIHRvU3RyaW5nKCl9IHdoaWNoIGlzXG4gICAqIGJhc2VkIG9uIHRoZSBJU08tODYwMSBwZXJpb2QgZm9ybWF0cyB7QGNvZGUgUG5Zbk1uRFRuSG5NblN9IGFuZCB7QGNvZGUgUG5XfS5cbiAgICogPHA+XG4gICAqIFRoZSBzdHJpbmcgc3RhcnRzIHdpdGggYW4gb3B0aW9uYWwgc2lnbiwgZGVub3RlZCBieSB0aGUgQVNDSUkgbmVnYXRpdmVcbiAgICogb3IgcG9zaXRpdmUgc3ltYm9sLiBJZiBuZWdhdGl2ZSwgdGhlIHdob2xlIGFtb3VudCBpcyBuZWdhdGVkLlxuICAgKiBUaGUgQVNDSUkgbGV0dGVyIFwiUFwiIGlzIG5leHQgaW4gdXBwZXIgb3IgbG93ZXIgY2FzZS5cbiAgICogVGhlcmUgYXJlIHRoZW4gYSBudW1iZXIgb2Ygc2VjdGlvbnMsIGVhY2ggY29uc2lzdGluZyBvZiBhIG51bWJlciBhbmQgYSBzdWZmaXguXG4gICAqIEF0IGxlYXN0IG9uZSBvZiB0aGUgc2VjdGlvbnMgbXVzdCBiZSBwcmVzZW50LlxuICAgKiBUaGUgc2VjdGlvbnMgaGF2ZSBzdWZmaXhlcyBpbiBBU0NJSSBvZiBcIllcIiBmb3IgeWVhcnMsIFwiTVwiIGZvciBtb250aHMsXG4gICAqIFwiV1wiIGZvciB3ZWVrcywgXCJEXCIgZm9yIGRheXMsIFwiSFwiIGZvciBob3VycywgXCJNXCIgZm9yIG1pbnV0ZXMsIFwiU1wiIGZvciBzZWNvbmRzLFxuICAgKiBhY2NlcHRlZCBpbiB1cHBlciBvciBsb3dlciBjYXNlLiBOb3RlIHRoYXQgdGhlIEFTQ0lJIGxldHRlciBcIlRcIiBzZXBhcmF0ZXNcbiAgICogdGhlIGRhdGUgYW5kIHRpbWUgcGFydHMgYW5kIG11c3QgYmUgcHJlc2VudCBpZiBhbnkgdGltZSBwYXJ0IGlzIHByZXNlbnQuXG4gICAqIFRoZSBzdWZmaXhlcyBtdXN0IG9jY3VyIGluIG9yZGVyLlxuICAgKiBUaGUgbnVtYmVyIHBhcnQgb2YgZWFjaCBzZWN0aW9uIG11c3QgY29uc2lzdCBvZiBBU0NJSSBkaWdpdHMuXG4gICAqIFRoZSBudW1iZXIgbWF5IGJlIHByZWZpeGVkIGJ5IHRoZSBBU0NJSSBuZWdhdGl2ZSBvciBwb3NpdGl2ZSBzeW1ib2wuXG4gICAqIFRoZSBudW1iZXIgbXVzdCBwYXJzZSB0byBhbiB7QGNvZGUgaW50fS5cbiAgICogQW55IHdlZWstYmFzZWQgaW5wdXQgaXMgbXVsdGlwbGllZCBieSA3IGFuZCB0cmVhdGVkIGFzIGEgbnVtYmVyIG9mIGRheXMuXG4gICAqIDxwPlxuICAgKiBUaGUgbGVhZGluZyBwbHVzL21pbnVzIHNpZ24sIGFuZCBuZWdhdGl2ZSB2YWx1ZXMgZm9yIHdlZWtzIGFuZCBkYXlzIGFyZVxuICAgKiBub3QgcGFydCBvZiB0aGUgSVNPLTg2MDEgc3RhbmRhcmQuXG4gICAqIDxwPlxuICAgKiBOb3RlIHRoYXQgdGhlIGRhdGUgc3R5bGUgZm9ybWF0IHtAY29kZSBQWVlZWS1NTS1ERFRISDpNTTpTU30gaXMgbm90IHN1cHBvcnRlZC5cbiAgICogPHA+XG4gICAqIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGFyZSB2YWxpZCBpbnB1dHM6XG4gICAqIDxwcmU+XG4gICAqICAgXCJQMllcIiAgICAgICAgICAgICAtLSBQZXJpb2REdXJhdGlvbi5vZihQZXJpb2Qub2ZZZWFycygyKSlcbiAgICogICBcIlAzTVwiICAgICAgICAgICAgIC0tIFBlcmlvZER1cmF0aW9uLm9mKFBlcmlvZC5vZk1vbnRocygzKSlcbiAgICogICBcIlA0V1wiICAgICAgICAgICAgIC0tIFBlcmlvZER1cmF0aW9uLm9mKFBlcmlvZC5vZldlZWtzKDQpKVxuICAgKiAgIFwiUDVEXCIgICAgICAgICAgICAgLS0gUGVyaW9kRHVyYXRpb24ub2YoUGVyaW9kLm9mRGF5cyg1KSlcbiAgICogICBcIlBUNkhcIiAgICAgICAgICAgIC0tIFBlcmlvZER1cmF0aW9uLm9mKER1cmF0aW9uLm9mSG91cnMoNikpXG4gICAqICAgXCJQMVkyTTNEXCIgICAgICAgICAtLSBQZXJpb2REdXJhdGlvbi5vZihQZXJpb2Qub2YoMSwgMiwgMykpXG4gICAqICAgXCJQMVkyTTNXNERUOEhcIiAgICAtLSBQZXJpb2REdXJhdGlvbi5vZihQZXJpb2Qub2YoMSwgMiwgMjUpLCBEdXJhdGlvbi5vZkhvdXJzKDgpKVxuICAgKiAgIFwiUC0xWTJNXCIgICAgICAgICAgLS0gUGVyaW9kRHVyYXRpb24ub2YoUGVyaW9kLm9mKC0xLCAyLCAwKSlcbiAgICogICBcIi1QMVkyTVwiICAgICAgICAgIC0tIFBlcmlvZER1cmF0aW9uLm9mKFBlcmlvZC5vZigtMSwgLTIsIDApKVxuICAgKiA8L3ByZT5cbiAgICpcbiAgICogQHBhcmFtIHRleHQgIHRoZSB0ZXh0IHRvIHBhcnNlLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRoZSBwYXJzZWQgcGVyaW9kLCBub3QgbnVsbFxuICAgKiBAdGhyb3dzIERhdGVUaW1lUGFyc2VFeGNlcHRpb24gaWYgdGhlIHRleHQgY2Fubm90IGJlIHBhcnNlZCB0byBhIHBlcmlvZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwYXJzZSh0ZXh0OiBzdHJpbmcpOiBQZXJpb2REdXJhdGlvbiB7XG4gICAgLy8gT2JqZWN0cy5yZXF1aXJlTm9uTnVsbCh0ZXh0LCBcInRleHRcIik7XG4gICAgbGV0IHVwcGVyID0gdGV4dC50b1N0cmluZygpLnRvVXBwZXJDYXNlKCk7XG4gICAgbGV0IG5lZ2F0ZSA9ICcnO1xuICAgIGlmICh1cHBlci5zdGFydHNXaXRoKCcrJykpIHtcbiAgICAgIHVwcGVyID0gdXBwZXIuc3Vic3RyaW5nKDEpO1xuICAgIH0gZWxzZSBpZiAodXBwZXIuc3RhcnRzV2l0aCgnLScpKSB7XG4gICAgICB1cHBlciA9IHVwcGVyLnN1YnN0cmluZygxKTtcbiAgICAgIG5lZ2F0ZSA9ICctJztcbiAgICB9XG4gICAgLy8gZHVyYXRpb24gb25seSwgcGFyc2Ugb3JpZ2luYWwgdGV4dCBzbyBpdCBkb2VzIG5lZ2F0aW9uXG4gICAgaWYgKHVwcGVyLnN0YXJ0c1dpdGgoJ1BUJykpIHtcbiAgICAgIHJldHVybiBQZXJpb2REdXJhdGlvbi5vZkR1cmF0aW9uKER1cmF0aW9uLnBhcnNlKHRleHQpKTtcbiAgICB9XG4gICAgLy8gcGVyaW9kIG9ubHksIHBhcnNlIG9yaWdpbmFsIHRleHQgc28gaXQgZG9lcyBuZWdhdGlvblxuICAgIGNvbnN0IHRwb3MgPSB1cHBlci5pbmRleE9mKCdUJyk7XG4gICAgaWYgKHRwb3MgPCAwKSB7XG4gICAgICByZXR1cm4gUGVyaW9kRHVyYXRpb24ub2ZQZXJpb2QoUGVyaW9kLnBhcnNlKHRleHQpKTtcbiAgICB9XG4gICAgLy8gcGVyaW9kIGFuZCBkdXJhdGlvblxuICAgIGNvbnN0IHBlcmlvZCA9IFBlcmlvZC5wYXJzZShuZWdhdGUgKyB1cHBlci5zdWJzdHJpbmcoMCwgdHBvcykpO1xuICAgIGNvbnN0IGR1cmF0aW9uID0gRHVyYXRpb24ucGFyc2UobmVnYXRlICsgJ1AnICsgdXBwZXIuc3Vic3RyaW5nKHRwb3MpKTtcbiAgICByZXR1cm4gUGVyaW9kRHVyYXRpb24ub2YocGVyaW9kLCBkdXJhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogT2J0YWlucyBhbiBpbnN0YW5jZSBjb25zaXN0aW5nIG9mIHRoZSBhbW91bnQgb2YgdGltZSBiZXR3ZWVuIHR3byB0ZW1wb3JhbHMuXG4gICAqIDxwPlxuICAgKiBUaGUgc3RhcnQgaXMgaW5jbHVkZWQsIGJ1dCB0aGUgZW5kIGlzIG5vdC5cbiAgICogVGhlIHJlc3VsdCBvZiB0aGlzIG1ldGhvZCBjYW4gYmUgbmVnYXRpdmUgaWYgdGhlIGVuZCBpcyBiZWZvcmUgdGhlIHN0YXJ0LlxuICAgKiA8cD5cbiAgICogVGhlIGNhbGN1bGF0aW9uIGV4YW1pbmVzIHRoZSB0ZW1wb3JhbHMgYW5kIGV4dHJhY3RzIHtAbGluayBMb2NhbERhdGV9IGFuZCB7QGxpbmsgTG9jYWxUaW1lfS5cbiAgICogSWYgdGhlIHRpbWUgaXMgbWlzc2luZywgaXQgd2lsbCBiZSBkZWZhdWx0ZWQgdG8gbWlkbmlnaHQuXG4gICAqIElmIG9uZSBkYXRlIGlzIG1pc3NpbmcsIGl0IHdpbGwgYmUgZGVmYXVsdGVkIHRvIHRoZSBvdGhlciBkYXRlLlxuICAgKiBJdCB0aGVuIGZpbmRzIHRoZSBhbW91bnQgb2YgdGltZSBiZXR3ZWVuIHRoZSB0d28gZGF0ZXMgYW5kIGJldHdlZW4gdGhlIHR3byB0aW1lcy5cbiAgICpcbiAgICogQHBhcmFtIHN0YXJ0SW5jbHVzaXZlICB0aGUgc3RhcnQsIGluY2x1c2l2ZSwgbm90IG51bGxcbiAgICogQHBhcmFtIGVuZEV4Y2x1c2l2ZSAgdGhlIGVuZCwgZXhjbHVzaXZlLCBub3QgbnVsbFxuICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgZGF5cyBiZXR3ZWVuIHRoaXMgZGF0ZSBhbmQgdGhlIGVuZCBkYXRlLCBub3QgbnVsbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBiZXR3ZWVuKHN0YXJ0SW5jbHVzaXZlOiBUZW1wb3JhbCwgZW5kRXhjbHVzaXZlOiBUZW1wb3JhbCk6IFBlcmlvZER1cmF0aW9uIHtcbiAgICBjb25zdCBzdGFydERhdGUgPSBzdGFydEluY2x1c2l2ZS5xdWVyeShUZW1wb3JhbFF1ZXJpZXMubG9jYWxEYXRlKCkpO1xuICAgIGNvbnN0IGVuZERhdGUgPSBlbmRFeGNsdXNpdmUucXVlcnkoVGVtcG9yYWxRdWVyaWVzLmxvY2FsRGF0ZSgpKTtcbiAgICBsZXQgcGVyaW9kID0gUGVyaW9kLlpFUk87XG4gICAgaWYgKHN0YXJ0RGF0ZSAhPSBudWxsICYmIGVuZERhdGUgIT0gbnVsbCkge1xuICAgICAgcGVyaW9kID0gUGVyaW9kLmJldHdlZW4oc3RhcnREYXRlLCBlbmREYXRlKTtcbiAgICB9XG4gICAgbGV0IHN0YXJ0VGltZSA9IHN0YXJ0SW5jbHVzaXZlLnF1ZXJ5KFRlbXBvcmFsUXVlcmllcy5sb2NhbFRpbWUoKSk7XG4gICAgbGV0IGVuZFRpbWUgPSBlbmRFeGNsdXNpdmUucXVlcnkoVGVtcG9yYWxRdWVyaWVzLmxvY2FsVGltZSgpKTtcbiAgICBzdGFydFRpbWUgPSBzdGFydFRpbWUgIT0gbnVsbCA/IHN0YXJ0VGltZSA6IExvY2FsVGltZS5NSUROSUdIVDtcbiAgICBlbmRUaW1lID0gZW5kVGltZSAhPSBudWxsID8gZW5kVGltZSA6IExvY2FsVGltZS5NSUROSUdIVDtcbiAgICBjb25zdCBkdXJhdGlvbiA9IER1cmF0aW9uLmJldHdlZW4oc3RhcnRUaW1lLCBlbmRUaW1lKTtcbiAgICByZXR1cm4gUGVyaW9kRHVyYXRpb24ub2YocGVyaW9kLCBkdXJhdGlvbik7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG9mUGVyaW9kKHBlcmlvZDogUGVyaW9kKTogUGVyaW9kRHVyYXRpb24ge1xuICAgIHJldHVybiBQZXJpb2REdXJhdGlvbi5vZihwZXJpb2QsIER1cmF0aW9uLlpFUk8pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBvZkR1cmF0aW9uKGR1cmF0aW9uOiBEdXJhdGlvbik6IFBlcmlvZER1cmF0aW9uIHtcbiAgICByZXR1cm4gUGVyaW9kRHVyYXRpb24ub2YoUGVyaW9kLlpFUk8sIGR1cmF0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgb2YocGVyaW9kOiBQZXJpb2QsIGR1cmF0aW9uOiBEdXJhdGlvbik6IFBlcmlvZER1cmF0aW9uIHtcblxuICAgIGlmICghcGVyaW9kKSB7IHRocm93IG5ldyBFcnJvcignUGFyYW1ldGVyIHBlcmlvZCBtdXN0IG5vdCBiZSBudWxsIScpOyB9XG4gICAgaWYgKCFkdXJhdGlvbikgeyB0aHJvdyBuZXcgRXJyb3IoJ1BhcmFtZXRlciBkdXJhdGlvbiBtdXN0IG5vdCBiZSBudWxsIScpOyB9XG5cbiAgICByZXR1cm4gbmV3IFBlcmlvZER1cmF0aW9uKHBlcmlvZCwgZHVyYXRpb24pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB6ZXJvKCk6IFBlcmlvZER1cmF0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5vZihQZXJpb2QuWkVSTywgRHVyYXRpb24uWkVSTyk7XG4gIH1cbn1cbiJdfQ==
@@ -38,4 +38,4 @@ export class TimeUtil {
38
38
  && date.nano() === 0;
39
39
  }
40
40
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL3RpbWUvdGltZS11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBbUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTlHLE1BQU0sT0FBTyxRQUFRO2FBRUksb0JBQWUsR0FBRyxLQUFLLENBQUM7SUFFL0M7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFtQjtRQUN2QyxJQUFJLElBQUksWUFBWSxJQUFJLEVBQUU7WUFDeEIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3REO2FBQU07WUFDTCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFVO1FBQ3RDLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQVU7UUFDdkMsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBZ0I7UUFDakMsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywyREFBMkQ7UUFDbEYsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVNLE1BQU0sQ0FBQyxlQUFlLENBQUMsU0FBb0IsRUFBRSxJQUFJLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRTtRQUMvRSxPQUFPLElBQUksSUFBSSxDQUNiLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFDaEIsU0FBUyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsRUFDMUIsU0FBUyxDQUFDLFVBQVUsRUFBRSxFQUN0QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQ1gsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQWtCO1FBQ3pDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFtQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO2VBQ3JCLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO2VBQ25CLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO2VBQ2pCLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQ25CO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RHVyYXRpb24sIEluc3RhbnQsIExvY2FsRGF0ZSwgbmF0aXZlSnMsIFRlbXBvcmFsQWNjZXNzb3IsIFpvbmVkRGF0ZVRpbWUsIFpvbmVJZH0gZnJvbSAnQGpzLWpvZGEvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBUaW1lVXRpbCB7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTRUNPTkRTX1BFUl9EQVkgPSA4NjQwMDtcblxuICAvKipcbiAgICogUmV0dXJucyBhbiBpbnN0YW50IGZvciBhIGphdmFzY3JpcHQgZGF0ZSAvIGlzbyBkYXRlIHN0cmluZy5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaW5zdGFudChkYXRlOiBEYXRlIHwgc3RyaW5nKTogSW5zdGFudCB7XG4gICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICByZXR1cm4gSW5zdGFudC5mcm9tKFRpbWVVdGlsLnRlbXBvcmFsQWNjZXNzb3IoZGF0ZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gSW5zdGFudC5wYXJzZShkYXRlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGRhdGVUb0xvY2FsRGF0ZShkYXRlOiBEYXRlKTogTG9jYWxEYXRlIHtcbiAgICByZXR1cm4gTG9jYWxEYXRlLmZyb20oVGltZVV0aWwudGVtcG9yYWxBY2Nlc3NvcihkYXRlKSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHRlbXBvcmFsQWNjZXNzb3IoZGF0ZTogRGF0ZSk6IFRlbXBvcmFsQWNjZXNzb3Ige1xuICAgIHJldHVybiBuYXRpdmVKcyhkYXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZGF0ZShpbnN0YW50OiBJbnN0YW50KTogRGF0ZSB7XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKDApOyAvLyBUaGUgMCB0aGVyZSBpcyB0aGUga2V5LCB3aGljaCBzZXRzIHRoZSBkYXRlIHRvIHRoZSBlcG9jaFxuICAgIGQuc2V0VVRDTWlsbGlzZWNvbmRzKGluc3RhbnQudG9FcG9jaE1pbGxpKCkpO1xuICAgIHJldHVybiBkO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBsb2NhbERhdGVUb0RhdGUobG9jYWxEYXRlOiBMb2NhbERhdGUsIHpvbmUgPSBab25lSWQuc3lzdGVtRGVmYXVsdCgpKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKFxuICAgICAgbG9jYWxEYXRlLnllYXIoKSxcbiAgICAgIGxvY2FsRGF0ZS5tb250aFZhbHVlKCkgLSAxLFxuICAgICAgbG9jYWxEYXRlLmRheU9mTW9udGgoKSxcbiAgICAgIDAsIDAsIDAsIDBcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc0Z1bGxEYXlzKGR1cmF0aW9uOiBEdXJhdGlvbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHIgPSBkdXJhdGlvbi5zZWNvbmRzKCkgJSBUaW1lVXRpbC5TRUNPTkRTX1BFUl9EQVk7XG4gICAgcmV0dXJuIHIgPT09IDA7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzU3RhcnRPZkRheShkYXRlOiBab25lZERhdGVUaW1lKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGRhdGUuc2Vjb25kKCkgPT09IDBcbiAgICAgICYmIGRhdGUubWludXRlKCkgPT09IDBcbiAgICAgICYmIGRhdGUuaG91cigpID09PSAwXG4gICAgICAmJiBkYXRlLm5hbm8oKSA9PT0gMFxuICAgICAgO1xuICB9XG59XG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL3RpbWUvdGltZS11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBbUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTlHLE1BQU0sT0FBTyxRQUFRO2FBRUksb0JBQWUsR0FBRyxLQUFLLENBQUM7SUFFL0M7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFtQjtRQUN2QyxJQUFJLElBQUksWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUN6QixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdkQsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLElBQVU7UUFDdEMsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBVTtRQUN2QyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRU0sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFnQjtRQUNqQyxNQUFNLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLDJEQUEyRDtRQUNsRixDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDN0MsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxTQUFvQixFQUFFLElBQUksR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFO1FBQy9FLE9BQU8sSUFBSSxJQUFJLENBQ2IsU0FBUyxDQUFDLElBQUksRUFBRSxFQUNoQixTQUFTLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxFQUMxQixTQUFTLENBQUMsVUFBVSxFQUFFLEVBQ3RCLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBa0I7UUFDekMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUM7UUFDeEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQW1CO1FBQzVDLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7ZUFDckIsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7ZUFDbkIsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7ZUFDakIsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FDbkI7SUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEdXJhdGlvbiwgSW5zdGFudCwgTG9jYWxEYXRlLCBuYXRpdmVKcywgVGVtcG9yYWxBY2Nlc3NvciwgWm9uZWREYXRlVGltZSwgWm9uZUlkfSBmcm9tICdAanMtam9kYS9jb3JlJztcblxuZXhwb3J0IGNsYXNzIFRpbWVVdGlsIHtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNFQ09ORFNfUEVSX0RBWSA9IDg2NDAwO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGluc3RhbnQgZm9yIGEgamF2YXNjcmlwdCBkYXRlIC8gaXNvIGRhdGUgc3RyaW5nLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpbnN0YW50KGRhdGU6IERhdGUgfCBzdHJpbmcpOiBJbnN0YW50IHtcbiAgICBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHJldHVybiBJbnN0YW50LmZyb20oVGltZVV0aWwudGVtcG9yYWxBY2Nlc3NvcihkYXRlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBJbnN0YW50LnBhcnNlKGRhdGUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZGF0ZVRvTG9jYWxEYXRlKGRhdGU6IERhdGUpOiBMb2NhbERhdGUge1xuICAgIHJldHVybiBMb2NhbERhdGUuZnJvbShUaW1lVXRpbC50ZW1wb3JhbEFjY2Vzc29yKGRhdGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdGVtcG9yYWxBY2Nlc3NvcihkYXRlOiBEYXRlKTogVGVtcG9yYWxBY2Nlc3NvciB7XG4gICAgcmV0dXJuIG5hdGl2ZUpzKGRhdGUpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBkYXRlKGluc3RhbnQ6IEluc3RhbnQpOiBEYXRlIHtcbiAgICBjb25zdCBkID0gbmV3IERhdGUoMCk7IC8vIFRoZSAwIHRoZXJlIGlzIHRoZSBrZXksIHdoaWNoIHNldHMgdGhlIGRhdGUgdG8gdGhlIGVwb2NoXG4gICAgZC5zZXRVVENNaWxsaXNlY29uZHMoaW5zdGFudC50b0Vwb2NoTWlsbGkoKSk7XG4gICAgcmV0dXJuIGQ7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGxvY2FsRGF0ZVRvRGF0ZShsb2NhbERhdGU6IExvY2FsRGF0ZSwgem9uZSA9IFpvbmVJZC5zeXN0ZW1EZWZhdWx0KCkpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoXG4gICAgICBsb2NhbERhdGUueWVhcigpLFxuICAgICAgbG9jYWxEYXRlLm1vbnRoVmFsdWUoKSAtIDEsXG4gICAgICBsb2NhbERhdGUuZGF5T2ZNb250aCgpLFxuICAgICAgMCwgMCwgMCwgMFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzRnVsbERheXMoZHVyYXRpb246IER1cmF0aW9uKTogYm9vbGVhbiB7XG4gICAgY29uc3QgciA9IGR1cmF0aW9uLnNlY29uZHMoKSAlIFRpbWVVdGlsLlNFQ09ORFNfUEVSX0RBWTtcbiAgICByZXR1cm4gciA9PT0gMDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNTdGFydE9mRGF5KGRhdGU6IFpvbmVkRGF0ZVRpbWUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGF0ZS5zZWNvbmQoKSA9PT0gMFxuICAgICAgJiYgZGF0ZS5taW51dGUoKSA9PT0gMFxuICAgICAgJiYgZGF0ZS5ob3VyKCkgPT09IDBcbiAgICAgICYmIGRhdGUubmFubygpID09PSAwXG4gICAgICA7XG4gIH1cbn1cbiJdfQ==
@@ -42,13 +42,13 @@ export class ElderRouterService {
42
42
  const url = this.router.serializeUrl(urlTree);
43
43
  return this.location.prepareExternalUrl(url);
44
44
  }
45
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderRouterService, deps: [{ token: i1.Router }, { token: i2.Location }], target: i0.ɵɵFactoryTarget.Injectable }); }
46
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderRouterService, providedIn: 'root' }); }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderRouterService, deps: [{ token: i1.Router }, { token: i2.Location }], target: i0.ɵɵFactoryTarget.Injectable }); }
46
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderRouterService, providedIn: 'root' }); }
47
47
  }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderRouterService, decorators: [{
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderRouterService, decorators: [{
49
49
  type: Injectable,
50
50
  args: [{
51
51
  providedIn: 'root'
52
52
  }]
53
53
  }], ctorParameters: () => [{ type: i1.Router }, { type: i2.Location }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItcm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vdXJsL2VsZGVyLXJvdXRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7QUFJekM7Ozs7Ozs7R0FPRztBQUlILE1BQU0sT0FBTyxrQkFBa0I7SUFFN0I7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ1UsTUFBYyxFQUNkLFFBQWtCO1FBRGxCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQ3hCLENBQUM7SUFFTDs7OztnRkFJNEU7SUFFNUU7Ozs7T0FJRztJQUNJLE9BQU8sQ0FBQyxPQUFnQixFQUFFLE1BQWU7UUFDOUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxPQUFnQjtRQUMxQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUM7SUFDOUMsQ0FBQztJQUVNLG9CQUFvQixDQUFDLE9BQWdCO1FBQzFDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxDQUFDOytHQXJDVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyLCBVcmxUcmVlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtMb2NhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBQcm92aWRlcyBhZHZhbmNlZCByb3V0ZXIgbmF2aWdhdGlvbiBzdXBwb3J0IGZvciBBbmd1bGFyLlxuICpcbiAqIFByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGJ1aWxkIGV4dGVybmFsICYgYWJzb2x1dGUgdXJscyB3aGljaFxuICogY2FuIGJlIHVzZWQgaW4gaWZyYW1lcyBvciBleHRlcm5hbCBuYXZpZ2F0aW9uLCBzdWNoIGFzIG9wZW5pbmdcbiAqIG5ldyB0YWJzLlxuICpcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJSb3V0ZXJTZXJ2aWNlIHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxuICApIHsgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBPcGVuIHRoZSBnaXZlbiB1cmwgaW4gYSBuZXcgd2luZG93IC8gdGFiLlxuICAgKiBAcGFyYW0gdXJsVHJlZVxuICAgKiBAcGFyYW0gdGFyZ2V0XG4gICAqL1xuICBwdWJsaWMgb3BlblVybCh1cmxUcmVlOiBVcmxUcmVlLCB0YXJnZXQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBhYnNvbHV0ZVVybCA9IHRoaXMuc2VyaWFsaXplVXJsQWJzb2x1dGUodXJsVHJlZSk7XG4gICAgd2luZG93Lm9wZW4oYWJzb2x1dGVVcmwsIHRhcmdldCk7XG4gIH1cblxuICBwdWJsaWMgc2VyaWFsaXplVXJsQWJzb2x1dGUodXJsVHJlZTogVXJsVHJlZSk6IHN0cmluZyB7XG4gICAgY29uc3QgZXh0ZXJuYWxVcmwgPSB0aGlzLnNlcmlhbGl6ZVVybEV4dGVybmFsKHVybFRyZWUpO1xuICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgZXh0ZXJuYWxVcmw7XG4gIH1cblxuICBwdWJsaWMgc2VyaWFsaXplVXJsRXh0ZXJuYWwodXJsVHJlZTogVXJsVHJlZSk6IHN0cmluZyB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXIuc2VyaWFsaXplVXJsKHVybFRyZWUpO1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uLnByZXBhcmVFeHRlcm5hbFVybCh1cmwpO1xuICB9XG5cbn1cbiJdfQ==
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItcm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vdXJsL2VsZGVyLXJvdXRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7QUFJekM7Ozs7Ozs7R0FPRztBQUlILE1BQU0sT0FBTyxrQkFBa0I7SUFFN0I7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ1UsTUFBYyxFQUNkLFFBQWtCO1FBRGxCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQ3hCLENBQUM7SUFFTDs7OztnRkFJNEU7SUFFNUU7Ozs7T0FJRztJQUNJLE9BQU8sQ0FBQyxPQUFnQixFQUFFLE1BQWU7UUFDOUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxPQUFnQjtRQUMxQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUM7SUFDOUMsQ0FBQztJQUVNLG9CQUFvQixDQUFDLE9BQWdCO1FBQzFDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxDQUFDOzhHQXJDVSxrQkFBa0I7a0hBQWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyLCBVcmxUcmVlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtMb2NhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBQcm92aWRlcyBhZHZhbmNlZCByb3V0ZXIgbmF2aWdhdGlvbiBzdXBwb3J0IGZvciBBbmd1bGFyLlxuICpcbiAqIFByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGJ1aWxkIGV4dGVybmFsICYgYWJzb2x1dGUgdXJscyB3aGljaFxuICogY2FuIGJlIHVzZWQgaW4gaWZyYW1lcyBvciBleHRlcm5hbCBuYXZpZ2F0aW9uLCBzdWNoIGFzIG9wZW5pbmdcbiAqIG5ldyB0YWJzLlxuICpcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJSb3V0ZXJTZXJ2aWNlIHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxuICApIHsgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBPcGVuIHRoZSBnaXZlbiB1cmwgaW4gYSBuZXcgd2luZG93IC8gdGFiLlxuICAgKiBAcGFyYW0gdXJsVHJlZVxuICAgKiBAcGFyYW0gdGFyZ2V0XG4gICAqL1xuICBwdWJsaWMgb3BlblVybCh1cmxUcmVlOiBVcmxUcmVlLCB0YXJnZXQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBhYnNvbHV0ZVVybCA9IHRoaXMuc2VyaWFsaXplVXJsQWJzb2x1dGUodXJsVHJlZSk7XG4gICAgd2luZG93Lm9wZW4oYWJzb2x1dGVVcmwsIHRhcmdldCk7XG4gIH1cblxuICBwdWJsaWMgc2VyaWFsaXplVXJsQWJzb2x1dGUodXJsVHJlZTogVXJsVHJlZSk6IHN0cmluZyB7XG4gICAgY29uc3QgZXh0ZXJuYWxVcmwgPSB0aGlzLnNlcmlhbGl6ZVVybEV4dGVybmFsKHVybFRyZWUpO1xuICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgZXh0ZXJuYWxVcmw7XG4gIH1cblxuICBwdWJsaWMgc2VyaWFsaXplVXJsRXh0ZXJuYWwodXJsVHJlZTogVXJsVHJlZSk6IHN0cmluZyB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXIuc2VyaWFsaXplVXJsKHVybFRyZWUpO1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uLnByZXBhcmVFeHRlcm5hbFVybCh1cmwpO1xuICB9XG5cbn1cbiJdfQ==
@@ -94,7 +94,7 @@ export class ElderUrlFragmentParamsService {
94
94
  this._log.trace('Replacing URL fragment with: ' + fragment);
95
95
  this.router.navigate([], {
96
96
  fragment: decodeURIComponent(fragment),
97
- replaceUrl: true,
97
+ replaceUrl: true, // if true, won't add a new browser history entry
98
98
  queryParamsHandling: 'merge'
99
99
  });
100
100
  }
@@ -107,13 +107,13 @@ export class ElderUrlFragmentParamsService {
107
107
  return new UrlQueryParams();
108
108
  }
109
109
  }
110
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderUrlFragmentParamsService, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable }); }
111
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderUrlFragmentParamsService, providedIn: 'root' }); }
110
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderUrlFragmentParamsService, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable }); }
111
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderUrlFragmentParamsService, providedIn: 'root' }); }
112
112
  }
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderUrlFragmentParamsService, decorators: [{
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderUrlFragmentParamsService, decorators: [{
114
114
  type: Injectable,
115
115
  args: [{
116
116
  providedIn: 'root'
117
117
  }]
118
118
  }], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }] });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdXJsLWZyYWdtZW50LXBhcmFtcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL3VybC9lbGRlci11cmwtZnJhZ21lbnQtcGFyYW1zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBRWpELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7OztBQUduRDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sNkJBQTZCO0lBWXhDOzs7O2dGQUk0RTtJQUU1RSxZQUNVLE1BQWMsRUFDZCxjQUE4QjtRQUQ5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBbEJ4Qzs7OztvRkFJNEU7UUFFM0QsU0FBSSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0RCxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFpQixjQUFjLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQVkzRixJQUFJLENBQUMsY0FBYzthQUNoQixRQUFRO2FBQ1IsU0FBUyxDQUNSLFFBQVEsQ0FBQyxFQUFFO1lBQ1QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUNGLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUU7O09BRUc7SUFDSSxTQUFTLENBQUMsTUFBc0I7UUFDckMsa0VBQWtFO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksWUFBWSxDQUFDLE1BQXNCO1FBQ3hDLGtFQUFrRTtRQUNsRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsZ0JBQWdCLENBQUMsTUFBc0I7UUFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTyxXQUFXLENBQUMsTUFBc0I7UUFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLGNBQWMsQ0FBQyxXQUEyQjtRQUNoRCxNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFOUMseUZBQXlGO1FBQ3pGLCtEQUErRDtRQUMvRCxNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFFBQWdCO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLCtCQUErQixHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUN2QixRQUFRLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxDQUFDO1lBQ3RDLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLG1CQUFtQixFQUFFLE9BQU87U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLGNBQXNCO1FBRTdDLCtCQUErQjtRQUMvQixJQUFJLGNBQWMsRUFBRTtZQUNsQixPQUFPLElBQUksY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQzNDO2FBQU07WUFDTCxPQUFPLElBQUksY0FBYyxFQUFFLENBQUM7U0FDN0I7SUFFSCxDQUFDOytHQXpIVSw2QkFBNkI7bUhBQTdCLDZCQUE2QixjQUY1QixNQUFNOzs0RkFFUCw2QkFBNkI7a0JBSHpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VXJsUXVlcnlQYXJhbXN9IGZyb20gJy4vdXJsLXF1ZXJ5LXBhcmFtcyc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcblxuXG4vKipcbiAqIE1hbmFnZXMgYmlkaXJlY3Rpb25hbCBiaW5kaW5nIG9mXG4gKiBxdWVyeSBwYXJhbXMgd2l0aGluIHRoZSBjdXJyZW50IFVSTCBmcmFnbWVudC5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJVcmxGcmFnbWVudFBhcmFtc1NlcnZpY2Uge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcXVlcnlQYXJhbXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxVcmxRdWVyeVBhcmFtcz4oVXJsUXVlcnlQYXJhbXMuZW1wdHkoKSk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHtcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlXG4gICAgICAuZnJhZ21lbnRcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIGZyYWdtZW50ID0+IHtcbiAgICAgICAgICBjb25zdCBwYXJhbXMgPSB0aGlzLnBhcnNlUXVlcnlQYXJhbXMoZnJhZ21lbnQpO1xuICAgICAgICAgIHRoaXMudXBkYXRlTW9kZWwocGFyYW1zKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgcGFyYW1zJCgpOiBPYnNlcnZhYmxlPFVybFF1ZXJ5UGFyYW1zPiB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5UGFyYW1zJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGFyYW1zKCk6IFVybFF1ZXJ5UGFyYW1zIHtcbiAgICByZXR1cm4gbmV3IFVybFF1ZXJ5UGFyYW1zKHRoaXMuX3F1ZXJ5UGFyYW1zJC5nZXRWYWx1ZSgpKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyBhbGwgY3VycmVudCBwYXJhbXMgd2l0aCB0aGUgZ2l2ZW4gb25lcy5cbiAgICovXG4gIHB1YmxpYyBzZXRQYXJhbXMocGFyYW1zOiBVcmxRdWVyeVBhcmFtcyk6IHZvaWQge1xuICAgIC8vIENyZWF0ZSBuZXcgaW5zdGFuY2UgdG8gdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uIG9uIHN1YnNjcmliZXJzLlxuICAgIGNvbnN0IHVwZGF0ZWQgPSBuZXcgVXJsUXVlcnlQYXJhbXMocGFyYW1zKTtcbiAgICB0aGlzLnNldEN1cnJlbnRQYXJhbXModXBkYXRlZCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgY3VycmVudCBwYXJhbXMgd2l0aCB0aGUgZ2l2ZW4gb25lcywgZWZmZWN0aXZlbHlcbiAgICogcmVzdWx0aW5nIGluIGEgbWVyZ2UuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlUGFyYW1zKHBhcmFtczogVXJsUXVlcnlQYXJhbXMpOiB2b2lkIHtcbiAgICAvLyBDcmVhdGUgbmV3IGluc3RhbmNlIHRvIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvbiBvbiBzdWJzY3JpYmVycy5cbiAgICBjb25zdCB1cGRhdGVkID0gdGhpcy5wYXJhbXM7XG4gICAgdXBkYXRlZC5zZXRBbGwocGFyYW1zLmdldEFsbCgpKTtcbiAgICB0aGlzLnNldEN1cnJlbnRQYXJhbXModXBkYXRlZCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIGFsbCBjdXJyZW50IHBhcmFtcy5cbiAgICovXG4gIHB1YmxpYyBjbGVhclBhcmFtcygpOiB2b2lkIHtcbiAgICB0aGlzLnNldEN1cnJlbnRQYXJhbXMoVXJsUXVlcnlQYXJhbXMuZW1wdHkoKSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHNldEN1cnJlbnRQYXJhbXMocGFyYW1zOiBVcmxRdWVyeVBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlTW9kZWwocGFyYW1zKTtcbiAgICB0aGlzLnVwZGF0ZUZyYWdtZW50KHBhcmFtcyk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU1vZGVsKHBhcmFtczogVXJsUXVlcnlQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLl9xdWVyeVBhcmFtcyQubmV4dChwYXJhbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGcmFnbWVudChxdWVyeVBhcmFtczogVXJsUXVlcnlQYXJhbXMpOiB2b2lkIHtcbiAgICBjb25zdCBxdWVyeVBhcmFtc1N0ciA9IHF1ZXJ5UGFyYW1zLnRvU3RyaW5nKCk7XG5cbiAgICAvLyBTaW5jZSBib3RoIFVSTFNlYXJjaFBhcmFtcy50b1N0cmluZyBhbmQgYW5ndWxhciByb3V0ZXIubmF2aWdhdGUgdXNlIGVuY29kZVVSSUNvbXBvbmVudFxuICAgIC8vIHdlIG5lZWQgdG8gZGVjb2RlIHRoZSBjb21wb25lbnQgdG8gYXZvaWQgZHVwbGljYXRlIGVuY29kaW5nLlxuICAgIGNvbnN0IGZyYWdtZW50U3RyID0gZGVjb2RlVVJJQ29tcG9uZW50KHF1ZXJ5UGFyYW1zU3RyKTtcbiAgICB0aGlzLnJlcGxhY2VVcmxGcmFnbWVudChmcmFnbWVudFN0cik7XG4gIH1cblxuICBwcml2YXRlIHJlcGxhY2VVcmxGcmFnbWVudChmcmFnbWVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fbG9nLnRyYWNlKCdSZXBsYWNpbmcgVVJMIGZyYWdtZW50IHdpdGg6ICcgKyBmcmFnbWVudCk7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcbiAgICAgIGZyYWdtZW50OiBkZWNvZGVVUklDb21wb25lbnQoZnJhZ21lbnQpLFxuICAgICAgcmVwbGFjZVVybDogdHJ1ZSwgLy8gaWYgdHJ1ZSwgd29uJ3QgYWRkIGEgbmV3IGJyb3dzZXIgaGlzdG9yeSBlbnRyeVxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJ1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVF1ZXJ5UGFyYW1zKHF1ZXJ5UGFyYW1zU3RyOiBzdHJpbmcpOiBVcmxRdWVyeVBhcmFtcyB7XG5cbiAgICAvLyBhdm9pZHMgaW52YWxpZCBzZWFyY2ggcGFyYW1zXG4gICAgaWYgKHF1ZXJ5UGFyYW1zU3RyKSB7XG4gICAgICByZXR1cm4gbmV3IFVybFF1ZXJ5UGFyYW1zKHF1ZXJ5UGFyYW1zU3RyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBVcmxRdWVyeVBhcmFtcygpO1xuICAgIH1cblxuICB9XG5cblxufVxuIl19
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdXJsLWZyYWdtZW50LXBhcmFtcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL3VybC9lbGRlci11cmwtZnJhZ21lbnQtcGFyYW1zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBRWpELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7OztBQUduRDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sNkJBQTZCO0lBWXhDOzs7O2dGQUk0RTtJQUU1RSxZQUNVLE1BQWMsRUFDZCxjQUE4QjtRQUQ5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBbEJ4Qzs7OztvRkFJNEU7UUFFM0QsU0FBSSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0RCxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFpQixjQUFjLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQVkzRixJQUFJLENBQUMsY0FBYzthQUNoQixRQUFRO2FBQ1IsU0FBUyxDQUNSLFFBQVEsQ0FBQyxFQUFFO1lBQ1QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUNGLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUU7O09BRUc7SUFDSSxTQUFTLENBQUMsTUFBc0I7UUFDckMsa0VBQWtFO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksWUFBWSxDQUFDLE1BQXNCO1FBQ3hDLGtFQUFrRTtRQUNsRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsZ0JBQWdCLENBQUMsTUFBc0I7UUFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTyxXQUFXLENBQUMsTUFBc0I7UUFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLGNBQWMsQ0FBQyxXQUEyQjtRQUNoRCxNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFOUMseUZBQXlGO1FBQ3pGLCtEQUErRDtRQUMvRCxNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFFBQWdCO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLCtCQUErQixHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUN2QixRQUFRLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxDQUFDO1lBQ3RDLFVBQVUsRUFBRSxJQUFJLEVBQUUsaURBQWlEO1lBQ25FLG1CQUFtQixFQUFFLE9BQU87U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLGNBQXNCO1FBRTdDLCtCQUErQjtRQUMvQixJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLE9BQU8sSUFBSSxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksY0FBYyxFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUVILENBQUM7OEdBekhVLDZCQUE2QjtrSEFBN0IsNkJBQTZCLGNBRjVCLE1BQU07OzJGQUVQLDZCQUE2QjtrQkFIekMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtVcmxRdWVyeVBhcmFtc30gZnJvbSAnLi91cmwtcXVlcnktcGFyYW1zJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuXG5cbi8qKlxuICogTWFuYWdlcyBiaWRpcmVjdGlvbmFsIGJpbmRpbmcgb2ZcbiAqIHF1ZXJ5IHBhcmFtcyB3aXRoaW4gdGhlIGN1cnJlbnQgVVJMIGZyYWdtZW50LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBFbGRlclVybEZyYWdtZW50UGFyYW1zU2VydmljZSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9xdWVyeVBhcmFtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFVybFF1ZXJ5UGFyYW1zPihVcmxRdWVyeVBhcmFtcy5lbXB0eSgpKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICkge1xuICAgIHRoaXMuYWN0aXZhdGVkUm91dGVcbiAgICAgIC5mcmFnbWVudFxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgZnJhZ21lbnQgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMucGFyc2VRdWVyeVBhcmFtcyhmcmFnbWVudCk7XG4gICAgICAgICAgdGhpcy51cGRhdGVNb2RlbChwYXJhbXMpO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGdldCBwYXJhbXMkKCk6IE9ic2VydmFibGU8VXJsUXVlcnlQYXJhbXM+IHtcbiAgICByZXR1cm4gdGhpcy5fcXVlcnlQYXJhbXMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBwYXJhbXMoKTogVXJsUXVlcnlQYXJhbXMge1xuICAgIHJldHVybiBuZXcgVXJsUXVlcnlQYXJhbXModGhpcy5fcXVlcnlQYXJhbXMkLmdldFZhbHVlKCkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFsbCBjdXJyZW50IHBhcmFtcyB3aXRoIHRoZSBnaXZlbiBvbmVzLlxuICAgKi9cbiAgcHVibGljIHNldFBhcmFtcyhwYXJhbXM6IFVybFF1ZXJ5UGFyYW1zKTogdm9pZCB7XG4gICAgLy8gQ3JlYXRlIG5ldyBpbnN0YW5jZSB0byB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24gb24gc3Vic2NyaWJlcnMuXG4gICAgY29uc3QgdXBkYXRlZCA9IG5ldyBVcmxRdWVyeVBhcmFtcyhwYXJhbXMpO1xuICAgIHRoaXMuc2V0Q3VycmVudFBhcmFtcyh1cGRhdGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBjdXJyZW50IHBhcmFtcyB3aXRoIHRoZSBnaXZlbiBvbmVzLCBlZmZlY3RpdmVseVxuICAgKiByZXN1bHRpbmcgaW4gYSBtZXJnZS5cbiAgICovXG4gIHB1YmxpYyB1cGRhdGVQYXJhbXMocGFyYW1zOiBVcmxRdWVyeVBhcmFtcyk6IHZvaWQge1xuICAgIC8vIENyZWF0ZSBuZXcgaW5zdGFuY2UgdG8gdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uIG9uIHN1YnNjcmliZXJzLlxuICAgIGNvbnN0IHVwZGF0ZWQgPSB0aGlzLnBhcmFtcztcbiAgICB1cGRhdGVkLnNldEFsbChwYXJhbXMuZ2V0QWxsKCkpO1xuICAgIHRoaXMuc2V0Q3VycmVudFBhcmFtcyh1cGRhdGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgYWxsIGN1cnJlbnQgcGFyYW1zLlxuICAgKi9cbiAgcHVibGljIGNsZWFyUGFyYW1zKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0Q3VycmVudFBhcmFtcyhVcmxRdWVyeVBhcmFtcy5lbXB0eSgpKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgc2V0Q3VycmVudFBhcmFtcyhwYXJhbXM6IFVybFF1ZXJ5UGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVNb2RlbChwYXJhbXMpO1xuICAgIHRoaXMudXBkYXRlRnJhZ21lbnQocGFyYW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTW9kZWwocGFyYW1zOiBVcmxRdWVyeVBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuX3F1ZXJ5UGFyYW1zJC5uZXh0KHBhcmFtcyk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUZyYWdtZW50KHF1ZXJ5UGFyYW1zOiBVcmxRdWVyeVBhcmFtcyk6IHZvaWQge1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zU3RyID0gcXVlcnlQYXJhbXMudG9TdHJpbmcoKTtcblxuICAgIC8vIFNpbmNlIGJvdGggVVJMU2VhcmNoUGFyYW1zLnRvU3RyaW5nIGFuZCBhbmd1bGFyIHJvdXRlci5uYXZpZ2F0ZSB1c2UgZW5jb2RlVVJJQ29tcG9uZW50XG4gICAgLy8gd2UgbmVlZCB0byBkZWNvZGUgdGhlIGNvbXBvbmVudCB0byBhdm9pZCBkdXBsaWNhdGUgZW5jb2RpbmcuXG4gICAgY29uc3QgZnJhZ21lbnRTdHIgPSBkZWNvZGVVUklDb21wb25lbnQocXVlcnlQYXJhbXNTdHIpO1xuICAgIHRoaXMucmVwbGFjZVVybEZyYWdtZW50KGZyYWdtZW50U3RyKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVwbGFjZVVybEZyYWdtZW50KGZyYWdtZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9sb2cudHJhY2UoJ1JlcGxhY2luZyBVUkwgZnJhZ21lbnQgd2l0aDogJyArIGZyYWdtZW50KTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgZnJhZ21lbnQ6IGRlY29kZVVSSUNvbXBvbmVudChmcmFnbWVudCksXG4gICAgICByZXBsYWNlVXJsOiB0cnVlLCAvLyBpZiB0cnVlLCB3b24ndCBhZGQgYSBuZXcgYnJvd3NlciBoaXN0b3J5IGVudHJ5XG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlUXVlcnlQYXJhbXMocXVlcnlQYXJhbXNTdHI6IHN0cmluZyk6IFVybFF1ZXJ5UGFyYW1zIHtcblxuICAgIC8vIGF2b2lkcyBpbnZhbGlkIHNlYXJjaCBwYXJhbXNcbiAgICBpZiAocXVlcnlQYXJhbXNTdHIpIHtcbiAgICAgIHJldHVybiBuZXcgVXJsUXVlcnlQYXJhbXMocXVlcnlQYXJhbXNTdHIpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmV3IFVybFF1ZXJ5UGFyYW1zKCk7XG4gICAgfVxuXG4gIH1cblxuXG59XG4iXX0=
@@ -130,4 +130,4 @@ export class UrlQueryParams {
130
130
  return this._searchParams.toString();
131
131
  }
132
132
  }
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLXF1ZXJ5LXBhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi91cmwvdXJsLXF1ZXJ5LXBhcmFtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBYXZCOzs7O2dGQUk0RTtJQUU1RTs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFLO1FBQ2YsT0FBTyxJQUFJLGNBQWMsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBc0I7UUFDdEMsT0FBTyxJQUFJLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLFlBQW1CLElBQXNGO1FBRXJHLElBQUksSUFBSSxZQUFZLGNBQWMsRUFBRTtZQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQzdEO2FBQU07WUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2xEO0lBQ0wsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RTs7O09BR0c7SUFDSSxNQUFNLENBQUMsR0FBVyxFQUFFLEtBQWE7UUFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxTQUFTLENBQUMsTUFBMkI7UUFDeEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDeEQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEdBQVc7UUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUyxDQUFDLElBQWM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBYTtRQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxNQUEyQjtRQUNyQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNyRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxHQUFHLENBQUMsR0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNJLEdBQUcsQ0FBQyxHQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUSxDQUFDLEdBQVc7UUFDdkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNO1FBQ1QsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUFDNUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVM7UUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDVixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxRQUFRO1FBQ1gsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7Q0FRSiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVXRpbGl0eSBjbGFzcyBmb3IgaGFuZGxpbmcgcXVlcnkgcGFyYW1zLlxuICovXG5leHBvcnQgY2xhc3MgVXJsUXVlcnlQYXJhbXMge1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIC8qKlxuICAgICAqIEludGVybmFsIGRhdGEgY29udGV4dCBob2xkaW5nIGFsbCBxdWVyeSBwYXJhbXMuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc2VhcmNoUGFyYW1zOiBVUkxTZWFyY2hQYXJhbXM7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqIFN0YXRpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBlbXB0eSBVcmxRdWVyeVBhcmFtcyBvYmplY3QuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBlbXB0eSgpOiBVcmxRdWVyeVBhcmFtcyB7XG4gICAgICAgIHJldHVybiBuZXcgVXJsUXVlcnlQYXJhbXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXJzZXMgdGhlIGdpdmVuIHN0cmluZyBpbnRvIGEgVXJsUXVlcnlQYXJhbXMgb2JqZWN0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcGFyc2UocXVlcnlQYXJhbXNTdHI6IHN0cmluZyk6IFVybFF1ZXJ5UGFyYW1zIHtcbiAgICAgICAgcmV0dXJuIG5ldyBVcmxRdWVyeVBhcmFtcyhxdWVyeVBhcmFtc1N0cik7XG4gICAgfVxuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihpbml0Pzogc3RyaW5nW11bXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCBzdHJpbmcgfCBVUkxTZWFyY2hQYXJhbXMgfCBVcmxRdWVyeVBhcmFtcykge1xuXG4gICAgICAgIGlmIChpbml0IGluc3RhbmNlb2YgVXJsUXVlcnlQYXJhbXMpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoaW5pdC50b1N0cmluZygpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoaW5pdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgLyoqXG4gICAgICogQXBwZW5kcyBhIG5ldyBxdWVyeSBwYXJhbWV0ZXIgd2l0aCB0aGUgZ2l2ZW4ga2V5IC8gdmFsdWUsXG4gICAgICogcmVnYXJkbGVzcyBpZiB0aGUgc2FtZSBwYXJhbWV0ZXIgaXMgYWxyZWFkeSBwcmVzZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBhcHBlbmQoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fc2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXBwZW5kcyBlYWNoIG9mIHRoZSBnaXZlbiBwYXJhbWV0ZXJzIGFzIG5ldyBxdWVyeSBwYXJhbWV0ZXIsXG4gICAgICogcmVnYXJkbGVzcyBpZiB0aGUgc2FtZSBwYXJhbWV0ZXIgaXMgYWxyZWFkeSBwcmVzZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBhcHBlbmRBbGwocGFyYW1zOiBNYXA8c3RyaW5nLCBzdHJpbmc+KTogdGhpcyB7XG4gICAgICAgIHBhcmFtcy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB0aGlzLmFwcGVuZChrZXksIHZhbHVlKSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdGhlIGdpdmVuIHF1ZXJ5IHBhcmFtZXRlciBpZiBwcmVzZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmUoa2V5OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fc2VhcmNoUGFyYW1zLmRlbGV0ZShrZXkpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGFsbCBnaXZlbiBxdWVyeSBwYXJhbWV0ZXJzIGlmIHByZXNlbnQuXG4gICAgICovXG4gICAgcHVibGljIHJlbW92ZUFsbChrZXlzOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHRoaXMucmVtb3ZlKGtleSkpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSBnaXZlbiBxdWVyeSBwYXJhbWV0ZXIgd2l0aCB0aGUgZ2l2ZW4gbmV3IHZhbHVlLlxuICAgICAqIElmIG11bHRpcGxlIHdpdGggdGhlIHNhbWUga2V5IGV4aXN0cywgdGhleSB3aWxsIGJlIHJlbW92ZWQuXG4gICAgICogSWYgdGhlIGtleSBkb2VzIG5vdCBleGlzdCwgdGhlIHF1ZXJ5IHBhcmFtIHdpbGwgYmUgYWRkZWQuXG4gICAgICovXG4gICAgcHVibGljIHNldChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9zZWFyY2hQYXJhbXMuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIGVhY2ggcGFyYW1ldGVyIHdpdGggdGhlIGdpdmVuIHZhbHVlLlxuICAgICAqIEVhY2ggZW50cnkgd2lsbCBiZSBhZGRlZCB1c2luZyB0aGUgc2V0KGtleSwgdmFsdWUpIGxvZ2ljLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRBbGwocGFyYW1zOiBNYXA8c3RyaW5nLCBzdHJpbmc+KTogdGhpcyB7XG4gICAgICAgIHBhcmFtcy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB0aGlzLnNldChrZXksIHZhbHVlKSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiBhIHF1ZXJ5IHBhcmFtZXRlciB3aXRoIHRoZSBnaXZlbiBrZXkgZXhpc3RzLlxuICAgICAqL1xuICAgIHB1YmxpYyBoYXMoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlYXJjaFBhcmFtcy5oYXMoa2V5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBmaXJzdCB2YWx1ZSBvZiB0aGUgYXNzb2NpYXRlZCBxdWVyeSBwYXJhbS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlYXJjaFBhcmFtcy5nZXQoa2V5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFsbCB2YWx1ZXMgb2YgdGhlIGFzc29jaWF0ZWQgcXVlcnkgcGFyYW1zLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRBbGxPZihrZXk6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlYXJjaFBhcmFtcy5nZXRBbGwoa2V5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgbWFwIHdpdGggYWxsIGtleS12YWx1ZSBwYWlycy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0QWxsKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICBjb25zdCBwYXJhbXNNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICAgICAgICB0aGlzLl9zZWFyY2hQYXJhbXMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4gcGFyYW1zTWFwLnNldChrZXksIHZhbHVlKSk7XG4gICAgICAgIHJldHVybiBwYXJhbXNNYXA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIG9ubHkgaWYgdGhlcmUgYXJlIGFueSBxdWVyeSBwYXJhbWV0ZXJzIHByZXNlbnQuXG4gICAgICovXG4gICAgcHVibGljIGhhc1BhcmFtcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzRW1wdHkoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gdHJ1ZSBvbmx5IGlmIHRoZXJlIGFyZSBubyBxdWVyeSBwYXJhbWV0ZXJzIHByZXNlbnQuXG4gICAgICovXG4gICAgcHVibGljIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFsbCgpLnNpemUgPT09IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIHN0cmluZyBjb250YWluaW5nIGFsbCBxdWVyeSBwYXJhbWV0ZXJzIGluIFVSTCBjb25mb3JtIGZhc2hpb24uXG4gICAgICogKFJldHVybnMgYW4gZW1wdHkgc3RyaW5nIGlmIG5vIHF1ZXJ5IHBhcmFtZXRlcnMgaGF2ZSBiZWVuIHNldCkuXG4gICAgICovXG4gICAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWFyY2hQYXJhbXMudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG59XG4iXX0=
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLXF1ZXJ5LXBhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi91cmwvdXJsLXF1ZXJ5LXBhcmFtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBYXZCOzs7O2dGQUk0RTtJQUU1RTs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFLO1FBQ2YsT0FBTyxJQUFJLGNBQWMsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBc0I7UUFDdEMsT0FBTyxJQUFJLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLFlBQW1CLElBQXNGO1FBRXJHLElBQUksSUFBSSxZQUFZLGNBQWMsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDOUQsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxHQUFXLEVBQUUsS0FBYTtRQUNwQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFNBQVMsQ0FBQyxNQUEyQjtRQUN4QyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN4RCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsR0FBVztRQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsSUFBYztRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFhO1FBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLE1BQTJCO1FBQ3JDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNJLEdBQUcsQ0FBQyxHQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksR0FBRyxDQUFDLEdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRLENBQUMsR0FBVztRQUN2QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU07UUFDVCxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQUM1QyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEUsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUztRQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTztRQUNWLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekMsQ0FBQztDQVFKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVdGlsaXR5IGNsYXNzIGZvciBoYW5kbGluZyBxdWVyeSBwYXJhbXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBVcmxRdWVyeVBhcmFtcyB7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgLyoqXG4gICAgICogSW50ZXJuYWwgZGF0YSBjb250ZXh0IGhvbGRpbmcgYWxsIHF1ZXJ5IHBhcmFtcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zZWFyY2hQYXJhbXM6IFVSTFNlYXJjaFBhcmFtcztcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogU3RhdGljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGVtcHR5IFVybFF1ZXJ5UGFyYW1zIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGVtcHR5KCk6IFVybFF1ZXJ5UGFyYW1zIHtcbiAgICAgICAgcmV0dXJuIG5ldyBVcmxRdWVyeVBhcmFtcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhcnNlcyB0aGUgZ2l2ZW4gc3RyaW5nIGludG8gYSBVcmxRdWVyeVBhcmFtcyBvYmplY3QuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBwYXJzZShxdWVyeVBhcmFtc1N0cjogc3RyaW5nKTogVXJsUXVlcnlQYXJhbXMge1xuICAgICAgICByZXR1cm4gbmV3IFVybFF1ZXJ5UGFyYW1zKHF1ZXJ5UGFyYW1zU3RyKTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGluaXQ/OiBzdHJpbmdbXVtdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHN0cmluZyB8IFVSTFNlYXJjaFBhcmFtcyB8IFVybFF1ZXJ5UGFyYW1zKSB7XG5cbiAgICAgICAgaWYgKGluaXQgaW5zdGFuY2VvZiBVcmxRdWVyeVBhcmFtcykge1xuICAgICAgICAgICAgdGhpcy5fc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhpbml0LnRvU3RyaW5nKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhpbml0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICAvKipcbiAgICAgKiBBcHBlbmRzIGEgbmV3IHF1ZXJ5IHBhcmFtZXRlciB3aXRoIHRoZSBnaXZlbiBrZXkgLyB2YWx1ZSxcbiAgICAgKiByZWdhcmRsZXNzIGlmIHRoZSBzYW1lIHBhcmFtZXRlciBpcyBhbHJlYWR5IHByZXNlbnQuXG4gICAgICovXG4gICAgcHVibGljIGFwcGVuZChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9zZWFyY2hQYXJhbXMuYXBwZW5kKGtleSwgdmFsdWUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBcHBlbmRzIGVhY2ggb2YgdGhlIGdpdmVuIHBhcmFtZXRlcnMgYXMgbmV3IHF1ZXJ5IHBhcmFtZXRlcixcbiAgICAgKiByZWdhcmRsZXNzIGlmIHRoZSBzYW1lIHBhcmFtZXRlciBpcyBhbHJlYWR5IHByZXNlbnQuXG4gICAgICovXG4gICAgcHVibGljIGFwcGVuZEFsbChwYXJhbXM6IE1hcDxzdHJpbmcsIHN0cmluZz4pOiB0aGlzIHtcbiAgICAgICAgcGFyYW1zLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHRoaXMuYXBwZW5kKGtleSwgdmFsdWUpKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyB0aGUgZ2l2ZW4gcXVlcnkgcGFyYW1ldGVyIGlmIHByZXNlbnQuXG4gICAgICovXG4gICAgcHVibGljIHJlbW92ZShrZXk6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9zZWFyY2hQYXJhbXMuZGVsZXRlKGtleSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYWxsIGdpdmVuIHF1ZXJ5IHBhcmFtZXRlcnMgaWYgcHJlc2VudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlQWxsKGtleXM6IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gdGhpcy5yZW1vdmUoa2V5KSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIGdpdmVuIHF1ZXJ5IHBhcmFtZXRlciB3aXRoIHRoZSBnaXZlbiBuZXcgdmFsdWUuXG4gICAgICogSWYgbXVsdGlwbGUgd2l0aCB0aGUgc2FtZSBrZXkgZXhpc3RzLCB0aGV5IHdpbGwgYmUgcmVtb3ZlZC5cbiAgICAgKiBJZiB0aGUga2V5IGRvZXMgbm90IGV4aXN0LCB0aGUgcXVlcnkgcGFyYW0gd2lsbCBiZSBhZGRlZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3NlYXJjaFBhcmFtcy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgZWFjaCBwYXJhbWV0ZXIgd2l0aCB0aGUgZ2l2ZW4gdmFsdWUuXG4gICAgICogRWFjaCBlbnRyeSB3aWxsIGJlIGFkZGVkIHVzaW5nIHRoZSBzZXQoa2V5LCB2YWx1ZSkgbG9naWMuXG4gICAgICovXG4gICAgcHVibGljIHNldEFsbChwYXJhbXM6IE1hcDxzdHJpbmcsIHN0cmluZz4pOiB0aGlzIHtcbiAgICAgICAgcGFyYW1zLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHRoaXMuc2V0KGtleSwgdmFsdWUpKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIGEgcXVlcnkgcGFyYW1ldGVyIHdpdGggdGhlIGdpdmVuIGtleSBleGlzdHMuXG4gICAgICovXG4gICAgcHVibGljIGhhcyhrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VhcmNoUGFyYW1zLmhhcyhrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGZpcnN0IHZhbHVlIG9mIHRoZSBhc3NvY2lhdGVkIHF1ZXJ5IHBhcmFtLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VhcmNoUGFyYW1zLmdldChrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYWxsIHZhbHVlcyBvZiB0aGUgYXNzb2NpYXRlZCBxdWVyeSBwYXJhbXMuXG4gICAgICovXG4gICAgcHVibGljIGdldEFsbE9mKGtleTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VhcmNoUGFyYW1zLmdldEFsbChrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBtYXAgd2l0aCBhbGwga2V5LXZhbHVlIHBhaXJzLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRBbGwoKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IHBhcmFtc01hcCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gICAgICAgIHRoaXMuX3NlYXJjaFBhcmFtcy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiBwYXJhbXNNYXAuc2V0KGtleSwgdmFsdWUpKTtcbiAgICAgICAgcmV0dXJuIHBhcmFtc01hcDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRydWUgb25seSBpZiB0aGVyZSBhcmUgYW55IHF1ZXJ5IHBhcmFtZXRlcnMgcHJlc2VudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaGFzUGFyYW1zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNFbXB0eSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybiB0cnVlIG9ubHkgaWYgdGhlcmUgYXJlIG5vIHF1ZXJ5IHBhcmFtZXRlcnMgcHJlc2VudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWxsKCkuc2l6ZSA9PT0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgYWxsIHF1ZXJ5IHBhcmFtZXRlcnMgaW4gVVJMIGNvbmZvcm0gZmFzaGlvbi5cbiAgICAgKiAoUmV0dXJucyBhbiBlbXB0eSBzdHJpbmcgaWYgbm8gcXVlcnkgcGFyYW1ldGVycyBoYXZlIGJlZW4gc2V0KS5cbiAgICAgKi9cbiAgICBwdWJsaWMgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlYXJjaFBhcmFtcy50b1N0cmluZygpO1xuICAgIH1cblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbn1cbiJdfQ==
@@ -32,4 +32,4 @@ export class Batcher {
32
32
  return batches;
33
33
  }
34
34
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi91dGlscy9iYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sT0FBTyxPQUFPO0lBRWxCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FDakIsS0FBVSxFQUNWLFNBQWlCO1FBRWpCLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQ3BCLEtBQVUsRUFDVixTQUFpQixFQUNqQixNQUF5QjtRQUd6QixJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQy9CLE9BQU8sRUFBRSxDQUFDLENBQUMsbUJBQW1CO1NBQy9CO1FBRUQsSUFBSSxTQUFTLElBQUksQ0FBQyxFQUFFO1lBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLEdBQUcsU0FBUyxDQUFDLENBQUM7U0FDakU7UUFFRCxNQUFNLE9BQU8sR0FBUSxFQUFFLENBQUM7UUFFeEIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxLQUFLLEdBQVEsRUFBRSxDQUFDO1FBRXBCLEdBQUc7WUFDRCxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLFNBQVMsQ0FBQyxDQUFDO1lBQzlDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLEtBQUssR0FBRyxLQUFLLEdBQUcsU0FBUyxDQUFDO2FBQzNCO1NBQ0YsUUFBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUUxQixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBjbGFzcyBCYXRjaGVyIHtcblxuICAvKipcbiAgICogQmF0Y2hlcyB0aGUgZ2l2ZW4gaXRlbXMgaW50byBiYXRjaGVzIG9mIHRoZSBnaXZlbiBzaXplLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBiYXRjaDxWPihcbiAgICBpdGVtczogVltdLFxuICAgIGJhdGNoU2l6ZTogbnVtYmVyXG4gICk6IFZbXVtdIHtcbiAgICByZXR1cm4gQmF0Y2hlci5iYXRjaE1hcChpdGVtcywgYmF0Y2hTaXplLCBzbGljZSA9PiBzbGljZSk7XG4gIH1cblxuICAvKipcbiAgICogQmF0Y2hlcyB0aGUgZ2l2ZW4gaXRlbXMgaW50byBiYXRjaGVzIG9mIHRoZSBnaXZlbiBzaXplLCBhbmRcbiAgICogYXBwbGllcyBhIG1hcHBpbmcgZnVuY3Rpb24gdG8gZWFjaCBiYXRjaC5cbiAgICogQHBhcmFtIGl0ZW1zXG4gICAqIEBwYXJhbSBiYXRjaFNpemVcbiAgICogQHBhcmFtIG1hcHBlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBiYXRjaE1hcDxWLCBSPihcbiAgICBpdGVtczogVltdLFxuICAgIGJhdGNoU2l6ZTogbnVtYmVyLFxuICAgIG1hcHBlcjogKHNsaWNlOiBWW10pID0+IFJcbiAgKTogUltdIHtcblxuICAgIGlmICghaXRlbXMgfHwgaXRlbXMubGVuZ3RoIDw9IDApIHtcbiAgICAgIHJldHVybiBbXTsgLy8gTm90aGluZyB0byBiYXRjaFxuICAgIH1cblxuICAgIGlmIChiYXRjaFNpemUgPD0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdCYXRjaCBzaXplIG11c3QgYmUgPj0gMCBidXQgd2FzICcgKyBiYXRjaFNpemUpO1xuICAgIH1cblxuICAgIGNvbnN0IGJhdGNoZXM6IFJbXSA9IFtdO1xuXG4gICAgbGV0IHN0YXJ0ID0gMDtcbiAgICBsZXQgc2xpY2U6IFZbXSA9IFtdO1xuXG4gICAgZG8ge1xuICAgICAgc2xpY2UgPSBpdGVtcy5zbGljZShzdGFydCwgc3RhcnQgKyBiYXRjaFNpemUpO1xuICAgICAgaWYgKHNsaWNlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgYmF0Y2hlcy5wdXNoKG1hcHBlcihzbGljZSkpO1xuICAgICAgICBzdGFydCA9IHN0YXJ0ICsgYmF0Y2hTaXplO1xuICAgICAgfVxuICAgIH13aGlsZSAoc2xpY2UubGVuZ3RoID4gMCk7XG5cbiAgICByZXR1cm4gYmF0Y2hlcztcbiAgfVxuXG59XG5cblxuXG5cbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi91dGlscy9iYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sT0FBTyxPQUFPO0lBRWxCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FDakIsS0FBVSxFQUNWLFNBQWlCO1FBRWpCLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQ3BCLEtBQVUsRUFDVixTQUFpQixFQUNqQixNQUF5QjtRQUd6QixJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTyxFQUFFLENBQUMsQ0FBQyxtQkFBbUI7UUFDaEMsQ0FBQztRQUVELElBQUksU0FBUyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFRLEVBQUUsQ0FBQztRQUV4QixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLEtBQUssR0FBUSxFQUFFLENBQUM7UUFFcEIsR0FBRyxDQUFDO1lBQ0YsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQztZQUM5QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLEtBQUssR0FBRyxLQUFLLEdBQUcsU0FBUyxDQUFDO1lBQzVCLENBQUM7UUFDSCxDQUFDLFFBQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFFMUIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgY2xhc3MgQmF0Y2hlciB7XG5cbiAgLyoqXG4gICAqIEJhdGNoZXMgdGhlIGdpdmVuIGl0ZW1zIGludG8gYmF0Y2hlcyBvZiB0aGUgZ2l2ZW4gc2l6ZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYmF0Y2g8Vj4oXG4gICAgaXRlbXM6IFZbXSxcbiAgICBiYXRjaFNpemU6IG51bWJlclxuICApOiBWW11bXSB7XG4gICAgcmV0dXJuIEJhdGNoZXIuYmF0Y2hNYXAoaXRlbXMsIGJhdGNoU2l6ZSwgc2xpY2UgPT4gc2xpY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJhdGNoZXMgdGhlIGdpdmVuIGl0ZW1zIGludG8gYmF0Y2hlcyBvZiB0aGUgZ2l2ZW4gc2l6ZSwgYW5kXG4gICAqIGFwcGxpZXMgYSBtYXBwaW5nIGZ1bmN0aW9uIHRvIGVhY2ggYmF0Y2guXG4gICAqIEBwYXJhbSBpdGVtc1xuICAgKiBAcGFyYW0gYmF0Y2hTaXplXG4gICAqIEBwYXJhbSBtYXBwZXJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYmF0Y2hNYXA8ViwgUj4oXG4gICAgaXRlbXM6IFZbXSxcbiAgICBiYXRjaFNpemU6IG51bWJlcixcbiAgICBtYXBwZXI6IChzbGljZTogVltdKSA9PiBSXG4gICk6IFJbXSB7XG5cbiAgICBpZiAoIWl0ZW1zIHx8IGl0ZW1zLmxlbmd0aCA8PSAwKSB7XG4gICAgICByZXR1cm4gW107IC8vIE5vdGhpbmcgdG8gYmF0Y2hcbiAgICB9XG5cbiAgICBpZiAoYmF0Y2hTaXplIDw9IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQmF0Y2ggc2l6ZSBtdXN0IGJlID49IDAgYnV0IHdhcyAnICsgYmF0Y2hTaXplKTtcbiAgICB9XG5cbiAgICBjb25zdCBiYXRjaGVzOiBSW10gPSBbXTtcblxuICAgIGxldCBzdGFydCA9IDA7XG4gICAgbGV0IHNsaWNlOiBWW10gPSBbXTtcblxuICAgIGRvIHtcbiAgICAgIHNsaWNlID0gaXRlbXMuc2xpY2Uoc3RhcnQsIHN0YXJ0ICsgYmF0Y2hTaXplKTtcbiAgICAgIGlmIChzbGljZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGJhdGNoZXMucHVzaChtYXBwZXIoc2xpY2UpKTtcbiAgICAgICAgc3RhcnQgPSBzdGFydCArIGJhdGNoU2l6ZTtcbiAgICAgIH1cbiAgICB9d2hpbGUgKHNsaWNlLmxlbmd0aCA+IDApO1xuXG4gICAgcmV0dXJuIGJhdGNoZXM7XG4gIH1cblxufVxuXG5cblxuXG4iXX0=
@@ -106,4 +106,4 @@ export class CollectionUtil {
106
106
  return list !== null && list !== undefined && list.length > 0;
107
107
  }
108
108
  }
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL3V0aWxzL2NvbGxlY3Rpb24tdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsV0FBVztBQUNYLE1BQU0sT0FBTyxjQUFjO2FBRUQsV0FBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUdwRSxNQUFNLENBQUMsT0FBTyxDQUFJLE1BQWE7UUFDcEMsT0FBTyxNQUFNO2FBQ1YsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUksS0FBVSxFQUFFLE1BQVM7UUFFN0MsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUFFLE9BQU8sS0FBSyxDQUFDO1NBQUU7UUFFdkMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV2QyxJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUU7WUFFakIsTUFBTSxXQUFXLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUNqQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLEVBQUU7Z0JBQzNCLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3JDLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FB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Q0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuXG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb25VdGlsIHtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcignQ29sbGVjdGlvblV0aWwnKTtcblxuXG4gIHB1YmxpYyBzdGF0aWMgZmxhdHRlbjxUPihncm91cHM6IFRbXVtdKTogVFtdIHtcbiAgICByZXR1cm4gZ3JvdXBzXG4gICAgICAucmVkdWNlKChhY2MsIHZhbCkgPT4gYWNjLmNvbmNhdCh2YWwpLCBbXSk7XG4gIH1cblxuICAvKipcbiAgICogTW92ZXMgdGhlIGdpdmVuIGl0ZW0gZG93biBpbiB0aGUgZ2l2ZW4gYXJyYXkgLSBpZiBub3QgYWxyZWFkeSBhdCB0aGUgYm90dG9tXG4gICAqIEBwYXJhbSBpdGVtc1xuICAgKiBAcGFyYW0gdG9Nb3ZlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG1vdmVEb3duPFQ+KGl0ZW1zOiBUW10sIHRvTW92ZTogVCk6IGJvb2xlYW4ge1xuXG4gICAgaWYgKGl0ZW1zLmxlbmd0aCA8IDIpIHsgcmV0dXJuIGZhbHNlOyB9XG5cbiAgICBjb25zdCBwb3NpdGlvbiA9IGl0ZW1zLmluZGV4T2YodG9Nb3ZlKTtcblxuICAgIGlmIChwb3NpdGlvbiA+PSAwKSB7XG5cbiAgICAgIGNvbnN0IHRhcmdldEluZGV4ID0gcG9zaXRpb24gKyAxO1xuICAgICAgY29uc3QgYm90dG9tID0gaXRlbXMubGVuZ3RoIC0gMTtcbiAgICAgIGlmICghKGJvdHRvbSA8IHRhcmdldEluZGV4KSkge1xuICAgICAgICBpdGVtc1twb3NpdGlvbl0gPSBpdGVtc1t0YXJnZXRJbmRleF07XG4gICAgICAgIGl0ZW1zW3RhcmdldEluZGV4XSA9IHRvTW92ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQ2FuIG5vdCBtb3ZlIGl0ZW0gZG93biBzaW5jZSB0YXJnZXQgaW5kZXggJyArIHRhcmdldEluZGV4ICsgJyBpcyBhbHJlYWR5IGF0IHRoZSBib3R0b206ICcgKyBib3R0b20pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogTW92ZXMgdGhlIGdpdmVuIGl0ZW0gdXAgaW4gdGhlIGdpdmVuIGFycmF5IC0gaWYgbm90IGFscmVhZHkgYXQgdGhlIHRvcFxuICAgKiBAcGFyYW0gaXRlbXNcbiAgICogQHBhcmFtIHRvTW92ZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBtb3ZlVXA8VD4oaXRlbXM6IFRbXSwgdG9Nb3ZlOiBUKTogYm9vbGVhbiB7XG5cbiAgICBpZiAoaXRlbXMubGVuZ3RoIDwgMikgeyByZXR1cm4gZmFsc2U7IH1cblxuICAgIGNvbnN0IHBvc2l0aW9uID0gaXRlbXMuaW5kZXhPZih0b01vdmUpO1xuXG4gICAgaWYgKHBvc2l0aW9uID49IDApIHtcblxuICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBwb3NpdGlvbiAtIDE7XG5cbiAgICAgIGlmICh0YXJnZXRJbmRleCA+PSAwKSB7XG4gICAgICAgIGl0ZW1zW3Bvc2l0aW9uXSA9IGl0ZW1zW3RhcmdldEluZGV4XTtcbiAgICAgICAgaXRlbXNbdGFyZ2V0SW5kZXhdID0gdG9Nb3ZlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyb3VwcyB0aGUgZ2l2ZW4gaXRlbXMgYnkgdGhlIGdpdmVuIGZpZWxkIGludG8gYSBNYXBcbiAgICovXG4gIC8vIEBkeW5hbWljXG4gIHB1YmxpYyBzdGF0aWMgZ3JvdXBCeUZpZWxkPEcsIFQ+KGl0ZW1zOiBUW10sIGZpZWxkOiBzdHJpbmcpOiBNYXA8RywgVFtdPiB7XG4gICAgcmV0dXJuIENvbGxlY3Rpb25VdGlsLmdyb3VwQnlLZXkoaXRlbXMsIGl0ID0+IChpdCBhcyBhbnkpW2ZpZWxkXSBhcyBHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcm91cHMgdGhlIGdpdmVuIGl0ZW1zLCB1c2luZyB0aGUgZ3JvdXAga2V5IGdldHRlciwgaW50byBhIE1hcFxuICAgKiBAZHluYW1pY1xuICAgKi9cbiAgLy8gQGR5bmFtaWNcbiAgcHVibGljIHN0YXRpYyBncm91cEJ5S2V5PEcsIFQ+KGl0ZW1zOiBUW10sIGtleUdldHRlcjogKChpdGVtOiBUKSA9PiBHKSk6IE1hcDxHLCBUW10+IHtcblxuICAgIHJldHVybiBpdGVtcy5yZWR1Y2UoKG1hcCwgcCkgPT4ge1xuXG4gICAgICBsZXQgc3Vic2V0OiBUW107XG5cbiAgICAgIGNvbnN0IGtleSA9IGtleUdldHRlcihwKTtcblxuICAgICAgaWYgKG1hcC5oYXMoa2V5KSkge1xuICAgICAgICBzdWJzZXQgPSBtYXAuZ2V0KGtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdWJzZXQgPSBbXTtcbiAgICAgICAgbWFwLnNldChrZXksIHN1YnNldCk7XG4gICAgICB9XG4gICAgICBzdWJzZXQucHVzaChwKTtcbiAgICAgIHJldHVybiBtYXA7XG4gICAgfSwgbmV3IE1hcCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXJlcyB0d28gc2V0cyB2YWx1ZXMgZGVlcC5cbiAgICogSWYgYm90aCBzZXRzIGhhdmUgdGhlIHNhbWUgaXRlbXMsIHRoZXkgYXJlIGNvbnNpZGVyZWQgZXF1YWwuXG4gICAqXG4gICAqIFdhcm5pbmc6IER1cGxpY2F0ZSBlbGVtZW50cyBhcmUgaWdub3JlZC5cbiAgICogQHBhcmFtIGFTZXRcbiAgICogQHBhcmFtIGJTZXRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXF1YWxTZXREZWVwPFQ+KGFTZXQ6IFNldDxUPiwgYlNldDogU2V0PFQ+KTogYm9vbGVhbiB7XG5cbiAgICBpZiAoYVNldCA9PT0gYlNldCkgeyByZXR1cm4gdHJ1ZTsgfVxuXG4gICAgaWYgKCFhU2V0IHx8ICFiU2V0KSB7IHJldHVybiBmYWxzZTsgfVxuICAgIGlmIChhU2V0LnNpemUgIT09IGJTZXQuc2l6ZSkgeyByZXR1cm4gZmFsc2U7IH0gLy8gTXVzdCBoYXZlIHNhbWUgbGVuZ3RoXG5cbiAgICBmb3IgKGNvbnN0IGEgb2YgYVNldCkge1xuICAgICAgaWYgKCFiU2V0LmhhcyhhKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBoYXNFbGVtZW50cyhsaXN0OiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBsaXN0ICE9PSBudWxsICYmIGxpc3QgIT09IHVuZGVmaW5lZCAmJiBsaXN0Lmxlbmd0aCA+IDA7XG4gIH1cblxufVxuXG5cbiJdfQ==
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL3V0aWxzL2NvbGxlY3Rpb24tdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsV0FBVztBQUNYLE1BQU0sT0FBTyxjQUFjO2FBRUQsV0FBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUdwRSxNQUFNLENBQUMsT0FBTyxDQUFJLE1BQWE7UUFDcEMsT0FBTyxNQUFNO2FBQ1YsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUksS0FBVSxFQUFFLE1BQVM7UUFFN0MsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQUMsT0FBTyxLQUFLLENBQUM7UUFBQyxDQUFDO1FBRXZDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdkMsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFLENBQUM7WUFFbEIsTUFBTSxXQUFXLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUNqQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDckMsS0FB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QU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBVztRQUNuQyxPQUFPLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgQ29sbGVjdGlvblV0aWwge1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKCdDb2xsZWN0aW9uVXRpbCcpO1xuXG5cbiAgcHVibGljIHN0YXRpYyBmbGF0dGVuPFQ+KGdyb3VwczogVFtdW10pOiBUW10ge1xuICAgIHJldHVybiBncm91cHNcbiAgICAgIC5yZWR1Y2UoKGFjYywgdmFsKSA9PiBhY2MuY29uY2F0KHZhbCksIFtdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlcyB0aGUgZ2l2ZW4gaXRlbSBkb3duIGluIHRoZSBnaXZlbiBhcnJheSAtIGlmIG5vdCBhbHJlYWR5IGF0IHRoZSBib3R0b21cbiAgICogQHBhcmFtIGl0ZW1zXG4gICAqIEBwYXJhbSB0b01vdmVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbW92ZURvd248VD4oaXRlbXM6IFRbXSwgdG9Nb3ZlOiBUKTogYm9vbGVhbiB7XG5cbiAgICBpZiAoaXRlbXMubGVuZ3RoIDwgMikgeyByZXR1cm4gZmFsc2U7IH1cblxuICAgIGNvbnN0IHBvc2l0aW9uID0gaXRlbXMuaW5kZXhPZih0b01vdmUpO1xuXG4gICAgaWYgKHBvc2l0aW9uID49IDApIHtcblxuICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBwb3NpdGlvbiArIDE7XG4gICAgICBjb25zdCBib3R0b20gPSBpdGVtcy5sZW5ndGggLSAxO1xuICAgICAgaWYgKCEoYm90dG9tIDwgdGFyZ2V0SW5kZXgpKSB7XG4gICAgICAgIGl0ZW1zW3Bvc2l0aW9uXSA9IGl0ZW1zW3RhcmdldEluZGV4XTtcbiAgICAgICAgaXRlbXNbdGFyZ2V0SW5kZXhdID0gdG9Nb3ZlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdDYW4gbm90IG1vdmUgaXRlbSBkb3duIHNpbmNlIHRhcmdldCBpbmRleCAnICsgdGFyZ2V0SW5kZXggKyAnIGlzIGFscmVhZHkgYXQgdGhlIGJvdHRvbTogJyArIGJvdHRvbSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlcyB0aGUgZ2l2ZW4gaXRlbSB1cCBpbiB0aGUgZ2l2ZW4gYXJyYXkgLSBpZiBub3QgYWxyZWFkeSBhdCB0aGUgdG9wXG4gICAqIEBwYXJhbSBpdGVtc1xuICAgKiBAcGFyYW0gdG9Nb3ZlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG1vdmVVcDxUPihpdGVtczogVFtdLCB0b01vdmU6IFQpOiBib29sZWFuIHtcblxuICAgIGlmIChpdGVtcy5sZW5ndGggPCAyKSB7IHJldHVybiBmYWxzZTsgfVxuXG4gICAgY29uc3QgcG9zaXRpb24gPSBpdGVtcy5pbmRleE9mKHRvTW92ZSk7XG5cbiAgICBpZiAocG9zaXRpb24gPj0gMCkge1xuXG4gICAgICBjb25zdCB0YXJnZXRJbmRleCA9IHBvc2l0aW9uIC0gMTtcblxuICAgICAgaWYgKHRhcmdldEluZGV4ID49IDApIHtcbiAgICAgICAgaXRlbXNbcG9zaXRpb25dID0gaXRlbXNbdGFyZ2V0SW5kZXhdO1xuICAgICAgICBpdGVtc1t0YXJnZXRJbmRleF0gPSB0b01vdmU7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogR3JvdXBzIHRoZSBnaXZlbiBpdGVtcyBieSB0aGUgZ2l2ZW4gZmllbGQgaW50byBhIE1hcFxuICAgKi9cbiAgLy8gQGR5bmFtaWNcbiAgcHVibGljIHN0YXRpYyBncm91cEJ5RmllbGQ8RywgVD4oaXRlbXM6IFRbXSwgZmllbGQ6IHN0cmluZyk6IE1hcDxHLCBUW10+IHtcbiAgICByZXR1cm4gQ29sbGVjdGlvblV0aWwuZ3JvdXBCeUtleShpdGVtcywgaXQgPT4gKGl0IGFzIGFueSlbZmllbGRdIGFzIEcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyb3VwcyB0aGUgZ2l2ZW4gaXRlbXMsIHVzaW5nIHRoZSBncm91cCBrZXkgZ2V0dGVyLCBpbnRvIGEgTWFwXG4gICAqIEBkeW5hbWljXG4gICAqL1xuICAvLyBAZHluYW1pY1xuICBwdWJsaWMgc3RhdGljIGdyb3VwQnlLZXk8RywgVD4oaXRlbXM6IFRbXSwga2V5R2V0dGVyOiAoKGl0ZW06IFQpID0+IEcpKTogTWFwPEcsIFRbXT4ge1xuXG4gICAgcmV0dXJuIGl0ZW1zLnJlZHVjZSgobWFwLCBwKSA9PiB7XG5cbiAgICAgIGxldCBzdWJzZXQ6IFRbXTtcblxuICAgICAgY29uc3Qga2V5ID0ga2V5R2V0dGVyKHApO1xuXG4gICAgICBpZiAobWFwLmhhcyhrZXkpKSB7XG4gICAgICAgIHN1YnNldCA9IG1hcC5nZXQoa2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN1YnNldCA9IFtdO1xuICAgICAgICBtYXAuc2V0KGtleSwgc3Vic2V0KTtcbiAgICAgIH1cbiAgICAgIHN1YnNldC5wdXNoKHApO1xuICAgICAgcmV0dXJuIG1hcDtcbiAgICB9LCBuZXcgTWFwKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXBhcmVzIHR3byBzZXRzIHZhbHVlcyBkZWVwLlxuICAgKiBJZiBib3RoIHNldHMgaGF2ZSB0aGUgc2FtZSBpdGVtcywgdGhleSBhcmUgY29uc2lkZXJlZCBlcXVhbC5cbiAgICpcbiAgICogV2FybmluZzogRHVwbGljYXRlIGVsZW1lbnRzIGFyZSBpZ25vcmVkLlxuICAgKiBAcGFyYW0gYVNldFxuICAgKiBAcGFyYW0gYlNldFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBlcXVhbFNldERlZXA8VD4oYVNldDogU2V0PFQ+LCBiU2V0OiBTZXQ8VD4pOiBib29sZWFuIHtcblxuICAgIGlmIChhU2V0ID09PSBiU2V0KSB7IHJldHVybiB0cnVlOyB9XG5cbiAgICBpZiAoIWFTZXQgfHwgIWJTZXQpIHsgcmV0dXJuIGZhbHNlOyB9XG4gICAgaWYgKGFTZXQuc2l6ZSAhPT0gYlNldC5zaXplKSB7IHJldHVybiBmYWxzZTsgfSAvLyBNdXN0IGhhdmUgc2FtZSBsZW5ndGhcblxuICAgIGZvciAoY29uc3QgYSBvZiBhU2V0KSB7XG4gICAgICBpZiAoIWJTZXQuaGFzKGEpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGhhc0VsZW1lbnRzKGxpc3Q6IGFueVtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGxpc3QgIT09IG51bGwgJiYgbGlzdCAhPT0gdW5kZWZpbmVkICYmIGxpc3QubGVuZ3RoID4gMDtcbiAgfVxuXG59XG5cblxuIl19
@@ -128,4 +128,4 @@ export class FilterUtil {
128
128
  return match;
129
129
  }
130
130
  }
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vdXRpbHMvZmlsdGVyLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzlDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFHN0QsTUFBTSxPQUFPLFVBQVU7YUFFRyxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRy9FLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBa0IsRUFBRSxRQUFrQjtRQUV6RCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUFFLE9BQU8sS0FBSyxDQUFDO1NBQUU7UUFDMUQsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1NBQUU7UUFFcEUsZ0ZBQWdGO1FBRWhGLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBQ3pDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU1QyxLQUFLLE1BQU0sRUFBRSxJQUFJLFFBQVEsRUFBRTtZQUN6QixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFD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WUFDRCxPQUFPLEtBQUssQ0FBQztTQUNkO2FBQU07WUFDTCxPQUFPLFVBQVUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyRDtJQUNILENBQUM7SUFHTyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWEsRUFBRSxNQUFjO1FBQ3ZELElBQUksUUFBUSxLQUFLLE1BQU0sRUFBRTtZQUN2QixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxRQUFRLEtBQUssSUFBSSxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDL0MsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRWpFLG9HQUFvRztRQUVwRyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0ZpbHRlcn0gZnJvbSAnLi4vZGF0YS9maWx0ZXJzL2ZpbHRlcic7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7RmlsdGVyQ29udGV4dH0gZnJvbSAnLi4vZGF0YS9maWx0ZXJzL2ZpbHRlci1jb250ZXh0JztcblxuXG5leHBvcnQgY2xhc3MgRmlsdGVyVXRpbCB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIoRmlsdGVyVXRpbC5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuXG4gIHB1YmxpYyBzdGF0aWMgZXF1YWxzKGFGaWx0ZXJzOiBGaWx0ZXJbXSwgYkZpbHRlcnM6IEZpbHRlcltdKTogYm9vbGVhbiB7XG5cbiAgICBpZiAoYUZpbHRlcnMubGVuZ3RoICE9PSBiRmlsdGVycy5sZW5ndGgpIHsgcmV0dXJuIGZhbHNlOyB9XG4gICAgaWYgKGFGaWx0ZXJzLmxlbmd0aCA9PT0gMCAmJiBiRmlsdGVycy5sZW5ndGggPT09IDApIHsgcmV0dXJuIHRydWU7IH1cblxuICAgIC8vIFRoZSBib3RoIGZpbHRlciBhcnJheXMgaGF2ZSB0aGUgc2FtZSBsZW5ndGgsIHNvIHdlIG11c3QgY29tcGFyZSB0aGVtIGJ5IHZhbHVlXG5cbiAgICBjb25zdCBiSW5kZXggPSBuZXcgTWFwPHN0cmluZywgRmlsdGVyPigpO1xuICAgIGJGaWx0ZXJzLmZvckVhY2goZiA9PiBiSW5kZXguc2V0KGYua2V5LCBmKSk7XG5cbiAgICBmb3IgKGNvbnN0IGZhIG9mIGFGaWx0ZXJzKSB7XG4gICAgICBjb25zdCBiRmlsdGVyID0gYkluZGV4LmdldChmYS5rZXkpO1xuICAgICAgaWYgKCFGaWx0ZXIuZXF1YWxzKGJGaWx0ZXIsIGZhKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cblxuICAvKipcbiAgICogTWVyZ2UgdGhlIHByb3ZpZGVkIGZpbHRlciBzZXRzLiBUaGUgc2Vjb25kIHBhcmFtZXRlciB3aWxsXG4gICAqIHJlcGxhY2UgZmlsdGVycyB3aGljaCBleGlzdCBpbiB0aGUgZmlyc3QuXG4gICAqIEBwYXJhbSBmaWx0ZXJzQVxuICAgKiBAcGFyYW0gZmlsdGVyc0JcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbWVyZ2VGbGF0KFxuICAgIGZpbHRlcnNBOiBGaWx0ZXJbXSxcbiAgICBmaWx0ZXJzQjogRmlsdGVyW11cbiAgKTogRmlsdGVyW10ge1xuICAgIGNvbnN0IG1lcmdlQ29udGV4dCA9IG5ldyBGaWx0ZXJDb250ZXh0KCk7XG4gICAgbWVyZ2VDb250ZXh0LnVwZGF0ZUZpbHRlcnMoZmlsdGVyc0EpO1xuICAgIG1lcmdlQ29udGV4dC51cGRhdGVGaWx0ZXJzKGZpbHRlcnNCKTtcbiAgICByZXR1cm4gbWVyZ2VDb250ZXh0LmZpbHRlcnNTbmFwc2hvdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyBhIGNvbWJpbmluZyBtZXJnZSBvZiB0aGUgcHJvdmlkZWQgZmlsdGVycy5cbiAgICogQXJyYXkgYmFzZWQgZmlsdGVyIHZhbHVlcyB3aWxsIGJlIGNvbWJpbmVkLlxuICAgKiBAcGFyYW0gZmlsdGVyc0FcbiAgICogQHBhcmFtIGZpbHRlcnNCXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG1lcmdlQ29tYmluZShcbiAgICBmaWx0ZXJzQTogRmlsdGVyW10sXG4gICAgZmlsdGVyc0I6IEZpbHRlcltdXG4gICk6IEZpbHRlcltdIHtcbiAgICBjb25zdCBtZXJnZUNvbnRleHQgPSBuZXcgRmlsdGVyQ29udGV4dCgpO1xuICAgIG1lcmdlQ29udGV4dC51cGRhdGVGaWx0ZXJzKGZpbHRlcnNBKTtcbiAgICBtZXJnZUNvbnRleHQubWVyZ2VGaWx0ZXJzKGZpbHRlcnNCKTtcbiAgICByZXR1cm4gbWVyZ2VDb250ZXh0LmZpbHRlcnNTbmFwc2hvdDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc3RyaXAoXG4gICAgYmFzZTogRmlsdGVyW10sXG4gICAgdG9SZW1vdmU6IEZpbHRlcltdXG4gICk6IEZpbHRlcltdIHtcbiAgICBjb25zdCByZW1vdmVNYXAgPSBuZXcgTWFwPHN0cmluZywgRmlsdGVyPigpO1xuICAgIHRvUmVtb3ZlLmZvckVhY2gociA9PiByZW1vdmVNYXAuc2V0KHIua2V5LCByKSk7XG4gICAgcmV0dXJuIGJhc2UubWFwKGZpbHRlciA9PiB7XG4gICAgICBpZiAocmVtb3ZlTWFwLmhhcyhmaWx0ZXIua2V5KSkge1xuICAgICAgICBjb25zdCBzdHJpcHBlZCA9IEZpbHRlclV0aWwuc3RyaXBWYWx1ZShmaWx0ZXIudmFsdWUsIHJlbW92ZU1hcC5nZXQoZmlsdGVyLmtleSkudmFsdWUpO1xuICAgICAgICBpZiAoc3RyaXBwZWQgIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IEZpbHRlcihmaWx0ZXIua2V5LCBzdHJpcHBlZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmaWx0ZXI7XG4gICAgICB9XG4gICAgfSkuZmlsdGVyKGYgPT4gISFmKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHN0cmlwVmFsdWUoXG4gICAgYmFzZVZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwsXG4gICAgcmVtb3ZlVmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbFxuICApOiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGJhc2VWYWx1ZSkpIHtcbiAgICAgIGlmKEFycmF5LmlzQXJyYXkocmVtb3ZlVmFsdWUpKXtcbiAgICAgICAgY29uc3QgZmlsdGVyZWQgPSBiYXNlVmFsdWUuZmlsdGVyKGIgPT4gcmVtb3ZlVmFsdWUuaW5kZXhPZihiKSA9PT0gLTEpO1xuICAgICAgICBpZihmaWx0ZXJlZC5sZW5ndGggPiAwKXtcbiAgICAgICAgICByZXR1cm4gZmlsdGVyZWQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkID0gYmFzZVZhbHVlLmZpbHRlcihiID0+IGIgIT0gcmVtb3ZlVmFsdWUpO1xuICAgICAgICBpZihmaWx0ZXJlZC5sZW5ndGggPiAwKXtcbiAgICAgICAgICByZXR1cm4gZmlsdGVyZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuXG4gIHB1YmxpYyBzdGF0aWMgZmlsdGVyRGF0YTxUPihkYXRhOiBUW10sIGZpbHRlcnM6IEZpbHRlcltdKTogVFtdIHtcblxuICAgIEZpbHRlclV0aWwubG9nZ2VyLmRlYnVnKCdGaWx0ZXJpbmcgZGF0YSB3aXRoICcgKyBkYXRhLmxlbmd0aCArICcgaXRlbXMuJywgZmlsdGVycyk7XG5cbiAgICBpZiAoZmlsdGVycyAmJiBmaWx0ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAoY29uc3QgZmlsdGVyIG9mIGZpbHRlcnMpIHtcbiAgICAgICAgZGF0YSA9IGRhdGEuZmlsdGVyKGUgPT4gRmlsdGVyVXRpbC5tYXRjaGVzKGUsIGZpbHRlcikpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBzdGF0aWMgbWF0Y2hlcyhlbnRpdHk6IGFueSwgZmlsdGVyOiBGaWx0ZXIpOiBib29sZWFuIHtcblxuICAgIGlmIChmaWx0ZXIudmFsdWUgPT09IG51bGwgfHwgZmlsdGVyLnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGxldCB2YWx1ZTogYW55O1xuICAgIGlmIChlbnRpdHkgPT09IG51bGwgfHwgZW50aXR5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHZhbHVlID0gbnVsbDtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBlbnRpdHkgPT09ICdvYmplY3QnKSB7XG4gICAgICB2YWx1ZSA9IGVudGl0eVtmaWx0ZXIua2V5XTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUgPSBTdHJpbmcoZW50aXR5KTsgLy8gU3VwcG9ydCBmaWx0ZXJpbmcgcHJpbWl0aXZlIHZhbHVlc1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KGZpbHRlci52YWx1ZSkpIHtcbiAgICAgIGZvciAoY29uc3QgdmFsIG9mIGZpbHRlci52YWx1ZSkge1xuICAgICAgICBpZiAoRmlsdGVyVXRpbC5tYXRjaGVzVmFsdWUodmFsdWUsIHZhbCkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gRmlsdGVyVXRpbC5tYXRjaGVzVmFsdWUodmFsdWUsIGZpbHRlci52YWx1ZSk7XG4gICAgfVxuICB9XG5cblxuICBwcml2YXRlIHN0YXRpYyBtYXRjaGVzVmFsdWUoaGF5c3RhY2s6IGFueSwgbmVlZGxlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoaGF5c3RhY2sgPT09IG5lZWRsZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGhheXN0YWNrID09PSBudWxsIHx8IGhheXN0YWNrID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBzdHIgPSBTdHJpbmcoaGF5c3RhY2spO1xuICAgIGNvbnN0IG1hdGNoID0gc3RyLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChuZWVkbGUudG9Mb3dlckNhc2UoKSk7XG5cbiAgICAvLyBGaWx0ZXJVdGlsLmxvZ2dlci5kZWJ1ZygnSGF5c3RhY2s6ICcgKyBzdHIgKyAnIHN0YXJ0cyB3aXRoIG5lZWRsZTogJyArIG5lZWRsZSArICcgLS0+ICcgKyBtYXRjaCk7XG5cbiAgICByZXR1cm4gbWF0Y2g7XG4gIH1cbn1cbiJdfQ==
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vdXRpbHMvZmlsdGVyLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzlDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFHN0QsTUFBTSxPQUFPLFVBQVU7YUFFRyxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRy9FLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBa0IsRUFBRSxRQUFrQjtRQUV6RCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQUMsT0FBTyxLQUFLLENBQUM7UUFBQyxDQUFDO1FBQzFELElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUFDLE9BQU8sSUFBSSxDQUFDO1FBQUMsQ0FBQztRQUVwRSxnRkFBZ0Y7UUFFaEYsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUFDekMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTVDLEtBQUssTUFBTSxFQUFFLElBQUksUUFBUSxFQUFFLENBQUM7WUFDMUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7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UUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQy9CLElBQUksVUFBVSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDeEMsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxVQUFVLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEQsQ0FBQztJQUNILENBQUM7SUFHTyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWEsRUFBRSxNQUFjO1FBQ3ZELElBQUksUUFBUSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELElBQUksUUFBUSxLQUFLLElBQUksSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDaEQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFakUsb0dBQW9HO1FBRXBHLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RmlsdGVyfSBmcm9tICcuLi9kYXRhL2ZpbHRlcnMvZmlsdGVyJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtGaWx0ZXJDb250ZXh0fSBmcm9tICcuLi9kYXRhL2ZpbHRlcnMvZmlsdGVyLWNvbnRleHQnO1xuXG5cbmV4cG9ydCBjbGFzcyBGaWx0ZXJVdGlsIHtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcihGaWx0ZXJVdGlsLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG5cbiAgcHVibGljIHN0YXRpYyBlcXVhbHMoYUZpbHRlcnM6IEZpbHRlcltdLCBiRmlsdGVyczogRmlsdGVyW10pOiBib29sZWFuIHtcblxuICAgIGlmIChhRmlsdGVycy5sZW5ndGggIT09IGJGaWx0ZXJzLmxlbmd0aCkgeyByZXR1cm4gZmFsc2U7IH1cbiAgICBpZiAoYUZpbHRlcnMubGVuZ3RoID09PSAwICYmIGJGaWx0ZXJzLmxlbmd0aCA9PT0gMCkgeyByZXR1cm4gdHJ1ZTsgfVxuXG4gICAgLy8gVGhlIGJvdGggZmlsdGVyIGFycmF5cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCwgc28gd2UgbXVzdCBjb21wYXJlIHRoZW0gYnkgdmFsdWVcblxuICAgIGNvbnN0IGJJbmRleCA9IG5ldyBNYXA8c3RyaW5nLCBGaWx0ZXI+KCk7XG4gICAgYkZpbHRlcnMuZm9yRWFjaChmID0+IGJJbmRleC5zZXQoZi5rZXksIGYpKTtcblxuICAgIGZvciAoY29uc3QgZmEgb2YgYUZpbHRlcnMpIHtcbiAgICAgIGNvbnN0IGJGaWx0ZXIgPSBiSW5kZXguZ2V0KGZhLmtleSk7XG4gICAgICBpZiAoIUZpbHRlci5lcXVhbHMoYkZpbHRlciwgZmEpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBNZXJnZSB0aGUgcHJvdmlkZWQgZmlsdGVyIHNldHMuIFRoZSBzZWNvbmQgcGFyYW1ldGVyIHdpbGxcbiAgICogcmVwbGFjZSBmaWx0ZXJzIHdoaWNoIGV4aXN0IGluIHRoZSBmaXJzdC5cbiAgICogQHBhcmFtIGZpbHRlcnNBXG4gICAqIEBwYXJhbSBmaWx0ZXJzQlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBtZXJnZUZsYXQoXG4gICAgZmlsdGVyc0E6IEZpbHRlcltdLFxuICAgIGZpbHRlcnNCOiBGaWx0ZXJbXVxuICApOiBGaWx0ZXJbXSB7XG4gICAgY29uc3QgbWVyZ2VDb250ZXh0ID0gbmV3IEZpbHRlckNvbnRleHQoKTtcbiAgICBtZXJnZUNvbnRleHQudXBkYXRlRmlsdGVycyhmaWx0ZXJzQSk7XG4gICAgbWVyZ2VDb250ZXh0LnVwZGF0ZUZpbHRlcnMoZmlsdGVyc0IpO1xuICAgIHJldHVybiBtZXJnZUNvbnRleHQuZmlsdGVyc1NuYXBzaG90O1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm1zIGEgY29tYmluaW5nIG1lcmdlIG9mIHRoZSBwcm92aWRlZCBmaWx0ZXJzLlxuICAgKiBBcnJheSBiYXNlZCBmaWx0ZXIgdmFsdWVzIHdpbGwgYmUgY29tYmluZWQuXG4gICAqIEBwYXJhbSBmaWx0ZXJzQVxuICAgKiBAcGFyYW0gZmlsdGVyc0JcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbWVyZ2VDb21iaW5lKFxuICAgIGZpbHRlcnNBOiBGaWx0ZXJbXSxcbiAgICBmaWx0ZXJzQjogRmlsdGVyW11cbiAgKTogRmlsdGVyW10ge1xuICAgIGNvbnN0IG1lcmdlQ29udGV4dCA9IG5ldyBGaWx0ZXJDb250ZXh0KCk7XG4gICAgbWVyZ2VDb250ZXh0LnVwZGF0ZUZpbHRlcnMoZmlsdGVyc0EpO1xuICAgIG1lcmdlQ29udGV4dC5tZXJnZUZpbHRlcnMoZmlsdGVyc0IpO1xuICAgIHJldHVybiBtZXJnZUNvbnRleHQuZmlsdGVyc1NuYXBzaG90O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzdHJpcChcbiAgICBiYXNlOiBGaWx0ZXJbXSxcbiAgICB0b1JlbW92ZTogRmlsdGVyW11cbiAgKTogRmlsdGVyW10ge1xuICAgIGNvbnN0IHJlbW92ZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBGaWx0ZXI+KCk7XG4gICAgdG9SZW1vdmUuZm9yRWFjaChyID0+IHJlbW92ZU1hcC5zZXQoci5rZXksIHIpKTtcbiAgICByZXR1cm4gYmFzZS5tYXAoZmlsdGVyID0+IHtcbiAgICAgIGlmIChyZW1vdmVNYXAuaGFzKGZpbHRlci5rZXkpKSB7XG4gICAgICAgIGNvbnN0IHN0cmlwcGVkID0gRmlsdGVyVXRpbC5zdHJpcFZhbHVlKGZpbHRlci52YWx1ZSwgcmVtb3ZlTWFwLmdldChmaWx0ZXIua2V5KS52YWx1ZSk7XG4gICAgICAgIGlmIChzdHJpcHBlZCAhPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBuZXcgRmlsdGVyKGZpbHRlci5rZXksIHN0cmlwcGVkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlcjtcbiAgICAgIH1cbiAgICB9KS5maWx0ZXIoZiA9PiAhIWYpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgc3RyaXBWYWx1ZShcbiAgICBiYXNlVmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCxcbiAgICByZW1vdmVWYWx1ZTogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsXG4gICk6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYmFzZVZhbHVlKSkge1xuICAgICAgaWYoQXJyYXkuaXNBcnJheShyZW1vdmVWYWx1ZSkpe1xuICAgICAgICBjb25zdCBmaWx0ZXJlZCA9IGJhc2VWYWx1ZS5maWx0ZXIoYiA9PiByZW1vdmVWYWx1ZS5pbmRleE9mKGIpID09PSAtMSk7XG4gICAgICAgIGlmKGZpbHRlcmVkLmxlbmd0aCA+IDApe1xuICAgICAgICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWQgPSBiYXNlVmFsdWUuZmlsdGVyKGIgPT4gYiAhPSByZW1vdmVWYWx1ZSk7XG4gICAgICAgIGlmKGZpbHRlcmVkLmxlbmd0aCA+IDApe1xuICAgICAgICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG5cbiAgcHVibGljIHN0YXRpYyBmaWx0ZXJEYXRhPFQ+KGRhdGE6IFRbXSwgZmlsdGVyczogRmlsdGVyW10pOiBUW10ge1xuXG4gICAgRmlsdGVyVXRpbC5sb2dnZXIuZGVidWcoJ0ZpbHRlcmluZyBkYXRhIHdpdGggJyArIGRhdGEubGVuZ3RoICsgJyBpdGVtcy4nLCBmaWx0ZXJzKTtcblxuICAgIGlmIChmaWx0ZXJzICYmIGZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBmaWx0ZXIgb2YgZmlsdGVycykge1xuICAgICAgICBkYXRhID0gZGF0YS5maWx0ZXIoZSA9PiBGaWx0ZXJVdGlsLm1hdGNoZXMoZSwgZmlsdGVyKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cblxuICBwcml2YXRlIHN0YXRpYyBtYXRjaGVzKGVudGl0eTogYW55LCBmaWx0ZXI6IEZpbHRlcik6IGJvb2xlYW4ge1xuXG4gICAgaWYgKGZpbHRlci52YWx1ZSA9PT0gbnVsbCB8fCBmaWx0ZXIudmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgbGV0IHZhbHVlOiBhbnk7XG4gICAgaWYgKGVudGl0eSA9PT0gbnVsbCB8fCBlbnRpdHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFsdWUgPSBudWxsO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGVudGl0eSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHZhbHVlID0gZW50aXR5W2ZpbHRlci5rZXldO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IFN0cmluZyhlbnRpdHkpOyAvLyBTdXBwb3J0IGZpbHRlcmluZyBwcmltaXRpdmUgdmFsdWVzXG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVyLnZhbHVlKSkge1xuICAgICAgZm9yIChjb25zdCB2YWwgb2YgZmlsdGVyLnZhbHVlKSB7XG4gICAgICAgIGlmIChGaWx0ZXJVdGlsLm1hdGNoZXNWYWx1ZSh2YWx1ZSwgdmFsKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBGaWx0ZXJVdGlsLm1hdGNoZXNWYWx1ZSh2YWx1ZSwgZmlsdGVyLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuXG4gIHByaXZhdGUgc3RhdGljIG1hdGNoZXNWYWx1ZShoYXlzdGFjazogYW55LCBuZWVkbGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmIChoYXlzdGFjayA9PT0gbmVlZGxlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoaGF5c3RhY2sgPT09IG51bGwgfHwgaGF5c3RhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHN0ciA9IFN0cmluZyhoYXlzdGFjayk7XG4gICAgY29uc3QgbWF0Y2ggPSBzdHIudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKG5lZWRsZS50b0xvd2VyQ2FzZSgpKTtcblxuICAgIC8vIEZpbHRlclV0aWwubG9nZ2VyLmRlYnVnKCdIYXlzdGFjazogJyArIHN0ciArICcgc3RhcnRzIHdpdGggbmVlZGxlOiAnICsgbmVlZGxlICsgJyAtLT4gJyArIG1hdGNoKTtcblxuICAgIHJldHVybiBtYXRjaDtcbiAgfVxufVxuIl19
@@ -20,4 +20,4 @@ export class FocusUtil {
20
20
  }
21
21
  }
22
22
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi91dGlscy9mb2N1cy11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxNQUFNLE9BQU8sU0FBUzthQUVJLFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRW5FOzs7O2dGQUk0RTtJQUU1RTs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGVBQWUsQ0FDekIsV0FBNkIsRUFDN0IsT0FBTyxHQUFHLENBQUM7UUFFYixJQUFJLFdBQVcsRUFBRTtZQUNmLFVBQVUsQ0FDTixHQUFHLEVBQUU7Z0JBQ0gsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNwQixXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkIsQ0FBQyxFQUNELE9BQU8sQ0FDVixDQUFDO1NBQ0g7SUFFSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5cbmV4cG9ydCBjbGFzcyBGb2N1c1V0aWwge1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGxvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKCdGb2N1c1V0aWwnKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogRm9jdXMgdGhlIGdpdmVuIGh0bWwgZWxlbWVudCBhZnRlciB0aGUgZ2l2ZW4gZGVsYXkuXG4gICAqIEBwYXJhbSBodG1sRWxlbWVudFxuICAgKiBAcGFyYW0gZGVsYXlNc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb2N1c0FmdGVyRGVsYXkoXG4gICAgICBodG1sRWxlbWVudDogSFRNTElucHV0RWxlbWVudCxcbiAgICAgIGRlbGF5TXMgPSAxXG4gICk6IHZvaWQge1xuICAgIGlmIChodG1sRWxlbWVudCkge1xuICAgICAgc2V0VGltZW91dChcbiAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBodG1sRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgaHRtbEVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBkZWxheU1zXG4gICAgICApO1xuICAgIH1cblxuICB9XG59XG4iXX0=
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi91dGlscy9mb2N1cy11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxNQUFNLE9BQU8sU0FBUzthQUVJLFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRW5FOzs7O2dGQUk0RTtJQUU1RTs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGVBQWUsQ0FDekIsV0FBNkIsRUFDN0IsT0FBTyxHQUFHLENBQUM7UUFFYixJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLFVBQVUsQ0FDTixHQUFHLEVBQUU7Z0JBQ0gsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNwQixXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkIsQ0FBQyxFQUNELE9BQU8sQ0FDVixDQUFDO1FBQ0osQ0FBQztJQUVILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcblxuZXhwb3J0IGNsYXNzIEZvY3VzVXRpbCB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIoJ0ZvY3VzVXRpbCcpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBGb2N1cyB0aGUgZ2l2ZW4gaHRtbCBlbGVtZW50IGFmdGVyIHRoZSBnaXZlbiBkZWxheS5cbiAgICogQHBhcmFtIGh0bWxFbGVtZW50XG4gICAqIEBwYXJhbSBkZWxheU1zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZvY3VzQWZ0ZXJEZWxheShcbiAgICAgIGh0bWxFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50LFxuICAgICAgZGVsYXlNcyA9IDFcbiAgKTogdm9pZCB7XG4gICAgaWYgKGh0bWxFbGVtZW50KSB7XG4gICAgICBzZXRUaW1lb3V0KFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIGh0bWxFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICBodG1sRWxlbWVudC5zZWxlY3QoKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlbGF5TXNcbiAgICAgICk7XG4gICAgfVxuXG4gIH1cbn1cbiJdfQ==