@smartbit4all/ng-client 5.0.20 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (690) hide show
  1. package/README.md +386 -386
  2. package/esm2022/lib/component-factory-service/component-factory-service.module.mjs +17 -0
  3. package/esm2022/lib/component-factory-service/component-factory-service.service.mjs +35 -0
  4. package/esm2022/lib/component-factory-service/projects.mjs +6 -0
  5. package/esm2022/lib/session/api/api/api.mjs +4 -0
  6. package/esm2022/lib/session/api/api/session.service.mjs +306 -0
  7. package/esm2022/lib/session/api/configuration.mjs +91 -0
  8. package/esm2022/lib/session/api/encoder.mjs +19 -0
  9. package/esm2022/lib/session/api/index.mjs +3 -0
  10. package/esm2022/lib/session/api/model/accountInfo.mjs +13 -0
  11. package/esm2022/lib/session/api/model/apiError.mjs +13 -0
  12. package/esm2022/lib/session/api/model/authenticationProviderData.mjs +13 -0
  13. package/esm2022/lib/session/api/model/getAuthenticationProvidersResponse.mjs +2 -0
  14. package/esm2022/lib/session/api/model/models.mjs +9 -0
  15. package/esm2022/lib/session/api/model/refreshSessionRequest.mjs +13 -0
  16. package/esm2022/lib/session/api/model/session.mjs +2 -0
  17. package/esm2022/lib/session/api/model/sessionInfoData.mjs +2 -0
  18. package/esm2022/lib/session/api/model/userActivityLog.mjs +13 -0
  19. package/esm2022/lib/session/api/param.mjs +2 -0
  20. package/esm2022/lib/session/api/variables.mjs +9 -0
  21. package/esm2022/lib/session/cookie-service/smart-cookie.service.mjs +225 -0
  22. package/esm2022/lib/session/projects.mjs +13 -0
  23. package/esm2022/lib/session/smart-backend-bootstrap.config.mjs +2 -0
  24. package/esm2022/lib/session/smart-backend-bootstrap.service.mjs +214 -0
  25. package/esm2022/lib/session/smart-default-error-ui.service.mjs +134 -0
  26. package/esm2022/lib/session/smart-error-catching.interceptor.mjs +109 -0
  27. package/esm2022/lib/session/smart-header-maintainer.interceptor.mjs +44 -0
  28. package/esm2022/lib/session/smart-session-handler.service.mjs +7 -0
  29. package/esm2022/lib/session/smart-session.module.mjs +58 -0
  30. package/esm2022/lib/session/smart-session.service.mjs +284 -0
  31. package/esm2022/lib/session/smart-timer/smart-session-timer.component.mjs +39 -0
  32. package/esm2022/lib/session/smart-timer/smart-session-timer.service.mjs +63 -0
  33. package/esm2022/lib/shared/projects.mjs +4 -0
  34. package/esm2022/lib/shared/shared.module.mjs +19 -0
  35. package/esm2022/lib/shared/smart-tooltip.directive.mjs +58 -0
  36. package/esm2022/lib/shared/smarttable.date-pipe.mjs +43 -0
  37. package/esm2022/lib/smart-client/projects.mjs +4 -0
  38. package/esm2022/lib/smart-client/smart-component-api-client.mjs +928 -0
  39. package/esm2022/lib/smart-client/smart-file-uploader/smart-file-uploader.component.mjs +79 -0
  40. package/esm2022/lib/smart-client/smart.component.mjs +88 -0
  41. package/esm2022/lib/smart-client/smart.service.mjs +71 -0
  42. package/esm2022/lib/smart-component-layout/api/api/api.mjs +4 -0
  43. package/esm2022/lib/smart-component-layout/api/api/default.service.mjs +133 -0
  44. package/esm2022/lib/smart-component-layout/api/api.module.mjs +40 -0
  45. package/esm2022/lib/smart-component-layout/api/configuration.mjs +91 -0
  46. package/esm2022/lib/smart-component-layout/api/encoder.mjs +19 -0
  47. package/esm2022/lib/smart-component-layout/api/index.mjs +7 -0
  48. package/esm2022/lib/smart-component-layout/api/model/componentType.mjs +18 -0
  49. package/esm2022/lib/smart-component-layout/api/model/componentWidgetType.mjs +22 -0
  50. package/esm2022/lib/smart-component-layout/api/model/layoutDefinitionDescriptor.mjs +2 -0
  51. package/esm2022/lib/smart-component-layout/api/model/layoutDirection.mjs +17 -0
  52. package/esm2022/lib/smart-component-layout/api/model/models.mjs +9 -0
  53. package/esm2022/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.mjs +2 -0
  54. package/esm2022/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.mjs +2 -0
  55. package/esm2022/lib/smart-component-layout/api/model/toolbarDirection.mjs +17 -0
  56. package/esm2022/lib/smart-component-layout/api/model/toolbarProperties.mjs +2 -0
  57. package/esm2022/lib/smart-component-layout/api/param.mjs +2 -0
  58. package/esm2022/lib/smart-component-layout/api/variables.mjs +9 -0
  59. package/esm2022/lib/smart-component-layout/projects.mjs +8 -0
  60. package/esm2022/lib/smart-component-layout/smart-component-layout-utility.mjs +169 -0
  61. package/esm2022/lib/smart-component-layout/smart-component-layout.component.mjs +433 -0
  62. package/esm2022/lib/smart-component-layout/smart-component-layout.module.mjs +57 -0
  63. package/esm2022/lib/smart-diagram/api/api/api.mjs +4 -0
  64. package/esm2022/lib/smart-diagram/api/api/diagramService.service.mjs +141 -0
  65. package/esm2022/lib/smart-diagram/api/api.module.mjs +40 -0
  66. package/esm2022/lib/smart-diagram/api/configuration.mjs +91 -0
  67. package/esm2022/lib/smart-diagram/api/encoder.mjs +19 -0
  68. package/esm2022/lib/smart-diagram/api/index.mjs +7 -0
  69. package/esm2022/lib/smart-diagram/api/model/diagramColor.mjs +13 -0
  70. package/esm2022/lib/smart-diagram/api/model/diagramDataContainer.mjs +2 -0
  71. package/esm2022/lib/smart-diagram/api/model/diagramDataItem.mjs +13 -0
  72. package/esm2022/lib/smart-diagram/api/model/diagramDataSet.mjs +2 -0
  73. package/esm2022/lib/smart-diagram/api/model/diagramDescriptor.mjs +2 -0
  74. package/esm2022/lib/smart-diagram/api/model/diagramModel.mjs +2 -0
  75. package/esm2022/lib/smart-diagram/api/model/diagramShape.mjs +2 -0
  76. package/esm2022/lib/smart-diagram/api/model/drawTime.mjs +18 -0
  77. package/esm2022/lib/smart-diagram/api/model/labelText.mjs +2 -0
  78. package/esm2022/lib/smart-diagram/api/model/models.mjs +10 -0
  79. package/esm2022/lib/smart-diagram/api/param.mjs +2 -0
  80. package/esm2022/lib/smart-diagram/api/variables.mjs +9 -0
  81. package/esm2022/lib/smart-diagram/component/default-smart-diagram-options.provider.mjs +312 -0
  82. package/esm2022/lib/smart-diagram/component/smart-diagram.component.mjs +359 -0
  83. package/esm2022/lib/smart-diagram/component/smart-diagram.module.mjs +40 -0
  84. package/esm2022/lib/smart-diagram/component/smart-diagram.util.mjs +10 -0
  85. package/esm2022/lib/smart-diagram/projects.mjs +5 -0
  86. package/esm2022/lib/smart-dialog/projects.mjs +8 -0
  87. package/esm2022/lib/smart-dialog/smartdialog.component.mjs +54 -0
  88. package/esm2022/lib/smart-dialog/smartdialog.model.mjs +16 -0
  89. package/esm2022/lib/smart-dialog/smartdialog.module.mjs +46 -0
  90. package/esm2022/lib/smart-dialog/smartdialog.service.mjs +86 -0
  91. package/esm2022/lib/smart-expandable-section/expandable-section.component.mjs +101 -0
  92. package/esm2022/lib/smart-expandable-section/expandable-section.model.mjs +12 -0
  93. package/esm2022/lib/smart-expandable-section/projects.mjs +8 -0
  94. package/esm2022/lib/smart-expandable-section/smart-expandable-section.module.mjs +57 -0
  95. package/esm2022/lib/smart-expandable-section/smart-expandable-section.service.mjs +14 -0
  96. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.mjs +17 -0
  97. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderField.mjs +2 -0
  98. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.mjs +8 -0
  99. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.mjs +2 -0
  100. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionData.mjs +2 -0
  101. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionDataType.mjs +20 -0
  102. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionField.mjs +2 -0
  103. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldList.mjs +2 -0
  104. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.mjs +28 -0
  105. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionList.mjs +2 -0
  106. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperandData.mjs +2 -0
  107. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperation.mjs +32 -0
  108. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOrderBy.mjs +18 -0
  109. package/esm2022/lib/smart-filter/api/filter/model/model.mjs +16 -0
  110. package/esm2022/lib/smart-filter/api/filter/model/searchIndexObjectDefinitionData.mjs +2 -0
  111. package/esm2022/lib/smart-filter/api/filter/model/searchIndexPropertyDefinitionData.mjs +13 -0
  112. package/esm2022/lib/smart-filter/api/value/model/value.mjs +13 -0
  113. package/esm2022/lib/smart-filter/projects.mjs +9 -0
  114. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component.mjs +14 -0
  115. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.mjs +166 -0
  116. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/smart-filter-simple.component.mjs +45 -0
  117. package/esm2022/lib/smart-filter/smart-filter/smart-filter.component.mjs +36 -0
  118. package/esm2022/lib/smart-filter/smart-filter/smart-filter.service.mjs +31 -0
  119. package/esm2022/lib/smart-filter/smart-filter.model.mjs +13 -0
  120. package/esm2022/lib/smart-filter/smart-filter.module.mjs +33 -0
  121. package/esm2022/lib/smart-filter-editor/api/api/filter.service.mjs +198 -0
  122. package/esm2022/lib/smart-filter-editor/api/configuration.mjs +91 -0
  123. package/esm2022/lib/smart-filter-editor/api/encoder.mjs +19 -0
  124. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.mjs +17 -0
  125. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.mjs +13 -0
  126. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderField.mjs +2 -0
  127. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.mjs +8 -0
  128. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.mjs +2 -0
  129. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.mjs +7 -0
  130. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionData.mjs +2 -0
  131. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionDataType.mjs +20 -0
  132. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionField.mjs +2 -0
  133. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.mjs +2 -0
  134. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldList.mjs +2 -0
  135. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.mjs +28 -0
  136. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionList.mjs +2 -0
  137. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperandData.mjs +2 -0
  138. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperation.mjs +32 -0
  139. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOrderBy.mjs +19 -0
  140. package/esm2022/lib/smart-filter-editor/api/model/smartFilterType.mjs +17 -0
  141. package/esm2022/lib/smart-filter-editor/api/param.mjs +2 -0
  142. package/esm2022/lib/smart-filter-editor/api/variables.mjs +9 -0
  143. package/esm2022/lib/smart-filter-editor/filterExpressionBuilderApiActions.mjs +15 -0
  144. package/esm2022/lib/smart-filter-editor/project.mjs +8 -0
  145. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-item/smart-filter-expression-item.component.mjs +73 -0
  146. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-items/smart-filter-expression-items.component.mjs +40 -0
  147. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.mjs +294 -0
  148. package/esm2022/lib/smart-filter-editor/smart-filter-editor.model.mjs +2 -0
  149. package/esm2022/lib/smart-filter-editor/smart-filter-editor.module.mjs +69 -0
  150. package/esm2022/lib/smart-filter-editor/smart-filter-editor.service.mjs +63 -0
  151. package/esm2022/lib/smart-filter-editor/smart-filter-params/components/smart-filter-param/smart-filter-param.component.mjs +24 -0
  152. package/esm2022/lib/smart-filter-editor/smart-filter-params/smart-filter-params.component.mjs +57 -0
  153. package/esm2022/lib/smart-form/api/api/api.mjs +4 -0
  154. package/esm2022/lib/smart-form/api/api/default.service.mjs +133 -0
  155. package/esm2022/lib/smart-form/api/api.module.mjs +40 -0
  156. package/esm2022/lib/smart-form/api/configuration.mjs +91 -0
  157. package/esm2022/lib/smart-form/api/encoder.mjs +19 -0
  158. package/esm2022/lib/smart-form/api/index.mjs +7 -0
  159. package/esm2022/lib/smart-form/api/model/dateFieldProperties.mjs +13 -0
  160. package/esm2022/lib/smart-form/api/model/fileUploaderProperties.mjs +2 -0
  161. package/esm2022/lib/smart-form/api/model/imageProperties.mjs +2 -0
  162. package/esm2022/lib/smart-form/api/model/models.mjs +19 -0
  163. package/esm2022/lib/smart-form/api/model/multiFileUploaderProperties.mjs +2 -0
  164. package/esm2022/lib/smart-form/api/model/propertyMapping.mjs +13 -0
  165. package/esm2022/lib/smart-form/api/model/recordingUploaderProperties.mjs +7 -0
  166. package/esm2022/lib/smart-form/api/model/selectionDefinition.mjs +14 -0
  167. package/esm2022/lib/smart-form/api/model/smartFormInputMode.mjs +22 -0
  168. package/esm2022/lib/smart-form/api/model/smartFormWidgetDirection.mjs +17 -0
  169. package/esm2022/lib/smart-form/api/model/smartFormWidgetType.mjs +49 -0
  170. package/esm2022/lib/smart-form/api/model/smartLayoutDefinition.mjs +2 -0
  171. package/esm2022/lib/smart-form/api/model/smartMatrixModel.mjs +2 -0
  172. package/esm2022/lib/smart-form/api/model/smartWidgetDefinition.mjs +2 -0
  173. package/esm2022/lib/smart-form/api/model/smartWidgetHint.mjs +18 -0
  174. package/esm2022/lib/smart-form/api/model/sortDefinition.mjs +13 -0
  175. package/esm2022/lib/smart-form/api/model/textBoxProperties.mjs +13 -0
  176. package/esm2022/lib/smart-form/api/model/textFieldProperties.mjs +13 -0
  177. package/esm2022/lib/smart-form/api/model/valueChangeMode.mjs +21 -0
  178. package/esm2022/lib/smart-form/api/param.mjs +2 -0
  179. package/esm2022/lib/smart-form/api/variables.mjs +9 -0
  180. package/esm2022/lib/smart-form/highlightMacthingString-pipe.mjs +20 -0
  181. package/esm2022/lib/smart-form/projects.mjs +18 -0
  182. package/esm2022/lib/smart-form/services/smartform.layout-definition.service.mjs +753 -0
  183. package/esm2022/lib/smart-form/services/smartform.service.mjs +683 -0
  184. package/esm2022/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.mjs +15 -0
  185. package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.component.mjs +193 -0
  186. package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.model.mjs +2 -0
  187. package/esm2022/lib/smart-form/smartform.component.mjs +190 -0
  188. package/esm2022/lib/smart-form/smartform.form-model.mjs +2 -0
  189. package/esm2022/lib/smart-form/smartform.model.mjs +38 -0
  190. package/esm2022/lib/smart-form/widgets/components/smart-file-editor/smart-file-editor.component.mjs +179 -0
  191. package/esm2022/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.mjs +83 -0
  192. package/esm2022/lib/smart-form/widgets/components/smart-multi-file-editor/smart-multi-file-editor.component.mjs +170 -0
  193. package/esm2022/lib/smart-form/widgets/components/smart-voice-recorder/smart-voice-recorder.component.mjs +151 -0
  194. package/esm2022/lib/smart-form/widgets/directives/comparable-dropdown.directive.mjs +35 -0
  195. package/esm2022/lib/smart-form/widgets/directives/comparable-multiselect.directive.mjs +79 -0
  196. package/esm2022/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +1038 -0
  197. package/esm2022/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.mjs +78 -0
  198. package/esm2022/lib/smart-form/widgets/smartformwidget/trackCaps.directive.mjs +31 -0
  199. package/esm2022/lib/smart-generic-pages/acl-editing-view/acl-editing-view.component.mjs +98 -0
  200. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/aCL.mjs +2 -0
  201. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/aCLEntry.mjs +18 -0
  202. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/objectValidationSeverity.mjs +19 -0
  203. package/esm2022/lib/smart-generic-pages/api/platform/acl/model/subject.mjs +13 -0
  204. package/esm2022/lib/smart-generic-pages/api/platform/api-default/objectHistoryRangeData.mjs +2 -0
  205. package/esm2022/lib/smart-generic-pages/api/platform/searchpage/model/searchPageModel.mjs +2 -0
  206. package/esm2022/lib/smart-generic-pages/api/platform/subjectselector/model/subjectSelectorPageModel.mjs +13 -0
  207. package/esm2022/lib/smart-generic-pages/api/platform/validation/model/validationItem.mjs +2 -0
  208. package/esm2022/lib/smart-generic-pages/api/platform/validation/model/validationResultPageModel.mjs +2 -0
  209. package/esm2022/lib/smart-generic-pages/generic-page/generic-page.component.mjs +54 -0
  210. package/esm2022/lib/smart-generic-pages/invalid-smartlink/invalid-smartlink.component.mjs +40 -0
  211. package/esm2022/lib/smart-generic-pages/no-permission-page/no-permission-page.component.mjs +40 -0
  212. package/esm2022/lib/smart-generic-pages/projects.mjs +13 -0
  213. package/esm2022/lib/smart-generic-pages/search-page/search-page.component.mjs +80 -0
  214. package/esm2022/lib/smart-generic-pages/smart-generic-pages.module.mjs +116 -0
  215. package/esm2022/lib/smart-generic-pages/subject-selector/subject-selector.component.mjs +77 -0
  216. package/esm2022/lib/smart-generic-pages/validation-result-page/validation-result-page.component.mjs +93 -0
  217. package/esm2022/lib/smart-grid/api/grid-api/api/api.mjs +4 -0
  218. package/esm2022/lib/smart-grid/api/grid-api/api/grid.service.mjs +514 -0
  219. package/esm2022/lib/smart-grid/api/grid-api/api.module.mjs +40 -0
  220. package/esm2022/lib/smart-grid/api/grid-api/configuration.mjs +91 -0
  221. package/esm2022/lib/smart-grid/api/grid-api/encoder.mjs +19 -0
  222. package/esm2022/lib/smart-grid/api/grid-api/index.mjs +7 -0
  223. package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnContentType.mjs +17 -0
  224. package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnMeta.mjs +2 -0
  225. package/esm2022/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.mjs +20 -0
  226. package/esm2022/lib/smart-grid/api/grid-api/model/gridExportDescriptor.mjs +2 -0
  227. package/esm2022/lib/smart-grid/api/grid-api/model/gridModel.mjs +2 -0
  228. package/esm2022/lib/smart-grid/api/grid-api/model/gridPage.mjs +2 -0
  229. package/esm2022/lib/smart-grid/api/grid-api/model/gridRow.mjs +2 -0
  230. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionChange.mjs +13 -0
  231. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionMode.mjs +18 -0
  232. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionType.mjs +17 -0
  233. package/esm2022/lib/smart-grid/api/grid-api/model/gridServerModel.mjs +2 -0
  234. package/esm2022/lib/smart-grid/api/grid-api/model/gridUpdateData.mjs +2 -0
  235. package/esm2022/lib/smart-grid/api/grid-api/model/gridView.mjs +2 -0
  236. package/esm2022/lib/smart-grid/api/grid-api/model/gridViewDescriptor.mjs +8 -0
  237. package/esm2022/lib/smart-grid/api/grid-api/model/models.mjs +15 -0
  238. package/esm2022/lib/smart-grid/api/grid-api/param.mjs +2 -0
  239. package/esm2022/lib/smart-grid/api/grid-api/variables.mjs +9 -0
  240. package/esm2022/lib/smart-grid/components/expandable-grid/expandable-grid.component.mjs +20 -0
  241. package/esm2022/lib/smart-grid/components/generic-component/expanded-row-renderer.component.mjs +47 -0
  242. package/esm2022/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.mjs +72 -0
  243. package/esm2022/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.mjs +200 -0
  244. package/esm2022/lib/smart-grid/models/model.mjs +29 -0
  245. package/esm2022/lib/smart-grid/projects.mjs +9 -0
  246. package/esm2022/lib/smart-grid/smart-grid-toolbar-util.mjs +65 -0
  247. package/esm2022/lib/smart-grid/smart-grid.component.mjs +1035 -0
  248. package/esm2022/lib/smart-grid/smart-grid.module.mjs +103 -0
  249. package/esm2022/lib/smart-grid/smart-grid.service.mjs +92 -0
  250. package/esm2022/lib/smart-icon/projects.mjs +9 -0
  251. package/esm2022/lib/smart-icon/smart-icon/smart-icon.component.mjs +95 -0
  252. package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.component.mjs +40 -0
  253. package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.directive.mjs +37 -0
  254. package/esm2022/lib/smart-icon/smart-icon.module.mjs +26 -0
  255. package/esm2022/lib/smart-icon/smart-icon.service.mjs +93 -0
  256. package/esm2022/lib/smart-map/abstract-map.mjs +112 -0
  257. package/esm2022/lib/smart-map/api/api/api.mjs +4 -0
  258. package/esm2022/lib/smart-map/api/api/geoMap.service.mjs +312 -0
  259. package/esm2022/lib/smart-map/api/api.module.mjs +40 -0
  260. package/esm2022/lib/smart-map/api/configuration.mjs +91 -0
  261. package/esm2022/lib/smart-map/api/encoder.mjs +19 -0
  262. package/esm2022/lib/smart-map/api/index.mjs +7 -0
  263. package/esm2022/lib/smart-map/api/model/gPSPosition.mjs +13 -0
  264. package/esm2022/lib/smart-map/api/model/gPSRoute.mjs +2 -0
  265. package/esm2022/lib/smart-map/api/model/geoMapChange.mjs +2 -0
  266. package/esm2022/lib/smart-map/api/model/geoMapDataLoadingMode.mjs +17 -0
  267. package/esm2022/lib/smart-map/api/model/geoMapDataSourceDescriptor.mjs +2 -0
  268. package/esm2022/lib/smart-map/api/model/geoMapDataSourceType.mjs +19 -0
  269. package/esm2022/lib/smart-map/api/model/geoMapEditingSession.mjs +2 -0
  270. package/esm2022/lib/smart-map/api/model/geoMapInteraction.mjs +2 -0
  271. package/esm2022/lib/smart-map/api/model/geoMapItem.mjs +2 -0
  272. package/esm2022/lib/smart-map/api/model/geoMapItemKind.mjs +18 -0
  273. package/esm2022/lib/smart-map/api/model/geoMapLayer.mjs +2 -0
  274. package/esm2022/lib/smart-map/api/model/geoMapLayerChange.mjs +2 -0
  275. package/esm2022/lib/smart-map/api/model/geoMapLayerDescriptor.mjs +2 -0
  276. package/esm2022/lib/smart-map/api/model/geoMapModel.mjs +2 -0
  277. package/esm2022/lib/smart-map/api/model/geoMapOperationMode.mjs +17 -0
  278. package/esm2022/lib/smart-map/api/model/geoMapSelectionMode.mjs +18 -0
  279. package/esm2022/lib/smart-map/api/model/geoMapServerModel.mjs +2 -0
  280. package/esm2022/lib/smart-map/api/model/geoMapTextType.mjs +17 -0
  281. package/esm2022/lib/smart-map/api/model/geoMapViewState.mjs +2 -0
  282. package/esm2022/lib/smart-map/api/model/geoMapViewport.mjs +2 -0
  283. package/esm2022/lib/smart-map/api/model/models.mjs +21 -0
  284. package/esm2022/lib/smart-map/api/param.mjs +2 -0
  285. package/esm2022/lib/smart-map/api/variables.mjs +9 -0
  286. package/esm2022/lib/smart-map/api-default/api-default.mjs +2 -0
  287. package/esm2022/lib/smart-map/impl/google-map.mjs +224 -0
  288. package/esm2022/lib/smart-map/impl/leaflet-map.mjs +422 -0
  289. package/esm2022/lib/smart-map/projects.mjs +9 -0
  290. package/esm2022/lib/smart-map/smart-map.component.mjs +222 -0
  291. package/esm2022/lib/smart-map/smart-map.module.mjs +22 -0
  292. package/esm2022/lib/smart-map/smart-map.types.mjs +2 -0
  293. package/esm2022/lib/smart-navbar/projects.mjs +8 -0
  294. package/esm2022/lib/smart-navbar/smart-navbar.component.mjs +61 -0
  295. package/esm2022/lib/smart-navbar/smart-navbar.model.mjs +6 -0
  296. package/esm2022/lib/smart-navbar/smart-navbar.module.mjs +63 -0
  297. package/esm2022/lib/smart-navbar/smart-navbar.service.mjs +14 -0
  298. package/esm2022/lib/smart-navigation/projects.mjs +6 -0
  299. package/esm2022/lib/smart-navigation/smart-navigation.interface.mjs +2 -0
  300. package/esm2022/lib/smart-navigation/smart-navigation.module.mjs +18 -0
  301. package/esm2022/lib/smart-navigation/smart-navigation.service.mjs +27 -0
  302. package/esm2022/lib/smart-ng-client.module.mjs +130 -0
  303. package/esm2022/lib/smart-ng-client.service.mjs +19 -0
  304. package/esm2022/lib/smart-subject/projects.mjs +5 -0
  305. package/esm2022/lib/smart-subject/smart-subject.mjs +21 -0
  306. package/esm2022/lib/smart-tab-group/projects.mjs +5 -0
  307. package/esm2022/lib/smart-tab-group/smart-tab-group.module.mjs +22 -0
  308. package/esm2022/lib/smart-table/components/default-actions-popup/default-actions-popup.component.mjs +43 -0
  309. package/esm2022/lib/smart-table/components/loading/loading.component.mjs +15 -0
  310. package/esm2022/lib/smart-table/directives/mat-context-menu-trigger-for.directive.mjs +52 -0
  311. package/esm2022/lib/smart-table/projects.mjs +8 -0
  312. package/esm2022/lib/smart-table/smarttable.component.mjs +98 -0
  313. package/esm2022/lib/smart-table/smarttable.model.mjs +177 -0
  314. package/esm2022/lib/smart-table/smarttable.module.mjs +109 -0
  315. package/esm2022/lib/smart-table/smarttable.service.mjs +14 -0
  316. package/esm2022/lib/smart-table/tables/material-table/material-table.component.mjs +42 -0
  317. package/esm2022/lib/smart-table/tables/mobile-table/mobile-table.component.mjs +23 -0
  318. package/esm2022/lib/smart-table/tables/table.mjs +573 -0
  319. package/esm2022/lib/smart-tree/projects.mjs +9 -0
  320. package/esm2022/lib/smart-tree/smarttree-generic.service.mjs +289 -0
  321. package/esm2022/lib/smart-tree/smarttree.component.mjs +187 -0
  322. package/esm2022/lib/smart-tree/smarttree.model.mjs +7 -0
  323. package/esm2022/lib/smart-tree/smarttree.module.mjs +60 -0
  324. package/esm2022/lib/smart-tree/smarttree.node.model.mjs +6 -0
  325. package/esm2022/lib/smart-tree/smarttree.service.interface.mjs +2 -0
  326. package/esm2022/lib/smart-tree/smarttree.service.mjs +47 -0
  327. package/esm2022/lib/smart-tree/tree-api/api/tree.service.mjs +1190 -0
  328. package/esm2022/lib/smart-tree/tree-api/configuration.mjs +91 -0
  329. package/esm2022/lib/smart-tree/tree-api/encoder.mjs +19 -0
  330. package/esm2022/lib/smart-tree/tree-api/param.mjs +2 -0
  331. package/esm2022/lib/smart-tree/tree-api/variables.mjs +9 -0
  332. package/esm2022/lib/smart-validation/named-validator.service.mjs +115 -0
  333. package/esm2022/lib/smart-validation/projects.mjs +4 -0
  334. package/esm2022/lib/smart-validation/smart-validation.module.mjs +24 -0
  335. package/esm2022/lib/smart-validation/smart-validation.types.mjs +4 -0
  336. package/esm2022/lib/view-context/api/api/api.mjs +4 -0
  337. package/esm2022/lib/view-context/api/api/view.service.mjs +903 -0
  338. package/esm2022/lib/view-context/api/api-default/binaryData.mjs +2 -0
  339. package/esm2022/lib/view-context/api/api-default/invocationError.mjs +2 -0
  340. package/esm2022/lib/view-context/api/api-default/invocationRequest.mjs +2 -0
  341. package/esm2022/lib/view-context/api/api-default/invocationRun.mjs +2 -0
  342. package/esm2022/lib/view-context/api/api.module.mjs +40 -0
  343. package/esm2022/lib/view-context/api/configuration.mjs +91 -0
  344. package/esm2022/lib/view-context/api/encoder.mjs +19 -0
  345. package/esm2022/lib/view-context/api/index.mjs +7 -0
  346. package/esm2022/lib/view-context/api/model/backgroundProcessInfo.mjs +2 -0
  347. package/esm2022/lib/view-context/api/model/badgeDescriptor.mjs +13 -0
  348. package/esm2022/lib/view-context/api/model/clipboardData.mjs +13 -0
  349. package/esm2022/lib/view-context/api/model/closeResult.mjs +18 -0
  350. package/esm2022/lib/view-context/api/model/componentConstraint.mjs +2 -0
  351. package/esm2022/lib/view-context/api/model/componentModel.mjs +2 -0
  352. package/esm2022/lib/view-context/api/model/componentModelChange.mjs +13 -0
  353. package/esm2022/lib/view-context/api/model/dataChange.mjs +2 -0
  354. package/esm2022/lib/view-context/api/model/dataChangeEvent.mjs +2 -0
  355. package/esm2022/lib/view-context/api/model/dataChangeKind.mjs +21 -0
  356. package/esm2022/lib/view-context/api/model/deviceInfo.mjs +13 -0
  357. package/esm2022/lib/view-context/api/model/downloadedFile.mjs +13 -0
  358. package/esm2022/lib/view-context/api/model/iconPosition.mjs +21 -0
  359. package/esm2022/lib/view-context/api/model/imageResource.mjs +8 -0
  360. package/esm2022/lib/view-context/api/model/link.mjs +20 -0
  361. package/esm2022/lib/view-context/api/model/messageData.mjs +2 -0
  362. package/esm2022/lib/view-context/api/model/messageOption.mjs +2 -0
  363. package/esm2022/lib/view-context/api/model/messageOptionType.mjs +18 -0
  364. package/esm2022/lib/view-context/api/model/messageResult.mjs +2 -0
  365. package/esm2022/lib/view-context/api/model/messageTextType.mjs +17 -0
  366. package/esm2022/lib/view-context/api/model/messageType.mjs +19 -0
  367. package/esm2022/lib/view-context/api/model/models.mjs +63 -0
  368. package/esm2022/lib/view-context/api/model/multiComboBoxElement.mjs +13 -0
  369. package/esm2022/lib/view-context/api/model/multiComboBoxModel.mjs +2 -0
  370. package/esm2022/lib/view-context/api/model/namedValidator.mjs +19 -0
  371. package/esm2022/lib/view-context/api/model/openPendingData.mjs +2 -0
  372. package/esm2022/lib/view-context/api/model/serverRequestExecutionStat.mjs +2 -0
  373. package/esm2022/lib/view-context/api/model/serverRequestTrack.mjs +2 -0
  374. package/esm2022/lib/view-context/api/model/serverRequestType.mjs +24 -0
  375. package/esm2022/lib/view-context/api/model/smartLinkData.mjs +2 -0
  376. package/esm2022/lib/view-context/api/model/smartLinkMigrationStatus.mjs +8 -0
  377. package/esm2022/lib/view-context/api/model/statisticRecord.mjs +13 -0
  378. package/esm2022/lib/view-context/api/model/style.mjs +13 -0
  379. package/esm2022/lib/view-context/api/model/uiAction.mjs +2 -0
  380. package/esm2022/lib/view-context/api/model/uiActionButtonDescriptor.mjs +2 -0
  381. package/esm2022/lib/view-context/api/model/uiActionButtonType.mjs +27 -0
  382. package/esm2022/lib/view-context/api/model/uiActionConstraint.mjs +13 -0
  383. package/esm2022/lib/view-context/api/model/uiActionDefinition.mjs +2 -0
  384. package/esm2022/lib/view-context/api/model/uiActionDefinitionEntry.mjs +2 -0
  385. package/esm2022/lib/view-context/api/model/uiActionDescriptor.mjs +2 -0
  386. package/esm2022/lib/view-context/api/model/uiActionDialogDescriptor.mjs +2 -0
  387. package/esm2022/lib/view-context/api/model/uiActionFeedbackType.mjs +20 -0
  388. package/esm2022/lib/view-context/api/model/uiActionInputType.mjs +21 -0
  389. package/esm2022/lib/view-context/api/model/uiActionRequest.mjs +13 -0
  390. package/esm2022/lib/view-context/api/model/uiActionSchedule.mjs +13 -0
  391. package/esm2022/lib/view-context/api/model/uiActionTooltip.mjs +22 -0
  392. package/esm2022/lib/view-context/api/model/uiActionUploadDescriptor.mjs +2 -0
  393. package/esm2022/lib/view-context/api/model/uploadWidgetType.mjs +18 -0
  394. package/esm2022/lib/view-context/api/model/uploadedFile.mjs +2 -0
  395. package/esm2022/lib/view-context/api/model/valueSet.mjs +2 -0
  396. package/esm2022/lib/view-context/api/model/view.mjs +2 -0
  397. package/esm2022/lib/view-context/api/model/viewApiError.mjs +13 -0
  398. package/esm2022/lib/view-context/api/model/viewConstraint.mjs +2 -0
  399. package/esm2022/lib/view-context/api/model/viewContext.mjs +2 -0
  400. package/esm2022/lib/view-context/api/model/viewContextChange.mjs +2 -0
  401. package/esm2022/lib/view-context/api/model/viewContextData.mjs +2 -0
  402. package/esm2022/lib/view-context/api/model/viewContextUpdate.mjs +2 -0
  403. package/esm2022/lib/view-context/api/model/viewData.mjs +2 -0
  404. package/esm2022/lib/view-context/api/model/viewEventHandler.mjs +8 -0
  405. package/esm2022/lib/view-context/api/model/viewPlaceholder.mjs +13 -0
  406. package/esm2022/lib/view-context/api/model/viewState.mjs +22 -0
  407. package/esm2022/lib/view-context/api/model/viewStateUpdate.mjs +2 -0
  408. package/esm2022/lib/view-context/api/model/viewType.mjs +18 -0
  409. package/esm2022/lib/view-context/api/param.mjs +2 -0
  410. package/esm2022/lib/view-context/api/variables.mjs +9 -0
  411. package/esm2022/lib/view-context/default-view-components.token.mjs +9 -0
  412. package/esm2022/lib/view-context/invalid-fields-snack-bar/invalid-fields-snack-bar.component.mjs +20 -0
  413. package/esm2022/lib/view-context/message-dialog/message-dialog.component.mjs +93 -0
  414. package/esm2022/lib/view-context/projects.mjs +29 -0
  415. package/esm2022/lib/view-context/property-definition-data.mjs +2 -0
  416. package/esm2022/lib/view-context/reuse-router-slot.token.mjs +4 -0
  417. package/esm2022/lib/view-context/smart-embedded-slot.directive.mjs +55 -0
  418. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.component.mjs +199 -0
  419. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.constants.mjs +72 -0
  420. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.service.mjs +21 -0
  421. package/esm2022/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.mjs +30 -0
  422. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/photo-capture-widget/photo-capture-widget.component.mjs +198 -0
  423. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/prime-file-uploader/prime-file-uploader.component.mjs +95 -0
  424. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.component.mjs +134 -0
  425. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.utils.mjs +12 -0
  426. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/voice-record-widget/voice-record-widget.component.mjs +256 -0
  427. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.mjs +77 -0
  428. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.mjs +54 -0
  429. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-dialog-button/ui-action-dialog-button.component.mjs +60 -0
  430. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.mjs +106 -0
  431. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.mjs +60 -0
  432. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.mjs +132 -0
  433. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.mjs +58 -0
  434. package/esm2022/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.mjs +33 -0
  435. package/esm2022/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.mjs +215 -0
  436. package/esm2022/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +319 -0
  437. package/esm2022/lib/view-context/smart-ui-action/ui-action.descriptor.service.mjs +185 -0
  438. package/esm2022/lib/view-context/smart-ui-action/ui-action.model.mjs +7 -0
  439. package/esm2022/lib/view-context/smart-ui-action/ui-action.service.mjs +235 -0
  440. package/esm2022/lib/view-context/smart-view-context-dialog.service.mjs +77 -0
  441. package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.mjs +35 -0
  442. package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.mjs +74 -0
  443. package/esm2022/lib/view-context/smart-view-context.interceptor.mjs +63 -0
  444. package/esm2022/lib/view-context/smart-view-context.model.mjs +2 -0
  445. package/esm2022/lib/view-context/smart-view-context.module.mjs +397 -0
  446. package/esm2022/lib/view-context/smart-view-context.service.mjs +1043 -0
  447. package/esm2022/lib/view-context/smart-view-redirect/smart-view-redirect.mjs +41 -0
  448. package/esm2022/lib/view-context/utility/componentLibrary.mjs +9 -0
  449. package/esm2022/lib/view-context/utility/smart-object-utility.mjs +44 -0
  450. package/esm2022/lib/view-context/utility/smart-style-utility.mjs +68 -0
  451. package/esm2022/lib/view-context/value-api/api/api.mjs +4 -0
  452. package/esm2022/lib/view-context/value-api/api/value.service.mjs +138 -0
  453. package/esm2022/lib/view-context/value-api/api.module.mjs +40 -0
  454. package/esm2022/lib/view-context/value-api/configuration.mjs +91 -0
  455. package/esm2022/lib/view-context/value-api/encoder.mjs +19 -0
  456. package/esm2022/lib/view-context/value-api/index.mjs +7 -0
  457. package/esm2022/lib/view-context/value-api/model/genericValue.mjs +13 -0
  458. package/esm2022/lib/view-context/value-api/model/models.mjs +11 -0
  459. package/esm2022/lib/view-context/value-api/model/value.mjs +13 -0
  460. package/esm2022/lib/view-context/value-api/model/valueSetData.mjs +2 -0
  461. package/esm2022/lib/view-context/value-api/model/valueSetDefinition.mjs +2 -0
  462. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionData.mjs +2 -0
  463. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionIdentifier.mjs +13 -0
  464. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionKind.mjs +24 -0
  465. package/esm2022/lib/view-context/value-api/model/valueSetExpression.mjs +2 -0
  466. package/esm2022/lib/view-context/value-api/model/valueSetOperand.mjs +2 -0
  467. package/esm2022/lib/view-context/value-api/model/valueSetOperation.mjs +19 -0
  468. package/esm2022/lib/view-context/value-api/param.mjs +2 -0
  469. package/esm2022/lib/view-context/value-api/variables.mjs +9 -0
  470. package/esm2022/lib/view-context/view-handler-resolution.mjs +21 -0
  471. package/esm2022/lib/view-context/view-op.mjs +41 -0
  472. package/esm2022/lib/view-context/view-slot-resolution.mjs +28 -0
  473. package/esm2022/projects.mjs +30 -0
  474. package/esm2022/smartbit4all-ng-client.mjs +5 -0
  475. package/fesm2022/smartbit4all-ng-client.mjs +10266 -4870
  476. package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
  477. package/lib/session/api/model/accountInfo.d.ts +2 -0
  478. package/lib/session/projects.d.ts +3 -0
  479. package/lib/session/smart-backend-bootstrap.config.d.ts +65 -0
  480. package/lib/session/smart-backend-bootstrap.service.d.ts +55 -0
  481. package/lib/session/smart-default-error-ui.service.d.ts +90 -0
  482. package/lib/session/smart-error-catching.interceptor.d.ts +4 -1
  483. package/lib/session/smart-session-handler.service.d.ts +2 -1
  484. package/lib/session/smart-session.service.d.ts +16 -1
  485. package/lib/session/smart-timer/smart-session-timer.component.d.ts +3 -1
  486. package/lib/smart-client/projects.d.ts +0 -1
  487. package/lib/smart-client/smart-component-api-client.d.ts +45 -19
  488. package/lib/smart-client/smart.component.d.ts +7 -5
  489. package/lib/smart-client/smart.service.d.ts +4 -5
  490. package/lib/smart-component-layout/api/model/componentWidgetType.d.ts +3 -1
  491. package/lib/smart-component-layout/api/model/layoutDefinitionDescriptor.d.ts +19 -0
  492. package/lib/smart-component-layout/api/model/models.d.ts +3 -0
  493. package/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.d.ts +2 -0
  494. package/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.d.ts +6 -0
  495. package/{src/lib/smart-chart/smart-chart/api/model/chartData.d.ts → lib/smart-component-layout/api/model/toolbarDirection.d.ts} +5 -6
  496. package/{src/lib/smart-chart/smart-chart/api/model/pieChartLegendPosition.d.ts → lib/smart-component-layout/api/model/toolbarProperties.d.ts} +7 -7
  497. package/lib/smart-component-layout/smart-component-layout-utility.d.ts +9 -1
  498. package/lib/smart-component-layout/smart-component-layout.component.d.ts +31 -5
  499. package/lib/smart-component-layout/smart-component-layout.module.d.ts +4 -1
  500. package/lib/smart-diagram/api/api/api.d.ts +3 -0
  501. package/lib/smart-diagram/api/api/diagramService.service.d.ts +36 -0
  502. package/lib/smart-diagram/api/encoder.d.ts +11 -0
  503. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramColor.d.ts +2 -2
  504. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramDataContainer.d.ts +2 -3
  505. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramDataItem.d.ts +3 -3
  506. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramDataSet.d.ts +4 -4
  507. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramDescriptor.d.ts +13 -9
  508. package/{src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramUiModel.d.ts → lib/smart-diagram/api/model/diagramModel.d.ts} +5 -4
  509. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/diagramShape.d.ts +2 -2
  510. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/drawTime.d.ts +2 -2
  511. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/labelText.d.ts +2 -2
  512. package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/model/models.d.ts +1 -2
  513. package/lib/smart-diagram/component/default-smart-diagram-options.provider.d.ts +33 -0
  514. package/lib/smart-diagram/component/smart-diagram.component.d.ts +43 -0
  515. package/lib/smart-diagram/component/smart-diagram.module.d.ts +11 -0
  516. package/lib/smart-diagram/component/smart-diagram.util.d.ts +1 -0
  517. package/lib/smart-diagram/projects.d.ts +4 -0
  518. package/lib/smart-dialog/smartdialog.model.d.ts +2 -1
  519. package/lib/smart-dialog/smartdialog.module.d.ts +1 -2
  520. package/lib/smart-dialog/smartdialog.service.d.ts +2 -4
  521. package/lib/smart-expandable-section/expandable-section.component.d.ts +3 -1
  522. package/lib/smart-expandable-section/expandable-section.model.d.ts +1 -0
  523. package/lib/smart-expandable-section/smart-expandable-section.module.d.ts +2 -1
  524. package/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.d.ts +4 -2
  525. package/lib/smart-filter-editor/smart-filter-editor.service.d.ts +11 -1
  526. package/{src/lib/smart-chart/smart-chart/api/model/chartOrientation.d.ts → lib/smart-form/api/model/dateFieldProperties.d.ts} +6 -7
  527. package/lib/smart-form/api/model/fileUploaderProperties.d.ts +20 -0
  528. package/lib/smart-form/api/model/imageProperties.d.ts +15 -0
  529. package/lib/smart-form/api/model/models.d.ts +7 -0
  530. package/lib/smart-form/api/model/multiFileUploaderProperties.d.ts +19 -0
  531. package/lib/smart-form/api/model/recordingUploaderProperties.d.ts +20 -0
  532. package/lib/smart-form/api/model/selectionDefinition.d.ts +17 -0
  533. package/lib/smart-form/api/model/smartFormWidgetType.d.ts +4 -1
  534. package/lib/smart-form/api/model/smartWidgetDefinition.d.ts +5 -0
  535. package/lib/smart-form/api/model/textBoxProperties.d.ts +15 -0
  536. package/{src/lib/smart-chart/smart-chart/api/model/chartValue.d.ts → lib/smart-form/api/model/textFieldProperties.d.ts} +4 -6
  537. package/lib/smart-form/api/model/valueChangeMode.d.ts +3 -2
  538. package/lib/smart-form/projects.d.ts +3 -0
  539. package/lib/smart-form/services/smartform.layout-definition.service.d.ts +6 -2
  540. package/lib/smart-form/services/smartform.service.d.ts +7 -6
  541. package/lib/smart-form/smartfileuploader/smartfileuploader.component.d.ts +19 -3
  542. package/lib/smart-form/smartform.component.d.ts +3 -2
  543. package/lib/smart-form/smartform.form-model.d.ts +160 -11
  544. package/lib/smart-form/widgets/components/smart-file-editor/smart-file-editor.component.d.ts +54 -0
  545. package/lib/smart-form/widgets/components/smart-multi-file-editor/smart-multi-file-editor.component.d.ts +57 -0
  546. package/lib/smart-form/widgets/components/smart-voice-recorder/smart-voice-recorder.component.d.ts +50 -0
  547. package/lib/smart-form/widgets/smartformwidget/smartformwidget.component.d.ts +49 -18
  548. package/lib/smart-generic-pages/acl-editing-view/acl-editing-view.component.d.ts +21 -0
  549. package/lib/smart-generic-pages/api/platform/acl/model/aCL.d.ts +18 -0
  550. package/lib/smart-generic-pages/api/platform/acl/model/aCLEntry.d.ts +54 -0
  551. package/lib/smart-generic-pages/api/platform/acl/model/objectValidationSeverity.d.ts +19 -0
  552. package/lib/smart-generic-pages/api/platform/acl/model/subject.d.ts +24 -0
  553. package/lib/smart-generic-pages/api/platform/api-default/objectHistoryRangeData.d.ts +2 -0
  554. package/lib/smart-generic-pages/api/platform/searchpage/model/searchPageModel.d.ts +27 -0
  555. package/lib/smart-generic-pages/api/platform/subjectselector/model/subjectSelectorPageModel.d.ts +14 -0
  556. package/lib/smart-generic-pages/api/platform/validation/model/validationItem.d.ts +17 -0
  557. package/lib/smart-generic-pages/api/platform/validation/model/validationResultPageModel.d.ts +18 -0
  558. package/lib/smart-generic-pages/generic-page/generic-page.component.d.ts +12 -0
  559. package/lib/smart-generic-pages/invalid-smartlink/invalid-smartlink.component.d.ts +11 -0
  560. package/lib/smart-generic-pages/no-permission-page/no-permission-page.component.d.ts +11 -0
  561. package/lib/smart-generic-pages/projects.d.ts +9 -0
  562. package/lib/smart-generic-pages/search-page/search-page.component.d.ts +25 -0
  563. package/lib/smart-generic-pages/smart-generic-pages.module.d.ts +19 -0
  564. package/lib/smart-generic-pages/subject-selector/subject-selector.component.d.ts +17 -0
  565. package/lib/smart-generic-pages/validation-result-page/validation-result-page.component.d.ts +25 -0
  566. package/lib/smart-grid/api/grid-api/api/grid.service.d.ts +27 -6
  567. package/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.d.ts +4 -0
  568. package/lib/smart-grid/api/grid-api/model/gridExportDescriptor.d.ts +2 -2
  569. package/lib/smart-grid/api/grid-api/model/gridModel.d.ts +2 -0
  570. package/lib/smart-grid/api/grid-api/model/gridSelectionChange.d.ts +6 -0
  571. package/lib/smart-grid/components/generic-component/expanded-row-renderer.component.d.ts +21 -0
  572. package/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.d.ts +1 -0
  573. package/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.d.ts +1 -0
  574. package/lib/smart-grid/smart-grid-toolbar-util.d.ts +1 -0
  575. package/lib/smart-grid/smart-grid.component.d.ts +21 -6
  576. package/lib/smart-grid/smart-grid.module.d.ts +20 -21
  577. package/lib/smart-grid/smart-grid.service.d.ts +2 -0
  578. package/lib/smart-icon/projects.d.ts +2 -0
  579. package/lib/smart-icon/smart-icon/smart-icon.component.d.ts +15 -5
  580. package/lib/smart-icon/smart-icon/ui-badge/ui-badge.component.d.ts +12 -0
  581. package/lib/smart-icon/smart-icon/ui-badge/ui-badge.directive.d.ts +14 -0
  582. package/lib/smart-icon/smart-icon.module.d.ts +8 -4
  583. package/lib/smart-icon/smart-icon.service.d.ts +1 -0
  584. package/lib/smart-map/abstract-map.d.ts +1 -1
  585. package/lib/smart-map/api/model/geoMapItem.d.ts +2 -0
  586. package/lib/smart-navigation/smart-navigation.interface.d.ts +1 -7
  587. package/lib/smart-navigation/smart-navigation.service.d.ts +2 -8
  588. package/lib/smart-ng-client.module.d.ts +3 -4
  589. package/lib/smart-tab-group/projects.d.ts +0 -4
  590. package/lib/smart-tab-group/smart-tab-group.module.d.ts +5 -8
  591. package/lib/smart-table/tables/material-table/material-table.component.d.ts +2 -3
  592. package/lib/smart-table/tables/mobile-table/mobile-table.component.d.ts +1 -2
  593. package/lib/smart-table/tables/table.d.ts +5 -5
  594. package/lib/smart-tree/smarttree-generic.service.d.ts +0 -1
  595. package/lib/smart-tree/smarttree.component.d.ts +1 -0
  596. package/lib/smart-tree/smarttree.model.d.ts +1 -0
  597. package/lib/smart-tree/smarttree.service.d.ts +1 -0
  598. package/lib/view-context/api/api/view.service.d.ts +14 -13
  599. package/lib/view-context/api/api-default/binaryData.d.ts +2 -0
  600. package/lib/view-context/api/api-default/invocationError.d.ts +2 -0
  601. package/lib/view-context/api/api-default/invocationRequest.d.ts +2 -0
  602. package/lib/view-context/api/api-default/invocationRun.d.ts +2 -0
  603. package/lib/view-context/api/model/backgroundProcessInfo.d.ts +25 -0
  604. package/lib/view-context/api/model/badgeDescriptor.d.ts +15 -0
  605. package/lib/view-context/api/model/componentModel.d.ts +5 -0
  606. package/lib/view-context/api/model/deviceInfo.d.ts +4 -0
  607. package/lib/view-context/api/model/iconPosition.d.ts +2 -1
  608. package/lib/view-context/api/model/imageResource.d.ts +2 -0
  609. package/lib/view-context/api/model/messageOption.d.ts +2 -0
  610. package/lib/view-context/api/model/models.d.ts +9 -0
  611. package/lib/view-context/api/model/multiComboBoxElement.d.ts +16 -0
  612. package/lib/view-context/api/model/multiComboBoxModel.d.ts +16 -0
  613. package/lib/view-context/api/model/namedValidator.d.ts +1 -0
  614. package/lib/view-context/api/model/smartLinkData.d.ts +8 -0
  615. package/lib/view-context/api/model/smartLinkMigrationStatus.d.ts +39 -0
  616. package/lib/view-context/api/model/uiAction.d.ts +8 -0
  617. package/lib/view-context/api/model/uiActionDefinition.d.ts +19 -0
  618. package/lib/view-context/api/model/uiActionDefinitionEntry.d.ts +18 -0
  619. package/lib/view-context/api/model/uiActionDescriptor.d.ts +6 -0
  620. package/lib/view-context/api/model/uiActionRequest.d.ts +3 -0
  621. package/lib/view-context/api/model/uiActionSchedule.d.ts +14 -0
  622. package/lib/view-context/api/model/uiActionUploadDescriptor.d.ts +4 -0
  623. package/lib/view-context/api/model/uploadWidgetType.d.ts +16 -0
  624. package/lib/view-context/api/model/uploadedFile.d.ts +2 -1
  625. package/lib/view-context/api/model/view.d.ts +8 -0
  626. package/lib/view-context/api/model/viewContext.d.ts +1 -0
  627. package/lib/view-context/api/model/viewData.d.ts +3 -0
  628. package/lib/view-context/api/model/viewEventHandler.d.ts +7 -1
  629. package/lib/view-context/api/model/viewPlaceholder.d.ts +1 -0
  630. package/lib/view-context/default-view-components.token.d.ts +18 -0
  631. package/lib/view-context/message-dialog/message-dialog.component.d.ts +8 -2
  632. package/lib/view-context/projects.d.ts +10 -0
  633. package/lib/view-context/reuse-router-slot.token.d.ts +3 -0
  634. package/lib/view-context/smart-embedded-slot.directive.d.ts +20 -0
  635. package/lib/view-context/smart-ui-action/components/menu/menu.component.d.ts +42 -0
  636. package/lib/view-context/smart-ui-action/components/menu/menu.constants.d.ts +3 -0
  637. package/lib/view-context/smart-ui-action/components/menu/menu.service.d.ts +8 -0
  638. package/lib/view-context/smart-ui-action/components/upload-widget/photo-capture-widget/photo-capture-widget.component.d.ts +30 -0
  639. package/lib/view-context/smart-ui-action/components/upload-widget/prime-file-uploader/prime-file-uploader.component.d.ts +32 -0
  640. package/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.component.d.ts +40 -0
  641. package/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.utils.d.ts +3 -0
  642. package/lib/view-context/smart-ui-action/components/upload-widget/voice-record-widget/voice-record-widget.component.d.ts +43 -0
  643. package/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.d.ts +6 -4
  644. package/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.d.ts +1 -2
  645. package/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.d.ts +10 -11
  646. package/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.d.ts +3 -3
  647. package/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.d.ts +1 -2
  648. package/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.d.ts +13 -0
  649. package/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.d.ts +49 -0
  650. package/lib/view-context/smart-ui-action/ui-action-toolbar.component.d.ts +28 -3
  651. package/lib/view-context/smart-ui-action/ui-action.service.d.ts +4 -3
  652. package/lib/view-context/smart-view-context-dialog.service.d.ts +1 -3
  653. package/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.d.ts +2 -0
  654. package/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.d.ts +1 -2
  655. package/lib/view-context/smart-view-context.interceptor.d.ts +5 -1
  656. package/lib/view-context/smart-view-context.model.d.ts +7 -2
  657. package/lib/view-context/smart-view-context.module.d.ts +74 -58
  658. package/lib/view-context/smart-view-context.service.d.ts +59 -9
  659. package/lib/view-context/smart-view-redirect/smart-view-redirect.d.ts +3 -1
  660. package/lib/view-context/view-handler-resolution.d.ts +11 -0
  661. package/lib/view-context/view-op.d.ts +18 -0
  662. package/lib/view-context/view-slot-resolution.d.ts +15 -0
  663. package/package.json +18 -19
  664. package/projects.d.ts +2 -0
  665. package/smartbit4all-ng-client-6.0.0.tgz +0 -0
  666. package/fesm2022/smartbit4all-ng-client-src-lib-smart-chart.mjs +0 -686
  667. package/fesm2022/smartbit4all-ng-client-src-lib-smart-chart.mjs.map +0 -1
  668. package/lib/smart-client/smart-authentication.service.d.ts +0 -15
  669. package/lib/smart-tab-group/smart-tab-group.component.d.ts +0 -21
  670. package/lib/smart-tab-group/smart-tab-group.service.d.ts +0 -6
  671. package/lib/smart-tab-group/tab-content/tab-content.component.d.ts +0 -14
  672. package/lib/smart-tab-group/tab-group-simplified/tab-group.component.d.ts +0 -29
  673. package/lib/smart-tab-group/tabTile.model.d.ts +0 -8
  674. package/smartbit4all-ng-client-5.0.20.tgz +0 -0
  675. package/src/lib/smart-chart/index.d.ts +0 -5
  676. package/src/lib/smart-chart/smart-chart/api/model/chartDescriptor.d.ts +0 -37
  677. package/src/lib/smart-chart/smart-chart/api/model/chartType.d.ts +0 -21
  678. package/src/lib/smart-chart/smart-chart/api/model/models.d.ts +0 -6
  679. package/src/lib/smart-chart/smart-chart/default-chart-options.provider.d.ts +0 -31
  680. package/src/lib/smart-chart/smart-chart/smart-chart.component.d.ts +0 -33
  681. package/src/lib/smart-chart/smart-chart/smart-chart.module.d.ts +0 -11
  682. package/src/lib/smart-chart/smart-chart/smart-chart2/api/api/api.d.ts +0 -1
  683. package/src/lib/smart-chart/smart-chart/smart-chart2/api/model/diagramDataSetConstructionInstruction.d.ts +0 -21
  684. package/src/lib/smart-chart/smart-chart-projects.d.ts +0 -5
  685. package/src/lib/smart-chart/view-context/utility/componentLibrary.d.ts +0 -6
  686. /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/api.module.d.ts +0 -0
  687. /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/configuration.d.ts +0 -0
  688. /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/index.d.ts +0 -0
  689. /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/param.d.ts +0 -0
  690. /package/{src/lib/smart-chart/smart-chart/smart-chart2 → lib/smart-diagram}/api/variables.d.ts +0 -0
@@ -0,0 +1,15 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/material/snack-bar";
4
+ export class LargeFileSnackBarComponent {
5
+ constructor() { }
6
+ ngOnInit() {
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: LargeFileSnackBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: LargeFileSnackBarComponent, selector: "lib-large-file-snack-bar", ngImport: i0, template: "<span class=\"largeFileSnakBarContainer\" matSnackBarLabel\n >A kiv\u00E1lasztott f\u00E1jl(ok) m\u00E9rete t\u00FAl nagy.</span\n>\n", styles: ["::ng-deep .mat-mdc-snack-bar-container{background-color:var(--warn-color)!important;text-align:center;border-radius:2rem}.largeFileSnakBarContainer{color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.MatSnackBarLabel, selector: "[matSnackBarLabel]" }] }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: LargeFileSnackBarComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'lib-large-file-snack-bar', template: "<span class=\"largeFileSnakBarContainer\" matSnackBarLabel\n >A kiv\u00E1lasztott f\u00E1jl(ok) m\u00E9rete t\u00FAl nagy.</span\n>\n", styles: ["::ng-deep .mat-mdc-snack-bar-container{background-color:var(--warn-color)!important;text-align:center;border-radius:2rem}.largeFileSnakBarContainer{color:#fff}\n"] }]
14
+ }], ctorParameters: () => [] });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFyZ2UtZmlsZS1zbmFjay1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS9zbWFydGZpbGV1cGxvYWRlci9sYXJnZS1maWxlLXNuYWNrLWJhci9sYXJnZS1maWxlLXNuYWNrLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3NtYXJ0ZmlsZXVwbG9hZGVyL2xhcmdlLWZpbGUtc25hY2stYmFyL2xhcmdlLWZpbGUtc25hY2stYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7OztBQU9sRCxNQUFNLE9BQU8sMEJBQTBCO0lBRXJDLGdCQUFnQixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDOytHQUxVLDBCQUEwQjttR0FBMUIsMEJBQTBCLGdFQ1B2QywwSUFHQTs7NEZESWEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1sYXJnZS1maWxlLXNuYWNrLWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9sYXJnZS1maWxlLXNuYWNrLWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xhcmdlLWZpbGUtc25hY2stYmFyLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMYXJnZUZpbGVTbmFja0JhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG59XG4iLCI8c3BhbiBjbGFzcz1cImxhcmdlRmlsZVNuYWtCYXJDb250YWluZXJcIiBtYXRTbmFja0JhckxhYmVsXG4gICAgPkEga2l2w6FsYXN6dG90dCBmw6FqbChvaykgbcOpcmV0ZSB0w7psIG5hZ3kuPC9zcGFuXG4+XG4iXX0=
@@ -0,0 +1,193 @@
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
+ import { IconPosition, UiActionButtonType, } from '../../view-context/api/model/models';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/snack-bar";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/material/button";
7
+ import * as i4 from "@angular/material/icon";
8
+ import * as i5 from "../../smart-icon/smart-icon/smart-icon.component";
9
+ import * as i6 from "@angular/material/form-field";
10
+ import * as i7 from "../../view-context/smart-ui-action/ui-action-button/ui-action-button.component";
11
+ export class SmartfileuploaderComponent {
12
+ constructor(_snackBar) {
13
+ this._snackBar = _snackBar;
14
+ this.files = [];
15
+ this.fileFormats = [];
16
+ this.maxSizeMb = 25;
17
+ this.useIconButton = true;
18
+ this.isMultiple = true;
19
+ this.autoUpload = false;
20
+ this.isDisabled = false;
21
+ this.isDragOver = false;
22
+ this.errors = [];
23
+ this.previewUrls = new Map();
24
+ }
25
+ ngOnInit() {
26
+ const defaultI18n = {
27
+ addFile: 'dokumentum hozzáadása',
28
+ browseOrDrag: 'tallózás vagy behúzás',
29
+ maxSize: `max. ${this.maxSizeMb} MB`,
30
+ formats: 'PDF, docx, xls formátum',
31
+ upload: 'Feltöltés',
32
+ };
33
+ this.i18n = { ...defaultI18n, ...this.i18n };
34
+ }
35
+ processFiles(fileList) {
36
+ this.errors = [];
37
+ var validFiles = [];
38
+ fileList.forEach((file) => {
39
+ let hasError = false;
40
+ if (this.fileFormats?.length) {
41
+ var ext = file.name.split('.').pop()?.toLowerCase();
42
+ var trimmedFormats = (this.fileFormats || [])
43
+ .flatMap((f) => f.split(','))
44
+ .map((f) => f.replace('.', '').trim().toLowerCase());
45
+ var isAllowed = trimmedFormats.includes(ext);
46
+ if (!isAllowed) {
47
+ this.errors.push(`"${file.name}" - nem támogatott formátum`);
48
+ hasError = true;
49
+ }
50
+ }
51
+ if (file.size > this.maxSizeMb * 1024 * 1024) {
52
+ this.errors.push(`"${file.name}" - túl nagy fájl (max ${this.maxSizeMb} MB)`);
53
+ hasError = true;
54
+ }
55
+ if (!hasError) {
56
+ validFiles.push(file);
57
+ }
58
+ });
59
+ if (this.isMultiple) {
60
+ this.files = [...this.files, ...validFiles];
61
+ }
62
+ else if (validFiles.length) {
63
+ this.files = [validFiles[0]];
64
+ }
65
+ if (this.autoUpload && this.errors.length == 0) {
66
+ this.uploadFile();
67
+ }
68
+ }
69
+ getFile(event) {
70
+ if (event.target.files && event.target.files.length) {
71
+ var fileList = Array.from(event.target.files);
72
+ this.processFiles(fileList);
73
+ this.fileInput.nativeElement.value = '';
74
+ }
75
+ }
76
+ onDrop(event) {
77
+ event.preventDefault();
78
+ this.isDragOver = false;
79
+ if (!event.dataTransfer?.files)
80
+ return;
81
+ const fileList = Array.from(event.dataTransfer.files);
82
+ this.processFiles(fileList);
83
+ }
84
+ onDragOver(event) {
85
+ event.preventDefault();
86
+ this.isDragOver = true;
87
+ }
88
+ onDragLeave(event) {
89
+ event.preventDefault();
90
+ const related = event.relatedTarget;
91
+ let stopDrag = false;
92
+ if (!related) {
93
+ stopDrag = true;
94
+ }
95
+ else {
96
+ const parentDrop = related.closest('.container');
97
+ if (related !== event.currentTarget && !parentDrop) {
98
+ stopDrag = true;
99
+ }
100
+ }
101
+ if (stopDrag) {
102
+ this.isDragOver = false;
103
+ }
104
+ }
105
+ remove(index) {
106
+ this.files.splice(index, 1);
107
+ }
108
+ uploadFile() {
109
+ this.uploadCallback(this.files);
110
+ }
111
+ formatSize(bytes) {
112
+ if (bytes === 0)
113
+ return '0 B';
114
+ const k = 1024;
115
+ const sizes = ['B', 'KB', 'MB', 'GB', 'TB'];
116
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
117
+ const value = parseFloat((bytes / Math.pow(k, i)).toFixed(1));
118
+ return `${value} ${sizes[i]}`;
119
+ }
120
+ filePreviewUrl(file) {
121
+ if (!file || !file.type.startsWith('image/')) {
122
+ return null;
123
+ }
124
+ if (this.previewUrls.has(file)) {
125
+ return this.previewUrls.get(file);
126
+ }
127
+ const url = URL.createObjectURL(file);
128
+ this.previewUrls.set(file, url);
129
+ return url;
130
+ }
131
+ downloadFile(file) {
132
+ const url = URL.createObjectURL(file);
133
+ const a = document.createElement('a');
134
+ a.href = url;
135
+ a.download = file.name;
136
+ a.click();
137
+ URL.revokeObjectURL(url);
138
+ }
139
+ get uploadButton() {
140
+ return {
141
+ title: this.i18n.upload ?? '',
142
+ color: 'primary',
143
+ type: UiActionButtonType.RAISED,
144
+ icon: 'upload',
145
+ iconPosition: IconPosition.PRE,
146
+ };
147
+ }
148
+ get downloadButton() {
149
+ return {
150
+ title: '',
151
+ color: 'primary',
152
+ type: UiActionButtonType.ICON,
153
+ icon: 'download',
154
+ iconPosition: IconPosition.PRE,
155
+ };
156
+ }
157
+ get removeButton() {
158
+ return {
159
+ title: '',
160
+ color: 'primary',
161
+ type: UiActionButtonType.ICON,
162
+ icon: 'close',
163
+ iconColor: 'red',
164
+ iconPosition: IconPosition.PRE,
165
+ };
166
+ }
167
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartfileuploaderComponent, deps: [{ token: i1.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
168
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartfileuploaderComponent, selector: "smartfileuploader", inputs: { uploadCallback: "uploadCallback", fileFormats: "fileFormats", maxSizeMb: "maxSizeMb", i18n: "i18n", useIconButton: "useIconButton", isMultiple: "isMultiple", autoUpload: "autoUpload", isDisabled: "isDisabled" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div\n class=\"container\"\n [ngClass]=\"{ disabledWidget: isDisabled }\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\"\n [class.dragover]=\"isDragOver\"\n>\n <div class=\"fileContainer\" (click)=\"fileInput.click()\">\n <input\n #fileInput\n id=\"addFile\"\n placeholder=\"fileInput\"\n type=\"file\"\n (change)=\"getFile($event)\"\n class=\"file\"\n accept=\"{{ fileFormats?.join(', ') }}\"\n [size]=\"maxSizeMb\"\n [multiple]=\"isMultiple\"\n [disabled]=\"isDisabled\"\n style=\"display: none\"\n />\n <div class=\"fileUploadContentContainer\">\n <div class=\"icon\">\n <mat-label *ngIf=\"useIconButton\" class=\"addFileButton\">\n <mat-icon color=\"primary\" class=\"addCircle\">add_circle</mat-icon>\n </mat-label>\n <button *ngIf=\"!useIconButton\" mat-raised-button color=\"primary\" class=\"addFileButton\">\n {{ i18n!.addFile }}\n </button>\n </div>\n <div class=\"labels\">\n <mat-label *ngIf=\"useIconButton\" class=\"label primary title\">\n {{ i18n!.addFile }}\n </mat-label>\n <mat-label class=\"label secondary\"> {{ i18n!.browseOrDrag }} </mat-label>\n <mat-label class=\"subLabel primary\"> {{ i18n!.maxSize }} </mat-label>\n <mat-label class=\"subLabel primary\"> {{ i18n!.formats }} </mat-label>\n </div>\n <div class=\"uploadButton\" *ngIf=\"files.length\">\n <ui-action-button (actionClick)=\"uploadFile()\" [descriptor]=\"uploadButton\">\n </ui-action-button>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"errors.length\" class=\"errorMessage\">\n <smart-icon [icon]=\"'error'\" [color]=\"'warn'\"></smart-icon>\n <div class=\"errors\">\n <span *ngFor=\"let error of errors\">{{ error }}</span>\n </div>\n </div>\n\n <div *ngIf=\"files.length\" class=\"uploadedFilesContainer\">\n <div *ngFor=\"let file of files; let i = index\" class=\"uploadedFile\">\n <ng-container *ngIf=\"filePreviewUrl(file); else fileIcon\">\n <img [src]=\"filePreviewUrl(file)\" [alt]=\"file.name\" width=\"50\" height=\"50\" />\n </ng-container>\n <ng-template #fileIcon>\n <smart-icon [icon]=\"'insert_drive_file'\"></smart-icon>\n </ng-template>\n\n <div class=\"fileData\">\n <div class=\"fileDataContainer\">\n <span class=\"fileName\">{{ file.name }}</span>\n <span class=\"fileSize\">{{ formatSize(file.size) }}</span>\n </div>\n </div>\n\n <div class=\"fileActions\">\n <smart-icon class=\"downloadIcon\" icon=\"download\" (click)=\"downloadFile(file)\"></smart-icon>\n <smart-icon class=\"removeIcon\" icon=\"delete\" (click)=\"remove(i)\"></smart-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem}.container{display:flex;flex-direction:column;border:2px dashed var(--border-color);border-radius:var(--def-border-radius)}.fileContainer{cursor:pointer;padding:1rem;display:flex;flex-direction:column}.fileContainer:hover{background-color:rgb(from var(--border-color) r g b / .1)}.disabledWidget ::ng-deep .fileContainer:hover{background-color:unset;cursor:unset}.disabledWidget ::ng-deep *{opacity:.85}.dragover{background-color:rgb(from var(--border-color) r g b / .1)}.fileUploadContentContainer{display:flex;flex-direction:row;gap:1rem}.icon mat-icon{font-size:3rem;width:unset;height:unset}.icon{align-content:center}.labels{flex:1;display:flex;flex-direction:column;justify-content:center;width:fit-content}.uploadButton{align-content:center}.primary{color:var(--primary-color)}.secondary{color:var(--gray)}.label{margin:unset}.subLabel{font-size:smaller}.title{padding-bottom:.3rem}.errorMessage,.uploadedFilesContainer{border-top:2px solid var(--border-color)}.errorMessage{display:flex;flex-direction:row;align-items:center;color:var(--warninig-color);padding:.5rem 1rem;gap:1rem}.errorMessage ::ng-deep mat-icon{color:var(--warninig-color)}.errors{display:flex;flex-direction:column}.uploadedFile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:1rem;border-bottom:1px solid #e0e0e0;gap:1rem}.uploadedFile:last-child{border-bottom:none}.fileSize{display:flex;flex-direction:row;font-size:smaller}.fileData{flex:1;display:flex;flex-direction:column}.fileDataContainer{display:flex;flex-direction:column;justify-content:flex-end;width:fit-content}.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}smart-icon ::ng-deep mat-icon{font-size:3rem;width:unset;height:unset}.fileActions{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}.fileActions ::ng-deep .pi{width:unset!important}.removeIcon ::ng-deep i,.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}.removeIcon ::ng-deep .pi,.downloadIcon ::ng-deep .pi{font-size:1.5rem!important}.removeIcon ::ng-deep mat-icon,.downloadIcon ::ng-deep mat-icon{font-size:2rem}.removeIcon:hover,.downloadIcon:hover{cursor:pointer}smart-icon{display:flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "component", type: i7.UiActionButtonComponent, selector: "ui-action-button", inputs: ["disabled", "descriptor", "code", "addedCssClass", "addBasicClasses"], outputs: ["actionClick", "actionDoubleClick"] }] }); }
169
+ }
170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartfileuploaderComponent, decorators: [{
171
+ type: Component,
172
+ args: [{ selector: 'smartfileuploader', template: "<div\n class=\"container\"\n [ngClass]=\"{ disabledWidget: isDisabled }\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\"\n [class.dragover]=\"isDragOver\"\n>\n <div class=\"fileContainer\" (click)=\"fileInput.click()\">\n <input\n #fileInput\n id=\"addFile\"\n placeholder=\"fileInput\"\n type=\"file\"\n (change)=\"getFile($event)\"\n class=\"file\"\n accept=\"{{ fileFormats?.join(', ') }}\"\n [size]=\"maxSizeMb\"\n [multiple]=\"isMultiple\"\n [disabled]=\"isDisabled\"\n style=\"display: none\"\n />\n <div class=\"fileUploadContentContainer\">\n <div class=\"icon\">\n <mat-label *ngIf=\"useIconButton\" class=\"addFileButton\">\n <mat-icon color=\"primary\" class=\"addCircle\">add_circle</mat-icon>\n </mat-label>\n <button *ngIf=\"!useIconButton\" mat-raised-button color=\"primary\" class=\"addFileButton\">\n {{ i18n!.addFile }}\n </button>\n </div>\n <div class=\"labels\">\n <mat-label *ngIf=\"useIconButton\" class=\"label primary title\">\n {{ i18n!.addFile }}\n </mat-label>\n <mat-label class=\"label secondary\"> {{ i18n!.browseOrDrag }} </mat-label>\n <mat-label class=\"subLabel primary\"> {{ i18n!.maxSize }} </mat-label>\n <mat-label class=\"subLabel primary\"> {{ i18n!.formats }} </mat-label>\n </div>\n <div class=\"uploadButton\" *ngIf=\"files.length\">\n <ui-action-button (actionClick)=\"uploadFile()\" [descriptor]=\"uploadButton\">\n </ui-action-button>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"errors.length\" class=\"errorMessage\">\n <smart-icon [icon]=\"'error'\" [color]=\"'warn'\"></smart-icon>\n <div class=\"errors\">\n <span *ngFor=\"let error of errors\">{{ error }}</span>\n </div>\n </div>\n\n <div *ngIf=\"files.length\" class=\"uploadedFilesContainer\">\n <div *ngFor=\"let file of files; let i = index\" class=\"uploadedFile\">\n <ng-container *ngIf=\"filePreviewUrl(file); else fileIcon\">\n <img [src]=\"filePreviewUrl(file)\" [alt]=\"file.name\" width=\"50\" height=\"50\" />\n </ng-container>\n <ng-template #fileIcon>\n <smart-icon [icon]=\"'insert_drive_file'\"></smart-icon>\n </ng-template>\n\n <div class=\"fileData\">\n <div class=\"fileDataContainer\">\n <span class=\"fileName\">{{ file.name }}</span>\n <span class=\"fileSize\">{{ formatSize(file.size) }}</span>\n </div>\n </div>\n\n <div class=\"fileActions\">\n <smart-icon class=\"downloadIcon\" icon=\"download\" (click)=\"downloadFile(file)\"></smart-icon>\n <smart-icon class=\"removeIcon\" icon=\"delete\" (click)=\"remove(i)\"></smart-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem}.container{display:flex;flex-direction:column;border:2px dashed var(--border-color);border-radius:var(--def-border-radius)}.fileContainer{cursor:pointer;padding:1rem;display:flex;flex-direction:column}.fileContainer:hover{background-color:rgb(from var(--border-color) r g b / .1)}.disabledWidget ::ng-deep .fileContainer:hover{background-color:unset;cursor:unset}.disabledWidget ::ng-deep *{opacity:.85}.dragover{background-color:rgb(from var(--border-color) r g b / .1)}.fileUploadContentContainer{display:flex;flex-direction:row;gap:1rem}.icon mat-icon{font-size:3rem;width:unset;height:unset}.icon{align-content:center}.labels{flex:1;display:flex;flex-direction:column;justify-content:center;width:fit-content}.uploadButton{align-content:center}.primary{color:var(--primary-color)}.secondary{color:var(--gray)}.label{margin:unset}.subLabel{font-size:smaller}.title{padding-bottom:.3rem}.errorMessage,.uploadedFilesContainer{border-top:2px solid var(--border-color)}.errorMessage{display:flex;flex-direction:row;align-items:center;color:var(--warninig-color);padding:.5rem 1rem;gap:1rem}.errorMessage ::ng-deep mat-icon{color:var(--warninig-color)}.errors{display:flex;flex-direction:column}.uploadedFile{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;padding:1rem;border-bottom:1px solid #e0e0e0;gap:1rem}.uploadedFile:last-child{border-bottom:none}.fileSize{display:flex;flex-direction:row;font-size:smaller}.fileData{flex:1;display:flex;flex-direction:column}.fileDataContainer{display:flex;flex-direction:column;justify-content:flex-end;width:fit-content}.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}smart-icon ::ng-deep mat-icon{font-size:3rem;width:unset;height:unset}.fileActions{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}.fileActions ::ng-deep .pi{width:unset!important}.removeIcon ::ng-deep i,.removeIcon ::ng-deep mat-icon{color:var(--warninig-color)}.removeIcon ::ng-deep .pi,.downloadIcon ::ng-deep .pi{font-size:1.5rem!important}.removeIcon ::ng-deep mat-icon,.downloadIcon ::ng-deep mat-icon{font-size:2rem}.removeIcon:hover,.downloadIcon:hover{cursor:pointer}smart-icon{display:flex;align-items:center}\n"] }]
173
+ }], ctorParameters: () => [{ type: i1.MatSnackBar }], propDecorators: { fileInput: [{
174
+ type: ViewChild,
175
+ args: ['fileInput']
176
+ }], uploadCallback: [{
177
+ type: Input
178
+ }], fileFormats: [{
179
+ type: Input
180
+ }], maxSizeMb: [{
181
+ type: Input
182
+ }], i18n: [{
183
+ type: Input
184
+ }], useIconButton: [{
185
+ type: Input
186
+ }], isMultiple: [{
187
+ type: Input
188
+ }], autoUpload: [{
189
+ type: Input
190
+ }], isDisabled: [{
191
+ type: Input
192
+ }] } });
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxldXBsb2FkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS9zbWFydGZpbGV1cGxvYWRlci9zbWFydGZpbGV1cGxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3NtYXJ0ZmlsZXVwbG9hZGVyL3NtYXJ0ZmlsZXVwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdoRixPQUFPLEVBQ0wsWUFBWSxFQUNaLGtCQUFrQixHQUVuQixNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7QUFPN0MsTUFBTSxPQUFPLDBCQUEwQjtJQWdCckMsWUFBb0IsU0FBc0I7UUFBdEIsY0FBUyxHQUFULFNBQVMsQ0FBYTtRQWIxQyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRVYsZ0JBQVcsR0FBYyxFQUFFLENBQUM7UUFDNUIsY0FBUyxHQUFZLEVBQUUsQ0FBQztRQUV4QixrQkFBYSxHQUFZLElBQUksQ0FBQztRQUM5QixlQUFVLEdBQWEsSUFBSSxDQUFDO1FBQzVCLGVBQVUsR0FBYSxLQUFLLENBQUM7UUFDN0IsZUFBVSxHQUFhLEtBQUssQ0FBQztRQUV0QyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLFdBQU0sR0FBYSxFQUFFLENBQUM7UUFvSHRCLGdCQUFXLEdBQUcsSUFBSSxHQUFHLEVBQWdCLENBQUM7SUFsSE8sQ0FBQztJQUU5QyxRQUFRO1FBQ04sTUFBTSxXQUFXLEdBQUc7WUFDbEIsT0FBTyxFQUFFLHVCQUF1QjtZQUNoQyxZQUFZLEVBQUUsdUJBQXVCO1lBQ3JDLE9BQU8sRUFB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UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYTtRQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxLQUFLLEtBQUssQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNmLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsT0FBTyxHQUFHLEtBQUssSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBSUQsY0FBYyxDQUFDLElBQVU7UUFDdkIsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDN0MsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQy9CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFFLENBQUM7UUFDckMsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFVO1FBQ3JCLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDVixHQUFHLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFLLENBQUMsTUFBTSxJQUFJLEVBQUU7WUFDOUIsS0FBSyxFQUFFLFNBQVM7WUFDaEIsSUFBSSxFQUFFLGtCQUFrQixDQUFDLE1BQU07WUFDL0IsSUFBSSxFQUFFLFFBQVE7WUFDZCxZQUFZLEVBQUUsWUFBWSxDQUFDLEdBQUc7U0FDL0IsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTztZQUNMLEtBQUssRUFBRSxFQUFFO1lBQ1QsS0FBSyxFQUFFLFNBQVM7WUFDaEIsSUFBSSxFQUFFLGtCQUFrQixDQUFDLElBQUk7WUFDN0IsSUFBSSxFQUFFLFVBQVU7WUFDaEIsWUFBWSxFQUFFLFlBQVksQ0FBQyxHQUFHO1NBQy9CLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTztZQUNMLEtBQUssRUFBRSxFQUFFO1lBQ1QsS0FBSyxFQUFFLFNBQVM7WUFDaEIsSUFBSSxFQUFFLGtCQUFrQixDQUFDLElBQUk7WUFDN0IsSUFBSSxFQUFFLE9BQU87WUFDYixTQUFTLEVBQUUsS0FBSztZQUNoQixZQUFZLEVBQUUsWUFBWSxDQUFDLEdBQUc7U0FDL0IsQ0FBQztJQUNKLENBQUM7K0dBeExVLDBCQUEwQjttR0FBMUIsMEJBQTBCLCtYQ2R2QyxzMEZBNEVBOzs0RkQ5RGEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLG1CQUFtQjtnRkFLTCxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBR2IsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgU21hcnRGaWxlVXBsb2FkZXJJMThuIH0gZnJvbSAnLi9zbWFydGZpbGV1cGxvYWRlci5tb2RlbCc7XG5pbXBvcnQge1xuICBJY29uUG9zaXRpb24sXG4gIFVpQWN0aW9uQnV0dG9uVHlwZSxcbiAgVWlBY3Rpb25EZXNjcmlwdG9yLFxufSBmcm9tICcuLi8uLi92aWV3LWNvbnRleHQvYXBpL21vZGVsL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NtYXJ0ZmlsZXVwbG9hZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0ZmlsZXVwbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc21hcnRmaWxldXBsb2FkZXIuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTbWFydGZpbGV1cGxvYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpIGZpbGVJbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgZmlsZXM6IEZpbGVbXSA9IFtdO1xuICBASW5wdXQoKSB1cGxvYWRDYWxsYmFjayE6IChmaWxlczogRmlsZVtdKSA9PiB2b2lkO1xuICBASW5wdXQoKSBmaWxlRm9ybWF0cz86IHN0cmluZ1tdID0gW107XG4gIEBJbnB1dCgpIG1heFNpemVNYj86IG51bWJlciA9IDI1O1xuICBASW5wdXQoKSBpMThuPzogU21hcnRGaWxlVXBsb2FkZXJJMThuO1xuICBASW5wdXQoKSB1c2VJY29uQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgaXNNdWx0aXBsZT86IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBhdXRvVXBsb2FkPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0Rpc2FibGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGlzRHJhZ092ZXIgPSBmYWxzZTtcbiAgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NuYWNrQmFyOiBNYXRTbmFja0Jhcikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBkZWZhdWx0STE4biA9IHtcbiAgICAgIGFkZEZpbGU6ICdkb2t1bWVudHVtIGhvenrDoWFkw6FzYScsXG4gICAgICBicm93c2VPckRyYWc6ICd0YWxsw7N6w6FzIHZhZ3kgYmVow7p6w6FzJyxcbiAgICAgIG1heFNpemU6IGBtYXguICR7dGhpcy5tYXhTaXplTWJ9IE1CYCxcbiAgICAgIGZvcm1hdHM6ICdQREYsIGRvY3gsIHhscyBmb3Jtw6F0dW0nLFxuICAgICAgdXBsb2FkOiAnRmVsdMO2bHTDqXMnLFxuICAgIH07XG5cbiAgICB0aGlzLmkxOG4gPSB7IC4uLmRlZmF1bHRJMThuLCAuLi50aGlzLmkxOG4gfTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc0ZpbGVzKGZpbGVMaXN0OiBGaWxlW10pOiB2b2lkIHtcbiAgICB0aGlzLmVycm9ycyA9IFtdO1xuICAgIHZhciB2YWxpZEZpbGVzOiBGaWxlW10gPSBbXTtcblxuICAgIGZpbGVMaXN0LmZvckVhY2goKGZpbGU6IEZpbGUpID0+IHtcbiAgICAgIGxldCBoYXNFcnJvciA9IGZhbHNlO1xuXG4gICAgICBpZiAodGhpcy5maWxlRm9ybWF0cz8ubGVuZ3RoKSB7XG4gICAgICAgIHZhciBleHQgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKT8udG9Mb3dlckNhc2UoKTtcblxuICAgICAgICB2YXIgdHJpbW1lZEZvcm1hdHMgPSAodGhpcy5maWxlRm9ybWF0cyB8fCBbXSlcbiAgICAgICAgICAuZmxhdE1hcCgoZikgPT4gZi5zcGxpdCgnLCcpKVxuICAgICAgICAgIC5tYXAoKGYpID0+IGYucmVwbGFjZSgnLicsICcnKS50cmltKCkudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIHZhciBpc0FsbG93ZWQgPSB0cmltbWVkRm9ybWF0cy5pbmNsdWRlcyhleHQhKTtcblxuICAgICAgICBpZiAoIWlzQWxsb3dlZCkge1xuICAgICAgICAgIHRoaXMuZXJyb3JzLnB1c2goYFwiJHtmaWxlLm5hbWV9XCIgLSBuZW0gdMOhbW9nYXRvdHQgZm9ybcOhdHVtYCk7XG4gICAgICAgICAgaGFzRXJyb3IgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChmaWxlLnNpemUgPiB0aGlzLm1heFNpemVNYiEgKiAxMDI0ICogMTAyNCkge1xuICAgICAgICB0aGlzLmVycm9ycy5wdXNoKGBcIiR7ZmlsZS5uYW1lfVwiIC0gdMO6bCBuYWd5IGbDoWpsIChtYXggJHt0aGlzLm1heFNpemVNYn0gTUIpYCk7XG4gICAgICAgIGhhc0Vycm9yID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFoYXNFcnJvcikge1xuICAgICAgICB2YWxpZEZpbGVzLnB1c2goZmlsZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5pc011bHRpcGxlKSB7XG4gICAgICB0aGlzLmZpbGVzID0gWy4uLnRoaXMuZmlsZXMsIC4uLnZhbGlkRmlsZXNdO1xuICAgIH0gZWxzZSBpZiAodmFsaWRGaWxlcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZmlsZXMgPSBbdmFsaWRGaWxlc1swXV07XG4gICAgfVxuICAgIGlmICh0aGlzLmF1dG9VcGxvYWQgJiYgdGhpcy5lcnJvcnMubGVuZ3RoID09IDApIHtcbiAgICAgIHRoaXMudXBsb2FkRmlsZSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldEZpbGUoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChldmVudC50YXJnZXQuZmlsZXMgJiYgZXZlbnQudGFyZ2V0LmZpbGVzLmxlbmd0aCkge1xuICAgICAgdmFyIGZpbGVMaXN0ID0gQXJyYXkuZnJvbShldmVudC50YXJnZXQuZmlsZXMpIGFzIEZpbGVbXTtcbiAgICAgIHRoaXMucHJvY2Vzc0ZpbGVzKGZpbGVMaXN0KTtcbiAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICB9XG4gIH1cblxuICBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5pc0RyYWdPdmVyID0gZmFsc2U7XG5cbiAgICBpZiAoIWV2ZW50LmRhdGFUcmFuc2Zlcj8uZmlsZXMpIHJldHVybjtcbiAgICBjb25zdCBmaWxlTGlzdCA9IEFycmF5LmZyb20oZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTtcbiAgICB0aGlzLnByb2Nlc3NGaWxlcyhmaWxlTGlzdCk7XG4gIH1cblxuICBvbkRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuaXNEcmFnT3ZlciA9IHRydWU7XG4gIH1cblxuICBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IHJlbGF0ZWQgPSBldmVudC5yZWxhdGVkVGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICBsZXQgc3RvcERyYWcgPSBmYWxzZTtcblxuICAgIGlmICghcmVsYXRlZCkge1xuICAgICAgc3RvcERyYWcgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwYXJlbnREcm9wID0gcmVsYXRlZC5jbG9zZXN0KCcuY29udGFpbmVyJyk7XG4gICAgICBpZiAocmVsYXRlZCAhPT0gZXZlbnQuY3VycmVudFRhcmdldCAmJiAhcGFyZW50RHJvcCkge1xuICAgICAgICBzdG9wRHJhZyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHN0b3BEcmFnKSB7XG4gICAgICB0aGlzLmlzRHJhZ092ZXIgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZW1vdmUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuZmlsZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgfVxuXG4gIHVwbG9hZEZpbGUoKTogdm9pZCB7XG4gICAgdGhpcy51cGxvYWRDYWxsYmFjayh0aGlzLmZpbGVzKTtcbiAgfVxuXG4gIGZvcm1hdFNpemUoYnl0ZXM6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKGJ5dGVzID09PSAwKSByZXR1cm4gJzAgQic7XG4gICAgY29uc3QgayA9IDEwMjQ7XG4gICAgY29uc3Qgc2l6ZXMgPSBbJ0InLCAnS0InLCAnTUInLCAnR0InLCAnVEInXTtcbiAgICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJzZUZsb2F0KChieXRlcyAvIE1hdGgucG93KGssIGkpKS50b0ZpeGVkKDEpKTtcbiAgICByZXR1cm4gYCR7dmFsdWV9ICR7c2l6ZXNbaV19YDtcbiAgfVxuXG4gIHByZXZpZXdVcmxzID0gbmV3IE1hcDxGaWxlLCBzdHJpbmc+KCk7XG5cbiAgZmlsZVByZXZpZXdVcmwoZmlsZTogRmlsZSk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghZmlsZSB8fCAhZmlsZS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcmV2aWV3VXJscy5oYXMoZmlsZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLnByZXZpZXdVcmxzLmdldChmaWxlKSE7XG4gICAgfVxuXG4gICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcbiAgICB0aGlzLnByZXZpZXdVcmxzLnNldChmaWxlLCB1cmwpO1xuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICBkb3dubG9hZEZpbGUoZmlsZTogRmlsZSk6IHZvaWQge1xuICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSk7XG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBhLmhyZWYgPSB1cmw7XG4gICAgYS5kb3dubG9hZCA9IGZpbGUubmFtZTtcbiAgICBhLmNsaWNrKCk7XG4gICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICB9XG5cbiAgZ2V0IHVwbG9hZEJ1dHRvbigpOiBVaUFjdGlvbkRlc2NyaXB0b3Ige1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogdGhpcy5pMThuIS51cGxvYWQgPz8gJycsXG4gICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgdHlwZTogVWlBY3Rpb25CdXR0b25UeXBlLlJBSVNFRCxcbiAgICAgIGljb246ICd1cGxvYWQnLFxuICAgICAgaWNvblBvc2l0aW9uOiBJY29uUG9zaXRpb24uUFJFLFxuICAgIH07XG4gIH1cblxuICBnZXQgZG93bmxvYWRCdXR0b24oKTogVWlBY3Rpb25EZXNjcmlwdG9yIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6ICcnLFxuICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgIHR5cGU6IFVpQWN0aW9uQnV0dG9uVHlwZS5JQ09OLFxuICAgICAgaWNvbjogJ2Rvd25sb2FkJyxcbiAgICAgIGljb25Qb3NpdGlvbjogSWNvblBvc2l0aW9uLlBSRSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0IHJlbW92ZUJ1dHRvbigpOiBVaUFjdGlvbkRlc2NyaXB0b3Ige1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZTogJycsXG4gICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgdHlwZTogVWlBY3Rpb25CdXR0b25UeXBlLklDT04sXG4gICAgICBpY29uOiAnY2xvc2UnLFxuICAgICAgaWNvbkNvbG9yOiAncmVkJyxcbiAgICAgIGljb25Qb3NpdGlvbjogSWNvblBvc2l0aW9uLlBSRSxcbiAgICB9O1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiY29udGFpbmVyXCJcbiAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZFdpZGdldDogaXNEaXNhYmxlZCB9XCJcbiAgKGRyYWdvdmVyKT1cIm9uRHJhZ092ZXIoJGV2ZW50KVwiXG4gIChkcmFnbGVhdmUpPVwib25EcmFnTGVhdmUoJGV2ZW50KVwiXG4gIChkcm9wKT1cIm9uRHJvcCgkZXZlbnQpXCJcbiAgW2NsYXNzLmRyYWdvdmVyXT1cImlzRHJhZ092ZXJcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZmlsZUNvbnRhaW5lclwiIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiPlxuICAgIDxpbnB1dFxuICAgICAgI2ZpbGVJbnB1dFxuICAgICAgaWQ9XCJhZGRGaWxlXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiZmlsZUlucHV0XCJcbiAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgIChjaGFuZ2UpPVwiZ2V0RmlsZSgkZXZlbnQpXCJcbiAgICAgIGNsYXNzPVwiZmlsZVwiXG4gICAgICBhY2NlcHQ9XCJ7eyBmaWxlRm9ybWF0cz8uam9pbignLCAnKSB9fVwiXG4gICAgICBbc2l6ZV09XCJtYXhTaXplTWJcIlxuICAgICAgW211bHRpcGxlXT1cImlzTXVsdGlwbGVcIlxuICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgc3R5bGU9XCJkaXNwbGF5OiBub25lXCJcbiAgICAvPlxuICAgIDxkaXYgY2xhc3M9XCJmaWxlVXBsb2FkQ29udGVudENvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImljb25cIj5cbiAgICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cInVzZUljb25CdXR0b25cIiBjbGFzcz1cImFkZEZpbGVCdXR0b25cIj5cbiAgICAgICAgICA8bWF0LWljb24gY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJhZGRDaXJjbGVcIj5hZGRfY2lyY2xlPC9tYXQtaWNvbj5cbiAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCIhdXNlSWNvbkJ1dHRvblwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwiYWRkRmlsZUJ1dHRvblwiPlxuICAgICAgICAgIHt7IGkxOG4hLmFkZEZpbGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbHNcIj5cbiAgICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cInVzZUljb25CdXR0b25cIiBjbGFzcz1cImxhYmVsIHByaW1hcnkgdGl0bGVcIj5cbiAgICAgICAgICB7eyBpMThuIS5hZGRGaWxlIH19XG4gICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwibGFiZWwgc2Vjb25kYXJ5XCI+IHt7IGkxOG4hLmJyb3dzZU9yRHJhZyB9fSA8L21hdC1sYWJlbD5cbiAgICAgICAgPG1hdC1sYWJlbCBjbGFzcz1cInN1YkxhYmVsIHByaW1hcnlcIj4ge3sgaTE4biEubWF4U2l6ZSB9fSA8L21hdC1sYWJlbD5cbiAgICAgICAgPG1hdC1sYWJlbCBjbGFzcz1cInN1YkxhYmVsIHByaW1hcnlcIj4ge3sgaTE4biEuZm9ybWF0cyB9fSA8L21hdC1sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZEJ1dHRvblwiICpuZ0lmPVwiZmlsZXMubGVuZ3RoXCI+XG4gICAgICAgIDx1aS1hY3Rpb24tYnV0dG9uIChhY3Rpb25DbGljayk9XCJ1cGxvYWRGaWxlKClcIiBbZGVzY3JpcHRvcl09XCJ1cGxvYWRCdXR0b25cIj5cbiAgICAgICAgPC91aS1hY3Rpb24tYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9XCJlcnJvcnMubGVuZ3RoXCIgY2xhc3M9XCJlcnJvck1lc3NhZ2VcIj5cbiAgICA8c21hcnQtaWNvbiBbaWNvbl09XCInZXJyb3InXCIgW2NvbG9yXT1cIid3YXJuJ1wiPjwvc21hcnQtaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZXJyb3JzXCI+XG4gICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgZXJyb3JzXCI+e3sgZXJyb3IgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9XCJmaWxlcy5sZW5ndGhcIiBjbGFzcz1cInVwbG9hZGVkRmlsZXNDb250YWluZXJcIj5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJ1cGxvYWRlZEZpbGVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWxlUHJldmlld1VybChmaWxlKTsgZWxzZSBmaWxlSWNvblwiPlxuICAgICAgICA8aW1nIFtzcmNdPVwiZmlsZVByZXZpZXdVcmwoZmlsZSlcIiBbYWx0XT1cImZpbGUubmFtZVwiIHdpZHRoPVwiNTBcIiBoZWlnaHQ9XCI1MFwiIC8+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZmlsZUljb24+XG4gICAgICAgIDxzbWFydC1pY29uIFtpY29uXT1cIidpbnNlcnRfZHJpdmVfZmlsZSdcIj48L3NtYXJ0LWljb24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsZURhdGFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGVEYXRhQ29udGFpbmVyXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlTmFtZVwiPnt7IGZpbGUubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGVTaXplXCI+e3sgZm9ybWF0U2l6ZShmaWxlLnNpemUpIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsZUFjdGlvbnNcIj5cbiAgICAgICAgPHNtYXJ0LWljb24gY2xhc3M9XCJkb3dubG9hZEljb25cIiBpY29uPVwiZG93bmxvYWRcIiAoY2xpY2spPVwiZG93bmxvYWRGaWxlKGZpbGUpXCI+PC9zbWFydC1pY29uPlxuICAgICAgICA8c21hcnQtaWNvbiBjbGFzcz1cInJlbW92ZUljb25cIiBpY29uPVwiZGVsZXRlXCIgKGNsaWNrKT1cInJlbW92ZShpKVwiPjwvc21hcnQtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxldXBsb2FkZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3NtYXJ0ZmlsZXVwbG9hZGVyL3NtYXJ0ZmlsZXVwbG9hZGVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNtYXJ0RmlsZVVwbG9hZGVySTE4biB7XG5cdGFkZEZpbGU6IHN0cmluZztcblx0YnJvd3NlT3JEcmFnOiBzdHJpbmc7XG5cdG1heFNpemU6IHN0cmluZztcblx0Zm9ybWF0czogc3RyaW5nO1xuXHR1cGxvYWQ/OiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,190 @@
1
+ import { Component, Inject, Input, ViewChildren, } from '@angular/core';
2
+ import { Subject, takeUntil } from 'rxjs';
3
+ import { SmartSubject } from '../smart-subject/projects';
4
+ import { SmartFormWidgetDirection, SmartFormWidgetType } from './api';
5
+ import { SmartFormService } from './services/smartform.service';
6
+ import { COMPONENT_LIBRARY } from '../view-context/utility/componentLibrary';
7
+ import { SmartformwidgetComponent } from './widgets/smartformwidget/smartformwidget.component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "./services/smartform.service";
10
+ import * as i2 from "@angular/common";
11
+ import * as i3 from "@angular/forms";
12
+ import * as i4 from "./widgets/smartformwidget/smartformwidget.component";
13
+ import * as i5 from "../view-context/utility/componentLibrary";
14
+ export class SmartformComponent {
15
+ constructor(service, compLib) {
16
+ this.service = service;
17
+ this.compLib = compLib;
18
+ this._destroy$ = new Subject();
19
+ this.originalWidgets = [];
20
+ this.sophisticatedValueChange = new SmartSubject(this._destroy$);
21
+ this.blurSophisticatedValueChange = new SmartSubject(this._destroy$);
22
+ this.direction = SmartFormWidgetDirection;
23
+ }
24
+ ngOnChanges(changes) {
25
+ this.smartForm = changes['smartForm'].currentValue;
26
+ this.originalWidgets = [];
27
+ if (this.smartForm) {
28
+ this.constructForm();
29
+ }
30
+ }
31
+ ngOnInit() {
32
+ if (this.smartForm) {
33
+ this.constructForm();
34
+ }
35
+ this.onBlurSubject = new SmartSubject(this._destroy$);
36
+ }
37
+ // ngAfterViewInit(): void {
38
+ // if (this.smartWidgetsQL) {
39
+ // this.handleQueryList(this.smartWidgetsQL, (widget) => {
40
+ // // ???
41
+ // });
42
+ // }
43
+ // }
44
+ // // TODO this is a duplicate from SmartFormApiClient -> move it to a utility
45
+ // protected handleQueryList<T>(ql: QueryList<T>, handler: (el: T) => void) {
46
+ // ql.forEach((el) => handler(el));
47
+ // ql.changes
48
+ // .pipe(takeUntil(this._destroy$))
49
+ // .subscribe((list) => (list as QueryList<T>).forEach((el) => handler(el)));
50
+ // }
51
+ refresh() {
52
+ this.service.setValuesFromModel();
53
+ }
54
+ constructForm() {
55
+ if (!this.smartForm) {
56
+ throw new Error('Smartform has not been defined!');
57
+ }
58
+ if (this.smartForm.useOnValueChangeEvent && !this.onValueChangeSubject) {
59
+ this.onValueChangeSubject = new SmartSubject(this._destroy$);
60
+ }
61
+ this.service.smartForm = this.smartForm;
62
+ if (!this.originalWidgets || this.originalWidgets.length === 0) {
63
+ this.originalWidgets = this.smartForm.widgets;
64
+ }
65
+ this.service.setValuesFromModel(this.originalWidgets, this.compLib);
66
+ this.service.applyConstraints(this.originalWidgets);
67
+ this.smartForm.widgets = this.service.filterWidgetsByVisibility(this.originalWidgets);
68
+ this.form = this.service.toFormGroup(this.compLib);
69
+ if (this.smartForm.translateService) {
70
+ this.smartForm.translateService.onLangChange.pipe(takeUntil(this._destroy$)).subscribe(() => {
71
+ this.translateWidgets(this.smartForm.widgets);
72
+ });
73
+ this.translateWidgets(this.smartForm.widgets);
74
+ }
75
+ this.markAllWidgetsForChangeDetection();
76
+ }
77
+ async translateWidgets(widgets) {
78
+ await this.service.translateWidgets(this.smartForm.widgets);
79
+ this.markAllWidgetsForChangeDetection();
80
+ }
81
+ markAllWidgetsForChangeDetection() {
82
+ this.getAllSmartWidgets().forEach((widget) => widget.changeDetector.markForCheck());
83
+ }
84
+ getAllSmartWidgets() {
85
+ const result = [];
86
+ this.smartWidgetsQL?.forEach((widget) => {
87
+ result.push(...this.getChildWidgets(widget));
88
+ });
89
+ return result;
90
+ }
91
+ getChildWidgets(widget) {
92
+ if (widget.widgetInstance.type == SmartFormWidgetType.CONTAINER) {
93
+ const result = [];
94
+ widget.childrenWidgetsQL?.forEach((child) => result.push(...this.getChildWidgets(child)));
95
+ return result;
96
+ }
97
+ else {
98
+ return [widget];
99
+ }
100
+ }
101
+ ngOnDestroy() {
102
+ this._destroy$.next();
103
+ this._destroy$.complete();
104
+ }
105
+ getForm() {
106
+ return this.form;
107
+ }
108
+ getInvalidFields() {
109
+ let invalidFields = {
110
+ invalidFieldKeys: [],
111
+ invalidFieldNames: [],
112
+ };
113
+ if (this.form) {
114
+ for (const control of Object.keys(this.form.controls)) {
115
+ if (!this.form.controls[control].valid) {
116
+ let widget = this.service.getSmartFormWidgetByKey(control);
117
+ if (widget &&
118
+ widget.type !== SmartFormWidgetType.CONTAINER &&
119
+ widget.type !== SmartFormWidgetType.INDICATOR &&
120
+ widget.type !== SmartFormWidgetType.LABEL &&
121
+ widget.type !== SmartFormWidgetType.FILE_UPLOADER &&
122
+ widget.type !== SmartFormWidgetType.MULTI_FILE_UPLOADER &&
123
+ widget.type !== SmartFormWidgetType.RECORDING_UPLOADER &&
124
+ widget.type !== SmartFormWidgetType.IMAGE &&
125
+ widget.type !== SmartFormWidgetType.DIV &&
126
+ widget.type !== SmartFormWidgetType.SVG &&
127
+ widget.type !== SmartFormWidgetType.DIVIDER &&
128
+ widget.type !== SmartFormWidgetType.BUTTON &&
129
+ widget.type !== SmartFormWidgetType.COMPONENT &&
130
+ widget.type !== SmartFormWidgetType.YOUTUBE_PLAYER &&
131
+ !widget.isDisabled) {
132
+ invalidFields.invalidFieldNames.push(widget.label);
133
+ invalidFields.invalidFieldKeys.push(widget.key);
134
+ }
135
+ }
136
+ }
137
+ }
138
+ return invalidFields;
139
+ }
140
+ submitForm(validate = true) {
141
+ if (validate) {
142
+ this.smartForm.invalidFields = undefined;
143
+ if (this.form && this.form.invalid) {
144
+ for (const control of Object.keys(this.form.controls)) {
145
+ this.form.controls[control].markAsTouched();
146
+ this.form.controls[control].markAsDirty();
147
+ // this.form.controls[control].setValue(value);
148
+ }
149
+ this.smartForm.invalidFields = this.getInvalidFields();
150
+ this.markAllWidgetsForChangeDetection();
151
+ return this.smartForm;
152
+ }
153
+ }
154
+ return this.service.toSmartForm(this.form);
155
+ }
156
+ keyDownFunction(event) {
157
+ if (event.keyCode === 13 && this.smartForm.submitOnEnter) {
158
+ this.smartForm.submitOnEnter();
159
+ }
160
+ }
161
+ getModel() {
162
+ return this.service.getModel(this.form);
163
+ }
164
+ getToolbars() {
165
+ if (this.smartWidgetsQL) {
166
+ let toolbars = this.smartWidgetsQL
167
+ .filter((widget) => widget.toolbar !== undefined && widget.toolbar !== null)
168
+ .map((widget) => widget.toolbar);
169
+ if (toolbars) {
170
+ return toolbars;
171
+ }
172
+ }
173
+ return [];
174
+ }
175
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartformComponent, deps: [{ token: i1.SmartFormService }, { token: COMPONENT_LIBRARY }], target: i0.ɵɵFactoryTarget.Component }); }
176
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartformComponent, selector: "smartform", inputs: { smartForm: "smartForm" }, providers: [SmartFormService], viewQueries: [{ propertyName: "smartWidgetsQL", predicate: SmartformwidgetComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<form *ngIf=\"smartForm\" (keydown)=\"keyDownFunction($event)\" [formGroup]=\"form\" class=\"flex form\">\n <h2 *ngIf=\"smartForm.name\">\n {{ smartForm.name }}\n </h2>\n <div [ngClass]=\"smartForm.direction === direction.ROW ? 'row' : 'col'\">\n <div *ngFor=\"let widget of smartForm.widgets\" class=\"item\">\n <smartformwidget\n *ngIf=\"widget.isVisible === undefined ? true : widget.isVisible\"\n [widgetInstance]=\"widget\"\n [form]=\"form\"\n class=\"grid-item\"\n [onBlur]=\"onBlurSubject\"\n [onValueChange]=\"onValueChangeSubject\"\n [blurSophisticatedValueChange]=\"blurSophisticatedValueChange\"\n [sophisticatedValueChange]=\"sophisticatedValueChange\"\n class=\"{{ widget.key }}\"\n [labelColor]=\"smartForm.labelTheme\"\n (valueCleared)=\"submitForm(true)\"\n ></smartformwidget>\n </div>\n </div>\n</form>\n", styles: [":host{display:flex}form{display:flex;flex:1}.col{flex:1;display:flex;flex-direction:column;gap:.25em}.row{flex:1;display:flex;flex-wrap:wrap;gap:.25em}.grid-item{text-align:left}.item{flex:1}.item ::ng-deep .p-inputtext{width:100%!important;min-height:45px}.item ::ng-deep p-inputnumber,.item ::ng-deep .p-inputnumber{width:100%!important;height:45px!important}.item ::ng-deep .p-dropdown,.item ::ng-deep .p-multiselect{width:100%!important}.item ::ng-deep p-overlay{z-index:1002}.item ::ng-deep .p-chips{width:100%!important;height:45px!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.SmartformwidgetComponent, selector: "smartformwidget", inputs: ["form", "widgetInstance", "onBlur", "onValueChange", "labelColor", "sophisticatedValueChange", "blurSophisticatedValueChange"], outputs: ["valueCleared"] }] }); }
177
+ }
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartformComponent, decorators: [{
179
+ type: Component,
180
+ args: [{ selector: 'smartform', providers: [SmartFormService], template: "<form *ngIf=\"smartForm\" (keydown)=\"keyDownFunction($event)\" [formGroup]=\"form\" class=\"flex form\">\n <h2 *ngIf=\"smartForm.name\">\n {{ smartForm.name }}\n </h2>\n <div [ngClass]=\"smartForm.direction === direction.ROW ? 'row' : 'col'\">\n <div *ngFor=\"let widget of smartForm.widgets\" class=\"item\">\n <smartformwidget\n *ngIf=\"widget.isVisible === undefined ? true : widget.isVisible\"\n [widgetInstance]=\"widget\"\n [form]=\"form\"\n class=\"grid-item\"\n [onBlur]=\"onBlurSubject\"\n [onValueChange]=\"onValueChangeSubject\"\n [blurSophisticatedValueChange]=\"blurSophisticatedValueChange\"\n [sophisticatedValueChange]=\"sophisticatedValueChange\"\n class=\"{{ widget.key }}\"\n [labelColor]=\"smartForm.labelTheme\"\n (valueCleared)=\"submitForm(true)\"\n ></smartformwidget>\n </div>\n </div>\n</form>\n", styles: [":host{display:flex}form{display:flex;flex:1}.col{flex:1;display:flex;flex-direction:column;gap:.25em}.row{flex:1;display:flex;flex-wrap:wrap;gap:.25em}.grid-item{text-align:left}.item{flex:1}.item ::ng-deep .p-inputtext{width:100%!important;min-height:45px}.item ::ng-deep p-inputnumber,.item ::ng-deep .p-inputnumber{width:100%!important;height:45px!important}.item ::ng-deep .p-dropdown,.item ::ng-deep .p-multiselect{width:100%!important}.item ::ng-deep p-overlay{z-index:1002}.item ::ng-deep .p-chips{width:100%!important;height:45px!important}\n"] }]
181
+ }], ctorParameters: () => [{ type: i1.SmartFormService }, { type: i5.ComponentLibrary, decorators: [{
182
+ type: Inject,
183
+ args: [COMPONENT_LIBRARY]
184
+ }] }], propDecorators: { smartForm: [{
185
+ type: Input
186
+ }], smartWidgetsQL: [{
187
+ type: ViewChildren,
188
+ args: [SmartformwidgetComponent]
189
+ }] } });
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWZvcm0vc21hcnRmb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWZvcm0vc21hcnRmb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFNTCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUloRSxPQUFPLEVBQUUsaUJBQWlCLEVBQW9CLE1BQU0sMENBQTBDLENBQUM7QUFFL0YsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scURBQXFELENBQUM7Ozs7Ozs7QUFRL0YsTUFBTSxPQUFPLGtCQUFrQjtJQW9CN0IsWUFDVSxPQUF5QixFQUNDLE9BQXlCO1FBRG5ELFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQ0MsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFyQnJELGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUtqRCxvQkFBZSxHQUEyQixFQUFFLENBQUM7UUFFN0MsNkJBQXdCLEdBQXNDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvRixpQ0FBNEIsR0FBc0MsSUFBSSxZQUFZLENBQ2hGLElBQUksQ0FB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QyxpQkFBaUI7eUNBbkJsQixTQUFTO3NCQUFqQixLQUFLO2dCQWVOLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNtYXJ0U3ViamVjdCB9IGZyb20gJy4uL3NtYXJ0LXN1YmplY3QvcHJvamVjdHMnO1xuaW1wb3J0IHsgU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uLCBTbWFydEZvcm1XaWRnZXRUeXBlIH0gZnJvbSAnLi9hcGknO1xuaW1wb3J0IHsgU21hcnRGb3JtU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc21hcnRmb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgU21hcnRGb3JtLCBTbWFydEZvcm1JbnZhbGlkRmllbGRzLCBTb3BoaXN0aWNhdGVkVmFsdWVDaGFuZ2UgfSBmcm9tICcuL3NtYXJ0Zm9ybS5tb2RlbCc7XG4vLyBpbXBvcnQgeyBVaUFjdGlvblRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuLi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaUFjdGlvblRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuLi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDT01QT05FTlRfTElCUkFSWSwgQ29tcG9uZW50TGlicmFyeSB9IGZyb20gJy4uL3ZpZXctY29udGV4dC91dGlsaXR5L2NvbXBvbmVudExpYnJhcnknO1xuaW1wb3J0IHsgU21hcnRGb3JtV2lkZ2V0IH0gZnJvbSAnLi9zbWFydGZvcm0uZm9ybS1tb2RlbCc7XG5pbXBvcnQgeyBTbWFydGZvcm13aWRnZXRDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvc21hcnRmb3Jtd2lkZ2V0L3NtYXJ0Zm9ybXdpZGdldC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydGZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vc21hcnRmb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc21hcnRmb3JtLmNvbXBvbmVudC5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbU21hcnRGb3JtU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0Zm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICBwcml2YXRlIF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgQElucHV0KCkgc21hcnRGb3JtPzogU21hcnRGb3JtO1xuICBvbkJsdXJTdWJqZWN0PzogU3ViamVjdDxhbnk+O1xuICBvblZhbHVlQ2hhbmdlU3ViamVjdD86IFN1YmplY3Q8YW55PjtcbiAgb3JpZ2luYWxXaWRnZXRzOiBTbWFydEZvcm1XaWRnZXQ8YW55PltdID0gW107XG5cbiAgc29waGlzdGljYXRlZFZhbHVlQ2hhbmdlOiBTdWJqZWN0PFNvcGhpc3RpY2F0ZWRWYWx1ZUNoYW5nZT4gPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcbiAgYmx1clNvcGhpc3RpY2F0ZWRWYWx1ZUNoYW5nZTogU3ViamVjdDxTb3BoaXN0aWNhdGVkVmFsdWVDaGFuZ2U+ID0gbmV3IFNtYXJ0U3ViamVjdChcbiAgICB0aGlzLl9kZXN0cm95JFxuICApO1xuXG4gIGZvcm0hOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gIGRpcmVjdGlvbiA9IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbjtcblxuICBAVmlld0NoaWxkcmVuKFNtYXJ0Zm9ybXdpZGdldENvbXBvbmVudClcbiAgc21hcnRXaWRnZXRzUUw/OiBRdWVyeUxpc3Q8U21hcnRmb3Jtd2lkZ2V0Q29tcG9uZW50PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNlcnZpY2U6IFNtYXJ0Rm9ybVNlcnZpY2UsXG4gICAgQEluamVjdChDT01QT05FTlRfTElCUkFSWSkgcHVibGljIGNvbXBMaWI6IENvbXBvbmVudExpYnJhcnlcbiAgKSB7fVxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5zbWFydEZvcm0gPSBjaGFuZ2VzWydzbWFydEZvcm0nXS5jdXJyZW50VmFsdWU7XG4gICAgdGhpcy5vcmlnaW5hbFdpZGdldHMgPSBbXTtcbiAgICBpZiAodGhpcy5zbWFydEZvcm0pIHtcbiAgICAgIHRoaXMuY29uc3RydWN0Rm9ybSgpO1xuICAgIH1cbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zbWFydEZvcm0pIHtcbiAgICAgIHRoaXMuY29uc3RydWN0Rm9ybSgpO1xuICAgIH1cbiAgICB0aGlzLm9uQmx1clN1YmplY3QgPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcbiAgfVxuXG4gIC8vIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgLy8gICBpZiAodGhpcy5zbWFydFdpZGdldHNRTCkge1xuICAvLyAgICAgdGhpcy5oYW5kbGVRdWVyeUxpc3QodGhpcy5zbWFydFdpZGdldHNRTCwgKHdpZGdldCkgPT4ge1xuICAvLyAgICAgICAvLyA/Pz9cbiAgLy8gICAgIH0pO1xuICAvLyAgIH1cbiAgLy8gfVxuXG4gIC8vIC8vIFRPRE8gdGhpcyBpcyBhIGR1cGxpY2F0ZSBmcm9tIFNtYXJ0Rm9ybUFwaUNsaWVudCAtPiBtb3ZlIGl0IHRvIGEgdXRpbGl0eVxuICAvLyBwcm90ZWN0ZWQgaGFuZGxlUXVlcnlMaXN0PFQ+KHFsOiBRdWVyeUxpc3Q8VD4sIGhhbmRsZXI6IChlbDogVCkgPT4gdm9pZCkge1xuICAvLyAgIHFsLmZvckVhY2goKGVsKSA9PiBoYW5kbGVyKGVsKSk7XG4gIC8vICAgcWwuY2hhbmdlc1xuICAvLyAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgLy8gICAgIC5zdWJzY3JpYmUoKGxpc3QpID0+IChsaXN0IGFzIFF1ZXJ5TGlzdDxUPikuZm9yRWFjaCgoZWwpID0+IGhhbmRsZXIoZWwpKSk7XG4gIC8vIH1cblxuICByZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5zZXRWYWx1ZXNGcm9tTW9kZWwoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdEZvcm0oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNtYXJ0Rm9ybSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTbWFydGZvcm0gaGFzIG5vdCBiZWVuIGRlZmluZWQhJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc21hcnRGb3JtLnVzZU9uVmFsdWVDaGFuZ2VFdmVudCAmJiAhdGhpcy5vblZhbHVlQ2hhbmdlU3ViamVjdCkge1xuICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlU3ViamVjdCA9IG5ldyBTbWFydFN1YmplY3QodGhpcy5fZGVzdHJveSQpO1xuICAgIH1cblxuICAgIHRoaXMuc2VydmljZS5zbWFydEZvcm0gPSB0aGlzLnNtYXJ0Rm9ybTtcbiAgICBpZiAoIXRoaXMub3JpZ2luYWxXaWRnZXRzIHx8IHRoaXMub3JpZ2luYWxXaWRnZXRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5vcmlnaW5hbFdpZGdldHMgPSB0aGlzLnNtYXJ0Rm9ybS53aWRnZXRzO1xuICAgIH1cbiAgICB0aGlzLnNlcnZpY2Uuc2V0VmFsdWVzRnJvbU1vZGVsKHRoaXMub3JpZ2luYWxXaWRnZXRzLCB0aGlzLmNvbXBMaWIpO1xuICAgIHRoaXMuc2VydmljZS5hcHBseUNvbnN0cmFpbnRzKHRoaXMub3JpZ2luYWxXaWRnZXRzKTtcbiAgICB0aGlzLnNtYXJ0Rm9ybS53aWRnZXRzID0gdGhpcy5zZXJ2aWNlLmZpbHRlcldpZGdldHNCeVZpc2liaWxpdHkodGhpcy5vcmlnaW5hbFdpZGdldHMpO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuc2VydmljZS50b0Zvcm1Hcm91cCh0aGlzLmNvbXBMaWIpO1xuXG4gICAgaWYgKHRoaXMuc21hcnRGb3JtLnRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICAgIHRoaXMuc21hcnRGb3JtLnRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy50cmFuc2xhdGVXaWRnZXRzKHRoaXMuc21hcnRGb3JtIS53aWRnZXRzKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy50cmFuc2xhdGVXaWRnZXRzKHRoaXMuc21hcnRGb3JtLndpZGdldHMpO1xuICAgIH1cbiAgICB0aGlzLm1hcmtBbGxXaWRnZXRzRm9yQ2hhbmdlRGV0ZWN0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHRyYW5zbGF0ZVdpZGdldHMod2lkZ2V0czogU21hcnRGb3JtV2lkZ2V0PGFueT5bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc2VydmljZS50cmFuc2xhdGVXaWRnZXRzKHRoaXMuc21hcnRGb3JtIS53aWRnZXRzKTtcbiAgICB0aGlzLm1hcmtBbGxXaWRnZXRzRm9yQ2hhbmdlRGV0ZWN0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbWFya0FsbFdpZGdldHNGb3JDaGFuZ2VEZXRlY3Rpb24oKSB7XG4gICAgdGhpcy5nZXRBbGxTbWFydFdpZGdldHMoKS5mb3JFYWNoKCh3aWRnZXQpID0+IHdpZGdldC5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKSk7XG4gIH1cbiAgcHJpdmF0ZSBnZXRBbGxTbWFydFdpZGdldHMoKTogU21hcnRmb3Jtd2lkZ2V0Q29tcG9uZW50W10ge1xuICAgIGNvbnN0IHJlc3VsdDogU21hcnRmb3Jtd2lkZ2V0Q29tcG9uZW50W10gPSBbXTtcbiAgICB0aGlzLnNtYXJ0V2lkZ2V0c1FMPy5mb3JFYWNoKCh3aWRnZXQpID0+IHtcbiAgICAgIHJlc3VsdC5wdXNoKC4uLnRoaXMuZ2V0Q2hpbGRXaWRnZXRzKHdpZGdldCkpO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldENoaWxkV2lkZ2V0cyh3aWRnZXQ6IFNtYXJ0Zm9ybXdpZGdldENvbXBvbmVudCk6IFNtYXJ0Zm9ybXdpZGdldENvbXBvbmVudFtdIHtcbiAgICBpZiAod2lkZ2V0LndpZGdldEluc3RhbmNlLnR5cGUgPT0gU21hcnRGb3JtV2lkZ2V0VHlwZS5DT05UQUlORVIpIHtcbiAgICAgIGNvbnN0IHJlc3VsdDogU21hcnRmb3Jtd2lkZ2V0Q29tcG9uZW50W10gPSBbXTtcbiAgICAgIHdpZGdldC5jaGlsZHJlbldpZGdldHNRTD8uZm9yRWFjaCgoY2hpbGQpID0+IHJlc3VsdC5wdXNoKC4uLnRoaXMuZ2V0Q2hpbGRXaWRnZXRzKGNoaWxkKSkpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFt3aWRnZXRdO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgZ2V0Rm9ybSgpOiBVbnR5cGVkRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtO1xuICB9XG5cbiAgZ2V0SW52YWxpZEZpZWxkcygpOiBTbWFydEZvcm1JbnZhbGlkRmllbGRzIHtcbiAgICBsZXQgaW52YWxpZEZpZWxkczogU21hcnRGb3JtSW52YWxpZEZpZWxkcyA9IHtcbiAgICAgIGludmFsaWRGaWVsZEtleXM6IFtdLFxuICAgICAgaW52YWxpZEZpZWxkTmFtZXM6IFtdLFxuICAgIH07XG4gICAgaWYgKHRoaXMuZm9ybSkge1xuICAgICAgZm9yIChjb25zdCBjb250cm9sIG9mIE9iamVjdC5rZXlzKHRoaXMuZm9ybS5jb250cm9scykpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm0uY29udHJvbHNbY29udHJvbF0udmFsaWQpIHtcbiAgICAgICAgICBsZXQgd2lkZ2V0ID0gdGhpcy5zZXJ2aWNlLmdldFNtYXJ0Rm9ybVdpZGdldEJ5S2V5KGNvbnRyb2wpO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHdpZGdldCAmJlxuICAgICAgICAgICAgd2lkZ2V0LnR5cGUgIT09IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ09OVEFJTkVSICYmXG4gICAgICAgICAgICB3aWRnZXQudHlwZSAhPT0gU21hcnRGb3JtV2lkZ2V0VHlwZS5JTkRJQ0FUT1IgJiZcbiAgICAgICAgICAgIHdpZGdldC50eXBlICE9PSBTbWFydEZvcm1XaWRnZXRUeXBlLkxBQkVMICYmXG4gICAgICAgICAgICB3aWRnZXQudHlwZSAhPT0gU21hcnRGb3JtV2lkZ2V0VHlwZS5GSUxFX1VQTE9BREVSICYmXG4gICAgICAgICAgICB3aWRnZXQudHlwZSAhPT0gU21hcnRGb3JtV2lkZ2V0VHlwZS5NVUxUSV9GSUxFX1VQTE9BREVSICYmXG4gICAgICAgICAgICB3aWRnZXQudHlwZSAhPT0gU21hcnRGb3JtV2lkZ2V0VHlwZS5SRUNPUkRJTkdfVVBMT0FERVIgJiZcbiAgICAgICAgICAgIHdpZGdldC50eXBlICE9PSBTbWFydEZvcm1XaWRnZXRUeXBlLklNQUdFICYmXG4gICAgICAgICAgICB3aWRnZXQudHlwZSAhPT0gU21hcnRGb3JtV2lkZ2V0VHlwZS5ESVYgJiZcbiAgICAgICAgICAgIHdpZGdldC50eXBlICE9PSBTbWFydEZvcm1XaWRnZXRUeXBlLlNWRyAmJlxuICAgICAgICAgICAgd2lkZ2V0LnR5cGUgIT09IFNtYXJ0Rm9ybVdpZGdldFR5cGUuRElWSURFUiAmJlxuICAgICAgICAgICAgd2lkZ2V0LnR5cGUgIT09IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQlVUVE9OICYmXG4gICAgICAgICAgICB3aWRnZXQudHlwZSAhPT0gU21hcnRGb3JtV2lkZ2V0VHlwZS5DT01QT05FTlQgJiZcbiAgICAgICAgICAgIHdpZGdldC50eXBlICE9PSBTbWFydEZvcm1XaWRnZXRUeXBlLllPVVRVQkVfUExBWUVSICYmXG4gICAgICAgICAgICAhd2lkZ2V0LmlzRGlzYWJsZWRcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGludmFsaWRGaWVsZHMuaW52YWxpZEZpZWxkTmFtZXMucHVzaCh3aWRnZXQubGFiZWwpO1xuICAgICAgICAgICAgaW52YWxpZEZpZWxkcy5pbnZhbGlkRmllbGRLZXlzLnB1c2god2lkZ2V0LmtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpbnZhbGlkRmllbGRzO1xuICB9XG5cbiAgc3VibWl0Rm9ybSh2YWxpZGF0ZSA9IHRydWUpOiBTbWFydEZvcm0ge1xuICAgIGlmICh2YWxpZGF0ZSkge1xuICAgICAgdGhpcy5zbWFydEZvcm0hLmludmFsaWRGaWVsZHMgPSB1bmRlZmluZWQ7XG5cbiAgICAgIGlmICh0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmludmFsaWQpIHtcbiAgICAgICAgZm9yIChjb25zdCBjb250cm9sIG9mIE9iamVjdC5rZXlzKHRoaXMuZm9ybS5jb250cm9scykpIHtcbiAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbY29udHJvbF0ubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tjb250cm9sXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgIC8vIHRoaXMuZm9ybS5jb250cm9sc1tjb250cm9sXS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNtYXJ0Rm9ybSEuaW52YWxpZEZpZWxkcyA9IHRoaXMuZ2V0SW52YWxpZEZpZWxkcygpO1xuICAgICAgICB0aGlzLm1hcmtBbGxXaWRnZXRzRm9yQ2hhbmdlRGV0ZWN0aW9uKCk7XG4gICAgICAgIHJldHVybiB0aGlzLnNtYXJ0Rm9ybSE7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNlcnZpY2UudG9TbWFydEZvcm0odGhpcy5mb3JtKTtcbiAgfVxuXG4gIGtleURvd25GdW5jdGlvbihldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDEzICYmIHRoaXMuc21hcnRGb3JtIS5zdWJtaXRPbkVudGVyKSB7XG4gICAgICB0aGlzLnNtYXJ0Rm9ybSEuc3VibWl0T25FbnRlcigpO1xuICAgIH1cbiAgfVxuXG4gIGdldE1vZGVsKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5nZXRNb2RlbCh0aGlzLmZvcm0pO1xuICB9XG5cbiAgZ2V0VG9vbGJhcnMoKTogVWlBY3Rpb25Ub29sYmFyQ29tcG9uZW50W10ge1xuICAgIGlmICh0aGlzLnNtYXJ0V2lkZ2V0c1FMKSB7XG4gICAgICBsZXQgdG9vbGJhcnMgPSB0aGlzLnNtYXJ0V2lkZ2V0c1FMXG4gICAgICAgIC5maWx0ZXIoKHdpZGdldCkgPT4gd2lkZ2V0LnRvb2xiYXIgIT09IHVuZGVmaW5lZCAmJiB3aWRnZXQudG9vbGJhciAhPT0gbnVsbClcbiAgICAgICAgLm1hcCgod2lkZ2V0KSA9PiB3aWRnZXQudG9vbGJhciEpO1xuICAgICAgaWYgKHRvb2xiYXJzKSB7XG4gICAgICAgIHJldHVybiB0b29sYmFycztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG4iLCI8Zm9ybSAqbmdJZj1cInNtYXJ0Rm9ybVwiIChrZXlkb3duKT1cImtleURvd25GdW5jdGlvbigkZXZlbnQpXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJmbGV4IGZvcm1cIj5cbiAgPGgyICpuZ0lmPVwic21hcnRGb3JtLm5hbWVcIj5cbiAgICB7eyBzbWFydEZvcm0ubmFtZSB9fVxuICA8L2gyPlxuICA8ZGl2IFtuZ0NsYXNzXT1cInNtYXJ0Rm9ybS5kaXJlY3Rpb24gPT09IGRpcmVjdGlvbi5ST1cgPyAncm93JyA6ICdjb2wnXCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgd2lkZ2V0IG9mIHNtYXJ0Rm9ybS53aWRnZXRzXCIgY2xhc3M9XCJpdGVtXCI+XG4gICAgICA8c21hcnRmb3Jtd2lkZ2V0XG4gICAgICAgICpuZ0lmPVwid2lkZ2V0LmlzVmlzaWJsZSA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IHdpZGdldC5pc1Zpc2libGVcIlxuICAgICAgICBbd2lkZ2V0SW5zdGFuY2VdPVwid2lkZ2V0XCJcbiAgICAgICAgW2Zvcm1dPVwiZm9ybVwiXG4gICAgICAgIGNsYXNzPVwiZ3JpZC1pdGVtXCJcbiAgICAgICAgW29uQmx1cl09XCJvbkJsdXJTdWJqZWN0XCJcbiAgICAgICAgW29uVmFsdWVDaGFuZ2VdPVwib25WYWx1ZUNoYW5nZVN1YmplY3RcIlxuICAgICAgICBbYmx1clNvcGhpc3RpY2F0ZWRWYWx1ZUNoYW5nZV09XCJibHVyU29waGlzdGljYXRlZFZhbHVlQ2hhbmdlXCJcbiAgICAgICAgW3NvcGhpc3RpY2F0ZWRWYWx1ZUNoYW5nZV09XCJzb3BoaXN0aWNhdGVkVmFsdWVDaGFuZ2VcIlxuICAgICAgICBjbGFzcz1cInt7IHdpZGdldC5rZXkgfX1cIlxuICAgICAgICBbbGFiZWxDb2xvcl09XCJzbWFydEZvcm0ubGFiZWxUaGVtZVwiXG4gICAgICAgICh2YWx1ZUNsZWFyZWQpPVwic3VibWl0Rm9ybSh0cnVlKVwiXG4gICAgICA+PC9zbWFydGZvcm13aWRnZXQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmb3JtLmZvcm0tbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3NtYXJ0Zm9ybS5mb3JtLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWlsbE1vZHVsZXMgfSBmcm9tICduZ3gtcXVpbGwnO1xuaW1wb3J0IHtcbiAgRGF0ZUZpZWxkUHJvcGVydGllcyxcbiAgRmlsZVVwbG9hZGVyUHJvcGVydGllcyxcbiAgTXVsdGlGaWxlVXBsb2FkZXJQcm9wZXJ0aWVzLFxuICBSZWNvcmRpbmdVcGxvYWRlclByb3BlcnRpZXMsXG4gIEltYWdlUHJvcGVydGllcyxcbiAgU2VsZWN0aW9uRGVmaW5pdGlvbixcbiAgU21hcnRGb3JtSW5wdXRNb2RlLFxuICBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24sXG4gIFNtYXJ0Rm9ybVdpZGdldFR5cGUsXG4gIFNtYXJ0V2lkZ2V0SGludCxcbiAgU29ydERlZmluaXRpb24sXG4gIFRleHRGaWVsZFByb3BlcnRpZXMsXG4gIFZhbHVlQ2hhbmdlTW9kZSxcbiAgVGV4dEJveFByb3BlcnRpZXMsXG59IGZyb20gJy4vYXBpJztcbmltcG9ydCB7XG4gIFNtYXJ0Rm9ybVRleHRGaWVsZEJ1dHRvbixcbiAgU21hcnRGb3JtV2lkZ2V0V2lkdGgsXG4gIFNtYXJ0SW5kaWNhdG9yLFxuICBTbWFydFZhbGlkYXRvcixcbiAgVG9nZ2xlTGFiZWxQb3NpdGlvbixcbn0gZnJvbSAnLi9zbWFydGZvcm0ubW9kZWwnO1xuaW1wb3J0IHsgSWNvblBvc2l0aW9uLCBJbWFnZVJlc291cmNlLCBTdHlsZSB9IGZyb20gJy4uL3ZpZXctY29udGV4dC9hcGknO1xuXG5leHBvcnQgZGVjbGFyZSB0eXBlIFNtYXJ0Rm9ybVdpZGdldDxUPiA9XG4gIHwgU21hcnRUZXh0RmllbGQ8VD5cbiAgfCBTbWFydFRleHRGaWVsZE51bWJlcjxUPlxuICB8IFNtYXJ0VGV4dEZpZWxkQ2hpcHM8VD5cbiAgfCBTbWFydFRleHRGaWVsZExvb2t1cDxUPlxuICB8IFNtYXJ0VGV4dEJveDxUPlxuICB8IFNtYXJ0U2VsZWN0PFQ+XG4gIHwgU21hcnRTZWxlY3RNdWx0aXBsZTxUPlxuICB8IFNtYXJ0Q2hlY2tCb3g8VD5cbiAgfCBTbWFydENoZWNrQm94MjxUPlxuICB8IFNtYXJ0UmFkaW9CdXR0b248VD5cbiAgfCBTbWFydERhdGVQaWNrZXI8VD5cbiAgfCBTbWFydERhdGVUaW1lUGlja2VyPFQ+XG4gIHwgU21hcnRDb250YWluZXI8VD5cbiAgfCBTbWFydExhYmVsXG4gIHwgU21hcnRUaW1lPFQ+XG4gIHwgU21hcnRUb2dnbGU8VD5cbiAgfCBTbWFydEluZGljYXRvckl0ZW1cbiAgfCBTbWFydEZpbGVVcGxvYWRlclxuICB8IFNtYXJ0TXVsdGlGaWxlVXBsb2FkZXJcbiAgfCBTbWFydFJlY29yZGluZ1VwbG9hZGVyXG4gIHwgU21hcnRJbWFnZVxuICB8IFNtYXJ0RGl2aWRlclxuICB8IFNtYXJ0QnV0dG9uXG4gIHwgU21hcnRGb3JtSW5saW5lQ29tcG9uZW50XG4gIHwgU21hcnRSaWNoVGV4dFxuICB8IFNtYXJ0U29ydGFibGU8VD5cbiAgfCBTbWFydE1hdHJpeFxuICB8IFNtYXJ0WW91dHViZVBsYXllclxuICB8IFNtYXJ0TW9udGhQaWNrZXJcbiAgfCBTbWFydFN2Z1xuICB8IFNtYXJ0RGl2O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGV4dEZpZWxkPFQ+IHtcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0ZJRUxEO1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xuICBsYWJlbDogc3RyaW5nO1xuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xuICBzaG93TGFiZWw/OiBib29sZWFuO1xuICB2YWx1ZT86IFQ7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBvcmlnaW5hbFBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyIHwgbnVtYmVyO1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XG4gIHByZWZpeD86IHN0cmluZztcbiAgc3VmZml4Pzogc3RyaW5nO1xuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XG4gIGxhYmVsUG9zaXRpb25DbGFzcz86IHN0cmluZztcbiAgaXNGbG9hdExhYmVsPzogYm9vbGVhbjtcbiAgc3R5bGU/OiBTdHlsZTtcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xuICBpc1Bhc3N3b3JkPzogYm9vbGVhbjtcbiAgdGV4dEZpZWxkQnV0dG9uPzogU21hcnRGb3JtVGV4dEZpZWxkQnV0dG9uO1xuICBjYXBzTG9ja1dhcm5pbmc/OiBzdHJpbmc7XG4gIGNhcHNMb2NrV2FybmluZ0ljb24/OiBzdHJpbmc7XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIG1hc2s/OiBzdHJpbmc7XG4gIGVycm9yPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBpY29uQ29sb3I/OiBzdHJpbmc7XG4gIGljb25Qb3NpdGlvbj86IEljb25Qb3NpdGlvbjtcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XG4gIHZhbHVlTGlzdD86IFNtYXJ0SXRlbTxUPltdO1xuICBzZWxlY3Rpb24/OiBTZWxlY3Rpb25EZWZpbml0aW9uO1xuICBmaWx0ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XG4gIG1heExlbmd0aD86IG51bWJlcjtcbiAgc2hvd0NoYXJhY3RlckxpbWl0U3VmZml4PzogYm9vbGVhbjtcbiAgdG9vbGJhcklkPzogc3RyaW5nO1xuICBpbnB1dE1vZGU/OiBTbWFydEZvcm1JbnB1dE1vZGU7XG4gIHRleHRGaWVsZFByb3BlcnRpZXM/OiBUZXh0RmllbGRQcm9wZXJ0aWVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGV4dEZpZWxkTnVtYmVyPFQ+IHtcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0ZJRUxEX05VTUJFUjtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcbiAgbGFiZWw6IHN0cmluZztcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcbiAgdmFsdWU/OiBUO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgb3JpZ2luYWxQbGFjZWhvbGRlcj86IHN0cmluZztcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlciB8IG51bWJlcjtcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xuICBwcmVmaXg/OiBzdHJpbmc7XG4gIHN1ZmZpeD86IHN0cmluZztcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XG4gIGNzc0NsYXNzPzogc3RyaW5nO1xuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xuICBsYWJlbFBvc2l0aW9uQ2xhc3M/OiBzdHJpbmc7XG4gIGlzRmxvYXRMYWJlbD86IGJvb2xlYW47XG4gIHN0eWxlPzogU3R5bGU7XG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcbiAgdGV4dEZpZWxkQnV0dG9uPzogU21hcnRGb3JtVGV4dEZpZWxkQnV0dG9uO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICBtaW5WYWx1ZXM/OiBudW1iZXI7XG4gIG1heFZhbHVlcz86IG51bWJlcjtcbiAgZXJyb3I/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGljb25Db2xvcj86IHN0cmluZztcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUZXh0RmllbGRDaGlwczxUPiB7XG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRF9DSElQUztcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcbiAgbGFiZWw6IHN0cmluZztcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcbiAgdmFsdWU/OiBUO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgb3JpZ2luYWxQbGFjZWhvbGRlcj86IHN0cmluZztcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XG4gIGxhYmVsUG9zaXRpb25DbGFzcz86IHN0cmluZztcbiAgaXNGbG9hdExhYmVsPzogYm9vbGVhbjtcbiAgc3R5bGU/OiBTdHlsZTtcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICBlcnJvcj86IHN0cmluZztcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XG4gIHZhbHVlTGlzdDogU21hcnRJdGVtPFQ+W107XG4gIG1pblZhbHVlcz86IG51bWJlcjtcbiAgbWF4VmFsdWVzPzogbnVtYmVyO1xuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xufVxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRleHRGaWVsZExvb2t1cDxUPiB7XG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRF9MT09LVVA7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XG4gIHNob3dMYWJlbD86IGJvb2xlYW47XG4gIHZhbHVlPzogVDtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIG9yaWdpbmFsUGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XG4gIGNzc0NsYXNzPzogc3RyaW5nO1xuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xuICBsYWJlbFBvc2l0aW9uQ2xhc3M/OiBzdHJpbmc7XG4gIGlzRmxvYXRMYWJlbD86IGJvb2xlYW47XG4gIHN0eWxlPzogU3R5bGU7XG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcbiAgZXJyb3I/OiBzdHJpbmc7XG4gIGVycm9ySWNvbj86IHN0cmluZztcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XG4gIHNlcnZlckVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xuICBtaW5WYWx1ZXM/OiBudW1iZXI7XG4gIG1heFZhbHVlcz86IG51bWJlcjtcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcbiAgdG9vbGJhcklkPzogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRleHRCb3g8VD4ge1xuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfQk9YO1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xuICBsYWJlbDogc3RyaW5nO1xuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xuICBzaG93TGFiZWw/OiBib29sZWFuO1xuICB2YWx1ZT86IFQ7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBvcmlnaW5hbFBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xuICBjc3NDbGFzcz86IHN0cmluZztcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcbiAgbGFiZWxQb3NpdGlvbkNsYXNzPzogc3RyaW5nO1xuICBpc0Zsb2F0TGFiZWw/OiBib29sZWFuO1xuICBzdHlsZT86IFN0eWxlO1xuICBsYWJlbFN0eWxlPzogU3R5bGU7XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIGVycm9yPzogc3RyaW5nO1xuICBlcnJvckljb24/OiBzdHJpbmc7XG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBzaG93Q2hhcmFjdGVyTGltaXRTdWZmaXg/OiBib29sZWFuO1xuICB0ZXh0Qm94UHJvcGVydGllcz86IFRleHRCb3hQcm9wZXJ0aWVzO1xufVxuZXhwb3J0IGludGVyZmFjZSBTbWFydFNlbGVjdDxUPiB7XG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU0VMRUNUO1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xuICBsYWJlbDogc3RyaW5nO1xuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xuICBzaG93TGFiZWw/OiBib29sZWFuO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgdmFsdWU/OiBUO1xuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xuICBjc3NDbGFzcz86IHN0cmluZztcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcbiAgbGFiZWxQb3NpdGlvbkNsYXNzPzogc3RyaW5nO1xuICBpc0Zsb2F0TGFiZWw/OiBib29sZWFuO1xuICBzdHlsZT86IFN0eWxlO1xuICBsYWJlbFN0eWxlPzogU3R5bGU7XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIGVycm9yPzogc3RyaW5nO1xuICBlcnJvckljb24/OiBzdHJpbmc7XG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcbiAgdmFsdWVMaXN0OiBTbWFydEl0ZW1zPFQ+W107XG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbkRlZmluaXRpb247XG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XG4gIGNvbXBhcmVXaXRoPzogKG8xOiBhbnksIG8yOiBhbnkpID0+IGJvb2xlYW47XG4gIGljb24/OiBzdHJpbmc7XG4gIGljb25Qb3NpdGlvbj86IEljb25Qb3NpdGlvbjtcbiAgaWNvbkNvbG9yPzogc3RyaW5nO1xuICBzdWZmaXg/OiBzdHJpbmc7XG4gIHRvb2xiYXJJZD86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRTZWxlY3RNdWx0aXBsZTxUPiB7XG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU0VMRUNUX01VTFRJUExFO1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xuICBsYWJlbDogc3RyaW5nO1xuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xuICBzaG93TGFiZWw/OiBib29sZWFuO1xuICB2YWx1ZT86IFQ7XG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XG4gIGNzc0NsYXNzPzogc3RyaW5nO1xuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xuICBsYWJlbFBvc2l0aW9uQ2xhc3M/OiBzdHJpbmc7XG4gIGlzRmxvYXRMYWJlbD86IGJvb2xlYW47XG4gIHN0eWxlPzogU3R5bGU7XG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIGVycm9yPzogc3RyaW5nO1xuICBlcnJvckljb24/OiBzdHJpbmc7XG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcbiAgdmFsdWVMaXN0OiBTbWFydEl0ZW1zPFQ+W107XG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbkRlZmluaXRpb247XG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XG4gIGNvbXBhcmVXaXRoPzogKG8xOiBhbnksIG8yOiBhbnkpID0+IGJvb2xlYW47XG4gIHRvb2xiYXJJZD86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRDaGVja0JveDxUPiB7XG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ0hFQ0tfQk9YO1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xuICBsYWJlbDogc3RyaW5nO1xuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xuICBzaG93TGFiZWw/OiBib29sZWFuO1xuICB2YWx1ZT86IFQ7XG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XG4gIGNzc0NsYXNzPzogc3RyaW5nO1xuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xuICBsYWJlbFBvc2l0aW9uQ2xhc3M/OiBzdHJpbmc7XG4gIGlzRmxvYXRMYWJlbD86IGJvb2xlYW47XG4gIHN0eWxlPzogU3R5bGU7XG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcbiAgZXJyb3I/OiBzdHJpbmc7XG4gIGVycm9ySWNvbj86IHN0cmluZztcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XG4gIHNlcnZlckVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xuICBzZWxlY3Rpb24/OiBTZWxlY3Rpb25EZWZpbml0aW9uO1xuICBkaXJlY3Rpb24/OiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb247XG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0Q2hlY2tCb3gyPFQ+IHtcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5DSEVDS19CT1hfMjtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcbiAgbGFiZWw6IHN0cmluZztcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcbiAgdmFsdWU/OiBUO1xuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xuICBjc3NDbGFzcz86IHN0cmluZztcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcbiAgbGFiZWxQb3NpdGlvbkNsYXNzPzogc3RyaW5nO1xuICBpc0Zsb2F0TGFiZWw/OiBib29sZWFuO1xuICBzdHlsZT86IFN0eWxlO1xuICBsYWJlbFN0eWxlPzogU3R5bGU7XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIGVycm9yPzogc3RyaW5nO1xuICBlcnJvckljb24/OiBzdHJpbmc7XG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcbiAgdmFsdWVMaXN0OiBTbWFydEl0ZW08VD5bXTtcbiAgc2VsZWN0aW9uPzogU2VsZWN0aW9uRGVmaW5pdGlvbjtcbiAgZGlyZWN0aW9uPzogU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uO1xuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xufVxuZXhwb3J0IGludGVyZmFjZSBTbWFydFJhZGlvQnV0dG9uPFQ+IHtcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5SQURJT19CVVRUT047XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XG4gIHNob3dMYWJlbD86IGJvb2xlYW47XG4gIHZhbHVlPzogVDtcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XG4gIGxhYmVsUG9zaXRpb25DbGFzcz86IHN0cmluZztcbiAgaXNGbG9hdExhYmVsPzogYm9vbGVhbjtcbiAgc3R5bGU/OiBTdHlsZTtcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICBlcnJvcj86IHN0cmluZztcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XG4gIHZhbHVlTGlzdDogU21hcnRJdGVtPFQ+W107XG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbkRlZmluaXRpb247XG4gIGRpcmVjdGlvbj86IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbjtcbiAgaWNvbj86IHN0cmluZztcbiAgaWNvblBvc2l0aW9uPzogSWNvblBvc2l0aW9uO1xuICBpY29uQ29sb3I/OiBzdHJpbmc7XG4gIHByZWZpeD86IHN0cmluZztcbiAgc3VmZml4Pzogc3RyaW5nO1xuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xufVxuZXhwb3J0IGludGVyZmFjZSBTbWFydERhdGVQaWNrZXI8VD4ge1xuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkRBVEVfUElDS0VSO1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xuICBsYWJlbDogc3RyaW5nO1xuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xuICBzaG93TGFiZWw/OiBib29sZWFuO1xuICB2YWx1ZT86IFQ7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xuICBjc3NDbGFzcz86IHN0cmluZztcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcbiAgbGFiZWxQb3NpdGlvbkNsYXNzPzogc3RyaW5nO1xuICBpc0Zsb2F0TGFiZWw/OiBib29sZWFuO1xuICBzdHlsZT86IFN0eWxlO1xuICBsYWJlbFN0eWxlPzogU3R5bGU7XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIGVycm9yPzogc3RyaW5nO1xuICBlcnJvckljb24/OiBzdHJpbmc7XG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcbiAgZGF0ZUZvcm1hdEhpbnQ/OiBzdHJpbmc7XG4gIGRhdGVGaWVsZFByb3BlcnRpZXM/OiBEYXRlRmllbGRQcm9wZXJ0aWVzO1xuICBmaWx0ZXI/OiAoZDogRGF0ZSB8IG51bGwpID0+IGJvb2xlYW47XG4gIGljb24/OiBzdHJpbmc7XG4gIGljb25Qb3NpdGlvbj86IEljb25Qb3NpdGlvbjtcbiAgaWNvbkNvbG9yPzogc3RyaW5nO1xuICBwcmVmaXg/OiBzdHJpbmc7XG4gIHN1ZmZpeD86IHN0cmluZztcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU21hcnREYXRlVGltZVBpY2tlcjxUPiB7XG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuREFURV9USU1FX1BJQ0tFUjtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcbiAgbGFiZWw6IHN0cmluZztcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcbiAgdmFsdWU/OiBUO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XG4gIGxhYmVsUG9zaXRpb25DbGFzcz86IHN0cmluZztcbiAgaXNGbG9hdExhYmVsPzogYm9vbGVhbjtcbiAgc3R5bGU/OiBTdHlsZTtcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICBlcnJvcj86IHN0cmluZztcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XG4gIGRhdGVGb3JtYXRIaW50Pzogc3RyaW5nO1xuICBkYXRlRmllbGRQcm9wZXJ0aWVzPzogRGF0ZUZpZWxkUHJvcGVydGllcztcbiAgZmlsdGVyPzogKGQ6IERhdGUgfCBudWxsKSA9PiBib29sZWFuO1xuICBpY29uPzogc3RyaW5nO1xuICBpY29uUG9zaXRpb24/OiBJY29uUG9zaXRpb247XG4gIGljb25Db2xvcj86IHN0cmluZztcbiAgcHJlZml4Pzogc3RyaW5nO1xuICBzdWZmaXg/OiBzdHJpbmc7XG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0Q29udGFpbmVyPFQ+IHtcbiAga2V5Pzogc3RyaW5nO1xuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ09OVEFJTkVSO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICB2YWx1ZUxpc3Q6IFNtYXJ0Rm9ybVdpZGdldDxUPltdO1xuICBkaXJlY3Rpb24/OiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb247XG4gIGNzc0NsYXNzPzogc3RyaW5nO1xuICBzdHlsZT86IFN0eWxlO1xufVxuZXhwb3J0IGludGVyZmFjZSBTbWFydExhYmVsIHtcbiAga2V5Pzogc3RyaW5nO1xuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuTEFCRUw7XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIGNzc0NsYXNzPzogc3RyaW5nO1xuICBzdHlsZT86IFN0eWxlO1xuICBsYWJlbFN0eWxlPzogU3R5bGU7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XG4gIHdpZGdldERlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xuICBtYXJrQXNSZXF1aXJlZD86IGJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGltZTxUPiB7XG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVElNRTtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcbiAgdmFsdWU/OiBUO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XG4gIGxhYmVsUG9zaXRpb25DbGFzcz86IHN0cmluZztcbiAgaXNGbG9hdExhYmVsPzogYm9vbGVhbjtcbiAgc3R5bGU/OiBTdHlsZTtcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xuICBlcnJvcj86IHN0cmluZztcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VG9nZ2xlPFQ+IHtcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5UT0dHTEU7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XG4gIHZhbHVlPzogVDtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XG4gIHNob3dMYWJlbD86IGJvb2xlYW47XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIGNzc0NsYXNzPzogc3RyaW5nO1xuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xuICBsYWJlbFBvc2l0aW9uQ2xhc3M/OiBzdHJpbmc7XG4gIGlzRmxvYXRMYWJlbD86IGJvb2xlYW47XG4gIHN0eWxlPzogU3R5bGU7XG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xuICB0b2dnbGVMYWJlbFBvc2l0aW9uPzogVG9nZ2xlTGFiZWxQb3NpdGlvbjtcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XG4gIGVycm9yPzogc3RyaW5nO1xuICBlcnJvckljb24/OiBzdHJpbmc7XG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRJbmRpY2F0b3JJdGVtIHtcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JTkRJQ0FUT1I7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XG4gIHNob3dMYWJlbD86IGJvb2xlYW47XG4gIGluZGljYXRvcjogU21hcnRJbmRpY2F0b3I7XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIGNzc0NsYXNzPzogc3RyaW5nO1xuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xuICBsYWJlbFBvc2l0aW9uQ2xhc3M/OiBzdHJpbmc7XG4gIGlzRmxvYXRMYWJlbD86IGJvb2xlYW47XG4gIHN0eWxlPzogU3R5bGU7XG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcbn1cblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBTbWFydEl0ZW1zPFQ+ID0gU21hcnRJdGVtPFQ+IHwgU21hcnRJdGVtR3JvdXA8VD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRJdGVtPFQ+IHtcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNO1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xuICBsYWJlbDogc3RyaW5nO1xuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xuICBsYWJlbFBvc2l0aW9uQ2xhc3M/OiBzdHJpbmc7XG4gIGlzRmxvYXRMYWJlbD86IGJvb2xlYW47XG4gIHN0eWxlPzogU3R5bGU7XG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcbiAgdmFsdWU/OiBUO1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcbiAgaWNvbj86IHN0cmluZztcbiAgaWNvbkNvbG9yPzogc3RyaW5nO1xuICBpbWFnZVVybD86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRJdGVtR3JvdXA8VD4ge1xuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU1fR1JPVVA7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XG4gIGxhYmVsUG9zaXRpb25DbGFzcz86IHN0cmluZztcbiAgaXNGbG9hdExhYmVsPzogYm9vbGVhbjtcbiAgc3R5bGU/OiBTdHlsZTtcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcbiAgdmFsdWVMaXN0OiBTbWFydEl0ZW08VD5bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbWFydEZpbGVVcGxvYWRlciB7XG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuRklMRV9VUExPQURFUjtcbiAgdmFsdWU/OiBhbnk7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XG4gIGxhYmVsUG9zaXRpb25DbGFzcz86IHN0cmluZztcbiAgaXNGbG9hdExhYmVsPzogYm9vbGVhbjtcbiAgc3R5bGU/OiBTdHlsZTtcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xuICBmaWxlRm9ybWF0cz86IHN0cmluZ1tdO1xuICBtYXhTaXplTWI/OiBudW1iZXI7XG4gIGkxOG4/OiBhbnk7XG4gIGZpbGVVcGxvYWRlclByb3BlcnRpZXM/OiBGaWxlVXBsb2FkZXJQcm9wZXJ0aWVzO1xuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xuICB0b29sYmFySWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRNdWx0aUZpbGVVcGxvYWRlciB7XG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuTVVMVElfRklMRV9VUExPQURFUjtcbiAgdmFsdWU/OiBhbnk7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XG4gIGxhYmVsUG9zaXRpb25DbGFzcz86IHN0cmluZztcbiAgaXNGbG9hdExhYmVsPzogYm9vbGVhbjtcbiAgc3R5bGU/OiBTdHlsZTtcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xuICBmaWxlRm9ybWF0cz86IHN0cmluZ1tdO1xuICBtYXhTaXplTWI/OiBudW1iZXI7XG4gIGkxOG4/OiBhbnk7XG4gIG11bHRpRmlsZVVwbG9hZGVyUHJvcGVydGllcz86IE11bHRpRmlsZVVwbG9hZGVyUHJvcGVydGllcztcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcbiAgdG9vbGJhcklkPzogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBTbWFydFJlY29yZGluZ1VwbG9hZGVyIHtcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5SRUNPUkRJTkdfVVBMT0FERVI7XG4gIHZhbHVlPzogYW55O1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xuICBsYWJlbDogc3RyaW5nO1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XG4gIHNob3dMYWJlbD86IGJvb2xlYW47XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIGNzc0NsYXNzPzogc3RyaW5nO1xuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xuICBsYWJlbFBvc2l0aW9uQ2xhc3M/OiBzdHJpbmc7XG4gIGlzRmxvYXRMYWJlbD86IGJvb2xlYW47XG4gIHN0eWxlPzogU3R5bGU7XG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcbiAgZmlsZUZvcm1hdHM/OiBzdHJpbmdbXTtcbiAgbWF4U2l6ZU1iPzogbnVtYmVyO1xuICBpMThuPzogYW55O1xuICByZWNvcmRpbmdVcGxvYWRlclByb3BlcnRpZXM/OiBSZWNvcmRpbmdVcGxvYWRlclByb3BlcnRpZXM7XG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XG4gIHRvb2xiYXJJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbWFydEltYWdlIHtcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JTUFHRTtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcbiAgbGFiZWw6IHN0cmluZztcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XG4gIGxhYmVsUG9zaXRpb25DbGFzcz86IHN0cmluZztcbiAgaXNGbG9hdExhYmVsPzogYm9vbGVhbjtcbiAgc3R5bGU/OiBTdHlsZTtcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xuICB2YWx1ZT86IEltYWdlUmVzb3VyY2U7XG4gIGltYWdlQ3NzPzogc3RyaW5nO1xuICBpbWFnZVByb3BlcnRpZXM/OiBJbWFnZVByb3BlcnRpZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU21hcnREaXZpZGVyIHtcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5ESVZJREVSO1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xuICBsYWJlbDogc3RyaW5nO1xuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xuICBzaG93TGFiZWw/OiBib29sZWFuO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICBjc3NDbGFzcz86IHN0cmluZztcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcbiAgbGFiZWxQb3NpdGlvbkNsYXNzPzogc3RyaW5nO1xuICBpc0Zsb2F0TGFiZWw/OiBib29sZWFuO1xuICBzdHlsZT86IFN0eWxlO1xuICBsYWJlbFN0eWxlPzogU3R5bGU7XG4gIHZhbHVlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0QnV0dG9uIHtcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5CVVRUT047XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XG4gIHNob3dMYWJlbD86IGJvb2xlYW47XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIGNzc0NsYXNzPzogc3RyaW5nO1xuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xuICBsYWJlbFBvc2l0aW9uQ2xhc3M/OiBzdHJpbmc7XG4gIGlzRmxvYXRMYWJlbD86IGJvb2xlYW47XG4gIHN0eWxlPzogU3R5bGU7XG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcbiAgdmFsdWU/OiBzdHJpbmc7XG4gIHVpQWN0aW9uPzogYW55O1xuICB1aUFjdGlvbkRlc2NyaXB0b3I6IGFueTtcbiAgY2FsbGJhY2s6ICgodWlBY3Rpb246IGFueSkgPT4gdm9pZCkgfCAoKGtleTogc3RyaW5nKSA9PiB2b2lkKTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRGb3JtSW5saW5lQ29tcG9uZW50IHtcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5DT01QT05FTlQ7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XG4gIHNob3dMYWJlbD86IGJvb2xlYW47XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIGNzc0NsYXNzPzogc3RyaW5nO1xuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xuICBsYWJlbFBvc2l0aW9uQ2xhc3M/OiBzdHJpbmc7XG4gIGlzRmxvYXRMYWJlbD86IGJvb2xlYW47XG4gIHN0eWxlPzogU3R5bGU7XG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcbiAgY29tcG9uZW50OiBhbnk7XG4gIGlucHV0OiBNYXA8c3RyaW5nLCBhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0UmljaFRleHQge1xuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlJJQ0hfVEVYVDtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU/OiBzdHJpbmc7XG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBvcmlnaW5hbFBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBxdWlsbE1vZHVsZXM6IFF1aWxsTW9kdWxlcztcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XG4gIGxhYmVsUG9zaXRpb25DbGFzcz86IHN0cmluZztcbiAgaXNGbG9hdExhYmVsPzogYm9vbGVhbjtcbiAgc3R5bGU/OiBTdHlsZTtcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xuICBlcnJvcj86IHN0cmluZztcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XG4gIG1heExlbmd0aD86IG51bWJlcjtcbiAgc2hvd0NoYXJhY3RlckxpbWl0U3VmZml4PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbWFydFNvcnRhYmxlPFQ+IHtcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TT1JUQUJMRTtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU/OiBzdHJpbmc7XG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XG4gIHNob3dMYWJlbD86IGJvb2xlYW47XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIGNzc0NsYXNzPzogc3RyaW5nO1xuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xuICBsYWJlbFBvc2l0aW9uQ2xhc3M/OiBzdHJpbmc7XG4gIGlzRmxvYXRMYWJlbD86IGJvb2xlYW47XG4gIHN0eWxlPzogU3R5bGU7XG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xuICBlcnJvcj86IHN0cmluZztcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xuICB2YWx1ZUxpc3Q/OiBTbWFydEl0ZW08VD5bXTtcbiAgaXNNdWx0aXBsZT86IGJvb2xlYW47XG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XG4gIGljb24/OiBzdHJpbmc7XG4gIHNvcnREZWZpbml0aW9uOiBTb3J0RGVmaW5pdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbWFydE1hdHJpeCB7XG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuTUFUUklYO1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZT86IGFueTtcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XG4gIGxhYmVsUG9zaXRpb25DbGFzcz86IHN0cmluZztcbiAgaXNGbG9hdExhYmVsPzogYm9vbGVhbjtcbiAgc3R5bGU/OiBTdHlsZTtcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XG4gIGVycm9yPzogc3RyaW5nO1xuICBlcnJvckljb24/OiBzdHJpbmc7XG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XG4gIGlzTXVsdGlwbGU/OiBib29sZWFuO1xuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xuICBidXR0b24/OiBTbWFydE1hdHJpeEJ1dHRvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbWFydE1hdHJpeEJ1dHRvbiB7XG4gIGljb25Db2RlPzogc3RyaW5nO1xuICBjYWxsYmFjazogKHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4sIHJvdzogYW55KSA9PiBhbnk7XG4gIGNvbG9yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0WW91dHViZVBsYXllciB7XG4gIGtleT86IHN0cmluZztcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLllPVVRVQkVfUExBWUVSO1xuICBsaW5rPzogc3RyaW5nO1xuICB2aWRlb0lkPzogc3RyaW5nO1xuICBoZWlnaHQ/OiBudW1iZXI7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBzdGFydFNlY29uZHM/OiBudW1iZXIgfCAwO1xuICBlbmRTZWNvbmRzPzogbnVtYmVyO1xuICBjc3NDbGFzcz86IHN0cmluZztcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcbiAgbGFiZWxQb3NpdGlvbkNsYXNzPzogc3RyaW5nO1xuICBpc0Zsb2F0TGFiZWw/OiBib29sZWFuO1xuICBzdHlsZT86IFN0eWxlO1xuICBsYWJlbFN0eWxlPzogU3R5bGU7XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIGxhYmVsPzogc3RyaW5nO1xuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbWFydE1vbnRoUGlja2VyIHtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5NT05USF9QSUNLRVI7XG4gIHZhbHVlPzogc3RyaW5nO1xuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcbiAgbGFiZWw6IHN0cmluZztcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcbiAgZXJyb3I/OiBzdHJpbmc7XG4gIGVycm9ySWNvbj86IHN0cmluZztcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XG4gIHNlcnZlckVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xuICBjc3NDbGFzcz86IHN0cmluZztcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcbiAgbGFiZWxQb3NpdGlvbkNsYXNzPzogc3RyaW5nO1xuICBpc0Zsb2F0TGFiZWw/OiBib29sZWFuO1xuICBzdHlsZT86IFN0eWxlO1xuICBsYWJlbFN0eWxlPzogU3R5bGU7XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xufVxuZXhwb3J0IGludGVyZmFjZSBTbWFydFN2ZyB7XG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU1ZHO1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xuICBsYWJlbDogc3RyaW5nO1xuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xuICBzaG93TGFiZWw/OiBib29sZWFuO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICBjc3NDbGFzcz86IHN0cmluZztcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcbiAgbGFiZWxQb3NpdGlvbkNsYXNzPzogc3RyaW5nO1xuICBpc0Zsb2F0TGFiZWw/OiBib29sZWFuO1xuICBzdHlsZT86IFN0eWxlO1xuICBsYWJlbFN0eWxlPzogU3R5bGU7XG4gIHZhbHVlPzogc3RyaW5nO1xuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBTbWFydERpdiB7XG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuRElWO1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xuICBsYWJlbDogc3RyaW5nO1xuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xuICBzaG93TGFiZWw/OiBib29sZWFuO1xuICBpc1Zpc2libGU/OiBib29sZWFuO1xuICBjc3NDbGFzcz86IHN0cmluZztcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcbiAgbGFiZWxQb3NpdGlvbkNsYXNzPzogc3RyaW5nO1xuICBpc0Zsb2F0TGFiZWw/OiBib29sZWFuO1xuICBzdHlsZT86IFN0eWxlO1xuICBsYWJlbFN0eWxlPzogU3R5bGU7XG4gIHZhbHVlPzogc3RyaW5nO1xuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xufVxuIl19