@gnggln/ng-ui-system 1.0.0-alpha.2 → 1.0.0-alpha.21

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 (721) hide show
  1. package/accordion/entry-accordion.d.ts +4 -0
  2. package/accordion/index.d.ts +5 -0
  3. package/accordion/lib/components/accordion/accordion.component.d.ts +125 -0
  4. package/accordion/lib/components/accordion/accordion.types.d.ts +64 -0
  5. package/accordion/lib/components/accordion/index.d.ts +2 -0
  6. package/accordion/lib/core/types/index.d.ts +133 -0
  7. package/base-layout/entry-base-layout.d.ts +4 -0
  8. package/base-layout/index.d.ts +5 -0
  9. package/base-layout/lib/components/base-layout/base-layout.component.d.ts +108 -0
  10. package/base-layout/lib/components/base-layout/base-layout.types.d.ts +40 -0
  11. package/base-layout/lib/components/base-layout/index.d.ts +13 -0
  12. package/base-layout/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  13. package/base-layout/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  14. package/base-layout/lib/components/blackbox/blackbox.service.d.ts +144 -0
  15. package/base-layout/lib/components/blackbox/blackbox.types.d.ts +238 -0
  16. package/base-layout/lib/components/button/button-area.component.d.ts +93 -0
  17. package/base-layout/lib/components/button/button.component.d.ts +61 -0
  18. package/base-layout/lib/components/button/button.types.d.ts +75 -0
  19. package/base-layout/lib/components/page-header/breadcrumb.service.d.ts +96 -0
  20. package/base-layout/lib/components/page-header/page-header.component.d.ts +59 -0
  21. package/base-layout/lib/components/page-header/page-header.types.d.ts +96 -0
  22. package/base-layout/lib/core/types/index.d.ts +133 -0
  23. package/blackbox/entry-blackbox.d.ts +4 -0
  24. package/blackbox/index.d.ts +5 -0
  25. package/blackbox/lib/components/blackbox/blackbox-debugger.component.d.ts +80 -0
  26. package/blackbox/lib/components/blackbox/blackbox-debugger.service.d.ts +34 -0
  27. package/blackbox/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  28. package/blackbox/lib/components/blackbox/blackbox-json-viewer.component.d.ts +18 -0
  29. package/blackbox/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  30. package/blackbox/lib/components/blackbox/blackbox.interceptor.d.ts +38 -0
  31. package/blackbox/lib/components/blackbox/blackbox.service.d.ts +144 -0
  32. package/blackbox/lib/components/blackbox/blackbox.types.d.ts +238 -0
  33. package/blackbox/lib/components/blackbox/index.d.ts +23 -0
  34. package/blackbox/lib/components/blackbox/ui-track.directive.d.ts +20 -0
  35. package/blackbox/lib/components/button/button-area.component.d.ts +93 -0
  36. package/blackbox/lib/components/button/button.component.d.ts +61 -0
  37. package/blackbox/lib/components/button/button.types.d.ts +75 -0
  38. package/blackbox/lib/components/button/index.d.ts +15 -0
  39. package/blackbox/lib/components/modal/confirm-dialog.component.d.ts +46 -0
  40. package/blackbox/lib/components/modal/index.d.ts +4 -0
  41. package/blackbox/lib/components/modal/modal.component.d.ts +44 -0
  42. package/blackbox/lib/components/modal/modal.service.d.ts +93 -0
  43. package/blackbox/lib/components/modal/modal.types.d.ts +110 -0
  44. package/blackbox/lib/core/types/index.d.ts +133 -0
  45. package/button/entry-button.d.ts +4 -0
  46. package/button/index.d.ts +5 -0
  47. package/button/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  48. package/button/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  49. package/button/lib/components/blackbox/blackbox.service.d.ts +144 -0
  50. package/button/lib/components/blackbox/blackbox.types.d.ts +238 -0
  51. package/button/lib/components/button/button-area.component.d.ts +93 -0
  52. package/button/lib/components/button/button.component.d.ts +61 -0
  53. package/button/lib/components/button/button.types.d.ts +75 -0
  54. package/button/lib/components/button/index.d.ts +15 -0
  55. package/button/lib/core/types/index.d.ts +133 -0
  56. package/core/entry-core.d.ts +5 -0
  57. package/core/index.d.ts +5 -0
  58. package/core/lib/core/types/index.d.ts +133 -0
  59. package/core/lib/core/utils/index.d.ts +60 -0
  60. package/crud-table/entry-crud-table.d.ts +4 -0
  61. package/crud-table/index.d.ts +5 -0
  62. package/crud-table/lib/components/accordion/accordion.component.d.ts +125 -0
  63. package/crud-table/lib/components/accordion/accordion.types.d.ts +64 -0
  64. package/crud-table/lib/components/accordion/index.d.ts +2 -0
  65. package/crud-table/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  66. package/crud-table/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  67. package/crud-table/lib/components/blackbox/blackbox.service.d.ts +144 -0
  68. package/crud-table/lib/components/blackbox/blackbox.types.d.ts +238 -0
  69. package/crud-table/lib/components/button/button-area.component.d.ts +93 -0
  70. package/crud-table/lib/components/button/button.component.d.ts +61 -0
  71. package/crud-table/lib/components/button/button.types.d.ts +75 -0
  72. package/crud-table/lib/components/button/index.d.ts +15 -0
  73. package/crud-table/lib/components/crud-table/crud-table.component.d.ts +143 -0
  74. package/crud-table/lib/components/crud-table/crud-table.types.d.ts +207 -0
  75. package/crud-table/lib/components/crud-table/index.d.ts +15 -0
  76. package/crud-table/lib/components/form-builder/adapters/it-date-adapter.d.ts +32 -0
  77. package/crud-table/lib/components/form-builder/directives/currency-input.directive.d.ts +48 -0
  78. package/crud-table/lib/components/form-builder/form-builder.component.d.ts +279 -0
  79. package/crud-table/lib/components/form-builder/services/form-condition.service.d.ts +46 -0
  80. package/crud-table/lib/components/form-builder/services/form-error-state.matcher.d.ts +9 -0
  81. package/crud-table/lib/components/form-builder/services/form-field-error.service.d.ts +38 -0
  82. package/crud-table/lib/components/form-builder/services/form-validation.service.d.ts +63 -0
  83. package/crud-table/lib/components/form-builder/services/location.service.d.ts +83 -0
  84. package/crud-table/lib/components/form-builder/services/nominatim-geocoding.service.d.ts +37 -0
  85. package/crud-table/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +31 -0
  86. package/crud-table/lib/components/form-builder/sub-components/file-input/file-input.component.d.ts +41 -0
  87. package/crud-table/lib/components/form-builder/sub-components/form-fields/form-number-field.component.d.ts +42 -0
  88. package/crud-table/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.d.ts +45 -0
  89. package/crud-table/lib/components/form-builder/sub-components/form-fields/form-select-field.component.d.ts +44 -0
  90. package/crud-table/lib/components/form-builder/sub-components/form-fields/form-text-field.component.d.ts +62 -0
  91. package/crud-table/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.d.ts +39 -0
  92. package/crud-table/lib/components/form-builder/sub-components/form-fields/index.d.ts +5 -0
  93. package/crud-table/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.d.ts +84 -0
  94. package/crud-table/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.d.ts +145 -0
  95. package/crud-table/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.d.ts +108 -0
  96. package/crud-table/lib/components/form-builder/types/condition.types.d.ts +51 -0
  97. package/crud-table/lib/components/form-builder/types/field.types.d.ts +330 -0
  98. package/crud-table/lib/components/form-builder/types/geocoded-location.types.d.ts +116 -0
  99. package/crud-table/lib/components/form-builder/types/schema.types.d.ts +304 -0
  100. package/crud-table/lib/components/form-builder/types/territoriale.types.d.ts +170 -0
  101. package/crud-table/lib/components/form-builder/types/validation.types.d.ts +179 -0
  102. package/crud-table/lib/components/modal/confirm-dialog.component.d.ts +46 -0
  103. package/crud-table/lib/components/modal/modal.service.d.ts +93 -0
  104. package/crud-table/lib/components/modal/modal.types.d.ts +110 -0
  105. package/crud-table/lib/core/logging/logger.config.d.ts +18 -0
  106. package/crud-table/lib/core/logging/logger.service.d.ts +75 -0
  107. package/crud-table/lib/core/logging/logger.types.d.ts +70 -0
  108. package/crud-table/lib/core/types/index.d.ts +133 -0
  109. package/esm2022/accordion/entry-accordion.mjs +5 -0
  110. package/esm2022/accordion/gnggln-ng-ui-system-accordion.mjs +5 -0
  111. package/esm2022/accordion/lib/components/accordion/accordion.component.mjs +398 -0
  112. package/esm2022/accordion/lib/components/accordion/accordion.types.mjs +6 -0
  113. package/esm2022/accordion/lib/components/accordion/index.mjs +2 -0
  114. package/esm2022/accordion/lib/core/types/index.mjs +6 -0
  115. package/esm2022/base-layout/entry-base-layout.mjs +5 -0
  116. package/esm2022/base-layout/gnggln-ng-ui-system-base-layout.mjs +5 -0
  117. package/esm2022/base-layout/lib/components/base-layout/base-layout.component.mjs +272 -0
  118. package/esm2022/base-layout/lib/components/base-layout/base-layout.types.mjs +6 -0
  119. package/esm2022/base-layout/lib/components/base-layout/index.mjs +14 -0
  120. package/esm2022/base-layout/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  121. package/esm2022/base-layout/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  122. package/esm2022/base-layout/lib/components/blackbox/blackbox.service.mjs +323 -0
  123. package/esm2022/base-layout/lib/components/blackbox/blackbox.types.mjs +25 -0
  124. package/esm2022/base-layout/lib/components/button/button-area.component.mjs +210 -0
  125. package/esm2022/base-layout/lib/components/button/button.component.mjs +180 -0
  126. package/esm2022/base-layout/lib/components/button/button.types.mjs +6 -0
  127. package/esm2022/base-layout/lib/components/page-header/breadcrumb.service.mjs +243 -0
  128. package/esm2022/base-layout/lib/components/page-header/page-header.component.mjs +243 -0
  129. package/esm2022/base-layout/lib/components/page-header/page-header.types.mjs +21 -0
  130. package/esm2022/base-layout/lib/core/types/index.mjs +6 -0
  131. package/esm2022/blackbox/entry-blackbox.mjs +5 -0
  132. package/esm2022/blackbox/gnggln-ng-ui-system-blackbox.mjs +5 -0
  133. package/esm2022/blackbox/lib/components/blackbox/blackbox-debugger.component.mjs +904 -0
  134. package/esm2022/blackbox/lib/components/blackbox/blackbox-debugger.service.mjs +51 -0
  135. package/esm2022/blackbox/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  136. package/esm2022/blackbox/lib/components/blackbox/blackbox-json-viewer.component.mjs +66 -0
  137. package/esm2022/blackbox/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  138. package/esm2022/blackbox/lib/components/blackbox/blackbox.interceptor.mjs +135 -0
  139. package/esm2022/blackbox/lib/components/blackbox/blackbox.service.mjs +323 -0
  140. package/esm2022/blackbox/lib/components/blackbox/blackbox.types.mjs +25 -0
  141. package/esm2022/blackbox/lib/components/blackbox/index.mjs +27 -0
  142. package/esm2022/blackbox/lib/components/blackbox/ui-track.directive.mjs +69 -0
  143. package/esm2022/blackbox/lib/components/button/button-area.component.mjs +210 -0
  144. package/esm2022/blackbox/lib/components/button/button.component.mjs +180 -0
  145. package/esm2022/blackbox/lib/components/button/button.types.mjs +6 -0
  146. package/esm2022/blackbox/lib/components/button/index.mjs +16 -0
  147. package/esm2022/blackbox/lib/components/modal/confirm-dialog.component.mjs +151 -0
  148. package/esm2022/blackbox/lib/components/modal/index.mjs +4 -0
  149. package/esm2022/blackbox/lib/components/modal/modal.component.mjs +139 -0
  150. package/esm2022/blackbox/lib/components/modal/modal.service.mjs +197 -0
  151. package/esm2022/blackbox/lib/components/modal/modal.types.mjs +6 -0
  152. package/esm2022/blackbox/lib/core/types/index.mjs +6 -0
  153. package/esm2022/button/entry-button.mjs +5 -0
  154. package/esm2022/button/gnggln-ng-ui-system-button.mjs +5 -0
  155. package/esm2022/button/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  156. package/esm2022/button/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  157. package/esm2022/button/lib/components/blackbox/blackbox.service.mjs +323 -0
  158. package/esm2022/button/lib/components/blackbox/blackbox.types.mjs +25 -0
  159. package/esm2022/button/lib/components/button/button-area.component.mjs +210 -0
  160. package/esm2022/button/lib/components/button/button.component.mjs +180 -0
  161. package/esm2022/button/lib/components/button/button.types.mjs +6 -0
  162. package/esm2022/button/lib/components/button/index.mjs +16 -0
  163. package/esm2022/button/lib/core/types/index.mjs +6 -0
  164. package/esm2022/core/entry-core.mjs +6 -0
  165. package/esm2022/core/gnggln-ng-ui-system-core.mjs +5 -0
  166. package/esm2022/core/lib/core/types/index.mjs +6 -0
  167. package/esm2022/core/lib/core/utils/index.mjs +102 -0
  168. package/esm2022/crud-table/entry-crud-table.mjs +5 -0
  169. package/esm2022/crud-table/gnggln-ng-ui-system-crud-table.mjs +5 -0
  170. package/esm2022/crud-table/lib/components/accordion/accordion.component.mjs +398 -0
  171. package/esm2022/crud-table/lib/components/accordion/accordion.types.mjs +6 -0
  172. package/esm2022/crud-table/lib/components/accordion/index.mjs +2 -0
  173. package/esm2022/crud-table/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  174. package/esm2022/crud-table/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  175. package/esm2022/crud-table/lib/components/blackbox/blackbox.service.mjs +323 -0
  176. package/esm2022/crud-table/lib/components/blackbox/blackbox.types.mjs +25 -0
  177. package/esm2022/crud-table/lib/components/button/button-area.component.mjs +210 -0
  178. package/esm2022/crud-table/lib/components/button/button.component.mjs +180 -0
  179. package/esm2022/crud-table/lib/components/button/button.types.mjs +6 -0
  180. package/esm2022/crud-table/lib/components/button/index.mjs +16 -0
  181. package/esm2022/crud-table/lib/components/crud-table/crud-table.component.mjs +789 -0
  182. package/esm2022/crud-table/lib/components/crud-table/crud-table.types.mjs +6 -0
  183. package/esm2022/crud-table/lib/components/crud-table/index.mjs +16 -0
  184. package/esm2022/crud-table/lib/components/form-builder/adapters/it-date-adapter.mjs +82 -0
  185. package/esm2022/crud-table/lib/components/form-builder/directives/currency-input.directive.mjs +184 -0
  186. package/esm2022/crud-table/lib/components/form-builder/form-builder.component.mjs +1351 -0
  187. package/esm2022/crud-table/lib/components/form-builder/services/form-condition.service.mjs +132 -0
  188. package/esm2022/crud-table/lib/components/form-builder/services/form-error-state.matcher.mjs +10 -0
  189. package/esm2022/crud-table/lib/components/form-builder/services/form-field-error.service.mjs +103 -0
  190. package/esm2022/crud-table/lib/components/form-builder/services/form-validation.service.mjs +381 -0
  191. package/esm2022/crud-table/lib/components/form-builder/services/location.service.mjs +141 -0
  192. package/esm2022/crud-table/lib/components/form-builder/services/nominatim-geocoding.service.mjs +120 -0
  193. package/esm2022/crud-table/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +190 -0
  194. package/esm2022/crud-table/lib/components/form-builder/sub-components/file-input/file-input.component.mjs +310 -0
  195. package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-number-field.component.mjs +113 -0
  196. package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.mjs +105 -0
  197. package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-select-field.component.mjs +126 -0
  198. package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-text-field.component.mjs +147 -0
  199. package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.mjs +99 -0
  200. package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/index.mjs +6 -0
  201. package/esm2022/crud-table/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.mjs +322 -0
  202. package/esm2022/crud-table/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.mjs +648 -0
  203. package/esm2022/crud-table/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.mjs +432 -0
  204. package/esm2022/crud-table/lib/components/form-builder/types/condition.types.mjs +6 -0
  205. package/esm2022/crud-table/lib/components/form-builder/types/field.types.mjs +6 -0
  206. package/esm2022/crud-table/lib/components/form-builder/types/geocoded-location.types.mjs +6 -0
  207. package/esm2022/crud-table/lib/components/form-builder/types/schema.types.mjs +6 -0
  208. package/esm2022/crud-table/lib/components/form-builder/types/territoriale.types.mjs +6 -0
  209. package/esm2022/crud-table/lib/components/form-builder/types/validation.types.mjs +10 -0
  210. package/esm2022/crud-table/lib/components/modal/confirm-dialog.component.mjs +151 -0
  211. package/esm2022/crud-table/lib/components/modal/modal.service.mjs +197 -0
  212. package/esm2022/crud-table/lib/components/modal/modal.types.mjs +6 -0
  213. package/esm2022/crud-table/lib/core/logging/logger.config.mjs +18 -0
  214. package/esm2022/crud-table/lib/core/logging/logger.service.mjs +295 -0
  215. package/esm2022/crud-table/lib/core/logging/logger.types.mjs +7 -0
  216. package/esm2022/crud-table/lib/core/types/index.mjs +6 -0
  217. package/esm2022/crud-table/lib/sources/location-data.opt.json +8942 -0
  218. package/esm2022/crud-table/lib/sources/nazioni.opt.json +215 -0
  219. package/esm2022/form-builder/entry-form-builder.mjs +5 -0
  220. package/esm2022/form-builder/gnggln-ng-ui-system-form-builder.mjs +5 -0
  221. package/esm2022/form-builder/lib/components/accordion/accordion.component.mjs +398 -0
  222. package/esm2022/form-builder/lib/components/accordion/accordion.types.mjs +6 -0
  223. package/esm2022/form-builder/lib/components/accordion/index.mjs +2 -0
  224. package/esm2022/form-builder/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  225. package/esm2022/form-builder/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  226. package/esm2022/form-builder/lib/components/blackbox/blackbox.service.mjs +323 -0
  227. package/esm2022/form-builder/lib/components/blackbox/blackbox.types.mjs +25 -0
  228. package/esm2022/form-builder/lib/components/button/button-area.component.mjs +210 -0
  229. package/esm2022/form-builder/lib/components/button/button.component.mjs +180 -0
  230. package/esm2022/form-builder/lib/components/button/button.types.mjs +6 -0
  231. package/esm2022/form-builder/lib/components/button/index.mjs +16 -0
  232. package/esm2022/form-builder/lib/components/form-builder/adapters/it-date-adapter.mjs +82 -0
  233. package/esm2022/form-builder/lib/components/form-builder/directives/currency-input.directive.mjs +184 -0
  234. package/esm2022/form-builder/lib/components/form-builder/form-builder.component.mjs +1351 -0
  235. package/esm2022/form-builder/lib/components/form-builder/form-wizard.component.mjs +1064 -0
  236. package/esm2022/form-builder/lib/components/form-builder/index.mjs +24 -0
  237. package/esm2022/form-builder/lib/components/form-builder/services/form-condition.service.mjs +132 -0
  238. package/esm2022/form-builder/lib/components/form-builder/services/form-error-state.matcher.mjs +10 -0
  239. package/esm2022/form-builder/lib/components/form-builder/services/form-field-error.service.mjs +103 -0
  240. package/esm2022/form-builder/lib/components/form-builder/services/form-validation.service.mjs +381 -0
  241. package/esm2022/form-builder/lib/components/form-builder/services/location.service.mjs +141 -0
  242. package/esm2022/form-builder/lib/components/form-builder/services/nominatim-geocoding.service.mjs +120 -0
  243. package/esm2022/form-builder/lib/components/form-builder/services/wizard-sync.service.mjs +84 -0
  244. package/esm2022/form-builder/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +190 -0
  245. package/esm2022/form-builder/lib/components/form-builder/sub-components/file-input/file-input.component.mjs +310 -0
  246. package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-number-field.component.mjs +113 -0
  247. package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.mjs +105 -0
  248. package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-select-field.component.mjs +126 -0
  249. package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-text-field.component.mjs +147 -0
  250. package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.mjs +99 -0
  251. package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/index.mjs +6 -0
  252. package/esm2022/form-builder/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.mjs +322 -0
  253. package/esm2022/form-builder/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.mjs +648 -0
  254. package/esm2022/form-builder/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.mjs +432 -0
  255. package/esm2022/form-builder/lib/components/form-builder/types/condition.types.mjs +6 -0
  256. package/esm2022/form-builder/lib/components/form-builder/types/field.types.mjs +6 -0
  257. package/esm2022/form-builder/lib/components/form-builder/types/geocoded-location.types.mjs +6 -0
  258. package/esm2022/form-builder/lib/components/form-builder/types/index.mjs +3 -0
  259. package/esm2022/form-builder/lib/components/form-builder/types/schema.types.mjs +6 -0
  260. package/esm2022/form-builder/lib/components/form-builder/types/territoriale.types.mjs +6 -0
  261. package/esm2022/form-builder/lib/components/form-builder/types/validation.types.mjs +10 -0
  262. package/esm2022/form-builder/lib/core/logging/logger.config.mjs +18 -0
  263. package/esm2022/form-builder/lib/core/logging/logger.service.mjs +295 -0
  264. package/esm2022/form-builder/lib/core/logging/logger.types.mjs +7 -0
  265. package/esm2022/form-builder/lib/core/types/index.mjs +6 -0
  266. package/esm2022/form-builder/lib/sources/location-data.opt.json +8942 -0
  267. package/esm2022/form-builder/lib/sources/nazioni.opt.json +215 -0
  268. package/esm2022/form-builder-editor/entry-form-builder-editor.mjs +5 -0
  269. package/esm2022/form-builder-editor/gnggln-ng-ui-system-form-builder-editor.mjs +5 -0
  270. package/esm2022/form-builder-editor/lib/components/accordion/accordion.component.mjs +398 -0
  271. package/esm2022/form-builder-editor/lib/components/accordion/accordion.types.mjs +6 -0
  272. package/esm2022/form-builder-editor/lib/components/accordion/index.mjs +2 -0
  273. package/esm2022/form-builder-editor/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  274. package/esm2022/form-builder-editor/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  275. package/esm2022/form-builder-editor/lib/components/blackbox/blackbox.service.mjs +323 -0
  276. package/esm2022/form-builder-editor/lib/components/blackbox/blackbox.types.mjs +25 -0
  277. package/esm2022/form-builder-editor/lib/components/button/button-area.component.mjs +210 -0
  278. package/esm2022/form-builder-editor/lib/components/button/button.component.mjs +180 -0
  279. package/esm2022/form-builder-editor/lib/components/button/button.types.mjs +6 -0
  280. package/esm2022/form-builder-editor/lib/components/button/index.mjs +16 -0
  281. package/esm2022/form-builder-editor/lib/components/form-builder/adapters/it-date-adapter.mjs +82 -0
  282. package/esm2022/form-builder-editor/lib/components/form-builder/directives/currency-input.directive.mjs +184 -0
  283. package/esm2022/form-builder-editor/lib/components/form-builder/form-builder.component.mjs +1351 -0
  284. package/esm2022/form-builder-editor/lib/components/form-builder/services/form-condition.service.mjs +132 -0
  285. package/esm2022/form-builder-editor/lib/components/form-builder/services/form-error-state.matcher.mjs +10 -0
  286. package/esm2022/form-builder-editor/lib/components/form-builder/services/form-field-error.service.mjs +103 -0
  287. package/esm2022/form-builder-editor/lib/components/form-builder/services/form-validation.service.mjs +381 -0
  288. package/esm2022/form-builder-editor/lib/components/form-builder/services/location.service.mjs +141 -0
  289. package/esm2022/form-builder-editor/lib/components/form-builder/services/nominatim-geocoding.service.mjs +120 -0
  290. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +190 -0
  291. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/file-input/file-input.component.mjs +310 -0
  292. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-number-field.component.mjs +113 -0
  293. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.mjs +105 -0
  294. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-select-field.component.mjs +126 -0
  295. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-text-field.component.mjs +147 -0
  296. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.mjs +99 -0
  297. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/index.mjs +6 -0
  298. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.mjs +322 -0
  299. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.mjs +648 -0
  300. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.mjs +432 -0
  301. package/esm2022/form-builder-editor/lib/components/form-builder/types/condition.types.mjs +6 -0
  302. package/esm2022/form-builder-editor/lib/components/form-builder/types/field.types.mjs +6 -0
  303. package/esm2022/form-builder-editor/lib/components/form-builder/types/geocoded-location.types.mjs +6 -0
  304. package/esm2022/form-builder-editor/lib/components/form-builder/types/index.mjs +3 -0
  305. package/esm2022/form-builder-editor/lib/components/form-builder/types/schema.types.mjs +6 -0
  306. package/esm2022/form-builder-editor/lib/components/form-builder/types/territoriale.types.mjs +6 -0
  307. package/esm2022/form-builder-editor/lib/components/form-builder/types/validation.types.mjs +10 -0
  308. package/esm2022/form-builder-editor/lib/components/form-builder-editor/form-builder-editor.component.mjs +730 -0
  309. package/esm2022/form-builder-editor/lib/components/form-builder-editor/form-builder-editor.service.mjs +56 -0
  310. package/esm2022/form-builder-editor/lib/components/form-builder-editor/index.mjs +23 -0
  311. package/esm2022/form-builder-editor/lib/components/form-builder-editor/presets/editor-presets.mjs +395 -0
  312. package/esm2022/form-builder-editor/lib/components/form-builder-editor/services/editor-persistence.service.mjs +190 -0
  313. package/esm2022/form-builder-editor/lib/components/form-builder-editor/services/editor-state.service.mjs +324 -0
  314. package/esm2022/form-builder-editor/lib/components/form-builder-editor/services/field-factory.service.mjs +188 -0
  315. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/condition-editor/condition-editor.component.mjs +667 -0
  316. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/editor-toolbar/editor-toolbar.component.mjs +317 -0
  317. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/field-config-panel/field-config-panel.component.mjs +611 -0
  318. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/field-palette/field-palette.component.mjs +267 -0
  319. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/form-values-panel/form-values-panel.component.mjs +276 -0
  320. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/options-editor/options-editor.component.mjs +323 -0
  321. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/preview-container/preview-container.component.mjs +238 -0
  322. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/section-editor/section-editor.component.mjs +473 -0
  323. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/validation-editor/validation-editor.component.mjs +473 -0
  324. package/esm2022/form-builder-editor/lib/components/form-builder-editor/types/editor.types.mjs +6 -0
  325. package/esm2022/form-builder-editor/lib/components/modal/confirm-dialog.component.mjs +151 -0
  326. package/esm2022/form-builder-editor/lib/components/modal/index.mjs +4 -0
  327. package/esm2022/form-builder-editor/lib/components/modal/modal.component.mjs +139 -0
  328. package/esm2022/form-builder-editor/lib/components/modal/modal.service.mjs +197 -0
  329. package/esm2022/form-builder-editor/lib/components/modal/modal.types.mjs +6 -0
  330. package/esm2022/form-builder-editor/lib/core/logging/logger.config.mjs +18 -0
  331. package/esm2022/form-builder-editor/lib/core/logging/logger.service.mjs +295 -0
  332. package/esm2022/form-builder-editor/lib/core/logging/logger.types.mjs +7 -0
  333. package/esm2022/form-builder-editor/lib/core/types/index.mjs +6 -0
  334. package/esm2022/form-builder-editor/lib/sources/location-data.opt.json +8942 -0
  335. package/esm2022/form-builder-editor/lib/sources/nazioni.opt.json +215 -0
  336. package/esm2022/http/entry-http.mjs +5 -0
  337. package/esm2022/http/gnggln-ng-ui-system-http.mjs +5 -0
  338. package/esm2022/http/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  339. package/esm2022/http/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  340. package/esm2022/http/lib/components/blackbox/blackbox.service.mjs +323 -0
  341. package/esm2022/http/lib/components/blackbox/blackbox.types.mjs +25 -0
  342. package/esm2022/http/lib/components/http/http-message.handler.mjs +143 -0
  343. package/esm2022/http/lib/components/http/http.service.mjs +228 -0
  344. package/esm2022/http/lib/components/http/http.tokens.mjs +29 -0
  345. package/esm2022/http/lib/components/http/http.types.mjs +6 -0
  346. package/esm2022/http/lib/components/http/index.mjs +19 -0
  347. package/esm2022/http/lib/components/layout-builder/layout-builder.types.mjs +9 -0
  348. package/esm2022/http/lib/components/layout-builder/layout.service.mjs +239 -0
  349. package/esm2022/http/lib/components/toast/toast-container.component.mjs +80 -0
  350. package/esm2022/http/lib/components/toast/toast.component.mjs +151 -0
  351. package/esm2022/http/lib/components/toast/toast.service.mjs +156 -0
  352. package/esm2022/http/lib/components/toast/toast.types.mjs +12 -0
  353. package/esm2022/http/lib/core/types/index.mjs +6 -0
  354. package/esm2022/http/lib/core/utils/index.mjs +102 -0
  355. package/esm2022/layout-builder/entry-layout-builder.mjs +5 -0
  356. package/esm2022/layout-builder/gnggln-ng-ui-system-layout-builder.mjs +5 -0
  357. package/esm2022/layout-builder/lib/components/layout-builder/index.mjs +18 -0
  358. package/esm2022/layout-builder/lib/components/layout-builder/layout-builder.component.mjs +1804 -0
  359. package/esm2022/layout-builder/lib/components/layout-builder/layout-builder.types.mjs +9 -0
  360. package/esm2022/layout-builder/lib/components/layout-builder/layout.service.mjs +239 -0
  361. package/esm2022/layout-builder/lib/core/types/index.mjs +6 -0
  362. package/esm2022/lib/components/accordion/accordion.component.mjs +106 -61
  363. package/esm2022/lib/components/accordion/accordion.types.mjs +1 -1
  364. package/esm2022/lib/components/base-layout/base-layout.component.mjs +88 -34
  365. package/esm2022/lib/components/base-layout/base-layout.types.mjs +1 -1
  366. package/esm2022/lib/components/base-layout/index.mjs +1 -1
  367. package/esm2022/lib/components/blackbox/blackbox-debugger.component.mjs +904 -0
  368. package/esm2022/lib/components/blackbox/blackbox-debugger.service.mjs +51 -0
  369. package/esm2022/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  370. package/esm2022/lib/components/blackbox/blackbox-json-viewer.component.mjs +66 -0
  371. package/esm2022/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  372. package/esm2022/lib/components/blackbox/blackbox.interceptor.mjs +135 -0
  373. package/esm2022/lib/components/blackbox/blackbox.service.mjs +323 -0
  374. package/esm2022/lib/components/blackbox/blackbox.types.mjs +25 -0
  375. package/esm2022/lib/components/blackbox/index.mjs +27 -0
  376. package/esm2022/lib/components/blackbox/ui-track.directive.mjs +69 -0
  377. package/esm2022/lib/components/button/button-area.component.mjs +16 -2
  378. package/esm2022/lib/components/button/button.component.mjs +23 -7
  379. package/esm2022/lib/components/button/button.types.mjs +1 -1
  380. package/esm2022/lib/components/crud-table/crud-table.component.mjs +14 -14
  381. package/esm2022/lib/components/form-builder/form-builder.component.mjs +710 -183
  382. package/esm2022/lib/components/form-builder/form-wizard.component.mjs +789 -235
  383. package/esm2022/lib/components/form-builder/index.mjs +7 -2
  384. package/esm2022/lib/components/form-builder/services/form-error-state.matcher.mjs +10 -0
  385. package/esm2022/lib/components/form-builder/services/form-field-error.service.mjs +103 -0
  386. package/esm2022/lib/components/form-builder/services/location.service.mjs +4 -3
  387. package/esm2022/lib/components/form-builder/services/nominatim-geocoding.service.mjs +120 -0
  388. package/esm2022/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +142 -113
  389. package/esm2022/lib/components/form-builder/sub-components/form-fields/form-number-field.component.mjs +113 -0
  390. package/esm2022/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.mjs +105 -0
  391. package/esm2022/lib/components/form-builder/sub-components/form-fields/form-select-field.component.mjs +126 -0
  392. package/esm2022/lib/components/form-builder/sub-components/form-fields/form-text-field.component.mjs +147 -0
  393. package/esm2022/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.mjs +99 -0
  394. package/esm2022/lib/components/form-builder/sub-components/form-fields/index.mjs +6 -0
  395. package/esm2022/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.mjs +322 -0
  396. package/esm2022/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.mjs +3 -3
  397. package/esm2022/lib/components/form-builder/types/field.types.mjs +1 -1
  398. package/esm2022/lib/components/form-builder/types/geocoded-location.types.mjs +6 -0
  399. package/esm2022/lib/components/form-builder/types/index.mjs +3 -2
  400. package/esm2022/lib/components/form-builder/types/schema.types.mjs +1 -1
  401. package/esm2022/lib/components/form-builder/types/validation.types.mjs +6 -2
  402. package/esm2022/lib/components/form-builder-editor/form-builder-editor.component.mjs +3 -3
  403. package/esm2022/lib/components/form-builder-editor/index.mjs +3 -1
  404. package/esm2022/lib/components/form-builder-editor/presets/editor-presets.mjs +395 -0
  405. package/esm2022/lib/components/form-builder-editor/sub-components/preview-container/preview-container.component.mjs +2 -2
  406. package/esm2022/lib/components/form-builder-editor/sub-components/section-editor/section-editor.component.mjs +2 -1
  407. package/esm2022/lib/components/http/http-message.handler.mjs +143 -0
  408. package/esm2022/lib/components/http/http.service.mjs +228 -0
  409. package/esm2022/lib/components/http/http.tokens.mjs +29 -0
  410. package/esm2022/lib/components/http/http.types.mjs +6 -0
  411. package/esm2022/lib/components/http/index.mjs +19 -0
  412. package/esm2022/lib/components/layout-builder/layout-builder.component.mjs +27 -15
  413. package/esm2022/lib/components/modal/confirm-dialog.component.mjs +3 -3
  414. package/esm2022/lib/components/modal/modal.service.mjs +5 -2
  415. package/esm2022/lib/components/page-header/breadcrumb.service.mjs +5 -4
  416. package/esm2022/lib/components/table/paginated-table.component.mjs +17 -3
  417. package/esm2022/lib/components/table/table.types.mjs +1 -1
  418. package/esm2022/lib/components/toast/index.mjs +18 -0
  419. package/esm2022/lib/components/toast/toast-container.component.mjs +80 -0
  420. package/esm2022/lib/components/toast/toast.component.mjs +151 -0
  421. package/esm2022/lib/components/toast/toast.service.mjs +156 -0
  422. package/esm2022/lib/components/toast/toast.types.mjs +12 -0
  423. package/esm2022/lib/core/logging/index.mjs +10 -0
  424. package/esm2022/lib/core/logging/logger.config.mjs +18 -0
  425. package/esm2022/lib/core/logging/logger.service.mjs +295 -0
  426. package/esm2022/lib/core/logging/logger.types.mjs +7 -0
  427. package/esm2022/lib/core/types/index.mjs +1 -1
  428. package/esm2022/lib/core/utils/index.mjs +50 -1
  429. package/esm2022/lib/version/ng-ui-system-version.mjs +12 -0
  430. package/esm2022/modal/entry-modal.mjs +5 -0
  431. package/esm2022/modal/gnggln-ng-ui-system-modal.mjs +5 -0
  432. package/esm2022/modal/lib/components/button/button.component.mjs +180 -0
  433. package/esm2022/modal/lib/components/button/button.types.mjs +6 -0
  434. package/esm2022/modal/lib/components/modal/confirm-dialog.component.mjs +151 -0
  435. package/esm2022/modal/lib/components/modal/index.mjs +4 -0
  436. package/esm2022/modal/lib/components/modal/modal.component.mjs +139 -0
  437. package/esm2022/modal/lib/components/modal/modal.service.mjs +197 -0
  438. package/esm2022/modal/lib/components/modal/modal.types.mjs +6 -0
  439. package/esm2022/modal/lib/core/types/index.mjs +6 -0
  440. package/esm2022/page-header/entry-page-header.mjs +5 -0
  441. package/esm2022/page-header/gnggln-ng-ui-system-page-header.mjs +5 -0
  442. package/esm2022/page-header/lib/components/page-header/breadcrumb.service.mjs +243 -0
  443. package/esm2022/page-header/lib/components/page-header/index.mjs +20 -0
  444. package/esm2022/page-header/lib/components/page-header/page-header.component.mjs +243 -0
  445. package/esm2022/page-header/lib/components/page-header/page-header.types.mjs +21 -0
  446. package/esm2022/public-api.mjs +17 -8
  447. package/esm2022/table/entry-table.mjs +5 -0
  448. package/esm2022/table/gnggln-ng-ui-system-table.mjs +5 -0
  449. package/esm2022/table/lib/components/table/index.mjs +2 -0
  450. package/esm2022/table/lib/components/table/paginated-table.component.mjs +421 -0
  451. package/esm2022/table/lib/components/table/table.types.mjs +6 -0
  452. package/esm2022/table/lib/core/utils/index.mjs +102 -0
  453. package/esm2022/toast/entry-toast.mjs +5 -0
  454. package/esm2022/toast/gnggln-ng-ui-system-toast.mjs +5 -0
  455. package/esm2022/toast/lib/components/toast/index.mjs +18 -0
  456. package/esm2022/toast/lib/components/toast/toast-container.component.mjs +80 -0
  457. package/esm2022/toast/lib/components/toast/toast.component.mjs +151 -0
  458. package/esm2022/toast/lib/components/toast/toast.service.mjs +156 -0
  459. package/esm2022/toast/lib/components/toast/toast.types.mjs +12 -0
  460. package/esm2022/toast/lib/core/types/index.mjs +6 -0
  461. package/esm2022/toast/lib/core/utils/index.mjs +102 -0
  462. package/fesm2022/gnggln-ng-ui-system-accordion.mjs +409 -0
  463. package/fesm2022/gnggln-ng-ui-system-accordion.mjs.map +1 -0
  464. package/fesm2022/gnggln-ng-ui-system-base-layout.mjs +1905 -0
  465. package/fesm2022/gnggln-ng-ui-system-base-layout.mjs.map +1 -0
  466. package/fesm2022/gnggln-ng-ui-system-blackbox.mjs +2829 -0
  467. package/fesm2022/gnggln-ng-ui-system-blackbox.mjs.map +1 -0
  468. package/fesm2022/gnggln-ng-ui-system-button.mjs +1148 -0
  469. package/fesm2022/gnggln-ng-ui-system-button.mjs.map +1 -0
  470. package/fesm2022/gnggln-ng-ui-system-core.mjs +117 -0
  471. package/fesm2022/gnggln-ng-ui-system-core.mjs.map +1 -0
  472. package/fesm2022/gnggln-ng-ui-system-crud-table.mjs +49600 -0
  473. package/fesm2022/gnggln-ng-ui-system-crud-table.mjs.map +1 -0
  474. package/fesm2022/gnggln-ng-ui-system-form-builder-editor.mjs +54332 -0
  475. package/fesm2022/gnggln-ng-ui-system-form-builder-editor.mjs.map +1 -0
  476. package/fesm2022/gnggln-ng-ui-system-form-builder.mjs +49609 -0
  477. package/fesm2022/gnggln-ng-ui-system-form-builder.mjs.map +1 -0
  478. package/fesm2022/gnggln-ng-ui-system-http.mjs +1878 -0
  479. package/fesm2022/gnggln-ng-ui-system-http.mjs.map +1 -0
  480. package/fesm2022/gnggln-ng-ui-system-layout-builder.mjs +2064 -0
  481. package/fesm2022/gnggln-ng-ui-system-layout-builder.mjs.map +1 -0
  482. package/fesm2022/gnggln-ng-ui-system-modal.mjs +664 -0
  483. package/fesm2022/gnggln-ng-ui-system-modal.mjs.map +1 -0
  484. package/fesm2022/gnggln-ng-ui-system-page-header.mjs +526 -0
  485. package/fesm2022/gnggln-ng-ui-system-page-header.mjs.map +1 -0
  486. package/fesm2022/gnggln-ng-ui-system-table.mjs +533 -0
  487. package/fesm2022/gnggln-ng-ui-system-table.mjs.map +1 -0
  488. package/fesm2022/gnggln-ng-ui-system-toast.mjs +516 -0
  489. package/fesm2022/gnggln-ng-ui-system-toast.mjs.map +1 -0
  490. package/fesm2022/gnggln-ng-ui-system.mjs +10068 -4234
  491. package/fesm2022/gnggln-ng-ui-system.mjs.map +1 -1
  492. package/form-builder/entry-form-builder.d.ts +4 -0
  493. package/form-builder/index.d.ts +5 -0
  494. package/form-builder/lib/components/accordion/accordion.component.d.ts +125 -0
  495. package/form-builder/lib/components/accordion/accordion.types.d.ts +64 -0
  496. package/form-builder/lib/components/accordion/index.d.ts +2 -0
  497. package/form-builder/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  498. package/form-builder/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  499. package/form-builder/lib/components/blackbox/blackbox.service.d.ts +144 -0
  500. package/form-builder/lib/components/blackbox/blackbox.types.d.ts +238 -0
  501. package/form-builder/lib/components/button/button-area.component.d.ts +93 -0
  502. package/form-builder/lib/components/button/button.component.d.ts +61 -0
  503. package/form-builder/lib/components/button/button.types.d.ts +75 -0
  504. package/form-builder/lib/components/button/index.d.ts +15 -0
  505. package/form-builder/lib/components/form-builder/adapters/it-date-adapter.d.ts +32 -0
  506. package/form-builder/lib/components/form-builder/directives/currency-input.directive.d.ts +48 -0
  507. package/form-builder/lib/components/form-builder/form-builder.component.d.ts +279 -0
  508. package/form-builder/lib/components/form-builder/form-wizard.component.d.ts +172 -0
  509. package/form-builder/lib/components/form-builder/index.d.ts +19 -0
  510. package/form-builder/lib/components/form-builder/services/form-condition.service.d.ts +46 -0
  511. package/form-builder/lib/components/form-builder/services/form-error-state.matcher.d.ts +9 -0
  512. package/form-builder/lib/components/form-builder/services/form-field-error.service.d.ts +38 -0
  513. package/form-builder/lib/components/form-builder/services/form-validation.service.d.ts +63 -0
  514. package/form-builder/lib/components/form-builder/services/location.service.d.ts +83 -0
  515. package/form-builder/lib/components/form-builder/services/nominatim-geocoding.service.d.ts +37 -0
  516. package/form-builder/lib/components/form-builder/services/wizard-sync.service.d.ts +63 -0
  517. package/form-builder/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +31 -0
  518. package/form-builder/lib/components/form-builder/sub-components/file-input/file-input.component.d.ts +41 -0
  519. package/form-builder/lib/components/form-builder/sub-components/form-fields/form-number-field.component.d.ts +42 -0
  520. package/form-builder/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.d.ts +45 -0
  521. package/form-builder/lib/components/form-builder/sub-components/form-fields/form-select-field.component.d.ts +44 -0
  522. package/form-builder/lib/components/form-builder/sub-components/form-fields/form-text-field.component.d.ts +62 -0
  523. package/form-builder/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.d.ts +39 -0
  524. package/form-builder/lib/components/form-builder/sub-components/form-fields/index.d.ts +5 -0
  525. package/form-builder/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.d.ts +84 -0
  526. package/form-builder/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.d.ts +145 -0
  527. package/form-builder/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.d.ts +108 -0
  528. package/form-builder/lib/components/form-builder/types/condition.types.d.ts +51 -0
  529. package/form-builder/lib/components/form-builder/types/field.types.d.ts +330 -0
  530. package/form-builder/lib/components/form-builder/types/geocoded-location.types.d.ts +116 -0
  531. package/form-builder/lib/components/form-builder/types/index.d.ts +6 -0
  532. package/form-builder/lib/components/form-builder/types/schema.types.d.ts +304 -0
  533. package/form-builder/lib/components/form-builder/types/territoriale.types.d.ts +170 -0
  534. package/form-builder/lib/components/form-builder/types/validation.types.d.ts +179 -0
  535. package/form-builder/lib/core/logging/logger.config.d.ts +18 -0
  536. package/form-builder/lib/core/logging/logger.service.d.ts +75 -0
  537. package/form-builder/lib/core/logging/logger.types.d.ts +70 -0
  538. package/form-builder/lib/core/types/index.d.ts +133 -0
  539. package/form-builder-editor/entry-form-builder-editor.d.ts +4 -0
  540. package/form-builder-editor/index.d.ts +5 -0
  541. package/form-builder-editor/lib/components/accordion/accordion.component.d.ts +125 -0
  542. package/form-builder-editor/lib/components/accordion/accordion.types.d.ts +64 -0
  543. package/form-builder-editor/lib/components/accordion/index.d.ts +2 -0
  544. package/form-builder-editor/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  545. package/form-builder-editor/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  546. package/form-builder-editor/lib/components/blackbox/blackbox.service.d.ts +144 -0
  547. package/form-builder-editor/lib/components/blackbox/blackbox.types.d.ts +238 -0
  548. package/form-builder-editor/lib/components/button/button-area.component.d.ts +93 -0
  549. package/form-builder-editor/lib/components/button/button.component.d.ts +61 -0
  550. package/form-builder-editor/lib/components/button/button.types.d.ts +75 -0
  551. package/form-builder-editor/lib/components/button/index.d.ts +15 -0
  552. package/form-builder-editor/lib/components/form-builder/adapters/it-date-adapter.d.ts +32 -0
  553. package/form-builder-editor/lib/components/form-builder/directives/currency-input.directive.d.ts +48 -0
  554. package/form-builder-editor/lib/components/form-builder/form-builder.component.d.ts +279 -0
  555. package/form-builder-editor/lib/components/form-builder/services/form-condition.service.d.ts +46 -0
  556. package/form-builder-editor/lib/components/form-builder/services/form-error-state.matcher.d.ts +9 -0
  557. package/form-builder-editor/lib/components/form-builder/services/form-field-error.service.d.ts +38 -0
  558. package/form-builder-editor/lib/components/form-builder/services/form-validation.service.d.ts +63 -0
  559. package/form-builder-editor/lib/components/form-builder/services/location.service.d.ts +83 -0
  560. package/form-builder-editor/lib/components/form-builder/services/nominatim-geocoding.service.d.ts +37 -0
  561. package/form-builder-editor/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +31 -0
  562. package/form-builder-editor/lib/components/form-builder/sub-components/file-input/file-input.component.d.ts +41 -0
  563. package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-number-field.component.d.ts +42 -0
  564. package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.d.ts +45 -0
  565. package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-select-field.component.d.ts +44 -0
  566. package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-text-field.component.d.ts +62 -0
  567. package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.d.ts +39 -0
  568. package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/index.d.ts +5 -0
  569. package/form-builder-editor/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.d.ts +84 -0
  570. package/form-builder-editor/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.d.ts +145 -0
  571. package/form-builder-editor/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.d.ts +108 -0
  572. package/form-builder-editor/lib/components/form-builder/types/condition.types.d.ts +51 -0
  573. package/form-builder-editor/lib/components/form-builder/types/field.types.d.ts +330 -0
  574. package/form-builder-editor/lib/components/form-builder/types/geocoded-location.types.d.ts +116 -0
  575. package/form-builder-editor/lib/components/form-builder/types/index.d.ts +6 -0
  576. package/form-builder-editor/lib/components/form-builder/types/schema.types.d.ts +304 -0
  577. package/form-builder-editor/lib/components/form-builder/types/territoriale.types.d.ts +170 -0
  578. package/form-builder-editor/lib/components/form-builder/types/validation.types.d.ts +179 -0
  579. package/form-builder-editor/lib/components/form-builder-editor/form-builder-editor.component.d.ts +117 -0
  580. package/form-builder-editor/lib/components/form-builder-editor/form-builder-editor.service.d.ts +38 -0
  581. package/form-builder-editor/lib/components/form-builder-editor/index.d.ts +17 -0
  582. package/form-builder-editor/lib/components/form-builder-editor/presets/editor-presets.d.ts +25 -0
  583. package/form-builder-editor/lib/components/form-builder-editor/services/editor-persistence.service.d.ts +42 -0
  584. package/form-builder-editor/lib/components/form-builder-editor/services/editor-state.service.d.ts +66 -0
  585. package/form-builder-editor/lib/components/form-builder-editor/services/field-factory.service.d.ts +28 -0
  586. package/form-builder-editor/lib/components/form-builder-editor/sub-components/condition-editor/condition-editor.component.d.ts +139 -0
  587. package/form-builder-editor/lib/components/form-builder-editor/sub-components/editor-toolbar/editor-toolbar.component.d.ts +43 -0
  588. package/form-builder-editor/lib/components/form-builder-editor/sub-components/field-config-panel/field-config-panel.component.d.ts +83 -0
  589. package/form-builder-editor/lib/components/form-builder-editor/sub-components/field-palette/field-palette.component.d.ts +40 -0
  590. package/form-builder-editor/lib/components/form-builder-editor/sub-components/form-values-panel/form-values-panel.component.d.ts +51 -0
  591. package/form-builder-editor/lib/components/form-builder-editor/sub-components/options-editor/options-editor.component.d.ts +63 -0
  592. package/form-builder-editor/lib/components/form-builder-editor/sub-components/preview-container/preview-container.component.d.ts +68 -0
  593. package/form-builder-editor/lib/components/form-builder-editor/sub-components/section-editor/section-editor.component.d.ts +82 -0
  594. package/form-builder-editor/lib/components/form-builder-editor/sub-components/validation-editor/validation-editor.component.d.ts +112 -0
  595. package/form-builder-editor/lib/components/form-builder-editor/types/editor.types.d.ts +124 -0
  596. package/form-builder-editor/lib/components/modal/confirm-dialog.component.d.ts +46 -0
  597. package/form-builder-editor/lib/components/modal/index.d.ts +4 -0
  598. package/form-builder-editor/lib/components/modal/modal.component.d.ts +44 -0
  599. package/form-builder-editor/lib/components/modal/modal.service.d.ts +93 -0
  600. package/form-builder-editor/lib/components/modal/modal.types.d.ts +110 -0
  601. package/form-builder-editor/lib/core/logging/logger.config.d.ts +18 -0
  602. package/form-builder-editor/lib/core/logging/logger.service.d.ts +75 -0
  603. package/form-builder-editor/lib/core/logging/logger.types.d.ts +70 -0
  604. package/form-builder-editor/lib/core/types/index.d.ts +133 -0
  605. package/http/entry-http.d.ts +4 -0
  606. package/http/index.d.ts +5 -0
  607. package/http/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  608. package/http/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  609. package/http/lib/components/blackbox/blackbox.service.d.ts +144 -0
  610. package/http/lib/components/blackbox/blackbox.types.d.ts +238 -0
  611. package/http/lib/components/http/http-message.handler.d.ts +59 -0
  612. package/http/lib/components/http/http.service.d.ts +98 -0
  613. package/http/lib/components/http/http.tokens.d.ts +29 -0
  614. package/http/lib/components/http/http.types.d.ts +50 -0
  615. package/http/lib/components/http/index.d.ts +17 -0
  616. package/http/lib/components/layout-builder/layout-builder.types.d.ts +436 -0
  617. package/http/lib/components/layout-builder/layout.service.d.ts +100 -0
  618. package/http/lib/components/toast/toast-container.component.d.ts +27 -0
  619. package/http/lib/components/toast/toast.component.d.ts +37 -0
  620. package/http/lib/components/toast/toast.service.d.ts +39 -0
  621. package/http/lib/components/toast/toast.types.d.ts +52 -0
  622. package/http/lib/core/types/index.d.ts +133 -0
  623. package/http/lib/core/utils/index.d.ts +60 -0
  624. package/layout-builder/entry-layout-builder.d.ts +4 -0
  625. package/layout-builder/index.d.ts +5 -0
  626. package/layout-builder/lib/components/layout-builder/index.d.ts +16 -0
  627. package/layout-builder/lib/components/layout-builder/layout-builder.component.d.ts +85 -0
  628. package/layout-builder/lib/components/layout-builder/layout-builder.types.d.ts +436 -0
  629. package/layout-builder/lib/components/layout-builder/layout.service.d.ts +100 -0
  630. package/layout-builder/lib/core/types/index.d.ts +133 -0
  631. package/lib/components/accordion/accordion.component.d.ts +10 -3
  632. package/lib/components/accordion/accordion.types.d.ts +2 -0
  633. package/lib/components/base-layout/base-layout.component.d.ts +36 -11
  634. package/lib/components/base-layout/base-layout.types.d.ts +14 -0
  635. package/lib/components/base-layout/index.d.ts +1 -1
  636. package/lib/components/blackbox/blackbox-debugger.component.d.ts +80 -0
  637. package/lib/components/blackbox/blackbox-debugger.service.d.ts +34 -0
  638. package/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  639. package/lib/components/blackbox/blackbox-json-viewer.component.d.ts +18 -0
  640. package/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  641. package/lib/components/blackbox/blackbox.interceptor.d.ts +38 -0
  642. package/lib/components/blackbox/blackbox.service.d.ts +144 -0
  643. package/lib/components/blackbox/blackbox.types.d.ts +238 -0
  644. package/lib/components/blackbox/index.d.ts +23 -0
  645. package/lib/components/blackbox/ui-track.directive.d.ts +20 -0
  646. package/lib/components/button/button-area.component.d.ts +6 -1
  647. package/lib/components/button/button.component.d.ts +8 -2
  648. package/lib/components/button/button.types.d.ts +5 -0
  649. package/lib/components/form-builder/form-builder.component.d.ts +125 -29
  650. package/lib/components/form-builder/form-wizard.component.d.ts +89 -4
  651. package/lib/components/form-builder/index.d.ts +7 -1
  652. package/lib/components/form-builder/services/form-error-state.matcher.d.ts +9 -0
  653. package/lib/components/form-builder/services/form-field-error.service.d.ts +38 -0
  654. package/lib/components/form-builder/services/nominatim-geocoding.service.d.ts +37 -0
  655. package/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +9 -6
  656. package/lib/components/form-builder/sub-components/form-fields/form-number-field.component.d.ts +42 -0
  657. package/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.d.ts +45 -0
  658. package/lib/components/form-builder/sub-components/form-fields/form-select-field.component.d.ts +44 -0
  659. package/lib/components/form-builder/sub-components/form-fields/form-text-field.component.d.ts +62 -0
  660. package/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.d.ts +39 -0
  661. package/lib/components/form-builder/sub-components/form-fields/index.d.ts +5 -0
  662. package/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.d.ts +84 -0
  663. package/lib/components/form-builder/types/field.types.d.ts +48 -6
  664. package/lib/components/form-builder/types/geocoded-location.types.d.ts +116 -0
  665. package/lib/components/form-builder/types/index.d.ts +4 -3
  666. package/lib/components/form-builder/types/schema.types.d.ts +83 -6
  667. package/lib/components/form-builder/types/validation.types.d.ts +5 -0
  668. package/lib/components/form-builder-editor/index.d.ts +2 -0
  669. package/lib/components/form-builder-editor/presets/editor-presets.d.ts +25 -0
  670. package/lib/components/http/http-message.handler.d.ts +59 -0
  671. package/lib/components/http/http.service.d.ts +98 -0
  672. package/lib/components/http/http.tokens.d.ts +29 -0
  673. package/lib/components/http/http.types.d.ts +50 -0
  674. package/lib/components/http/index.d.ts +17 -0
  675. package/lib/components/page-header/breadcrumb.service.d.ts +2 -2
  676. package/lib/components/table/table.types.d.ts +5 -0
  677. package/lib/components/toast/index.d.ts +17 -0
  678. package/lib/components/toast/toast-container.component.d.ts +27 -0
  679. package/lib/components/toast/toast.component.d.ts +37 -0
  680. package/lib/components/toast/toast.service.d.ts +39 -0
  681. package/lib/components/toast/toast.types.d.ts +52 -0
  682. package/lib/core/logging/index.d.ts +8 -0
  683. package/lib/core/logging/logger.config.d.ts +18 -0
  684. package/lib/core/logging/logger.service.d.ts +75 -0
  685. package/lib/core/logging/logger.types.d.ts +70 -0
  686. package/lib/core/types/index.d.ts +76 -0
  687. package/lib/core/utils/index.d.ts +31 -0
  688. package/lib/version/ng-ui-system-version.d.ts +9 -0
  689. package/modal/entry-modal.d.ts +4 -0
  690. package/modal/index.d.ts +5 -0
  691. package/modal/lib/components/button/button.component.d.ts +61 -0
  692. package/modal/lib/components/button/button.types.d.ts +75 -0
  693. package/modal/lib/components/modal/confirm-dialog.component.d.ts +46 -0
  694. package/modal/lib/components/modal/index.d.ts +4 -0
  695. package/modal/lib/components/modal/modal.component.d.ts +44 -0
  696. package/modal/lib/components/modal/modal.service.d.ts +93 -0
  697. package/modal/lib/components/modal/modal.types.d.ts +110 -0
  698. package/modal/lib/core/types/index.d.ts +133 -0
  699. package/package.json +93 -8
  700. package/page-header/entry-page-header.d.ts +4 -0
  701. package/page-header/index.d.ts +5 -0
  702. package/page-header/lib/components/page-header/breadcrumb.service.d.ts +96 -0
  703. package/page-header/lib/components/page-header/index.d.ts +16 -0
  704. package/page-header/lib/components/page-header/page-header.component.d.ts +59 -0
  705. package/page-header/lib/components/page-header/page-header.types.d.ts +96 -0
  706. package/public-api.d.ts +11 -6
  707. package/table/entry-table.d.ts +4 -0
  708. package/table/index.d.ts +5 -0
  709. package/table/lib/components/table/index.d.ts +2 -0
  710. package/table/lib/components/table/paginated-table.component.d.ts +85 -0
  711. package/table/lib/components/table/table.types.d.ts +86 -0
  712. package/table/lib/core/utils/index.d.ts +60 -0
  713. package/toast/entry-toast.d.ts +4 -0
  714. package/toast/index.d.ts +5 -0
  715. package/toast/lib/components/toast/index.d.ts +17 -0
  716. package/toast/lib/components/toast/toast-container.component.d.ts +27 -0
  717. package/toast/lib/components/toast/toast.component.d.ts +37 -0
  718. package/toast/lib/components/toast/toast.service.d.ts +39 -0
  719. package/toast/lib/components/toast/toast.types.d.ts +52 -0
  720. package/toast/lib/core/types/index.d.ts +133 -0
  721. package/toast/lib/core/utils/index.d.ts +60 -0
@@ -105,7 +105,7 @@ export class UiConfirmDialogComponent {
105
105
  />
106
106
  </div>
107
107
  </div>
108
- `, isInline: true, styles: [".ui-confirm-dialog-host{display:block}.ui-confirm-dialog{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--ui-spacing-8) var(--ui-spacing-6);background:var(--ui-color-surface);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-lg)}.ui-confirm-dialog__icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--ui-radius-full);margin-bottom:var(--ui-spacing-4)}.ui-confirm-dialog__icon--confirm{background:var(--ui-color-primary-light);color:var(--ui-color-primary)}.ui-confirm-dialog__icon--delete{background:var(--ui-color-warn-light);color:var(--ui-color-warn)}.ui-confirm-dialog__icon--warn{background:var(--ui-color-warning-light);color:var(--ui-color-warning)}.ui-confirm-dialog__icon--info{background:var(--ui-color-info-light);color:var(--ui-color-info)}.ui-confirm-dialog__content{margin-bottom:var(--ui-spacing-6)}.ui-confirm-dialog__title{margin:0 0 var(--ui-spacing-2);font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);line-height:var(--ui-line-height-tight)}.ui-confirm-dialog__message{margin:0;font-size:var(--ui-font-size-sm);color:var(--ui-color-text-secondary);line-height:var(--ui-line-height-normal);max-width:340px}.ui-confirm-dialog__actions{display:flex;gap:var(--ui-spacing-2);width:100%;justify-content:center}.ui-confirm-panel .mat-mdc-dialog-container{--mdc-dialog-container-color: transparent;--mdc-dialog-container-shape: var(--ui-radius-lg)}.ui-confirm-panel .mat-mdc-dialog-container .mdc-dialog__surface{background:transparent!important;box-shadow:none!important;border-radius:var(--ui-radius-lg)!important;overflow:visible}@media (max-width: 480px){.ui-confirm-dialog{padding:var(--ui-spacing-6) var(--ui-spacing-4)}.ui-confirm-dialog__actions{flex-direction:column-reverse;gap:var(--ui-spacing-2)}.ui-confirm-dialog__actions .ui-button-host{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: LucideAngularModule }, { kind: "component", type: i1.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }, { kind: "component", type: UiButtonComponent, selector: "ui-button", inputs: ["label", "tooltip", "variant", "size", "icon", "iconPosition", "loading", "disabled", "fullWidth", "type", "ariaLabel", "customClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
108
+ `, isInline: true, styles: [".ui-confirm-dialog-host{display:block}.ui-confirm-dialog{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--ui-spacing-8) var(--ui-spacing-6);background:var(--ui-color-surface);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-lg)}.ui-confirm-dialog__icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--ui-radius-full);margin-bottom:var(--ui-spacing-4)}.ui-confirm-dialog__icon--confirm{background:var(--ui-color-primary-light);color:var(--ui-color-primary)}.ui-confirm-dialog__icon--delete{background:var(--ui-color-warn-light);color:var(--ui-color-warn)}.ui-confirm-dialog__icon--warn{background:var(--ui-color-warning-light);color:var(--ui-color-warning)}.ui-confirm-dialog__icon--info{background:var(--ui-color-info-light);color:var(--ui-color-info)}.ui-confirm-dialog__content{margin-bottom:var(--ui-spacing-6)}.ui-confirm-dialog__title{margin:0 0 var(--ui-spacing-2);font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);line-height:var(--ui-line-height-tight)}.ui-confirm-dialog__message{margin:0;font-size:var(--ui-font-size-sm);color:var(--ui-color-text-secondary);line-height:var(--ui-line-height-normal);max-width:340px}.ui-confirm-dialog__actions{display:flex;gap:var(--ui-spacing-2);width:100%;justify-content:center}.ui-confirm-panel .mat-mdc-dialog-container{--mdc-dialog-container-color: transparent;--mdc-dialog-container-shape: var(--ui-radius-lg)}.ui-confirm-panel .mat-mdc-dialog-container .mdc-dialog__surface{background:transparent!important;box-shadow:none!important;border-radius:var(--ui-radius-lg)!important;overflow:visible}@media (max-width: 480px){.ui-confirm-dialog{padding:var(--ui-spacing-6) var(--ui-spacing-4)}.ui-confirm-dialog__actions{flex-direction:column-reverse;gap:var(--ui-spacing-2)}.ui-confirm-dialog__actions .ui-button-host{width:100%}}.ui-modal-backdrop{background:var(--ui-color-backdrop)}.ui-confirm-backdrop--stacked{background:#0000004d}\n"], dependencies: [{ kind: "ngmodule", type: LucideAngularModule }, { kind: "component", type: i1.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }, { kind: "component", type: UiButtonComponent, selector: "ui-button", inputs: ["label", "tooltip", "variant", "size", "icon", "iconPosition", "loading", "disabled", "fullWidth", "type", "ariaLabel", "customClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
109
109
  }
110
110
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiConfirmDialogComponent, decorators: [{
111
111
  type: Component,
@@ -146,6 +146,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
146
146
  />
147
147
  </div>
148
148
  </div>
149
- `, styles: [".ui-confirm-dialog-host{display:block}.ui-confirm-dialog{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--ui-spacing-8) var(--ui-spacing-6);background:var(--ui-color-surface);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-lg)}.ui-confirm-dialog__icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--ui-radius-full);margin-bottom:var(--ui-spacing-4)}.ui-confirm-dialog__icon--confirm{background:var(--ui-color-primary-light);color:var(--ui-color-primary)}.ui-confirm-dialog__icon--delete{background:var(--ui-color-warn-light);color:var(--ui-color-warn)}.ui-confirm-dialog__icon--warn{background:var(--ui-color-warning-light);color:var(--ui-color-warning)}.ui-confirm-dialog__icon--info{background:var(--ui-color-info-light);color:var(--ui-color-info)}.ui-confirm-dialog__content{margin-bottom:var(--ui-spacing-6)}.ui-confirm-dialog__title{margin:0 0 var(--ui-spacing-2);font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);line-height:var(--ui-line-height-tight)}.ui-confirm-dialog__message{margin:0;font-size:var(--ui-font-size-sm);color:var(--ui-color-text-secondary);line-height:var(--ui-line-height-normal);max-width:340px}.ui-confirm-dialog__actions{display:flex;gap:var(--ui-spacing-2);width:100%;justify-content:center}.ui-confirm-panel .mat-mdc-dialog-container{--mdc-dialog-container-color: transparent;--mdc-dialog-container-shape: var(--ui-radius-lg)}.ui-confirm-panel .mat-mdc-dialog-container .mdc-dialog__surface{background:transparent!important;box-shadow:none!important;border-radius:var(--ui-radius-lg)!important;overflow:visible}@media (max-width: 480px){.ui-confirm-dialog{padding:var(--ui-spacing-6) var(--ui-spacing-4)}.ui-confirm-dialog__actions{flex-direction:column-reverse;gap:var(--ui-spacing-2)}.ui-confirm-dialog__actions .ui-button-host{width:100%}}\n"] }]
149
+ `, styles: [".ui-confirm-dialog-host{display:block}.ui-confirm-dialog{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--ui-spacing-8) var(--ui-spacing-6);background:var(--ui-color-surface);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-lg)}.ui-confirm-dialog__icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--ui-radius-full);margin-bottom:var(--ui-spacing-4)}.ui-confirm-dialog__icon--confirm{background:var(--ui-color-primary-light);color:var(--ui-color-primary)}.ui-confirm-dialog__icon--delete{background:var(--ui-color-warn-light);color:var(--ui-color-warn)}.ui-confirm-dialog__icon--warn{background:var(--ui-color-warning-light);color:var(--ui-color-warning)}.ui-confirm-dialog__icon--info{background:var(--ui-color-info-light);color:var(--ui-color-info)}.ui-confirm-dialog__content{margin-bottom:var(--ui-spacing-6)}.ui-confirm-dialog__title{margin:0 0 var(--ui-spacing-2);font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);line-height:var(--ui-line-height-tight)}.ui-confirm-dialog__message{margin:0;font-size:var(--ui-font-size-sm);color:var(--ui-color-text-secondary);line-height:var(--ui-line-height-normal);max-width:340px}.ui-confirm-dialog__actions{display:flex;gap:var(--ui-spacing-2);width:100%;justify-content:center}.ui-confirm-panel .mat-mdc-dialog-container{--mdc-dialog-container-color: transparent;--mdc-dialog-container-shape: var(--ui-radius-lg)}.ui-confirm-panel .mat-mdc-dialog-container .mdc-dialog__surface{background:transparent!important;box-shadow:none!important;border-radius:var(--ui-radius-lg)!important;overflow:visible}@media (max-width: 480px){.ui-confirm-dialog{padding:var(--ui-spacing-6) var(--ui-spacing-4)}.ui-confirm-dialog__actions{flex-direction:column-reverse;gap:var(--ui-spacing-2)}.ui-confirm-dialog__actions .ui-button-host{width:100%}}.ui-modal-backdrop{background:var(--ui-color-backdrop)}.ui-confirm-backdrop--stacked{background:#0000004d}\n"] }]
150
150
  }] });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9jb25maXJtLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBRy9ELCtEQUErRDtBQUMvRCxNQUFNLGdCQUFnQixHQUF5QztJQUM3RCxPQUFPLEVBQUUsY0FBYztJQUN2QixNQUFNLEVBQUUsU0FBUztJQUNqQixJQUFJLEVBQUUsZ0JBQWdCO0lBQ3RCLElBQUksRUFBRSxNQUFNO0NBQ2IsQ0FBQztBQUVGLG1FQUFtRTtBQUNuRSxNQUFNLGtCQUFrQixHQUF3QztJQUM5RCxPQUFPLEVBQUUsU0FBUztJQUNsQixNQUFNLEVBQUUsTUFBTTtJQUNkLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLFNBQVM7Q0FDaEIsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQWdESCxNQUFNLE9BQU8sd0JBQXdCO0lBL0NyQztRQWdERSxvREFBb0Q7UUFDM0MsU0FBSSxHQUF3QixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFN0Qsd0RBQXdEO1FBQ3ZDLGNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0ErQm5EO0lBN0JDLG1DQUFtQztJQUNuQyxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLFNBQVMsQ0FBQztJQUN4QyxDQUFDO0lBRUQseUNBQXlDO0lBQ3pDLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELDJDQUEyQztJQUMzQyxJQUFJLFdBQVc7UUFDYixPQUFPLG9EQUFvRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUUsQ0FBQztJQUVELCtDQUErQztJQUMvQyxPQUFPO1FBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELCtDQUErQztJQUMvQyxNQUFNO1FBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzsrR0FuQ1Usd0JBQXdCO21HQUF4Qix3QkFBd0IsaVRBbEN6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCVCxtOURBekNTLG1CQUFtQixnUEFBRSxpQkFBaUI7OzRGQTRDckMsd0JBQXdCO2tCQS9DcEMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUMsbUJBQ2hDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osS0FBSyxFQUFFLHdCQUF3Qjt3QkFDL0IsSUFBSSxFQUFFLGFBQWE7d0JBQ25CLFlBQVksRUFBRSxNQUFNO3dCQUNwQix3QkFBd0IsRUFBRSxvQkFBb0I7d0JBQzlDLHlCQUF5QixFQUFFLHNCQUFzQjtxQkFDbEQsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBMdWNpZGVBbmd1bGFyTW9kdWxlIH0gZnJvbSAnbHVjaWRlLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBVaUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVWlDb25maXJtRGlhbG9nRGF0YSwgVWlDb25maXJtVmFyaWFudCwgVWlJY29uTmFtZSwgVWlWYXJpYW50IH0gZnJvbSAnLi9tb2RhbC50eXBlcyc7XHJcblxyXG4vKiogQGludGVybmFsIE1hcHBhdHVyYSB2YXJpYW50ZSAtPiBpY29uYSBMdWNpZGUgZGkgZGVmYXVsdC4gKi9cclxuY29uc3QgVkFSSUFOVF9JQ09OX01BUDogUmVjb3JkPFVpQ29uZmlybVZhcmlhbnQsIFVpSWNvbk5hbWU+ID0ge1xyXG4gIGNvbmZpcm06ICdjaGVjay1jaXJjbGUnLFxyXG4gIGRlbGV0ZTogJ3RyYXNoLTInLFxyXG4gIHdhcm46ICdhbGVydC10cmlhbmdsZScsXHJcbiAgaW5mbzogJ2luZm8nLFxyXG59O1xyXG5cclxuLyoqIEBpbnRlcm5hbCBNYXBwYXR1cmEgdmFyaWFudGUgLT4gY29sb3JlIHB1bHNhbnRlIGRpIGNvbmZlcm1hLiAqL1xyXG5jb25zdCBWQVJJQU5UX0JVVFRPTl9NQVA6IFJlY29yZDxVaUNvbmZpcm1WYXJpYW50LCBVaVZhcmlhbnQ+ID0ge1xyXG4gIGNvbmZpcm06ICdwcmltYXJ5JyxcclxuICBkZWxldGU6ICd3YXJuJyxcclxuICB3YXJuOiAnd2FybicsXHJcbiAgaW5mbzogJ3ByaW1hcnknLFxyXG59O1xyXG5cclxuLyoqXHJcbiAqIERpYWxvZ28gZGkgY29uZmVybWEgbGVnZ2VybyBwZXIgYXppb25pIGNvbmRpemlvbmFsaS5cclxuICpcclxuICogTm9uIHZhIHV0aWxpenphdG8gZGlyZXR0YW1lbnRlIG5lbCB0ZW1wbGF0ZTogdmllbmUgYXBlcnRvXHJcbiAqIHByb2dyYW1tYXRpY2FtZW50ZSB0cmFtaXRlIGBVaU1vZGFsU2VydmljZS5jb25maXJtKClgIGUgaSBzdW9pXHJcbiAqIG1ldG9kaSBzY29yY2lhdG9pYSAoYGNvbmZpcm1EZWxldGVgLCBgY29uZmlybURpc2NhcmRgLCBgY29uZmlybVNhdmVgKS5cclxuICpcclxuICogU3VwcG9ydGEgcXVhdHRybyB2YXJpYW50aSBzZW1hbnRpY2hlIOKAlCBjb25maXJtLCBkZWxldGUsIHdhcm4sIGluZm8g4oCUXHJcbiAqIGNpYXNjdW5hIGNvbiBpY29uYSBlIGNvbG9yZSBwcmVjb25maWd1cmF0aS5cclxuICpcclxuICogQHNlbGVjdG9yIHVpLWNvbmZpcm0tZGlhbG9nXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogLy8gQXBlcnR1cmEgdHJhbWl0ZSBzZXJ2aXppb1xyXG4gKiB0aGlzLm1vZGFsU2VydmljZS5jb25maXJtKHtcclxuICogICB0aXRsZTogJ0NvbmZlcm1hIGVsaW1pbmF6aW9uZScsXHJcbiAqICAgbWVzc2FnZTogJ1F1ZXN0YSBhemlvbmUgbm9uIHB1byBlc3NlcmUgYW5udWxsYXRhLicsXHJcbiAqICAgdmFyaWFudDogJ2RlbGV0ZScsXHJcbiAqIH0pLnN1YnNjcmliZShjb25maXJtZWQgPT4ge1xyXG4gKiAgIGlmIChjb25maXJtZWQpIHRoaXMuZGVsZXRlSXRlbSgpO1xyXG4gKiB9KTtcclxuICogYGBgXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3VpLWNvbmZpcm0tZGlhbG9nJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtMdWNpZGVBbmd1bGFyTW9kdWxlLCBVaUJ1dHRvbkNvbXBvbmVudF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ3VpLWNvbmZpcm0tZGlhbG9nLWhvc3QnLFxyXG4gICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcclxuICAgICdhcmlhLW1vZGFsJzogJ3RydWUnLFxyXG4gICAgJ1thdHRyLmFyaWEtbGFiZWxsZWRieV0nOiAnXCJ1aS1jb25maXJtLXRpdGxlXCInLFxyXG4gICAgJ1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ1widWktY29uZmlybS1tZXNzYWdlXCInLFxyXG4gIH0sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJ1aS1jb25maXJtLWRpYWxvZ1wiPlxyXG4gICAgICA8IS0tIEljb25hIC0tPlxyXG4gICAgICA8ZGl2IFtjbGFzc109XCJpY29uQ2xhc3Nlc1wiPlxyXG4gICAgICAgIDxsdWNpZGUtaWNvbiBbbmFtZV09XCJpY29uTmFtZVwiIFtzaXplXT1cIjMyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIENvbnRlbnV0byAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cInVpLWNvbmZpcm0tZGlhbG9nX19jb250ZW50XCI+XHJcbiAgICAgICAgQGlmIChkYXRhLnRpdGxlKSB7XHJcbiAgICAgICAgICA8aDMgY2xhc3M9XCJ1aS1jb25maXJtLWRpYWxvZ19fdGl0bGVcIiBpZD1cInVpLWNvbmZpcm0tdGl0bGVcIj57eyBkYXRhLnRpdGxlIH19PC9oMz5cclxuICAgICAgICB9XHJcbiAgICAgICAgPHAgY2xhc3M9XCJ1aS1jb25maXJtLWRpYWxvZ19fbWVzc2FnZVwiIGlkPVwidWktY29uZmlybS1tZXNzYWdlXCI+e3sgZGF0YS5tZXNzYWdlIH19PC9wPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gQXppb25pIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidWktY29uZmlybS1kaWFsb2dfX2FjdGlvbnNcIj5cclxuICAgICAgICA8dWktYnV0dG9uXHJcbiAgICAgICAgICBbbGFiZWxdPVwiZGF0YS5jYW5jZWxUZXh0IHx8ICdBbm51bGxhJ1wiXHJcbiAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxyXG4gICAgICAgICAgc2l6ZT1cIm1kXCJcclxuICAgICAgICAgIChjbGljayk9XCJjYW5jZWwoKVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8dWktYnV0dG9uXHJcbiAgICAgICAgICBbbGFiZWxdPVwiZGF0YS5jb25maXJtVGV4dCB8fCAnQ29uZmVybWEnXCJcclxuICAgICAgICAgIFt2YXJpYW50XT1cImNvbmZpcm1CdXR0b25WYXJpYW50XCJcclxuICAgICAgICAgIHNpemU9XCJtZFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiY29uZmlybSgpXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVVcmw6ICcuL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpQ29uZmlybURpYWxvZ0NvbXBvbmVudCB7XHJcbiAgLyoqIEBpbnRlcm5hbCBEYXRpIGluaWV0dGF0aSBkYWwgc2Vydml6aW8gbW9kYWxlLiAqL1xyXG4gIHJlYWRvbmx5IGRhdGE6IFVpQ29uZmlybURpYWxvZ0RhdGEgPSBpbmplY3QoTUFUX0RJQUxPR19EQVRBKTtcclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBSaWZlcmltZW50byBhbCBkaWFsb2dvIHBlciBsYSBjaGl1c3VyYS4gKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1JlZiA9IGluamVjdChNYXREaWFsb2dSZWYpO1xyXG5cclxuICAvKiogVmFyaWFudGUgc2VtYW50aWNhIGNvcnJlbnRlLiAqL1xyXG4gIGdldCB2YXJpYW50KCk6IFVpQ29uZmlybVZhcmlhbnQge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YS52YXJpYW50IHx8ICdjb25maXJtJztcclxuICB9XHJcblxyXG4gIC8qKiBOb21lIGljb25hIEx1Y2lkZSBkYSB2aXN1YWxpenphcmUuICovXHJcbiAgZ2V0IGljb25OYW1lKCk6IFVpSWNvbk5hbWUge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YS5pY29uIHx8IFZBUklBTlRfSUNPTl9NQVBbdGhpcy52YXJpYW50XTtcclxuICB9XHJcblxyXG4gIC8qKiBWYXJpYW50ZSBkZWwgcHVsc2FudGUgZGkgY29uZmVybWEuICovXHJcbiAgZ2V0IGNvbmZpcm1CdXR0b25WYXJpYW50KCk6IFVpVmFyaWFudCB7XHJcbiAgICByZXR1cm4gVkFSSUFOVF9CVVRUT05fTUFQW3RoaXMudmFyaWFudF07XHJcbiAgfVxyXG5cclxuICAvKiogQ2xhc3NpIENTUyBwZXIgaWwgY29udGVuaXRvcmUgaWNvbmEuICovXHJcbiAgZ2V0IGljb25DbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYHVpLWNvbmZpcm0tZGlhbG9nX19pY29uIHVpLWNvbmZpcm0tZGlhbG9nX19pY29uLS0ke3RoaXMudmFyaWFudH1gO1xyXG4gIH1cclxuXHJcbiAgLyoqIENvbmZlcm1hIGUgY2hpdWRlIGlsIGRpYWxvZ28gY29uIGB0cnVlYC4gKi9cclxuICBjb25maXJtKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICAvKiogQW5udWxsYSBlIGNoaXVkZSBpbCBkaWFsb2dvIGNvbiBgZmFsc2VgLiAqL1xyXG4gIGNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGZhbHNlKTtcclxuICB9XHJcbn1cclxuIl19
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9jb25maXJtLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBRy9ELCtEQUErRDtBQUMvRCxNQUFNLGdCQUFnQixHQUF5QztJQUM3RCxPQUFPLEVBQUUsY0FBYztJQUN2QixNQUFNLEVBQUUsU0FBUztJQUNqQixJQUFJLEVBQUUsZ0JBQWdCO0lBQ3RCLElBQUksRUFBRSxNQUFNO0NBQ2IsQ0FBQztBQUVGLG1FQUFtRTtBQUNuRSxNQUFNLGtCQUFrQixHQUF3QztJQUM5RCxPQUFPLEVBQUUsU0FBUztJQUNsQixNQUFNLEVBQUUsTUFBTTtJQUNkLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLFNBQVM7Q0FDaEIsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQWdESCxNQUFNLE9BQU8sd0JBQXdCO0lBL0NyQztRQWdERSxvREFBb0Q7UUFDM0MsU0FBSSxHQUF3QixNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFN0Qsd0RBQXdEO1FBQ3ZDLGNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0ErQm5EO0lBN0JDLG1DQUFtQztJQUNuQyxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLFNBQVMsQ0FBQztJQUN4QyxDQUFDO0lBRUQseUNBQXlDO0lBQ3pDLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELDJDQUEyQztJQUMzQyxJQUFJLFdBQVc7UUFDYixPQUFPLG9EQUFvRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUUsQ0FBQztJQUVELCtDQUErQztJQUMvQyxPQUFPO1FBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELCtDQUErQztJQUMvQyxNQUFNO1FBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzsrR0FuQ1Usd0JBQXdCO21HQUF4Qix3QkFBd0IsaVRBbEN6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCVCw2akVBekNTLG1CQUFtQixnUEFBRSxpQkFBaUI7OzRGQTRDckMsd0JBQXdCO2tCQS9DcEMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUMsbUJBQ2hDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osS0FBSyxFQUFFLHdCQUF3Qjt3QkFDL0IsSUFBSSxFQUFFLGFBQWE7d0JBQ25CLFlBQVksRUFBRSxNQUFNO3dCQUNwQix3QkFBd0IsRUFBRSxvQkFBb0I7d0JBQzlDLHlCQUF5QixFQUFFLHNCQUFzQjtxQkFDbEQsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBMdWNpZGVBbmd1bGFyTW9kdWxlIH0gZnJvbSAnbHVjaWRlLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBVaUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVWlDb25maXJtRGlhbG9nRGF0YSwgVWlDb25maXJtVmFyaWFudCwgVWlJY29uTmFtZSwgVWlWYXJpYW50IH0gZnJvbSAnLi9tb2RhbC50eXBlcyc7XHJcblxyXG4vKiogQGludGVybmFsIE1hcHBhdHVyYSB2YXJpYW50ZSAtPiBpY29uYSBMdWNpZGUgZGkgZGVmYXVsdC4gKi9cclxuY29uc3QgVkFSSUFOVF9JQ09OX01BUDogUmVjb3JkPFVpQ29uZmlybVZhcmlhbnQsIFVpSWNvbk5hbWU+ID0ge1xyXG4gIGNvbmZpcm06ICdjaGVjay1jaXJjbGUnLFxyXG4gIGRlbGV0ZTogJ3RyYXNoLTInLFxyXG4gIHdhcm46ICdhbGVydC10cmlhbmdsZScsXHJcbiAgaW5mbzogJ2luZm8nLFxyXG59O1xyXG5cclxuLyoqIEBpbnRlcm5hbCBNYXBwYXR1cmEgdmFyaWFudGUgLT4gY29sb3JlIHB1bHNhbnRlIGRpIGNvbmZlcm1hLiAqL1xyXG5jb25zdCBWQVJJQU5UX0JVVFRPTl9NQVA6IFJlY29yZDxVaUNvbmZpcm1WYXJpYW50LCBVaVZhcmlhbnQ+ID0ge1xyXG4gIGNvbmZpcm06ICdwcmltYXJ5JyxcclxuICBkZWxldGU6ICd3YXJuJyxcclxuICB3YXJuOiAnd2FybicsXHJcbiAgaW5mbzogJ3ByaW1hcnknLFxyXG59O1xyXG5cclxuLyoqXHJcbiAqIERpYWxvZ28gZGkgY29uZmVybWEgbGVnZ2VybyBwZXIgYXppb25pIGNvbmRpemlvbmFsaS5cclxuICpcclxuICogTm9uIHZhIHV0aWxpenphdG8gZGlyZXR0YW1lbnRlIG5lbCB0ZW1wbGF0ZTogdmllbmUgYXBlcnRvXHJcbiAqIHByb2dyYW1tYXRpY2FtZW50ZSB0cmFtaXRlIGBVaU1vZGFsU2VydmljZS5jb25maXJtKClgIGUgaSBzdW9pXHJcbiAqIG1ldG9kaSBzY29yY2lhdG9pYSAoYGNvbmZpcm1EZWxldGVgLCBgY29uZmlybURpc2NhcmRgLCBgY29uZmlybVNhdmVgKS5cclxuICpcclxuICogU3VwcG9ydGEgcXVhdHRybyB2YXJpYW50aSBzZW1hbnRpY2hlIOKAlCBjb25maXJtLCBkZWxldGUsIHdhcm4sIGluZm8g4oCUXHJcbiAqIGNpYXNjdW5hIGNvbiBpY29uYSBlIGNvbG9yZSBwcmVjb25maWd1cmF0aS5cclxuICpcclxuICogQHNlbGVjdG9yIHVpLWNvbmZpcm0tZGlhbG9nXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogLy8gQXBlcnR1cmEgdHJhbWl0ZSBzZXJ2aXppb1xyXG4gKiB0aGlzLm1vZGFsU2VydmljZS5jb25maXJtKHtcclxuICogICB0aXRsZTogJ0NvbmZlcm1hIGVsaW1pbmF6aW9uZScsXHJcbiAqICAgbWVzc2FnZTogJ1F1ZXN0YSBhemlvbmUgbm9uIHB1byBlc3NlcmUgYW5udWxsYXRhLicsXHJcbiAqICAgdmFyaWFudDogJ2RlbGV0ZScsXHJcbiAqIH0pLnN1YnNjcmliZShjb25maXJtZWQgPT4ge1xyXG4gKiAgIGlmIChjb25maXJtZWQpIHRoaXMuZGVsZXRlSXRlbSgpO1xyXG4gKiB9KTtcclxuICogYGBgXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3VpLWNvbmZpcm0tZGlhbG9nJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtMdWNpZGVBbmd1bGFyTW9kdWxlLCBVaUJ1dHRvbkNvbXBvbmVudF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ3VpLWNvbmZpcm0tZGlhbG9nLWhvc3QnLFxyXG4gICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcclxuICAgICdhcmlhLW1vZGFsJzogJ3RydWUnLFxyXG4gICAgJ1thdHRyLmFyaWEtbGFiZWxsZWRieV0nOiAnXCJ1aS1jb25maXJtLXRpdGxlXCInLFxyXG4gICAgJ1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ1widWktY29uZmlybS1tZXNzYWdlXCInLFxyXG4gIH0sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJ1aS1jb25maXJtLWRpYWxvZ1wiPlxyXG4gICAgICA8IS0tIEljb25hIC0tPlxyXG4gICAgICA8ZGl2IFtjbGFzc109XCJpY29uQ2xhc3Nlc1wiPlxyXG4gICAgICAgIDxsdWNpZGUtaWNvbiBbbmFtZV09XCJpY29uTmFtZVwiIFtzaXplXT1cIjMyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIENvbnRlbnV0byAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cInVpLWNvbmZpcm0tZGlhbG9nX19jb250ZW50XCI+XHJcbiAgICAgICAgQGlmIChkYXRhLnRpdGxlKSB7XHJcbiAgICAgICAgICA8aDMgY2xhc3M9XCJ1aS1jb25maXJtLWRpYWxvZ19fdGl0bGVcIiBpZD1cInVpLWNvbmZpcm0tdGl0bGVcIj57eyBkYXRhLnRpdGxlIH19PC9oMz5cclxuICAgICAgICB9XHJcbiAgICAgICAgPHAgY2xhc3M9XCJ1aS1jb25maXJtLWRpYWxvZ19fbWVzc2FnZVwiIGlkPVwidWktY29uZmlybS1tZXNzYWdlXCI+e3sgZGF0YS5tZXNzYWdlIH19PC9wPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gQXppb25pIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidWktY29uZmlybS1kaWFsb2dfX2FjdGlvbnNcIj5cclxuICAgICAgICA8dWktYnV0dG9uXHJcbiAgICAgICAgICBbbGFiZWxdPVwiZGF0YS5jYW5jZWxUZXh0IHx8ICdBbm51bGxhJ1wiXHJcbiAgICAgICAgICB2YXJpYW50PVwiZ2hvc3RcIlxyXG4gICAgICAgICAgc2l6ZT1cIm1kXCJcclxuICAgICAgICAgIChjbGljayk9XCJjYW5jZWwoKVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8dWktYnV0dG9uXHJcbiAgICAgICAgICBbbGFiZWxdPVwiZGF0YS5jb25maXJtVGV4dCB8fCAnQ29uZmVybWEnXCJcclxuICAgICAgICAgIFt2YXJpYW50XT1cImNvbmZpcm1CdXR0b25WYXJpYW50XCJcclxuICAgICAgICAgIHNpemU9XCJtZFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiY29uZmlybSgpXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVVcmw6ICcuL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpQ29uZmlybURpYWxvZ0NvbXBvbmVudCB7XHJcbiAgLyoqIEBpbnRlcm5hbCBEYXRpIGluaWV0dGF0aSBkYWwgc2Vydml6aW8gbW9kYWxlLiAqL1xyXG4gIHJlYWRvbmx5IGRhdGE6IFVpQ29uZmlybURpYWxvZ0RhdGEgPSBpbmplY3QoTUFUX0RJQUxPR19EQVRBKTtcclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBSaWZlcmltZW50byBhbCBkaWFsb2dvIHBlciBsYSBjaGl1c3VyYS4gKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1JlZiA9IGluamVjdChNYXREaWFsb2dSZWYpO1xyXG5cclxuICAvKiogVmFyaWFudGUgc2VtYW50aWNhIGNvcnJlbnRlLiAqL1xyXG4gIGdldCB2YXJpYW50KCk6IFVpQ29uZmlybVZhcmlhbnQge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YS52YXJpYW50IHx8ICdjb25maXJtJztcclxuICB9XHJcblxyXG4gIC8qKiBOb21lIGljb25hIEx1Y2lkZSBkYSB2aXN1YWxpenphcmUuICovXHJcbiAgZ2V0IGljb25OYW1lKCk6IFVpSWNvbk5hbWUge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YS5pY29uIHx8IFZBUklBTlRfSUNPTl9NQVBbdGhpcy52YXJpYW50XTtcclxuICB9XHJcblxyXG4gIC8qKiBWYXJpYW50ZSBkZWwgcHVsc2FudGUgZGkgY29uZmVybWEuICovXHJcbiAgZ2V0IGNvbmZpcm1CdXR0b25WYXJpYW50KCk6IFVpVmFyaWFudCB7XHJcbiAgICByZXR1cm4gVkFSSUFOVF9CVVRUT05fTUFQW3RoaXMudmFyaWFudF07XHJcbiAgfVxyXG5cclxuICAvKiogQ2xhc3NpIENTUyBwZXIgaWwgY29udGVuaXRvcmUgaWNvbmEuICovXHJcbiAgZ2V0IGljb25DbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYHVpLWNvbmZpcm0tZGlhbG9nX19pY29uIHVpLWNvbmZpcm0tZGlhbG9nX19pY29uLS0ke3RoaXMudmFyaWFudH1gO1xyXG4gIH1cclxuXHJcbiAgLyoqIENvbmZlcm1hIGUgY2hpdWRlIGlsIGRpYWxvZ28gY29uIGB0cnVlYC4gKi9cclxuICBjb25maXJtKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICAvKiogQW5udWxsYSBlIGNoaXVkZSBpbCBkaWFsb2dvIGNvbiBgZmFsc2VgLiAqL1xyXG4gIGNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGZhbHNlKTtcclxuICB9XHJcbn1cclxuIl19
@@ -119,7 +119,10 @@ export class UiModalService {
119
119
  restoreFocus: true,
120
120
  data,
121
121
  panelClass: ['ui-confirm-panel'],
122
- backdropClass: this._modalStack.length > 0 ? 'ui-confirm-backdrop--stacked' : 'ui-modal-backdrop',
122
+ hasBackdrop: true,
123
+ backdropClass: this._modalStack.length > 0
124
+ ? ['cdk-overlay-dark-backdrop', 'ui-confirm-backdrop--stacked']
125
+ : ['cdk-overlay-dark-backdrop', 'ui-modal-backdrop'],
123
126
  };
124
127
  const ref = this.dialog.open(UiConfirmDialogComponent, dialogConfig);
125
128
  return ref.afterClosed().pipe(map((result) => {
@@ -191,4 +194,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
191
194
  type: Injectable,
192
195
  args: [{ providedIn: 'root' }]
193
196
  }] });
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXVpLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFpQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUd0RSwrRUFBK0U7QUFDL0UsTUFBTSxjQUFjLEdBQWdDO0lBQ2xELEVBQUUsRUFBRSxPQUFPO0lBQ1gsRUFBRSxFQUFFLE9BQU87SUFDWCxFQUFFLEVBQUUsT0FBTztJQUNYLEVBQUUsRUFBRSxPQUFPO0lBQ1gsVUFBVSxFQUFFLE1BQU07Q0FDbkIsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdDRztBQUVILE1BQU0sT0FBTyxjQUFjO0lBRDNCO1FBRUUsMkRBQTJEO1FBQzFDLFdBQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFNUMsb0RBQW9EO1FBQzVDLGdCQUFXLEdBQTRCLEVBQUUsQ0FBQztRQUVsRCx3RUFBd0U7UUFDaEUsaUJBQVksR0FBRyxLQUFLLENBQUM7S0EySjlCO0lBekpDOzs7Ozs7Ozs7T0FTRztJQUNILElBQUksQ0FBOEIsU0FBa0IsRUFBRSxNQUE2QjtRQUNqRix1REFBdUQ7UUFDdkQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLENBQUMsSUFBSSxDQUNWLDRDQUE0QztnQkFDMUMsMkVBQTJFLENBQzlFLENBQUM7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LElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCw4REFBOEQ7SUFDOUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO0lBQ2pDLENBQUM7K0dBbEtVLGNBQWM7bUhBQWQsY0FBYyxjQURELE1BQU07OzRGQUNuQixjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFVpQ29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29uZmlybS1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVWlDb25maXJtRGlhbG9nRGF0YSwgVWlNb2RhbE9wZW5Db25maWcsIFVpTW9kYWxTaXplIH0gZnJvbSAnLi9tb2RhbC50eXBlcyc7XHJcblxyXG4vKiogQGludGVybmFsIE1hcHBhdHVyYSBkaW1lbnNpb25lIC0+IGxhcmdoZXp6YSBDU1MgcGVyIGlsIHBhbm5lbGxvIG92ZXJsYXkuICovXHJcbmNvbnN0IFNJWkVfV0lEVEhfTUFQOiBSZWNvcmQ8VWlNb2RhbFNpemUsIHN0cmluZz4gPSB7XHJcbiAgc206ICc0MDBweCcsXHJcbiAgbWQ6ICc1NjBweCcsXHJcbiAgbGc6ICc3MjBweCcsXHJcbiAgeGw6ICc5MDBweCcsXHJcbiAgZnVsbHNjcmVlbjogJzk1dncnLFxyXG59O1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpemlvIHBlciBhcHJpcmUgbW9kYWxpIGUgZGlhbG9naGkgZGkgY29uZmVybWEuXHJcbiAqXHJcbiAqIEdlc3Rpc2NlIGxvIHN0YWNraW5nIGludGVsbGlnZW50ZTogdW5hIG1vZGFsZSByZWdvbGFyZSBwdW9cclxuICogb3NwaXRhcmUgYWwgbWFzc2ltbyB1biBkaWFsb2dvIGRpIGNvbmZlcm1hIHNvcHJhIGRpIHNlLlxyXG4gKiBOb24gZSBwb3NzaWJpbGUgc3RhY2thcmUgZHVlIG1vZGFsaSByZWdvbGFyaS5cclxuICpcclxuICogQHVzYWdlTm90ZXNcclxuICpcclxuICogIyMjIEFwcmlyZSB1bmEgbW9kYWxlIHBlcnNvbmFsaXp6YXRhXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgcmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihNeURpYWxvZ0NvbXBvbmVudCwge1xyXG4gKiAgIHNpemU6ICdsZycsXHJcbiAqICAgZGF0YTogeyB1c2VySWQ6IDEyMyB9LFxyXG4gKiB9KTtcclxuICpcclxuICogcmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAqICAgY29uc29sZS5sb2coJ1Jpc3VsdGF0bzonLCByZXN1bHQpO1xyXG4gKiB9KTtcclxuICogYGBgXHJcbiAqXHJcbiAqICMjIyBDb25mZXJtYSByYXBpZGFcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiB0aGlzLm1vZGFsU2VydmljZS5jb25maXJtKCdDb25mZXJtaSBxdWVzdGEgYXppb25lPycpXHJcbiAqICAgLnN1YnNjcmliZShvayA9PiB7IGlmIChvaykgdGhpcy5wcm9jZWRpKCk7IH0pO1xyXG4gKiBgYGBcclxuICpcclxuICogIyMjIFByZXNldCBkaSBjb25mZXJtYVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIHRoaXMubW9kYWxTZXJ2aWNlLmNvbmZpcm1EZWxldGUoJ1Byb2dldHRvIEFscGhhJylcclxuICogICAuc3Vic2NyaWJlKG9rID0+IHsgaWYgKG9rKSB0aGlzLmVsaW1pbmEoKTsgfSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFVpTW9kYWxTZXJ2aWNlIHtcclxuICAvKiogQGludGVybmFsIElzdGFuemEgTWF0RGlhbG9nIHBlciBsYSBnZXN0aW9uZSBvdmVybGF5LiAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgU3RhY2sgZGVsbGUgbW9kYWxpIHJlZ29sYXJpIGFwZXJ0ZS4gKi9cclxuICBwcml2YXRlIF9tb2RhbFN0YWNrOiBNYXREaWFsb2dSZWY8dW5rbm93bj5bXSA9IFtdO1xyXG5cclxuICAvKiogQGludGVybmFsIFRyYWNjaWEgc2UgdW4gZGlhbG9nbyBkaSBjb25mZXJtYSBlIGF0dHVhbG1lbnRlIGFwZXJ0by4gKi9cclxuICBwcml2YXRlIF9jb25maXJtT3BlbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBBcHJlIHVuYSBtb2RhbGUgY29uIHVuIGNvbXBvbmVudGUgcGVyc29uYWxpenphdG8uXHJcbiAgICpcclxuICAgKiBJbCBjb21wb25lbnRlIGFwZXJ0byBwdW8gaW5pZXR0YXJlIGBNQVRfRElBTE9HX0RBVEFgIHBlciBhY2NlZGVyZVxyXG4gICAqIGFpIGRhdGkgZSBgTWF0RGlhbG9nUmVmYCBwZXIgY2hpdWRlcmUgbGEgbW9kYWxlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGNvbXBvbmVudCAtIENvbXBvbmVudGUgc3RhbmRhbG9uZSBkYSByZW5kZXJpenphcmUgbmVsbGEgbW9kYWxlXHJcbiAgICogQHBhcmFtIGNvbmZpZyAtIENvbmZpZ3VyYXppb25lIChkaW1lbnNpb25lLCBkYXRpLCBjb21wb3J0YW1lbnRvKVxyXG4gICAqIEByZXR1cm5zIFJpZmVyaW1lbnRvIGFsbGEgbW9kYWxlIGFwZXJ0YVxyXG4gICAqL1xyXG4gIG9wZW48VCwgRCA9IHVua25vd24sIFIgPSB1bmtub3duPihjb21wb25lbnQ6IFR5cGU8VD4sIGNvbmZpZz86IFVpTW9kYWxPcGVuQ29uZmlnPEQ+KTogTWF0RGlhbG9nUmVmPFQsIFI+IHtcclxuICAgIC8vIFJlZ29sYSBkaSBzdGFja2luZzogbm9uIHN0YWNrYXJlIGR1ZSBtb2RhbGkgcmVnb2xhcmlcclxuICAgIGlmICh0aGlzLl9tb2RhbFN0YWNrLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgICdbVWlNb2RhbFNlcnZpY2VdIFVuYSBtb2RhbGUgZSBnaWEgYXBlcnRhLiAnICtcclxuICAgICAgICAgICdVc2EgY29uZmlybSgpIHBlciBhcHJpcmUgdW4gZGlhbG9nbyBkaSBjb25mZXJtYSBzb3ByYSBsYSBtb2RhbGUgY29ycmVudGUuJyxcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzaXplID0gY29uZmlnPy5zaXplIHx8ICdtZCc7XHJcblxyXG4gICAgY29uc3QgZGlhbG9nQ29uZmlnOiBNYXREaWFsb2dDb25maWc8RD4gPSB7XHJcbiAgICAgIHdpZHRoOiBTSVpFX1dJRFRIX01BUFtzaXplXSxcclxuICAgICAgbWF4V2lkdGg6IHNpemUgPT09ICdmdWxsc2NyZWVuJyA/ICc5NXZ3JyA6ICc5MHZ3JyxcclxuICAgICAgbWF4SGVpZ2h0OiBzaXplID09PSAnZnVsbHNjcmVlbicgPyAnOTV2aCcgOiAnOTB2aCcsXHJcbiAgICAgIGhlaWdodDogc2l6ZSA9PT0gJ2Z1bGxzY3JlZW4nID8gJzk1dmgnIDogdW5kZWZpbmVkLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IGNvbmZpZz8uZGlzYWJsZUNsb3NlID8/IGZhbHNlLFxyXG4gICAgICBhdXRvRm9jdXM6IHRydWUsXHJcbiAgICAgIHJlc3RvcmVGb2N1czogdHJ1ZSxcclxuICAgICAgZGF0YTogY29uZmlnPy5kYXRhIGFzIEQsXHJcbiAgICAgIHBhbmVsQ2xhc3M6IFsndWktbW9kYWwtcGFuZWwnLCBgdWktbW9kYWwtcGFuZWwtLSR7c2l6ZX1gLCAuLi4oY29uZmlnPy5wYW5lbENsYXNzID8gW2NvbmZpZy5wYW5lbENsYXNzXSA6IFtdKV0sXHJcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxyXG4gICAgICBiYWNrZHJvcENsYXNzOiBbJ2Nkay1vdmVybGF5LWRhcmstYmFja2Ryb3AnLCAndWktbW9kYWwtYmFja2Ryb3AnXSxcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgcmVmID0gdGhpcy5kaWFsb2cub3Blbihjb21wb25lbnQsIGRpYWxvZ0NvbmZpZykgYXMgTWF0RGlhbG9nUmVmPFQsIFI+O1xyXG5cclxuICAgIHRoaXMuX21vZGFsU3RhY2sucHVzaChyZWYgYXMgTWF0RGlhbG9nUmVmPHVua25vd24+KTtcclxuICAgIHJlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX21vZGFsU3RhY2sgPSB0aGlzLl9tb2RhbFN0YWNrLmZpbHRlcigocikgPT4gciAhPT0gKHJlZiBhcyBNYXREaWFsb2dSZWY8dW5rbm93bj4pKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiByZWY7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBcHJlIHVuIGRpYWxvZ28gZGkgY29uZmVybWEuXHJcbiAgICpcclxuICAgKiBBY2NldHRhIHVuYSBzdHJpbmdhIHNlbXBsaWNlIChtZXNzYWdnaW8pIG8gdW4gb2dnZXR0byBkaVxyXG4gICAqIGNvbmZpZ3VyYXppb25lIGNvbXBsZXRvLiBQdW8gZXNzZXJlIGFwZXJ0byBzb3ByYSB1bmEgbW9kYWxlXHJcbiAgICogZXNpc3RlbnRlIChzdGFja2luZyBjb25zZW50aXRvKS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBtZXNzYWdlT3JDb25maWcgLSBNZXNzYWdnaW8gbyBjb25maWd1cmF6aW9uZSBjb21wbGV0YVxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgY2hlIGVtZXR0ZSBgdHJ1ZWAgc2UgY29uZmVybWF0bywgYGZhbHNlYCBzZSBhbm51bGxhdG9cclxuICAgKi9cclxuICBjb25maXJtKG1lc3NhZ2VPckNvbmZpZzogc3RyaW5nIHwgVWlDb25maXJtRGlhbG9nRGF0YSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgY29uc3QgZGF0YTogVWlDb25maXJtRGlhbG9nRGF0YSA9XHJcbiAgICAgIHR5cGVvZiBtZXNzYWdlT3JDb25maWcgPT09ICdzdHJpbmcnID8geyBtZXNzYWdlOiBtZXNzYWdlT3JDb25maWcgfSA6IG1lc3NhZ2VPckNvbmZpZztcclxuXHJcbiAgICAvLyBVbiBzb2xvIGRpYWxvZ28gZGkgY29uZmVybWEgYWxsYSB2b2x0YVxyXG4gICAgaWYgKHRoaXMuX2NvbmZpcm1PcGVuKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybignW1VpTW9kYWxTZXJ2aWNlXSBVbiBkaWFsb2dvIGRpIGNvbmZlcm1hIGUgZ2lhIGFwZXJ0by4nKTtcclxuICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XHJcbiAgICAgICAgc3Vic2NyaWJlci5uZXh0KGZhbHNlKTtcclxuICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2NvbmZpcm1PcGVuID0gdHJ1ZTtcclxuXHJcbiAgICBjb25zdCBkaWFsb2dDb25maWc6IE1hdERpYWxvZ0NvbmZpZzxVaUNvbmZpcm1EaWFsb2dEYXRhPiA9IHtcclxuICAgICAgd2lkdGg6ICc0MjBweCcsXHJcbiAgICAgIG1heFdpZHRoOiAnOTB2dycsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogZmFsc2UsXHJcbiAgICAgIGF1dG9Gb2N1czogZmFsc2UsXHJcbiAgICAgIHJlc3RvcmVGb2N1czogdHJ1ZSxcclxuICAgICAgZGF0YSxcclxuICAgICAgcGFuZWxDbGFzczogWyd1aS1jb25maXJtLXBhbmVsJ10sXHJcbiAgICAgIGJhY2tkcm9wQ2xhc3M6IHRoaXMuX21vZGFsU3RhY2subGVuZ3RoID4gMCA/ICd1aS1jb25maXJtLWJhY2tkcm9wLS1zdGFja2VkJyA6ICd1aS1tb2RhbC1iYWNrZHJvcCcsXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHJlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVWlDb25maXJtRGlhbG9nQ29tcG9uZW50LCBkaWFsb2dDb25maWcpO1xyXG5cclxuICAgIHJldHVybiByZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKFxyXG4gICAgICBtYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX2NvbmZpcm1PcGVuID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuICEhcmVzdWx0O1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTY29yY2lhdG9pYTogY29uZmVybWEgZWxpbWluYXppb25lLlxyXG4gICAqIFZhcmlhbnRlIGBkZWxldGVgIGNvbiBpY29uYSBjZXN0aW5vIGUgcHVsc2FudGUgd2Fybi5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpdGVtTmFtZSAtIE5vbWUgb3B6aW9uYWxlIGRlbGwnZWxlbWVudG8gZGEgZWxpbWluYXJlXHJcbiAgICovXHJcbiAgY29uZmlybURlbGV0ZShpdGVtTmFtZT86IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlybSh7XHJcbiAgICAgIHRpdGxlOiAnQ29uZmVybWEgZWxpbWluYXppb25lJyxcclxuICAgICAgbWVzc2FnZTogaXRlbU5hbWVcclxuICAgICAgICA/IGBTZWkgc2ljdXJvIGRpIHZvbGVyIGVsaW1pbmFyZSBcIiR7aXRlbU5hbWV9XCI/IFF1ZXN0YSBhemlvbmUgbm9uIHB1byBlc3NlcmUgYW5udWxsYXRhLmBcclxuICAgICAgICA6ICdTZWkgc2ljdXJvIGRpIHZvbGVyIGVsaW1pbmFyZSBxdWVzdG8gZWxlbWVudG8/IFF1ZXN0YSBhemlvbmUgbm9uIHB1byBlc3NlcmUgYW5udWxsYXRhLicsXHJcbiAgICAgIGNvbmZpcm1UZXh0OiAnRWxpbWluYScsXHJcbiAgICAgIGNhbmNlbFRleHQ6ICdBbm51bGxhJyxcclxuICAgICAgdmFyaWFudDogJ2RlbGV0ZScsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNjb3JjaWF0b2lhOiBjb25mZXJtYSBhYmJhbmRvbm8gbW9kaWZpY2hlLlxyXG4gICAqIFZhcmlhbnRlIGB3YXJuYCBjb24gaWNvbmEgYXZ2aXNvLlxyXG4gICAqL1xyXG4gIGNvbmZpcm1EaXNjYXJkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlybSh7XHJcbiAgICAgIHRpdGxlOiAnTW9kaWZpY2hlIG5vbiBzYWx2YXRlJyxcclxuICAgICAgbWVzc2FnZTogJ0NpIHNvbm8gbW9kaWZpY2hlIG5vbiBzYWx2YXRlLiBTZWkgc2ljdXJvIGRpIHZvbGVyIHVzY2lyZSBzZW56YSBzYWx2YXJlPycsXHJcbiAgICAgIGNvbmZpcm1UZXh0OiAnRXNjaSBzZW56YSBzYWx2YXJlJyxcclxuICAgICAgY2FuY2VsVGV4dDogJ1JpbWFuaScsXHJcbiAgICAgIHZhcmlhbnQ6ICd3YXJuJyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2NvcmNpYXRvaWE6IGNvbmZlcm1hIHNhbHZhdGFnZ2lvLlxyXG4gICAqIFZhcmlhbnRlIGBjb25maXJtYCBjb24gaWNvbmEgY2hlY2suXHJcbiAgICovXHJcbiAgY29uZmlybVNhdmUoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maXJtKHtcclxuICAgICAgdGl0bGU6ICdDb25mZXJtYSBzYWx2YXRhZ2dpbycsXHJcbiAgICAgIG1lc3NhZ2U6ICdTZWkgc2ljdXJvIGRpIHZvbGVyIHNhbHZhcmUgbGUgbW9kaWZpY2hlPycsXHJcbiAgICAgIGNvbmZpcm1UZXh0OiAnU2FsdmEnLFxyXG4gICAgICBjYW5jZWxUZXh0OiAnQW5udWxsYScsXHJcbiAgICAgIHZhcmlhbnQ6ICdjb25maXJtJyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIENoaXVkZSB0dXR0ZSBsZSBtb2RhbGkgZSBkaWFsb2doaSBhcGVydGkuICovXHJcbiAgY2xvc2VBbGwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZy5jbG9zZUFsbCgpO1xyXG4gICAgdGhpcy5fbW9kYWxTdGFjayA9IFtdO1xyXG4gICAgdGhpcy5fY29uZmlybU9wZW4gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKiBJbmRpY2Egc2UgY2kgc29ubyBtb2RhbGkgbyBkaWFsb2doaSBhdHR1YWxtZW50ZSBhcGVydGkuICovXHJcbiAgZ2V0IGhhc09wZW5EaWFsb2dzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlhbG9nLm9wZW5EaWFsb2dzLmxlbmd0aCA+IDA7XHJcbiAgfVxyXG5cclxuICAvKiogTnVtZXJvIGRpIG1vZGFsaSByZWdvbGFyaSBhdHR1YWxtZW50ZSBhcGVydGUuICovXHJcbiAgZ2V0IG9wZW5Nb2RhbENvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9kYWxTdGFjay5sZW5ndGg7XHJcbiAgfVxyXG59XHJcbiJdfQ==
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXVpLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFpQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUd0RSwrRUFBK0U7QUFDL0UsTUFBTSxjQUFjLEdBQWdDO0lBQ2xELEVBQUUsRUFBRSxPQUFPO0lBQ1gsRUFBRSxFQUFFLE9BQU87SUFDWCxFQUFFLEVBQUUsT0FBTztJQUNYLEVBQUUsRUFBRSxPQUFPO0lBQ1gsVUFBVSxFQUFFLE1BQU07Q0FDbkIsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdDRztBQUVILE1BQU0sT0FBTyxjQUFjO0lBRDNCO1FBRUUsMkRBQTJEO1FBQzFDLFdBQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFNUMsb0RBQW9EO1FBQzVDLGdCQUFXLEdBQTRCLEVBQUUsQ0FBQztRQUVsRCx3RUFBd0U7UUFDaEUsaUJBQVksR0FBRyxLQUFLLENBQUM7S0ErSjlCO0lBN0pDOzs7Ozs7Ozs7T0FTRztJQUNILElBQUksQ0FBOEIsU0FBa0IsRUFBRSxNQUE2QjtRQUNqRix1REFBdUQ7UUFDdkQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLENBQUMsSUFBSSxDQUNWLDRDQUE0QztnQkFDMUMsMkVBQTJFLENBQzlFLENBQUM7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QUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCw4REFBOEQ7SUFDOUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO0lBQ2pDLENBQUM7K0dBdEtVLGNBQWM7bUhBQWQsY0FBYyxjQURELE1BQU07OzRGQUNuQixjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFVpQ29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29uZmlybS1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVWlDb25maXJtRGlhbG9nRGF0YSwgVWlNb2RhbE9wZW5Db25maWcsIFVpTW9kYWxTaXplIH0gZnJvbSAnLi9tb2RhbC50eXBlcyc7XHJcblxyXG4vKiogQGludGVybmFsIE1hcHBhdHVyYSBkaW1lbnNpb25lIC0+IGxhcmdoZXp6YSBDU1MgcGVyIGlsIHBhbm5lbGxvIG92ZXJsYXkuICovXHJcbmNvbnN0IFNJWkVfV0lEVEhfTUFQOiBSZWNvcmQ8VWlNb2RhbFNpemUsIHN0cmluZz4gPSB7XHJcbiAgc206ICc0MDBweCcsXHJcbiAgbWQ6ICc1NjBweCcsXHJcbiAgbGc6ICc3MjBweCcsXHJcbiAgeGw6ICc5MDBweCcsXHJcbiAgZnVsbHNjcmVlbjogJzk1dncnLFxyXG59O1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpemlvIHBlciBhcHJpcmUgbW9kYWxpIGUgZGlhbG9naGkgZGkgY29uZmVybWEuXHJcbiAqXHJcbiAqIEdlc3Rpc2NlIGxvIHN0YWNraW5nIGludGVsbGlnZW50ZTogdW5hIG1vZGFsZSByZWdvbGFyZSBwdW9cclxuICogb3NwaXRhcmUgYWwgbWFzc2ltbyB1biBkaWFsb2dvIGRpIGNvbmZlcm1hIHNvcHJhIGRpIHNlLlxyXG4gKiBOb24gZSBwb3NzaWJpbGUgc3RhY2thcmUgZHVlIG1vZGFsaSByZWdvbGFyaS5cclxuICpcclxuICogQHVzYWdlTm90ZXNcclxuICpcclxuICogIyMjIEFwcmlyZSB1bmEgbW9kYWxlIHBlcnNvbmFsaXp6YXRhXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgcmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihNeURpYWxvZ0NvbXBvbmVudCwge1xyXG4gKiAgIHNpemU6ICdsZycsXHJcbiAqICAgZGF0YTogeyB1c2VySWQ6IDEyMyB9LFxyXG4gKiB9KTtcclxuICpcclxuICogcmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAqICAgY29uc29sZS5sb2coJ1Jpc3VsdGF0bzonLCByZXN1bHQpO1xyXG4gKiB9KTtcclxuICogYGBgXHJcbiAqXHJcbiAqICMjIyBDb25mZXJtYSByYXBpZGFcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiB0aGlzLm1vZGFsU2VydmljZS5jb25maXJtKCdDb25mZXJtaSBxdWVzdGEgYXppb25lPycpXHJcbiAqICAgLnN1YnNjcmliZShvayA9PiB7IGlmIChvaykgdGhpcy5wcm9jZWRpKCk7IH0pO1xyXG4gKiBgYGBcclxuICpcclxuICogIyMjIFByZXNldCBkaSBjb25mZXJtYVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIHRoaXMubW9kYWxTZXJ2aWNlLmNvbmZpcm1EZWxldGUoJ1Byb2dldHRvIEFscGhhJylcclxuICogICAuc3Vic2NyaWJlKG9rID0+IHsgaWYgKG9rKSB0aGlzLmVsaW1pbmEoKTsgfSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFVpTW9kYWxTZXJ2aWNlIHtcclxuICAvKiogQGludGVybmFsIElzdGFuemEgTWF0RGlhbG9nIHBlciBsYSBnZXN0aW9uZSBvdmVybGF5LiAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgU3RhY2sgZGVsbGUgbW9kYWxpIHJlZ29sYXJpIGFwZXJ0ZS4gKi9cclxuICBwcml2YXRlIF9tb2RhbFN0YWNrOiBNYXREaWFsb2dSZWY8dW5rbm93bj5bXSA9IFtdO1xyXG5cclxuICAvKiogQGludGVybmFsIFRyYWNjaWEgc2UgdW4gZGlhbG9nbyBkaSBjb25mZXJtYSBlIGF0dHVhbG1lbnRlIGFwZXJ0by4gKi9cclxuICBwcml2YXRlIF9jb25maXJtT3BlbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBBcHJlIHVuYSBtb2RhbGUgY29uIHVuIGNvbXBvbmVudGUgcGVyc29uYWxpenphdG8uXHJcbiAgICpcclxuICAgKiBJbCBjb21wb25lbnRlIGFwZXJ0byBwdW8gaW5pZXR0YXJlIGBNQVRfRElBTE9HX0RBVEFgIHBlciBhY2NlZGVyZVxyXG4gICAqIGFpIGRhdGkgZSBgTWF0RGlhbG9nUmVmYCBwZXIgY2hpdWRlcmUgbGEgbW9kYWxlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGNvbXBvbmVudCAtIENvbXBvbmVudGUgc3RhbmRhbG9uZSBkYSByZW5kZXJpenphcmUgbmVsbGEgbW9kYWxlXHJcbiAgICogQHBhcmFtIGNvbmZpZyAtIENvbmZpZ3VyYXppb25lIChkaW1lbnNpb25lLCBkYXRpLCBjb21wb3J0YW1lbnRvKVxyXG4gICAqIEByZXR1cm5zIFJpZmVyaW1lbnRvIGFsbGEgbW9kYWxlIGFwZXJ0YVxyXG4gICAqL1xyXG4gIG9wZW48VCwgRCA9IHVua25vd24sIFIgPSB1bmtub3duPihjb21wb25lbnQ6IFR5cGU8VD4sIGNvbmZpZz86IFVpTW9kYWxPcGVuQ29uZmlnPEQ+KTogTWF0RGlhbG9nUmVmPFQsIFI+IHtcclxuICAgIC8vIFJlZ29sYSBkaSBzdGFja2luZzogbm9uIHN0YWNrYXJlIGR1ZSBtb2RhbGkgcmVnb2xhcmlcclxuICAgIGlmICh0aGlzLl9tb2RhbFN0YWNrLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgICdbVWlNb2RhbFNlcnZpY2VdIFVuYSBtb2RhbGUgZSBnaWEgYXBlcnRhLiAnICtcclxuICAgICAgICAgICdVc2EgY29uZmlybSgpIHBlciBhcHJpcmUgdW4gZGlhbG9nbyBkaSBjb25mZXJtYSBzb3ByYSBsYSBtb2RhbGUgY29ycmVudGUuJyxcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzaXplID0gY29uZmlnPy5zaXplIHx8ICdtZCc7XHJcblxyXG4gICAgY29uc3QgZGlhbG9nQ29uZmlnOiBNYXREaWFsb2dDb25maWc8RD4gPSB7XHJcbiAgICAgIHdpZHRoOiBTSVpFX1dJRFRIX01BUFtzaXplXSxcclxuICAgICAgbWF4V2lkdGg6IHNpemUgPT09ICdmdWxsc2NyZWVuJyA/ICc5NXZ3JyA6ICc5MHZ3JyxcclxuICAgICAgbWF4SGVpZ2h0OiBzaXplID09PSAnZnVsbHNjcmVlbicgPyAnOTV2aCcgOiAnOTB2aCcsXHJcbiAgICAgIGhlaWdodDogc2l6ZSA9PT0gJ2Z1bGxzY3JlZW4nID8gJzk1dmgnIDogdW5kZWZpbmVkLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IGNvbmZpZz8uZGlzYWJsZUNsb3NlID8/IGZhbHNlLFxyXG4gICAgICBhdXRvRm9jdXM6IHRydWUsXHJcbiAgICAgIHJlc3RvcmVGb2N1czogdHJ1ZSxcclxuICAgICAgZGF0YTogY29uZmlnPy5kYXRhIGFzIEQsXHJcbiAgICAgIHBhbmVsQ2xhc3M6IFsndWktbW9kYWwtcGFuZWwnLCBgdWktbW9kYWwtcGFuZWwtLSR7c2l6ZX1gLCAuLi4oY29uZmlnPy5wYW5lbENsYXNzID8gW2NvbmZpZy5wYW5lbENsYXNzXSA6IFtdKV0sXHJcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxyXG4gICAgICBiYWNrZHJvcENsYXNzOiBbJ2Nkay1vdmVybGF5LWRhcmstYmFja2Ryb3AnLCAndWktbW9kYWwtYmFja2Ryb3AnXSxcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgcmVmID0gdGhpcy5kaWFsb2cub3Blbihjb21wb25lbnQsIGRpYWxvZ0NvbmZpZykgYXMgTWF0RGlhbG9nUmVmPFQsIFI+O1xyXG5cclxuICAgIHRoaXMuX21vZGFsU3RhY2sucHVzaChyZWYgYXMgTWF0RGlhbG9nUmVmPHVua25vd24+KTtcclxuICAgIHJlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX21vZGFsU3RhY2sgPSB0aGlzLl9tb2RhbFN0YWNrLmZpbHRlcigocikgPT4gciAhPT0gKHJlZiBhcyBNYXREaWFsb2dSZWY8dW5rbm93bj4pKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiByZWY7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBcHJlIHVuIGRpYWxvZ28gZGkgY29uZmVybWEuXHJcbiAgICpcclxuICAgKiBBY2NldHRhIHVuYSBzdHJpbmdhIHNlbXBsaWNlIChtZXNzYWdnaW8pIG8gdW4gb2dnZXR0byBkaVxyXG4gICAqIGNvbmZpZ3VyYXppb25lIGNvbXBsZXRvLiBQdW8gZXNzZXJlIGFwZXJ0byBzb3ByYSB1bmEgbW9kYWxlXHJcbiAgICogZXNpc3RlbnRlIChzdGFja2luZyBjb25zZW50aXRvKS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBtZXNzYWdlT3JDb25maWcgLSBNZXNzYWdnaW8gbyBjb25maWd1cmF6aW9uZSBjb21wbGV0YVxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgY2hlIGVtZXR0ZSBgdHJ1ZWAgc2UgY29uZmVybWF0bywgYGZhbHNlYCBzZSBhbm51bGxhdG9cclxuICAgKi9cclxuICBjb25maXJtKG1lc3NhZ2VPckNvbmZpZzogc3RyaW5nIHwgVWlDb25maXJtRGlhbG9nRGF0YSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgY29uc3QgZGF0YTogVWlDb25maXJtRGlhbG9nRGF0YSA9XHJcbiAgICAgIHR5cGVvZiBtZXNzYWdlT3JDb25maWcgPT09ICdzdHJpbmcnID8geyBtZXNzYWdlOiBtZXNzYWdlT3JDb25maWcgfSA6IG1lc3NhZ2VPckNvbmZpZztcclxuXHJcbiAgICAvLyBVbiBzb2xvIGRpYWxvZ28gZGkgY29uZmVybWEgYWxsYSB2b2x0YVxyXG4gICAgaWYgKHRoaXMuX2NvbmZpcm1PcGVuKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybignW1VpTW9kYWxTZXJ2aWNlXSBVbiBkaWFsb2dvIGRpIGNvbmZlcm1hIGUgZ2lhIGFwZXJ0by4nKTtcclxuICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XHJcbiAgICAgICAgc3Vic2NyaWJlci5uZXh0KGZhbHNlKTtcclxuICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2NvbmZpcm1PcGVuID0gdHJ1ZTtcclxuXHJcbiAgICBjb25zdCBkaWFsb2dDb25maWc6IE1hdERpYWxvZ0NvbmZpZzxVaUNvbmZpcm1EaWFsb2dEYXRhPiA9IHtcclxuICAgICAgd2lkdGg6ICc0MjBweCcsXHJcbiAgICAgIG1heFdpZHRoOiAnOTB2dycsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogZmFsc2UsXHJcbiAgICAgIGF1dG9Gb2N1czogZmFsc2UsXHJcbiAgICAgIHJlc3RvcmVGb2N1czogdHJ1ZSxcclxuICAgICAgZGF0YSxcclxuICAgICAgcGFuZWxDbGFzczogWyd1aS1jb25maXJtLXBhbmVsJ10sXHJcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxyXG4gICAgICBiYWNrZHJvcENsYXNzOlxyXG4gICAgICAgIHRoaXMuX21vZGFsU3RhY2subGVuZ3RoID4gMFxyXG4gICAgICAgICAgPyBbJ2Nkay1vdmVybGF5LWRhcmstYmFja2Ryb3AnLCAndWktY29uZmlybS1iYWNrZHJvcC0tc3RhY2tlZCddXHJcbiAgICAgICAgICA6IFsnY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcCcsICd1aS1tb2RhbC1iYWNrZHJvcCddLFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCByZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFVpQ29uZmlybURpYWxvZ0NvbXBvbmVudCwgZGlhbG9nQ29uZmlnKTtcclxuXHJcbiAgICByZXR1cm4gcmVmLmFmdGVyQ2xvc2VkKCkucGlwZShcclxuICAgICAgbWFwKChyZXN1bHQpID0+IHtcclxuICAgICAgICB0aGlzLl9jb25maXJtT3BlbiA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiAhIXJlc3VsdDtcclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2NvcmNpYXRvaWE6IGNvbmZlcm1hIGVsaW1pbmF6aW9uZS5cclxuICAgKiBWYXJpYW50ZSBgZGVsZXRlYCBjb24gaWNvbmEgY2VzdGlubyBlIHB1bHNhbnRlIHdhcm4uXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaXRlbU5hbWUgLSBOb21lIG9wemlvbmFsZSBkZWxsJ2VsZW1lbnRvIGRhIGVsaW1pbmFyZVxyXG4gICAqL1xyXG4gIGNvbmZpcm1EZWxldGUoaXRlbU5hbWU/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpcm0oe1xyXG4gICAgICB0aXRsZTogJ0NvbmZlcm1hIGVsaW1pbmF6aW9uZScsXHJcbiAgICAgIG1lc3NhZ2U6IGl0ZW1OYW1lXHJcbiAgICAgICAgPyBgU2VpIHNpY3VybyBkaSB2b2xlciBlbGltaW5hcmUgXCIke2l0ZW1OYW1lfVwiPyBRdWVzdGEgYXppb25lIG5vbiBwdW8gZXNzZXJlIGFubnVsbGF0YS5gXHJcbiAgICAgICAgOiAnU2VpIHNpY3VybyBkaSB2b2xlciBlbGltaW5hcmUgcXVlc3RvIGVsZW1lbnRvPyBRdWVzdGEgYXppb25lIG5vbiBwdW8gZXNzZXJlIGFubnVsbGF0YS4nLFxyXG4gICAgICBjb25maXJtVGV4dDogJ0VsaW1pbmEnLFxyXG4gICAgICBjYW5jZWxUZXh0OiAnQW5udWxsYScsXHJcbiAgICAgIHZhcmlhbnQ6ICdkZWxldGUnLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTY29yY2lhdG9pYTogY29uZmVybWEgYWJiYW5kb25vIG1vZGlmaWNoZS5cclxuICAgKiBWYXJpYW50ZSBgd2FybmAgY29uIGljb25hIGF2dmlzby5cclxuICAgKi9cclxuICBjb25maXJtRGlzY2FyZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpcm0oe1xyXG4gICAgICB0aXRsZTogJ01vZGlmaWNoZSBub24gc2FsdmF0ZScsXHJcbiAgICAgIG1lc3NhZ2U6ICdDaSBzb25vIG1vZGlmaWNoZSBub24gc2FsdmF0ZS4gU2VpIHNpY3VybyBkaSB2b2xlciB1c2NpcmUgc2VuemEgc2FsdmFyZT8nLFxyXG4gICAgICBjb25maXJtVGV4dDogJ0VzY2kgc2VuemEgc2FsdmFyZScsXHJcbiAgICAgIGNhbmNlbFRleHQ6ICdSaW1hbmknLFxyXG4gICAgICB2YXJpYW50OiAnd2FybicsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNjb3JjaWF0b2lhOiBjb25mZXJtYSBzYWx2YXRhZ2dpby5cclxuICAgKiBWYXJpYW50ZSBgY29uZmlybWAgY29uIGljb25hIGNoZWNrLlxyXG4gICAqL1xyXG4gIGNvbmZpcm1TYXZlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlybSh7XHJcbiAgICAgIHRpdGxlOiAnQ29uZmVybWEgc2FsdmF0YWdnaW8nLFxyXG4gICAgICBtZXNzYWdlOiAnU2VpIHNpY3VybyBkaSB2b2xlciBzYWx2YXJlIGxlIG1vZGlmaWNoZT8nLFxyXG4gICAgICBjb25maXJtVGV4dDogJ1NhbHZhJyxcclxuICAgICAgY2FuY2VsVGV4dDogJ0FubnVsbGEnLFxyXG4gICAgICB2YXJpYW50OiAnY29uZmlybScsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKiBDaGl1ZGUgdHV0dGUgbGUgbW9kYWxpIGUgZGlhbG9naGkgYXBlcnRpLiAqL1xyXG4gIGNsb3NlQWxsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2cuY2xvc2VBbGwoKTtcclxuICAgIHRoaXMuX21vZGFsU3RhY2sgPSBbXTtcclxuICAgIHRoaXMuX2NvbmZpcm1PcGVuID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKiogSW5kaWNhIHNlIGNpIHNvbm8gbW9kYWxpIG8gZGlhbG9naGkgYXR0dWFsbWVudGUgYXBlcnRpLiAqL1xyXG4gIGdldCBoYXNPcGVuRGlhbG9ncygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmRpYWxvZy5vcGVuRGlhbG9ncy5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqIE51bWVybyBkaSBtb2RhbGkgcmVnb2xhcmkgYXR0dWFsbWVudGUgYXBlcnRlLiAqL1xyXG4gIGdldCBvcGVuTW9kYWxDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21vZGFsU3RhY2subGVuZ3RoO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,4 +1,5 @@
1
- import { inject, Injectable } from '@angular/core';
1
+ /** biome-ignore-all lint/complexity/useLiteralKeys: <explanation> */
2
+ import { Injectable, inject } from '@angular/core';
2
3
  import { NavigationEnd, Router } from '@angular/router';
3
4
  import { filter } from 'rxjs/operators';
4
5
  import { UI_BREADCRUMB_LABEL_RESOLVER, } from './page-header.types';
@@ -79,7 +80,7 @@ export class UiBreadcrumbService {
79
80
  this.lastBreadcrumbs = [];
80
81
  return [];
81
82
  }
82
- const params = this.collectParamsFromPath(route);
83
+ const params = this.collectParamsFromPath(deepestRoute);
83
84
  const breadcrumbs = this.buildBreadcrumbChain(routeId, params);
84
85
  this.lastBreadcrumbs = breadcrumbs;
85
86
  return breadcrumbs;
@@ -131,7 +132,7 @@ export class UiBreadcrumbService {
131
132
  /** @internal Recursively walks route tree to build the breadcrumb map. */
132
133
  buildRouteMap(routes, parentPath = '') {
133
134
  for (const route of routes) {
134
- const currentPath = parentPath + '/' + (route.path || '');
135
+ const currentPath = `${parentPath}/${route.path || ''}`;
135
136
  if (route.data?.['id']) {
136
137
  const fullPath = this.normalizePath(currentPath);
137
138
  this.breadcrumbMap.set(route.data['id'], {
@@ -239,4 +240,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
239
240
  type: Injectable,
240
241
  args: [{ providedIn: 'root' }]
241
242
  }], ctorParameters: () => [] });
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9wYWdlLWhlYWRlci9icmVhZGNydW1iLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFrQixhQUFhLEVBQUUsTUFBTSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDaEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFJTCw0QkFBNEIsR0FDN0IsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFN0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Q0c7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBVzlCO1FBVmlCLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsa0JBQWEsR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUV0RSw0REFBNEQ7UUFDcEQsa0JBQWEsR0FBRyxJQUFJLEdBQUcsRUFBOEIsQ0FBQztRQUM5RCwwRUFBMEU7UUFDbEUsMEJBQXFCLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLDREQUE0RDtRQUNwRCxvQkFBZSxHQUF1QixFQUFFLENBQUM7UUFHL0MsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXZCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssWUFBWSxhQUFhLENBQUMsQ0FBQzthQUN2RCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxzQkFBc0IsQ0FBQyxLQUFxQjtRQUMxQyxJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDekIsT0FBTyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDL0IsWUFBWSxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFDekMsQ0FBQztRQUVELElBQUksV0FBVyxHQUEwQixZQUFZLENBQUM7UUFDdEQsT0FBTyxXQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3ZELFdBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO1FBQ25DLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxXQUFXLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztZQUMxQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsZUFBZSxHQUFHLFdBQVcsQ0FBQztRQUNuQyxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLFdBQVcsR0FBRyxHQUFHO1FBQzVCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzVHLE1BQU0sTUFBTSxHQUFHLElBQUksRUFBRSxHQUFHLElBQUksV0FBVyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxrRkFBa0Y7SUFDMUUscUJBQXFCLENBQUMsS0FBcUI7UUFDakQsTUFBTSxNQUFNLEdBQTJCLEVBQUUsQ0FBQztRQUMxQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNuQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsb0VBQW9FO0lBRXBFLG1FQUFtRTtJQUMzRCx1QkFBdUI7UUFDN0IsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNELElBQUksYUFBYSxLQUFLLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVELDBFQUEwRTtJQUNsRSxXQUFXLENBQUMsTUFBYztRQUNoQyxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzFCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7WUFDM0IsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ25CLEtBQUssSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM1QyxDQUFDO1lBQ0QsSUFBSyxLQUFhLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ2pDLEtBQUssSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFFLEtBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMxRCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELHFFQUFxRTtJQUM3RCxlQUFlO1FBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELDBFQUEwRTtJQUNsRSxhQUFhLENBQUMsTUFBYyxFQUFFLFVBQVUsR0FBRyxFQUFFO1FBQ25ELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7WUFDM0IsTUFBTSxXQUFXLEdBQUcsVUFBVSxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7WUFFMUQsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDakQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDdkMsRUFBRSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO29CQUNwQixJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO29CQUM1RCxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFO29CQUMxQyxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUk7aUJBQ3JCLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ2xELENBQUM7WUFDRCxJQUFLLEtBQWEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBRSxLQUFhLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ2hFLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELHdFQUF3RTtJQUNoRSxvQkFBb0IsQ0FBQyxPQUFlLEVBQUUsTUFBOEI7UUFDMUUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTVDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsRSxNQUFNLFdBQVcsR0FBdUIsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBRXpELFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQztZQUM5QyxHQUFHLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1lBQzNDLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQyxDQUFDO1FBRUgsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELHFFQUFxRTtJQUM3RCxjQUFjLENBQUMsU0FBbUIsRUFBRSxNQUE4QjtRQUN4RSxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU07WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUVsQyxPQUFPLFNBQVM7YUFDYixHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUNWLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBRXpCLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUM7Z0JBQzlDLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO2dCQUN6QyxNQUFNLEVBQUUsS0FBSzthQUNkLENBQUM7UUFDSixDQUFDLENBQUM7YUFDRCxNQUFNLENBQUMsT0FBTyxDQUF1QixDQUFDO0lBQzNDLENBQUM7SUFFRDs7O09BR0c7SUFDSyxZQUFZLENBQUMsS0FBYSxFQUFFLE1BQThCO1FBQ2hFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRXZDLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQztRQUNyQixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2xELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JELFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCw0RUFBNEU7SUFDcEUsVUFBVSxDQUFDLElBQVksRUFBRSxNQUE4QjtRQUM3RCxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFFekIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQyxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDakQsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQzVCLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3ZDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQztnQkFDdEMsQ0FBQztnQkFDRCxPQUFPLE9BQU8sQ0FBQztZQUNqQixDQUFDLENBQUMsQ0FBQztZQUNILGFBQWEsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQy9ELENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVELDBGQUEwRjtJQUNsRixhQUFhLENBQUMsSUFBWTtRQUNoQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELHFEQUFxRDtJQUM3QyxnQkFBZ0IsQ0FBQyxHQUFXO1FBQ2xDLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsOERBQThEO0lBQ3RELFlBQVksQ0FBQyxPQUFlLEVBQUUsUUFBZ0I7UUFDcEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDOytHQXJOVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUROLE1BQU07OzRGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtcclxuICBVaUJyZWFkY3J1bWJDb25maWcsXHJcbiAgVWlCcmVhZGNydW1iSXRlbSxcclxuICBVaUxhYmVsUmVzb2x2ZXJGbixcclxuICBVSV9CUkVBRENSVU1CX0xBQkVMX1JFU09MVkVSLFxyXG59IGZyb20gJy4vcGFnZS1oZWFkZXIudHlwZXMnO1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2UgdGhhdCBidWlsZHMgYSBuZXN0ZWQgYnJlYWRjcnVtYiB0cmFpbCBmcm9tIEFuZ3VsYXIgcm91dGUgY29uZmlndXJhdGlvbi5cclxuICpcclxuICogUm91dGVzIG11c3QgZGVmaW5lIGBkYXRhLmlkYCwgYGRhdGEudGl0bGVgLCBhbmQgb3B0aW9uYWxseSBgZGF0YS5icmVhZGNydW1ic2BcclxuICogKGFuIGFycmF5IG9mIHBhcmVudCByb3V0ZSBJRHMpIGZvciB0aGUgY2hhaW4gdG8gcmVzb2x2ZSBjb3JyZWN0bHkuXHJcbiAqXHJcbiAqIFN1cHBvcnRzIGxhenktbG9hZGVkIHJvdXRlczogdGhlIGludGVybmFsIHJvdXRlIG1hcCBpcyByZWJ1aWx0IGF1dG9tYXRpY2FsbHlcclxuICogd2hlbmV2ZXIgbmV3IHJvdXRlcyBhcmUgbG9hZGVkIHZpYSBgTmF2aWdhdGlvbkVuZGAuXHJcbiAqXHJcbiAqIExhYmVsIHJlc29sdXRpb24gZm9yIHJvdXRlIHBhcmFtZXRlcnMgKGA6cGFyYW1gKSBpcyBkZWxlZ2F0ZWQgdG8gYW4gaW5qZWN0YWJsZVxyXG4gKiBgVWlMYWJlbFJlc29sdmVyRm5gIHZpYSB0aGUgYFVJX0JSRUFEQ1JVTUJfTEFCRUxfUkVTT0xWRVJgIHRva2VuLlxyXG4gKlxyXG4gKiBAdXNhZ2VOb3Rlc1xyXG4gKiAjIyMgUm91dGUgY29uZmlndXJhdGlvblxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IHJvdXRlczogUm91dGVzID0gW1xyXG4gKiAgIHtcclxuICogICAgIHBhdGg6ICd1c2VycycsXHJcbiAqICAgICBkYXRhOiB7IGlkOiAndXNlcnMnLCB0aXRsZTogJ1V0ZW50aScgfSxcclxuICogICAgIGNoaWxkcmVuOiBbXHJcbiAqICAgICAgIHtcclxuICogICAgICAgICBwYXRoOiAnOnVzZXJJZCcsXHJcbiAqICAgICAgICAgZGF0YTogeyBpZDogJ3VzZXItZGV0YWlsJywgdGl0bGU6ICc6dXNlcklkJywgYnJlYWRjcnVtYnM6IFsndXNlcnMnXSB9LFxyXG4gKiAgICAgICAgIGNvbXBvbmVudDogVXNlckRldGFpbENvbXBvbmVudCxcclxuICogICAgICAgfSxcclxuICogICAgIF0sXHJcbiAqICAgfSxcclxuICogXTtcclxuICogYGBgXHJcbiAqXHJcbiAqICMjIyBDdXN0b20gbGFiZWwgcmVzb2x2ZXJcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBwcm92aWRlcnM6IFtcclxuICogICB7XHJcbiAqICAgICBwcm92aWRlOiBVSV9CUkVBRENSVU1CX0xBQkVMX1JFU09MVkVSLFxyXG4gKiAgICAgdXNlVmFsdWU6IChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpID0+XHJcbiAqICAgICAgIG5hbWUgPT09ICd1c2VySWQnID8gYFVzZXIgIyR7dmFsdWV9YCA6IHZhbHVlLFxyXG4gKiAgIH0sXHJcbiAqIF1cclxuICogYGBgXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgVWlCcmVhZGNydW1iU2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGxhYmVsUmVzb2x2ZXIgPSBpbmplY3QoVUlfQlJFQURDUlVNQl9MQUJFTF9SRVNPTFZFUik7XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgTWFwIG9mIHJvdXRlIElEIOKGkiBicmVhZGNydW1iIGNvbmZpZ3VyYXRpb24uICovXHJcbiAgcHJpdmF0ZSBicmVhZGNydW1iTWFwID0gbmV3IE1hcDxzdHJpbmcsIFVpQnJlYWRjcnVtYkNvbmZpZz4oKTtcclxuICAvKiogQGludGVybmFsIFRyYWNrcyByb3V0ZSBjb3VudCB0byBkZXRlY3QgbGF6eS1sb2FkZWQgcm91dGUgYWRkaXRpb25zLiAqL1xyXG4gIHByaXZhdGUgbGFzdFJvdXRlQ29uZmlnTGVuZ3RoID0gMDtcclxuICAvKiogQGludGVybmFsIExhc3QgY29tcHV0ZWQgYnJlYWRjcnVtYnMgZm9yIG5hdmlnYXRlQmFjay4gKi9cclxuICBwcml2YXRlIGxhc3RCcmVhZGNydW1iczogVWlCcmVhZGNydW1iSXRlbVtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5yZWJ1aWxkUm91dGVNYXAoKTtcclxuXHJcbiAgICB0aGlzLnJvdXRlci5ldmVudHNcclxuICAgICAgLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlYnVpbGRSb3V0ZU1hcElmTmVlZGVkKCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29tcHV0ZXMgdGhlIGJyZWFkY3J1bWIgdHJhaWwgZm9yIHRoZSBjdXJyZW50bHkgYWN0aXZlIHJvdXRlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHJvdXRlIC0gVGhlIHJvb3QgYEFjdGl2YXRlZFJvdXRlYCAodHlwaWNhbGx5IGluamVjdGVkIGluIHRoZSBjb21wb25lbnQpLlxyXG4gICAqIEByZXR1cm5zIE9yZGVyZWQgYXJyYXkgb2YgYnJlYWRjcnVtYiBpdGVtcyBmcm9tIHJvb3QgdG8gY3VycmVudCByb3V0ZS5cclxuICAgKi9cclxuICBnZXRCcmVhZGNydW1ic0ZvclJvdXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IFVpQnJlYWRjcnVtYkl0ZW1bXSB7XHJcbiAgICBsZXQgZGVlcGVzdFJvdXRlID0gcm91dGU7XHJcbiAgICB3aGlsZSAoZGVlcGVzdFJvdXRlLmZpcnN0Q2hpbGQpIHtcclxuICAgICAgZGVlcGVzdFJvdXRlID0gZGVlcGVzdFJvdXRlLmZpcnN0Q2hpbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHJvdXRlV2l0aElkOiBBY3RpdmF0ZWRSb3V0ZSB8IG51bGwgPSBkZWVwZXN0Um91dGU7XHJcbiAgICB3aGlsZSAocm91dGVXaXRoSWQgJiYgIXJvdXRlV2l0aElkLnNuYXBzaG90LmRhdGFbJ2lkJ10pIHtcclxuICAgICAgcm91dGVXaXRoSWQgPSByb3V0ZVdpdGhJZC5wYXJlbnQ7XHJcbiAgICB9XHJcbiAgICBjb25zdCByb3V0ZUlkID0gcm91dGVXaXRoSWQ/LnNuYXBzaG90LmRhdGFbJ2lkJ107XHJcbiAgICBpZiAoIXJvdXRlSWQpIHtcclxuICAgICAgdGhpcy5sYXN0QnJlYWRjcnVtYnMgPSBbXTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuY29sbGVjdFBhcmFtc0Zyb21QYXRoKHJvdXRlKTtcclxuICAgIGNvbnN0IGJyZWFkY3J1bWJzID0gdGhpcy5idWlsZEJyZWFkY3J1bWJDaGFpbihyb3V0ZUlkLCBwYXJhbXMpO1xyXG4gICAgdGhpcy5sYXN0QnJlYWRjcnVtYnMgPSBicmVhZGNydW1icztcclxuICAgIHJldHVybiBicmVhZGNydW1icztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE5hdmlnYXRlcyB0byB0aGUgcHJldmlvdXMgYnJlYWRjcnVtYiAocGFyZW50IHJvdXRlKS5cclxuICAgKiBGYWxscyBiYWNrIHRvIGBmYWxsYmFja1VybGAgKGRlZmF1bHQ6IGAvYCkgd2hlbiBubyBwYXJlbnQgZXhpc3RzLlxyXG4gICAqL1xyXG4gIG5hdmlnYXRlQmFjayhmYWxsYmFja1VybCA9ICcvJyk6IHZvaWQge1xyXG4gICAgY29uc3QgcHJldiA9IHRoaXMubGFzdEJyZWFkY3J1bWJzLmxlbmd0aCA+IDEgPyB0aGlzLmxhc3RCcmVhZGNydW1ic1t0aGlzLmxhc3RCcmVhZGNydW1icy5sZW5ndGggLSAyXSA6IG51bGw7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBwcmV2Py51cmwgPz8gZmFsbGJhY2tVcmw7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRhcmdldCk7XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIENvbGxlY3RzIGFsbCByb3V0ZSBwYXJhbXMgZnJvbSB0aGUgZnVsbCBwYXRoIChpbmNsdWRpbmcgcGFyZW50cykuICovXHJcbiAgcHJpdmF0ZSBjb2xsZWN0UGFyYW1zRnJvbVBhdGgocm91dGU6IEFjdGl2YXRlZFJvdXRlKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XHJcbiAgICBjb25zdCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcclxuICAgIGZvciAoY29uc3QgciBvZiByb3V0ZS5wYXRoRnJvbVJvb3QpIHtcclxuICAgICAgT2JqZWN0LmFzc2lnbihwYXJhbXMsIHIuc25hcHNob3QucGFyYW1zKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwYXJhbXM7XHJcbiAgfVxyXG5cclxuICAvLyDilIDilIDilIAgUHJpdmF0ZSBoZWxwZXJzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICAvKiogQGludGVybmFsIFJlYnVpbGRzIHRoZSBtYXAgb25seSB3aGVuIG5ldyBsYXp5IHJvdXRlcyBhcHBlYXIuICovXHJcbiAgcHJpdmF0ZSByZWJ1aWxkUm91dGVNYXBJZk5lZWRlZCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGN1cnJlbnRMZW5ndGggPSB0aGlzLmNvdW50Um91dGVzKHRoaXMucm91dGVyLmNvbmZpZyk7XHJcbiAgICBpZiAoY3VycmVudExlbmd0aCAhPT0gdGhpcy5sYXN0Um91dGVDb25maWdMZW5ndGgpIHtcclxuICAgICAgdGhpcy5yZWJ1aWxkUm91dGVNYXAoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgUmVjdXJzaXZlbHkgY291bnRzIHJvdXRlcyBpbmNsdWRpbmcgbGF6eS1sb2FkZWQgY2hpbGRyZW4uICovXHJcbiAgcHJpdmF0ZSBjb3VudFJvdXRlcyhyb3V0ZXM6IFJvdXRlcyk6IG51bWJlciB7XHJcbiAgICBsZXQgY291bnQgPSByb3V0ZXMubGVuZ3RoO1xyXG4gICAgZm9yIChjb25zdCByb3V0ZSBvZiByb3V0ZXMpIHtcclxuICAgICAgaWYgKHJvdXRlLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgY291bnQgKz0gdGhpcy5jb3VudFJvdXRlcyhyb3V0ZS5jaGlsZHJlbik7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKChyb3V0ZSBhcyBhbnkpLl9sb2FkZWRSb3V0ZXMpIHtcclxuICAgICAgICBjb3VudCArPSB0aGlzLmNvdW50Um91dGVzKChyb3V0ZSBhcyBhbnkpLl9sb2FkZWRSb3V0ZXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY291bnQ7XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIENsZWFycyBhbmQgcmVidWlsZHMgdGhlIGZ1bGwgcm91dGUg4oaSIGJyZWFkY3J1bWIgbWFwLiAqL1xyXG4gIHByaXZhdGUgcmVidWlsZFJvdXRlTWFwKCk6IHZvaWQge1xyXG4gICAgdGhpcy5icmVhZGNydW1iTWFwLmNsZWFyKCk7XHJcbiAgICB0aGlzLmJ1aWxkUm91dGVNYXAodGhpcy5yb3V0ZXIuY29uZmlnKTtcclxuICAgIHRoaXMubGFzdFJvdXRlQ29uZmlnTGVuZ3RoID0gdGhpcy5jb3VudFJvdXRlcyh0aGlzLnJvdXRlci5jb25maWcpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBSZWN1cnNpdmVseSB3YWxrcyByb3V0ZSB0cmVlIHRvIGJ1aWxkIHRoZSBicmVhZGNydW1iIG1hcC4gKi9cclxuICBwcml2YXRlIGJ1aWxkUm91dGVNYXAocm91dGVzOiBSb3V0ZXMsIHBhcmVudFBhdGggPSAnJyk6IHZvaWQge1xyXG4gICAgZm9yIChjb25zdCByb3V0ZSBvZiByb3V0ZXMpIHtcclxuICAgICAgY29uc3QgY3VycmVudFBhdGggPSBwYXJlbnRQYXRoICsgJy8nICsgKHJvdXRlLnBhdGggfHwgJycpO1xyXG5cclxuICAgICAgaWYgKHJvdXRlLmRhdGE/LlsnaWQnXSkge1xyXG4gICAgICAgIGNvbnN0IGZ1bGxQYXRoID0gdGhpcy5ub3JtYWxpemVQYXRoKGN1cnJlbnRQYXRoKTtcclxuICAgICAgICB0aGlzLmJyZWFkY3J1bWJNYXAuc2V0KHJvdXRlLmRhdGFbJ2lkJ10sIHtcclxuICAgICAgICAgIGlkOiByb3V0ZS5kYXRhWydpZCddLFxyXG4gICAgICAgICAgcGF0aDogZnVsbFBhdGgsXHJcbiAgICAgICAgICBsYWJlbDogcm91dGUuZGF0YVsndGl0bGUnXSB8fCByb3V0ZS5wYXRoIHx8IHJvdXRlLmRhdGFbJ2lkJ10sXHJcbiAgICAgICAgICBwYXJlbnRJZHM6IHJvdXRlLmRhdGFbJ2JyZWFkY3J1bWJzJ10gfHwgW10sXHJcbiAgICAgICAgICBtZXRhZGF0YTogcm91dGUuZGF0YSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHJvdXRlLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgdGhpcy5idWlsZFJvdXRlTWFwKHJvdXRlLmNoaWxkcmVuLCBjdXJyZW50UGF0aCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKChyb3V0ZSBhcyBhbnkpLl9sb2FkZWRSb3V0ZXMpIHtcclxuICAgICAgICB0aGlzLmJ1aWxkUm91dGVNYXAoKHJvdXRlIGFzIGFueSkuX2xvYWRlZFJvdXRlcywgY3VycmVudFBhdGgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIEJ1aWxkcyB0aGUgZnVsbCBicmVhZGNydW1iIGNoYWluIGZvciBhIHJvdXRlIGJ5IGl0cyBJRC4gKi9cclxuICBwcml2YXRlIGJ1aWxkQnJlYWRjcnVtYkNoYWluKHJvdXRlSWQ6IHN0cmluZywgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogVWlCcmVhZGNydW1iSXRlbVtdIHtcclxuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuYnJlYWRjcnVtYk1hcC5nZXQocm91dGVJZCk7XHJcbiAgICBpZiAoIWNvbmZpZykgcmV0dXJuIFtdO1xyXG5cclxuICAgIHRoaXMuc2F2ZUZ1bGxQYXRoKHJvdXRlSWQsIHRoaXMucm91dGVyLnVybCk7XHJcblxyXG4gICAgY29uc3QgcGFyZW50Q2hhaW4gPSB0aGlzLmdldFBhcmVudENoYWluKGNvbmZpZy5wYXJlbnRJZHMsIHBhcmFtcyk7XHJcbiAgICBjb25zdCBicmVhZGNydW1iczogVWlCcmVhZGNydW1iSXRlbVtdID0gWy4uLnBhcmVudENoYWluXTtcclxuXHJcbiAgICBicmVhZGNydW1icy5wdXNoKHtcclxuICAgICAgbGFiZWw6IHRoaXMucmVzb2x2ZUxhYmVsKGNvbmZpZy5sYWJlbCwgcGFyYW1zKSxcclxuICAgICAgdXJsOiB0aGlzLnN0cmlwUXVlcnlQYXJhbXModGhpcy5yb3V0ZXIudXJsKSxcclxuICAgICAgaXNMYXN0OiB0cnVlLFxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGJyZWFkY3J1bWJzO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBSZXNvbHZlcyBwYXJlbnQgYnJlYWRjcnVtYnMgZnJvbSBvcmRlcmVkIHBhcmVudCBJRHMuICovXHJcbiAgcHJpdmF0ZSBnZXRQYXJlbnRDaGFpbihwYXJlbnRJZHM6IHN0cmluZ1tdLCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBVaUJyZWFkY3J1bWJJdGVtW10ge1xyXG4gICAgaWYgKCFwYXJlbnRJZHM/Lmxlbmd0aCkgcmV0dXJuIFtdO1xyXG5cclxuICAgIHJldHVybiBwYXJlbnRJZHNcclxuICAgICAgLm1hcCgoaWQpID0+IHtcclxuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmJyZWFkY3J1bWJNYXAuZ2V0KGlkKTtcclxuICAgICAgICBpZiAoIWNvbmZpZykgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBsYWJlbDogdGhpcy5yZXNvbHZlTGFiZWwoY29uZmlnLmxhYmVsLCBwYXJhbXMpLFxyXG4gICAgICAgICAgdXJsOiB0aGlzLnJlc29sdmVVcmwoY29uZmlnLnBhdGgsIHBhcmFtcyksXHJcbiAgICAgICAgICBpc0xhc3Q6IGZhbHNlLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pXHJcbiAgICAgIC5maWx0ZXIoQm9vbGVhbikgYXMgVWlCcmVhZGNydW1iSXRlbVtdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGludGVybmFsIFJlc29sdmVzIGA6cGFyYW1gIHBsYWNlaG9sZGVycyBpbiBhIGxhYmVsIHVzaW5nXHJcbiAgICogdGhlIGluamVjdGVkIGxhYmVsIHJlc29sdmVyIGZ1bmN0aW9uLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVzb2x2ZUxhYmVsKGxhYmVsOiBzdHJpbmcsIHBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IHN0cmluZyB7XHJcbiAgICBpZiAoIWxhYmVsLmluY2x1ZGVzKCc6JykpIHJldHVybiBsYWJlbDtcclxuXHJcbiAgICBsZXQgcmVzb2x2ZWQgPSBsYWJlbDtcclxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHBhcmFtcykpIHtcclxuICAgICAgY29uc3QgcmVhZGFibGVWYWx1ZSA9IHRoaXMubGFiZWxSZXNvbHZlcihrZXksIHZhbHVlKTtcclxuICAgICAgcmVzb2x2ZWQgPSByZXNvbHZlZC5yZXBsYWNlKGA6JHtrZXl9YCwgcmVhZGFibGVWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzb2x2ZWQ7XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIFJlc29sdmVzIGA6cGFyYW1gIHBsYWNlaG9sZGVycyBpbiBhIHBhdGggYW5kIGNyZWF0ZXMgYSBVUkwuICovXHJcbiAgcHJpdmF0ZSByZXNvbHZlVXJsKHBhdGg6IHN0cmluZywgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogc3RyaW5nIHtcclxuICAgIGxldCBwcm9jZXNzZWRQYXRoID0gcGF0aDtcclxuXHJcbiAgICBpZiAocGF0aC5pbmNsdWRlcygnOicpKSB7XHJcbiAgICAgIGNvbnN0IHNlZ21lbnRzID0gcGF0aC5zcGxpdCgnLycpO1xyXG4gICAgICBjb25zdCBwcm9jZXNzZWRTZWdtZW50cyA9IHNlZ21lbnRzLm1hcCgoc2VnbWVudCkgPT4ge1xyXG4gICAgICAgIGlmIChzZWdtZW50LnN0YXJ0c1dpdGgoJzonKSkge1xyXG4gICAgICAgICAgY29uc3QgcGFyYW1OYW1lID0gc2VnbWVudC5zdWJzdHJpbmcoMSk7XHJcbiAgICAgICAgICByZXR1cm4gcGFyYW1zW3BhcmFtTmFtZV0gfHwgc2VnbWVudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHNlZ21lbnQ7XHJcbiAgICAgIH0pO1xyXG4gICAgICBwcm9jZXNzZWRQYXRoID0gcHJvY2Vzc2VkU2VnbWVudHMuam9pbignLycpO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFtwcm9jZXNzZWRQYXRoXSkudG9TdHJpbmcoKTtcclxuICAgIH0gY2F0Y2gge1xyXG4gICAgICByZXR1cm4gcHJvY2Vzc2VkUGF0aDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgTm9ybWFsaXplcyBwYXRoIGJ5IGNvbGxhcHNpbmcgZG91YmxlIHNsYXNoZXMgYW5kIHRyaW1taW5nIHRyYWlsaW5nIHNsYXNoLiAqL1xyXG4gIHByaXZhdGUgbm9ybWFsaXplUGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHBhdGgucmVwbGFjZSgvXFwvKy9nLCAnLycpLnJlcGxhY2UoL1xcLyQvLCAnJyk7XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIFJlbW92ZXMgcXVlcnkgcGFyYW1ldGVycyBmcm9tIGEgVVJMLiAqL1xyXG4gIHByaXZhdGUgc3RyaXBRdWVyeVBhcmFtcyh1cmw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdXJsLnNwbGl0KCc/JylbMF07XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIENhY2hlcyB0aGUgZnVsbHkgcmVzb2x2ZWQgVVJMIGZvciBhIHJvdXRlIElELiAqL1xyXG4gIHByaXZhdGUgc2F2ZUZ1bGxQYXRoKHJvdXRlSWQ6IHN0cmluZywgZnVsbFBhdGg6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5icmVhZGNydW1iTWFwLmdldChyb3V0ZUlkKTtcclxuICAgIGlmIChjb25maWcpIHtcclxuICAgICAgY29uZmlnLmZ1bGxQYXRoID0gdGhpcy5zdHJpcFF1ZXJ5UGFyYW1zKGZ1bGxQYXRoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9wYWdlLWhlYWRlci9icmVhZGNydW1iLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUVBQXFFO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBdUIsYUFBYSxFQUFFLE1BQU0sRUFBZSxNQUFNLGlCQUFpQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsNEJBQTRCLEdBRzdCLE1BQU0scUJBQXFCLENBQUM7O0FBRTdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0NHO0FBRUgsTUFBTSxPQUFPLG1CQUFtQjtJQVc5QjtRQVZpQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFFdEUsNERBQTREO1FBQ3BELGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7UUFDOUQsMEVBQTBFO1FBQ2xFLDBCQUFxQixHQUFHLENBQUMsQ0FBQztRQUNsQyw0REFBNEQ7UUFDcEQsb0JBQWUsR0FBdUIsRUFBRSxDQUFDO1FBRy9DLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07YUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLENBQUM7YUFDdkQsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLENBQUM7SUFDckQs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QUUsQ0FBQztZQUNYLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDOytHQXJOVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUROLE1BQU07OzRGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIGJpb21lLWlnbm9yZS1hbGwgbGludC9jb21wbGV4aXR5L3VzZUxpdGVyYWxLZXlzOiA8ZXhwbGFuYXRpb24+ICovXHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0eXBlIEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIsIHR5cGUgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge1xyXG4gIFVJX0JSRUFEQ1JVTUJfTEFCRUxfUkVTT0xWRVIsXHJcbiAgdHlwZSBVaUJyZWFkY3J1bWJDb25maWcsXHJcbiAgdHlwZSBVaUJyZWFkY3J1bWJJdGVtLFxyXG59IGZyb20gJy4vcGFnZS1oZWFkZXIudHlwZXMnO1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2UgdGhhdCBidWlsZHMgYSBuZXN0ZWQgYnJlYWRjcnVtYiB0cmFpbCBmcm9tIEFuZ3VsYXIgcm91dGUgY29uZmlndXJhdGlvbi5cclxuICpcclxuICogUm91dGVzIG11c3QgZGVmaW5lIGBkYXRhLmlkYCwgYGRhdGEudGl0bGVgLCBhbmQgb3B0aW9uYWxseSBgZGF0YS5icmVhZGNydW1ic2BcclxuICogKGFuIGFycmF5IG9mIHBhcmVudCByb3V0ZSBJRHMpIGZvciB0aGUgY2hhaW4gdG8gcmVzb2x2ZSBjb3JyZWN0bHkuXHJcbiAqXHJcbiAqIFN1cHBvcnRzIGxhenktbG9hZGVkIHJvdXRlczogdGhlIGludGVybmFsIHJvdXRlIG1hcCBpcyByZWJ1aWx0IGF1dG9tYXRpY2FsbHlcclxuICogd2hlbmV2ZXIgbmV3IHJvdXRlcyBhcmUgbG9hZGVkIHZpYSBgTmF2aWdhdGlvbkVuZGAuXHJcbiAqXHJcbiAqIExhYmVsIHJlc29sdXRpb24gZm9yIHJvdXRlIHBhcmFtZXRlcnMgKGA6cGFyYW1gKSBpcyBkZWxlZ2F0ZWQgdG8gYW4gaW5qZWN0YWJsZVxyXG4gKiBgVWlMYWJlbFJlc29sdmVyRm5gIHZpYSB0aGUgYFVJX0JSRUFEQ1JVTUJfTEFCRUxfUkVTT0xWRVJgIHRva2VuLlxyXG4gKlxyXG4gKiBAdXNhZ2VOb3Rlc1xyXG4gKiAjIyMgUm91dGUgY29uZmlndXJhdGlvblxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IHJvdXRlczogUm91dGVzID0gW1xyXG4gKiAgIHtcclxuICogICAgIHBhdGg6ICd1c2VycycsXHJcbiAqICAgICBkYXRhOiB7IGlkOiAndXNlcnMnLCB0aXRsZTogJ1V0ZW50aScgfSxcclxuICogICAgIGNoaWxkcmVuOiBbXHJcbiAqICAgICAgIHtcclxuICogICAgICAgICBwYXRoOiAnOnVzZXJJZCcsXHJcbiAqICAgICAgICAgZGF0YTogeyBpZDogJ3VzZXItZGV0YWlsJywgdGl0bGU6ICc6dXNlcklkJywgYnJlYWRjcnVtYnM6IFsndXNlcnMnXSB9LFxyXG4gKiAgICAgICAgIGNvbXBvbmVudDogVXNlckRldGFpbENvbXBvbmVudCxcclxuICogICAgICAgfSxcclxuICogICAgIF0sXHJcbiAqICAgfSxcclxuICogXTtcclxuICogYGBgXHJcbiAqXHJcbiAqICMjIyBDdXN0b20gbGFiZWwgcmVzb2x2ZXJcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBwcm92aWRlcnM6IFtcclxuICogICB7XHJcbiAqICAgICBwcm92aWRlOiBVSV9CUkVBRENSVU1CX0xBQkVMX1JFU09MVkVSLFxyXG4gKiAgICAgdXNlVmFsdWU6IChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpID0+XHJcbiAqICAgICAgIG5hbWUgPT09ICd1c2VySWQnID8gYFVzZXIgIyR7dmFsdWV9YCA6IHZhbHVlLFxyXG4gKiAgIH0sXHJcbiAqIF1cclxuICogYGBgXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgVWlCcmVhZGNydW1iU2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGxhYmVsUmVzb2x2ZXIgPSBpbmplY3QoVUlfQlJFQURDUlVNQl9MQUJFTF9SRVNPTFZFUik7XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgTWFwIG9mIHJvdXRlIElEIOKGkiBicmVhZGNydW1iIGNvbmZpZ3VyYXRpb24uICovXHJcbiAgcHJpdmF0ZSBicmVhZGNydW1iTWFwID0gbmV3IE1hcDxzdHJpbmcsIFVpQnJlYWRjcnVtYkNvbmZpZz4oKTtcclxuICAvKiogQGludGVybmFsIFRyYWNrcyByb3V0ZSBjb3VudCB0byBkZXRlY3QgbGF6eS1sb2FkZWQgcm91dGUgYWRkaXRpb25zLiAqL1xyXG4gIHByaXZhdGUgbGFzdFJvdXRlQ29uZmlnTGVuZ3RoID0gMDtcclxuICAvKiogQGludGVybmFsIExhc3QgY29tcHV0ZWQgYnJlYWRjcnVtYnMgZm9yIG5hdmlnYXRlQmFjay4gKi9cclxuICBwcml2YXRlIGxhc3RCcmVhZGNydW1iczogVWlCcmVhZGNydW1iSXRlbVtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5yZWJ1aWxkUm91dGVNYXAoKTtcclxuXHJcbiAgICB0aGlzLnJvdXRlci5ldmVudHNcclxuICAgICAgLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlYnVpbGRSb3V0ZU1hcElmTmVlZGVkKCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29tcHV0ZXMgdGhlIGJyZWFkY3J1bWIgdHJhaWwgZm9yIHRoZSBjdXJyZW50bHkgYWN0aXZlIHJvdXRlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHJvdXRlIC0gVGhlIHJvb3QgYEFjdGl2YXRlZFJvdXRlYCAodHlwaWNhbGx5IGluamVjdGVkIGluIHRoZSBjb21wb25lbnQpLlxyXG4gICAqIEByZXR1cm5zIE9yZGVyZWQgYXJyYXkgb2YgYnJlYWRjcnVtYiBpdGVtcyBmcm9tIHJvb3QgdG8gY3VycmVudCByb3V0ZS5cclxuICAgKi9cclxuICBnZXRCcmVhZGNydW1ic0ZvclJvdXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IFVpQnJlYWRjcnVtYkl0ZW1bXSB7XHJcbiAgICBsZXQgZGVlcGVzdFJvdXRlID0gcm91dGU7XHJcbiAgICB3aGlsZSAoZGVlcGVzdFJvdXRlLmZpcnN0Q2hpbGQpIHtcclxuICAgICAgZGVlcGVzdFJvdXRlID0gZGVlcGVzdFJvdXRlLmZpcnN0Q2hpbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHJvdXRlV2l0aElkOiBBY3RpdmF0ZWRSb3V0ZSB8IG51bGwgPSBkZWVwZXN0Um91dGU7XHJcbiAgICB3aGlsZSAocm91dGVXaXRoSWQgJiYgIXJvdXRlV2l0aElkLnNuYXBzaG90LmRhdGFbJ2lkJ10pIHtcclxuICAgICAgcm91dGVXaXRoSWQgPSByb3V0ZVdpdGhJZC5wYXJlbnQ7XHJcbiAgICB9XHJcbiAgICBjb25zdCByb3V0ZUlkID0gcm91dGVXaXRoSWQ/LnNuYXBzaG90LmRhdGFbJ2lkJ107XHJcbiAgICBpZiAoIXJvdXRlSWQpIHtcclxuICAgICAgdGhpcy5sYXN0QnJlYWRjcnVtYnMgPSBbXTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuY29sbGVjdFBhcmFtc0Zyb21QYXRoKGRlZXBlc3RSb3V0ZSk7XHJcbiAgICBjb25zdCBicmVhZGNydW1icyA9IHRoaXMuYnVpbGRCcmVhZGNydW1iQ2hhaW4ocm91dGVJZCwgcGFyYW1zKTtcclxuICAgIHRoaXMubGFzdEJyZWFkY3J1bWJzID0gYnJlYWRjcnVtYnM7XHJcbiAgICByZXR1cm4gYnJlYWRjcnVtYnM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBOYXZpZ2F0ZXMgdG8gdGhlIHByZXZpb3VzIGJyZWFkY3J1bWIgKHBhcmVudCByb3V0ZSkuXHJcbiAgICogRmFsbHMgYmFjayB0byBgZmFsbGJhY2tVcmxgIChkZWZhdWx0OiBgL2ApIHdoZW4gbm8gcGFyZW50IGV4aXN0cy5cclxuICAgKi9cclxuICBuYXZpZ2F0ZUJhY2soZmFsbGJhY2tVcmwgPSAnLycpOiB2b2lkIHtcclxuICAgIGNvbnN0IHByZXYgPSB0aGlzLmxhc3RCcmVhZGNydW1icy5sZW5ndGggPiAxID8gdGhpcy5sYXN0QnJlYWRjcnVtYnNbdGhpcy5sYXN0QnJlYWRjcnVtYnMubGVuZ3RoIC0gMl0gOiBudWxsO1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gcHJldj8udXJsID8/IGZhbGxiYWNrVXJsO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0YXJnZXQpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBDb2xsZWN0cyBhbGwgcm91dGUgcGFyYW1zIGZyb20gdGhlIGZ1bGwgcGF0aCAoaW5jbHVkaW5nIHBhcmVudHMpLiAqL1xyXG4gIHByaXZhdGUgY29sbGVjdFBhcmFtc0Zyb21QYXRoKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xyXG4gICAgY29uc3QgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XHJcbiAgICBmb3IgKGNvbnN0IHIgb2Ygcm91dGUucGF0aEZyb21Sb290KSB7XHJcbiAgICAgIE9iamVjdC5hc3NpZ24ocGFyYW1zLCByLnNuYXBzaG90LnBhcmFtcyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFyYW1zO1xyXG4gIH1cclxuXHJcbiAgLy8g4pSA4pSA4pSAIFByaXZhdGUgaGVscGVycyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBSZWJ1aWxkcyB0aGUgbWFwIG9ubHkgd2hlbiBuZXcgbGF6eSByb3V0ZXMgYXBwZWFyLiAqL1xyXG4gIHByaXZhdGUgcmVidWlsZFJvdXRlTWFwSWZOZWVkZWQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjdXJyZW50TGVuZ3RoID0gdGhpcy5jb3VudFJvdXRlcyh0aGlzLnJvdXRlci5jb25maWcpO1xyXG4gICAgaWYgKGN1cnJlbnRMZW5ndGggIT09IHRoaXMubGFzdFJvdXRlQ29uZmlnTGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMucmVidWlsZFJvdXRlTWFwKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIFJlY3Vyc2l2ZWx5IGNvdW50cyByb3V0ZXMgaW5jbHVkaW5nIGxhenktbG9hZGVkIGNoaWxkcmVuLiAqL1xyXG4gIHByaXZhdGUgY291bnRSb3V0ZXMocm91dGVzOiBSb3V0ZXMpOiBudW1iZXIge1xyXG4gICAgbGV0IGNvdW50ID0gcm91dGVzLmxlbmd0aDtcclxuICAgIGZvciAoY29uc3Qgcm91dGUgb2Ygcm91dGVzKSB7XHJcbiAgICAgIGlmIChyb3V0ZS5jaGlsZHJlbikge1xyXG4gICAgICAgIGNvdW50ICs9IHRoaXMuY291bnRSb3V0ZXMocm91dGUuY2hpbGRyZW4pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICgocm91dGUgYXMgYW55KS5fbG9hZGVkUm91dGVzKSB7XHJcbiAgICAgICAgY291bnQgKz0gdGhpcy5jb3VudFJvdXRlcygocm91dGUgYXMgYW55KS5fbG9hZGVkUm91dGVzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvdW50O1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBDbGVhcnMgYW5kIHJlYnVpbGRzIHRoZSBmdWxsIHJvdXRlIOKGkiBicmVhZGNydW1iIG1hcC4gKi9cclxuICBwcml2YXRlIHJlYnVpbGRSb3V0ZU1hcCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYnJlYWRjcnVtYk1hcC5jbGVhcigpO1xyXG4gICAgdGhpcy5idWlsZFJvdXRlTWFwKHRoaXMucm91dGVyLmNvbmZpZyk7XHJcbiAgICB0aGlzLmxhc3RSb3V0ZUNvbmZpZ0xlbmd0aCA9IHRoaXMuY291bnRSb3V0ZXModGhpcy5yb3V0ZXIuY29uZmlnKTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgUmVjdXJzaXZlbHkgd2Fsa3Mgcm91dGUgdHJlZSB0byBidWlsZCB0aGUgYnJlYWRjcnVtYiBtYXAuICovXHJcbiAgcHJpdmF0ZSBidWlsZFJvdXRlTWFwKHJvdXRlczogUm91dGVzLCBwYXJlbnRQYXRoID0gJycpOiB2b2lkIHtcclxuICAgIGZvciAoY29uc3Qgcm91dGUgb2Ygcm91dGVzKSB7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gYCR7cGFyZW50UGF0aH0vJHtyb3V0ZS5wYXRoIHx8ICcnfWA7XHJcblxyXG4gICAgICBpZiAocm91dGUuZGF0YT8uWydpZCddKSB7XHJcbiAgICAgICAgY29uc3QgZnVsbFBhdGggPSB0aGlzLm5vcm1hbGl6ZVBhdGgoY3VycmVudFBhdGgpO1xyXG4gICAgICAgIHRoaXMuYnJlYWRjcnVtYk1hcC5zZXQocm91dGUuZGF0YVsnaWQnXSwge1xyXG4gICAgICAgICAgaWQ6IHJvdXRlLmRhdGFbJ2lkJ10sXHJcbiAgICAgICAgICBwYXRoOiBmdWxsUGF0aCxcclxuICAgICAgICAgIGxhYmVsOiByb3V0ZS5kYXRhWyd0aXRsZSddIHx8IHJvdXRlLnBhdGggfHwgcm91dGUuZGF0YVsnaWQnXSxcclxuICAgICAgICAgIHBhcmVudElkczogcm91dGUuZGF0YVsnYnJlYWRjcnVtYnMnXSB8fCBbXSxcclxuICAgICAgICAgIG1ldGFkYXRhOiByb3V0ZS5kYXRhLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAocm91dGUuY2hpbGRyZW4pIHtcclxuICAgICAgICB0aGlzLmJ1aWxkUm91dGVNYXAocm91dGUuY2hpbGRyZW4sIGN1cnJlbnRQYXRoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoKHJvdXRlIGFzIGFueSkuX2xvYWRlZFJvdXRlcykge1xyXG4gICAgICAgIHRoaXMuYnVpbGRSb3V0ZU1hcCgocm91dGUgYXMgYW55KS5fbG9hZGVkUm91dGVzLCBjdXJyZW50UGF0aCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgQnVpbGRzIHRoZSBmdWxsIGJyZWFkY3J1bWIgY2hhaW4gZm9yIGEgcm91dGUgYnkgaXRzIElELiAqL1xyXG4gIHByaXZhdGUgYnVpbGRCcmVhZGNydW1iQ2hhaW4ocm91dGVJZDogc3RyaW5nLCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBVaUJyZWFkY3J1bWJJdGVtW10ge1xyXG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5icmVhZGNydW1iTWFwLmdldChyb3V0ZUlkKTtcclxuICAgIGlmICghY29uZmlnKSByZXR1cm4gW107XHJcblxyXG4gICAgdGhpcy5zYXZlRnVsbFBhdGgocm91dGVJZCwgdGhpcy5yb3V0ZXIudXJsKTtcclxuXHJcbiAgICBjb25zdCBwYXJlbnRDaGFpbiA9IHRoaXMuZ2V0UGFyZW50Q2hhaW4oY29uZmlnLnBhcmVudElkcywgcGFyYW1zKTtcclxuICAgIGNvbnN0IGJyZWFkY3J1bWJzOiBVaUJyZWFkY3J1bWJJdGVtW10gPSBbLi4ucGFyZW50Q2hhaW5dO1xyXG5cclxuICAgIGJyZWFkY3J1bWJzLnB1c2goe1xyXG4gICAgICBsYWJlbDogdGhpcy5yZXNvbHZlTGFiZWwoY29uZmlnLmxhYmVsLCBwYXJhbXMpLFxyXG4gICAgICB1cmw6IHRoaXMuc3RyaXBRdWVyeVBhcmFtcyh0aGlzLnJvdXRlci51cmwpLFxyXG4gICAgICBpc0xhc3Q6IHRydWUsXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gYnJlYWRjcnVtYnM7XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIFJlc29sdmVzIHBhcmVudCBicmVhZGNydW1icyBmcm9tIG9yZGVyZWQgcGFyZW50IElEcy4gKi9cclxuICBwcml2YXRlIGdldFBhcmVudENoYWluKHBhcmVudElkczogc3RyaW5nW10sIHBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IFVpQnJlYWRjcnVtYkl0ZW1bXSB7XHJcbiAgICBpZiAoIXBhcmVudElkcz8ubGVuZ3RoKSByZXR1cm4gW107XHJcblxyXG4gICAgcmV0dXJuIHBhcmVudElkc1xyXG4gICAgICAubWFwKChpZCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuYnJlYWRjcnVtYk1hcC5nZXQoaWQpO1xyXG4gICAgICAgIGlmICghY29uZmlnKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGxhYmVsOiB0aGlzLnJlc29sdmVMYWJlbChjb25maWcubGFiZWwsIHBhcmFtcyksXHJcbiAgICAgICAgICB1cmw6IHRoaXMucmVzb2x2ZVVybChjb25maWcucGF0aCwgcGFyYW1zKSxcclxuICAgICAgICAgIGlzTGFzdDogZmFsc2UsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSlcclxuICAgICAgLmZpbHRlcihCb29sZWFuKSBhcyBVaUJyZWFkY3J1bWJJdGVtW107XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaW50ZXJuYWwgUmVzb2x2ZXMgYDpwYXJhbWAgcGxhY2Vob2xkZXJzIGluIGEgbGFiZWwgdXNpbmdcclxuICAgKiB0aGUgaW5qZWN0ZWQgbGFiZWwgcmVzb2x2ZXIgZnVuY3Rpb24uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZXNvbHZlTGFiZWwobGFiZWw6IHN0cmluZywgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogc3RyaW5nIHtcclxuICAgIGlmICghbGFiZWwuaW5jbHVkZXMoJzonKSkgcmV0dXJuIGxhYmVsO1xyXG5cclxuICAgIGxldCByZXNvbHZlZCA9IGxhYmVsO1xyXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocGFyYW1zKSkge1xyXG4gICAgICBjb25zdCByZWFkYWJsZVZhbHVlID0gdGhpcy5sYWJlbFJlc29sdmVyKGtleSwgdmFsdWUpO1xyXG4gICAgICByZXNvbHZlZCA9IHJlc29sdmVkLnJlcGxhY2UoYDoke2tleX1gLCByZWFkYWJsZVZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXNvbHZlZDtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgUmVzb2x2ZXMgYDpwYXJhbWAgcGxhY2Vob2xkZXJzIGluIGEgcGF0aCBhbmQgY3JlYXRlcyBhIFVSTC4gKi9cclxuICBwcml2YXRlIHJlc29sdmVVcmwocGF0aDogc3RyaW5nLCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBzdHJpbmcge1xyXG4gICAgbGV0IHByb2Nlc3NlZFBhdGggPSBwYXRoO1xyXG5cclxuICAgIGlmIChwYXRoLmluY2x1ZGVzKCc6JykpIHtcclxuICAgICAgY29uc3Qgc2VnbWVudHMgPSBwYXRoLnNwbGl0KCcvJyk7XHJcbiAgICAgIGNvbnN0IHByb2Nlc3NlZFNlZ21lbnRzID0gc2VnbWVudHMubWFwKChzZWdtZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKHNlZ21lbnQuc3RhcnRzV2l0aCgnOicpKSB7XHJcbiAgICAgICAgICBjb25zdCBwYXJhbU5hbWUgPSBzZWdtZW50LnN1YnN0cmluZygxKTtcclxuICAgICAgICAgIHJldHVybiBwYXJhbXNbcGFyYW1OYW1lXSB8fCBzZWdtZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc2VnbWVudDtcclxuICAgICAgfSk7XHJcbiAgICAgIHByb2Nlc3NlZFBhdGggPSBwcm9jZXNzZWRTZWdtZW50cy5qb2luKCcvJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgcmV0dXJuIHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoW3Byb2Nlc3NlZFBhdGhdKS50b1N0cmluZygpO1xyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgIHJldHVybiBwcm9jZXNzZWRQYXRoO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBOb3JtYWxpemVzIHBhdGggYnkgY29sbGFwc2luZyBkb3VibGUgc2xhc2hlcyBhbmQgdHJpbW1pbmcgdHJhaWxpbmcgc2xhc2guICovXHJcbiAgcHJpdmF0ZSBub3JtYWxpemVQYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXC8rL2csICcvJykucmVwbGFjZSgvXFwvJC8sICcnKTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgUmVtb3ZlcyBxdWVyeSBwYXJhbWV0ZXJzIGZyb20gYSBVUkwuICovXHJcbiAgcHJpdmF0ZSBzdHJpcFF1ZXJ5UGFyYW1zKHVybDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB1cmwuc3BsaXQoJz8nKVswXTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgQ2FjaGVzIHRoZSBmdWxseSByZXNvbHZlZCBVUkwgZm9yIGEgcm91dGUgSUQuICovXHJcbiAgcHJpdmF0ZSBzYXZlRnVsbFBhdGgocm91dGVJZDogc3RyaW5nLCBmdWxsUGF0aDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmJyZWFkY3J1bWJNYXAuZ2V0KHJvdXRlSWQpO1xyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICBjb25maWcuZnVsbFBhdGggPSB0aGlzLnN0cmlwUXVlcnlQYXJhbXMoZnVsbFBhdGgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -182,7 +182,14 @@ export class UiPaginatedTableComponent {
182
182
  (keydown.space)="onHeaderClick(col); $event.preventDefault()"
183
183
  >
184
184
  <div class="ui-table__header-content">
185
- <span class="ui-table__header-text">{{ col.header }}</span>
185
+ @if (col.headerTemplate) {
186
+ <ng-container
187
+ [ngTemplateOutlet]="col.headerTemplate"
188
+ [ngTemplateOutletContext]="{ $implicit: col, column: col }"
189
+ />
190
+ } @else {
191
+ <span class="ui-table__header-text">{{ col.header }}</span>
192
+ }
186
193
  @if (col.sortable) {
187
194
  <span class="ui-table__sort-icon" aria-hidden="true">
188
195
  @if (isColumnSorted(col)) {
@@ -291,7 +298,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
291
298
  (keydown.space)="onHeaderClick(col); $event.preventDefault()"
292
299
  >
293
300
  <div class="ui-table__header-content">
294
- <span class="ui-table__header-text">{{ col.header }}</span>
301
+ @if (col.headerTemplate) {
302
+ <ng-container
303
+ [ngTemplateOutlet]="col.headerTemplate"
304
+ [ngTemplateOutletContext]="{ $implicit: col, column: col }"
305
+ />
306
+ } @else {
307
+ <span class="ui-table__header-text">{{ col.header }}</span>
308
+ }
295
309
  @if (col.sortable) {
296
310
  <span class="ui-table__sort-icon" aria-hidden="true">
297
311
  @if (isColumnSorted(col)) {
@@ -404,4 +418,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
404
418
  }], rowClick: [{
405
419
  type: Output
406
420
  }] } });
407
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGVkLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXVpLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvcGFnaW5hdGVkLXRhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLHVCQUF1QixFQUN2QixpQkFBaUIsR0FFbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFhLE1BQU0sNkJBQTZCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7OztBQUU5Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQW9ISCxNQUFNLE9BQU8seUJBQXlCO0lBbkh0QztRQW9IRSxzREFBc0Q7UUFDN0MsWUFBTyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUxQyxnRUFBZ0U7UUFFaEUsNERBQTREO1FBQ25ELFNBQUksR0FBMEIsRUFBRSxDQUFDO1FBRTFDLCtDQUErQztRQUN0QyxZQUFPLEdBQW9CLEVBQUUsQ0FBQztRQUV2QyxrRUFBa0U7UUFDekQsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUV4QixnRUFBZ0U7UUFFaEUsa0NBQWtDO1FBQ3pCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFFdkIsK0RBQStEO1FBQ3RELG9CQUFlLEdBQWEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVyRCw4Q0FBOEM7UUFDckMsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUV2Qiw2Q0FBNkM7UUFDcEMsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFFOUIsZ0VBQWdFO1FBRWhFLHdEQUF3RDtRQUMvQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXpCLHNEQUFzRDtRQUM3QyxpQkFBWSxHQUFHLDBCQUEwQixDQUFDO1FBRW5ELGtEQUFrRDtRQUN6QyxrQkFBYSxHQUFnQyxJQUFJLENBQUM7UUFFM0QsZ0VBQWdFO1FBRWhFLDhEQUE4RDtRQUNwRCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFFNUQsaURBQWlEO1FBQ3ZDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUU1RCxpREFBaUQ7UUFDdkMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBRTdELGdFQUFnRTtRQUVoRSw4Q0FBOEM7UUFDOUMsc0JBQWlCLEdBQWtCLElBQUksQ0FBQztRQUV4QyxnREFBZ0Q7UUFDaEQseUJBQW9CLEdBQTBCLElBQUksQ0FBQztLQXdHcEQ7SUF0R0MsZ0VBQWdFO0lBRWhFLGlFQUFpRTtJQUNqRSxhQUFhLENBQUMsR0FBa0I7UUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUUxQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUM5RSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztZQUNoQyxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUN0QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNuQixNQUFNLEVBQUUsR0FBRyxDQUFDLFFBQVE7WUFDcEIsU0FBUyxFQUFFLElBQUksQ0FBQyxvQkFBb0I7WUFDcEMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRLElBQUksTUFBTTtTQUNqQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsNkRBQTZEO0lBQzdELGNBQWMsQ0FBQyxHQUFrQjtRQUMvQixPQUFPLEdBQUcsQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsS0FBSyxJQUFJLENBQUM7SUFDaEgsQ0FBQztJQUVELHVEQUF1RDtJQUN2RCxXQUFXLENBQUMsR0FBa0I7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTyxNQUFNLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsb0JBQW9CLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUMxRSxDQUFDO0lBRUQsZ0VBQWdFO0lBRWhFLDREQUE0RDtJQUM1RCxZQUFZLENBQUMsS0FBZ0I7UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNuQixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDMUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0VBQWdFO0lBRWhFLCtDQUErQztJQUMvQyxVQUFVLENBQUMsR0FBd0I7UUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELDZEQUE2RDtJQUM3RCxRQUFRLENBQUMsS0FBYSxFQUFFLEdBQXdCO1FBQzlDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsZ0VBQWdFO0lBRWhFLDJEQUEyRDtJQUMzRCxjQUFjLENBQUMsS0FBYyxFQUFFLEdBQWtCO1FBQy9DLElBQUksS0FBSyxJQUFJLElBQUk7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNoQyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCw4Q0FBOEM7SUFDOUMsWUFBWSxDQUFDLEtBQWMsRUFBRSxHQUFrQjtRQUM3QyxJQUFJLEtBQUssSUFBSSxJQUFJO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDN0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1FBQ2hDLE9BQU8sR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ25FLENBQUM7SUFFRCxnRUFBZ0U7SUFFaEUsb0RBQW9EO0lBQ3BELGdCQUFnQixDQUFDLEdBQWtCO1FBQ2pDLE9BQU87WUFDTCxjQUFjO1lBQ2QsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDNUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDekM7YUFDRSxNQUFNLENBQUMsT0FBTyxDQUFDO2FBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVELDBDQUEwQztJQUMxQyxjQUFjLENBQUMsR0FBa0I7UUFDL0IsT0FBTyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsZ0VBQWdFO0lBRWhFLDZFQUE2RTtJQUNyRSxpQkFBaUIsQ0FBQyxPQUE4QjtRQUN0RCxNQUFNLEtBQUssR0FBOEIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9ELE9BQU8sS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUQsQ0FBQzsrR0FoS1UseUJBQXlCO21HQUF6Qix5QkFBeUIsc2VBNUcxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUdULG84SEE3R1MsZ0JBQWdCLG1KQUFFLGtCQUFrQixtU0FBRSxnQkFBZ0IsNFRBQUUsbUJBQW1COzs0RkFnSDFFLHlCQUF5QjtrQkFuSHJDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDLG1CQUNyRSx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLHlCQUF5QixFQUFFLFlBQ2hDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5R1Q7OEJBVVEsSUFBSTtzQkFBWixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFLSSxVQUFVO3NCQUFuQixNQUFNO2dCQUdHLFVBQVU7c0JBQW5CLE1BQU07Z0JBR0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgVGVtcGxhdGVSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3JNb2R1bGUsIFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTHVjaWRlQW5ndWxhck1vZHVsZSB9IGZyb20gJ2x1Y2lkZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgVWlUYWJsZUNvbHVtbiwgVWlUYWJsZVNvcnRFdmVudCwgVWlUYWJsZVBhZ2VFdmVudCB9IGZyb20gJy4vdGFibGUudHlwZXMnO1xyXG5pbXBvcnQgeyB1aVVuaXF1ZUlkIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XHJcblxyXG4vKipcclxuICogVGFiZWxsYSBwYWdpbmF0YSBzdGFuZGFsb25lIGNvbiBvcmRpbmFtZW50bywgY29sb25uZSBzdGlja3ksXHJcbiAqIGVsbGlwc2lzIGF1dG9tYXRpY2EsIHN0YXRvIGRpIGNhcmljYW1lbnRvIGUgdGVtcGxhdGUgcGVyc29uYWxpenphYmlsaS5cclxuICpcclxuICogUHJvZ2V0dGF0YSBwZXIgcGFnaW5hemlvbmUgc2VydmVyLXNpZGU6IGVtZXR0ZSBldmVudGkgZGkgY2FtYmlvIHBhZ2luYVxyXG4gKiBlIG9yZGluYW1lbnRvIGNoZSBpbCBjb21wb25lbnRlIGdlbml0b3JlIGdlc3Rpc2NlIHBlciBpbCByZWN1cGVybyBkYXRpLlxyXG4gKlxyXG4gKiBAc2VsZWN0b3IgdWktcGFnaW5hdGVkLXRhYmxlXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYGh0bWxcclxuICogPHVpLXBhZ2luYXRlZC10YWJsZVxyXG4gKiAgIFtkYXRhXT1cInVzZXJzXCJcclxuICogICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICogICBbdG90YWxJdGVtc109XCJ0b3RhbFVzZXJzXCJcclxuICogICBbcGFnZVNpemVdPVwiMTBcIlxyXG4gKiAgIFtsb2FkaW5nXT1cImlzTG9hZGluZ1wiXHJcbiAqICAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gKiAgIChzb3J0Q2hhbmdlKT1cIm9uU29ydCgkZXZlbnQpXCJcclxuICogICAocm93Q2xpY2spPVwib25Vc2VyQ2xpY2soJGV2ZW50KVwiXHJcbiAqIC8+XHJcbiAqIGBgYFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1aS1wYWdpbmF0ZWQtdGFibGUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIE1hdFBhZ2luYXRvck1vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZSwgTHVjaWRlQW5ndWxhck1vZHVsZV0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBob3N0OiB7IGNsYXNzOiAndWktcGFnaW5hdGVkLXRhYmxlLWhvc3QnIH0sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJ1aS10YWJsZVwiIFthdHRyLmlkXT1cInRhYmxlSWRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInVpLXRhYmxlX19jb250YWluZXJcIj5cclxuICAgICAgICBAaWYgKGRhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgPHRhYmxlIGNsYXNzPVwidWktdGFibGVfX3RhYmxlXCIgcm9sZT1cImdyaWRcIiBbYXR0ci5hcmlhLWJ1c3ldPVwibG9hZGluZ1wiPlxyXG4gICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgQGZvciAoY29sIG9mIGNvbHVtbnM7IHRyYWNrIGNvbC5wcm9wZXJ0eSkge1xyXG4gICAgICAgICAgICAgICAgICA8dGhcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0SGVhZGVyQ2xhc3Nlcyhjb2wpXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sLndpZHRoIHx8IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS50ZXh0LWFsaWduXT1cImNvbC5hbGlnbiB8fCAnbGVmdCdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtc29ydF09XCJnZXRBcmlhU29ydChjb2wpXCJcclxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5yb2xlXT1cImNvbC5zb3J0YWJsZSA/ICdjb2x1bW5oZWFkZXIgYnV0dG9uJyA6ICdjb2x1bW5oZWFkZXInXCJcclxuICAgICAgICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJjb2wuc29ydGFibGUgPyAwIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uSGVhZGVyQ2xpY2soY29sKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25IZWFkZXJDbGljayhjb2wpXCJcclxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJvbkhlYWRlckNsaWNrKGNvbCk7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aS10YWJsZV9faGVhZGVyLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidWktdGFibGVfX2hlYWRlci10ZXh0XCI+e3sgY29sLmhlYWRlciB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoY29sLnNvcnRhYmxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidWktdGFibGVfX3NvcnQtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXNDb2x1bW5Tb3J0ZWQoY29sKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjdXJyZW50U29ydERpcmVjdGlvbiA9PT0gJ2FzYycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGx1Y2lkZS1pY29uIG5hbWU9XCJjaGV2cm9uLXVwXCIgW3NpemVdPVwiMTRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsdWNpZGUtaWNvbiBuYW1lPVwiY2hldnJvbi1kb3duXCIgW3NpemVdPVwiMTRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1aS10YWJsZV9fc29ydC1oaW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsdWNpZGUtaWNvbiBuYW1lPVwiY2hldnJvbi11cFwiIFtzaXplXT1cIjEwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGx1Y2lkZS1pY29uIG5hbWU9XCJjaGV2cm9uLWRvd25cIiBbc2l6ZV09XCIxMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgIEBmb3IgKHJvdyBvZiBkYXRhOyB0cmFjayB0cmFja1JvdygkaW5kZXgsIHJvdykpIHtcclxuICAgICAgICAgICAgICAgIDx0clxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInVpLXRhYmxlX19yb3dcIlxyXG4gICAgICAgICAgICAgICAgICBbY2xhc3MudWktdGFibGVfX3Jvdy0tY2xpY2thYmxlXT1cInJvd0NsaWNrLm9ic2VydmVkXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2xpY2socm93KVwiXHJcbiAgICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cInJvd0NsaWNrLm9ic2VydmVkID8gMCA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJyb3dDbGljay5vYnNlcnZlZCA/IG9uUm93Q2xpY2socm93KSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICBAZm9yIChjb2wgb2YgY29sdW1uczsgdHJhY2sgY29sLnByb3BlcnR5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0Q2VsbENsYXNzZXMoY29sKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUudGV4dC1hbGlnbl09XCJjb2wuYWxpZ24gfHwgJ2xlZnQnXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbC50ZW1wbGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sLnRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHJvdywgY29sdW1uOiBjb2wgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChjb2wuZWxsaXBzaXMgJiYgc2hvdWxkVHJ1bmNhdGUocm93W2NvbC5wcm9wZXJ0eV0sIGNvbCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVpLXRhYmxlX19lbGxpcHNpc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJycgKyByb3dbY29sLnByb3BlcnR5XVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID57eyB0cnVuY2F0ZVRleHQocm93W2NvbC5wcm9wZXJ0eV0sIGNvbCkgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgcm93W2NvbC5wcm9wZXJ0eV0gfX1cclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgfSBAZWxzZSBpZiAoIWxvYWRpbmcpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aS10YWJsZV9fZW1wdHlcIiByb2xlPVwic3RhdHVzXCI+XHJcbiAgICAgICAgICAgIEBpZiAoZW1wdHlUZW1wbGF0ZSkge1xyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZW1wdHlUZW1wbGF0ZVwiIC8+XHJcbiAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgIDxsdWNpZGUtaWNvbiBuYW1lPVwiaW5mb1wiIFtzaXplXT1cIjI0XCIgY2xhc3M9XCJ1aS10YWJsZV9fZW1wdHktaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1aS10YWJsZV9fZW1wdHktdGV4dFwiPnt7IGVtcHR5TWVzc2FnZSB9fTwvcD5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaWYgKGxvYWRpbmcpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aS10YWJsZV9fbG9hZGluZ1wiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVpLXRhYmxlX19zcGlubmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVpLXRhYmxlX19zci1vbmx5XCI+Q2FyaWNhbWVudG8gaW4gY29yc288L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgQGlmIChzaG93UGFnaW5hdG9yICYmIHRvdGFsSXRlbXMgPiAwKSB7XHJcbiAgICAgICAgPG1hdC1wYWdpbmF0b3JcclxuICAgICAgICAgIFtsZW5ndGhdPVwidG90YWxJdGVtc1wiXHJcbiAgICAgICAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxyXG4gICAgICAgICAgW3BhZ2VTaXplT3B0aW9uc109XCJwYWdlU2l6ZU9wdGlvbnNcIlxyXG4gICAgICAgICAgW3BhZ2VJbmRleF09XCJwYWdlSW5kZXhcIlxyXG4gICAgICAgICAgKHBhZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgc2hvd0ZpcnN0TGFzdEJ1dHRvbnNcclxuICAgICAgICAvPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHN0eWxlVXJsOiAnLi9wYWdpbmF0ZWQtdGFibGUuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlQYWdpbmF0ZWRUYWJsZUNvbXBvbmVudCB7XHJcbiAgLyoqIEBpbnRlcm5hbCBJZGVudGlmaWNhdG9yZSB1bml2b2NvIHBlciBsJ2lzdGFuemEuICovXHJcbiAgcmVhZG9ubHkgdGFibGVJZCA9IHVpVW5pcXVlSWQoJ3VpLXRhYmxlJyk7XHJcblxyXG4gIC8vIOKUgOKUgCBJbnB1dHMgZGF0aSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuXHJcbiAgLyoqIEFycmF5IGRpIHJpZ2hlIGRhIHZpc3VhbGl6emFyZSBuZWxsYSBwYWdpbmEgY29ycmVudGUuICovXHJcbiAgQElucHV0KCkgZGF0YTogUmVjb3JkPHN0cmluZywgYW55PltdID0gW107XHJcblxyXG4gIC8qKiBEZWZpbml6aW9uZSBkZWxsZSBjb2xvbm5lIGRlbGxhIHRhYmVsbGEuICovXHJcbiAgQElucHV0KCkgY29sdW1uczogVWlUYWJsZUNvbHVtbltdID0gW107XHJcblxyXG4gIC8qKiBOdW1lcm8gdG90YWxlIGRpIGVsZW1lbnRpIChwZXIgbGEgcGFnaW5hemlvbmUgc2VydmVyLXNpZGUpLiAqL1xyXG4gIEBJbnB1dCgpIHRvdGFsSXRlbXMgPSAwO1xyXG5cclxuICAvLyDilIDilIAgSW5wdXRzIHBhZ2luYXppb25lIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICAvKiogTnVtZXJvIGRpIHJpZ2hlIHBlciBwYWdpbmEuICovXHJcbiAgQElucHV0KCkgcGFnZVNpemUgPSAxMDtcclxuXHJcbiAgLyoqIE9wemlvbmkgc2VsZXppb25hYmlsaSBwZXIgaWwgbnVtZXJvIGRpIHJpZ2hlIHBlciBwYWdpbmEuICovXHJcbiAgQElucHV0KCkgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFs1LCAxMCwgMjUsIDUwXTtcclxuXHJcbiAgLyoqIEluZGljZSBkZWxsYSBwYWdpbmEgY29ycmVudGUgKDAtYmFzZWQpLiAqL1xyXG4gIEBJbnB1dCgpIHBhZ2VJbmRleCA9IDA7XHJcblxyXG4gIC8qKiBNb3N0cmEgaWwgcGFnaW5hdG9yZSBzb3R0byBsYSB0YWJlbGxhLiAqL1xyXG4gIEBJbnB1dCgpIHNob3dQYWdpbmF0b3IgPSB0cnVlO1xyXG5cclxuICAvLyDilIDilIAgSW5wdXRzIHN0YXRvIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICAvKiogTW9zdHJhIGwnb3ZlcmxheSBkaSBjYXJpY2FtZW50byBzb3ByYSBsYSB0YWJlbGxhLiAqL1xyXG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgLyoqIE1lc3NhZ2dpbyB2aXN1YWxpenphdG8gcXVhbmRvIG5vbiBjaSBzb25vIGRhdGkuICovXHJcbiAgQElucHV0KCkgZW1wdHlNZXNzYWdlID0gJ05lc3N1biByaXN1bHRhdG8gdHJvdmF0byc7XHJcblxyXG4gIC8qKiBUZW1wbGF0ZSBwZXJzb25hbGl6emF0byBwZXIgbG8gc3RhdG8gdnVvdG8uICovXHJcbiAgQElucHV0KCkgZW1wdHlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLy8g4pSA4pSAIE91dHB1dHMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcblxyXG4gIC8qKiBFbWVzc28gcXVhbmRvIGwndXRlbnRlIGNhbWJpYSBwYWdpbmEgbyBudW1lcm8gZGkgcmlnaGUuICovXHJcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFVpVGFibGVQYWdlRXZlbnQ+KCk7XHJcblxyXG4gIC8qKiBFbWVzc28gcXVhbmRvIGwndXRlbnRlIG9yZGluYSB1bmEgY29sb25uYS4gKi9cclxuICBAT3V0cHV0KCkgc29ydENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VWlUYWJsZVNvcnRFdmVudD4oKTtcclxuXHJcbiAgLyoqIEVtZXNzbyBxdWFuZG8gbCd1dGVudGUgY2xpY2NhIHN1IHVuYSByaWdhLiAqL1xyXG4gIEBPdXRwdXQoKSByb3dDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjb3JkPHN0cmluZywgYW55Pj4oKTtcclxuXHJcbiAgLy8g4pSA4pSAIFN0YXRvIG9yZGluYW1lbnRvIGludGVybm8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgQ29sb25uYSBhdHR1YWxtZW50ZSBvcmRpbmF0YS4gKi9cclxuICBjdXJyZW50U29ydENvbHVtbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgRGlyZXppb25lIG9yZGluYW1lbnRvIGNvcnJlbnRlLiAqL1xyXG4gIGN1cnJlbnRTb3J0RGlyZWN0aW9uOiAnYXNjJyB8ICdkZXNjJyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAvLyDilIDilIAgR2VzdGlvbmUgaGVhZGVyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICAvKiogQGludGVybmFsIEdlc3Rpc2NlIGlsIGNsaWNrIHN1IHVuJ2ludGVzdGF6aW9uZSBkaSBjb2xvbm5hLiAqL1xyXG4gIG9uSGVhZGVyQ2xpY2soY29sOiBVaVRhYmxlQ29sdW1uKTogdm9pZCB7XHJcbiAgICBpZiAoIWNvbC5zb3J0YWJsZSkgcmV0dXJuO1xyXG5cclxuICAgIGlmICh0aGlzLmN1cnJlbnRTb3J0Q29sdW1uID09PSBjb2wucHJvcGVydHkpIHtcclxuICAgICAgdGhpcy5jdXJyZW50U29ydERpcmVjdGlvbiA9IHRoaXMubmV4dFNvcnREaXJlY3Rpb24odGhpcy5jdXJyZW50U29ydERpcmVjdGlvbik7XHJcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRTb3J0RGlyZWN0aW9uID09PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50U29ydENvbHVtbiA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFNvcnRDb2x1bW4gPSBjb2wucHJvcGVydHk7XHJcbiAgICAgIHRoaXMuY3VycmVudFNvcnREaXJlY3Rpb24gPSAnYXNjJztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNvcnRDaGFuZ2UuZW1pdCh7XHJcbiAgICAgIGNvbHVtbjogY29sLnByb3BlcnR5LFxyXG4gICAgICBkaXJlY3Rpb246IHRoaXMuY3VycmVudFNvcnREaXJlY3Rpb24sXHJcbiAgICAgIHNvcnRUeXBlOiBjb2wuc29ydFR5cGUgfHwgJ3RleHQnLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIEluZGljYSBzZSBsYSBjb2xvbm5hIGUgYXR0dWFsbWVudGUgb3JkaW5hdGEuICovXHJcbiAgaXNDb2x1bW5Tb3J0ZWQoY29sOiBVaVRhYmxlQ29sdW1uKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gY29sLnNvcnRhYmxlID09PSB0cnVlICYmIGNvbC5wcm9wZXJ0eSA9PT0gdGhpcy5jdXJyZW50U29ydENvbHVtbiAmJiB0aGlzLmN1cnJlbnRTb3J0RGlyZWN0aW9uICE9PSBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBBdHRyaWJ1dG8gYXJpYS1zb3J0IHBlciBhY2Nlc3NpYmlsaXRhLiAqL1xyXG4gIGdldEFyaWFTb3J0KGNvbDogVWlUYWJsZUNvbHVtbik6IHN0cmluZyB8IG51bGwge1xyXG4gICAgaWYgKCFjb2wuc29ydGFibGUpIHJldHVybiBudWxsO1xyXG4gICAgaWYgKCF0aGlzLmlzQ29sdW1uU29ydGVkKGNvbCkpIHJldHVybiAnbm9uZSc7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U29ydERpcmVjdGlvbiA9PT0gJ2FzYycgPyAnYXNjZW5kaW5nJyA6ICdkZXNjZW5kaW5nJztcclxuICB9XHJcblxyXG4gIC8vIOKUgOKUgCBHZXN0aW9uZSBwYWdpbmF6aW9uZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBHZXN0aXNjZSBpbCBjYW1iaW8gcGFnaW5hIGRhbCBNYXRQYWdpbmF0b3IuICovXHJcbiAgb25QYWdlQ2hhbmdlKGV2ZW50OiBQYWdlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMucGFnZUluZGV4ID0gZXZlbnQucGFnZUluZGV4O1xyXG4gICAgdGhpcy5wYWdlU2l6ZSA9IGV2ZW50LnBhZ2VTaXplO1xyXG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoe1xyXG4gICAgICBwYWdlSW5kZXg6IGV2ZW50LnBhZ2VJbmRleCxcclxuICAgICAgcGFnZVNpemU6IGV2ZW50LnBhZ2VTaXplLFxyXG4gICAgICBsZW5ndGg6IGV2ZW50Lmxlbmd0aCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8g4pSA4pSAIEdlc3Rpb25lIHJpZ2hlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICAvKiogQGludGVybmFsIEdlc3Rpc2NlIGlsIGNsaWNrIHN1IHVuYSByaWdhLiAqL1xyXG4gIG9uUm93Q2xpY2socm93OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogdm9pZCB7XHJcbiAgICB0aGlzLnJvd0NsaWNrLmVtaXQocm93KTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgVHJhY2sgZnVuY3Rpb24gcGVyIGlsIGxvb3AgQGZvciBzdWxsZSByaWdoZS4gKi9cclxuICB0cmFja1JvdyhpbmRleDogbnVtYmVyLCByb3c6IFJlY29yZDxzdHJpbmcsIGFueT4pOiB1bmtub3duIHtcclxuICAgIHJldHVybiByb3dbJ2lkJ10gPz8gaW5kZXg7XHJcbiAgfVxyXG5cclxuICAvLyDilIDilIAgRWxsaXBzaXMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgVmVyaWZpY2Egc2UgaWwgdGVzdG8gZGV2ZSBlc3NlcmUgdHJvbmNhdG8uICovXHJcbiAgc2hvdWxkVHJ1bmNhdGUodmFsdWU6IHVua25vd24sIGNvbDogVWlUYWJsZUNvbHVtbik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiBTdHJpbmcodmFsdWUpLmxlbmd0aCA+IChjb2wubWF4TGVuZ3RoID8/IDUwKTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgVHJvbmNhIGlsIHRlc3RvIGNvbiBlbGxpcHNpcy4gKi9cclxuICB0cnVuY2F0ZVRleHQodmFsdWU6IHVua25vd24sIGNvbDogVWlUYWJsZUNvbHVtbik6IHN0cmluZyB7XHJcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuICcnO1xyXG4gICAgY29uc3Qgc3RyID0gU3RyaW5nKHZhbHVlKTtcclxuICAgIGNvbnN0IG1heCA9IGNvbC5tYXhMZW5ndGggPz8gNTA7XHJcbiAgICByZXR1cm4gc3RyLmxlbmd0aCA+IG1heCA/IHN0ci5zdWJzdHJpbmcoMCwgbWF4KSArICdcXHUyMDI2JyA6IHN0cjtcclxuICB9XHJcblxyXG4gIC8vIOKUgOKUgCBDbGFzc2kgQ1NTIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICAvKiogQGludGVybmFsIENsYXNzaSBDU1MgcGVyIGwnaGVhZGVyIGRpIGNvbG9ubmEuICovXHJcbiAgZ2V0SGVhZGVyQ2xhc3Nlcyhjb2w6IFVpVGFibGVDb2x1bW4pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAgJ3VpLXRhYmxlX190aCcsXHJcbiAgICAgIGNvbC5zb3J0YWJsZSA/ICd1aS10YWJsZV9fdGgtLXNvcnRhYmxlJyA6ICcnLFxyXG4gICAgICB0aGlzLmlzQ29sdW1uU29ydGVkKGNvbCkgPyAndWktdGFibGVfX3RoLS1zb3J0ZWQnIDogJycsXHJcbiAgICAgIGNvbC5zdGlja3kgPyAndWktdGFibGVfX3RoLS1zdGlja3knIDogJycsXHJcbiAgICBdXHJcbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcclxuICAgICAgLmpvaW4oJyAnKTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgQ2xhc3NpIENTUyBwZXIgdW5hIGNlbGxhLiAqL1xyXG4gIGdldENlbGxDbGFzc2VzKGNvbDogVWlUYWJsZUNvbHVtbik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gWyd1aS10YWJsZV9fdGQnLCBjb2wuc3RpY2t5ID8gJ3VpLXRhYmxlX190ZC0tc3RpY2t5JyA6ICcnXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpO1xyXG4gIH1cclxuXHJcbiAgLy8g4pSA4pSAIFV0aWxpdGEgcHJpdmF0ZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBDYWxjb2xhIGxhIHByb3NzaW1hIGRpcmV6aW9uZSBuZWwgY2ljbG8gYXNjIC0+IGRlc2MgLT4gbnVsbC4gKi9cclxuICBwcml2YXRlIG5leHRTb3J0RGlyZWN0aW9uKGN1cnJlbnQ6ICdhc2MnIHwgJ2Rlc2MnIHwgbnVsbCk6ICdhc2MnIHwgJ2Rlc2MnIHwgbnVsbCB7XHJcbiAgICBjb25zdCBjeWNsZTogKCdhc2MnIHwgJ2Rlc2MnIHwgbnVsbClbXSA9IFsnYXNjJywgJ2Rlc2MnLCBudWxsXTtcclxuICAgIHJldHVybiBjeWNsZVsoY3ljbGUuaW5kZXhPZihjdXJyZW50KSArIDEpICUgY3ljbGUubGVuZ3RoXTtcclxuICB9XHJcbn1cclxuIl19
421
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGVkLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXVpLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvcGFnaW5hdGVkLXRhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLHVCQUF1QixFQUN2QixpQkFBaUIsR0FFbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFhLE1BQU0sNkJBQTZCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7OztBQUU5Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQTJISCxNQUFNLE9BQU8seUJBQXlCO0lBMUh0QztRQTJIRSxzREFBc0Q7UUFDN0MsWUFBTyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUxQyxnRUFBZ0U7UUFFaEUsNERBQTREO1FBQ25ELFNBQUksR0FBMEIsRUFBRSxDQUFDO1FBRTFDLCtDQUErQztRQUN0QyxZQUFPLEdBQW9CLEVBQUUsQ0FBQztRQUV2QyxrRUFBa0U7UUFDekQsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUV4QixnRUFBZ0U7UUFFaEUsa0NBQWtDO1FBQ3pCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFFdkIsK0RBQStEO1FBQ3RELG9CQUFlLEdBQWEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FB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dUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxZQUNoQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdIVDs4QkFVUSxJQUFJO3NCQUFaLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUtJLFVBQVU7c0JBQW5CLE1BQU07Z0JBR0csVUFBVTtzQkFBbkIsTUFBTTtnQkFHRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBUZW1wbGF0ZVJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvck1vZHVsZSwgUGFnZUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBMdWNpZGVBbmd1bGFyTW9kdWxlIH0gZnJvbSAnbHVjaWRlLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBVaVRhYmxlQ29sdW1uLCBVaVRhYmxlU29ydEV2ZW50LCBVaVRhYmxlUGFnZUV2ZW50IH0gZnJvbSAnLi90YWJsZS50eXBlcyc7XHJcbmltcG9ydCB7IHVpVW5pcXVlSWQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzJztcclxuXHJcbi8qKlxyXG4gKiBUYWJlbGxhIHBhZ2luYXRhIHN0YW5kYWxvbmUgY29uIG9yZGluYW1lbnRvLCBjb2xvbm5lIHN0aWNreSxcclxuICogZWxsaXBzaXMgYXV0b21hdGljYSwgc3RhdG8gZGkgY2FyaWNhbWVudG8gZSB0ZW1wbGF0ZSBwZXJzb25hbGl6emFiaWxpLlxyXG4gKlxyXG4gKiBQcm9nZXR0YXRhIHBlciBwYWdpbmF6aW9uZSBzZXJ2ZXItc2lkZTogZW1ldHRlIGV2ZW50aSBkaSBjYW1iaW8gcGFnaW5hXHJcbiAqIGUgb3JkaW5hbWVudG8gY2hlIGlsIGNvbXBvbmVudGUgZ2VuaXRvcmUgZ2VzdGlzY2UgcGVyIGlsIHJlY3VwZXJvIGRhdGkuXHJcbiAqXHJcbiAqIEBzZWxlY3RvciB1aS1wYWdpbmF0ZWQtdGFibGVcclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgaHRtbFxyXG4gKiA8dWktcGFnaW5hdGVkLXRhYmxlXHJcbiAqICAgW2RhdGFdPVwidXNlcnNcIlxyXG4gKiAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gKiAgIFt0b3RhbEl0ZW1zXT1cInRvdGFsVXNlcnNcIlxyXG4gKiAgIFtwYWdlU2l6ZV09XCIxMFwiXHJcbiAqICAgW2xvYWRpbmddPVwiaXNMb2FkaW5nXCJcclxuICogICAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbiAqICAgKHNvcnRDaGFuZ2UpPVwib25Tb3J0KCRldmVudClcIlxyXG4gKiAgIChyb3dDbGljayk9XCJvblVzZXJDbGljaygkZXZlbnQpXCJcclxuICogLz5cclxuICogYGBgXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3VpLXBhZ2luYXRlZC10YWJsZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldCwgTWF0UGFnaW5hdG9yTW9kdWxlLCBNYXRUb29sdGlwTW9kdWxlLCBMdWNpZGVBbmd1bGFyTW9kdWxlXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGhvc3Q6IHsgY2xhc3M6ICd1aS1wYWdpbmF0ZWQtdGFibGUtaG9zdCcgfSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInVpLXRhYmxlXCIgW2F0dHIuaWRdPVwidGFibGVJZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidWktdGFibGVfX2NvbnRhaW5lclwiPlxyXG4gICAgICAgIEBpZiAoZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ1aS10YWJsZV9fdGFibGVcIiByb2xlPVwiZ3JpZFwiIFthdHRyLmFyaWEtYnVzeV09XCJsb2FkaW5nXCI+XHJcbiAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICBAZm9yIChjb2wgb2YgY29sdW1uczsgdHJhY2sgY29sLnByb3BlcnR5KSB7XHJcbiAgICAgICAgICAgICAgICAgIDx0aFxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJnZXRIZWFkZXJDbGFzc2VzKGNvbClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2wud2lkdGggfHwgbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnRleHQtYWxpZ25dPVwiY29sLmFsaWduIHx8ICdsZWZ0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1zb3J0XT1cImdldEFyaWFTb3J0KGNvbClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiY29sLnNvcnRhYmxlID8gJ2NvbHVtbmhlYWRlciBidXR0b24nIDogJ2NvbHVtbmhlYWRlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cImNvbC5zb3J0YWJsZSA/IDAgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25IZWFkZXJDbGljayhjb2wpXCJcclxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkhlYWRlckNsaWNrKGNvbClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9uSGVhZGVyQ2xpY2soY29sKTsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpLXRhYmxlX19oZWFkZXItY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChjb2wuaGVhZGVyVGVtcGxhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbC5oZWFkZXJUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjb2wsIGNvbHVtbjogY29sIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidWktdGFibGVfX2hlYWRlci10ZXh0XCI+e3sgY29sLmhlYWRlciB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoY29sLnNvcnRhYmxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidWktdGFibGVfX3NvcnQtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXNDb2x1bW5Tb3J0ZWQoY29sKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjdXJyZW50U29ydERpcmVjdGlvbiA9PT0gJ2FzYycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGx1Y2lkZS1pY29uIG5hbWU9XCJjaGV2cm9uLXVwXCIgW3NpemVdPVwiMTRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsdWNpZGUtaWNvbiBuYW1lPVwiY2hldnJvbi1kb3duXCIgW3NpemVdPVwiMTRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1aS10YWJsZV9fc29ydC1oaW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsdWNpZGUtaWNvbiBuYW1lPVwiY2hldnJvbi11cFwiIFtzaXplXT1cIjEwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGx1Y2lkZS1pY29uIG5hbWU9XCJjaGV2cm9uLWRvd25cIiBbc2l6ZV09XCIxMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgIEBmb3IgKHJvdyBvZiBkYXRhOyB0cmFjayB0cmFja1JvdygkaW5kZXgsIHJvdykpIHtcclxuICAgICAgICAgICAgICAgIDx0clxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInVpLXRhYmxlX19yb3dcIlxyXG4gICAgICAgICAgICAgICAgICBbY2xhc3MudWktdGFibGVfX3Jvdy0tY2xpY2thYmxlXT1cInJvd0NsaWNrLm9ic2VydmVkXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2xpY2socm93KVwiXHJcbiAgICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cInJvd0NsaWNrLm9ic2VydmVkID8gMCA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJyb3dDbGljay5vYnNlcnZlZCA/IG9uUm93Q2xpY2socm93KSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICBAZm9yIChjb2wgb2YgY29sdW1uczsgdHJhY2sgY29sLnByb3BlcnR5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0Q2VsbENsYXNzZXMoY29sKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUudGV4dC1hbGlnbl09XCJjb2wuYWxpZ24gfHwgJ2xlZnQnXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbC50ZW1wbGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sLnRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHJvdywgY29sdW1uOiBjb2wgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChjb2wuZWxsaXBzaXMgJiYgc2hvdWxkVHJ1bmNhdGUocm93W2NvbC5wcm9wZXJ0eV0sIGNvbCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVpLXRhYmxlX19lbGxpcHNpc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJycgKyByb3dbY29sLnByb3BlcnR5XVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID57eyB0cnVuY2F0ZVRleHQocm93W2NvbC5wcm9wZXJ0eV0sIGNvbCkgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgcm93W2NvbC5wcm9wZXJ0eV0gfX1cclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgfSBAZWxzZSBpZiAoIWxvYWRpbmcpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aS10YWJsZV9fZW1wdHlcIiByb2xlPVwic3RhdHVzXCI+XHJcbiAgICAgICAgICAgIEBpZiAoZW1wdHlUZW1wbGF0ZSkge1xyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZW1wdHlUZW1wbGF0ZVwiIC8+XHJcbiAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgIDxsdWNpZGUtaWNvbiBuYW1lPVwiaW5mb1wiIFtzaXplXT1cIjI0XCIgY2xhc3M9XCJ1aS10YWJsZV9fZW1wdHktaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1aS10YWJsZV9fZW1wdHktdGV4dFwiPnt7IGVtcHR5TWVzc2FnZSB9fTwvcD5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAaWYgKGxvYWRpbmcpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aS10YWJsZV9fbG9hZGluZ1wiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVpLXRhYmxlX19zcGlubmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVpLXRhYmxlX19zci1vbmx5XCI+Q2FyaWNhbWVudG8gaW4gY29yc288L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgQGlmIChzaG93UGFnaW5hdG9yICYmIHRvdGFsSXRlbXMgPiAwKSB7XHJcbiAgICAgICAgPG1hdC1wYWdpbmF0b3JcclxuICAgICAgICAgIFtsZW5ndGhdPVwidG90YWxJdGVtc1wiXHJcbiAgICAgICAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxyXG4gICAgICAgICAgW3BhZ2VTaXplT3B0aW9uc109XCJwYWdlU2l6ZU9wdGlvbnNcIlxyXG4gICAgICAgICAgW3BhZ2VJbmRleF09XCJwYWdlSW5kZXhcIlxyXG4gICAgICAgICAgKHBhZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgc2hvd0ZpcnN0TGFzdEJ1dHRvbnNcclxuICAgICAgICAvPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHN0eWxlVXJsOiAnLi9wYWdpbmF0ZWQtdGFibGUuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlQYWdpbmF0ZWRUYWJsZUNvbXBvbmVudCB7XHJcbiAgLyoqIEBpbnRlcm5hbCBJZGVudGlmaWNhdG9yZSB1bml2b2NvIHBlciBsJ2lzdGFuemEuICovXHJcbiAgcmVhZG9ubHkgdGFibGVJZCA9IHVpVW5pcXVlSWQoJ3VpLXRhYmxlJyk7XHJcblxyXG4gIC8vIOKUgOKUgCBJbnB1dHMgZGF0aSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuXHJcbiAgLyoqIEFycmF5IGRpIHJpZ2hlIGRhIHZpc3VhbGl6emFyZSBuZWxsYSBwYWdpbmEgY29ycmVudGUuICovXHJcbiAgQElucHV0KCkgZGF0YTogUmVjb3JkPHN0cmluZywgYW55PltdID0gW107XHJcblxyXG4gIC8qKiBEZWZpbml6aW9uZSBkZWxsZSBjb2xvbm5lIGRlbGxhIHRhYmVsbGEuICovXHJcbiAgQElucHV0KCkgY29sdW1uczogVWlUYWJsZUNvbHVtbltdID0gW107XHJcblxyXG4gIC8qKiBOdW1lcm8gdG90YWxlIGRpIGVsZW1lbnRpIChwZXIgbGEgcGFnaW5hemlvbmUgc2VydmVyLXNpZGUpLiAqL1xyXG4gIEBJbnB1dCgpIHRvdGFsSXRlbXMgPSAwO1xyXG5cclxuICAvLyDilIDilIAgSW5wdXRzIHBhZ2luYXppb25lIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICAvKiogTnVtZXJvIGRpIHJpZ2hlIHBlciBwYWdpbmEuICovXHJcbiAgQElucHV0KCkgcGFnZVNpemUgPSAxMDtcclxuXHJcbiAgLyoqIE9wemlvbmkgc2VsZXppb25hYmlsaSBwZXIgaWwgbnVtZXJvIGRpIHJpZ2hlIHBlciBwYWdpbmEuICovXHJcbiAgQElucHV0KCkgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFs1LCAxMCwgMjUsIDUwXTtcclxuXHJcbiAgLyoqIEluZGljZSBkZWxsYSBwYWdpbmEgY29ycmVudGUgKDAtYmFzZWQpLiAqL1xyXG4gIEBJbnB1dCgpIHBhZ2VJbmRleCA9IDA7XHJcblxyXG4gIC8qKiBNb3N0cmEgaWwgcGFnaW5hdG9yZSBzb3R0byBsYSB0YWJlbGxhLiAqL1xyXG4gIEBJbnB1dCgpIHNob3dQYWdpbmF0b3IgPSB0cnVlO1xyXG5cclxuICAvLyDilIDilIAgSW5wdXRzIHN0YXRvIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICAvKiogTW9zdHJhIGwnb3ZlcmxheSBkaSBjYXJpY2FtZW50byBzb3ByYSBsYSB0YWJlbGxhLiAqL1xyXG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgLyoqIE1lc3NhZ2dpbyB2aXN1YWxpenphdG8gcXVhbmRvIG5vbiBjaSBzb25vIGRhdGkuICovXHJcbiAgQElucHV0KCkgZW1wdHlNZXNzYWdlID0gJ05lc3N1biByaXN1bHRhdG8gdHJvdmF0byc7XHJcblxyXG4gIC8qKiBUZW1wbGF0ZSBwZXJzb25hbGl6emF0byBwZXIgbG8gc3RhdG8gdnVvdG8uICovXHJcbiAgQElucHV0KCkgZW1wdHlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLy8g4pSA4pSAIE91dHB1dHMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcblxyXG4gIC8qKiBFbWVzc28gcXVhbmRvIGwndXRlbnRlIGNhbWJpYSBwYWdpbmEgbyBudW1lcm8gZGkgcmlnaGUuICovXHJcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFVpVGFibGVQYWdlRXZlbnQ+KCk7XHJcblxyXG4gIC8qKiBFbWVzc28gcXVhbmRvIGwndXRlbnRlIG9yZGluYSB1bmEgY29sb25uYS4gKi9cclxuICBAT3V0cHV0KCkgc29ydENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VWlUYWJsZVNvcnRFdmVudD4oKTtcclxuXHJcbiAgLyoqIEVtZXNzbyBxdWFuZG8gbCd1dGVudGUgY2xpY2NhIHN1IHVuYSByaWdhLiAqL1xyXG4gIEBPdXRwdXQoKSByb3dDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjb3JkPHN0cmluZywgYW55Pj4oKTtcclxuXHJcbiAgLy8g4pSA4pSAIFN0YXRvIG9yZGluYW1lbnRvIGludGVybm8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgQ29sb25uYSBhdHR1YWxtZW50ZSBvcmRpbmF0YS4gKi9cclxuICBjdXJyZW50U29ydENvbHVtbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgRGlyZXppb25lIG9yZGluYW1lbnRvIGNvcnJlbnRlLiAqL1xyXG4gIGN1cnJlbnRTb3J0RGlyZWN0aW9uOiAnYXNjJyB8ICdkZXNjJyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAvLyDilIDilIAgR2VzdGlvbmUgaGVhZGVyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICAvKiogQGludGVybmFsIEdlc3Rpc2NlIGlsIGNsaWNrIHN1IHVuJ2ludGVzdGF6aW9uZSBkaSBjb2xvbm5hLiAqL1xyXG4gIG9uSGVhZGVyQ2xpY2soY29sOiBVaVRhYmxlQ29sdW1uKTogdm9pZCB7XHJcbiAgICBpZiAoIWNvbC5zb3J0YWJsZSkgcmV0dXJuO1xyXG5cclxuICAgIGlmICh0aGlzLmN1cnJlbnRTb3J0Q29sdW1uID09PSBjb2wucHJvcGVydHkpIHtcclxuICAgICAgdGhpcy5jdXJyZW50U29ydERpcmVjdGlvbiA9IHRoaXMubmV4dFNvcnREaXJlY3Rpb24odGhpcy5jdXJyZW50U29ydERpcmVjdGlvbik7XHJcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRTb3J0RGlyZWN0aW9uID09PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50U29ydENvbHVtbiA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFNvcnRDb2x1bW4gPSBjb2wucHJvcGVydHk7XHJcbiAgICAgIHRoaXMuY3VycmVudFNvcnREaXJlY3Rpb24gPSAnYXNjJztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNvcnRDaGFuZ2UuZW1pdCh7XHJcbiAgICAgIGNvbHVtbjogY29sLnByb3BlcnR5LFxyXG4gICAgICBkaXJlY3Rpb246IHRoaXMuY3VycmVudFNvcnREaXJlY3Rpb24sXHJcbiAgICAgIHNvcnRUeXBlOiBjb2wuc29ydFR5cGUgfHwgJ3RleHQnLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIEluZGljYSBzZSBsYSBjb2xvbm5hIGUgYXR0dWFsbWVudGUgb3JkaW5hdGEuICovXHJcbiAgaXNDb2x1bW5Tb3J0ZWQoY29sOiBVaVRhYmxlQ29sdW1uKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gY29sLnNvcnRhYmxlID09PSB0cnVlICYmIGNvbC5wcm9wZXJ0eSA9PT0gdGhpcy5jdXJyZW50U29ydENvbHVtbiAmJiB0aGlzLmN1cnJlbnRTb3J0RGlyZWN0aW9uICE9PSBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBBdHRyaWJ1dG8gYXJpYS1zb3J0IHBlciBhY2Nlc3NpYmlsaXRhLiAqL1xyXG4gIGdldEFyaWFTb3J0KGNvbDogVWlUYWJsZUNvbHVtbik6IHN0cmluZyB8IG51bGwge1xyXG4gICAgaWYgKCFjb2wuc29ydGFibGUpIHJldHVybiBudWxsO1xyXG4gICAgaWYgKCF0aGlzLmlzQ29sdW1uU29ydGVkKGNvbCkpIHJldHVybiAnbm9uZSc7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U29ydERpcmVjdGlvbiA9PT0gJ2FzYycgPyAnYXNjZW5kaW5nJyA6ICdkZXNjZW5kaW5nJztcclxuICB9XHJcblxyXG4gIC8vIOKUgOKUgCBHZXN0aW9uZSBwYWdpbmF6aW9uZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBHZXN0aXNjZSBpbCBjYW1iaW8gcGFnaW5hIGRhbCBNYXRQYWdpbmF0b3IuICovXHJcbiAgb25QYWdlQ2hhbmdlKGV2ZW50OiBQYWdlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMucGFnZUluZGV4ID0gZXZlbnQucGFnZUluZGV4O1xyXG4gICAgdGhpcy5wYWdlU2l6ZSA9IGV2ZW50LnBhZ2VTaXplO1xyXG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoe1xyXG4gICAgICBwYWdlSW5kZXg6IGV2ZW50LnBhZ2VJbmRleCxcclxuICAgICAgcGFnZVNpemU6IGV2ZW50LnBhZ2VTaXplLFxyXG4gICAgICBsZW5ndGg6IGV2ZW50Lmxlbmd0aCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8g4pSA4pSAIEdlc3Rpb25lIHJpZ2hlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICAvKiogQGludGVybmFsIEdlc3Rpc2NlIGlsIGNsaWNrIHN1IHVuYSByaWdhLiAqL1xyXG4gIG9uUm93Q2xpY2socm93OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogdm9pZCB7XHJcbiAgICB0aGlzLnJvd0NsaWNrLmVtaXQocm93KTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgVHJhY2sgZnVuY3Rpb24gcGVyIGlsIGxvb3AgQGZvciBzdWxsZSByaWdoZS4gKi9cclxuICB0cmFja1JvdyhpbmRleDogbnVtYmVyLCByb3c6IFJlY29yZDxzdHJpbmcsIGFueT4pOiB1bmtub3duIHtcclxuICAgIHJldHVybiByb3dbJ2lkJ10gPz8gaW5kZXg7XHJcbiAgfVxyXG5cclxuICAvLyDilIDilIAgRWxsaXBzaXMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgVmVyaWZpY2Egc2UgaWwgdGVzdG8gZGV2ZSBlc3NlcmUgdHJvbmNhdG8uICovXHJcbiAgc2hvdWxkVHJ1bmNhdGUodmFsdWU6IHVua25vd24sIGNvbDogVWlUYWJsZUNvbHVtbik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiBTdHJpbmcodmFsdWUpLmxlbmd0aCA+IChjb2wubWF4TGVuZ3RoID8/IDUwKTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgVHJvbmNhIGlsIHRlc3RvIGNvbiBlbGxpcHNpcy4gKi9cclxuICB0cnVuY2F0ZVRleHQodmFsdWU6IHVua25vd24sIGNvbDogVWlUYWJsZUNvbHVtbik6IHN0cmluZyB7XHJcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuICcnO1xyXG4gICAgY29uc3Qgc3RyID0gU3RyaW5nKHZhbHVlKTtcclxuICAgIGNvbnN0IG1heCA9IGNvbC5tYXhMZW5ndGggPz8gNTA7XHJcbiAgICByZXR1cm4gc3RyLmxlbmd0aCA+IG1heCA/IHN0ci5zdWJzdHJpbmcoMCwgbWF4KSArICdcXHUyMDI2JyA6IHN0cjtcclxuICB9XHJcblxyXG4gIC8vIOKUgOKUgCBDbGFzc2kgQ1NTIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICAvKiogQGludGVybmFsIENsYXNzaSBDU1MgcGVyIGwnaGVhZGVyIGRpIGNvbG9ubmEuICovXHJcbiAgZ2V0SGVhZGVyQ2xhc3Nlcyhjb2w6IFVpVGFibGVDb2x1bW4pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAgJ3VpLXRhYmxlX190aCcsXHJcbiAgICAgIGNvbC5zb3J0YWJsZSA/ICd1aS10YWJsZV9fdGgtLXNvcnRhYmxlJyA6ICcnLFxyXG4gICAgICB0aGlzLmlzQ29sdW1uU29ydGVkKGNvbCkgPyAndWktdGFibGVfX3RoLS1zb3J0ZWQnIDogJycsXHJcbiAgICAgIGNvbC5zdGlja3kgPyAndWktdGFibGVfX3RoLS1zdGlja3knIDogJycsXHJcbiAgICBdXHJcbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcclxuICAgICAgLmpvaW4oJyAnKTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgQ2xhc3NpIENTUyBwZXIgdW5hIGNlbGxhLiAqL1xyXG4gIGdldENlbGxDbGFzc2VzKGNvbDogVWlUYWJsZUNvbHVtbik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gWyd1aS10YWJsZV9fdGQnLCBjb2wuc3RpY2t5ID8gJ3VpLXRhYmxlX190ZC0tc3RpY2t5JyA6ICcnXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpO1xyXG4gIH1cclxuXHJcbiAgLy8g4pSA4pSAIFV0aWxpdGEgcHJpdmF0ZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBDYWxjb2xhIGxhIHByb3NzaW1hIGRpcmV6aW9uZSBuZWwgY2ljbG8gYXNjIC0+IGRlc2MgLT4gbnVsbC4gKi9cclxuICBwcml2YXRlIG5leHRTb3J0RGlyZWN0aW9uKGN1cnJlbnQ6ICdhc2MnIHwgJ2Rlc2MnIHwgbnVsbCk6ICdhc2MnIHwgJ2Rlc2MnIHwgbnVsbCB7XHJcbiAgICBjb25zdCBjeWNsZTogKCdhc2MnIHwgJ2Rlc2MnIHwgbnVsbClbXSA9IFsnYXNjJywgJ2Rlc2MnLCBudWxsXTtcclxuICAgIHJldHVybiBjeWNsZVsoY3ljbGUuaW5kZXhPZihjdXJyZW50KSArIDEpICUgY3ljbGUubGVuZ3RoXTtcclxuICB9XHJcbn1cclxuIl19
@@ -3,4 +3,4 @@
3
3
  * Tipi e interfacce per UiPaginatedTable.
4
4
  */
5
5
  export {};
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy11aS1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBuZy11aS1zeXN0ZW0vdGFibGVcbiAqIFRpcGkgZSBpbnRlcmZhY2NlIHBlciBVaVBhZ2luYXRlZFRhYmxlLlxuICovXG5cbmltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogRGVmaW5pemlvbmUgZGkgdW5hIGNvbG9ubmEgZGVsbGEgdGFiZWxsYS5cbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICogIyMjIENvbG9ubmEgdGVzdHVhbGUgc2VtcGxpY2VcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGNvbDogVWlUYWJsZUNvbHVtbiA9IHtcbiAqICAgcHJvcGVydHk6ICduYW1lJyxcbiAqICAgaGVhZGVyOiAnTm9tZScsXG4gKiAgIHNvcnRhYmxlOiB0cnVlLFxuICogfTtcbiAqIGBgYFxuICpcbiAqICMjIyBDb2xvbm5hIGNvbiB0ZW1wbGF0ZSBwZXJzb25hbGl6emF0b1xuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgY29sOiBVaVRhYmxlQ29sdW1uID0ge1xuICogICBwcm9wZXJ0eTogJ3N0YXR1cycsXG4gKiAgIGhlYWRlcjogJ1N0YXRvJyxcbiAqICAgdGVtcGxhdGU6IHN0YXR1c1RlbXBsYXRlLFxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVpVGFibGVDb2x1bW4ge1xuICAvKiogQ2hpYXZlIGRlbGxhIHByb3ByaWV0YSBuZWxsJ29nZ2V0dG8gcmlnYS4gKi9cbiAgcHJvcGVydHk6IHN0cmluZztcblxuICAvKiogVGVzdG8gZGVsbCdpbnRlc3RhemlvbmUgZGVsbGEgY29sb25uYS4gKi9cbiAgaGVhZGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRlbXBsYXRlIHBlcnNvbmFsaXp6YXRvIHBlciBsYSBjZWxsYS5cbiAgICogSWwgY29udGVzdG8gZm9ybmlzY2UgYCRpbXBsaWNpdGAgKHJpZ2EpIGUgYGNvbHVtbmAgKGRlZmluaXppb25lIGNvbG9ubmEpLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBodG1sXG4gICAqIDxuZy10ZW1wbGF0ZSAjc3RhdHVzVHBsIGxldC1yb3c+XG4gICAqICAgPHNwYW4gW2NsYXNzXT1cIidiYWRnZS0tJyArIHJvdy5zdGF0dXNcIj57eyByb3cuc3RhdHVzIH19PC9zcGFuPlxuICAgKiA8L25nLXRlbXBsYXRlPlxuICAgKiBgYGBcbiAgICovXG4gIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgLyoqIFJlbmRlIGxhIGNvbG9ubmEgb3JkaW5hYmlsZSBjb24gY2xpY2sgc3VsbCdoZWFkZXIuIEBkZWZhdWx0IGZhbHNlICovXG4gIHNvcnRhYmxlPzogYm9vbGVhbjtcblxuICAvKiogVGlwbyBkaSBvcmRpbmFtZW50byBwZXIgbGEgbG9naWNhIGNsaWVudC1zaWRlLiBAZGVmYXVsdCAndGV4dCcgKi9cbiAgc29ydFR5cGU/OiAndGV4dCcgfCAnbnVtYmVyJyB8ICdkYXRlJztcblxuICAvKiogRmlzc2EgbGEgY29sb25uYSBhIGRlc3RyYSBkdXJhbnRlIGxvIHNjcm9sbCBvcml6em9udGFsZS4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgc3RpY2t5PzogYm9vbGVhbjtcblxuICAvKiogVHJvbmNhIGlsIHRlc3RvIG9sdHJlIG1heExlbmd0aCBjYXJhdHRlcmkgY29uIGVsbGlwc2lzIGUgdG9vbHRpcC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgZWxsaXBzaXM/OiBib29sZWFuO1xuXG4gIC8qKiBMdW5naGV6emEgbWFzc2ltYSBkZWwgdGVzdG8gcHJpbWEgZGVsbCdlbGxpcHNpcy4gQGRlZmF1bHQgNTAgKi9cbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuXG4gIC8qKiBMYXJnaGV6emEgQ1NTIHBlcnNvbmFsaXp6YXRhIGRlbGxhIGNvbG9ubmEgKGVzLiAnMTIwcHgnLCAnMjAlJykuICovXG4gIHdpZHRoPzogc3RyaW5nO1xuXG4gIC8qKiBBbGxpbmVhbWVudG8gZGVsIHRlc3RvIG5lbGxhIGNvbG9ubmEuIEBkZWZhdWx0ICdsZWZ0JyAqL1xuICBhbGlnbj86ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0Jztcbn1cblxuLyoqXG4gKiBFdmVudG8gZGkgb3JkaW5hbWVudG8gZW1lc3NvIHF1YW5kbyBsJ3V0ZW50ZSBjbGljY2Egc3UgdW4naW50ZXN0YXppb25lIG9yZGluYWJpbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVWlUYWJsZVNvcnRFdmVudCB7XG4gIC8qKiBQcm9wcmlldGEgZGVsbGEgY29sb25uYSBvcmRpbmF0YS4gKi9cbiAgY29sdW1uOiBzdHJpbmc7XG5cbiAgLyoqIERpcmV6aW9uZSBkZWxsJ29yZGluYW1lbnRvLiBgbnVsbGAgaW5kaWNhIG9yZGluYW1lbnRvIHJpbW9zc28uICovXG4gIGRpcmVjdGlvbjogJ2FzYycgfCAnZGVzYycgfCBudWxsO1xuXG4gIC8qKiBUaXBvIGRpIG9yZGluYW1lbnRvIGRlbGxhIGNvbG9ubmEuICovXG4gIHNvcnRUeXBlOiAndGV4dCcgfCAnbnVtYmVyJyB8ICdkYXRlJztcbn1cblxuLyoqXG4gKiBFdmVudG8gZGkgY2FtYmlvIHBhZ2luYSBlbWVzc28gZGFsIHBhZ2luYXRvcmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVWlUYWJsZVBhZ2VFdmVudCB7XG4gIC8qKiBJbmRpY2UgZGVsbGEgcGFnaW5hIGNvcnJlbnRlICgwLWJhc2VkKS4gKi9cbiAgcGFnZUluZGV4OiBudW1iZXI7XG5cbiAgLyoqIE51bWVybyBkaSByaWdoZSBwZXIgcGFnaW5hLiAqL1xuICBwYWdlU2l6ZTogbnVtYmVyO1xuXG4gIC8qKiBOdW1lcm8gdG90YWxlIGRpIGVsZW1lbnRpLiAqL1xuICBsZW5ndGg6IG51bWJlcjtcbn1cbiJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy11aS1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBuZy11aS1zeXN0ZW0vdGFibGVcbiAqIFRpcGkgZSBpbnRlcmZhY2NlIHBlciBVaVBhZ2luYXRlZFRhYmxlLlxuICovXG5cbmltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogRGVmaW5pemlvbmUgZGkgdW5hIGNvbG9ubmEgZGVsbGEgdGFiZWxsYS5cbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICogIyMjIENvbG9ubmEgdGVzdHVhbGUgc2VtcGxpY2VcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGNvbDogVWlUYWJsZUNvbHVtbiA9IHtcbiAqICAgcHJvcGVydHk6ICduYW1lJyxcbiAqICAgaGVhZGVyOiAnTm9tZScsXG4gKiAgIHNvcnRhYmxlOiB0cnVlLFxuICogfTtcbiAqIGBgYFxuICpcbiAqICMjIyBDb2xvbm5hIGNvbiB0ZW1wbGF0ZSBwZXJzb25hbGl6emF0b1xuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgY29sOiBVaVRhYmxlQ29sdW1uID0ge1xuICogICBwcm9wZXJ0eTogJ3N0YXR1cycsXG4gKiAgIGhlYWRlcjogJ1N0YXRvJyxcbiAqICAgdGVtcGxhdGU6IHN0YXR1c1RlbXBsYXRlLFxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVpVGFibGVDb2x1bW4ge1xuICAvKiogQ2hpYXZlIGRlbGxhIHByb3ByaWV0YSBuZWxsJ29nZ2V0dG8gcmlnYS4gKi9cbiAgcHJvcGVydHk6IHN0cmluZztcblxuICAvKiogVGVzdG8gZGVsbCdpbnRlc3RhemlvbmUgZGVsbGEgY29sb25uYS4gKi9cbiAgaGVhZGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRlbXBsYXRlIHBlcnNvbmFsaXp6YXRvIHBlciBsYSBjZWxsYS5cbiAgICogSWwgY29udGVzdG8gZm9ybmlzY2UgYCRpbXBsaWNpdGAgKHJpZ2EpIGUgYGNvbHVtbmAgKGRlZmluaXppb25lIGNvbG9ubmEpLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBodG1sXG4gICAqIDxuZy10ZW1wbGF0ZSAjc3RhdHVzVHBsIGxldC1yb3c+XG4gICAqICAgPHNwYW4gW2NsYXNzXT1cIidiYWRnZS0tJyArIHJvdy5zdGF0dXNcIj57eyByb3cuc3RhdHVzIH19PC9zcGFuPlxuICAgKiA8L25nLXRlbXBsYXRlPlxuICAgKiBgYGBcbiAgICovXG4gIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIFRlbXBsYXRlIHBlcnNvbmFsaXp6YXRvIHBlciBsJ2ludGVzdGF6aW9uZS5cbiAgICogSWwgY29udGVzdG8gZm9ybmlzY2U6IGAkaW1wbGljaXRgIChjb2xvbm5hKSBlIGBjb2x1bW5gIChkZWZpbml6aW9uZSBjb2xvbm5hKS5cbiAgICovXG4gIGhlYWRlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgLyoqIFJlbmRlIGxhIGNvbG9ubmEgb3JkaW5hYmlsZSBjb24gY2xpY2sgc3VsbCdoZWFkZXIuIEBkZWZhdWx0IGZhbHNlICovXG4gIHNvcnRhYmxlPzogYm9vbGVhbjtcblxuICAvKiogVGlwbyBkaSBvcmRpbmFtZW50byBwZXIgbGEgbG9naWNhIGNsaWVudC1zaWRlLiBAZGVmYXVsdCAndGV4dCcgKi9cbiAgc29ydFR5cGU/OiAndGV4dCcgfCAnbnVtYmVyJyB8ICdkYXRlJztcblxuICAvKiogRmlzc2EgbGEgY29sb25uYSBhIGRlc3RyYSBkdXJhbnRlIGxvIHNjcm9sbCBvcml6em9udGFsZS4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgc3RpY2t5PzogYm9vbGVhbjtcblxuICAvKiogVHJvbmNhIGlsIHRlc3RvIG9sdHJlIG1heExlbmd0aCBjYXJhdHRlcmkgY29uIGVsbGlwc2lzIGUgdG9vbHRpcC4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgZWxsaXBzaXM/OiBib29sZWFuO1xuXG4gIC8qKiBMdW5naGV6emEgbWFzc2ltYSBkZWwgdGVzdG8gcHJpbWEgZGVsbCdlbGxpcHNpcy4gQGRlZmF1bHQgNTAgKi9cbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuXG4gIC8qKiBMYXJnaGV6emEgQ1NTIHBlcnNvbmFsaXp6YXRhIGRlbGxhIGNvbG9ubmEgKGVzLiAnMTIwcHgnLCAnMjAlJykuICovXG4gIHdpZHRoPzogc3RyaW5nO1xuXG4gIC8qKiBBbGxpbmVhbWVudG8gZGVsIHRlc3RvIG5lbGxhIGNvbG9ubmEuIEBkZWZhdWx0ICdsZWZ0JyAqL1xuICBhbGlnbj86ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0Jztcbn1cblxuLyoqXG4gKiBFdmVudG8gZGkgb3JkaW5hbWVudG8gZW1lc3NvIHF1YW5kbyBsJ3V0ZW50ZSBjbGljY2Egc3UgdW4naW50ZXN0YXppb25lIG9yZGluYWJpbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVWlUYWJsZVNvcnRFdmVudCB7XG4gIC8qKiBQcm9wcmlldGEgZGVsbGEgY29sb25uYSBvcmRpbmF0YS4gKi9cbiAgY29sdW1uOiBzdHJpbmc7XG5cbiAgLyoqIERpcmV6aW9uZSBkZWxsJ29yZGluYW1lbnRvLiBgbnVsbGAgaW5kaWNhIG9yZGluYW1lbnRvIHJpbW9zc28uICovXG4gIGRpcmVjdGlvbjogJ2FzYycgfCAnZGVzYycgfCBudWxsO1xuXG4gIC8qKiBUaXBvIGRpIG9yZGluYW1lbnRvIGRlbGxhIGNvbG9ubmEuICovXG4gIHNvcnRUeXBlOiAndGV4dCcgfCAnbnVtYmVyJyB8ICdkYXRlJztcbn1cblxuLyoqXG4gKiBFdmVudG8gZGkgY2FtYmlvIHBhZ2luYSBlbWVzc28gZGFsIHBhZ2luYXRvcmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVWlUYWJsZVBhZ2VFdmVudCB7XG4gIC8qKiBJbmRpY2UgZGVsbGEgcGFnaW5hIGNvcnJlbnRlICgwLWJhc2VkKS4gKi9cbiAgcGFnZUluZGV4OiBudW1iZXI7XG5cbiAgLyoqIE51bWVybyBkaSByaWdoZSBwZXIgcGFnaW5hLiAqL1xuICBwYWdlU2l6ZTogbnVtYmVyO1xuXG4gIC8qKiBOdW1lcm8gdG90YWxlIGRpIGVsZW1lbnRpLiAqL1xuICBsZW5ndGg6IG51bWJlcjtcbn1cbiJdfQ==
@@ -0,0 +1,18 @@
1
+ /**
2
+ * ng-ui-system — Toast Notifications entry point.
3
+ *
4
+ * @example
5
+ * ```typescript
6
+ * import { UiToastService, UiToastConfig } from '@gnggln/ng-ui-system';
7
+ *
8
+ * const toast = inject(UiToastService);
9
+ * toast.success('Salvato!');
10
+ * ```
11
+ */
12
+ // Service
13
+ export { UiToastService } from './toast.service';
14
+ // Components (for advanced use / testing)
15
+ export { UiToastComponent } from './toast.component';
16
+ export { UiToastContainerComponent } from './toast-container.component';
17
+ export { UI_TOAST_DEFAULTS } from './toast.types';
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy11aS1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL3RvYXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFFSCxVQUFVO0FBQ1YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpELDBDQUEwQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQVN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogbmctdWktc3lzdGVtIOKAlCBUb2FzdCBOb3RpZmljYXRpb25zIGVudHJ5IHBvaW50LlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGltcG9ydCB7IFVpVG9hc3RTZXJ2aWNlLCBVaVRvYXN0Q29uZmlnIH0gZnJvbSAnQGduZ2dsbi9uZy11aS1zeXN0ZW0nO1xyXG4gKlxyXG4gKiBjb25zdCB0b2FzdCA9IGluamVjdChVaVRvYXN0U2VydmljZSk7XHJcbiAqIHRvYXN0LnN1Y2Nlc3MoJ1NhbHZhdG8hJyk7XHJcbiAqIGBgYFxyXG4gKi9cclxuXHJcbi8vIFNlcnZpY2VcclxuZXhwb3J0IHsgVWlUb2FzdFNlcnZpY2UgfSBmcm9tICcuL3RvYXN0LnNlcnZpY2UnO1xyXG5cclxuLy8gQ29tcG9uZW50cyAoZm9yIGFkdmFuY2VkIHVzZSAvIHRlc3RpbmcpXHJcbmV4cG9ydCB7IFVpVG9hc3RDb21wb25lbnQgfSBmcm9tICcuL3RvYXN0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IFVpVG9hc3RDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL3RvYXN0LWNvbnRhaW5lci5jb21wb25lbnQnO1xyXG5cclxuLy8gVHlwZXNcclxuZXhwb3J0IHR5cGUge1xyXG4gICAgVWlUb2FzdENvbmZpZyxcclxuICAgIFVpVG9hc3RSZWYsXHJcbiAgICBVaVRvYXN0RGF0YSxcclxufSBmcm9tICcuL3RvYXN0LnR5cGVzJztcclxuZXhwb3J0IHR5cGUgeyBVaVRvYXN0UG9zaXRpb24gfSBmcm9tICcuL3RvYXN0LnR5cGVzJztcclxuZXhwb3J0IHsgVUlfVE9BU1RfREVGQVVMVFMgfSBmcm9tICcuL3RvYXN0LnR5cGVzJztcclxuIl19
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Toast container — manages stacking and positioning of active toasts.
3
+ *
4
+ * Dynamically attached to the DOM by `UiToastService` on first use.
5
+ * Renders one `ui-toast` per active notification.
6
+ *
7
+ * @selector ui-toast-container
8
+ * @internal Not intended for direct use.
9
+ */
10
+ import { Component, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, inject, } from '@angular/core';
11
+ import { UiToastComponent } from './toast.component';
12
+ import * as i0 from "@angular/core";
13
+ export class UiToastContainerComponent {
14
+ constructor() {
15
+ this.cdr = inject(ChangeDetectorRef);
16
+ /** Active toasts — managed by UiToastService. */
17
+ this.toasts = [];
18
+ }
19
+ /** Called by UiToastService to add a toast. */
20
+ addToast(toast) {
21
+ this.toasts = [...this.toasts, toast];
22
+ this.cdr.markForCheck();
23
+ }
24
+ /** Called by UiToastService to remove a toast. */
25
+ removeToast(id) {
26
+ this.toasts = this.toasts.filter(t => t.id !== id);
27
+ this.cdr.markForCheck();
28
+ }
29
+ /** Update a toast's state (e.g. entering → exiting). */
30
+ updateToastState(id, state) {
31
+ const toast = this.toasts.find(t => t.id === id);
32
+ if (toast) {
33
+ toast.state = state;
34
+ this.cdr.markForCheck();
35
+ }
36
+ }
37
+ /** Dismiss handler from the toast component. */
38
+ onDismiss(toast) {
39
+ // This is handled by the service via dismiss()
40
+ if (toast.timeoutId)
41
+ clearTimeout(toast.timeoutId);
42
+ this.updateToastState(toast.id, 'exiting');
43
+ setTimeout(() => this.removeToast(toast.id), 260);
44
+ }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiToastContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: UiToastContainerComponent, isStandalone: true, selector: "ui-toast-container", host: { classAttribute: "ui-toast-container-host" }, ngImport: i0, template: `
47
+ @for (toast of toasts; track toast.id) {
48
+ <ui-toast
49
+ [message]="toast.message"
50
+ [type]="toast.type"
51
+ [state]="toast.state"
52
+ [dismissible]="toast.config.dismissible"
53
+ [enableHtml]="toast.config.enableHtml"
54
+ [icon]="toast.config.icon"
55
+ [customClass]="toast.config.customClass"
56
+ (dismissed)="onDismiss(toast)"
57
+ />
58
+ }
59
+ `, isInline: true, styles: [".ui-toast-container-host{position:fixed;z-index:10000;pointer-events:none;display:flex;flex-direction:column;gap:var(--ui-spacing-3, 12px);padding:var(--ui-spacing-6, 24px);max-height:100vh;overflow:hidden;top:0;right:0;align-items:flex-end}.ui-toast-container-host--top-right{top:0;right:0;align-items:flex-end}.ui-toast-container-host--top-left{top:0;left:0;align-items:flex-start}.ui-toast-container-host--bottom-right{top:auto;bottom:0;right:0;align-items:flex-end;flex-direction:column-reverse}.ui-toast-container-host--bottom-left{top:auto;bottom:0;left:0;align-items:flex-start;flex-direction:column-reverse}.ui-toast-container-host--top-center{top:0;left:50%;right:auto;transform:translate(-50%);align-items:center}.ui-toast-container-host--bottom-center{inset:auto auto 0 50%;transform:translate(-50%);align-items:center;flex-direction:column-reverse}\n"], dependencies: [{ kind: "component", type: UiToastComponent, selector: "ui-toast", inputs: ["message", "type", "state", "dismissible", "enableHtml", "icon", "customClass"], outputs: ["dismissed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
60
+ }
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiToastContainerComponent, decorators: [{
62
+ type: Component,
63
+ args: [{ selector: 'ui-toast-container', standalone: true, imports: [UiToastComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
64
+ 'class': 'ui-toast-container-host',
65
+ }, template: `
66
+ @for (toast of toasts; track toast.id) {
67
+ <ui-toast
68
+ [message]="toast.message"
69
+ [type]="toast.type"
70
+ [state]="toast.state"
71
+ [dismissible]="toast.config.dismissible"
72
+ [enableHtml]="toast.config.enableHtml"
73
+ [icon]="toast.config.icon"
74
+ [customClass]="toast.config.customClass"
75
+ (dismissed)="onDismiss(toast)"
76
+ />
77
+ }
78
+ `, styles: [".ui-toast-container-host{position:fixed;z-index:10000;pointer-events:none;display:flex;flex-direction:column;gap:var(--ui-spacing-3, 12px);padding:var(--ui-spacing-6, 24px);max-height:100vh;overflow:hidden;top:0;right:0;align-items:flex-end}.ui-toast-container-host--top-right{top:0;right:0;align-items:flex-end}.ui-toast-container-host--top-left{top:0;left:0;align-items:flex-start}.ui-toast-container-host--bottom-right{top:auto;bottom:0;right:0;align-items:flex-end;flex-direction:column-reverse}.ui-toast-container-host--bottom-left{top:auto;bottom:0;left:0;align-items:flex-start;flex-direction:column-reverse}.ui-toast-container-host--top-center{top:0;left:50%;right:auto;transform:translate(-50%);align-items:center}.ui-toast-container-host--bottom-center{inset:auto auto 0 50%;transform:translate(-50%);align-items:center;flex-direction:column-reverse}\n"] }]
79
+ }] });
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXVpLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvdG9hc3QvdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUNILE9BQU8sRUFDSCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQTRCckQsTUFBTSxPQUFPLHlCQUF5QjtJQXpCdEM7UUEwQmEsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXpDLGlEQUFpRDtRQUNqRCxXQUFNLEdBQWtCLEVBQUUsQ0FBQztLQThCOUI7SUE1QkcsK0NBQStDO0lBQy9DLFFBQVEsQ0FBQyxLQUFrQjtRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGtEQUFrRDtJQUNsRCxXQUFXLENBQUMsRUFBVTtRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCx3REFBd0Q7SUFDeEQsZ0JBQWdCLENBQUMsRUFBVSxFQUFFLEtBQTJCO1FBQ3BELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNqRCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQztJQUVELGdEQUFnRDtJQUNoRCxTQUFTLENBQUMsS0FBa0I7UUFDeEIsK0NBQStDO1FBQy9DLElBQUksS0FBSyxDQUFDLFNBQVM7WUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzNDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN0RCxDQUFDOytHQWpDUSx5QkFBeUI7bUdBQXpCLHlCQUF5QixtSUFoQnhCOzs7Ozs7Ozs7Ozs7O0dBYVgsdzZCQW5CVyxnQkFBZ0I7OzRGQXNCakIseUJBQXlCO2tCQXpCckMsU0FBUzsrQkFDSSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLENBQUMsbUJBQ1YsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDRixPQUFPLEVBQUUseUJBQXlCO3FCQUNyQyxZQUNTOzs7Ozs7Ozs7Ozs7O0dBYVgiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogVG9hc3QgY29udGFpbmVyIOKAlCBtYW5hZ2VzIHN0YWNraW5nIGFuZCBwb3NpdGlvbmluZyBvZiBhY3RpdmUgdG9hc3RzLlxyXG4gKlxyXG4gKiBEeW5hbWljYWxseSBhdHRhY2hlZCB0byB0aGUgRE9NIGJ5IGBVaVRvYXN0U2VydmljZWAgb24gZmlyc3QgdXNlLlxyXG4gKiBSZW5kZXJzIG9uZSBgdWktdG9hc3RgIHBlciBhY3RpdmUgbm90aWZpY2F0aW9uLlxyXG4gKlxyXG4gKiBAc2VsZWN0b3IgdWktdG9hc3QtY29udGFpbmVyXHJcbiAqIEBpbnRlcm5hbCBOb3QgaW50ZW5kZWQgZm9yIGRpcmVjdCB1c2UuXHJcbiAqL1xyXG5pbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgaW5qZWN0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVaVRvYXN0Q29tcG9uZW50IH0gZnJvbSAnLi90b2FzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgdHlwZSB7IFVpVG9hc3REYXRhIH0gZnJvbSAnLi90b2FzdC50eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndWktdG9hc3QtY29udGFpbmVyJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbVWlUb2FzdENvbXBvbmVudF0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBob3N0OiB7XHJcbiAgICAgICAgJ2NsYXNzJzogJ3VpLXRvYXN0LWNvbnRhaW5lci1ob3N0JyxcclxuICAgIH0sXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgQGZvciAodG9hc3Qgb2YgdG9hc3RzOyB0cmFjayB0b2FzdC5pZCkge1xyXG4gICAgICA8dWktdG9hc3RcclxuICAgICAgICBbbWVzc2FnZV09XCJ0b2FzdC5tZXNzYWdlXCJcclxuICAgICAgICBbdHlwZV09XCJ0b2FzdC50eXBlXCJcclxuICAgICAgICBbc3RhdGVdPVwidG9hc3Quc3RhdGVcIlxyXG4gICAgICAgIFtkaXNtaXNzaWJsZV09XCJ0b2FzdC5jb25maWcuZGlzbWlzc2libGVcIlxyXG4gICAgICAgIFtlbmFibGVIdG1sXT1cInRvYXN0LmNvbmZpZy5lbmFibGVIdG1sXCJcclxuICAgICAgICBbaWNvbl09XCJ0b2FzdC5jb25maWcuaWNvblwiXHJcbiAgICAgICAgW2N1c3RvbUNsYXNzXT1cInRvYXN0LmNvbmZpZy5jdXN0b21DbGFzc1wiXHJcbiAgICAgICAgKGRpc21pc3NlZCk9XCJvbkRpc21pc3ModG9hc3QpXCJcclxuICAgICAgLz5cclxuICAgIH1cclxuICBgLFxyXG4gICAgc3R5bGVVcmw6ICcuL3RvYXN0LWNvbnRhaW5lci5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaVRvYXN0Q29udGFpbmVyQ29tcG9uZW50IHtcclxuICAgIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcblxyXG4gICAgLyoqIEFjdGl2ZSB0b2FzdHMg4oCUIG1hbmFnZWQgYnkgVWlUb2FzdFNlcnZpY2UuICovXHJcbiAgICB0b2FzdHM6IFVpVG9hc3REYXRhW10gPSBbXTtcclxuXHJcbiAgICAvKiogQ2FsbGVkIGJ5IFVpVG9hc3RTZXJ2aWNlIHRvIGFkZCBhIHRvYXN0LiAqL1xyXG4gICAgYWRkVG9hc3QodG9hc3Q6IFVpVG9hc3REYXRhKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50b2FzdHMgPSBbLi4udGhpcy50b2FzdHMsIHRvYXN0XTtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQ2FsbGVkIGJ5IFVpVG9hc3RTZXJ2aWNlIHRvIHJlbW92ZSBhIHRvYXN0LiAqL1xyXG4gICAgcmVtb3ZlVG9hc3QoaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudG9hc3RzID0gdGhpcy50b2FzdHMuZmlsdGVyKHQgPT4gdC5pZCAhPT0gaWQpO1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBVcGRhdGUgYSB0b2FzdCdzIHN0YXRlIChlLmcuIGVudGVyaW5nIOKGkiBleGl0aW5nKS4gKi9cclxuICAgIHVwZGF0ZVRvYXN0U3RhdGUoaWQ6IHN0cmluZywgc3RhdGU6IFVpVG9hc3REYXRhWydzdGF0ZSddKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdG9hc3QgPSB0aGlzLnRvYXN0cy5maW5kKHQgPT4gdC5pZCA9PT0gaWQpO1xyXG4gICAgICAgIGlmICh0b2FzdCkge1xyXG4gICAgICAgICAgICB0b2FzdC5zdGF0ZSA9IHN0YXRlO1xyXG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIERpc21pc3MgaGFuZGxlciBmcm9tIHRoZSB0b2FzdCBjb21wb25lbnQuICovXHJcbiAgICBvbkRpc21pc3ModG9hc3Q6IFVpVG9hc3REYXRhKTogdm9pZCB7XHJcbiAgICAgICAgLy8gVGhpcyBpcyBoYW5kbGVkIGJ5IHRoZSBzZXJ2aWNlIHZpYSBkaXNtaXNzKClcclxuICAgICAgICBpZiAodG9hc3QudGltZW91dElkKSBjbGVhclRpbWVvdXQodG9hc3QudGltZW91dElkKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZVRvYXN0U3RhdGUodG9hc3QuaWQsICdleGl0aW5nJyk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlbW92ZVRvYXN0KHRvYXN0LmlkKSwgMjYwKTtcclxuICAgIH1cclxufVxyXG4iXX0=