runlify 0.0.714 → 0.0.715

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 (352) hide show
  1. package/build/cli.js +20 -52
  2. package/build/commands/availableEnvironments.js +16 -51
  3. package/build/commands/generate.js +10 -46
  4. package/build/commands/init.js +73 -140
  5. package/build/commands/login.js +6 -42
  6. package/build/commands/logout.js +5 -41
  7. package/build/commands/pullEnvs.js +23 -70
  8. package/build/commands/readEnv.js +16 -45
  9. package/build/commands/regen.js +17 -48
  10. package/build/commands/runlify.js +6 -37
  11. package/build/commands/showToken.js +14 -45
  12. package/build/commands/start.js +57 -84
  13. package/build/commands/tryGetMeta.js +7 -43
  14. package/build/documentation/algoritmToDoc.js +4 -4
  15. package/build/documentation/algoritmToDoc.spec.js +5 -5
  16. package/build/documentation/curlExampleToText.js +15 -16
  17. package/build/documentation/curlExampleToText.spec.js +32 -16
  18. package/build/documentation/doc.js +1 -2
  19. package/build/documentation/docToFlatDoc.js +13 -17
  20. package/build/documentation/docToFlatDoc.spec.js +9 -9
  21. package/build/documentation/flatDoc.js +1 -2
  22. package/build/documentation/flatDocToText.js +4 -6
  23. package/build/documentation/flatDocToText.spec.js +20 -8
  24. package/build/documentation/templateDoc.js +1 -2
  25. package/build/documentation/templateDocToDoc.js +2 -2
  26. package/build/extensions/auth.js +64 -124
  27. package/build/extensions/cli-extension.js +3 -3
  28. package/build/extensions/cloudEnv.js +76 -120
  29. package/build/extensions/cloudMeta.js +35 -73
  30. package/build/extensions/globalConfig.js +37 -80
  31. package/build/extensions/localConfig.js +15 -46
  32. package/build/extensions/preventRunningIfUpdateAvailable.js +18 -52
  33. package/build/log.js +6 -6
  34. package/build/projectsGeneration/args.js +33 -53
  35. package/build/projectsGeneration/builders/AdditionalServiceBuilder.js +62 -96
  36. package/build/projectsGeneration/builders/BaseBuilder.js +30 -34
  37. package/build/projectsGeneration/builders/BaseSavableEntityBuilder.js +272 -312
  38. package/build/projectsGeneration/builders/CatalogBuilder.js +17 -46
  39. package/build/projectsGeneration/builders/ConfigVarBuilder.js +25 -36
  40. package/build/projectsGeneration/builders/DeploymentBuilder.js +18 -47
  41. package/build/projectsGeneration/builders/DocumentBuilder.js +26 -56
  42. package/build/projectsGeneration/builders/InfoRegistryBuilder.js +106 -140
  43. package/build/projectsGeneration/builders/PageBuilder.js +22 -51
  44. package/build/projectsGeneration/builders/PermissionBuilder.js +12 -41
  45. package/build/projectsGeneration/builders/ReportBuilder.js +23 -52
  46. package/build/projectsGeneration/builders/RestApiBuilder.js +20 -50
  47. package/build/projectsGeneration/builders/RestApiMethodBuilder.js +25 -54
  48. package/build/projectsGeneration/builders/RoleBuilder.js +12 -41
  49. package/build/projectsGeneration/builders/SumRegistryBuilder.js +100 -133
  50. package/build/projectsGeneration/builders/SystemMetaBuilder.js +281 -324
  51. package/build/projectsGeneration/builders/TelegramBotBuilder.js +18 -47
  52. package/build/projectsGeneration/builders/docs/DocumentationOfDocumentBuilder.js +8 -9
  53. package/build/projectsGeneration/builders/fields/BaseFieldBuilder.js +89 -105
  54. package/build/projectsGeneration/builders/fields/IdFieldBuilder.js +24 -54
  55. package/build/projectsGeneration/builders/fields/LinkFieldBuilder.js +33 -62
  56. package/build/projectsGeneration/builders/fields/ModelFieldBuilder.js +18 -47
  57. package/build/projectsGeneration/builders/fields/ScalarFieldBuilder.js +11 -42
  58. package/build/projectsGeneration/builders/fields/ViewLinkFieldBuilder.js +26 -55
  59. package/build/projectsGeneration/builders/integrationClients/IntegrationClientArgsModelBuilder.js +6 -23
  60. package/build/projectsGeneration/builders/integrationClients/IntegrationClientBaseModelBuilder.js +28 -57
  61. package/build/projectsGeneration/builders/integrationClients/IntegrationClientBuilder.js +25 -54
  62. package/build/projectsGeneration/builders/integrationClients/IntegrationClientQueryMethodsBuilder.js +18 -47
  63. package/build/projectsGeneration/builders/integrationClients/IntegrationClientReturnModelBuilder.js +12 -41
  64. package/build/projectsGeneration/builders/materialUiIcons.js +2 -2
  65. package/build/projectsGeneration/builders/mehods/ArgsModelBuilder.js +6 -23
  66. package/build/projectsGeneration/builders/mehods/BaseModelBuilder.js +30 -59
  67. package/build/projectsGeneration/builders/mehods/MethodBuilder.js +36 -66
  68. package/build/projectsGeneration/builders/mehods/ReturnModelBuilder.js +12 -41
  69. package/build/projectsGeneration/builders/menu/BaseMenuItemBuilder.js +24 -54
  70. package/build/projectsGeneration/builders/menu/ExternalEnvMenuItemBuilder.js +11 -40
  71. package/build/projectsGeneration/builders/menu/ExternalMenuItemBuilder.js +11 -40
  72. package/build/projectsGeneration/builders/menu/GroupMenuItemBuilder.js +31 -66
  73. package/build/projectsGeneration/builders/menu/InternalMenuItemBuilder.js +16 -45
  74. package/build/projectsGeneration/builders/tsFilterFields.js +11 -12
  75. package/build/projectsGeneration/builders/tsFilterFields.spec.js +29 -11
  76. package/build/projectsGeneration/builders/ui/FormsBuilder.js +9 -10
  77. package/build/projectsGeneration/builders/ui/ListFormBuilder.js +9 -10
  78. package/build/projectsGeneration/builders/ui/ListFormFilterBuilder.js +14 -16
  79. package/build/projectsGeneration/builders/ui/ListFormFilterFieldBuilder.js +8 -9
  80. package/build/projectsGeneration/builders/utils/accessFunctions.js +4 -4
  81. package/build/projectsGeneration/builders/validation/baseValudationToYupAssertions.js +4 -4
  82. package/build/projectsGeneration/builders/validation/bigintValudationToYupAssertions.js +5 -5
  83. package/build/projectsGeneration/builders/validation/bigintValudationToYupAssertions.spec.js +7 -7
  84. package/build/projectsGeneration/builders/validation/floatValudationToYupAssertions.js +4 -4
  85. package/build/projectsGeneration/builders/validation/floatValudationToYupAssertions.spec.js +6 -6
  86. package/build/projectsGeneration/builders/validation/intValudationToYupAssertions.js +9 -9
  87. package/build/projectsGeneration/builders/validation/intValudationToYupAssertions.spec.js +9 -9
  88. package/build/projectsGeneration/builders/validation/numberValudationToYupAssertions.js +10 -10
  89. package/build/projectsGeneration/builders/validation/stringValudationToYupAssertions.js +6 -6
  90. package/build/projectsGeneration/builders/validation/stringValudationToYupAssertions.spec.js +6 -6
  91. package/build/projectsGeneration/commonEntities/addAggregateTrackings.js +3 -3
  92. package/build/projectsGeneration/commonEntities/addAuditLogs.js +6 -6
  93. package/build/projectsGeneration/commonEntities/addAutogeneration.js +4 -4
  94. package/build/projectsGeneration/commonEntities/addCommonCommands.js +2 -2
  95. package/build/projectsGeneration/commonEntities/addCommonEntities.js +14 -14
  96. package/build/projectsGeneration/commonEntities/addConfigurationVariables.js +4 -4
  97. package/build/projectsGeneration/commonEntities/addLanguages.js +3 -3
  98. package/build/projectsGeneration/commonEntities/addManagers.js +6 -6
  99. package/build/projectsGeneration/commonEntities/addRefreshTokens.js +4 -4
  100. package/build/projectsGeneration/commonEntities/addRoles.js +8 -8
  101. package/build/projectsGeneration/commonEntities/addTenants.js +3 -3
  102. package/build/projectsGeneration/commonEntities/addUserSettings.js +7 -7
  103. package/build/projectsGeneration/commonEntities/addUsers.js +4 -4
  104. package/build/projectsGeneration/defaultCatalogs/addElasticSearch.js +12 -13
  105. package/build/projectsGeneration/defaultCatalogs/files.js +6 -6
  106. package/build/projectsGeneration/fileCleaners/back/graphServices/cleanGraphServices.js +24 -59
  107. package/build/projectsGeneration/fileCleaners/back/services/cleanServices.js +32 -67
  108. package/build/projectsGeneration/fileCleaners/cleanFiles.js +7 -38
  109. package/build/projectsGeneration/fileCleaners/ui/cleanUi.js +7 -39
  110. package/build/projectsGeneration/fileCleaners/ui/pages/cleanPages.js +24 -59
  111. package/build/projectsGeneration/fileCleaners/ui/widgets/cleanWidgets.js +10 -40
  112. package/build/projectsGeneration/fileCleaners/ui/widgets/cleanWidgetsByType.js +29 -62
  113. package/build/projectsGeneration/genGraphSchemesByLocalGenerator.js +26 -68
  114. package/build/projectsGeneration/generateAdditionalService.js +41 -98
  115. package/build/projectsGeneration/generateEntity.js +215 -346
  116. package/build/projectsGeneration/generateEnvironment.js +157 -265
  117. package/build/projectsGeneration/generateProject.js +422 -724
  118. package/build/projectsGeneration/generators/fieldTypeToTsType.js +4 -4
  119. package/build/projectsGeneration/generators/fileTemplates/back/Entities.js +16 -14
  120. package/build/projectsGeneration/generators/fileTemplates/back/devEnum.js +17 -13
  121. package/build/projectsGeneration/generators/fileTemplates/back/elastic/elastic.js +8 -44
  122. package/build/projectsGeneration/generators/fileTemplates/back/elastic/jobs.js +36 -26
  123. package/build/projectsGeneration/generators/fileTemplates/back/enum.js +17 -13
  124. package/build/projectsGeneration/generators/fileTemplates/back/environment/chart/Chart.js +12 -8
  125. package/build/projectsGeneration/generators/fileTemplates/back/environment/chart/templates/back.js +128 -12
  126. package/build/projectsGeneration/generators/fileTemplates/back/environment/chart/templates/ingress.js +54 -8
  127. package/build/projectsGeneration/generators/fileTemplates/back/environment/chart/values.js +149 -13
  128. package/build/projectsGeneration/generators/fileTemplates/back/environment/ciNotify.js +19 -8
  129. package/build/projectsGeneration/generators/fileTemplates/back/environment/defaultEnv.js +5 -9
  130. package/build/projectsGeneration/generators/fileTemplates/back/environment/dockerfileTmplBack.js +38 -8
  131. package/build/projectsGeneration/generators/fileTemplates/back/environment/dockerfileTmplUI.js +42 -8
  132. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocSpec.js +3 -6
  133. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsConfiguration.js +27 -19
  134. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsEntity.js +7 -5
  135. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsIntegrationClient.js +44 -29
  136. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsRestApi.js +45 -18
  137. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/spec/findLinksToEntities.js +2 -4
  138. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/spec/getAllSavableEntities.js +7 -11
  139. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/spec/getProjectSpec.js +206 -216
  140. package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/spec/titleMd.js +5 -5
  141. package/build/projectsGeneration/generators/fileTemplates/back/environment/gitlabCi.js +272 -37
  142. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/clients/getPrisma.js +78 -9
  143. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/clients/queue/getQueue.js +42 -9
  144. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/index.js +36 -9
  145. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/IntegrationClient.js +56 -5
  146. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/IntegrationClients.js +12 -9
  147. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/fieldsToTsTypeFields.js +4 -6
  148. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/integrationClientConstrictors.js +13 -9
  149. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/tsModelTmpl.js +6 -4
  150. package/build/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/types.js +15 -7
  151. package/build/projectsGeneration/generators/fileTemplates/back/graph/additionalResolvers.js +9 -2
  152. package/build/projectsGeneration/generators/fileTemplates/back/graph/additionalService/permissionToGraphql.js +16 -9
  153. package/build/projectsGeneration/generators/fileTemplates/back/graph/additionalService/resolvers.js +32 -12
  154. package/build/projectsGeneration/generators/fileTemplates/back/graph/additionalService/typeDefs.js +18 -11
  155. package/build/projectsGeneration/generators/fileTemplates/back/graph/additionalTypes.js +7 -2
  156. package/build/projectsGeneration/generators/fileTemplates/back/graph/entityAdditionalPermissionToGraphqlTmpl.js +20 -9
  157. package/build/projectsGeneration/generators/fileTemplates/back/graph/entityBasePermissionToGraphql.js +22 -10
  158. package/build/projectsGeneration/generators/fileTemplates/back/graph/entityPermissionToGraphqlTmpl.js +18 -9
  159. package/build/projectsGeneration/generators/fileTemplates/back/graph/help/baseResolvers.js +17 -2
  160. package/build/projectsGeneration/generators/fileTemplates/back/graph/help/baseTypeDefs.js +15 -5
  161. package/build/projectsGeneration/generators/fileTemplates/back/graph/help/permissionsToGraphql.js +11 -2
  162. package/build/projectsGeneration/generators/fileTemplates/back/graph/meta/resolvers.js +26 -2
  163. package/build/projectsGeneration/generators/fileTemplates/back/graph/meta/typeDefs.js +17 -2
  164. package/build/projectsGeneration/generators/fileTemplates/back/graph/permissionsToGraphql.js +52 -13
  165. package/build/projectsGeneration/generators/fileTemplates/back/graph/resolvers.js +52 -13
  166. package/build/projectsGeneration/generators/fileTemplates/back/graph/types.js +18 -11
  167. package/build/projectsGeneration/generators/fileTemplates/back/initCommon.js +30 -16
  168. package/build/projectsGeneration/generators/fileTemplates/back/initDev.js +27 -15
  169. package/build/projectsGeneration/generators/fileTemplates/back/initEntities.js +24 -10
  170. package/build/projectsGeneration/generators/fileTemplates/back/root/config/config.js +30 -16
  171. package/build/projectsGeneration/generators/fileTemplates/back/root/restRouter.js +21 -2
  172. package/build/projectsGeneration/generators/fileTemplates/back/services/AdditionalServices.js +7 -2
  173. package/build/projectsGeneration/generators/fileTemplates/back/services/BaseServices.js +18 -22
  174. package/build/projectsGeneration/generators/fileTemplates/back/services/HelpService/HelpService.js +30 -7
  175. package/build/projectsGeneration/generators/fileTemplates/back/services/additionalService/types.js +18 -13
  176. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/additionalClass.js +7 -5
  177. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/class.js +126 -49
  178. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/config.js +59 -40
  179. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/additionalOperationsOnCreate.js +13 -5
  180. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/additionalOperationsOnDelete.js +14 -6
  181. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/additionalOperationsOnUpdate.js +14 -6
  182. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/afterCreate.js +15 -6
  183. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/afterDelete.js +15 -6
  184. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/afterUpdate.js +15 -6
  185. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/beforeCreate.js +15 -6
  186. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/beforeDelete.js +15 -6
  187. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/beforeUpdate.js +14 -6
  188. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/beforeUpsert.js +30 -7
  189. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/changeListFilter.js +14 -6
  190. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/tenantIdRequiredHooks.js +81 -8
  191. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/initBuiltInHooks.js +22 -10
  192. package/build/projectsGeneration/generators/fileTemplates/back/services/entity/initUserHooks.js +31 -6
  193. package/build/projectsGeneration/generators/fileTemplates/back/services/serviceConstrictors.js +26 -14
  194. package/build/projectsGeneration/generators/fileTemplates/ui/Dashboard.js +14 -2
  195. package/build/projectsGeneration/generators/fileTemplates/ui/MetaPage.js +120 -3
  196. package/build/projectsGeneration/generators/fileTemplates/ui/ResourcesPage.js +45 -10
  197. package/build/projectsGeneration/generators/fileTemplates/ui/additionalRoutes.js +5 -2
  198. package/build/projectsGeneration/generators/fileTemplates/ui/entityMapping.js +14 -12
  199. package/build/projectsGeneration/generators/fileTemplates/ui/environment/chart/Chart.js +12 -8
  200. package/build/projectsGeneration/generators/fileTemplates/ui/environment/chart/templates/front.js +118 -13
  201. package/build/projectsGeneration/generators/fileTemplates/ui/environment/chart/templates/ingress.js +51 -8
  202. package/build/projectsGeneration/generators/fileTemplates/ui/environment/chart/values.js +79 -8
  203. package/build/projectsGeneration/generators/fileTemplates/ui/environment/ciNotify.js +19 -8
  204. package/build/projectsGeneration/generators/fileTemplates/ui/environment/docs/adminAppDocsConfiguration.js +27 -21
  205. package/build/projectsGeneration/generators/fileTemplates/ui/environment/gitlabCi.js +179 -26
  206. package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/App.js +107 -10
  207. package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/contexts/SpacesContext.js +67 -9
  208. package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/dataProvider/getAdditionalMethods.js +55 -18
  209. package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/dataProvider/index.js +93 -13
  210. package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/i18nProvider/index.js +51 -19
  211. package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/layout/AppBar.js +60 -9
  212. package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/layout/Menu.js +52 -9
  213. package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/routes.js +38 -9
  214. package/build/projectsGeneration/generators/fileTemplates/ui/functions/Functions.js +60 -7
  215. package/build/projectsGeneration/generators/fileTemplates/ui/getAdditionalMenu.js +11 -2
  216. package/build/projectsGeneration/generators/fileTemplates/ui/getDefaultMenu.js +136 -23
  217. package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiLangCatalogsTmpl.js +3 -5
  218. package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiLangDocsTmpl.js +3 -5
  219. package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiLangInfoRegistriesTmpl.js +3 -5
  220. package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiLangReportsTmpl.js +3 -3
  221. package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiLangSumRegistriesTmpl.js +3 -5
  222. package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiTranslationsForServicesOfSavablesTmpl.js +33 -21
  223. package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiTranslationsLangTmpl.js +23 -15
  224. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityCreate/DefaultEntityCreate.js +101 -62
  225. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityCreate/index.js +15 -5
  226. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityEdit/DefaultEntityEdit.js +176 -77
  227. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityEdit/index.js +15 -5
  228. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityList/DefaultEntityFilter.js +68 -50
  229. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityList/DefaultEntityList.js +83 -47
  230. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityList/EntityFilter.js +12 -5
  231. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityList/index.js +15 -5
  232. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/DefaultActions.js +54 -19
  233. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/DefaultEntityShow.js +53 -30
  234. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/DefaultMainTab.js +45 -32
  235. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/DependencyTab.js +57 -41
  236. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/MainTab.js +3 -2
  237. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/additionalTabs.js +7 -3
  238. package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/index.js +15 -5
  239. package/build/projectsGeneration/generators/fileTemplates/ui/pages/Icon.js +8 -8
  240. package/build/projectsGeneration/generators/fileTemplates/ui/pages/getEntityValidation.js +45 -30
  241. package/build/projectsGeneration/generators/fileTemplates/ui/resources.js +46 -12
  242. package/build/projectsGeneration/generators/fileTemplates/ui/widgets/count/CountWidget.js +50 -9
  243. package/build/projectsGeneration/generators/fileTemplates/ui/widgets/list/ListWidget.js +109 -14
  244. package/build/projectsGeneration/generators/graph/fieldTypeToGraphScalar.js +8 -9
  245. package/build/projectsGeneration/generators/graph/fieldTypeToGraphScalarStringified.js +4 -6
  246. package/build/projectsGeneration/generators/graph/fields/genGraphField.js +8 -9
  247. package/build/projectsGeneration/generators/graph/fields/genGraphIdField.js +7 -8
  248. package/build/projectsGeneration/generators/graph/fields/genGraphIdFieldType.js +6 -6
  249. package/build/projectsGeneration/generators/graph/fields/genGraphLinkField.js +10 -11
  250. package/build/projectsGeneration/generators/graph/fields/genGraphModelField.js +10 -11
  251. package/build/projectsGeneration/generators/graph/fields/genGraphScalarField.js +10 -11
  252. package/build/projectsGeneration/generators/graph/filters/genGraphField.js +7 -7
  253. package/build/projectsGeneration/generators/graph/filters/genGraphIdFilter.js +12 -14
  254. package/build/projectsGeneration/generators/graph/filters/genGraphLinkFilter.js +12 -24
  255. package/build/projectsGeneration/generators/graph/filters/genGraphScalarFilter.js +25 -37
  256. package/build/projectsGeneration/generators/graph/genGraphAdditionalServiceSchema.js +35 -35
  257. package/build/projectsGeneration/generators/graph/genGraphAdditionalServiceSchema.spec.js +148 -65
  258. package/build/projectsGeneration/generators/graph/genGraphCrudSchema.js +38 -50
  259. package/build/projectsGeneration/generators/graph/genGraphCrudSchema.spec.js +393 -34
  260. package/build/projectsGeneration/generators/graph/genGraphFilterType.js +11 -22
  261. package/build/projectsGeneration/generators/graph/genGraphFilterType.spec.js +75 -13
  262. package/build/projectsGeneration/generators/graph/genGraphModelType.js +15 -27
  263. package/build/projectsGeneration/generators/graph/genGraphType.js +7 -18
  264. package/build/projectsGeneration/generators/graph/genGraphType.spec.js +27 -12
  265. package/build/projectsGeneration/generators/graph/printGraphType.js +5 -7
  266. package/build/projectsGeneration/generators/graph/printGraphType.spec.js +11 -6
  267. package/build/projectsGeneration/generators/graph/utils/mapUtils.js +11 -30
  268. package/build/projectsGeneration/generators/graph/utils/models/getModelInitOrder.js +14 -28
  269. package/build/projectsGeneration/generators/graph/utils/models/getModelInitOrder.spec.js +18 -18
  270. package/build/projectsGeneration/generators/graph/utils/models/getUniqModels.js +3 -3
  271. package/build/projectsGeneration/generators/graph/utils/models/getUniqModels.spec.js +17 -28
  272. package/build/projectsGeneration/generators/graph/utils/models/getUsedModels.js +14 -19
  273. package/build/projectsGeneration/generators/graph/utils/models/getUsedModels.spec.js +40 -51
  274. package/build/projectsGeneration/generators/graph/utils/serviceModels/augmentInputModelsByUsedAsInputGeneralModelsAndPostfixThemByInput.js +17 -26
  275. package/build/projectsGeneration/generators/graph/utils/serviceModels/augmentInputModelsByUsedAsInputGeneralModelsAndPostfixThemByInput.spec.js +68 -68
  276. package/build/projectsGeneration/generators/graph/utils/serviceModels/getGraphTypesFromInputOutputModels.js +21 -42
  277. package/build/projectsGeneration/generators/graph/utils/serviceModels/getGraphTypesFromInputOutputModels.spec.js +85 -62
  278. package/build/projectsGeneration/generators/graph/utils/serviceModels/getPreparedModelsForGraph.js +20 -31
  279. package/build/projectsGeneration/generators/graph/utils/serviceModels/getPreparedModelsForGraph.spec.js +48 -49
  280. package/build/projectsGeneration/generators/graph/utils/serviceModels/getServiceModels.js +7 -7
  281. package/build/projectsGeneration/generators/graph/utils/serviceModels/getUsedGraphModelsForService.js +6 -6
  282. package/build/projectsGeneration/generators/graph/utils/serviceModels/getUsedGraphModelsForService.spec.js +13 -13
  283. package/build/projectsGeneration/generators/graph/utils/serviceModels/getUsedModelsForService.js +18 -21
  284. package/build/projectsGeneration/generators/graph/utils/serviceModels/getUsedModelsForService.spec.js +153 -153
  285. package/build/projectsGeneration/generators/graph/utils/serviceModels/prefixServiceModelsWithServiceName.js +25 -26
  286. package/build/projectsGeneration/generators/graph/utils/serviceModels/prefixServiceModelsWithServiceName.spec.js +69 -69
  287. package/build/projectsGeneration/generators/graph/utils/serviceModels/removeDublicatesFromServiceModels.js +4 -4
  288. package/build/projectsGeneration/generators/graph/utils/serviceModels/removeUnusedInOutputGeneralModels.js +6 -17
  289. package/build/projectsGeneration/generators/graph/utils/serviceModels/removeVoidsInServiceModels.js +5 -5
  290. package/build/projectsGeneration/generators/prisma/fieldIdTypeToPrismaType.js +3 -3
  291. package/build/projectsGeneration/generators/prisma/fieldTypeToPrismaType.js +3 -3
  292. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaDefault.js +3 -3
  293. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaDefault.spec.js +20 -20
  294. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaField.js +7 -8
  295. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaFieldFromExternalEntity.js +6 -7
  296. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaFieldFromExternalEntity.spec.js +7 -19
  297. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaIdField.js +10 -11
  298. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaIdField.spec.js +13 -13
  299. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaLinkFields.js +15 -18
  300. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaLinkFields.spec.js +27 -28
  301. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaScalarField.js +12 -14
  302. package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaScalarField.spec.js +29 -30
  303. package/build/projectsGeneration/generators/prisma/scheme/genPrismaEntity.js +23 -32
  304. package/build/projectsGeneration/generators/prisma/scheme/genPrismaEntity.spec.js +104 -47
  305. package/build/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntities.js +5 -7
  306. package/build/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntitiesWithClientAdnDb.js +19 -10
  307. package/build/projectsGeneration/generators/ui/componentNames/edit/getCompNameToEditScalar.js +3 -3
  308. package/build/projectsGeneration/generators/ui/componentNames/edit/getCompNamesToEditField.js +7 -7
  309. package/build/projectsGeneration/generators/ui/componentNames/edit/getCompNamesToEditIdField.js +3 -3
  310. package/build/projectsGeneration/generators/ui/componentNames/edit/getCompNamesToEditLinkField.js +5 -5
  311. package/build/projectsGeneration/generators/ui/componentNames/edit/getCompNamesToEditLinkField.spec.js +10 -10
  312. package/build/projectsGeneration/generators/ui/componentNames/edit/getCompNamesToEditScalarField.js +3 -3
  313. package/build/projectsGeneration/generators/ui/componentNames/show/getCompNameToShowScalar.js +3 -3
  314. package/build/projectsGeneration/generators/ui/componentNames/show/getCompNamesToShowField.js +7 -7
  315. package/build/projectsGeneration/generators/ui/componentNames/show/getCompNamesToShowIdField.js +3 -3
  316. package/build/projectsGeneration/generators/ui/componentNames/show/getCompNamesToShowLinkField.js +2 -14
  317. package/build/projectsGeneration/generators/ui/componentNames/show/getCompNamesToShowLinkField.spec.js +17 -17
  318. package/build/projectsGeneration/generators/ui/componentNames/show/getCompNamesToShowScalarField.js +3 -3
  319. package/build/projectsGeneration/generators/ui/getLinkShowComponent.spec.js +18 -18
  320. package/build/projectsGeneration/generators/ui/getScalarShowComponent.spec.js +11 -11
  321. package/build/projectsGeneration/generators/ui/getShowComponent.js +19 -20
  322. package/build/projectsGeneration/links/getLinksFromExternalEntities.js +2 -4
  323. package/build/projectsGeneration/links/getLinksFromExternalEntities.spec.js +11 -22
  324. package/build/projectsGeneration/links/getLinksOfEntities.js +6 -8
  325. package/build/projectsGeneration/links/getLinksOfEntities.spec.js +20 -31
  326. package/build/projectsGeneration/links/getLinksToExternalEntities.js +2 -4
  327. package/build/projectsGeneration/links/getLinksToExternalEntities.spec.js +11 -22
  328. package/build/projectsGeneration/metaUtils.js +17 -23
  329. package/build/projectsGeneration/modelsGeneration.serialization.spec.js +8 -8
  330. package/build/projectsGeneration/modules/addEmailModuleEntities.js +11 -11
  331. package/build/projectsGeneration/types.js +6 -6
  332. package/build/projectsGeneration/utils.js +24 -61
  333. package/build/refs/yup.spec.js +7 -7
  334. package/build/types/projectsGeneration/builders/InfoRegistryBuilder.d.ts +0 -4
  335. package/build/types/projectsGeneration/builders/SumRegistryBuilder.d.ts +0 -3
  336. package/build/types/projectsGeneration/fileCleaners/cleanFiles.d.ts +1 -1
  337. package/build/types/projectsGeneration/generateProject.d.ts +0 -5
  338. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/chart/templates/back.d.ts +1 -1
  339. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/chart/templates/ingress.d.ts +1 -1
  340. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/dockerfileTmplBack.d.ts +1 -1
  341. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/dockerfileTmplUI.d.ts +1 -1
  342. package/build/types/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/IntegrationClient.d.ts +1 -1
  343. package/build/types/projectsGeneration/generators/fileTemplates/back/services/entity/config.d.ts +1 -1
  344. package/build/types/projectsGeneration/generators/fileTemplates/ui/environment/chart/templates/front.d.ts +1 -1
  345. package/build/types/projectsGeneration/generators/fileTemplates/ui/environment/chart/templates/ingress.d.ts +1 -1
  346. package/build/types/projectsGeneration/generators/fileTemplates/ui/environment/src/App.d.ts +1 -1
  347. package/build/utils/TermSignals.js +35 -43
  348. package/build/utils/cases.js +12 -18
  349. package/build/utils/getPkgManager.js +4 -4
  350. package/package.json +12 -24
  351. package/build/projectsGeneration/fileCleaners/back/cleanBack.js +0 -50
  352. package/build/types/projectsGeneration/fileCleaners/back/cleanBack.d.ts +0 -3
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
3
  if (k2 === undefined) k2 = k;
15
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -33,43 +22,34 @@ var __importStar = (this && this.__importStar) || function (mod) {
33
22
  __setModuleDefault(result, mod);
34
23
  return result;
35
24
  };
36
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
37
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
38
- if (ar || !(i in from)) {
39
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
40
- ar[i] = from[i];
41
- }
42
- }
43
- return to.concat(ar || Array.prototype.slice.call(from));
44
- };
45
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
46
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
47
27
  };
48
28
  Object.defineProperty(exports, "__esModule", { value: true });
49
29
  exports.defaultConfigVar = void 0;
50
- var types_1 = require("../types");
51
- var CatalogBuilder_1 = __importDefault(require("./CatalogBuilder"));
52
- var DocumentBuilder_1 = __importDefault(require("./DocumentBuilder"));
53
- var InfoRegistryBuilder_1 = require("./InfoRegistryBuilder");
54
- var SumRegistryBuilder_1 = __importDefault(require("./SumRegistryBuilder"));
55
- var defaultCatalogs_1 = require("../defaultCatalogs");
56
- var R = __importStar(require("ramda"));
57
- var ReportBuilder_1 = __importDefault(require("./ReportBuilder"));
58
- var RestApiBuilder_1 = __importDefault(require("./RestApiBuilder"));
59
- var DeploymentBuilder_1 = __importDefault(require("./DeploymentBuilder"));
60
- var RoleBuilder_1 = __importDefault(require("./RoleBuilder"));
61
- var TelegramBotBuilder_1 = __importDefault(require("./TelegramBotBuilder"));
62
- var ConfigVarBuilder_1 = require("./ConfigVarBuilder");
63
- var log_1 = __importDefault(require("../../log"));
64
- var IntegrationClientBuilder_1 = __importDefault(require("./integrationClients/IntegrationClientBuilder"));
65
- var ExternalMenuItemBuilder_1 = __importDefault(require("./menu/ExternalMenuItemBuilder"));
66
- var ExternalEnvMenuItemBuilder_1 = __importDefault(require("./menu/ExternalEnvMenuItemBuilder"));
67
- var InternalMenuItemBuilder_1 = __importDefault(require("./menu/InternalMenuItemBuilder"));
68
- var GroupMenuItemBuilder_1 = __importDefault(require("./menu/GroupMenuItemBuilder"));
69
- var PageBuilder_1 = __importDefault(require("./PageBuilder"));
70
- var AdditionalServiceBuilder_1 = __importDefault(require("./AdditionalServiceBuilder"));
71
- var BaseModelBuilder_1 = __importDefault(require("./mehods/BaseModelBuilder"));
72
- var MethodBuilder_1 = __importDefault(require("./mehods/MethodBuilder"));
30
+ const types_1 = require("../types");
31
+ const CatalogBuilder_1 = __importDefault(require("./CatalogBuilder"));
32
+ const DocumentBuilder_1 = __importDefault(require("./DocumentBuilder"));
33
+ const InfoRegistryBuilder_1 = require("./InfoRegistryBuilder");
34
+ const SumRegistryBuilder_1 = __importDefault(require("./SumRegistryBuilder"));
35
+ const defaultCatalogs_1 = require("../defaultCatalogs");
36
+ const R = __importStar(require("ramda"));
37
+ const ReportBuilder_1 = __importDefault(require("./ReportBuilder"));
38
+ const RestApiBuilder_1 = __importDefault(require("./RestApiBuilder"));
39
+ const DeploymentBuilder_1 = __importDefault(require("./DeploymentBuilder"));
40
+ const RoleBuilder_1 = __importDefault(require("./RoleBuilder"));
41
+ const TelegramBotBuilder_1 = __importDefault(require("./TelegramBotBuilder"));
42
+ const ConfigVarBuilder_1 = require("./ConfigVarBuilder");
43
+ const log_1 = __importDefault(require("../../log"));
44
+ const IntegrationClientBuilder_1 = __importDefault(require("./integrationClients/IntegrationClientBuilder"));
45
+ const ExternalMenuItemBuilder_1 = __importDefault(require("./menu/ExternalMenuItemBuilder"));
46
+ const ExternalEnvMenuItemBuilder_1 = __importDefault(require("./menu/ExternalEnvMenuItemBuilder"));
47
+ const InternalMenuItemBuilder_1 = __importDefault(require("./menu/InternalMenuItemBuilder"));
48
+ const GroupMenuItemBuilder_1 = __importDefault(require("./menu/GroupMenuItemBuilder"));
49
+ const PageBuilder_1 = __importDefault(require("./PageBuilder"));
50
+ const AdditionalServiceBuilder_1 = __importDefault(require("./AdditionalServiceBuilder"));
51
+ const BaseModelBuilder_1 = __importDefault(require("./mehods/BaseModelBuilder"));
52
+ const MethodBuilder_1 = __importDefault(require("./mehods/MethodBuilder"));
73
53
  exports.defaultConfigVar = {
74
54
  needFor: '',
75
55
  default: '',
@@ -78,13 +58,11 @@ exports.defaultConfigVar = {
78
58
  hidden: false,
79
59
  editable: true,
80
60
  };
81
- var SystemMetaBuilder = /** @class */ (function () {
61
+ class SystemMetaBuilder {
82
62
  // requests: MemoryAndCpu = { memory: '128Mi', cpu: '0.15' }
83
63
  // limits: MemoryAndCpu = { memory: '256Mi', cpu: '1' }
84
64
  // space = '';
85
- function SystemMetaBuilder(prefix, defOpts, defaultLanguage) {
86
- if (defOpts === void 0) { defOpts = types_1.defaultBootstrapEntityOptions; }
87
- if (defaultLanguage === void 0) { defaultLanguage = 'ru'; }
65
+ constructor(prefix, defOpts = types_1.defaultBootstrapEntityOptions, defaultLanguage = 'ru') {
88
66
  this.catalogs = [];
89
67
  this.reports = [];
90
68
  this.documents = [];
@@ -242,18 +220,18 @@ var SystemMetaBuilder = /** @class */ (function () {
242
220
  // .addWorker('emails', 'Отправка почты')
243
221
  // .setNeedFor('Для отправки почты');
244
222
  }
245
- SystemMetaBuilder.prototype.setName = function (name) {
223
+ setName(name) {
246
224
  this.name = name;
247
225
  return this;
248
- };
249
- SystemMetaBuilder.prototype.setNeedFor = function (needFor) {
226
+ }
227
+ setNeedFor(needFor) {
250
228
  this.needFor = needFor;
251
229
  return this;
252
- };
253
- SystemMetaBuilder.prototype.setPrefix = function (prefix) {
230
+ }
231
+ setPrefix(prefix) {
254
232
  this.prefix = prefix;
255
233
  return this;
256
- };
234
+ }
257
235
  // | 'string'
258
236
  // | 'int'
259
237
  // | 'bigint'
@@ -261,354 +239,351 @@ var SystemMetaBuilder = /** @class */ (function () {
261
239
  // | 'bool'
262
240
  // | 'datetime'
263
241
  // | 'date'
264
- SystemMetaBuilder.prototype.addConfigVar = function (name, type, required, def, needFor, scopes, hidden, editable) {
265
- if (scopes === void 0) { scopes = ['back', 'worker', 'telegramBot']; }
266
- if (hidden === void 0) { hidden = false; }
267
- if (editable === void 0) { editable = true; }
268
- if (this.configVars.some(function (v) { return v.name === name; })) {
269
- throw new Error("\"".concat(name, "\" config var already exists"));
242
+ addConfigVar(name, type, required, def, needFor, scopes = ['back', 'worker', 'telegramBot'], hidden = false, editable = true) {
243
+ if (this.configVars.some((v) => v.name === name)) {
244
+ throw new Error(`"${name}" config var already exists`);
270
245
  }
271
- var configVar = new ConfigVarBuilder_1.ConfigVarBuilder(name, type, required, def, needFor, scopes, hidden, editable);
246
+ const configVar = new ConfigVarBuilder_1.ConfigVarBuilder(name, type, required, def, needFor, scopes, hidden, editable);
272
247
  this.configVars.push(configVar);
273
248
  return configVar;
274
- };
275
- SystemMetaBuilder.prototype.delConfigVar = function (name) {
276
- if (!this.configVars.some(function (v) { return v.name === name; })) {
277
- throw new Error("There is no \"".concat(name, "\" config var"));
249
+ }
250
+ delConfigVar(name) {
251
+ if (!this.configVars.some((v) => v.name === name)) {
252
+ throw new Error(`There is no "${name}" config var`);
278
253
  }
279
- this.configVars = this.configVars.filter(function (v) { return v.name !== name; });
254
+ this.configVars = this.configVars.filter(v => v.name !== name);
280
255
  return this;
281
- };
282
- SystemMetaBuilder.prototype.getConfigVar = function (name) {
283
- return this.configVars.find(function (el) { return el.name === name; });
284
- };
285
- SystemMetaBuilder.prototype.getConfigVarRequired = function (name) {
286
- var configVars = this.configVars.find(function (el) { return el.name === name; });
256
+ }
257
+ getConfigVar(name) {
258
+ return this.configVars.find(el => el.name === name);
259
+ }
260
+ getConfigVarRequired(name) {
261
+ const configVars = this.configVars.find(el => el.name === name);
287
262
  if (!configVars) {
288
- throw new Error("There is no \"".concat(name, "\" config var"));
263
+ throw new Error(`There is no "${name}" config var`);
289
264
  }
290
265
  return configVars;
291
- };
292
- SystemMetaBuilder.prototype.setConfigVarDefaultValue = function (name, def) {
266
+ }
267
+ setConfigVarDefaultValue(name, def) {
293
268
  log_1.default.warn('setConfigVarDefaultValue is legacy, legacy, use system.getConfigVarRequired(name).setDefValue(def) instead');
294
- var configVars = this.getConfigVarRequired(name);
269
+ const configVars = this.getConfigVarRequired(name);
295
270
  configVars.setDefValue(def);
296
271
  return this;
297
- };
298
- SystemMetaBuilder.prototype.setDefaultValueForConfigVar = function (name, def) {
272
+ }
273
+ setDefaultValueForConfigVar(name, def) {
299
274
  log_1.default.warn('setDefaultValueForConfigVar is legacy, legacy, use system.getConfigVarRequired(name).setDefValue(def) instead');
300
275
  return this.setConfigVarDefaultValue(name, def);
301
- };
302
- SystemMetaBuilder.prototype.addLanguage = function (id, title) {
303
- if (!this.languages.map(function (_a) {
304
- var id = _a.id;
305
- return id;
306
- }).includes(id)) {
307
- this.languages.push({ id: id, title: title !== null && title !== void 0 ? title : id });
276
+ }
277
+ addLanguage(id, title) {
278
+ if (!this.languages.map(({ id }) => id).includes(id)) {
279
+ this.languages.push({ id, title: title !== null && title !== void 0 ? title : id });
308
280
  }
309
- };
310
- SystemMetaBuilder.prototype.deleteLanguage = function (id) {
311
- this.languages = this.languages.filter(function (lang) { return lang.id !== id; });
312
- };
313
- SystemMetaBuilder.prototype.setDefailtLanguage = function (id) {
314
- if (!this.languages.map(function (_a) {
315
- var id = _a.id;
316
- return id;
317
- }).includes(id)) {
318
- throw new Error("There is no \"".concat(id, "\" langiage"));
281
+ }
282
+ deleteLanguage(id) {
283
+ this.languages = this.languages.filter(lang => lang.id !== id);
284
+ }
285
+ setDefailtLanguage(id) {
286
+ if (!this.languages.map(({ id }) => id).includes(id)) {
287
+ throw new Error(`There is no "${id}" langiage`);
319
288
  }
320
289
  this.defaultLanguage = id;
321
- };
322
- SystemMetaBuilder.prototype.addDeployEnvironment = function (deployEnvironment) {
323
- if (this.deployEnvironments.some(function (f) { return f.name === deployEnvironment.name; })) {
324
- throw new Error("There is already deployEnvironment with name \"".concat(deployEnvironment.name, "\""));
290
+ }
291
+ addDeployEnvironment(deployEnvironment) {
292
+ if (this.deployEnvironments.some((f) => f.name === deployEnvironment.name)) {
293
+ throw new Error(`There is already deployEnvironment with name "${deployEnvironment.name}"`);
325
294
  }
326
295
  this.deployEnvironments.push(deployEnvironment);
327
296
  // if (this.deployEnvironments.filter((f) => f.main)?.length > 1) {
328
297
  // throw new Error(`Main deployEnvironment shuold be only one"`)
329
298
  // }
330
299
  return this;
331
- };
332
- SystemMetaBuilder.prototype.editDeployEnvironment = function (name, deployEnvironment) {
333
- if (!this.deployEnvironments.some(function (f) { return f.name === name; })) {
334
- throw new Error("There is no \"".concat(name, "\" deploy environment (you may use ").concat(this.deployEnvironments.map(function (e) { return e.name; }).join(', '), ")"));
300
+ }
301
+ editDeployEnvironment(name, deployEnvironment) {
302
+ if (!this.deployEnvironments.some((f) => f.name === name)) {
303
+ throw new Error(`There is no "${name}" deploy environment (you may use ${this.deployEnvironments.map(e => e.name).join(', ')})`);
335
304
  }
336
- this.deployEnvironments = this.deployEnvironments.map(function (env) { return env.name === name ? __assign(__assign(__assign({}, env), deployEnvironment), { name: name }) : env; });
305
+ this.deployEnvironments = this.deployEnvironments.map(env => env.name === name ? Object.assign(Object.assign(Object.assign({}, env), deployEnvironment), { name }) : env);
337
306
  // if (this.deployEnvironments.filter((f) => f.main)?.length > 1) {
338
307
  // throw new Error(`Main deployEnvironment shuold be only one"`)
339
308
  // }
340
309
  return this;
341
- };
342
- SystemMetaBuilder.prototype.delDeployEnvironment = function (name) {
343
- if (!this.deployEnvironments.some(function (f) { return f.name === name; })) {
344
- throw new Error("There is no \"".concat(name, "\" deploy environment (you may use ").concat(this.deployEnvironments.map(function (e) { return e.name; }).join(', '), ")"));
310
+ }
311
+ delDeployEnvironment(name) {
312
+ if (!this.deployEnvironments.some((f) => f.name === name)) {
313
+ throw new Error(`There is no "${name}" deploy environment (you may use ${this.deployEnvironments.map(e => e.name).join(', ')})`);
345
314
  }
346
- this.deployEnvironments = this.deployEnvironments.filter(function (v) { return v.name !== name; });
315
+ this.deployEnvironments = this.deployEnvironments.filter(v => v.name !== name);
347
316
  return this;
348
- };
349
- SystemMetaBuilder.prototype.addTelegramBot = function (name, title) {
350
- if (this.telegramBots.some(function (f) { return f.name === name; })) {
351
- throw new Error("There is already telegramBot with name \"".concat(name, "\""));
317
+ }
318
+ addTelegramBot(name, title) {
319
+ if (this.telegramBots.some((f) => f.name === name)) {
320
+ throw new Error(`There is already telegramBot with name "${name}"`);
352
321
  }
353
- var telegramBot = new TelegramBotBuilder_1.default(name, this.defaultLanguage, title);
322
+ const telegramBot = new TelegramBotBuilder_1.default(name, this.defaultLanguage, title);
354
323
  this.telegramBots.push(telegramBot);
355
324
  return telegramBot;
356
- };
325
+ }
357
326
  // catalogs
358
- SystemMetaBuilder.prototype.getCatalogs = function () {
327
+ getCatalogs() {
359
328
  return this.catalogs;
360
- };
361
- SystemMetaBuilder.prototype.addCatalog = function (name, title, options) {
362
- if (options === void 0) { options = this ? this.defOpts : {}; }
329
+ }
330
+ addCatalog(name, title, options = this ? this.defOpts : {}) {
363
331
  this.assureNoNamedEntityAlreadyDefined(name);
364
- var catalog = new CatalogBuilder_1.default(name, this.defaultLanguage, title);
365
- this.catalogs.push({ entity: catalog, options: options });
332
+ const catalog = new CatalogBuilder_1.default(name, this.defaultLanguage, title);
333
+ this.catalogs.push({ entity: catalog, options });
366
334
  return catalog;
367
- };
368
- SystemMetaBuilder.prototype.getCatalogByName = function (name) {
369
- var catalog = this.catalogs.find(function (c) { return c.entity.name === name; });
335
+ }
336
+ getCatalogByName(name) {
337
+ const catalog = this.catalogs.find((c) => c.entity.name === name);
370
338
  if (!catalog) {
371
- throw new Error("There is no \"".concat(name, "\" catalog"));
339
+ throw new Error(`There is no "${name}" catalog`);
372
340
  }
373
341
  return catalog.entity;
374
- };
375
- SystemMetaBuilder.prototype.getInfoRegistryByName = function (name) {
376
- var infoRegistry = this.infoRegistries.find(function (c) { return c.entity.name === name; });
342
+ }
343
+ getInfoRegistryByName(name) {
344
+ const infoRegistry = this.infoRegistries.find((c) => c.entity.name === name);
377
345
  if (!infoRegistry) {
378
- throw new Error("There is no \"".concat(name, "\" infoRegistry"));
346
+ throw new Error(`There is no "${name}" infoRegistry`);
379
347
  }
380
348
  return infoRegistry.entity;
381
- };
382
- SystemMetaBuilder.prototype.addRestApi = function (name, path, title, auth) {
383
- if (auth === void 0) { auth = true; }
384
- if (this.restApis.some(function (f) { return f.name === name; })) {
385
- throw new Error("There is already rest api with name \"".concat(name, "\""));
349
+ }
350
+ addRestApi(name, path, title, auth = true) {
351
+ if (this.restApis.some((f) => f.name === name)) {
352
+ throw new Error(`There is already rest api with name "${name}"`);
386
353
  }
387
- if (this.restApis.some(function (f) { return f.path === path; })) {
388
- throw new Error("There is already rest api with path \"".concat(path, "\""));
354
+ if (this.restApis.some((f) => f.path === path)) {
355
+ throw new Error(`There is already rest api with path "${path}"`);
389
356
  }
390
- var restApi = new RestApiBuilder_1.default(name, path, this.defaultLanguage, title, auth);
357
+ const restApi = new RestApiBuilder_1.default(name, path, this.defaultLanguage, title, auth);
391
358
  this.restApis.push(restApi);
392
359
  return restApi;
393
- };
394
- SystemMetaBuilder.prototype.addIntegrationClient = function (name, title) {
395
- if (this.integrationClients.some(function (f) { return f.name === name; })) {
396
- throw new Error("There is already integration client with name \"".concat(name, "\". Entity ").concat(this.name));
360
+ }
361
+ addIntegrationClient(name, title) {
362
+ if (this.integrationClients.some((f) => f.name === name)) {
363
+ throw new Error(`There is already integration client with name "${name}". Entity ${this.name}`);
397
364
  }
398
- var integrationClient = new IntegrationClientBuilder_1.default(name, this.defaultLanguage, title);
365
+ const integrationClient = new IntegrationClientBuilder_1.default(name, this.defaultLanguage, title);
399
366
  this.integrationClients.push(integrationClient);
400
367
  return integrationClient;
401
- };
402
- SystemMetaBuilder.prototype.addAdditionalService = function (name, title) {
403
- if (this.additionalServices.some(function (f) { return f.name === name; })) {
404
- throw new Error("There is already additional service with name \"".concat(name, "\". Entity ").concat(this.name));
368
+ }
369
+ addAdditionalService(name, title) {
370
+ if (this.additionalServices.some((f) => f.name === name)) {
371
+ throw new Error(`There is already additional service with name "${name}". Entity ${this.name}`);
405
372
  }
406
- var additionalService = new AdditionalServiceBuilder_1.default(name, this.defaultLanguage, title);
373
+ const additionalService = new AdditionalServiceBuilder_1.default(name, this.defaultLanguage, title);
407
374
  this.additionalServices.push(additionalService);
408
375
  return additionalService;
409
- };
410
- SystemMetaBuilder.prototype.addWorker = function (name, title) {
411
- if (this.workers.some(function (f) { return f.name === name; })) {
412
- throw new Error("There is already rest api with name \"".concat(name, "\""));
376
+ }
377
+ addWorker(name, title) {
378
+ if (this.workers.some((f) => f.name === name)) {
379
+ throw new Error(`There is already rest api with name "${name}"`);
413
380
  }
414
- var worker = new DeploymentBuilder_1.default(name, this.defaultLanguage, title);
381
+ const worker = new DeploymentBuilder_1.default(name, this.defaultLanguage, title);
415
382
  this.workers.push(worker);
416
383
  return worker;
417
- };
418
- SystemMetaBuilder.prototype.addManyToManyRelation = function (name, title, options) {
419
- if (options === void 0) { options = this ? this.defOpts : {}; }
384
+ }
385
+ addManyToManyRelation(name, title, options = this ? this.defOpts : {}) {
420
386
  this.assureNoNamedEntityAlreadyDefined(name);
421
- var catalog = new CatalogBuilder_1.default(name, this.defaultLanguage, title);
422
- this.catalogs.push({ entity: catalog, options: options });
387
+ const catalog = new CatalogBuilder_1.default(name, this.defaultLanguage, title);
388
+ this.catalogs.push({ entity: catalog, options });
423
389
  return catalog;
424
- };
425
- SystemMetaBuilder.prototype.addRole = function (name, title) {
390
+ }
391
+ addRole(name, title) {
426
392
  this.assureNoNamedEntityAlreadyDefined(name);
427
- var role = new RoleBuilder_1.default(name, this.defaultLanguage, title);
393
+ const role = new RoleBuilder_1.default(name, this.defaultLanguage, title);
428
394
  this.roles.push(role);
429
395
  return role;
430
- };
396
+ }
431
397
  // constructor(assurePageExists: (pageId: string) => void, name: string, defaultLanguage: string, title?: string, level?: number) {
432
398
  // super(name, defaultLanguage, title, level);
433
399
  // this.assurePageExists = assurePageExists;
434
400
  // }
435
- SystemMetaBuilder.prototype.getAllPages = function () {
436
- return __spreadArray(__spreadArray(__spreadArray([], this.pages, true), this.reports.map(function (e) { return e.entity.getPage(); }), true), this.getSavableEntities().map(function (e) { return e.entity.pages; }), true).flat();
437
- };
438
- SystemMetaBuilder.prototype.assurePageExists = function (pageName) {
439
- if (!this.getAllPages().some(function (p) { return p.name === pageName; })) {
440
- throw new Error("There is no \"".concat(pageName, "\" page"));
401
+ getAllPages() {
402
+ return [
403
+ ...this.pages,
404
+ ...this.reports.map(e => e.entity.getPage()),
405
+ ...this.getSavableEntities().map(e => e.entity.pages),
406
+ ].flat();
407
+ }
408
+ assurePageExists(pageName) {
409
+ if (!this.getAllPages().some(p => p.name === pageName)) {
410
+ throw new Error(`There is no "${pageName}" page`);
441
411
  }
442
- };
443
- SystemMetaBuilder.prototype.addPage = function (name, link, label, title) {
444
- if (this.getAllPages().some(function (p) { return p.name === name; })) {
445
- throw new Error("There is already \"".concat(name, "\" page"));
412
+ }
413
+ addPage(name, link, label, title) {
414
+ if (this.getAllPages().some(p => p.name === name)) {
415
+ throw new Error(`There is already "${name}" page`);
446
416
  }
447
- var page = new PageBuilder_1.default(name, link, label, this.defaultLanguage, title);
417
+ const page = new PageBuilder_1.default(name, link, label, this.defaultLanguage, title);
448
418
  this.pages.push(page);
449
419
  return page;
450
- };
451
- SystemMetaBuilder.prototype.getPageByName = function (pageName) {
452
- var found = this.getAllPages().find(function (p) { return p.name === pageName; });
420
+ }
421
+ getPageByName(pageName) {
422
+ const found = this.getAllPages().find(p => p.name === pageName);
453
423
  if (!found) {
454
- throw new Error("Page \"".concat(pageName, "\" not found"));
424
+ throw new Error(`Page "${pageName}" not found`);
455
425
  }
456
426
  return found;
457
- };
458
- SystemMetaBuilder.prototype.getAllLabels = function () {
459
- return __spreadArray(__spreadArray(__spreadArray([], this.labels, true), this.reports.map(function (r) { return r.entity.getLabels(); }), true), this.getSavableEntities().map(function (e) { return e.entity.labels; }), true).flat();
460
- };
461
- SystemMetaBuilder.prototype.assureLabelExists = function (label) {
462
- if (!this.getAllLabels().some(function (l) { return l === label; })) {
463
- throw new Error("There is no \"".concat(label, "\" page"));
427
+ }
428
+ getAllLabels() {
429
+ return [
430
+ ...this.labels,
431
+ ...this.reports.map(r => r.entity.getLabels()),
432
+ ...this.getSavableEntities().map(e => e.entity.labels),
433
+ ].flat();
434
+ }
435
+ assureLabelExists(label) {
436
+ if (!this.getAllLabels().some(l => l === label)) {
437
+ throw new Error(`There is no "${label}" page`);
464
438
  }
465
- };
466
- SystemMetaBuilder.prototype.addGroupMenuItem = function (label) {
467
- var menuItem = new GroupMenuItemBuilder_1.default(this, label, this.defaultLanguage, 1);
439
+ }
440
+ addGroupMenuItem(label) {
441
+ const menuItem = new GroupMenuItemBuilder_1.default(this, label, this.defaultLanguage, 1);
468
442
  this.menuItems.push(menuItem);
469
443
  return menuItem;
470
- };
471
- SystemMetaBuilder.prototype.addInternalMenuItem = function (pageName) {
472
- var menuItem = new InternalMenuItemBuilder_1.default(this, pageName, this.defaultLanguage, 1);
444
+ }
445
+ addInternalMenuItem(pageName) {
446
+ const menuItem = new InternalMenuItemBuilder_1.default(this, pageName, this.defaultLanguage, 1);
473
447
  this.menuItems.push(menuItem);
474
448
  return menuItem;
475
- };
476
- SystemMetaBuilder.prototype.addExternalMenuItem = function (label, url) {
477
- var menuItem = new ExternalMenuItemBuilder_1.default(this, label, url, this.defaultLanguage, 1);
449
+ }
450
+ addExternalMenuItem(label, url) {
451
+ const menuItem = new ExternalMenuItemBuilder_1.default(this, label, url, this.defaultLanguage, 1);
478
452
  this.menuItems.push(menuItem);
479
453
  return menuItem;
480
- };
481
- SystemMetaBuilder.prototype.addExternalEnvMenuItem = function (label, env) {
482
- var menuItem = new ExternalEnvMenuItemBuilder_1.default(this, label, env, this.defaultLanguage, 1);
454
+ }
455
+ addExternalEnvMenuItem(label, env) {
456
+ const menuItem = new ExternalEnvMenuItemBuilder_1.default(this, label, env, this.defaultLanguage, 1);
483
457
  this.menuItems.push(menuItem);
484
458
  return menuItem;
485
- };
486
- SystemMetaBuilder.prototype.getBack = function () {
459
+ }
460
+ getBack() {
487
461
  return this.back;
488
- };
462
+ }
489
463
  // documents
490
- SystemMetaBuilder.prototype.getDocuments = function () {
464
+ getDocuments() {
491
465
  return this.documents;
492
- };
493
- SystemMetaBuilder.prototype.addDocument = function (name, title, options) {
494
- if (options === void 0) { options = this ? this.defOpts : {}; }
466
+ }
467
+ addDocument(name, title, options = this ? this.defOpts : {}) {
495
468
  this.assureNoNamedEntityAlreadyDefined(name);
496
- var document = new DocumentBuilder_1.default(name, this.defaultLanguage, title);
497
- this.documents.push({ entity: document, options: options });
469
+ const document = new DocumentBuilder_1.default(name, this.defaultLanguage, title);
470
+ this.documents.push({ entity: document, options });
498
471
  return document;
499
- };
500
- SystemMetaBuilder.prototype.addReport = function (name, title, options) {
501
- if (options === void 0) { options = this ? this.defOpts : {}; }
502
- if (this.reports.some(function (f) { return f.entity.name === name; })) {
503
- throw new Error("There is already report with name \"".concat(name, "\". Entity ").concat(this.name));
472
+ }
473
+ addReport(name, title, options = this ? this.defOpts : {}) {
474
+ if (this.reports.some((f) => f.entity.name === name)) {
475
+ throw new Error(`There is already report with name "${name}". Entity ${this.name}`);
504
476
  }
505
- var report = new ReportBuilder_1.default(name, this.defaultLanguage, title);
506
- this.reports.push({ entity: report, options: options });
477
+ const report = new ReportBuilder_1.default(name, this.defaultLanguage, title);
478
+ this.reports.push({ entity: report, options });
507
479
  return report;
508
- };
509
- SystemMetaBuilder.prototype.assureNoNamedEntityAlreadyDefined = function (name) {
510
- if (this.getSavableEntities().some(function (f) { return f.entity.name === name; })) {
511
- throw new Error("There is already entity with name \"".concat(name, "\". Entity ").concat(this.name));
480
+ }
481
+ assureNoNamedEntityAlreadyDefined(name) {
482
+ if (this.getSavableEntities().some((f) => f.entity.name === name)) {
483
+ throw new Error(`There is already entity with name "${name}". Entity ${this.name}`);
512
484
  }
513
- };
514
- SystemMetaBuilder.prototype.addInfoRegistry = function (name, registrarDepended, title, options) {
515
- if (options === void 0) { options = this ? this.defOpts : {}; }
485
+ }
486
+ addInfoRegistry(name, registrarDepended, title, options = this ? this.defOpts : {}) {
516
487
  this.assureNoNamedEntityAlreadyDefined(name);
517
- var infoRegistry = new InfoRegistryBuilder_1.InfoRegistryBuilder(name, registrarDepended, this.defaultLanguage, title);
518
- this.infoRegistries.push({ entity: infoRegistry, options: options });
488
+ const infoRegistry = new InfoRegistryBuilder_1.InfoRegistryBuilder(name, registrarDepended, this.defaultLanguage, title);
489
+ this.infoRegistries.push({ entity: infoRegistry, options });
519
490
  return infoRegistry;
520
- };
521
- SystemMetaBuilder.prototype.addSumRegistry = function (name, registrarDepended, title, options) {
491
+ }
492
+ addSumRegistry(name, registrarDepended, title, options) {
522
493
  this.assureNoNamedEntityAlreadyDefined(name);
523
- var sumRegistry = new SumRegistryBuilder_1.default(name, registrarDepended, this.defaultLanguage, title, options);
494
+ const sumRegistry = new SumRegistryBuilder_1.default(name, registrarDepended, this.defaultLanguage, title, options);
524
495
  this.sumRegistries.push({ entity: sumRegistry, options: this.defOpts });
525
496
  return sumRegistry;
526
- };
527
- SystemMetaBuilder.prototype.addGlossaryTerm = function (term, definition) {
528
- if (this.glossary.some(function (g) { return g.term === term; })) {
529
- throw new Error("There is already term \"".concat(term, "\" in glossary"));
497
+ }
498
+ addGlossaryTerm(term, definition) {
499
+ if (this.glossary.some((g) => g.term === term)) {
500
+ throw new Error(`There is already term "${term}" in glossary`);
530
501
  }
531
- this.glossary.push({ term: term, definition: definition });
502
+ this.glossary.push({ term, definition });
532
503
  return this;
533
- };
534
- SystemMetaBuilder.prototype.addCommnad = function (projectCategory, name, command, needFor) {
535
- if (this.commands.some(function (g) { return g.name === name; })) {
536
- throw new Error("There is already \"".concat(name, "\" command"));
504
+ }
505
+ addCommnad(projectCategory, name, command, needFor) {
506
+ if (this.commands.some((g) => g.name === name)) {
507
+ throw new Error(`There is already "${name}" command`);
537
508
  }
538
509
  this.commands.push({
539
- projectCategory: projectCategory,
540
- name: name,
541
- command: command,
542
- needFor: needFor,
510
+ projectCategory,
511
+ name,
512
+ command,
513
+ needFor,
543
514
  });
544
515
  return this;
545
- };
546
- SystemMetaBuilder.prototype.getSavableEntities = function () {
516
+ }
517
+ getSavableEntities() {
547
518
  return [
548
519
  this.catalogs,
549
520
  this.documents,
550
521
  this.infoRegistries,
551
522
  this.sumRegistries,
552
523
  ].flat();
553
- };
554
- SystemMetaBuilder.prototype.getExternalSearchEntities = function () {
524
+ }
525
+ getExternalSearchEntities() {
555
526
  return this.getSavableEntities()
556
- .map(function (e) { return e.entity; })
557
- .filter(function (e) { return e.externalSearch; });
558
- };
559
- SystemMetaBuilder.prototype.addMethod = function (name, methodType, title) {
560
- if (this.methods.some(function (f) { return f.name === name; })) {
561
- throw new Error("There is already field with name \"".concat(name, "\" in args model"));
527
+ .map(e => e.entity)
528
+ .filter((e) => e.externalSearch);
529
+ }
530
+ addMethod(name, methodType, title) {
531
+ if (this.methods.some((f) => f.name === name)) {
532
+ throw new Error(`There is already field with name "${name}" in args model`);
562
533
  }
563
- var field = new MethodBuilder_1.default(this, name, methodType, this.defaultLanguage, title);
534
+ const field = new MethodBuilder_1.default(this, name, methodType, this.defaultLanguage, title);
564
535
  this.methods.push(field);
565
536
  return field;
566
- };
567
- SystemMetaBuilder.prototype.addLabel = function (label) {
568
- if (this.labels.some(function (m) { return m === label; })) {
569
- throw new Error("There is already system label \"".concat(label, "\""));
537
+ }
538
+ addLabel(label) {
539
+ if (this.labels.some(m => m === label)) {
540
+ throw new Error(`There is already system label "${label}"`);
570
541
  }
571
542
  this.labels.push(label);
572
- };
573
- SystemMetaBuilder.prototype.getMethods = function () {
543
+ }
544
+ getMethods() {
574
545
  return this.methods;
575
- };
576
- SystemMetaBuilder.prototype.addGeneralModel = function (name, title) {
577
- if (this.getAllModels().some(function (f) { return f.name === name; })) {
578
- throw new Error("There is already field with name \"".concat(name, "\" in args model"));
546
+ }
547
+ addGeneralModel(name, title) {
548
+ if (this.getAllModels().some((f) => f.name === name)) {
549
+ throw new Error(`There is already field with name "${name}" in args model`);
579
550
  }
580
- var model = new BaseModelBuilder_1.default(this, name, title !== null && title !== void 0 ? title : name, this.defaultLanguage);
551
+ const model = new BaseModelBuilder_1.default(this, name, title !== null && title !== void 0 ? title : name, this.defaultLanguage);
581
552
  this.generalModels.push(model);
582
553
  return model;
583
- };
584
- SystemMetaBuilder.prototype.addInputModel = function (name, title) {
585
- if (this.getAllModels().some(function (f) { return f.name === name; })) {
586
- throw new Error("There is already field with name \"".concat(name, "\" in args model"));
554
+ }
555
+ addInputModel(name, title) {
556
+ if (this.getAllModels().some((f) => f.name === name)) {
557
+ throw new Error(`There is already field with name "${name}" in args model`);
587
558
  }
588
- var model = new BaseModelBuilder_1.default(this, name, title !== null && title !== void 0 ? title : name, this.defaultLanguage);
559
+ const model = new BaseModelBuilder_1.default(this, name, title !== null && title !== void 0 ? title : name, this.defaultLanguage);
589
560
  this.inputModels.push(model);
590
561
  return model;
591
- };
592
- SystemMetaBuilder.prototype.addOutputModel = function (name, title) {
593
- if (this.getAllModels().some(function (f) { return f.name === name; })) {
594
- throw new Error("There is already field with name \"".concat(name, "\" in args model"));
562
+ }
563
+ addOutputModel(name, title) {
564
+ if (this.getAllModels().some((f) => f.name === name)) {
565
+ throw new Error(`There is already field with name "${name}" in args model`);
595
566
  }
596
- var model = new BaseModelBuilder_1.default(this, name, title !== null && title !== void 0 ? title : name, this.defaultLanguage);
567
+ const model = new BaseModelBuilder_1.default(this, name, title !== null && title !== void 0 ? title : name, this.defaultLanguage);
597
568
  this.outputModels.push(model);
598
569
  return model;
599
- };
600
- SystemMetaBuilder.prototype.getAllModels = function () {
601
- return __spreadArray(__spreadArray(__spreadArray([], this.inputModels, true), this.outputModels, true), this.generalModels, true);
602
- };
603
- SystemMetaBuilder.prototype.getGeneralModels = function () {
570
+ }
571
+ getAllModels() {
572
+ return [
573
+ ...this.inputModels,
574
+ ...this.outputModels,
575
+ ...this.generalModels,
576
+ ];
577
+ }
578
+ getGeneralModels() {
604
579
  return this.generalModels;
605
- };
606
- SystemMetaBuilder.prototype.getInputModels = function () {
580
+ }
581
+ getInputModels() {
607
582
  return this.inputModels;
608
- };
609
- SystemMetaBuilder.prototype.getOutputModels = function () {
583
+ }
584
+ getOutputModels() {
610
585
  return this.outputModels;
611
- };
586
+ }
612
587
  // setMemory(request: string, limit?: string) {
613
588
  // this.requests.memory = request
614
589
  // if (limit) {
@@ -627,10 +602,8 @@ var SystemMetaBuilder = /** @class */ (function () {
627
602
  // }
628
603
  // return this
629
604
  // }
630
- SystemMetaBuilder.prototype._build = function () {
631
- var sortByName = function (entries) {
632
- return R.sortBy(R.compose(R.prop('name'), R.prop('entity')), entries);
633
- };
605
+ _build() {
606
+ const sortByName = (entries) => R.sortBy(R.compose(R.prop('name'), R.prop('entity')), entries);
634
607
  return {
635
608
  name: this.name,
636
609
  prefix: this.prefix,
@@ -638,57 +611,41 @@ var SystemMetaBuilder = /** @class */ (function () {
638
611
  deployEnvironments: this.deployEnvironments,
639
612
  glossary: R.sortBy(R.prop('term'), this.glossary),
640
613
  commands: R.sortBy(R.prop('command'), this.commands),
641
- telegramBots: R.sortBy(R.prop('name'), this.telegramBots).map(function (el) {
642
- return el.build();
643
- }),
644
- configVars: R.sortBy(R.prop('name'), this.configVars.map(function (cv) { return cv.build(); })),
645
- catalogs: sortByName(this.catalogs).map(function (el) { return el.entity.build(); }),
646
- documents: sortByName(this.documents).map(function (el) { return el.entity.build(); }),
647
- infoRegistries: sortByName(this.infoRegistries).map(function (el) {
648
- return el.entity.build();
649
- }),
650
- sumRegistries: sortByName(this.sumRegistries).map(function (el) {
651
- return el.entity.build();
652
- }),
614
+ telegramBots: R.sortBy(R.prop('name'), this.telegramBots).map((el) => el.build()),
615
+ configVars: R.sortBy(R.prop('name'), this.configVars.map((cv) => cv.build())),
616
+ catalogs: sortByName(this.catalogs).map((el) => el.entity.build()),
617
+ documents: sortByName(this.documents).map((el) => el.entity.build()),
618
+ infoRegistries: sortByName(this.infoRegistries).map((el) => el.entity.build()),
619
+ sumRegistries: sortByName(this.sumRegistries).map((el) => el.entity.build()),
653
620
  languages: this.languages.sort(),
654
621
  defaultLanguage: this.defaultLanguage,
655
- reports: sortByName(this.reports).map(function (_a) {
656
- var entity = _a.entity;
657
- return entity.build();
658
- }),
659
- restApis: R.sortBy(R.prop('name'), this.restApis).map(function (api) {
660
- return api.build();
661
- }),
662
- integrationClients: R.sortBy(R.prop('name'), this.integrationClients).map(function (c) {
663
- return c.build();
664
- }),
665
- workers: R.sortBy(R.prop('name'), this.workers).map(function (worker) {
666
- return worker.build();
667
- }),
668
- roles: R.sortBy(R.prop('name'), this.roles).map(function (role) { return role.build(); }),
669
- menuItems: this.menuItems.map(function (item) { return item.build(); }),
670
- pages: this.pages.map(function (p) { return p.build(); }),
622
+ reports: sortByName(this.reports).map(({ entity }) => entity.build()),
623
+ restApis: R.sortBy(R.prop('name'), this.restApis).map(api => api.build()),
624
+ integrationClients: R.sortBy(R.prop('name'), this.integrationClients).map(c => c.build()),
625
+ workers: R.sortBy(R.prop('name'), this.workers).map((worker) => worker.build()),
626
+ roles: R.sortBy(R.prop('name'), this.roles).map((role) => role.build()),
627
+ menuItems: this.menuItems.map((item) => item.build()),
628
+ pages: this.pages.map(p => p.build()),
671
629
  back: this.back.build(),
672
- generalModels: this.generalModels.map(function (m) { return m.build(); }),
673
- inputModels: this.inputModels.map(function (m) { return m.build(); }),
674
- outputModels: this.outputModels.map(function (m) { return m.build(); }),
675
- methods: this.methods.map(function (m) { return m.build(); }),
630
+ generalModels: this.generalModels.map(m => m.build()),
631
+ inputModels: this.inputModels.map(m => m.build()),
632
+ outputModels: this.outputModels.map(m => m.build()),
633
+ methods: this.methods.map(m => m.build()),
676
634
  labels: this.labels,
677
- additionalServices: this.additionalServices.map(function (p) { return p.build(); }),
635
+ additionalServices: this.additionalServices.map(p => p.build()),
678
636
  };
679
- };
680
- SystemMetaBuilder.prototype.validate = function () {
637
+ }
638
+ validate() {
681
639
  return this._build();
682
- };
683
- SystemMetaBuilder.prototype.build = function () {
640
+ }
641
+ build() {
684
642
  this.validate();
685
643
  return this._build();
686
- };
687
- SystemMetaBuilder.prototype.initDefaultCatalogs = function () {
644
+ }
645
+ initDefaultCatalogs() {
688
646
  (0, defaultCatalogs_1.addFilesCatalog)(this);
689
647
  return this.catalogs;
690
- };
691
- return SystemMetaBuilder;
692
- }());
648
+ }
649
+ }
693
650
  exports.default = SystemMetaBuilder;
694
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3lzdGVtTWV0YUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2J1aWxkZXJzL1N5c3RlbU1ldGFCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrQ0FJaUI7QUFDakIsb0VBQTZDO0FBQzdDLHNFQUErQztBQUMvQyw2REFBMkQ7QUFDM0QsNEVBQTBFO0FBYzFFLHNEQUFvRDtBQUNwRCx1Q0FBMEI7QUFDMUIsa0VBQTJDO0FBQzNDLG9FQUE2QztBQUM3QywwRUFBbUQ7QUFDbkQsOERBQXVDO0FBQ3ZDLDRFQUFxRDtBQUNyRCx1REFBb0Q7QUFDcEQsa0RBQTRCO0FBQzVCLDJHQUFvRjtBQUNwRiwyRkFBb0U7QUFDcEUsaUdBQTBFO0FBQzFFLDJGQUFvRTtBQUNwRSxxRkFBOEQ7QUFDOUQsOERBQXVDO0FBQ3ZDLHdGQUFpRTtBQUNqRSwrRUFBd0Q7QUFDeEQseUVBQTJFO0FBRTlELFFBQUEsZ0JBQWdCLEdBQXFDO0lBQ2hFLE9BQU8sRUFBRSxFQUFFO0lBQ1gsT0FBTyxFQUFFLEVBQUU7SUFDWCxRQUFRLEVBQUUsSUFBSTtJQUNkLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDO0lBQ3pDLE1BQU0sRUFBRSxLQUFLO0lBQ2IsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFBO0FBRUQ7SUFpQ0UsNERBQTREO0lBQzVELHVEQUF1RDtJQUV2RCxjQUFjO0lBQ2QsMkJBQ0UsTUFBYyxFQUNkLE9BQStELEVBQy9ELGVBQXNCO1FBRHRCLHdCQUFBLEVBQUEsVUFBa0MscUNBQTZCO1FBQy9ELGdDQUFBLEVBQUEsc0JBQXNCO1FBdkN4QixhQUFRLEdBQStDLEVBQUUsQ0FBQTtRQUN6RCxZQUFPLEdBQThDLEVBQUUsQ0FBQTtRQUN2RCxjQUFTLEdBQWdELEVBQUUsQ0FBQTtRQUMzRCxtQkFBYyxHQUFvRCxFQUFFLENBQUE7UUFDcEUsa0JBQWEsR0FBbUQsRUFBRSxDQUFBO1FBQ2xFLGVBQVUsR0FBNEIsRUFBRSxDQUFBO1FBQ3hDLGFBQVEsR0FBZSxFQUFFLENBQUE7UUFDekIsYUFBUSxHQUFjLEVBQUUsQ0FBQTtRQUN4Qix1QkFBa0IsR0FBd0IsRUFBRSxDQUFBO1FBQzVDLGlCQUFZLEdBQXlCLEVBQUUsQ0FBQTtRQUN2QyxjQUFTLEdBQWUsRUFBRSxDQUFBO1FBQzFCLGFBQVEsR0FBcUIsRUFBRSxDQUFBO1FBQy9CLHVCQUFrQixHQUErQixFQUFFLENBQUE7UUFDbkQsWUFBTyxHQUF3QixFQUFFLENBQUE7UUFDakMsVUFBSyxHQUFrQixFQUFFLENBQUE7UUFHekIsY0FBUyxHQUE4RyxFQUFFLENBQUM7UUFDMUgsVUFBSyxHQUFrQixFQUFFLENBQUM7UUFDaEIsWUFBTyxHQUFvQixFQUFFLENBQUE7UUFDN0Isa0JBQWEsR0FBdUIsRUFBRSxDQUFDLENBQUMsNkNBQTZDO1FBQ3JGLGdCQUFXLEdBQXVCLEVBQUUsQ0FBQyxDQUFDLHdDQUF3QztRQUM5RSxpQkFBWSxHQUF1QixFQUFFLENBQUMsQ0FBQyx5Q0FBeUM7UUFDMUYsV0FBTSxHQUFhLEVBQUUsQ0FBQztRQUN0Qix1QkFBa0IsR0FBK0IsRUFBRSxDQUFDO1FBaUJsRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFBO1FBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLDJCQUFpQixDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsQ0FBQztRQUUzRCxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLHdCQUF3QixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNsRyxJQUFJLENBQUMsWUFBWSxDQUFDLHlCQUF5QixFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLDBCQUEwQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0RyxJQUFJLENBQUMsWUFBWSxDQUFDLHlCQUF5QixFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLDBCQUEwQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUV0RyxJQUFJLENBQUMsWUFBWSxDQUNmLFVBQVUsRUFDVixRQUFRLEVBQ1IsSUFBSSxFQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUMxQixpQ0FBaUMsQ0FDbEMsQ0FBQTtRQUNELElBQUksQ0FBQyxZQUFZLENBQ2YsV0FBVyxFQUNYLFFBQVEsRUFDUixLQUFLLEVBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQ3hCLHNDQUFzQyxDQUN2QyxDQUFBO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FDZixpQkFBaUIsRUFDakIsUUFBUSxFQUNSLElBQUksRUFDSixLQUFLLEVBQ0wsb0JBQW9CLENBQ3JCLENBQUE7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUNmLFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUNMLHVCQUF1QixFQUN2Qiw2REFBNkQsQ0FDOUQsQ0FBQTtRQUVELGdCQUFnQjtRQUNoQixJQUFJLENBQUMsWUFBWSxDQUNmLHlCQUF5QixFQUN6QixRQUFRLEVBQ1IsSUFBSSxFQUNKLCtDQUErQyxFQUMvQyxzREFBc0QsQ0FDdkQsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUNiLElBQUksQ0FBQyxZQUFZLENBQ2YsNEJBQTRCLEVBQzVCLFFBQVEsRUFDUixLQUFLLEVBQ0wsK0NBQStDLEVBQy9DLHNEQUFzRCxDQUN2RCxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ2IsSUFBSSxDQUFDLFlBQVksQ0FDZixnQ0FBZ0MsRUFDaEMsTUFBTSxFQUNOLElBQUksRUFDSixLQUFLLEVBQ0wsc0VBQXNFLENBQ3ZFLENBQUE7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUNmLDZCQUE2QixFQUM3QixRQUFRLEVBQ1IsSUFBSSxFQUNKLCtDQUErQyxFQUMvQyxxSUFBcUksQ0FDdEksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUViLElBQUksQ0FBQyxZQUFZLENBQ2YsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixLQUFLLEVBQ0wsV0FBVyxFQUNYLG1EQUFtRCxDQUNwRCxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ2IsSUFBSSxDQUFDLFlBQVksQ0FDZixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLEtBQUssRUFDTCxXQUFXLEVBQ1gseURBQXlELENBQzFELENBQUMsU0FBUyxFQUFFLENBQUE7UUFFYixJQUFJLENBQUMsWUFBWSxDQUNmLGFBQWEsRUFDYixRQUFRLEVBQ1IsSUFBSSxFQUNKLCtCQUErQixFQUMvQix3Q0FBd0MsQ0FDekMsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUNiLElBQUksQ0FBQyxZQUFZLENBQ2Ysb0JBQW9CLEVBQ3BCLFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxFQUNULHNDQUFzQyxDQUN2QyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ2IscUJBQXFCO1FBQ3JCLHlCQUF5QjtRQUN6QixjQUFjO1FBQ2QsVUFBVTtRQUNWLHFDQUFxQztRQUNyQyxxRUFBcUU7UUFDckUsSUFBSTtRQUNKLElBQUksQ0FBQyxZQUFZLENBQ2YsV0FBVyxFQUNYLFFBQVEsRUFDUixJQUFJLEVBQ0osY0FBYyxFQUNkLDRDQUE0QyxDQUM3QyxDQUFBO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FDZixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLElBQUksRUFDSixFQUFFLEVBQ0YsNENBQTRDLENBQzdDLENBQUE7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUNmLG9CQUFvQixFQUNwQixRQUFRLEVBQ1IsSUFBSSxFQUNKLEVBQUUsRUFDRixxQ0FBcUMsQ0FDdEMsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUNiLElBQUksQ0FBQyxZQUFZLENBQ2Ysc0JBQXNCLEVBQ3RCLFFBQVEsRUFDUixJQUFJLEVBQ0osRUFBRSxFQUNGLHVEQUF1RCxDQUN4RCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FDZiw4QkFBOEIsRUFDOUIsUUFBUSxFQUNSLElBQUksRUFDSixFQUFFLEVBQ0YsbUZBQW1GLENBQ3BGLENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUNmLGNBQWMsRUFDZCxRQUFRLEVBQ1IsS0FBSyxFQUNMLHVCQUF1QixFQUN2Qix3REFBd0QsQ0FDekQsQ0FBQTtRQUNELElBQUksQ0FBQyxZQUFZLENBQ2YsMkJBQTJCLEVBQzNCLFFBQVEsRUFDUixLQUFLLEVBQ0wsRUFBRSxFQUNGLDRDQUE0QyxDQUM3QyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ2IsSUFBSSxDQUFDLFlBQVksQ0FDZiwrQkFBK0IsRUFDL0IsT0FBTyxFQUNQLEtBQUssRUFDTCxHQUFHLEVBQ0gsMENBQTBDLENBQzNDLENBQUE7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUNmLFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxFQUNMLEVBQUUsRUFDRixnQkFBZ0IsRUFDaEIsQ0FBQyxXQUFXLENBQUMsQ0FDZCxDQUFBO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FDZiwyQkFBMkIsRUFDM0IsUUFBUSxFQUNSLEtBQUssRUFDTCxFQUFFLEVBQ0YsNENBQTRDLEVBQzVDLENBQUMsV0FBVyxDQUFDLENBQ2QsQ0FBQTtRQUVELElBQUksQ0FBQyxZQUFZLENBQ2YsOEJBQThCLEVBQzlCLFFBQVEsRUFDUixLQUFLLEVBQ0wsRUFBRSxFQUNGLGlEQUFpRCxDQUNsRCxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ2IsSUFBSSxDQUFDLFlBQVksQ0FDZixrQ0FBa0MsRUFDbEMsUUFBUSxFQUNSLEtBQUssRUFDTCxLQUFLLEVBQ0wsMENBQTBDLENBQzNDLENBQUE7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUNmLDhCQUE4QixFQUM5QixRQUFRLEVBQ1IsS0FBSyxFQUNMLEVBQUUsRUFDRixpREFBaUQsRUFDakQsQ0FBQyxhQUFhLENBQUMsQ0FDaEIsQ0FBQTtRQUVELElBQUksQ0FBQyxZQUFZLENBQ2YsVUFBVSxFQUNWLFFBQVEsRUFDUixLQUFLLEVBQ0wsRUFBRSxFQUNGLCtEQUErRCxDQUNoRSxDQUFBO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FDZixhQUFhLEVBQ2IsUUFBUSxFQUNSLEtBQUssRUFDTCxPQUFPLEVBQ1AsNkJBQTZCLENBQzlCLENBQUE7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUNmLDRCQUE0QixFQUM1QixNQUFNLEVBQ04sS0FBSyxFQUNMLElBQUksRUFDSiw2Q0FBNkMsQ0FDOUMsQ0FBQTtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsc0NBQXNDLENBQUMsQ0FBQztRQUNyRyxJQUFJLENBQUMsWUFBWSxDQUFDLHFDQUFxQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLDBDQUEwQyxDQUFDLENBQUM7UUFFM0gsUUFBUTtRQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxpQ0FBaUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBQ2hILElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztRQUNyRixJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLHdCQUF3QixDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDL0YsSUFBSSxDQUFDLFlBQVksQ0FBQyw2QkFBNkIsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSwrREFBK0QsQ0FBQyxDQUFDO1FBQ3BJLElBQUksQ0FBQyxZQUFZLENBQUMsOEJBQThCLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsb0hBQW9ILENBQUMsQ0FBQztRQUM3TCxJQUFJLENBQUMsWUFBWSxDQUFDLGtDQUFrQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLDJIQUEySCxDQUFDLENBQUM7UUFDeE0sSUFBSSxDQUFDLFlBQVksQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxrREFBa0QsQ0FBQyxDQUFDO1FBQ2hILElBQUksQ0FBQyxZQUFZLENBQUMsOEJBQThCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsaUNBQWlDLENBQUMsQ0FBQztRQUM3Ryx3TUFBd007UUFDeE0saU1BQWlNO1FBQ2pNLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsMklBQTJJLENBQUMsQ0FBQztRQUNwTSxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGtDQUFrQyxDQUFDLENBQUM7UUFDaEcsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxZQUFZLENBQUMsOEJBQThCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUscUNBQXFDLENBQUMsQ0FBQztRQUUvRyxLQUFLO1FBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSx5REFBeUQsQ0FBQyxDQUFDO1FBQ2hILElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLCtEQUErRCxDQUFDLENBQUM7UUFDdkgsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUseURBQXlELENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM3SCxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxZQUFZLENBQUMsMkJBQTJCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUscUNBQXFDLENBQUMsQ0FBQztRQUU1RyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUVuRSxPQUFPO1FBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQ0FBaUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxxQ0FBcUMsQ0FBQyxDQUFDO1FBQ2xILElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDOUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2pILElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsZ0RBQWdELEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzlILElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUseUJBQXlCLEVBQUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNuSCxJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUMxRyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLHdDQUF3QyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUM1SCxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSx1Q0FBdUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ2hJLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsd0NBQXdDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNuSSxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLHdEQUF3RCxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUU5SSxJQUFJLENBQUMsWUFBWSxDQUFDLHlCQUF5QixFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLDJDQUEyQyxDQUFDLENBQUM7UUFDMUgsSUFBSSxDQUFDLFlBQVksQ0FBQyx5QkFBeUIsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSwyQ0FBMkMsQ0FBQyxDQUFDO1FBQ3RILElBQUksQ0FBQyxZQUFZLENBQUMseUJBQXlCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsMkRBQTJELENBQUMsQ0FBQztRQUMxSSxJQUFJLENBQUMsWUFBWSxDQUFDLHlCQUF5QixFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLDJEQUEyRCxDQUFDLENBQUM7UUFFdEksY0FBYztRQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUseUNBQXlDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUU5SCxjQUFjO1FBRWQsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1lBQ3hCLElBQUksRUFBRSxLQUFLO1lBQ1gsWUFBWSxFQUFFLEtBQUs7WUFDbkIsSUFBSSxFQUFFLEtBQUs7WUFDWCxXQUFXLEVBQUUsU0FBUztZQUN0QixpQkFBaUIsRUFBRSxXQUFXO1lBQzlCLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLElBQUksRUFBRSxpQkFBaUI7WUFDdkIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsZUFBZSxFQUFFLEtBQUs7U0FDdkIsQ0FBQyxDQUFBO1FBQ0YsOEJBQThCO1FBQzlCLG1CQUFtQjtRQUNuQix5QkFBeUI7UUFDekIsNEJBQTRCO1FBQzVCLHlCQUF5QjtRQUN6QixLQUFLO1FBQ0wsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1lBQ3hCLElBQUksRUFBRSxNQUFNO1lBQ1osWUFBWSxFQUFFLElBQUk7WUFDbEIsSUFBSSxFQUFFLElBQUk7WUFDVixXQUFXLEVBQUUsU0FBUztZQUN0QixpQkFBaUIsRUFBRSxXQUFXO1lBQzlCLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLElBQUksRUFBRSxpQkFBaUI7WUFDdkIsU0FBUyxFQUFFLE1BQU07WUFDakIsZUFBZSxFQUFFLE1BQU07U0FDeEIsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUE7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUE7UUFDakMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFBO1NBQ2xDO1FBRUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUE7UUFFdEMsZ0NBQWdDO1FBRWhDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO1FBRTFCLE9BQU87UUFDUCxxREFBcUQ7UUFDckQsNERBQTREO1FBRTVELE9BQU87UUFDUCwyQ0FBMkM7UUFDM0MsdUNBQXVDO0lBQ3pDLENBQUM7SUFFRCxtQ0FBTyxHQUFQLFVBQVEsSUFBWTtRQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtRQUVoQixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxzQ0FBVSxHQUFWLFVBQVcsT0FBZTtRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtRQUV0QixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxxQ0FBUyxHQUFULFVBQVUsTUFBYztRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUVwQixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFHRCxhQUFhO0lBQ2IsVUFBVTtJQUNWLGFBQWE7SUFDYixZQUFZO0lBQ1osV0FBVztJQUNYLGVBQWU7SUFDZixXQUFXO0lBRVgsd0NBQVksR0FBWixVQUNFLElBQVksRUFDWixJQUFPLEVBQ1AsUUFBaUIsRUFDakIsR0FBK0IsRUFDL0IsT0FBZSxFQUNmLE1BQTRELEVBQzVELE1BQWMsRUFDZCxRQUFlO1FBRmYsdUJBQUEsRUFBQSxVQUE0QixNQUFNLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQztRQUM1RCx1QkFBQSxFQUFBLGNBQWM7UUFDZCx5QkFBQSxFQUFBLGVBQWU7UUFFZixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQWYsQ0FBZSxDQUFDLEVBQUU7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFJLElBQUksaUNBQTZCLENBQUMsQ0FBQTtTQUN2RDtRQUVELElBQU0sU0FBUyxHQUFHLElBQUksbUNBQWdCLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBRXBHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBRS9CLE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7SUFFRCx3Q0FBWSxHQUFaLFVBQ0UsSUFBWTtRQUVaLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFmLENBQWUsQ0FBQyxFQUFFO1lBQ2pELE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQWdCLElBQUksa0JBQWMsQ0FBQyxDQUFBO1NBQ3BEO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFmLENBQWUsQ0FBQyxDQUFBO1FBRTlELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELHdDQUFZLEdBQVosVUFBYSxJQUFZO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBQSxFQUFFLElBQUksT0FBQSxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksRUFBaEIsQ0FBZ0IsQ0FBQyxDQUFBO0lBQ3JELENBQUM7SUFFRCxnREFBb0IsR0FBcEIsVUFBcUIsSUFBWTtRQUMvQixJQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFBLEVBQUUsSUFBSSxPQUFBLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFoQixDQUFnQixDQUFDLENBQUE7UUFFL0QsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQWdCLElBQUksa0JBQWMsQ0FBQyxDQUFBO1NBQ3BEO1FBRUQsT0FBTyxVQUFVLENBQUE7SUFDbkIsQ0FBQztJQUVELG9EQUF3QixHQUF4QixVQUNFLElBQVksRUFDWixHQUErQjtRQUUvQixhQUFHLENBQUMsSUFBSSxDQUFDLDRHQUE0RyxDQUFDLENBQUE7UUFDdEgsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5ELFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFNUIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsdURBQTJCLEdBQTNCLFVBQTRCLElBQVksRUFBRSxHQUFXO1FBQ25ELGFBQUcsQ0FBQyxJQUFJLENBQUMsK0dBQStHLENBQUMsQ0FBQTtRQUN6SCxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELHVDQUFXLEdBQVgsVUFBWSxFQUFVLEVBQUUsS0FBYztRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBQyxFQUFJO2dCQUFILEVBQUUsUUFBQTtZQUFNLE9BQUEsRUFBRTtRQUFGLENBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNsRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFDLEVBQUUsSUFBQSxFQUFFLEtBQUssRUFBRSxLQUFLLGFBQUwsS0FBSyxjQUFMLEtBQUssR0FBSSxFQUFFLEVBQUMsQ0FBQyxDQUFBO1NBQzlDO0lBQ0gsQ0FBQztJQUVELDBDQUFjLEdBQWQsVUFBZSxFQUFVO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBZCxDQUFjLENBQUMsQ0FBQTtJQUNoRSxDQUFDO0lBRUQsOENBQWtCLEdBQWxCLFVBQW1CLEVBQVU7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQUMsRUFBSTtnQkFBSCxFQUFFLFFBQUE7WUFBTSxPQUFBLEVBQUU7UUFBRixDQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBZ0IsRUFBRSxnQkFBWSxDQUFDLENBQUE7U0FDaEQ7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQTtJQUMzQixDQUFDO0lBRUQsZ0RBQW9CLEdBQXBCLFVBQXFCLGlCQUFvQztRQUN2RCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsSUFBSSxLQUFLLGlCQUFpQixDQUFDLElBQUksRUFBakMsQ0FBaUMsQ0FBQyxFQUFFO1lBQzFFLE1BQU0sSUFBSSxLQUFLLENBQUMseURBQWlELGlCQUFpQixDQUFDLElBQUksT0FBRyxDQUFDLENBQUE7U0FDNUY7UUFFRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFFL0MsbUVBQW1FO1FBQ25FLGtFQUFrRTtRQUNsRSxJQUFJO1FBRUosT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsaURBQXFCLEdBQXJCLFVBQXNCLElBQVksRUFBRSxpQkFBNkM7UUFDL0UsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksRUFBZixDQUFlLENBQUMsRUFBRTtZQUN6RCxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUFnQixJQUFJLGdEQUFxQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLElBQUksRUFBTixDQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQUcsQ0FBQyxDQUFBO1NBQ2pJO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxHQUFHLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLGdDQUMzRSxHQUFHLEdBQ0gsaUJBQWlCLEtBQ3BCLElBQUksTUFBQSxJQUNKLENBQUMsQ0FBQyxHQUFHLEVBSnNELENBSXRELENBQUMsQ0FBQTtRQUVSLG1FQUFtRTtRQUNuRSxrRUFBa0U7UUFDbEUsSUFBSTtRQUVKLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELGdEQUFvQixHQUFwQixVQUFxQixJQUFZO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQWYsQ0FBZSxDQUFDLEVBQUU7WUFDekQsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBZ0IsSUFBSSxnREFBcUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxJQUFJLEVBQU4sQ0FBTSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFHLENBQUMsQ0FBQTtTQUNqSTtRQUVELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQWYsQ0FBZSxDQUFDLENBQUE7UUFFOUUsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsMENBQWMsR0FBZCxVQUFlLElBQVksRUFBRSxLQUFjO1FBQ3pDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksRUFBZixDQUFlLENBQUMsRUFBRTtZQUNsRCxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUEyQyxJQUFJLE9BQUcsQ0FBQyxDQUFBO1NBQ3BFO1FBRUQsSUFBTSxXQUFXLEdBQUcsSUFBSSw0QkFBa0IsQ0FDeEMsSUFBSSxFQUNKLElBQUksQ0FBQyxlQUFlLEVBQ3BCLEtBQUssQ0FDTixDQUFBO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7UUFFbkMsT0FBTyxXQUFXLENBQUE7SUFDcEIsQ0FBQztJQUVELFdBQVc7SUFDWCx1Q0FBVyxHQUFYO1FBQ0UsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3RCLENBQUM7SUFFRCxzQ0FBVSxHQUFWLFVBQ0UsSUFBWSxFQUNaLEtBR0MsRUFDRCxPQUEyQztRQUEzQyx3QkFBQSxFQUFBLFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBRSxFQUFVO1FBRTNDLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUU1QyxJQUFNLE9BQU8sR0FBRyxJQUFJLHdCQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFFckUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sU0FBQSxFQUFFLENBQUMsQ0FBQTtRQUVoRCxPQUFPLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0lBRUQsNENBQWdCLEdBQWhCLFVBQWlCLElBQVk7UUFDM0IsSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQXRCLENBQXNCLENBQUMsQ0FBQTtRQUVqRSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBZ0IsSUFBSSxlQUFXLENBQUMsQ0FBQTtTQUNqRDtRQUVELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQTtJQUN2QixDQUFDO0lBRUQsaURBQXFCLEdBQXJCLFVBQXNCLElBQVk7UUFDaEMsSUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQXRCLENBQXNCLENBQUMsQ0FBQTtRQUU1RSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQWdCLElBQUksb0JBQWdCLENBQUMsQ0FBQTtTQUN0RDtRQUVELE9BQU8sWUFBWSxDQUFDLE1BQU0sQ0FBQTtJQUM1QixDQUFDO0lBRUQsc0NBQVUsR0FBVixVQUFXLElBQVksRUFBRSxJQUFZLEVBQUUsS0FBYyxFQUFFLElBQVc7UUFBWCxxQkFBQSxFQUFBLFdBQVc7UUFDaEUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFmLENBQWUsQ0FBQyxFQUFFO1lBQzlDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQXdDLElBQUksT0FBRyxDQUFDLENBQUE7U0FDakU7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQWYsQ0FBZSxDQUFDLEVBQUU7WUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBd0MsSUFBSSxPQUFHLENBQUMsQ0FBQTtTQUNqRTtRQUVELElBQU0sT0FBTyxHQUFHLElBQUksd0JBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBRWpGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRTNCLE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxnREFBb0IsR0FBcEIsVUFDRSxJQUFZLEVBQ1osS0FBYztRQUVkLElBQ0UsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFmLENBQWUsQ0FBQyxFQUNwRDtZQUNBLE1BQU0sSUFBSSxLQUFLLENBQ2IsMERBQWtELElBQUksd0JBQWEsSUFBSSxDQUFDLElBQUksQ0FBRSxDQUMvRSxDQUFBO1NBQ0Y7UUFFRCxJQUFNLGlCQUFpQixHQUFHLElBQUksa0NBQXdCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFFekYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBRS9DLE9BQU8saUJBQWlCLENBQUM7SUFDM0IsQ0FBQztJQUVELGdEQUFvQixHQUFwQixVQUNFLElBQVksRUFDWixLQUFjO1FBRWQsSUFDRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQWYsQ0FBZSxDQUFDLEVBQ3BEO1lBQ0EsTUFBTSxJQUFJLEtBQUssQ0FDYiwwREFBa0QsSUFBSSx3QkFBYSxJQUFJLENBQUMsSUFBSSxDQUFFLENBQy9FLENBQUE7U0FDRjtRQUVELElBQU0saUJBQWlCLEdBQUcsSUFBSSxrQ0FBd0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUV6RixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFFL0MsT0FBTyxpQkFBaUIsQ0FBQztJQUMzQixDQUFDO0lBRUQscUNBQVMsR0FBVCxVQUFVLElBQVksRUFBRSxLQUFjO1FBQ3BDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksRUFBZixDQUFlLENBQUMsRUFBRTtZQUM3QyxNQUFNLElBQUksS0FBSyxDQUFDLGdEQUF3QyxJQUFJLE9BQUcsQ0FBQyxDQUFBO1NBQ2pFO1FBRUQsSUFBTSxNQUFNLEdBQUcsSUFBSSwyQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUV2RSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUV6QixPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7SUFFRCxpREFBcUIsR0FBckIsVUFDRSxJQUFZLEVBQ1osS0FHQyxFQUNELE9BQTJDO1FBQTNDLHdCQUFBLEVBQUEsVUFBVSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFFLEVBQVU7UUFFM0MsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRTVDLElBQU0sT0FBTyxHQUFHLElBQUksd0JBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUNyRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxTQUFBLEVBQUUsQ0FBQyxDQUFBO1FBRWhELE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxtQ0FBTyxHQUFQLFVBQ0UsSUFBWSxFQUNaLEtBQWM7UUFFZCxJQUFJLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFNUMsSUFBTSxJQUFJLEdBQUcsSUFBSSxxQkFBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBRS9ELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRXJCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELG1JQUFtSTtJQUNuSSxnREFBZ0Q7SUFFaEQsOENBQThDO0lBQzlDLElBQUk7SUFFSix1Q0FBVyxHQUFYO1FBQ0UsT0FBTyw4Q0FDRixJQUFJLENBQUMsS0FBSyxTQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBbEIsQ0FBa0IsQ0FBQyxTQUN6QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBZCxDQUFjLENBQUMsUUFDckQsSUFBSSxFQUFFLENBQUM7SUFDWCxDQUFDO0lBRUQsNENBQWdCLEdBQWhCLFVBQWlCLFFBQWdCO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQW5CLENBQW1CLENBQUMsRUFBRTtZQUN0RCxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUFnQixRQUFRLFlBQVEsQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQztJQUVELG1DQUFPLEdBQVAsVUFDRSxJQUFZLEVBQ1osSUFBWSxFQUNaLEtBQWEsRUFDYixLQUFjO1FBRWQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQWYsQ0FBZSxDQUFDLEVBQUU7WUFDakQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBcUIsSUFBSSxZQUFRLENBQUMsQ0FBQztTQUNwRDtRQUVELElBQU0sSUFBSSxHQUFHLElBQUkscUJBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBRTVFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRXJCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELHlDQUFhLEdBQWIsVUFBYyxRQUFnQjtRQUM1QixJQUFNLEtBQUssR0FBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQW5CLENBQW1CLENBQUMsQ0FBQztRQUVqRSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBUyxRQUFRLGlCQUFhLENBQUMsQ0FBQztTQUNqRDtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELHdDQUFZLEdBQVo7UUFDRSxPQUFPLDhDQUNGLElBQUksQ0FBQyxNQUFNLFNBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFwQixDQUFvQixDQUFDLFNBQzNDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFmLENBQWUsQ0FBQyxRQUN0RCxJQUFJLEVBQUUsQ0FBQztJQUNYLENBQUM7SUFFRCw2Q0FBaUIsR0FBakIsVUFBa0IsS0FBYTtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsS0FBSyxLQUFLLEVBQVgsQ0FBVyxDQUFDLEVBQUU7WUFDL0MsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBZ0IsS0FBSyxZQUFRLENBQUMsQ0FBQztTQUNoRDtJQUNILENBQUM7SUFFRCw0Q0FBZ0IsR0FBaEIsVUFBaUIsS0FBYTtRQUM1QixJQUFNLFFBQVEsR0FBRyxJQUFJLDhCQUFvQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUUvRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUU3QixPQUFPLFFBQVEsQ0FBQTtJQUNqQixDQUFDO0lBRUQsK0NBQW1CLEdBQW5CLFVBQW9CLFFBQWdCO1FBQ2xDLElBQU0sUUFBUSxHQUFHLElBQUksaUNBQXVCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBRXJGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRTdCLE9BQU8sUUFBUSxDQUFBO0lBQ2pCLENBQUM7SUFFRCwrQ0FBbUIsR0FBbkIsVUFDRSxLQUFhLEVBQ2IsR0FBVztRQUVYLElBQU0sUUFBUSxHQUFHLElBQUksaUNBQXVCLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUV2RixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUU3QixPQUFPLFFBQVEsQ0FBQTtJQUNqQixDQUFDO0lBRUQsa0RBQXNCLEdBQXRCLFVBQ0UsS0FBYSxFQUNiLEdBQVc7UUFFWCxJQUFNLFFBQVEsR0FBRyxJQUFJLG9DQUEwQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFFMUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFN0IsT0FBTyxRQUFRLENBQUE7SUFDakIsQ0FBQztJQUVELG1DQUFPLEdBQVA7UUFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUE7SUFDbEIsQ0FBQztJQUVELFlBQVk7SUFDWix3Q0FBWSxHQUFaO1FBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFBO0lBQ3ZCLENBQUM7SUFFRCx1Q0FBVyxHQUFYLFVBQ0UsSUFBWSxFQUNaLEtBR0MsRUFDRCxPQUEyQztRQUEzQyx3QkFBQSxFQUFBLFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBRSxFQUFVO1FBRTNDLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUU1QyxJQUFNLFFBQVEsR0FBRyxJQUFJLHlCQUFlLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFFdkUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sU0FBQSxFQUFFLENBQUMsQ0FBQTtRQUVsRCxPQUFPLFFBQVEsQ0FBQTtJQUNqQixDQUFDO0lBRUQscUNBQVMsR0FBVCxVQUNFLElBQVksRUFDWixLQUFjLEVBQ2QsT0FBMkM7UUFBM0Msd0JBQUEsRUFBQSxVQUFVLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUUsRUFBVTtRQUUzQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUF0QixDQUFzQixDQUFDLEVBQUU7WUFDcEQsTUFBTSxJQUFJLEtBQUssQ0FDYiw4Q0FBc0MsSUFBSSx3QkFBYSxJQUFJLENBQUMsSUFBSSxDQUFFLENBQ25FLENBQUE7U0FDRjtRQUVELElBQU0sTUFBTSxHQUFHLElBQUksdUJBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUVuRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxTQUFBLEVBQUUsQ0FBQyxDQUFBO1FBRTlDLE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQztJQUVELDZEQUFpQyxHQUFqQyxVQUFrQyxJQUFZO1FBQzVDLElBQ0UsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUF0QixDQUFzQixDQUFDLEVBQzdEO1lBQ0EsTUFBTSxJQUFJLEtBQUssQ0FDYiw4Q0FBc0MsSUFBSSx3QkFBYSxJQUFJLENBQUMsSUFBSSxDQUFFLENBQ25FLENBQUE7U0FDRjtJQUNILENBQUM7SUFFRCwyQ0FBZSxHQUFmLFVBQ0UsSUFBWSxFQUNaLGlCQUEwQixFQUMxQixLQUdDLEVBQ0QsT0FBMkM7UUFBM0Msd0JBQUEsRUFBQSxVQUFVLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUUsRUFBVTtRQUUzQyxJQUFJLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFNUMsSUFBTSxZQUFZLEdBQUcsSUFBSSx5Q0FBbUIsQ0FDMUMsSUFBSSxFQUNKLGlCQUFpQixFQUNqQixJQUFJLENBQUMsZUFBZSxFQUNwQixLQUFLLENBQ04sQ0FBQTtRQUVELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxPQUFPLFNBQUEsRUFBRSxDQUFDLENBQUE7UUFFM0QsT0FBTyxZQUFZLENBQUE7SUFDckIsQ0FBQztJQUVELDBDQUFjLEdBQWQsVUFDRSxJQUFZLEVBQ1osaUJBQTBCLEVBQzFCLEtBR0MsRUFDRCxPQUF5QjtRQUV6QixJQUFJLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFNUMsSUFBTSxXQUFXLEdBQUcsSUFBSSw0QkFBa0IsQ0FDeEMsSUFBSSxFQUNKLGlCQUFpQixFQUNqQixJQUFJLENBQUMsZUFBZSxFQUNwQixLQUFLLEVBQ0wsT0FBTyxDQUNSLENBQUE7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1FBRXZFLE9BQU8sV0FBVyxDQUFBO0lBQ3BCLENBQUM7SUFFRCwyQ0FBZSxHQUFmLFVBQWdCLElBQVksRUFBRSxVQUFrQjtRQUM5QyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQWYsQ0FBZSxDQUFDLEVBQUU7WUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBMEIsSUFBSSxtQkFBZSxDQUFDLENBQUE7U0FDL0Q7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksTUFBQSxFQUFFLFVBQVUsWUFBQSxFQUFFLENBQUMsQ0FBQTtRQUV4QyxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxzQ0FBVSxHQUFWLFVBQ0UsZUFBZ0MsRUFDaEMsSUFBWSxFQUNaLE9BQWUsRUFDZixPQUFlO1FBRWYsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFmLENBQWUsQ0FBQyxFQUFFO1lBQzlDLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQXFCLElBQUksZUFBVyxDQUFDLENBQUE7U0FDdEQ7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNqQixlQUFlLGlCQUFBO1lBQ2YsSUFBSSxNQUFBO1lBQ0osT0FBTyxTQUFBO1lBQ1AsT0FBTyxTQUFBO1NBQ1IsQ0FBQyxDQUFBO1FBRUYsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsOENBQWtCLEdBQWxCO1FBQ0UsT0FBTztZQUNMLElBQUksQ0FBQyxRQUFRO1lBQ2IsSUFBSSxDQUFDLFNBQVM7WUFDZCxJQUFJLENBQUMsY0FBYztZQUNuQixJQUFJLENBQUMsYUFBYTtTQUNuQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ1gsQ0FBQztJQUVELHFEQUF5QixHQUF6QjtRQUNFLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFO2FBQzdCLEdBQUcsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxNQUFNLEVBQVIsQ0FBUSxDQUFDO2FBQ2xCLE1BQU0sQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxjQUFjLEVBQWhCLENBQWdCLENBQUMsQ0FBQTtJQUNwQyxDQUFDO0lBRUQscUNBQVMsR0FBVCxVQUNFLElBQVksRUFDWixVQUFzQixFQUN0QixLQUFjO1FBRWQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFmLENBQWUsQ0FBQyxFQUFFO1lBQzdDLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQXFDLElBQUkscUJBQWlCLENBQUMsQ0FBQTtTQUM1RTtRQUVELElBQU0sS0FBSyxHQUFHLElBQUksdUJBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3BGLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRXhCLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELG9DQUFRLEdBQVIsVUFBUyxLQUFhO1FBQ3BCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLEtBQUssS0FBSyxFQUFYLENBQVcsQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQWtDLEtBQUssT0FBRyxDQUFDLENBQUM7U0FDN0Q7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsc0NBQVUsR0FBVjtRQUNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsMkNBQWUsR0FBZixVQUNFLElBQVksRUFDWixLQUFjO1FBRWQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQWYsQ0FBZSxDQUFDLEVBQUU7WUFDcEQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBcUMsSUFBSSxxQkFBaUIsQ0FBQyxDQUFBO1NBQzVFO1FBRUQsSUFBTSxLQUFLLEdBQUcsSUFBSSwwQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssYUFBTCxLQUFLLGNBQUwsS0FBSyxHQUFJLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDbkYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFOUIsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQseUNBQWEsR0FBYixVQUNFLElBQVksRUFDWixLQUFjO1FBRWQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQWYsQ0FBZSxDQUFDLEVBQUU7WUFDcEQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBcUMsSUFBSSxxQkFBaUIsQ0FBQyxDQUFBO1NBQzVFO1FBRUQsSUFBTSxLQUFLLEdBQUcsSUFBSSwwQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssYUFBTCxLQUFLLGNBQUwsS0FBSyxHQUFJLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDbkYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFNUIsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsMENBQWMsR0FBZCxVQUNFLElBQVksRUFDWixLQUFjO1FBRWQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQWYsQ0FBZSxDQUFDLEVBQUU7WUFDcEQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBcUMsSUFBSSxxQkFBaUIsQ0FBQyxDQUFBO1NBQzVFO1FBRUQsSUFBTSxLQUFLLEdBQUcsSUFBSSwwQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssYUFBTCxLQUFLLGNBQUwsS0FBSyxHQUFJLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDbkYsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFN0IsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsd0NBQVksR0FBWjtRQUNFLHFEQUNLLElBQUksQ0FBQyxXQUFXLFNBQ2hCLElBQUksQ0FBQyxZQUFZLFNBQ2pCLElBQUksQ0FBQyxhQUFhLFFBQ3RCO0lBQ0gsQ0FBQztJQUVELDRDQUFnQixHQUFoQjtRQUNFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsMENBQWMsR0FBZDtRQUNFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsMkNBQWUsR0FBZjtRQUNFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsK0NBQStDO0lBQy9DLG1DQUFtQztJQUVuQyxpQkFBaUI7SUFDakIsaUNBQWlDO0lBQ2pDLGFBQWE7SUFDYixtQ0FBbUM7SUFDbkMsTUFBTTtJQUVOLGdCQUFnQjtJQUNoQixJQUFJO0lBRUosNENBQTRDO0lBQzVDLGdDQUFnQztJQUVoQyxpQkFBaUI7SUFDakIsOEJBQThCO0lBQzlCLGFBQWE7SUFDYixnQ0FBZ0M7SUFDaEMsTUFBTTtJQUVOLGdCQUFnQjtJQUNoQixJQUFJO0lBRUksa0NBQU0sR0FBZDtRQUNFLElBQU0sVUFBVSxHQUFHLFVBQXlDLE9BQVk7WUFDdEUsT0FBQSxDQUFDLENBQUMsTUFBTSxDQUNOLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQ2xELE9BQU8sQ0FDRDtRQUhSLENBR1EsQ0FBQTtRQUVWLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDM0MsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2pELFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNwRCxZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQyxFQUFFO2dCQUMvRCxPQUFBLEVBQUUsQ0FBQyxLQUFLLEVBQUU7WUFBVixDQUFVLENBQ1g7WUFDRCxVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQUMsRUFBRSxJQUFLLE9BQUEsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFWLENBQVUsQ0FBQyxDQUFDO1lBQzdFLFFBQVEsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFDLEVBQUUsSUFBSyxPQUFBLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQWpCLENBQWlCLENBQUM7WUFDbEUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQUMsRUFBRSxJQUFLLE9BQUEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBakIsQ0FBaUIsQ0FBQztZQUNwRSxjQUFjLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQyxFQUFFO2dCQUNyRCxPQUFBLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1lBQWpCLENBQWlCLENBQ2xCO1lBQ0QsYUFBYSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQUMsRUFBRTtnQkFDbkQsT0FBQSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTtZQUFqQixDQUFpQixDQUNsQjtZQUNELFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTtZQUNoQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDckMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQUMsRUFBVTtvQkFBUixNQUFNLFlBQUE7Z0JBQU8sT0FBQSxNQUFNLENBQUMsS0FBSyxFQUFFO1lBQWQsQ0FBYyxDQUFDO1lBQ3JFLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFBLEdBQUc7Z0JBQ3ZELE9BQUEsR0FBRyxDQUFDLEtBQUssRUFBRTtZQUFYLENBQVcsQ0FDWjtZQUNELGtCQUFrQixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDO2dCQUN6RSxPQUFBLENBQUMsQ0FBQyxLQUFLLEVBQUU7WUFBVCxDQUFTLENBQ1Y7WUFDRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQyxNQUFNO2dCQUN6RCxPQUFBLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFBZCxDQUFjLENBQ2Y7WUFDRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQyxJQUFJLElBQUssT0FBQSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQVosQ0FBWSxDQUFDO1lBQ3ZFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFDLElBQUksSUFBSyxPQUFBLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBWixDQUFZLENBQUM7WUFDckQsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFULENBQVMsQ0FBQztZQUNyQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDdkIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFULENBQVMsQ0FBQztZQUNyRCxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQVQsQ0FBUyxDQUFDO1lBQ2pELFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBVCxDQUFTLENBQUM7WUFDbkQsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFULENBQVMsQ0FBQztZQUN6QyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBVCxDQUFTLENBQUM7U0FDaEUsQ0FBQTtJQUNILENBQUM7SUFFRCxvQ0FBUSxHQUFSO1FBRUUsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGlDQUFLLEdBQUw7UUFDRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELCtDQUFtQixHQUFuQjtRQUNFLElBQUEsaUNBQWUsRUFBQyxJQUFJLENBQUMsQ0FBQTtRQUVyQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUE7SUFDdEIsQ0FBQztJQUNILHdCQUFDO0FBQUQsQ0FBQyxBQTdrQ0QsSUE2a0NDO0FBRUQsa0JBQWUsaUJBQWlCLENBQUEifQ==
651
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3lzdGVtTWV0YUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2J1aWxkZXJzL1N5c3RlbU1ldGFCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0NBSWlCO0FBQ2pCLHNFQUE2QztBQUM3Qyx3RUFBK0M7QUFDL0MsK0RBQTJEO0FBQzNELDhFQUEwRTtBQWMxRSx3REFBb0Q7QUFDcEQseUNBQTBCO0FBQzFCLG9FQUEyQztBQUMzQyxzRUFBNkM7QUFDN0MsNEVBQW1EO0FBQ25ELGdFQUF1QztBQUN2Qyw4RUFBcUQ7QUFDckQseURBQW9EO0FBQ3BELG9EQUE0QjtBQUM1Qiw2R0FBb0Y7QUFDcEYsNkZBQW9FO0FBQ3BFLG1HQUEwRTtBQUMxRSw2RkFBb0U7QUFDcEUsdUZBQThEO0FBQzlELGdFQUF1QztBQUN2QywwRkFBaUU7QUFDakUsaUZBQXdEO0FBQ3hELDJFQUEyRTtBQUU5RCxRQUFBLGdCQUFnQixHQUFxQztJQUNoRSxPQUFPLEVBQUUsRUFBRTtJQUNYLE9BQU8sRUFBRSxFQUFFO0lBQ1gsUUFBUSxFQUFFLElBQUk7SUFDZCxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQztJQUN6QyxNQUFNLEVBQUUsS0FBSztJQUNiLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQTtBQUVELE1BQU0saUJBQWlCO0lBaUNyQiw0REFBNEQ7SUFDNUQsdURBQXVEO0lBRXZELGNBQWM7SUFDZCxZQUNFLE1BQWMsRUFDZCxVQUFrQyxxQ0FBNkIsRUFDL0QsZUFBZSxHQUFHLElBQUk7UUF2Q3hCLGFBQVEsR0FBK0MsRUFBRSxDQUFBO1FBQ3pELFlBQU8sR0FBOEMsRUFBRSxDQUFBO1FBQ3ZELGNBQVMsR0FBZ0QsRUFBRSxDQUFBO1FBQzNELG1CQUFjLEdBQW9ELEVBQUUsQ0FBQTtRQUNwRSxrQkFB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