@mediusinc/mng-commons 4.1.0 → 5.0.0-rc.0-c31d5206

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 (251) hide show
  1. package/assets/i18n/en.json +13 -66
  2. package/assets/i18n/sl.json +12 -67
  3. package/data-api/README.md +3 -0
  4. package/data-api/class-dto/README.md +3 -0
  5. package/data-api/class-dto/helpers/tableview-crud-create.d.ts +40 -0
  6. package/data-api/class-dto/index.d.ts +7 -0
  7. package/data-api/class-dto/models/query-result.model.d.ts +13 -0
  8. package/data-api/class-dto/obsolete/README.md +3 -0
  9. package/data-api/class-dto/obsolete/helpers/query-param-convert.d.ts +23 -0
  10. package/data-api/class-dto/obsolete/helpers/tableview-crud-create.d.ts +22 -0
  11. package/data-api/class-dto/obsolete/index.d.ts +14 -0
  12. package/data-api/class-dto/obsolete/models/builders/query-param.builder.d.ts +36 -0
  13. package/{lib/api → data-api/class-dto/obsolete}/models/filter-param.model.d.ts +1 -1
  14. package/{lib/api → data-api/class-dto/obsolete}/models/query-param.model.d.ts +1 -1
  15. package/{lib/api → data-api/class-dto/obsolete}/models/query-result.model.d.ts +1 -1
  16. package/data-api/class-dto/obsolete/provide.d.ts +9 -0
  17. package/data-api/class-dto/obsolete/services/api.abstract.service.d.ts +36 -0
  18. package/{lib/api → data-api/class-dto/obsolete}/services/crud-api.abstract.service.d.ts +20 -5
  19. package/data-api/class-dto/obsolete/services/get-all-api.abstract.service.d.ts +30 -0
  20. package/data-api/class-dto/obsolete/tableview/tableview-crud.data-provider.d.ts +28 -0
  21. package/data-api/class-dto/obsolete/utils/query-param-map.util.d.ts +22 -0
  22. package/{lib/api/utils/object-serializer.util.d.ts → data-api/class-dto/serder/object-serializer.d.ts} +1 -1
  23. package/{lib/api → data-api/class-dto}/services/api.abstract.service.d.ts +2 -4
  24. package/data-api/class-dto/services/crud-api.abstract.service.d.ts +25 -0
  25. package/data-api/class-dto/services/get-all-api.abstract.service.d.ts +14 -0
  26. package/data-api/class-dto/tableview/tableview-crud.data-provider.d.ts +17 -0
  27. package/data-api/helpers/get-all-params.d.ts +69 -0
  28. package/data-api/helpers/tableview-get-all-params-create.d.ts +14 -0
  29. package/data-api/index.d.ts +5 -0
  30. package/data-api/models/request-params.model.d.ts +61 -0
  31. package/data-api/rxjs/map-to-data-list.operator.d.ts +9 -0
  32. package/data-api/types/extract-get-all-params.type.d.ts +14 -0
  33. package/esm2022/data-api/class-dto/helpers/tableview-crud-create.mjs +40 -0
  34. package/esm2022/data-api/class-dto/index.mjs +13 -0
  35. package/esm2022/data-api/class-dto/mediusinc-mng-commons-data-api-class-dto.mjs +5 -0
  36. package/esm2022/data-api/class-dto/models/query-result.model.mjs +24 -0
  37. package/esm2022/data-api/class-dto/obsolete/helpers/query-param-convert.mjs +103 -0
  38. package/esm2022/data-api/class-dto/obsolete/helpers/tableview-crud-create.mjs +21 -0
  39. package/esm2022/data-api/class-dto/obsolete/index.mjs +21 -0
  40. package/esm2022/data-api/class-dto/obsolete/mediusinc-mng-commons-data-api-class-dto-obsolete.mjs +5 -0
  41. package/esm2022/data-api/class-dto/obsolete/models/builders/query-param.builder.mjs +83 -0
  42. package/esm2022/data-api/class-dto/obsolete/models/filter-match-type.model.mjs +27 -0
  43. package/esm2022/data-api/class-dto/obsolete/models/filter-param.model.mjs +33 -0
  44. package/esm2022/data-api/class-dto/obsolete/models/query-mode.model.mjs +18 -0
  45. package/esm2022/data-api/class-dto/obsolete/models/query-param.model.mjs +68 -0
  46. package/esm2022/data-api/class-dto/obsolete/models/query-result.model.mjs +24 -0
  47. package/esm2022/data-api/class-dto/obsolete/provide.mjs +40 -0
  48. package/esm2022/data-api/class-dto/obsolete/services/api.abstract.service.mjs +70 -0
  49. package/esm2022/data-api/class-dto/obsolete/services/crud-api.abstract.service.mjs +83 -0
  50. package/esm2022/data-api/class-dto/obsolete/services/get-all-api.abstract.service.mjs +38 -0
  51. package/esm2022/data-api/class-dto/obsolete/tableview/tableview-crud.data-provider.mjs +51 -0
  52. package/esm2022/data-api/class-dto/obsolete/utils/query-param-map.util.mjs +57 -0
  53. package/esm2022/data-api/class-dto/serder/object-serializer.mjs +184 -0
  54. package/esm2022/data-api/class-dto/services/api.abstract.service.mjs +55 -0
  55. package/esm2022/data-api/class-dto/services/crud-api.abstract.service.mjs +82 -0
  56. package/esm2022/data-api/class-dto/services/get-all-api.abstract.service.mjs +49 -0
  57. package/esm2022/data-api/class-dto/tableview/tableview-crud.data-provider.mjs +49 -0
  58. package/esm2022/data-api/helpers/get-all-params.mjs +180 -0
  59. package/esm2022/data-api/helpers/tableview-get-all-params-create.mjs +18 -0
  60. package/esm2022/data-api/index.mjs +10 -0
  61. package/esm2022/data-api/mediusinc-mng-commons-data-api.mjs +5 -0
  62. package/esm2022/data-api/models/request-params.model.mjs +2 -0
  63. package/esm2022/data-api/rxjs/map-to-data-list.operator.mjs +19 -0
  64. package/esm2022/data-api/types/extract-get-all-params.type.mjs +2 -0
  65. package/esm2022/index.mjs +3 -6
  66. package/esm2022/lib/components/action/action.component.mjs +4 -5
  67. package/esm2022/lib/components/action/editor/injector-context/action-editor-injector-context.component.mjs +2 -2
  68. package/esm2022/lib/components/action/models/action-execution.model.mjs +5 -4
  69. package/esm2022/lib/components/action/route/action-route.component.mjs +1 -2
  70. package/esm2022/lib/components/action/table/action-table.component.mjs +4 -6
  71. package/esm2022/lib/components/form/autocomplete/autocomplete.component.mjs +29 -17
  72. package/esm2022/lib/components/form/dropdown/dropdown.component.mjs +3 -7
  73. package/esm2022/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +20 -18
  74. package/esm2022/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +2 -2
  75. package/esm2022/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +23 -12
  76. package/esm2022/lib/components/table/column-filter-full/column-filter-full.component.mjs +162 -33
  77. package/esm2022/lib/components/table/column-value/column-value.component.mjs +3 -3
  78. package/esm2022/lib/components/table/models/table.event.mjs +1 -1
  79. package/esm2022/lib/components/table/models/table.interface.mjs +1 -1
  80. package/esm2022/lib/components/table/table-column-filter-class/table-column-filter-class.pipe.mjs +4 -4
  81. package/esm2022/lib/components/table/table.component.mjs +117 -191
  82. package/esm2022/lib/components/tableview/actions/tableview-default-actions.mjs +215 -0
  83. package/esm2022/lib/components/tableview/builders/tableview-builder.mjs +162 -0
  84. package/esm2022/lib/components/tableview/helpers/tableview-create.mjs +24 -0
  85. package/esm2022/lib/components/tableview/index.mjs +5 -2
  86. package/esm2022/lib/components/tableview/models/tableview.model.mjs +2 -0
  87. package/esm2022/lib/components/tableview/route/tableview-route.component.mjs +7 -39
  88. package/esm2022/lib/components/tableview/tableview.component.mjs +4 -4
  89. package/esm2022/lib/data-providers/editor.data-provider.mjs +13 -13
  90. package/esm2022/lib/data-providers/index.mjs +1 -2
  91. package/esm2022/lib/data-providers/lookup.data-provider.mjs +1 -1
  92. package/esm2022/lib/data-providers/table.data-provider.mjs +4 -5
  93. package/esm2022/lib/data-providers/tableview.data-provider.mjs +1 -1
  94. package/esm2022/lib/descriptors/action/action-confirmation.descriptor.mjs +1 -1
  95. package/esm2022/lib/descriptors/action/action-editor.descriptor.mjs +10 -6
  96. package/esm2022/lib/descriptors/action/action.descriptor.mjs +2 -3
  97. package/esm2022/lib/descriptors/editor/editor.descriptor.mjs +13 -17
  98. package/esm2022/lib/descriptors/editor/field-lookup.descriptor.mjs +12 -17
  99. package/esm2022/lib/descriptors/editor/field.descriptor.mjs +5 -8
  100. package/esm2022/lib/descriptors/editor/internal/editor-fields.model.mjs +1 -1
  101. package/esm2022/lib/descriptors/filter/filter-lookup.descriptor.mjs +28 -52
  102. package/esm2022/lib/descriptors/filter/filter.descriptor.mjs +40 -23
  103. package/esm2022/lib/descriptors/model/enum.descriptor.mjs +31 -0
  104. package/esm2022/lib/descriptors/model/index.mjs +3 -1
  105. package/esm2022/lib/descriptors/model/model.descriptor.mjs +10 -1
  106. package/esm2022/lib/descriptors/model/type.descriptor.mjs +11 -0
  107. package/esm2022/lib/descriptors/table/column.descriptor.mjs +12 -107
  108. package/esm2022/lib/descriptors/table/index.mjs +2 -1
  109. package/esm2022/lib/descriptors/table/internal/table-columns.model.mjs +1 -1
  110. package/esm2022/lib/descriptors/table/internal/table.model.mjs +1 -1
  111. package/esm2022/lib/descriptors/table/sort.descriptor.mjs +45 -0
  112. package/esm2022/lib/descriptors/table/table.descriptor.mjs +208 -57
  113. package/esm2022/lib/descriptors/tableview/internal/tableview.model.mjs +1 -1
  114. package/esm2022/lib/descriptors/tableview/tableview.descriptor.mjs +114 -17
  115. package/esm2022/lib/descriptors/types/filter.type.mjs +1 -19
  116. package/esm2022/lib/descriptors/types/table.type.mjs +1 -5
  117. package/esm2022/lib/error/error.handler.mjs +1 -1
  118. package/esm2022/lib/helpers/data-provider-executors.mjs +80 -0
  119. package/esm2022/lib/models/data-list.model.mjs +2 -0
  120. package/esm2022/lib/models/filter-match.model.mjs +105 -0
  121. package/esm2022/lib/models/index.mjs +3 -1
  122. package/esm2022/lib/models/view-container.model.mjs +1 -1
  123. package/esm2022/lib/pipes/enum.pipe.mjs +6 -6
  124. package/esm2022/lib/provide.mjs +101 -0
  125. package/esm2022/lib/registry/type.registry.mjs +3 -10
  126. package/esm2022/lib/router/models/router.model.mjs +1 -1
  127. package/esm2022/lib/router/tableview-route-builder.mjs +1 -1
  128. package/esm2022/lib/services/action/action-executor.service.mjs +54 -32
  129. package/esm2022/lib/services/commons.service.mjs +1 -37
  130. package/esm2022/lib/services/data-provider-executor.service.mjs +52 -0
  131. package/esm2022/lib/services/index.mjs +2 -1
  132. package/esm2022/lib/services/view/view-container.service.mjs +1 -1
  133. package/esm2022/lib/types/action-descriptor.types.mjs +1 -1
  134. package/esm2022/lib/types/type.model.mjs +1 -1
  135. package/esm2022/lib/utils/data-list-params.util.mjs +416 -0
  136. package/esm2022/lib/utils/date.util.mjs +8 -2
  137. package/esm2022/lib/utils/enum.util.mjs +2 -1
  138. package/esm2022/lib/utils/error.util.mjs +3 -3
  139. package/esm2022/lib/utils/export.util.mjs +1 -1
  140. package/esm2022/lib/utils/index.mjs +2 -2
  141. package/esm2022/lib/utils/route.util.mjs +1 -2
  142. package/fesm2022/mediusinc-mng-commons-data-api-class-dto-obsolete.mjs +698 -0
  143. package/fesm2022/mediusinc-mng-commons-data-api-class-dto-obsolete.mjs.map +1 -0
  144. package/fesm2022/mediusinc-mng-commons-data-api-class-dto.mjs +480 -0
  145. package/fesm2022/mediusinc-mng-commons-data-api-class-dto.mjs.map +1 -0
  146. package/fesm2022/mediusinc-mng-commons-data-api.mjs +224 -0
  147. package/fesm2022/mediusinc-mng-commons-data-api.mjs.map +1 -0
  148. package/fesm2022/mediusinc-mng-commons.mjs +2634 -2549
  149. package/fesm2022/mediusinc-mng-commons.mjs.map +1 -1
  150. package/index.d.ts +2 -4
  151. package/lib/components/action/action.component.d.ts +13 -13
  152. package/lib/components/action/models/action-execution.model.d.ts +47 -46
  153. package/lib/components/action/table/action-table.component.d.ts +15 -16
  154. package/lib/components/form/autocomplete/autocomplete.component.d.ts +1 -1
  155. package/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +3 -5
  156. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +10 -10
  157. package/lib/components/table/column-filter-full/column-filter-full.component.d.ts +25 -9
  158. package/lib/components/table/models/table.event.d.ts +2 -2
  159. package/lib/components/table/models/table.interface.d.ts +4 -1
  160. package/lib/components/table/table-column-filter-class/table-column-filter-class.pipe.d.ts +2 -2
  161. package/lib/components/table/table.component.d.ts +19 -18
  162. package/lib/components/tableview/actions/tableview-default-actions.d.ts +36 -0
  163. package/lib/components/tableview/builders/tableview-builder.d.ts +115 -0
  164. package/lib/components/tableview/helpers/tableview-create.d.ts +16 -0
  165. package/lib/components/tableview/index.d.ts +4 -1
  166. package/lib/components/tableview/models/tableview.model.d.ts +8 -0
  167. package/lib/components/tableview/route/tableview-route.component.d.ts +5 -14
  168. package/lib/components/tableview/tableview.component.d.ts +12 -12
  169. package/lib/data-providers/editor.data-provider.d.ts +12 -12
  170. package/lib/data-providers/index.d.ts +0 -1
  171. package/lib/data-providers/lookup.data-provider.d.ts +2 -2
  172. package/lib/data-providers/table.data-provider.d.ts +25 -25
  173. package/lib/data-providers/tableview.data-provider.d.ts +18 -18
  174. package/lib/descriptors/action/action-confirmation.descriptor.d.ts +1 -1
  175. package/lib/descriptors/action/action-editor.descriptor.d.ts +20 -17
  176. package/lib/descriptors/editor/editor.descriptor.d.ts +8 -12
  177. package/lib/descriptors/editor/field-base.descriptor.d.ts +3 -3
  178. package/lib/descriptors/editor/field-lookup.descriptor.d.ts +11 -11
  179. package/lib/descriptors/editor/field-many.descriptor.d.ts +4 -4
  180. package/lib/descriptors/editor/field.descriptor.d.ts +2 -2
  181. package/lib/descriptors/editor/internal/editor-fields.model.d.ts +6 -5
  182. package/lib/descriptors/filter/filter-lookup.descriptor.d.ts +15 -14
  183. package/lib/descriptors/filter/filter.descriptor.d.ts +17 -18
  184. package/lib/descriptors/model/enum.descriptor.d.ts +14 -0
  185. package/lib/descriptors/model/index.d.ts +2 -0
  186. package/lib/descriptors/model/model.descriptor.d.ts +9 -0
  187. package/lib/descriptors/model/type.descriptor.d.ts +5 -0
  188. package/lib/descriptors/table/column.descriptor.d.ts +10 -24
  189. package/lib/descriptors/table/index.d.ts +1 -0
  190. package/lib/descriptors/table/internal/table-columns.model.d.ts +36 -5
  191. package/lib/descriptors/table/internal/table.model.d.ts +5 -2
  192. package/lib/descriptors/table/sort.descriptor.d.ts +17 -0
  193. package/lib/descriptors/table/table.descriptor.d.ts +57 -33
  194. package/lib/descriptors/tableview/internal/tableview.model.d.ts +3 -3
  195. package/lib/descriptors/tableview/tableview.descriptor.d.ts +49 -19
  196. package/lib/descriptors/types/filter.type.d.ts +0 -17
  197. package/lib/descriptors/types/table.type.d.ts +0 -3
  198. package/lib/error/error.handler.d.ts +1 -1
  199. package/lib/helpers/data-provider-executors.d.ts +19 -0
  200. package/lib/models/data-list.model.d.ts +27 -0
  201. package/lib/models/filter-match.model.d.ts +36 -0
  202. package/lib/models/index.d.ts +2 -0
  203. package/lib/models/view-container.model.d.ts +2 -2
  204. package/lib/pipes/enum.pipe.d.ts +2 -2
  205. package/lib/provide.d.ts +10 -0
  206. package/lib/router/models/router.model.d.ts +1 -1
  207. package/lib/router/tableview-route-builder.d.ts +1 -2
  208. package/lib/services/action/action-executor.service.d.ts +18 -16
  209. package/lib/services/data-provider-executor.service.d.ts +60 -0
  210. package/lib/services/index.d.ts +1 -0
  211. package/lib/services/view/view-container.service.d.ts +11 -11
  212. package/lib/types/action-descriptor.types.d.ts +2 -2
  213. package/lib/types/type.model.d.ts +1 -3
  214. package/lib/utils/data-list-params.util.d.ts +84 -0
  215. package/lib/utils/date.util.d.ts +3 -1
  216. package/lib/utils/enum.util.d.ts +4 -3
  217. package/lib/utils/export.util.d.ts +1 -1
  218. package/lib/utils/index.d.ts +1 -1
  219. package/openapi/angular/modelEnum.mustache +0 -3
  220. package/package.json +20 -2
  221. package/esm2022/lib/api/models/builders/query-param.builder.mjs +0 -59
  222. package/esm2022/lib/api/models/filter-match-type.model.mjs +0 -27
  223. package/esm2022/lib/api/models/filter-param.model.mjs +0 -33
  224. package/esm2022/lib/api/models/index.mjs +0 -7
  225. package/esm2022/lib/api/models/query-mode.model.mjs +0 -18
  226. package/esm2022/lib/api/models/query-param.model.mjs +0 -68
  227. package/esm2022/lib/api/models/query-result.model.mjs +0 -35
  228. package/esm2022/lib/api/services/api.abstract.service.mjs +0 -58
  229. package/esm2022/lib/api/services/crud-api.abstract.service.mjs +0 -75
  230. package/esm2022/lib/api/services/get-all-api.abstract.service.mjs +0 -30
  231. package/esm2022/lib/api/services/index.mjs +0 -4
  232. package/esm2022/lib/api/utils/index.mjs +0 -3
  233. package/esm2022/lib/api/utils/medius-rest.util.mjs +0 -293
  234. package/esm2022/lib/api/utils/object-serializer.util.mjs +0 -185
  235. package/esm2022/lib/components/tableview/route/tableview-route.abstract.component.mjs +0 -158
  236. package/esm2022/lib/data-providers/tableview-crud.data-provider.mjs +0 -32
  237. package/esm2022/lib/provide-commons.mjs +0 -88
  238. package/esm2022/lib/utils/action-data-provider.util.mjs +0 -171
  239. package/lib/api/models/builders/query-param.builder.d.ts +0 -13
  240. package/lib/api/models/index.d.ts +0 -6
  241. package/lib/api/services/get-all-api.abstract.service.d.ts +0 -14
  242. package/lib/api/services/index.d.ts +0 -3
  243. package/lib/api/utils/index.d.ts +0 -2
  244. package/lib/api/utils/medius-rest.util.d.ts +0 -32
  245. package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +0 -35
  246. package/lib/data-providers/tableview-crud.data-provider.d.ts +0 -12
  247. package/lib/provide-commons.d.ts +0 -3
  248. package/lib/utils/action-data-provider.util.d.ts +0 -35
  249. package/templates/tableview-route.component.html +0 -5
  250. /package/{lib/api → data-api/class-dto/obsolete}/models/filter-match-type.model.d.ts +0 -0
  251. /package/{lib/api → data-api/class-dto/obsolete}/models/query-mode.model.d.ts +0 -0
@@ -42,6 +42,7 @@ export class EnumUtil {
42
42
  /**
43
43
  * Returns array of type EnumValue for provided values in enum.
44
44
  * @param enumType Enum object.
45
+ * @param values Enum values (constants).
45
46
  * @param nameAsValue If use name of constant as value (optional, default: false).
46
47
  * @param titlePath Base path for title to use as translation (optional).
47
48
  */
@@ -79,4 +80,4 @@ export class EnumUtil {
79
80
  }
80
81
  }
81
82
  }
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi91dGlscy9lbnVtLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLFFBQVE7SUFDakI7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQWtCO1FBQzdDLE9BQU8sUUFBUSxDQUFDLDhCQUE4QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsOEJBQThCLENBQUMsT0FBZTtRQUN4RCx5RkFBeUY7UUFDekYsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxRQUFrQjtRQUN0RCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQWlCLENBQVcsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMseUJBQXlCLENBQUMsUUFBa0I7UUFDdEQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLDZCQUE2QixDQUFDLFFBQWtCLEVBQUUsV0FBVyxHQUFHLEtBQUssRUFBRSxTQUFrQjtRQUNuRyxPQUFPLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFXLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFBLENBQUMsQ0FBQztJQUN0SyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsMEJBQTBCLENBQUMsUUFBa0IsRUFBRSxNQUErQixFQUFFLFdBQVcsR0FBRyxLQUFLLEVBQUUsU0FBa0I7UUFDakksT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2xCLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hELE9BQU8sRUFBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFjLENBQUM7UUFDaEgsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQUMsUUFBa0IsRUFBRSxLQUF1QjtRQUNyRSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixPQUFPLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDO1NBQ3ZGO2FBQU07WUFDSCxPQUFPLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUUsUUFBUSxDQUFDLEtBQUssQ0FBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDdEY7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxPQUFlLEVBQUUsS0FBdUI7UUFDaEYsTUFBTSxVQUFVLEdBQUcsT0FBYyxDQUFDO1FBQ2xDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzNCLE9BQU8sUUFBUSxDQUFDLDhCQUE4QixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUM7U0FDdEc7YUFBTTtZQUNILE9BQU8sT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBRSxVQUFVLENBQUMsS0FBSyxDQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUMxRjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RW51bVZhbHVlfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtFbnVtQ29uc3RhbnRUeXBlLCBFbnVtVHlwZX0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgRW51bVV0aWwge1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgYXJyYXkgb2YgbmFtZXMgZm9yIGNvbnN0YW50cyBpbiBlbnVtLlxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSBFbnVtIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnN0YW50TmFtZXMoZW51bVR5cGU6IEVudW1UeXBlKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBFbnVtVXRpbC5nZXRDb25zdGFudE5hbWVzRnJvbUVudW1PYmplY3QoZW51bVR5cGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYXJyYXkgb2YgbmFtZXMgZm9yIGNvbnN0YW50cyBpbiBlbnVtLlxuICAgICAqIEBwYXJhbSBlbnVtT2JqIEVudW0gb2JqZWN0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q29uc3RhbnROYW1lc0Zyb21FbnVtT2JqZWN0KGVudW1PYmo6IG9iamVjdCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICAvLyBpbiBudW1iZXIgZW51bSwgdGhlIG51bWJlcnMgYXJlIGFsc28gcmVwcmVzZW50ZWQgaW4gb2JqZWN0cyBhbmQgc2hvdWxkIGJlIGZpbHRlcmVkIG91dFxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZW51bU9iaikuZmlsdGVyKHYgPT4gaXNOYU4oK3YpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMgZm9yIGNvbnN0YW50cyBpbiBlbnVtLlxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSBFbnVtIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnN0YW50VmFsdWVzQXNTdHJpbmcoZW51bVR5cGU6IEVudW1UeXBlKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhlbnVtVHlwZSkubWFwKHYgPT4gZW51bVR5cGVbdiBhcyBrZXlvZiBvYmplY3RdIGFzIHN0cmluZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhcnJheSBvZiBudW1iZXIgdmFsdWVzIGZvciBjb25zdGFudHMgaW4gZW51bS5cbiAgICAgKiBAcGFyYW0gZW51bVR5cGUgRW51bSBvYmplY3QuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRDb25zdGFudFZhbHVlc0FzTnVtYmVyKGVudW1UeXBlOiBFbnVtVHlwZSk6IEFycmF5PG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZW51bVR5cGUpXG4gICAgICAgICAgICAuZmlsdGVyKHYgPT4gIWlzTmFOKCt2KSlcbiAgICAgICAgICAgIC5tYXAodiA9PiArdik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhcnJheSBvZiB0eXBlIEVudW1WYWx1ZSBmb3IgYWxsIGNvbnN0YW50cyBpbiBlbnVtLlxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSBFbnVtIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gbmFtZUFzVmFsdWUgSWYgdXNlIG5hbWUgb2YgY29uc3RhbnQgYXMgdmFsdWUgKG9wdGlvbmFsLCBkZWZhdWx0OiBmYWxzZSkuXG4gICAgICogQHBhcmFtIHRpdGxlUGF0aCBCYXNlIHBhdGggZm9yIHRpdGxlIHRvIHVzZSBhcyB0cmFuc2xhdGlvbiAob3B0aW9uYWwpLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUNvbnN0YW50c0FzRW51bVZhbHVlQXJyYXkoZW51bVR5cGU6IEVudW1UeXBlLCBuYW1lQXNWYWx1ZSA9IGZhbHNlLCB0aXRsZVBhdGg/OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIEVudW1VdGlsLmdldENvbnN0YW50TmFtZXMoZW51bVR5cGUpLm1hcChuID0+IDxFbnVtVmFsdWU+e25hbWU6IG4sIHRpdGxlOiBgJHt0aXRsZVBhdGggPyBgJHt0aXRsZVBhdGh9LmAgOiAnJ30ke259YCwgdmFsdWU6IG5hbWVBc1ZhbHVlID8gbiA6IGVudW1UeXBlW25dfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhcnJheSBvZiB0eXBlIEVudW1WYWx1ZSBmb3IgcHJvdmlkZWQgdmFsdWVzIGluIGVudW0uXG4gICAgICogQHBhcmFtIGVudW1UeXBlIEVudW0gb2JqZWN0LlxuICAgICAqIEBwYXJhbSBuYW1lQXNWYWx1ZSBJZiB1c2UgbmFtZSBvZiBjb25zdGFudCBhcyB2YWx1ZSAob3B0aW9uYWwsIGRlZmF1bHQ6IGZhbHNlKS5cbiAgICAgKiBAcGFyYW0gdGl0bGVQYXRoIEJhc2UgcGF0aCBmb3IgdGl0bGUgdG8gdXNlIGFzIHRyYW5zbGF0aW9uIChvcHRpb25hbCkuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBmcm9tVmFsdWVzQXNFbnVtVmFsdWVBcnJheShlbnVtVHlwZTogRW51bVR5cGUsIHZhbHVlczogQXJyYXk8RW51bUNvbnN0YW50VHlwZT4sIG5hbWVBc1ZhbHVlID0gZmFsc2UsIHRpdGxlUGF0aD86IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdmFsdWVzLm1hcCh2ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGsgPSBFbnVtVXRpbC5nZXRDb25zdGFudE5hbWUoZW51bVR5cGUsIHYpO1xuICAgICAgICAgICAgcmV0dXJuIHtuYW1lOiBrLCB0aXRsZTogYCR7dGl0bGVQYXRoID8gYCR7dGl0bGVQYXRofS5gIDogJyd9JHtrfWAsIHZhbHVlOiBuYW1lQXNWYWx1ZSA/IGsgOiB2fSBhcyBFbnVtVmFsdWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgY29uc3RhbnQgbmFtZSBmb3IgdmFsdWUuXG4gICAgICogQHBhcmFtIGVudW1UeXBlIEVudW0gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSBvZiBlbnVtIGNvbnN0YW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q29uc3RhbnROYW1lKGVudW1UeXBlOiBFbnVtVHlwZSwgdmFsdWU6IEVudW1Db25zdGFudFR5cGUpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBFbnVtVXRpbC5nZXRDb25zdGFudE5hbWVzKGVudW1UeXBlKS5maW5kKGMgPT4gZW51bVR5cGVbY10gPT09IHZhbHVlKSA/PyBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBlbnVtVHlwZVt2YWx1ZV0gIT09ICd1bmRlZmluZWQnID8gKGVudW1UeXBlW3ZhbHVlXSBhcyBzdHJpbmcpIDogbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgY29uc3RhbnQgbmFtZSBmb3IgdmFsdWUuXG4gICAgICogQHBhcmFtIGVudW1PYmogRW51bSBvYmplY3QuXG4gICAgICogQHBhcmFtIHZhbHVlIFZhbHVlIG9mIGVudW0gY29uc3RhbnQuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRDb25zdGFudE5hbWVGcm9tRW51bU9iamVjdChlbnVtT2JqOiBvYmplY3QsIHZhbHVlOiBFbnVtQ29uc3RhbnRUeXBlKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGVudW1PYmpBbnkgPSBlbnVtT2JqIGFzIGFueTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBFbnVtVXRpbC5nZXRDb25zdGFudE5hbWVzRnJvbUVudW1PYmplY3QoZW51bU9iaikuZmluZChjID0+IGVudW1PYmpBbnlbY10gPT09IHZhbHVlKSA/PyBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBlbnVtT2JqQW55W3ZhbHVlXSAhPT0gJ3VuZGVmaW5lZCcgPyAoZW51bU9iakFueVt2YWx1ZV0gYXMgc3RyaW5nKSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi91dGlscy9lbnVtLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLFFBQVE7SUFDakI7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQWtCO1FBQzdDLE9BQU8sUUFBUSxDQUFDLDhCQUE4QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsOEJBQThCLENBQUMsT0FBZTtRQUN4RCx5RkFBeUY7UUFDekYsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxRQUFrQjtRQUN0RCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQWlCLENBQVcsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMseUJBQXlCLENBQUMsUUFBa0I7UUFDdEQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLDZCQUE2QixDQUFDLFFBQWtCLEVBQUUsV0FBVyxHQUFHLEtBQUssRUFBRSxTQUFrQjtRQUNuRyxPQUFPLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFXLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFBLENBQUMsQ0FBQztJQUN0SyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLDBCQUEwQixDQUFrQyxRQUFrQixFQUFFLE1BQTJCLEVBQUUsV0FBVyxHQUFHLEtBQUssRUFBRSxTQUFrQjtRQUM5SixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbEIsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEQsT0FBTyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQWMsQ0FBQztRQUNoSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGVBQWUsQ0FBa0MsUUFBa0IsRUFBRSxLQUFtQjtRQUNsRyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixPQUFPLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDO1NBQ3ZGO2FBQU07WUFDSCxPQUFPLE9BQU8sUUFBUSxDQUFDLEtBQXFCLENBQUMsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFFLFFBQVEsQ0FBQyxLQUFxQixDQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUN0SDtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLDZCQUE2QixDQUFrQyxPQUFlLEVBQUUsS0FBbUI7UUFDN0csTUFBTSxVQUFVLEdBQUcsT0FBYyxDQUFDO1FBQ2xDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzNCLE9BQU8sUUFBUSxDQUFDLDhCQUE4QixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUM7U0FDdEc7YUFBTTtZQUNILE9BQU8sT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBRSxVQUFVLENBQUMsS0FBSyxDQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUMxRjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RW51bVZhbHVlfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtFbnVtQ29uc3RhbnRUeXBlLCBFbnVtVHlwZX0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgRW51bVV0aWwge1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgYXJyYXkgb2YgbmFtZXMgZm9yIGNvbnN0YW50cyBpbiBlbnVtLlxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSBFbnVtIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnN0YW50TmFtZXMoZW51bVR5cGU6IEVudW1UeXBlKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBFbnVtVXRpbC5nZXRDb25zdGFudE5hbWVzRnJvbUVudW1PYmplY3QoZW51bVR5cGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYXJyYXkgb2YgbmFtZXMgZm9yIGNvbnN0YW50cyBpbiBlbnVtLlxuICAgICAqIEBwYXJhbSBlbnVtT2JqIEVudW0gb2JqZWN0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q29uc3RhbnROYW1lc0Zyb21FbnVtT2JqZWN0KGVudW1PYmo6IG9iamVjdCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICAvLyBpbiBudW1iZXIgZW51bSwgdGhlIG51bWJlcnMgYXJlIGFsc28gcmVwcmVzZW50ZWQgaW4gb2JqZWN0cyBhbmQgc2hvdWxkIGJlIGZpbHRlcmVkIG91dFxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZW51bU9iaikuZmlsdGVyKHYgPT4gaXNOYU4oK3YpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMgZm9yIGNvbnN0YW50cyBpbiBlbnVtLlxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSBFbnVtIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnN0YW50VmFsdWVzQXNTdHJpbmcoZW51bVR5cGU6IEVudW1UeXBlKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhlbnVtVHlwZSkubWFwKHYgPT4gZW51bVR5cGVbdiBhcyBrZXlvZiBvYmplY3RdIGFzIHN0cmluZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhcnJheSBvZiBudW1iZXIgdmFsdWVzIGZvciBjb25zdGFudHMgaW4gZW51bS5cbiAgICAgKiBAcGFyYW0gZW51bVR5cGUgRW51bSBvYmplY3QuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRDb25zdGFudFZhbHVlc0FzTnVtYmVyKGVudW1UeXBlOiBFbnVtVHlwZSk6IEFycmF5PG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZW51bVR5cGUpXG4gICAgICAgICAgICAuZmlsdGVyKHYgPT4gIWlzTmFOKCt2KSlcbiAgICAgICAgICAgIC5tYXAodiA9PiArdik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhcnJheSBvZiB0eXBlIEVudW1WYWx1ZSBmb3IgYWxsIGNvbnN0YW50cyBpbiBlbnVtLlxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSBFbnVtIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gbmFtZUFzVmFsdWUgSWYgdXNlIG5hbWUgb2YgY29uc3RhbnQgYXMgdmFsdWUgKG9wdGlvbmFsLCBkZWZhdWx0OiBmYWxzZSkuXG4gICAgICogQHBhcmFtIHRpdGxlUGF0aCBCYXNlIHBhdGggZm9yIHRpdGxlIHRvIHVzZSBhcyB0cmFuc2xhdGlvbiAob3B0aW9uYWwpLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUNvbnN0YW50c0FzRW51bVZhbHVlQXJyYXkoZW51bVR5cGU6IEVudW1UeXBlLCBuYW1lQXNWYWx1ZSA9IGZhbHNlLCB0aXRsZVBhdGg/OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIEVudW1VdGlsLmdldENvbnN0YW50TmFtZXMoZW51bVR5cGUpLm1hcChuID0+IDxFbnVtVmFsdWU+e25hbWU6IG4sIHRpdGxlOiBgJHt0aXRsZVBhdGggPyBgJHt0aXRsZVBhdGh9LmAgOiAnJ30ke259YCwgdmFsdWU6IG5hbWVBc1ZhbHVlID8gbiA6IGVudW1UeXBlW25dfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhcnJheSBvZiB0eXBlIEVudW1WYWx1ZSBmb3IgcHJvdmlkZWQgdmFsdWVzIGluIGVudW0uXG4gICAgICogQHBhcmFtIGVudW1UeXBlIEVudW0gb2JqZWN0LlxuICAgICAqIEBwYXJhbSB2YWx1ZXMgRW51bSB2YWx1ZXMgKGNvbnN0YW50cykuXG4gICAgICogQHBhcmFtIG5hbWVBc1ZhbHVlIElmIHVzZSBuYW1lIG9mIGNvbnN0YW50IGFzIHZhbHVlIChvcHRpb25hbCwgZGVmYXVsdDogZmFsc2UpLlxuICAgICAqIEBwYXJhbSB0aXRsZVBhdGggQmFzZSBwYXRoIGZvciB0aXRsZSB0byB1c2UgYXMgdHJhbnNsYXRpb24gKG9wdGlvbmFsKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGZyb21WYWx1ZXNBc0VudW1WYWx1ZUFycmF5PEVudW1Db25zdGFudCA9IEVudW1Db25zdGFudFR5cGU+KGVudW1UeXBlOiBFbnVtVHlwZSwgdmFsdWVzOiBBcnJheTxFbnVtQ29uc3RhbnQ+LCBuYW1lQXNWYWx1ZSA9IGZhbHNlLCB0aXRsZVBhdGg/OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlcy5tYXAodiA9PiB7XG4gICAgICAgICAgICBjb25zdCBrID0gRW51bVV0aWwuZ2V0Q29uc3RhbnROYW1lKGVudW1UeXBlLCB2KTtcbiAgICAgICAgICAgIHJldHVybiB7bmFtZTogaywgdGl0bGU6IGAke3RpdGxlUGF0aCA/IGAke3RpdGxlUGF0aH0uYCA6ICcnfSR7a31gLCB2YWx1ZTogbmFtZUFzVmFsdWUgPyBrIDogdn0gYXMgRW51bVZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGNvbnN0YW50IG5hbWUgZm9yIHZhbHVlLlxuICAgICAqIEBwYXJhbSBlbnVtVHlwZSBFbnVtIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgb2YgZW51bSBjb25zdGFudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnN0YW50TmFtZTxFbnVtQ29uc3RhbnQgPSBFbnVtQ29uc3RhbnRUeXBlPihlbnVtVHlwZTogRW51bVR5cGUsIHZhbHVlOiBFbnVtQ29uc3RhbnQpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBFbnVtVXRpbC5nZXRDb25zdGFudE5hbWVzKGVudW1UeXBlKS5maW5kKGMgPT4gZW51bVR5cGVbY10gPT09IHZhbHVlKSA/PyBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBlbnVtVHlwZVt2YWx1ZSBhcyBrZXlvZiBvYmplY3RdICE9PSAndW5kZWZpbmVkJyA/IChlbnVtVHlwZVt2YWx1ZSBhcyBrZXlvZiBvYmplY3RdIGFzIHN0cmluZykgOiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBjb25zdGFudCBuYW1lIGZvciB2YWx1ZS5cbiAgICAgKiBAcGFyYW0gZW51bU9iaiBFbnVtIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgb2YgZW51bSBjb25zdGFudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnN0YW50TmFtZUZyb21FbnVtT2JqZWN0PEVudW1Db25zdGFudCA9IEVudW1Db25zdGFudFR5cGU+KGVudW1PYmo6IG9iamVjdCwgdmFsdWU6IEVudW1Db25zdGFudCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBjb25zdCBlbnVtT2JqQW55ID0gZW51bU9iaiBhcyBhbnk7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gRW51bVV0aWwuZ2V0Q29uc3RhbnROYW1lc0Zyb21FbnVtT2JqZWN0KGVudW1PYmopLmZpbmQoYyA9PiBlbnVtT2JqQW55W2NdID09PSB2YWx1ZSkgPz8gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgZW51bU9iakFueVt2YWx1ZV0gIT09ICd1bmRlZmluZWQnID8gKGVudW1PYmpBbnlbdmFsdWVdIGFzIHN0cmluZykgOiBudWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -210,8 +210,8 @@ export class ErrorUtil {
210
210
  if (!opts?.hideActionData && error.actionContext?.parameters.actionData) {
211
211
  paramsMessage += Object.entries(error.actionContext?.parameters.actionData).reduce((acc, [key, value]) => `${acc}[actionData ${key}: ${StringUtil.stringify(value)}]`, '');
212
212
  }
213
- if (!opts?.hideQueryParams && error.actionContext?.parameters.queryParam) {
214
- paramsMessage += `[queryParam: ${StringUtil.stringify(error.actionContext.parameters.queryParam)}]`;
213
+ if (!opts?.hideQueryParams && error.actionContext?.parameters.dataListParams) {
214
+ paramsMessage += `[queryParam: ${StringUtil.stringify(error.actionContext.parameters.dataListParams)}]`;
215
215
  }
216
216
  if (!opts?.hideItems && error.actionContext?.parameters.formItem) {
217
217
  paramsMessage += `[formItem: ${StringUtil.stringify(error.actionContext.parameters.formItem)}]`;
@@ -244,4 +244,4 @@ export class ErrorUtil {
244
244
  return '';
245
245
  }
246
246
  }
247
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvZXJyb3IudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxPQUFPLEVBQUMsYUFBYSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQXVCLFlBQVksRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUMzSCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE1BQU0sT0FBTyxTQUFTO0lBQ2xCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLGtCQUFrQixDQUFDLEtBQVUsRUFBRSxJQUFhLEVBQUUsT0FBYTtRQUNyRSxNQUFNLElBQUksR0FBd0I7WUFDOUIsSUFBSTtZQUNKLE9BQU87WUFDUCxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJO1NBQ25DLENBQUM7UUFFRixJQUFJLEtBQUssWUFBWSxpQkFBaUIsRUFBRTtZQUNwQyxPQUFPLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUkscUJBQXFCLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2hGO2FBQU07WUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixPQUFPLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSx5QkFBeUIsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNqRjtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsbUJBQW1CLENBQUMsS0FBVTtRQUN4QyxPQUFPLEtBQUssWUFBWSxpQkFBaUIsSUFBSSxLQUFLLFlBQVksWUFBWSxJQUFJLENBQUMsS0FBSyxZQUFZLGNBQWMsSUFBSyxLQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNKLENBQUM7SUFFRDs7O09B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QUFDLENBQUMsQ0FBQyxLQUFNLEtBQUssQ0FBQyxLQUFlLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQ2pLLENBQUM7YUFDTDtTQUNKO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBFcnJvclJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7QU1uZ0Vycm9yQmFzZSwgTG9nTGV2ZWxFbnVtLCBNbmdBY3Rpb25FcnJvciwgTW5nRXJyb3JCYXNlT3B0aW9ucywgTW5nSHR0cEVycm9yLCBNbmdJbnRlcm5hbEVycm9yfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtTdHJpbmdVdGlsfSBmcm9tICcuL3N0cmluZy51dGlsJztcblxuZXhwb3J0IGNsYXNzIEVycm9yVXRpbCB7XG4gICAgLyoqXG4gICAgICogQ29udmVydHMgUnhKUyBzdWJzY3JpcHRpb24gZXJyb3IgdG8gTW5nRXJyb3IuXG4gICAgICogQHBhcmFtIGVycm9yIEVycm9yLlxuICAgICAqIEBwYXJhbSBuYW1lIE9wdGlvbmFsIG5hbWUgdG8gd3JpdGUgaW4gbW5nRXJyb3IuXG4gICAgICogQHBhcmFtIGRldGFpbHMgT3B0aW9uYWwgZGV0YWlscyBvZiBlcnJvci5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGZyb21TdWJzY3JpYmVFcnJvcihlcnJvcjogYW55LCBuYW1lPzogc3RyaW5nLCBkZXRhaWxzPzogYW55KTogQU1uZ0Vycm9yQmFzZSB7XG4gICAgICAgIGNvbnN0IG9wdHM6IE1uZ0Vycm9yQmFzZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgZGV0YWlscyxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB3aW5kb3c/LmxvY2F0aW9uPy5ocmVmXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTW5nSHR0cEVycm9yKGVycm9yLm1lc3NhZ2UgPz8gJ0h0dHAgRXJyb3Igb2NjdXJyZWQnLCBlcnJvciwgb3B0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvcHRzLmNhdXNlID0gZXJyb3I7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE1uZ0ludGVybmFsRXJyb3IoZXJyb3IubWVzc2FnZSA/PyAnSW50ZXJuYWwgRXJyb3Igb2NjdXJyZWQnLCBvcHRzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBlcnJvciBpcyBIdHRwIGVycm9yIChBbmd1bGFyIG9yIE1uZykuXG4gICAgICogQHBhcmFtIGVycm9yXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBpc0h0dHBFcnJvclJlc3BvbnNlKGVycm9yOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UgfHwgZXJyb3IgaW5zdGFuY2VvZiBNbmdIdHRwRXJyb3IgfHwgKGVycm9yIGluc3RhbmNlb2YgTW5nQWN0aW9uRXJyb3IgJiYgKGVycm9yIGFzIE1uZ0FjdGlvbkVycm9yKS5odHRwRXJyb3IpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgSHR0cEVycm9yUmVzcG9uc2UgZnJvbSBlcnJvciAoQW5ndWxhciBvciBNbmcpLlxuICAgICAqIEBwYXJhbSBlcnJvciBFcnJvci5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEh0dHBFcnJvclJlc3BvbnNlKGVycm9yOiBhbnkpOiBIdHRwRXJyb3JSZXNwb25zZSB8IG51bGwge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgTW5nSHR0cEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZXJyb3IuaHR0cEVycm9yO1xuICAgICAgICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgTW5nQWN0aW9uRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlcnJvci5odHRwRXJyb3IgPz8gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBIdHRwRXJyb3JSZXNwb25zZSBzdGF0dXMgZnJvbSBlcnJvciAoQW5ndWxhciBvciBNbmcpLlxuICAgICAqIEBwYXJhbSBlcnJvciBFcnJvci5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEh0dHBFcnJvclJlc3BvbnNlU3RhdHVzKGVycm9yOiBhbnkpOiBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIEVycm9yVXRpbC5nZXRIdHRwRXJyb3JSZXNwb25zZShlcnJvcik/LnN0YXR1cyA/PyBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBlcnJvciBsb2cgbGV2ZWwuIEFsbCBpcyBlcnJvciwgZXhjZXB0IGlmIGVycm9yIGlzIGh0dHAgZXJyb3Igd2l0aCBzdGF0dXMgPj00MDAgYW5kIDw1MDAuXG4gICAgICogQHBhcmFtIGVycm9yIEVycm9yLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0RXJyb3JMb2dMZXZlbChlcnJvcjogYW55KTogTG9nTGV2ZWxFbnVtIHtcbiAgICAgICAgaWYgKEVycm9yVXRpbC5pc0h0dHBFcnJvclJlc3BvbnNlKGVycm9yKSkge1xuICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gRXJyb3JVdGlsLmdldEh0dHBFcnJvclJlc3BvbnNlU3RhdHVzKGVycm9yKTtcbiAgICAgICAgICAgIGlmIChzdGF0dXMgJiYgc3RhdHVzID49IDQwMCAmJiBzdGF0dXMgPCA1MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gTG9nTGV2ZWxFbnVtLldhcm5pbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIExvZ0xldmVsRW51bS5FcnJvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgZXJyb3IgbmFtZSAocHJvdG90eXBlIG5hbWUgb3IgdHlwZSBmcm9tIG1uZyBlcnJvciBpZiBuYW1lIGlzIG5vdCBwcm92aWRlZCkuXG4gICAgICogQHBhcmFtIGVycm9yIEVycm9yLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0RXJyb3JOYW1lKGVycm9yOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBBTW5nRXJyb3JCYXNlKSB7XG4gICAgICAgICAgICByZXR1cm4gZXJyb3IubmFtZSA/PyBlcnJvci50eXBlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yLm5hbWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZXMgaHR0cCBlcnJvciB0byBzdHJpbmcgd2l0aCBhbGwgaGVhZGVycyBhbmQgYm9keS5cbiAgICAgKiBAcGFyYW0gZXJyb3IgSHR0cCByZXNwb25zZSBlcnJvci5cbiAgICAgKiBAcGFyYW0gb3B0cyBPcHRpb25zIGZvciBoaWRpbmcgcGFydHMgb2YgZXJyb3I6XG4gICAgICogIC0gaGlkZU1lc3NhZ2UgSGlkZXMgbWVzc2FnZSBvZiBlcnJvciAobWVzc2FnZSBpbmNsdWRlIHVybCwgc3RhdHVzIGFuZCBzdGF0dXMgdGV4dCEpLlxuICAgICAqICAtIGhpZGVIZWFkZXJzIEhpZGVzIGhlYWRlcnMuXG4gICAgICogIC0gaGlkZUJvZHkgSGlkZXMgSlNPTiByZXByZXNlbnRhdGlvbiBvZiBib2R5LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaHR0cEVycm9yUmVzcG9uc2VUb1N0cmluZyhlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UsIG9wdHM/OiBIdHRwRXJyb3JSZXNwb25zZVRvU3RyaW5nT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgICAgIGxldCBzdHIgPSBvcHRzPy5oaWRlTWVzc2FnZSA/ICcnIDogYCR7ZXJyb3IubWVzc2FnZX1cXG5gOyAvLyBtZXNzYWdlIHNob3VsZCBhbHJlYWR5IGluY2x1ZGUgdXJsLCBzdGF0dXMsIGV0Yy5cbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlSGVhZGVycykge1xuICAgICAgICAgICAgc3RyICs9IGBIdHRwIFJlc3BvbnNlIEhlYWRlcnM6ICR7ZXJyb3IuaGVhZGVycy5rZXlzKCkucmVkdWNlKChhY2MsIGtleSkgPT4gYCR7YWNjfVske2tleX06ICR7ZXJyb3IuaGVhZGVycy5nZXQoa2V5KX1dYCwgJycpfWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlQm9keSkge1xuICAgICAgICAgICAgc3RyICs9IGBcXG5IdHRwIFJlc3BvbnNlIEJvZHk6ICR7U3RyaW5nVXRpbC5zdHJpbmdpZnkoZXJyb3IuZXJyb3IpfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFcnJvciB0byBzdHJpbmcuXG4gICAgICogQHBhcmFtIGVycm9yIEVycm9yLlxuICAgICAqIEBwYXJhbSBvcHRzIE9wdGlvbnMgZm9yIGhpZGluZyBwYXJ0cyBvZiBlcnJvcjpcbiAgICAgKiAtIGhpZGVNZXNzYWdlIEhpZGVzIG1lc3NhZ2Ugb2YgZXJyb3IuXG4gICAgICogLSBoaWRlTmFtZSBIaWRlcyBlcnJvciBuYW1lLlxuICAgICAqIC0gaGlkZUNhdXNlIEhpZGVzIGNhdXNlIG9mIGFuIGVycm9yIChpZiBwcmVzZW50LCBzZWUgQGxpbmsoZXJyb3JDYXVzZVRvU3RyaW5nKSBmb3Igb3RoZXIgb3B0aW9ucykuXG4gICAgICogLSBoaWRlU3RhY2sgSGlkZXMgc3RhY2sgb2YgYW4gZXJyb3IgKGlmIHByZXNlbnQpLlxuICAgICAqIC0gaGlkZURldGFpbHMgSGlkZXMgSlNPTiBkZXRhaWwncyByZXByZXNlbnRhdGlvbiBvZiBlcnJvciAoaWYgcHJlc2VudCkuXG4gICAgICogLSBoaWRlTG9jYXRpb24gSGlkZXMgbG9jYXRpb24gKFVSTCkgd2hlcmUgZXJyb3Igd2FzIHRocm93bi5cbiAgICAgKiAtIGhpZGVIdHRwIEhpZGVzIGh0dHAgZXJyb3IgcG9ydGlvbiBvZiBlcnJvciBpZiBodHRwIGVycm9yIHJlc3BvbnNlIChzZWUgQGxpbmsoaHR0cEVycm9yUmVzcG9uc2VUb1N0cmluZykgZm9yIG90aGVyIG9wdGlvbnMpLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZXJyb3JUb1N0cmluZyhlcnJvcjogRXJyb3IsIG9wdHM/OiBFcnJvclRvU3RyaW5nT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEFNbmdFcnJvckJhc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBFcnJvclV0aWwubW5nRXJyb3JUb1N0cmluZyhlcnJvciwgb3B0cyk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgcmV0dXJuIEVycm9yVXRpbC5odHRwRXJyb3JSZXNwb25zZVRvU3RyaW5nKGVycm9yLCBvcHRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN0ckJsb2Nrczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlTWVzc2FnZSkge1xuICAgICAgICAgICAgc3RyQmxvY2tzLnB1c2goZXJyb3IubWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycm9yLm5hbWUpIHtcbiAgICAgICAgICAgIHN0ckJsb2Nrcy5wdXNoKGBFcnJvciBuYW1lOiAke2Vycm9yLm5hbWV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlQ2F1c2UpIHtcbiAgICAgICAgICAgIHN0ckJsb2Nrcy5wdXNoKEVycm9yVXRpbC5lcnJvckNhdXNlVG9TdHJpbmcoZXJyb3IsIG9wdHMpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdHM/LmhpZGVTdGFjayAmJiBlcnJvci5zdGFjaykge1xuICAgICAgICAgICAgc3RyQmxvY2tzLnB1c2goYFN0YWNrIHRyYWNlOlxcbiR7ZXJyb3Iuc3RhY2t9YCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3RyQmxvY2tzLmZpbHRlcihzID0+IHMudHJpbSgpLmxlbmd0aCA+IDApLmpvaW4oJ1xcbicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1uZyBlcnJvciB0byBzdHJpbmcuXG4gICAgICogQHBhcmFtIGVycm9yIE1uZyBlcnJvci5cbiAgICAgKiBAcGFyYW0gb3B0cyBPcHRpb25zIGZvciBoaWRpbmcgcGFydHMgb2YgZXJyb3I6XG4gICAgICogLSBoaWRlTWVzc2FnZSBIaWRlcyBtZXNzYWdlIG9mIGVycm9yLlxuICAgICAqIC0gaGlkZU5hbWUgSGlkZXMgZXJyb3IgbmFtZS5cbiAgICAgKiAtIGhpZGVDYXVzZSBIaWRlcyBjYXVzZSBvZiBhbiBlcnJvciAoaWYgcHJlc2VudCwgc2VlIEBsaW5rKGVycm9yQ2F1c2VUb1N0cmluZykgZm9yIG90aGVyIG9wdGlvbnMpLlxuICAgICAqIC0gaGlkZVN0YWNrIEhpZGVzIHN0YWNrIG9mIGFuIGVycm9yIChpZiBwcmVzZW50KS5cbiAgICAgKiAtIGhpZGVEZXRhaWxzIEhpZGVzIEpTT04gZGV0YWlsJ3MgcmVwcmVzZW50YXRpb24gb2YgZXJyb3IgKGlmIHByZXNlbnQpLlxuICAgICAqIC0gaGlkZUxvY2F0aW9uIEhpZGVzIGxvY2F0aW9uIChVUkwpIHdoZXJlIGVycm9yIHdhcyB0aHJvd24uXG4gICAgICogLSBoaWRlSHR0cCBIaWRlcyBodHRwIGVycm9yIHBvcnRpb24gb2YgZXJyb3IgaWYgaHR0cCBlcnJvciByZXNwb25zZSAoc2VlIEBsaW5rKGh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmcpIGZvciBvdGhlciBvcHRpb25zKS5cbiAgICAgKiAtIGhpZGVJdGVtcyBIaWRlcyBhbGwgaXRlbSBpbmZvcm1hdGlvbiAoaHR0cCBib2R5LCBhY3Rpb24gY29udGV4dCBkYXRhKS5cbiAgICAgKiAtIGhpZGVBY3Rpb25EYXRhIFNlZSBAbGluayhtbmdBY3Rpb25FcnJvckNvbnRleHRUb1N0cmluZykgZm9yIGFkZGl0aW9uYWwgaW5mby5cbiAgICAgKiAtIGhpZGVRdWVyeVBhcmFtcyBTZWUgQGxpbmsobW5nQWN0aW9uRXJyb3JDb250ZXh0VG9TdHJpbmcpIGZvciBhZGRpdGlvbmFsIGluZm8uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtbmdFcnJvclRvU3RyaW5nKGVycm9yOiBBTW5nRXJyb3JCYXNlLCBvcHRzPzogTW5nRXJyb3JUb1N0cmluZ09wdGlvbnMpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBzdHJCbG9ja3M6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGlmICghb3B0cz8uaGlkZU1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHN0ckJsb2Nrcy5wdXNoKGAke2Vycm9yLm1lc3NhZ2V9JHtlcnJvci5tZXNzYWdlQ29kZSA/IGAgKGNvZGU6ICR7ZXJyb3IubWVzc2FnZUNvZGV9KWAgOiAnJ31gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdHM/LmhpZGVOYW1lKSB7XG4gICAgICAgICAgICBzdHJCbG9ja3MucHVzaChgRXJyb3IgbmFtZTogJHtlcnJvci5uYW1lID8/IGVycm9yLnR5cGV9ICR7ZXJyb3IubmFtZSA/IGAoJHtlcnJvci50eXBlfSlgIDogJyd9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlTG9jYXRpb24gJiYgZXJyb3IubG9jYXRpb24pIHtcbiAgICAgICAgICAgIHN0ckJsb2Nrcy5wdXNoKGBMb2NhdGlvbjogJHtlcnJvci5sb2NhdGlvbn1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBpc0h0dHAgPSBmYWxzZTtcbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlSHR0cCAmJiBlcnJvciBpbnN0YW5jZW9mIE1uZ0h0dHBFcnJvcikge1xuICAgICAgICAgICAgc3RyQmxvY2tzLnB1c2goXG4gICAgICAgICAgICAgICAgRXJyb3JVdGlsLmh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmcoZXJyb3IuaHR0cEVycm9yLCB7XG4gICAgICAgICAgICAgICAgICAgIGhpZGVCb2R5OiBvcHRzPy5oaWRlSXRlbXMgfHwgb3B0cz8uaGlkZUJvZHksXG4gICAgICAgICAgICAgICAgICAgIGhpZGVIZWFkZXJzOiBvcHRzPy5oaWRlSGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgaGlkZU1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UuaW5kZXhPZihlcnJvci5odHRwRXJyb3IubWVzc2FnZSkgPj0gMFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaXNIdHRwID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBNbmdBY3Rpb25FcnJvcikge1xuICAgICAgICAgICAgaWYgKGVycm9yLmFjdGlvbkNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICBzdHJCbG9ja3MucHVzaChFcnJvclV0aWwubW5nQWN0aW9uRXJyb3JDb250ZXh0VG9TdHJpbmcoZXJyb3IsIG9wdHMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghb3B0cz8uaGlkZUh0dHAgJiYgZXJyb3IuaHR0cEVycm9yKSB7XG4gICAgICAgICAgICAgICAgc3RyQmxvY2tzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIEVycm9yVXRpbC5odHRwRXJyb3JSZXNwb25zZVRvU3RyaW5nKGVycm9yLmh0dHBFcnJvciwge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUJvZHk6IG9wdHM/LmhpZGVJdGVtcyB8fCBvcHRzPy5oaWRlQm9keSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpZGVIZWFkZXJzOiBvcHRzPy5oaWRlSGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpZGVNZXNzYWdlOiBlcnJvci5tZXNzYWdlLmluZGV4T2YoZXJyb3IuaHR0cEVycm9yLm1lc3NhZ2UpID49IDBcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlzSHR0cCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW9wdHM/LmhpZGVEZXRhaWxzICYmIGVycm9yLmRldGFpbHMpIHtcbiAgICAgICAgICAgIHN0ckJsb2Nrcy5wdXNoKGBEZXRhaWxzOiAke1N0cmluZ1V0aWwuc3RyaW5naWZ5KGVycm9yLmRldGFpbHMpfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghb3B0cz8uaGlkZUNhdXNlICYmICghaXNIdHRwIHx8ICEoZXJyb3IuY2F1c2UgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkpKSB7XG4gICAgICAgICAgICBzdHJCbG9ja3MucHVzaChFcnJvclV0aWwuZXJyb3JDYXVzZVRvU3RyaW5nKGVycm9yLCBvcHRzKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlU3RhY2sgJiYgZXJyb3Iuc3RhY2spIHtcbiAgICAgICAgICAgIHN0ckJsb2Nrcy5wdXNoKGBTdGFjayB0cmFjZTpcXG4ke2Vycm9yLnN0YWNrfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN0ckJsb2Nrcy5maWx0ZXIocyA9PiBzLnRyaW0oKS5sZW5ndGggPiAwKS5qb2luKCdcXG4nKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZXMgTW5nIGFjdGlvbiBlcnJvciBpbmZvIGZyb20gY29udGV4dCBhcyBzdHJpbmcuXG4gICAgICogQHBhcmFtIGVycm9yIE1uZyBhY3Rpb24gZXJyb3IuXG4gICAgICogQHBhcmFtIG9wdHMgT3B0aW9ucyBmb3IgaGlkaW5nIHBhcnRzIG9mIGVycm9yOlxuICAgICAqIC0gaGlkZUl0ZW1zIEhpZGVzIGFsbCBpdGVtIHJlbGF0ZWQgaW5mb3JtYXRpb24gKGl0ZW0sIGZvcm0gaXRlbSwgc3VibWl0IGl0ZW0sIC4uLikuXG4gICAgICogLSBoaWRlQWN0aW9uRGF0YSBIaWRlcyBhY3Rpb24gZGF0YS5cbiAgICAgKiAtIGhpZGVRdWVyeVBhcmFtcyBIaWRlcyBxdWVyeSBwYXJhbXMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtbmdBY3Rpb25FcnJvckNvbnRleHRUb1N0cmluZyhlcnJvcjogTW5nQWN0aW9uRXJyb3IsIG9wdHM/OiBNbmdBY3Rpb25FcnJvckNvbnRleHRUb1N0cmluZ09wdGlvbnMpOiBzdHJpbmcge1xuICAgICAgICBsZXQgcGFyYW1zTWVzc2FnZSA9ICcnO1xuICAgICAgICBpZiAoZXJyb3IuYWN0aW9uQ29udGV4dD8ucGFyYW1ldGVycykge1xuICAgICAgICAgICAgaWYgKGVycm9yLmFjdGlvbkNvbnRleHQ/LnBhcmFtZXRlcnMuaXRlbUlkKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zTWVzc2FnZSArPSBgW2l0ZW1JZDogJHtlcnJvci5hY3Rpb25Db250ZXh0LnBhcmFtZXRlcnMuaXRlbUlkfV1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFvcHRzPy5oaWRlSXRlbXMgJiYgZXJyb3IuYWN0aW9uQ29udGV4dD8ucGFyYW1ldGVycy5pdGVtKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zTWVzc2FnZSArPSBgW2l0ZW06ICR7U3RyaW5nVXRpbC5zdHJpbmdpZnkoZXJyb3IuYWN0aW9uQ29udGV4dC5wYXJhbWV0ZXJzLml0ZW0pfV1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFvcHRzPy5oaWRlQWN0aW9uRGF0YSAmJiBlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLmFjdGlvbkRhdGEpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXNNZXNzYWdlICs9IE9iamVjdC5lbnRyaWVzKGVycm9yLmFjdGlvbkNvbnRleHQ/LnBhcmFtZXRlcnMuYWN0aW9uRGF0YSkucmVkdWNlKFxuICAgICAgICAgICAgICAgICAgICAoYWNjLCBba2V5LCB2YWx1ZV0pID0+IGAke2FjY31bYWN0aW9uRGF0YSAke2tleX06ICR7U3RyaW5nVXRpbC5zdHJpbmdpZnkodmFsdWUpfV1gLFxuICAgICAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIW9wdHM/LmhpZGVRdWVyeVBhcmFtcyAmJiBlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLnF1ZXJ5UGFyYW0pIHtcbiAgICAgICAgICAgICAgICBwYXJhbXNNZXNzYWdlICs9IGBbcXVlcnlQYXJhbTogJHtTdHJpbmdVdGlsLnN0cmluZ2lmeShlcnJvci5hY3Rpb25Db250ZXh0LnBhcmFtZXRlcnMucXVlcnlQYXJhbSl9XWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIW9wdHM/LmhpZGVJdGVtcyAmJiBlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLmZvcm1JdGVtKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zTWVzc2FnZSArPSBgW2Zvcm1JdGVtOiAke1N0cmluZ1V0aWwuc3RyaW5naWZ5KGVycm9yLmFjdGlvbkNvbnRleHQucGFyYW1ldGVycy5mb3JtSXRlbSl9XWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIW9wdHM/LmhpZGVJdGVtcyAmJiBlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLnN1Ym1pdFJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHBhcmFtc01lc3NhZ2UgKz0gYFtmb3JtSXRlbTogJHtTdHJpbmdVdGlsLnN0cmluZ2lmeShlcnJvci5hY3Rpb25Db250ZXh0LnBhcmFtZXRlcnMuc3VibWl0UmVzdWx0KX1dYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLmxvY2FsZSkge1xuICAgICAgICAgICAgICAgIHBhcmFtc01lc3NhZ2UgKz0gYFtsb2NhbGU6ICR7U3RyaW5nVXRpbC5zdHJpbmdpZnkoZXJyb3IuYWN0aW9uQ29udGV4dC5wYXJhbWV0ZXJzLmxvY2FsZSl9XWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGFyYW1zTWVzc2FnZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZXMgY2F1c2Ugb2YgYW4gZXJyb3IgYXMgc3RyaW5nLlxuICAgICAqIEBwYXJhbSBlcnJvciBFcnJvci5cbiAgICAgKiBAcGFyYW0gb3B0cyBPcHRpb25zIGZvciBoaWRpbmcgcGFydHMgb2YgZXJyb3I6XG4gICAgICogLSBjYXVzZU9uRXJyb3JPbmx5IFByaW50cyBvbmx5IGlmIGNhdXNlIGlzIGluc3RhbmNlIG9mIGVycm9yLlxuICAgICAqIC0gY2F1c2VBc0pzb24gUHJpbnQgZXJyb3IgY2F1c2UgYXMgYSBKU09OIChieSBkZWZhdWx0LCBpZiBlcnJvciBvbmx5IG1lc3NhZ2UgYW5kIG5hbWUgd2lsbCBiZSBwcmludGVkKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGVycm9yQ2F1c2VUb1N0cmluZyhlcnJvcjogRXJyb3IsIG9wdHM/OiBFcnJvckNhdXNlVG9TdHJpbmdPcHRpb25zKTogc3RyaW5nIHtcbiAgICAgICAgLy8gaWYgYWxyZWFkeSBsb2dnZWQgYXMgaHR0cCBlcnJvciwgY2hlY2sgdGhhdCBjYXVzZSBpcyBub3QgYWxzbyBodHRwIGVycm9yIChjYXVzZSBpdCBpcyB1c3VhbGx5IGR1cGxpY2F0ZWQpXG4gICAgICAgIGlmIChlcnJvci5jYXVzZSAmJiAoIW9wdHM/LmNhdXNlT25FcnJvck9ubHkgfHwgZXJyb3IuY2F1c2UgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0cmluZ2lmeSA9IG9wdHM/LmNhdXNlQXNKc29uIHx8ICEoZXJyb3IuY2F1c2UgaW5zdGFuY2VvZiBFcnJvcik7XG4gICAgICAgICAgICBpZiAoIW9wdHM/LmNhdXNlT25FcnJvck9ubHkgfHwgZXJyb3IuY2F1c2UgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICdDYXVzZWQgYnk6ICcgK1xuICAgICAgICAgICAgICAgICAgICAoc3RyaW5naWZ5ID8gU3RyaW5nVXRpbC5zdHJpbmdpZnkoZXJyb3IuY2F1c2UpIDogYCR7KGVycm9yLmNhdXNlIGFzIEVycm9yKS5tZXNzYWdlfSR7KGVycm9yLmNhdXNlIGFzIEVycm9yKS5uYW1lID8gYCAoJHsoZXJyb3IuY2F1c2UgYXMgRXJyb3IpLm5hbWV9KWAgOiAnJ31gKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgRXJyb3JUb1N0cmluZ09wdGlvbnMgPSBNbmdFcnJvclRvU3RyaW5nT3B0aW9ucztcblxuZXhwb3J0IHR5cGUgTW5nRXJyb3JUb1N0cmluZ09wdGlvbnMgPSBFcnJvclRvU3RyaW5nT3B0aW9uc0Jhc2UgJlxuICAgIEh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmdPcHRpb25zICZcbiAgICBNbmdBY3Rpb25FcnJvckNvbnRleHRUb1N0cmluZ09wdGlvbnMgJlxuICAgIEVycm9yQ2F1c2VUb1N0cmluZ09wdGlvbnMgJiB7XG4gICAgICAgIGhpZGVEZXRhaWxzPzogYm9vbGVhbjtcbiAgICAgICAgaGlkZUxvY2F0aW9uPzogYm9vbGVhbjtcbiAgICB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yVG9TdHJpbmdPcHRpb25zQmFzZSB7XG4gICAgaGlkZU5hbWU/OiBib29sZWFuO1xuICAgIGhpZGVTdGFjaz86IGJvb2xlYW47XG4gICAgaGlkZUNhdXNlPzogYm9vbGVhbjtcbiAgICBoaWRlSHR0cD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEVycm9yUmVzcG9uc2VUb1N0cmluZ09wdGlvbnMge1xuICAgIGhpZGVNZXNzYWdlPzogYm9vbGVhbjtcbiAgICBoaWRlSGVhZGVycz86IGJvb2xlYW47XG4gICAgaGlkZUJvZHk/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1uZ0FjdGlvbkVycm9yQ29udGV4dFRvU3RyaW5nT3B0aW9ucyB7XG4gICAgaGlkZUl0ZW1zPzogYm9vbGVhbjtcbiAgICBoaWRlQWN0aW9uRGF0YT86IGJvb2xlYW47XG4gICAgaGlkZVF1ZXJ5UGFyYW1zPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFcnJvckNhdXNlVG9TdHJpbmdPcHRpb25zIHtcbiAgICBjYXVzZU9uRXJyb3JPbmx5PzogYm9vbGVhbjtcbiAgICBjYXVzZUFzSnNvbj86IGJvb2xlYW47XG59XG4iXX0=
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvZXJyb3IudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxPQUFPLEVBQUMsYUFBYSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQXVCLFlBQVksRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUMzSCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE1BQU0sT0FBTyxTQUFTO0lBQ2xCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLGtCQUFrQixDQUFDLEtBQVUsRUFBRSxJQUFhLEVBQUUsT0FBYTtRQUNyRSxNQUFNLElBQUksR0FBd0I7WUFDOUIsSUFBSTtZQUNKLE9BQU87WUFDUCxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJO1NBQ25DLENBQUM7UUFFRixJQUFJLEtBQUssWUFBWSxpQkFBaUIsRUFBRTtZQUNwQyxPQUFPLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUkscUJBQXFCLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2hGO2FBQU07WUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixPQUFPLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSx5QkFBeUIsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNqRjtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsbUJBQW1CLENBQUMsS0FBVTtRQUN4QyxPQUFPLEtBQUssWUFBWSxpQkFBaUIsSUFBSSxLQUFLLFlBQVksWUFBWSxJQUFJLENBQUMsS0FBSyxZQUFZLGNBQWMsSUFBSyxLQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNKLENBQUM7SUFFRDs7O09B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QUFDLENBQUMsQ0FBQyxLQUFNLEtBQUssQ0FBQyxLQUFlLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQ2pLLENBQUM7YUFDTDtTQUNKO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBFcnJvclJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7QU1uZ0Vycm9yQmFzZSwgTG9nTGV2ZWxFbnVtLCBNbmdBY3Rpb25FcnJvciwgTW5nRXJyb3JCYXNlT3B0aW9ucywgTW5nSHR0cEVycm9yLCBNbmdJbnRlcm5hbEVycm9yfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtTdHJpbmdVdGlsfSBmcm9tICcuL3N0cmluZy51dGlsJztcblxuZXhwb3J0IGNsYXNzIEVycm9yVXRpbCB7XG4gICAgLyoqXG4gICAgICogQ29udmVydHMgUnhKUyBzdWJzY3JpcHRpb24gZXJyb3IgdG8gTW5nRXJyb3IuXG4gICAgICogQHBhcmFtIGVycm9yIEVycm9yLlxuICAgICAqIEBwYXJhbSBuYW1lIE9wdGlvbmFsIG5hbWUgdG8gd3JpdGUgaW4gbW5nRXJyb3IuXG4gICAgICogQHBhcmFtIGRldGFpbHMgT3B0aW9uYWwgZGV0YWlscyBvZiBlcnJvci5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGZyb21TdWJzY3JpYmVFcnJvcihlcnJvcjogYW55LCBuYW1lPzogc3RyaW5nLCBkZXRhaWxzPzogYW55KTogQU1uZ0Vycm9yQmFzZSB7XG4gICAgICAgIGNvbnN0IG9wdHM6IE1uZ0Vycm9yQmFzZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgZGV0YWlscyxcbiAgICAgICAgICAgIGxvY2F0aW9uOiB3aW5kb3c/LmxvY2F0aW9uPy5ocmVmXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTW5nSHR0cEVycm9yKGVycm9yLm1lc3NhZ2UgPz8gJ0h0dHAgRXJyb3Igb2NjdXJyZWQnLCBlcnJvciwgb3B0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvcHRzLmNhdXNlID0gZXJyb3I7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE1uZ0ludGVybmFsRXJyb3IoZXJyb3IubWVzc2FnZSA/PyAnSW50ZXJuYWwgRXJyb3Igb2NjdXJyZWQnLCBvcHRzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBlcnJvciBpcyBIdHRwIGVycm9yIChBbmd1bGFyIG9yIE1uZykuXG4gICAgICogQHBhcmFtIGVycm9yXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBpc0h0dHBFcnJvclJlc3BvbnNlKGVycm9yOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UgfHwgZXJyb3IgaW5zdGFuY2VvZiBNbmdIdHRwRXJyb3IgfHwgKGVycm9yIGluc3RhbmNlb2YgTW5nQWN0aW9uRXJyb3IgJiYgKGVycm9yIGFzIE1uZ0FjdGlvbkVycm9yKS5odHRwRXJyb3IpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgSHR0cEVycm9yUmVzcG9uc2UgZnJvbSBlcnJvciAoQW5ndWxhciBvciBNbmcpLlxuICAgICAqIEBwYXJhbSBlcnJvciBFcnJvci5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEh0dHBFcnJvclJlc3BvbnNlKGVycm9yOiBhbnkpOiBIdHRwRXJyb3JSZXNwb25zZSB8IG51bGwge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgTW5nSHR0cEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZXJyb3IuaHR0cEVycm9yO1xuICAgICAgICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgTW5nQWN0aW9uRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlcnJvci5odHRwRXJyb3IgPz8gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBIdHRwRXJyb3JSZXNwb25zZSBzdGF0dXMgZnJvbSBlcnJvciAoQW5ndWxhciBvciBNbmcpLlxuICAgICAqIEBwYXJhbSBlcnJvciBFcnJvci5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEh0dHBFcnJvclJlc3BvbnNlU3RhdHVzKGVycm9yOiBhbnkpOiBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIEVycm9yVXRpbC5nZXRIdHRwRXJyb3JSZXNwb25zZShlcnJvcik/LnN0YXR1cyA/PyBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBlcnJvciBsb2cgbGV2ZWwuIEFsbCBpcyBlcnJvciwgZXhjZXB0IGlmIGVycm9yIGlzIGh0dHAgZXJyb3Igd2l0aCBzdGF0dXMgPj00MDAgYW5kIDw1MDAuXG4gICAgICogQHBhcmFtIGVycm9yIEVycm9yLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0RXJyb3JMb2dMZXZlbChlcnJvcjogYW55KTogTG9nTGV2ZWxFbnVtIHtcbiAgICAgICAgaWYgKEVycm9yVXRpbC5pc0h0dHBFcnJvclJlc3BvbnNlKGVycm9yKSkge1xuICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gRXJyb3JVdGlsLmdldEh0dHBFcnJvclJlc3BvbnNlU3RhdHVzKGVycm9yKTtcbiAgICAgICAgICAgIGlmIChzdGF0dXMgJiYgc3RhdHVzID49IDQwMCAmJiBzdGF0dXMgPCA1MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gTG9nTGV2ZWxFbnVtLldhcm5pbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIExvZ0xldmVsRW51bS5FcnJvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgZXJyb3IgbmFtZSAocHJvdG90eXBlIG5hbWUgb3IgdHlwZSBmcm9tIG1uZyBlcnJvciBpZiBuYW1lIGlzIG5vdCBwcm92aWRlZCkuXG4gICAgICogQHBhcmFtIGVycm9yIEVycm9yLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0RXJyb3JOYW1lKGVycm9yOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBBTW5nRXJyb3JCYXNlKSB7XG4gICAgICAgICAgICByZXR1cm4gZXJyb3IubmFtZSA/PyBlcnJvci50eXBlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yLm5hbWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZXMgaHR0cCBlcnJvciB0byBzdHJpbmcgd2l0aCBhbGwgaGVhZGVycyBhbmQgYm9keS5cbiAgICAgKiBAcGFyYW0gZXJyb3IgSHR0cCByZXNwb25zZSBlcnJvci5cbiAgICAgKiBAcGFyYW0gb3B0cyBPcHRpb25zIGZvciBoaWRpbmcgcGFydHMgb2YgZXJyb3I6XG4gICAgICogIC0gaGlkZU1lc3NhZ2UgSGlkZXMgbWVzc2FnZSBvZiBlcnJvciAobWVzc2FnZSBpbmNsdWRlIHVybCwgc3RhdHVzIGFuZCBzdGF0dXMgdGV4dCEpLlxuICAgICAqICAtIGhpZGVIZWFkZXJzIEhpZGVzIGhlYWRlcnMuXG4gICAgICogIC0gaGlkZUJvZHkgSGlkZXMgSlNPTiByZXByZXNlbnRhdGlvbiBvZiBib2R5LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaHR0cEVycm9yUmVzcG9uc2VUb1N0cmluZyhlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UsIG9wdHM/OiBIdHRwRXJyb3JSZXNwb25zZVRvU3RyaW5nT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgICAgIGxldCBzdHIgPSBvcHRzPy5oaWRlTWVzc2FnZSA/ICcnIDogYCR7ZXJyb3IubWVzc2FnZX1cXG5gOyAvLyBtZXNzYWdlIHNob3VsZCBhbHJlYWR5IGluY2x1ZGUgdXJsLCBzdGF0dXMsIGV0Yy5cbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlSGVhZGVycykge1xuICAgICAgICAgICAgc3RyICs9IGBIdHRwIFJlc3BvbnNlIEhlYWRlcnM6ICR7ZXJyb3IuaGVhZGVycy5rZXlzKCkucmVkdWNlKChhY2MsIGtleSkgPT4gYCR7YWNjfVske2tleX06ICR7ZXJyb3IuaGVhZGVycy5nZXQoa2V5KX1dYCwgJycpfWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlQm9keSkge1xuICAgICAgICAgICAgc3RyICs9IGBcXG5IdHRwIFJlc3BvbnNlIEJvZHk6ICR7U3RyaW5nVXRpbC5zdHJpbmdpZnkoZXJyb3IuZXJyb3IpfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFcnJvciB0byBzdHJpbmcuXG4gICAgICogQHBhcmFtIGVycm9yIEVycm9yLlxuICAgICAqIEBwYXJhbSBvcHRzIE9wdGlvbnMgZm9yIGhpZGluZyBwYXJ0cyBvZiBlcnJvcjpcbiAgICAgKiAtIGhpZGVNZXNzYWdlIEhpZGVzIG1lc3NhZ2Ugb2YgZXJyb3IuXG4gICAgICogLSBoaWRlTmFtZSBIaWRlcyBlcnJvciBuYW1lLlxuICAgICAqIC0gaGlkZUNhdXNlIEhpZGVzIGNhdXNlIG9mIGFuIGVycm9yIChpZiBwcmVzZW50LCBzZWUgQGxpbmsoZXJyb3JDYXVzZVRvU3RyaW5nKSBmb3Igb3RoZXIgb3B0aW9ucykuXG4gICAgICogLSBoaWRlU3RhY2sgSGlkZXMgc3RhY2sgb2YgYW4gZXJyb3IgKGlmIHByZXNlbnQpLlxuICAgICAqIC0gaGlkZURldGFpbHMgSGlkZXMgSlNPTiBkZXRhaWwncyByZXByZXNlbnRhdGlvbiBvZiBlcnJvciAoaWYgcHJlc2VudCkuXG4gICAgICogLSBoaWRlTG9jYXRpb24gSGlkZXMgbG9jYXRpb24gKFVSTCkgd2hlcmUgZXJyb3Igd2FzIHRocm93bi5cbiAgICAgKiAtIGhpZGVIdHRwIEhpZGVzIGh0dHAgZXJyb3IgcG9ydGlvbiBvZiBlcnJvciBpZiBodHRwIGVycm9yIHJlc3BvbnNlIChzZWUgQGxpbmsoaHR0cEVycm9yUmVzcG9uc2VUb1N0cmluZykgZm9yIG90aGVyIG9wdGlvbnMpLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZXJyb3JUb1N0cmluZyhlcnJvcjogRXJyb3IsIG9wdHM/OiBFcnJvclRvU3RyaW5nT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEFNbmdFcnJvckJhc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBFcnJvclV0aWwubW5nRXJyb3JUb1N0cmluZyhlcnJvciwgb3B0cyk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgcmV0dXJuIEVycm9yVXRpbC5odHRwRXJyb3JSZXNwb25zZVRvU3RyaW5nKGVycm9yLCBvcHRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN0ckJsb2Nrczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlTWVzc2FnZSkge1xuICAgICAgICAgICAgc3RyQmxvY2tzLnB1c2goZXJyb3IubWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycm9yLm5hbWUpIHtcbiAgICAgICAgICAgIHN0ckJsb2Nrcy5wdXNoKGBFcnJvciBuYW1lOiAke2Vycm9yLm5hbWV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlQ2F1c2UpIHtcbiAgICAgICAgICAgIHN0ckJsb2Nrcy5wdXNoKEVycm9yVXRpbC5lcnJvckNhdXNlVG9TdHJpbmcoZXJyb3IsIG9wdHMpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdHM/LmhpZGVTdGFjayAmJiBlcnJvci5zdGFjaykge1xuICAgICAgICAgICAgc3RyQmxvY2tzLnB1c2goYFN0YWNrIHRyYWNlOlxcbiR7ZXJyb3Iuc3RhY2t9YCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3RyQmxvY2tzLmZpbHRlcihzID0+IHMudHJpbSgpLmxlbmd0aCA+IDApLmpvaW4oJ1xcbicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1uZyBlcnJvciB0byBzdHJpbmcuXG4gICAgICogQHBhcmFtIGVycm9yIE1uZyBlcnJvci5cbiAgICAgKiBAcGFyYW0gb3B0cyBPcHRpb25zIGZvciBoaWRpbmcgcGFydHMgb2YgZXJyb3I6XG4gICAgICogLSBoaWRlTWVzc2FnZSBIaWRlcyBtZXNzYWdlIG9mIGVycm9yLlxuICAgICAqIC0gaGlkZU5hbWUgSGlkZXMgZXJyb3IgbmFtZS5cbiAgICAgKiAtIGhpZGVDYXVzZSBIaWRlcyBjYXVzZSBvZiBhbiBlcnJvciAoaWYgcHJlc2VudCwgc2VlIEBsaW5rKGVycm9yQ2F1c2VUb1N0cmluZykgZm9yIG90aGVyIG9wdGlvbnMpLlxuICAgICAqIC0gaGlkZVN0YWNrIEhpZGVzIHN0YWNrIG9mIGFuIGVycm9yIChpZiBwcmVzZW50KS5cbiAgICAgKiAtIGhpZGVEZXRhaWxzIEhpZGVzIEpTT04gZGV0YWlsJ3MgcmVwcmVzZW50YXRpb24gb2YgZXJyb3IgKGlmIHByZXNlbnQpLlxuICAgICAqIC0gaGlkZUxvY2F0aW9uIEhpZGVzIGxvY2F0aW9uIChVUkwpIHdoZXJlIGVycm9yIHdhcyB0aHJvd24uXG4gICAgICogLSBoaWRlSHR0cCBIaWRlcyBodHRwIGVycm9yIHBvcnRpb24gb2YgZXJyb3IgaWYgaHR0cCBlcnJvciByZXNwb25zZSAoc2VlIEBsaW5rKGh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmcpIGZvciBvdGhlciBvcHRpb25zKS5cbiAgICAgKiAtIGhpZGVJdGVtcyBIaWRlcyBhbGwgaXRlbSBpbmZvcm1hdGlvbiAoaHR0cCBib2R5LCBhY3Rpb24gY29udGV4dCBkYXRhKS5cbiAgICAgKiAtIGhpZGVBY3Rpb25EYXRhIFNlZSBAbGluayhtbmdBY3Rpb25FcnJvckNvbnRleHRUb1N0cmluZykgZm9yIGFkZGl0aW9uYWwgaW5mby5cbiAgICAgKiAtIGhpZGVRdWVyeVBhcmFtcyBTZWUgQGxpbmsobW5nQWN0aW9uRXJyb3JDb250ZXh0VG9TdHJpbmcpIGZvciBhZGRpdGlvbmFsIGluZm8uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtbmdFcnJvclRvU3RyaW5nKGVycm9yOiBBTW5nRXJyb3JCYXNlLCBvcHRzPzogTW5nRXJyb3JUb1N0cmluZ09wdGlvbnMpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBzdHJCbG9ja3M6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGlmICghb3B0cz8uaGlkZU1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHN0ckJsb2Nrcy5wdXNoKGAke2Vycm9yLm1lc3NhZ2V9JHtlcnJvci5tZXNzYWdlQ29kZSA/IGAgKGNvZGU6ICR7ZXJyb3IubWVzc2FnZUNvZGV9KWAgOiAnJ31gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdHM/LmhpZGVOYW1lKSB7XG4gICAgICAgICAgICBzdHJCbG9ja3MucHVzaChgRXJyb3IgbmFtZTogJHtlcnJvci5uYW1lID8/IGVycm9yLnR5cGV9ICR7ZXJyb3IubmFtZSA/IGAoJHtlcnJvci50eXBlfSlgIDogJyd9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlTG9jYXRpb24gJiYgZXJyb3IubG9jYXRpb24pIHtcbiAgICAgICAgICAgIHN0ckJsb2Nrcy5wdXNoKGBMb2NhdGlvbjogJHtlcnJvci5sb2NhdGlvbn1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBpc0h0dHAgPSBmYWxzZTtcbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlSHR0cCAmJiBlcnJvciBpbnN0YW5jZW9mIE1uZ0h0dHBFcnJvcikge1xuICAgICAgICAgICAgc3RyQmxvY2tzLnB1c2goXG4gICAgICAgICAgICAgICAgRXJyb3JVdGlsLmh0dHBFcnJvclJlc3BvbnNlVG9TdHJpbmcoZXJyb3IuaHR0cEVycm9yLCB7XG4gICAgICAgICAgICAgICAgICAgIGhpZGVCb2R5OiBvcHRzPy5oaWRlSXRlbXMgfHwgb3B0cz8uaGlkZUJvZHksXG4gICAgICAgICAgICAgICAgICAgIGhpZGVIZWFkZXJzOiBvcHRzPy5oaWRlSGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgaGlkZU1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UuaW5kZXhPZihlcnJvci5odHRwRXJyb3IubWVzc2FnZSkgPj0gMFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaXNIdHRwID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBNbmdBY3Rpb25FcnJvcikge1xuICAgICAgICAgICAgaWYgKGVycm9yLmFjdGlvbkNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICBzdHJCbG9ja3MucHVzaChFcnJvclV0aWwubW5nQWN0aW9uRXJyb3JDb250ZXh0VG9TdHJpbmcoZXJyb3IsIG9wdHMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghb3B0cz8uaGlkZUh0dHAgJiYgZXJyb3IuaHR0cEVycm9yKSB7XG4gICAgICAgICAgICAgICAgc3RyQmxvY2tzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIEVycm9yVXRpbC5odHRwRXJyb3JSZXNwb25zZVRvU3RyaW5nKGVycm9yLmh0dHBFcnJvciwge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUJvZHk6IG9wdHM/LmhpZGVJdGVtcyB8fCBvcHRzPy5oaWRlQm9keSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpZGVIZWFkZXJzOiBvcHRzPy5oaWRlSGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpZGVNZXNzYWdlOiBlcnJvci5tZXNzYWdlLmluZGV4T2YoZXJyb3IuaHR0cEVycm9yLm1lc3NhZ2UpID49IDBcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlzSHR0cCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW9wdHM/LmhpZGVEZXRhaWxzICYmIGVycm9yLmRldGFpbHMpIHtcbiAgICAgICAgICAgIHN0ckJsb2Nrcy5wdXNoKGBEZXRhaWxzOiAke1N0cmluZ1V0aWwuc3RyaW5naWZ5KGVycm9yLmRldGFpbHMpfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghb3B0cz8uaGlkZUNhdXNlICYmICghaXNIdHRwIHx8ICEoZXJyb3IuY2F1c2UgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkpKSB7XG4gICAgICAgICAgICBzdHJCbG9ja3MucHVzaChFcnJvclV0aWwuZXJyb3JDYXVzZVRvU3RyaW5nKGVycm9yLCBvcHRzKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRzPy5oaWRlU3RhY2sgJiYgZXJyb3Iuc3RhY2spIHtcbiAgICAgICAgICAgIHN0ckJsb2Nrcy5wdXNoKGBTdGFjayB0cmFjZTpcXG4ke2Vycm9yLnN0YWNrfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN0ckJsb2Nrcy5maWx0ZXIocyA9PiBzLnRyaW0oKS5sZW5ndGggPiAwKS5qb2luKCdcXG4nKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZXMgTW5nIGFjdGlvbiBlcnJvciBpbmZvIGZyb20gY29udGV4dCBhcyBzdHJpbmcuXG4gICAgICogQHBhcmFtIGVycm9yIE1uZyBhY3Rpb24gZXJyb3IuXG4gICAgICogQHBhcmFtIG9wdHMgT3B0aW9ucyBmb3IgaGlkaW5nIHBhcnRzIG9mIGVycm9yOlxuICAgICAqIC0gaGlkZUl0ZW1zIEhpZGVzIGFsbCBpdGVtIHJlbGF0ZWQgaW5mb3JtYXRpb24gKGl0ZW0sIGZvcm0gaXRlbSwgc3VibWl0IGl0ZW0sIC4uLikuXG4gICAgICogLSBoaWRlQWN0aW9uRGF0YSBIaWRlcyBhY3Rpb24gZGF0YS5cbiAgICAgKiAtIGhpZGVRdWVyeVBhcmFtcyBIaWRlcyBxdWVyeSBwYXJhbXMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBtbmdBY3Rpb25FcnJvckNvbnRleHRUb1N0cmluZyhlcnJvcjogTW5nQWN0aW9uRXJyb3IsIG9wdHM/OiBNbmdBY3Rpb25FcnJvckNvbnRleHRUb1N0cmluZ09wdGlvbnMpOiBzdHJpbmcge1xuICAgICAgICBsZXQgcGFyYW1zTWVzc2FnZSA9ICcnO1xuICAgICAgICBpZiAoZXJyb3IuYWN0aW9uQ29udGV4dD8ucGFyYW1ldGVycykge1xuICAgICAgICAgICAgaWYgKGVycm9yLmFjdGlvbkNvbnRleHQ/LnBhcmFtZXRlcnMuaXRlbUlkKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zTWVzc2FnZSArPSBgW2l0ZW1JZDogJHtlcnJvci5hY3Rpb25Db250ZXh0LnBhcmFtZXRlcnMuaXRlbUlkfV1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFvcHRzPy5oaWRlSXRlbXMgJiYgZXJyb3IuYWN0aW9uQ29udGV4dD8ucGFyYW1ldGVycy5pdGVtKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zTWVzc2FnZSArPSBgW2l0ZW06ICR7U3RyaW5nVXRpbC5zdHJpbmdpZnkoZXJyb3IuYWN0aW9uQ29udGV4dC5wYXJhbWV0ZXJzLml0ZW0pfV1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFvcHRzPy5oaWRlQWN0aW9uRGF0YSAmJiBlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLmFjdGlvbkRhdGEpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXNNZXNzYWdlICs9IE9iamVjdC5lbnRyaWVzKGVycm9yLmFjdGlvbkNvbnRleHQ/LnBhcmFtZXRlcnMuYWN0aW9uRGF0YSkucmVkdWNlKFxuICAgICAgICAgICAgICAgICAgICAoYWNjLCBba2V5LCB2YWx1ZV0pID0+IGAke2FjY31bYWN0aW9uRGF0YSAke2tleX06ICR7U3RyaW5nVXRpbC5zdHJpbmdpZnkodmFsdWUpfV1gLFxuICAgICAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIW9wdHM/LmhpZGVRdWVyeVBhcmFtcyAmJiBlcnJvci5hY3Rpb25Db250ZXh0Py5wYXJhbWV0ZXJzLmRhdGFMaXN0UGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zTWVzc2FnZSArPSBgW3F1ZXJ5UGFyYW06ICR7U3RyaW5nVXRpbC5zdHJpbmdpZnkoZXJyb3IuYWN0aW9uQ29udGV4dC5wYXJhbWV0ZXJzLmRhdGFMaXN0UGFyYW1zKX1dYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghb3B0cz8uaGlkZUl0ZW1zICYmIGVycm9yLmFjdGlvbkNvbnRleHQ/LnBhcmFtZXRlcnMuZm9ybUl0ZW0pIHtcbiAgICAgICAgICAgICAgICBwYXJhbXNNZXNzYWdlICs9IGBbZm9ybUl0ZW06ICR7U3RyaW5nVXRpbC5zdHJpbmdpZnkoZXJyb3IuYWN0aW9uQ29udGV4dC5wYXJhbWV0ZXJzLmZvcm1JdGVtKX1dYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghb3B0cz8uaGlkZUl0ZW1zICYmIGVycm9yLmFjdGlvbkNvbnRleHQ/LnBhcmFtZXRlcnMuc3VibWl0UmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zTWVzc2FnZSArPSBgW2Zvcm1JdGVtOiAke1N0cmluZ1V0aWwuc3RyaW5naWZ5KGVycm9yLmFjdGlvbkNvbnRleHQucGFyYW1ldGVycy5zdWJtaXRSZXN1bHQpfV1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVycm9yLmFjdGlvbkNvbnRleHQ/LnBhcmFtZXRlcnMubG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zTWVzc2FnZSArPSBgW2xvY2FsZTogJHtTdHJpbmdVdGlsLnN0cmluZ2lmeShlcnJvci5hY3Rpb25Db250ZXh0LnBhcmFtZXRlcnMubG9jYWxlKX1dYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJhbXNNZXNzYWdlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdyaXRlcyBjYXVzZSBvZiBhbiBlcnJvciBhcyBzdHJpbmcuXG4gICAgICogQHBhcmFtIGVycm9yIEVycm9yLlxuICAgICAqIEBwYXJhbSBvcHRzIE9wdGlvbnMgZm9yIGhpZGluZyBwYXJ0cyBvZiBlcnJvcjpcbiAgICAgKiAtIGNhdXNlT25FcnJvck9ubHkgUHJpbnRzIG9ubHkgaWYgY2F1c2UgaXMgaW5zdGFuY2Ugb2YgZXJyb3IuXG4gICAgICogLSBjYXVzZUFzSnNvbiBQcmludCBlcnJvciBjYXVzZSBhcyBhIEpTT04gKGJ5IGRlZmF1bHQsIGlmIGVycm9yIG9ubHkgbWVzc2FnZSBhbmQgbmFtZSB3aWxsIGJlIHByaW50ZWQpLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZXJyb3JDYXVzZVRvU3RyaW5nKGVycm9yOiBFcnJvciwgb3B0cz86IEVycm9yQ2F1c2VUb1N0cmluZ09wdGlvbnMpOiBzdHJpbmcge1xuICAgICAgICAvLyBpZiBhbHJlYWR5IGxvZ2dlZCBhcyBodHRwIGVycm9yLCBjaGVjayB0aGF0IGNhdXNlIGlzIG5vdCBhbHNvIGh0dHAgZXJyb3IgKGNhdXNlIGl0IGlzIHVzdWFsbHkgZHVwbGljYXRlZClcbiAgICAgICAgaWYgKGVycm9yLmNhdXNlICYmICghb3B0cz8uY2F1c2VPbkVycm9yT25seSB8fCBlcnJvci5jYXVzZSBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgICAgICAgICAgY29uc3Qgc3RyaW5naWZ5ID0gb3B0cz8uY2F1c2VBc0pzb24gfHwgIShlcnJvci5jYXVzZSBpbnN0YW5jZW9mIEVycm9yKTtcbiAgICAgICAgICAgIGlmICghb3B0cz8uY2F1c2VPbkVycm9yT25seSB8fCBlcnJvci5jYXVzZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgJ0NhdXNlZCBieTogJyArXG4gICAgICAgICAgICAgICAgICAgIChzdHJpbmdpZnkgPyBTdHJpbmdVdGlsLnN0cmluZ2lmeShlcnJvci5jYXVzZSkgOiBgJHsoZXJyb3IuY2F1c2UgYXMgRXJyb3IpLm1lc3NhZ2V9JHsoZXJyb3IuY2F1c2UgYXMgRXJyb3IpLm5hbWUgPyBgICgkeyhlcnJvci5jYXVzZSBhcyBFcnJvcikubmFtZX0pYCA6ICcnfWApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBFcnJvclRvU3RyaW5nT3B0aW9ucyA9IE1uZ0Vycm9yVG9TdHJpbmdPcHRpb25zO1xuXG5leHBvcnQgdHlwZSBNbmdFcnJvclRvU3RyaW5nT3B0aW9ucyA9IEVycm9yVG9TdHJpbmdPcHRpb25zQmFzZSAmXG4gICAgSHR0cEVycm9yUmVzcG9uc2VUb1N0cmluZ09wdGlvbnMgJlxuICAgIE1uZ0FjdGlvbkVycm9yQ29udGV4dFRvU3RyaW5nT3B0aW9ucyAmXG4gICAgRXJyb3JDYXVzZVRvU3RyaW5nT3B0aW9ucyAmIHtcbiAgICAgICAgaGlkZURldGFpbHM/OiBib29sZWFuO1xuICAgICAgICBoaWRlTG9jYXRpb24/OiBib29sZWFuO1xuICAgIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JUb1N0cmluZ09wdGlvbnNCYXNlIHtcbiAgICBoaWRlTmFtZT86IGJvb2xlYW47XG4gICAgaGlkZVN0YWNrPzogYm9vbGVhbjtcbiAgICBoaWRlQ2F1c2U/OiBib29sZWFuO1xuICAgIGhpZGVIdHRwPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIdHRwRXJyb3JSZXNwb25zZVRvU3RyaW5nT3B0aW9ucyB7XG4gICAgaGlkZU1lc3NhZ2U/OiBib29sZWFuO1xuICAgIGhpZGVIZWFkZXJzPzogYm9vbGVhbjtcbiAgICBoaWRlQm9keT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW5nQWN0aW9uRXJyb3JDb250ZXh0VG9TdHJpbmdPcHRpb25zIHtcbiAgICBoaWRlSXRlbXM/OiBib29sZWFuO1xuICAgIGhpZGVBY3Rpb25EYXRhPzogYm9vbGVhbjtcbiAgICBoaWRlUXVlcnlQYXJhbXM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yQ2F1c2VUb1N0cmluZ09wdGlvbnMge1xuICAgIGNhdXNlT25FcnJvck9ubHk/OiBib29sZWFuO1xuICAgIGNhdXNlQXNKc29uPzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -18,4 +18,4 @@ export class ExportUtils {
18
18
  ].join('\r\n');
19
19
  }
20
20
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL2V4cG9ydC51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFdkMsTUFBTSxPQUFPLFdBQVc7SUFDYixNQUFNLENBQUMsb0JBQW9CLENBQUMsUUFBZSxFQUFFLFNBQWlCLEVBQUUsVUFBd0MsRUFBRSxTQUEyQjtRQUN4SSxNQUFNLGdCQUFnQixHQUFHLENBQUMsR0FBUSxFQUFFLEtBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sVUFBVSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7UUFDdkMsT0FBTztZQUNILFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsY0FBYyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDakksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FDekIsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPO2lCQUNuQixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ1YsSUFBSSxPQUFPLE1BQU0sQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFO29CQUNyQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztpQkFDM0c7cUJBQU07b0JBQ0gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztpQkFDakU7WUFDTCxDQUFDLENBQUM7aUJBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUN2QjtTQUNKLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25CLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7VGFibGV2aWV3RGVzY3JpcHRvckluc3R9IGZyb20gJy4uL2Rlc2NyaXB0b3JzL3RhYmxldmlldyc7XG5pbXBvcnQge01uZ0dldHRlclBpcGV9IGZyb20gJy4uL3BpcGVzJztcblxuZXhwb3J0IGNsYXNzIEV4cG9ydFV0aWxzIHtcbiAgICBwdWJsaWMgc3RhdGljIHByZXBhcmVEYXRhRm9yRXhwb3J0KHBhZ2VEYXRhOiBhbnlbXSwgZGVsaW1pdGVyOiBzdHJpbmcsIGRlc2NyaXB0b3I6IFRhYmxldmlld0Rlc2NyaXB0b3JJbnN0PGFueT4sIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJlcGxhY2VOdWxsVmFsdWUgPSAoa2V5OiBhbnksIHZhbHVlOiBhbnkpID0+ICh2YWx1ZSA9PT0gbnVsbCA/ICcnIDogdmFsdWUpO1xuICAgICAgICBjb25zdCBnZXR0ZXJQaXBlID0gbmV3IE1uZ0dldHRlclBpcGUoKTtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIGRlc2NyaXB0b3IudGFibGUuY29sdW1ucy5tYXAoY29sID0+IHRyYW5zbGF0ZS5pbnN0YW50KGRlc2NyaXB0b3IubW9kZWwudHlwZU5hbWUgKyAnLnByb3BlcnRpZXMuJyArIGNvbC5wcm9wZXJ0eSkpLmpvaW4oZGVsaW1pdGVyKSxcbiAgICAgICAgICAgIC4uLnBhZ2VEYXRhLm1hcCgocm93OiBhbnkpID0+XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRvci50YWJsZS5jb2x1bW5zXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoY29sdW1uID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY29sdW1uLmdldHRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShnZXR0ZXJQaXBlLnRyYW5zZm9ybShyb3dbY29sdW1uLnByb3BlcnR5XSwgY29sdW1uLmdldHRlciwgcm93KSwgcmVwbGFjZU51bGxWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShyb3dbY29sdW1uLnByb3BlcnR5XSwgcmVwbGFjZU51bGxWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKGRlbGltaXRlcilcbiAgICAgICAgICAgIClcbiAgICAgICAgXS5qb2luKCdcXHJcXG4nKTtcbiAgICB9XG59XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL2V4cG9ydC51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFdkMsTUFBTSxPQUFPLFdBQVc7SUFDYixNQUFNLENBQUMsb0JBQW9CLENBQUMsUUFBZSxFQUFFLFNBQWlCLEVBQUUsVUFBa0QsRUFBRSxTQUEyQjtRQUNsSixNQUFNLGdCQUFnQixHQUFHLENBQUMsR0FBUSxFQUFFLEtBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sVUFBVSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7UUFDdkMsT0FBTztZQUNILFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsY0FBYyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDakksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FDekIsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPO2lCQUNuQixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ1YsSUFBSSxPQUFPLE1BQU0sQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFO29CQUNyQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztpQkFDM0c7cUJBQU07b0JBQ0gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztpQkFDakU7WUFDTCxDQUFDLENBQUM7aUJBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUN2QjtTQUNKLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25CLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7VGFibGV2aWV3RGVzY3JpcHRvckluc3R9IGZyb20gJy4uL2Rlc2NyaXB0b3JzL3RhYmxldmlldyc7XG5pbXBvcnQge01uZ0dldHRlclBpcGV9IGZyb20gJy4uL3BpcGVzJztcblxuZXhwb3J0IGNsYXNzIEV4cG9ydFV0aWxzIHtcbiAgICBwdWJsaWMgc3RhdGljIHByZXBhcmVEYXRhRm9yRXhwb3J0KHBhZ2VEYXRhOiBhbnlbXSwgZGVsaW1pdGVyOiBzdHJpbmcsIGRlc2NyaXB0b3I6IFRhYmxldmlld0Rlc2NyaXB0b3JJbnN0PGFueSwgYW55LCBhbnk+LCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCByZXBsYWNlTnVsbFZhbHVlID0gKGtleTogYW55LCB2YWx1ZTogYW55KSA9PiAodmFsdWUgPT09IG51bGwgPyAnJyA6IHZhbHVlKTtcbiAgICAgICAgY29uc3QgZ2V0dGVyUGlwZSA9IG5ldyBNbmdHZXR0ZXJQaXBlKCk7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBkZXNjcmlwdG9yLnRhYmxlLmNvbHVtbnMubWFwKGNvbCA9PiB0cmFuc2xhdGUuaW5zdGFudChkZXNjcmlwdG9yLm1vZGVsLnR5cGVOYW1lICsgJy5wcm9wZXJ0aWVzLicgKyBjb2wucHJvcGVydHkpKS5qb2luKGRlbGltaXRlciksXG4gICAgICAgICAgICAuLi5wYWdlRGF0YS5tYXAoKHJvdzogYW55KSA9PlxuICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IudGFibGUuY29sdW1uc1xuICAgICAgICAgICAgICAgICAgICAubWFwKGNvbHVtbiA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbHVtbi5nZXR0ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZ2V0dGVyUGlwZS50cmFuc2Zvcm0ocm93W2NvbHVtbi5wcm9wZXJ0eV0sIGNvbHVtbi5nZXR0ZXIsIHJvdyksIHJlcGxhY2VOdWxsVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocm93W2NvbHVtbi5wcm9wZXJ0eV0sIHJlcGxhY2VOdWxsVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAuam9pbihkZWxpbWl0ZXIpXG4gICAgICAgICAgICApXG4gICAgICAgIF0uam9pbignXFxyXFxuJyk7XG4gICAgfVxufVxuIl19
@@ -1,4 +1,4 @@
1
- export * from './action-data-provider.util';
1
+ export * from './data-list-params.util';
2
2
  export * from './date.util';
3
3
  export * from './editor-formly.util';
4
4
  export * from './enum.util';
@@ -11,4 +11,4 @@ export * from './decorator-metadata.util';
11
11
  export * from './export.util';
12
12
  export * from './file.util';
13
13
  export * from './error.util';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjdGlvbi1kYXRhLXByb3ZpZGVyLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9lZGl0b3ItZm9ybWx5LnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnVtLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9pMThuLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vbm90aWZpY2F0aW9uLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9vYmplY3QudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL3N0cmluZy51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9yLW1ldGFkYXRhLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9leHBvcnQudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGUudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2Vycm9yLnV0aWwnO1xuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGEtbGlzdC1wYXJhbXMudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGUudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2VkaXRvci1mb3JtbHkudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2VudW0udXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2kxOG4udXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9ub3RpZmljYXRpb24udXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL29iamVjdC51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vc3RyaW5nLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3ItbWV0YWRhdGEudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL2V4cG9ydC51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZS51dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3IudXRpbCc7XG4iXX0=
@@ -10,7 +10,6 @@ export class RouteUtil {
10
10
  return path;
11
11
  }
12
12
  else if (path[0].startsWith('../')) {
13
- // TODO: process multi upper folder
14
13
  throw new MngInternalError('Not implemented', { name: 'RouteUtilsError' });
15
14
  }
16
15
  else {
@@ -58,4 +57,4 @@ export class RouteUtil {
58
57
  });
59
58
  }
60
59
  }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvcm91dGUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQWMsTUFBTSxXQUFXLENBQUM7QUFFeEQsTUFBTSxPQUFPLFNBQVM7SUFDWCxNQUFNLENBQUMsdUJBQXVCLENBQUMsSUFBbUI7UUFDckQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLFFBQVEsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLE9BQU8sWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sTUFBTSxDQUFDLG9CQUFvQixDQUFDLFFBQXVCLEVBQUUsSUFBbUI7UUFDM0UsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNqQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3pCLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7aUJBQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNsQyxtQ0FBbUM7Z0JBQ25DLE1BQU0sSUFBSSxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxFQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBQyxDQUFDLENBQUM7YUFDNUU7aUJBQU07Z0JBQ0gsT0FBTyxTQUFTLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDcEU7U0FDSjthQUFNO1lBQ0gsT0FBTyxRQUFRLENBQUM7U0FDbkI7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLHNCQUFzQixDQUFDLElBQTRCLEVBQUUsR0FBMkI7UUFDMUYsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNoRCxHQUFHLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxQjthQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZFLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2hDO1FBRUQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTFGLElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDcEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUU7b0JBQ3hCLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRTt3QkFDckMsT0FBTyxLQUFLLENBQUM7cUJBQ2hCO2lCQUNKO3FCQUFNO29CQUNILE1BQU07aUJBQ1Q7YUFDSjtZQUNELE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRU0sTUFBTSxDQUFDLGlDQUFpQyxDQUFDLFlBQXNCLEVBQUUsWUFBZ0M7UUFDcEcsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sYUFBYSxHQUFHLEVBQUMsR0FBRyxDQUFDLEVBQUMsQ0FBQztZQUM3QixJQUFJLGFBQWEsQ0FBQyxVQUFVLEVBQUU7Z0JBQzFCLGFBQWEsQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLG9CQUFvQixDQUNyRCxZQUFZLENBQUMsVUFBVSxFQUN2QixPQUFPLGFBQWEsQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FDdkcsQ0FBQzthQUNMO1lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDcEMsYUFBYSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsaUNBQWlDLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNuRztZQUNELE9BQU8sYUFBYSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNZW51SXRlbX0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG5pbXBvcnQge01uZ0ludGVybmFsRXJyb3IsIE1uZ01lbnVJdGVtfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgY2xhc3MgUm91dGVVdGlsIHtcbiAgICBwdWJsaWMgc3RhdGljIHJlbW92ZUVtcHR5UGF0aFNlZ21lbnRzKHBhdGg6IEFycmF5PHN0cmluZz4pIHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRQYXRoID0gcGF0aC5maWx0ZXIocHMgPT4gdHlwZW9mIHBzID09PSAnc3RyaW5nJyAmJiBwcy5sZW5ndGggPiAwKTtcbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkUGF0aC5sZW5ndGggPiAwID8gZmlsdGVyZWRQYXRoIDogWycnXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFwcGVuZFBhdGhUb0Jhc2VQYXRoKGJhc2VQYXRoOiBBcnJheTxzdHJpbmc+LCBwYXRoOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgICAgIGlmIChwYXRoLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGlmIChwYXRoWzBdLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXRoO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwYXRoWzBdLnN0YXJ0c1dpdGgoJy4uLycpKSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogcHJvY2VzcyBtdWx0aSB1cHBlciBmb2xkZXJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTW5nSW50ZXJuYWxFcnJvcignTm90IGltcGxlbWVudGVkJywge25hbWU6ICdSb3V0ZVV0aWxzRXJyb3InfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBSb3V0ZVV0aWwucmVtb3ZlRW1wdHlQYXRoU2VnbWVudHMoWy4uLmJhc2VQYXRoLCAuLi5wYXRoXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYmFzZVBhdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGRvZXNVcmxNYXRjaFJvdXRlckxpbmsobGluazogQXJyYXk8c3RyaW5nPiB8IHN0cmluZywgdXJsOiBBcnJheTxzdHJpbmc+IHwgc3RyaW5nKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdXJsID09PSAnc3RyaW5nJyAmJiB1cmwuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICB1cmwgPSB1cmwuc3Vic3RyaW5nKDEpO1xuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodXJsKSAmJiB1cmwubGVuZ3RoID4gMCAmJiB1cmxbMF0uc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICB1cmxbMF0gPSB1cmxbMF0uc3Vic3RyaW5nKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgcm91dGVTZWdtZW50cyA9IEFycmF5LmlzQXJyYXkobGluaykgPyBsaW5rIDogbGluay5zcGxpdCgnLycpO1xuICAgICAgICBjb25zdCB1cmxTZWdtZW50cyA9IEFycmF5LmlzQXJyYXkodXJsKSA/IHVybCA6IHVybC5zcGxpdCgnIycpWzBdLnNwbGl0KCc/JylbMF0uc3BsaXQoJy8nKTtcblxuICAgICAgICBpZiAocm91dGVTZWdtZW50cy5sZW5ndGggPiAwICYmIHVybFNlZ21lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcm91dGVTZWdtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChpIDwgdXJsU2VnbWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyb3V0ZVNlZ21lbnRzW2ldICE9PSB1cmxTZWdtZW50c1tpXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYWRqdXN0TWVudUxhenlDaGlsZHJlblJvdXRlckxpbmtzKHJvb3RNZW51SXRlbTogTWVudUl0ZW0sIGxhenlDaGlsZHJlbjogQXJyYXk8TW5nTWVudUl0ZW0+KSB7XG4gICAgICAgIHJldHVybiBsYXp5Q2hpbGRyZW4ubWFwKGkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRNZW51SXRlbSA9IHsuLi5pfTtcbiAgICAgICAgICAgIGlmIChjaGlsZE1lbnVJdGVtLnJvdXRlckxpbmspIHtcbiAgICAgICAgICAgICAgICBjaGlsZE1lbnVJdGVtLnJvdXRlckxpbmsgPSBSb3V0ZVV0aWwuYXBwZW5kUGF0aFRvQmFzZVBhdGgoXG4gICAgICAgICAgICAgICAgICAgIHJvb3RNZW51SXRlbS5yb3V0ZXJMaW5rLFxuICAgICAgICAgICAgICAgICAgICB0eXBlb2YgY2hpbGRNZW51SXRlbS5yb3V0ZXJMaW5rID09PSAnc3RyaW5nJyA/IFtjaGlsZE1lbnVJdGVtLnJvdXRlckxpbmtdIDogY2hpbGRNZW51SXRlbS5yb3V0ZXJMaW5rXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkTWVudUl0ZW0uaXRlbXMpKSB7XG4gICAgICAgICAgICAgICAgY2hpbGRNZW51SXRlbS5pdGVtcyA9IHRoaXMuYWRqdXN0TWVudUxhenlDaGlsZHJlblJvdXRlckxpbmtzKHJvb3RNZW51SXRlbSwgY2hpbGRNZW51SXRlbS5pdGVtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY2hpbGRNZW51SXRlbTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdXRpbHMvcm91dGUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQWMsTUFBTSxXQUFXLENBQUM7QUFFeEQsTUFBTSxPQUFPLFNBQVM7SUFDWCxNQUFNLENBQUMsdUJBQXVCLENBQUMsSUFBbUI7UUFDckQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLFFBQVEsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLE9BQU8sWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sTUFBTSxDQUFDLG9CQUFvQixDQUFDLFFBQXVCLEVBQUUsSUFBbUI7UUFDM0UsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNqQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3pCLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7aUJBQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNsQyxNQUFNLElBQUksZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsRUFBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUMsQ0FBQyxDQUFDO2FBQzVFO2lCQUFNO2dCQUNILE9BQU8sU0FBUyxDQUFDLHVCQUF1QixDQUFDLENBQUMsR0FBRyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ3BFO1NBQ0o7YUFBTTtZQUNILE9BQU8sUUFBUSxDQUFDO1NBQ25CO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxJQUE0QixFQUFFLEdBQTJCO1FBQzFGLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEQsR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUI7YUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2RSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNoQztRQUVELE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRSxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUxRixJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3BELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUMzQyxJQUFJLENBQUMsR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFO29CQUN4QixJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQ3JDLE9BQU8sS0FBSyxDQUFDO3FCQUNoQjtpQkFDSjtxQkFBTTtvQkFDSCxNQUFNO2lCQUNUO2FBQ0o7WUFDRCxPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxZQUFzQixFQUFFLFlBQWdDO1FBQ3BHLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4QixNQUFNLGFBQWEsR0FBRyxFQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUM7WUFDN0IsSUFBSSxhQUFhLENBQUMsVUFBVSxFQUFFO2dCQUMxQixhQUFhLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxvQkFBb0IsQ0FDckQsWUFBWSxDQUFDLFVBQVUsRUFDdkIsT0FBTyxhQUFhLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQ3ZHLENBQUM7YUFDTDtZQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3BDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDbkc7WUFDRCxPQUFPLGFBQWEsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TWVudUl0ZW19IGZyb20gJ3ByaW1lbmcvYXBpJztcblxuaW1wb3J0IHtNbmdJbnRlcm5hbEVycm9yLCBNbmdNZW51SXRlbX0gZnJvbSAnLi4vbW9kZWxzJztcblxuZXhwb3J0IGNsYXNzIFJvdXRlVXRpbCB7XG4gICAgcHVibGljIHN0YXRpYyByZW1vdmVFbXB0eVBhdGhTZWdtZW50cyhwYXRoOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkUGF0aCA9IHBhdGguZmlsdGVyKHBzID0+IHR5cGVvZiBwcyA9PT0gJ3N0cmluZycgJiYgcHMubGVuZ3RoID4gMCk7XG4gICAgICAgIHJldHVybiBmaWx0ZXJlZFBhdGgubGVuZ3RoID4gMCA/IGZpbHRlcmVkUGF0aCA6IFsnJ107XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBhcHBlbmRQYXRoVG9CYXNlUGF0aChiYXNlUGF0aDogQXJyYXk8c3RyaW5nPiwgcGF0aDogQXJyYXk8c3RyaW5nPikge1xuICAgICAgICBpZiAocGF0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAocGF0aFswXS5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGF0aDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocGF0aFswXS5zdGFydHNXaXRoKCcuLi8nKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBNbmdJbnRlcm5hbEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnLCB7bmFtZTogJ1JvdXRlVXRpbHNFcnJvcid9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFJvdXRlVXRpbC5yZW1vdmVFbXB0eVBhdGhTZWdtZW50cyhbLi4uYmFzZVBhdGgsIC4uLnBhdGhdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBiYXNlUGF0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZG9lc1VybE1hdGNoUm91dGVyTGluayhsaW5rOiBBcnJheTxzdHJpbmc+IHwgc3RyaW5nLCB1cmw6IEFycmF5PHN0cmluZz4gfCBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB1cmwgPT09ICdzdHJpbmcnICYmIHVybC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgIHVybCA9IHVybC5zdWJzdHJpbmcoMSk7XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh1cmwpICYmIHVybC5sZW5ndGggPiAwICYmIHVybFswXS5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgIHVybFswXSA9IHVybFswXS5zdWJzdHJpbmcoMSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByb3V0ZVNlZ21lbnRzID0gQXJyYXkuaXNBcnJheShsaW5rKSA/IGxpbmsgOiBsaW5rLnNwbGl0KCcvJyk7XG4gICAgICAgIGNvbnN0IHVybFNlZ21lbnRzID0gQXJyYXkuaXNBcnJheSh1cmwpID8gdXJsIDogdXJsLnNwbGl0KCcjJylbMF0uc3BsaXQoJz8nKVswXS5zcGxpdCgnLycpO1xuXG4gICAgICAgIGlmIChyb3V0ZVNlZ21lbnRzLmxlbmd0aCA+IDAgJiYgdXJsU2VnbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3V0ZVNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGkgPCB1cmxTZWdtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJvdXRlU2VnbWVudHNbaV0gIT09IHVybFNlZ21lbnRzW2ldKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBhZGp1c3RNZW51TGF6eUNoaWxkcmVuUm91dGVyTGlua3Mocm9vdE1lbnVJdGVtOiBNZW51SXRlbSwgbGF6eUNoaWxkcmVuOiBBcnJheTxNbmdNZW51SXRlbT4pIHtcbiAgICAgICAgcmV0dXJuIGxhenlDaGlsZHJlbi5tYXAoaSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjaGlsZE1lbnVJdGVtID0gey4uLml9O1xuICAgICAgICAgICAgaWYgKGNoaWxkTWVudUl0ZW0ucm91dGVyTGluaykge1xuICAgICAgICAgICAgICAgIGNoaWxkTWVudUl0ZW0ucm91dGVyTGluayA9IFJvdXRlVXRpbC5hcHBlbmRQYXRoVG9CYXNlUGF0aChcbiAgICAgICAgICAgICAgICAgICAgcm9vdE1lbnVJdGVtLnJvdXRlckxpbmssXG4gICAgICAgICAgICAgICAgICAgIHR5cGVvZiBjaGlsZE1lbnVJdGVtLnJvdXRlckxpbmsgPT09ICdzdHJpbmcnID8gW2NoaWxkTWVudUl0ZW0ucm91dGVyTGlua10gOiBjaGlsZE1lbnVJdGVtLnJvdXRlckxpbmtcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRNZW51SXRlbS5pdGVtcykpIHtcbiAgICAgICAgICAgICAgICBjaGlsZE1lbnVJdGVtLml0ZW1zID0gdGhpcy5hZGp1c3RNZW51TGF6eUNoaWxkcmVuUm91dGVyTGlua3Mocm9vdE1lbnVJdGVtLCBjaGlsZE1lbnVJdGVtLml0ZW1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjaGlsZE1lbnVJdGVtO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=