@decaf-ts/integrations 0.3.8 → 0.3.10

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 (1167) hide show
  1. package/dist/integrations.cjs +2 -1649
  2. package/dist/integrations.cjs.map +1 -0
  3. package/dist/integrations.js +2 -1885
  4. package/dist/integrations.js.map +1 -0
  5. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
  6. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +1 -0
  7. package/lib/cjs/blob/azure/index.cjs +2 -2
  8. package/lib/cjs/blob/azure/index.cjs.map +1 -0
  9. package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
  10. package/lib/cjs/blob/core/BlobErrors.cjs.map +1 -0
  11. package/lib/cjs/blob/core/BlobKey.cjs +2 -2
  12. package/lib/cjs/blob/core/BlobKey.cjs.map +1 -0
  13. package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
  14. package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +1 -0
  15. package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
  16. package/lib/cjs/blob/core/BlobStoreService.cjs.map +1 -0
  17. package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
  18. package/lib/cjs/blob/core/BlobTypes.cjs.map +1 -0
  19. package/lib/cjs/blob/core/BlobValue.cjs +2 -2
  20. package/lib/cjs/blob/core/BlobValue.cjs.map +1 -0
  21. package/lib/cjs/blob/core/index.cjs +2 -2
  22. package/lib/cjs/blob/core/index.cjs.map +1 -0
  23. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
  24. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +1 -0
  25. package/lib/cjs/blob/gcp/index.cjs +2 -2
  26. package/lib/cjs/blob/gcp/index.cjs.map +1 -0
  27. package/lib/cjs/blob/index.cjs +2 -2
  28. package/lib/cjs/blob/index.cjs.map +1 -0
  29. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +2 -2
  30. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +1 -0
  31. package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +2 -2
  32. package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +1 -0
  33. package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +2 -2
  34. package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +1 -0
  35. package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +2 -2
  36. package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +1 -0
  37. package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +2 -2
  38. package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +1 -0
  39. package/lib/cjs/blob/ipfs/index.cjs +2 -2
  40. package/lib/cjs/blob/ipfs/index.cjs.map +1 -0
  41. package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
  42. package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +1 -0
  43. package/lib/cjs/blob/local/index.cjs +2 -2
  44. package/lib/cjs/blob/local/index.cjs.map +1 -0
  45. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
  46. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +1 -0
  47. package/lib/cjs/blob/memory/index.cjs +2 -2
  48. package/lib/cjs/blob/memory/index.cjs.map +1 -0
  49. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
  50. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +1 -0
  51. package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
  52. package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +1 -0
  53. package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
  54. package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -0
  55. package/lib/cjs/blob/s3/index.cjs +2 -2
  56. package/lib/cjs/blob/s3/index.cjs.map +1 -0
  57. package/lib/cjs/docker/DockerComposeService.cjs +2 -2
  58. package/lib/cjs/docker/DockerComposeService.cjs.map +1 -0
  59. package/lib/cjs/docker/index.cjs +2 -2
  60. package/lib/cjs/docker/index.cjs.map +1 -0
  61. package/lib/cjs/graph/engine/constants.cjs +58 -0
  62. package/lib/cjs/graph/engine/constants.cjs.map +1 -0
  63. package/lib/cjs/graph/engine/decorators.cjs +4 -0
  64. package/lib/cjs/graph/engine/decorators.cjs.map +1 -0
  65. package/lib/cjs/graph/engine/errors/GraphCycleError.cjs +20 -0
  66. package/lib/cjs/graph/engine/errors/GraphCycleError.cjs.map +1 -0
  67. package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs +27 -0
  68. package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs.map +1 -0
  69. package/lib/cjs/graph/engine/errors/GraphInputError.cjs +20 -0
  70. package/lib/cjs/graph/engine/errors/GraphInputError.cjs.map +1 -0
  71. package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs +20 -0
  72. package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs.map +1 -0
  73. package/lib/cjs/graph/engine/errors/GraphPinningError.cjs +20 -0
  74. package/lib/cjs/graph/engine/errors/GraphPinningError.cjs.map +1 -0
  75. package/lib/cjs/graph/engine/errors/GraphPortError.cjs +20 -0
  76. package/lib/cjs/graph/engine/errors/GraphPortError.cjs.map +1 -0
  77. package/lib/cjs/graph/engine/errors/GraphStoreError.cjs +20 -0
  78. package/lib/cjs/graph/engine/errors/GraphStoreError.cjs.map +1 -0
  79. package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs +20 -0
  80. package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs.map +1 -0
  81. package/lib/cjs/graph/engine/errors/index.cjs +31 -0
  82. package/lib/cjs/graph/engine/errors/index.cjs.map +1 -0
  83. package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs +4 -0
  84. package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs.map +1 -0
  85. package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs +40 -0
  86. package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs.map +1 -0
  87. package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs +37 -0
  88. package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs.map +1 -0
  89. package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs +4 -0
  90. package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs.map +1 -0
  91. package/lib/cjs/graph/engine/events/index.cjs +27 -0
  92. package/lib/cjs/graph/engine/events/index.cjs.map +1 -0
  93. package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs +4 -0
  94. package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs.map +1 -0
  95. package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs +79 -0
  96. package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs.map +1 -0
  97. package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs +413 -0
  98. package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs.map +1 -0
  99. package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs +32 -0
  100. package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs.map +1 -0
  101. package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs +30 -0
  102. package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs.map +1 -0
  103. package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs +4 -0
  104. package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs.map +1 -0
  105. package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs +103 -0
  106. package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs.map +1 -0
  107. package/lib/cjs/graph/engine/execution/index.cjs +30 -0
  108. package/lib/cjs/graph/engine/execution/index.cjs.map +1 -0
  109. package/lib/cjs/graph/engine/index.cjs +84 -0
  110. package/lib/cjs/graph/engine/index.cjs.map +1 -0
  111. package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs +87 -0
  112. package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs.map +1 -0
  113. package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs +85 -0
  114. package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs.map +1 -0
  115. package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs +85 -0
  116. package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs.map +1 -0
  117. package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs +16 -0
  118. package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs.map +1 -0
  119. package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs +77 -0
  120. package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs.map +1 -0
  121. package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs +78 -0
  122. package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs.map +1 -0
  123. package/lib/cjs/graph/engine/loops/index.cjs +29 -0
  124. package/lib/cjs/graph/engine/loops/index.cjs.map +1 -0
  125. package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs +28 -0
  126. package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs.map +1 -0
  127. package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs +20 -0
  128. package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs.map +1 -0
  129. package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs +34 -0
  130. package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs.map +1 -0
  131. package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs +191 -0
  132. package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs.map +1 -0
  133. package/lib/cjs/graph/engine/pinning/index.cjs +27 -0
  134. package/lib/cjs/graph/engine/pinning/index.cjs.map +1 -0
  135. package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs +4 -0
  136. package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs.map +1 -0
  137. package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs +4 -0
  138. package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs.map +1 -0
  139. package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs +4 -0
  140. package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs.map +1 -0
  141. package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs +4 -0
  142. package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs.map +1 -0
  143. package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs +197 -0
  144. package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs.map +1 -0
  145. package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs +172 -0
  146. package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs.map +1 -0
  147. package/lib/cjs/graph/engine/planning/GraphTopology.cjs +57 -0
  148. package/lib/cjs/graph/engine/planning/GraphTopology.cjs.map +1 -0
  149. package/lib/cjs/graph/engine/planning/index.cjs +30 -0
  150. package/lib/cjs/graph/engine/planning/index.cjs.map +1 -0
  151. package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs +44 -0
  152. package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs.map +1 -0
  153. package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs +27 -0
  154. package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs.map +1 -0
  155. package/lib/cjs/graph/engine/registry/index.cjs +25 -0
  156. package/lib/cjs/graph/engine/registry/index.cjs.map +1 -0
  157. package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs +53 -0
  158. package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs.map +1 -0
  159. package/lib/cjs/graph/engine/snapshots/index.cjs +24 -0
  160. package/lib/cjs/graph/engine/snapshots/index.cjs.map +1 -0
  161. package/lib/cjs/graph/engine/store/GraphCachedValue.cjs +4 -0
  162. package/lib/cjs/graph/engine/store/GraphCachedValue.cjs.map +1 -0
  163. package/lib/cjs/graph/engine/store/GraphValueKey.cjs +4 -0
  164. package/lib/cjs/graph/engine/store/GraphValueKey.cjs.map +1 -0
  165. package/lib/cjs/graph/engine/store/GraphValueStore.cjs +76 -0
  166. package/lib/cjs/graph/engine/store/GraphValueStore.cjs.map +1 -0
  167. package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs +4 -0
  168. package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs.map +1 -0
  169. package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs +69 -0
  170. package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs.map +1 -0
  171. package/lib/cjs/graph/engine/store/index.cjs +28 -0
  172. package/lib/cjs/graph/engine/store/index.cjs.map +1 -0
  173. package/lib/cjs/graph/engine/types.cjs +4 -0
  174. package/lib/cjs/graph/engine/types.cjs.map +1 -0
  175. package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs +33 -0
  176. package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs.map +1 -0
  177. package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs +58 -0
  178. package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs.map +1 -0
  179. package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs +52 -0
  180. package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs.map +1 -0
  181. package/lib/cjs/graph/engine/validation/index.cjs +26 -0
  182. package/lib/cjs/graph/engine/validation/index.cjs.map +1 -0
  183. package/lib/cjs/graph/index.cjs +10 -60
  184. package/lib/cjs/graph/index.cjs.map +1 -0
  185. package/lib/cjs/graph/shared/constants.cjs +44 -0
  186. package/lib/cjs/graph/shared/constants.cjs.map +1 -0
  187. package/lib/cjs/graph/shared/index.cjs +38 -0
  188. package/lib/cjs/graph/shared/index.cjs.map +1 -0
  189. package/lib/cjs/graph/shared/nodes/agent.cjs +110 -0
  190. package/lib/cjs/graph/shared/nodes/agent.cjs.map +1 -0
  191. package/lib/cjs/graph/shared/nodes/base.cjs +36 -0
  192. package/lib/cjs/graph/shared/nodes/base.cjs.map +1 -0
  193. package/lib/cjs/graph/shared/nodes/category-styles.cjs +38 -0
  194. package/lib/cjs/graph/shared/nodes/category-styles.cjs.map +1 -0
  195. package/lib/cjs/graph/shared/nodes/flow-control.cjs +464 -0
  196. package/lib/cjs/graph/shared/nodes/flow-control.cjs.map +1 -0
  197. package/lib/cjs/graph/shared/nodes/index.cjs +35 -0
  198. package/lib/cjs/graph/shared/nodes/index.cjs.map +1 -0
  199. package/lib/cjs/graph/shared/nodes/triggers.cjs +250 -0
  200. package/lib/cjs/graph/shared/nodes/triggers.cjs.map +1 -0
  201. package/lib/cjs/graph/shared/types.cjs +4 -0
  202. package/lib/cjs/graph/shared/types.cjs.map +1 -0
  203. package/lib/cjs/index.cjs +5 -5
  204. package/lib/cjs/index.cjs.map +1 -0
  205. package/lib/cjs/keycloak/index.cjs +2 -2
  206. package/lib/cjs/keycloak/index.cjs.map +1 -0
  207. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
  208. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +1 -0
  209. package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
  210. package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +1 -0
  211. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +2 -2
  212. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +1 -0
  213. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
  214. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +1 -0
  215. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
  216. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +1 -0
  217. package/lib/cjs/keycloak/services/KeycloakService.cjs +2 -2
  218. package/lib/cjs/keycloak/services/KeycloakService.cjs.map +1 -0
  219. package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
  220. package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +1 -0
  221. package/lib/cjs/keycloak/services/index.cjs +2 -2
  222. package/lib/cjs/keycloak/services/index.cjs.map +1 -0
  223. package/lib/cjs/keycloak/services/runtime.cjs +2 -2
  224. package/lib/cjs/keycloak/services/runtime.cjs.map +1 -0
  225. package/lib/cjs/keycloak/types.cjs +2 -2
  226. package/lib/cjs/keycloak/types.cjs.map +1 -0
  227. package/lib/cjs/kibana/helpers.cjs +2 -2
  228. package/lib/cjs/kibana/helpers.cjs.map +1 -0
  229. package/lib/cjs/kibana/index.cjs +2 -2
  230. package/lib/cjs/kibana/index.cjs.map +1 -0
  231. package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
  232. package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +1 -0
  233. package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
  234. package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +1 -0
  235. package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
  236. package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +1 -0
  237. package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
  238. package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +1 -0
  239. package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
  240. package/lib/cjs/kibana/services/KibanaService.cjs.map +1 -0
  241. package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
  242. package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +1 -0
  243. package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
  244. package/lib/cjs/kibana/services/KibanaUserService.cjs.map +1 -0
  245. package/lib/cjs/kibana/services/index.cjs +2 -2
  246. package/lib/cjs/kibana/services/index.cjs.map +1 -0
  247. package/lib/cjs/kibana/services/runtime.cjs +2 -2
  248. package/lib/cjs/kibana/services/runtime.cjs.map +1 -0
  249. package/lib/cjs/kibana/types.cjs +2 -2
  250. package/lib/cjs/kibana/types.cjs.map +1 -0
  251. package/lib/cjs/namespaces/index.cjs +2 -2
  252. package/lib/cjs/namespaces/index.cjs.map +1 -0
  253. package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
  254. package/lib/cjs/namespaces/models/authorization-model.cjs.map +1 -0
  255. package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
  256. package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +1 -0
  257. package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
  258. package/lib/cjs/namespaces/models/group-membership.model.cjs.map +1 -0
  259. package/lib/cjs/namespaces/models/group.model.cjs +2 -2
  260. package/lib/cjs/namespaces/models/group.model.cjs.map +1 -0
  261. package/lib/cjs/namespaces/models/index.cjs +2 -2
  262. package/lib/cjs/namespaces/models/index.cjs.map +1 -0
  263. package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
  264. package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +1 -0
  265. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
  266. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +1 -0
  267. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
  268. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +1 -0
  269. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
  270. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +1 -0
  271. package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
  272. package/lib/cjs/namespaces/models/org-unit.model.cjs.map +1 -0
  273. package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
  274. package/lib/cjs/namespaces/models/permission.model.cjs.map +1 -0
  275. package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
  276. package/lib/cjs/namespaces/models/principal.model.cjs.map +1 -0
  277. package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
  278. package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +1 -0
  279. package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
  280. package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +1 -0
  281. package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
  282. package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +1 -0
  283. package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
  284. package/lib/cjs/namespaces/models/role-permission.model.cjs.map +1 -0
  285. package/lib/cjs/namespaces/models/role.model.cjs +2 -2
  286. package/lib/cjs/namespaces/models/role.model.cjs.map +1 -0
  287. package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
  288. package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +1 -0
  289. package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
  290. package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +1 -0
  291. package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
  292. package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +1 -0
  293. package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
  294. package/lib/cjs/namespaces/models/tenant.model.cjs.map +1 -0
  295. package/lib/cjs/namespaces/models/user.model.cjs +2 -2
  296. package/lib/cjs/namespaces/models/user.model.cjs.map +1 -0
  297. package/lib/cjs/namespaces/org-based-authorization-system.cjs +10 -4
  298. package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +1 -0
  299. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
  300. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +1 -0
  301. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +19 -10
  302. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +1 -0
  303. package/lib/cjs/namespaces/services/authz.service.cjs +39 -13
  304. package/lib/cjs/namespaces/services/authz.service.cjs.map +1 -0
  305. package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
  306. package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +1 -0
  307. package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
  308. package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +1 -0
  309. package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
  310. package/lib/cjs/namespaces/services/group-membership.service.cjs.map +1 -0
  311. package/lib/cjs/namespaces/services/group.service.cjs +2 -2
  312. package/lib/cjs/namespaces/services/group.service.cjs.map +1 -0
  313. package/lib/cjs/namespaces/services/index.cjs +2 -2
  314. package/lib/cjs/namespaces/services/index.cjs.map +1 -0
  315. package/lib/cjs/namespaces/services/inheritance-block.service.cjs +6 -4
  316. package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +1 -0
  317. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +16 -7
  318. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +1 -0
  319. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
  320. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +1 -0
  321. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
  322. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +1 -0
  323. package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
  324. package/lib/cjs/namespaces/services/org-unit.service.cjs.map +1 -0
  325. package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
  326. package/lib/cjs/namespaces/services/permission.service.cjs.map +1 -0
  327. package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
  328. package/lib/cjs/namespaces/services/principal.service.cjs.map +1 -0
  329. package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
  330. package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +1 -0
  331. package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
  332. package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +1 -0
  333. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
  334. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +1 -0
  335. package/lib/cjs/namespaces/services/role-assignment.service.cjs +4 -3
  336. package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +1 -0
  337. package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
  338. package/lib/cjs/namespaces/services/role-permission.service.cjs.map +1 -0
  339. package/lib/cjs/namespaces/services/role.service.cjs +2 -2
  340. package/lib/cjs/namespaces/services/role.service.cjs.map +1 -0
  341. package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
  342. package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +1 -0
  343. package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
  344. package/lib/cjs/namespaces/services/system-management.service.cjs.map +1 -0
  345. package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
  346. package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +1 -0
  347. package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
  348. package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +1 -0
  349. package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
  350. package/lib/cjs/namespaces/services/tenant.service.cjs.map +1 -0
  351. package/lib/cjs/namespaces/services/user.service.cjs +2 -2
  352. package/lib/cjs/namespaces/services/user.service.cjs.map +1 -0
  353. package/lib/cjs/namespaces/types.cjs +2 -2
  354. package/lib/cjs/namespaces/types.cjs.map +1 -0
  355. package/lib/cjs/namespaces/utils.cjs +13 -5
  356. package/lib/cjs/namespaces/utils.cjs.map +1 -0
  357. package/lib/cjs/nest/authService.cjs +2 -2
  358. package/lib/cjs/nest/authService.cjs.map +1 -0
  359. package/lib/cjs/nest/graph/GraphExecutionController.cjs +2 -2
  360. package/lib/cjs/nest/graph/GraphExecutionController.cjs.map +1 -0
  361. package/lib/cjs/nest/graph/GraphExecutionModule.cjs +6 -4
  362. package/lib/cjs/nest/graph/GraphExecutionModule.cjs.map +1 -0
  363. package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs +2 -2
  364. package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs.map +1 -0
  365. package/lib/cjs/nest/graph/GraphExecutionResultRepository.cjs +2 -2
  366. package/lib/cjs/nest/graph/GraphExecutionResultRepository.cjs.map +1 -0
  367. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +97 -11
  368. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs.map +1 -0
  369. package/lib/cjs/nest/graph/index.cjs +2 -2
  370. package/lib/cjs/nest/graph/index.cjs.map +1 -0
  371. package/lib/cjs/nest/graph/main.cjs +30 -0
  372. package/lib/cjs/nest/graph/main.cjs.map +1 -0
  373. package/lib/cjs/nest/index.cjs +2 -2
  374. package/lib/cjs/nest/index.cjs.map +1 -0
  375. package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
  376. package/lib/cjs/nest/keycloakAuthHandler.cjs.map +1 -0
  377. package/lib/cjs/nest/keycloakModule.cjs +2 -2
  378. package/lib/cjs/nest/keycloakModule.cjs.map +1 -0
  379. package/lib/cjs/nest/logging.cjs +2 -2
  380. package/lib/cjs/nest/logging.cjs.map +1 -0
  381. package/lib/cjs/nest/types.cjs +2 -2
  382. package/lib/cjs/nest/types.cjs.map +1 -0
  383. package/lib/cjs/nest/utils.cjs +2 -2
  384. package/lib/cjs/nest/utils.cjs.map +1 -0
  385. package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
  386. package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +1 -0
  387. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
  388. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +1 -0
  389. package/lib/cjs/secrets/aws/index.cjs +2 -2
  390. package/lib/cjs/secrets/aws/index.cjs.map +1 -0
  391. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
  392. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +1 -0
  393. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
  394. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +1 -0
  395. package/lib/cjs/secrets/azure/index.cjs +2 -2
  396. package/lib/cjs/secrets/azure/index.cjs.map +1 -0
  397. package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
  398. package/lib/cjs/secrets/core/SecretErrors.cjs.map +1 -0
  399. package/lib/cjs/secrets/core/SecretName.cjs +2 -2
  400. package/lib/cjs/secrets/core/SecretName.cjs.map +1 -0
  401. package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
  402. package/lib/cjs/secrets/core/SecretReference.cjs.map +1 -0
  403. package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
  404. package/lib/cjs/secrets/core/SecretSerialization.cjs.map +1 -0
  405. package/lib/cjs/secrets/core/SecretService.cjs +2 -2
  406. package/lib/cjs/secrets/core/SecretService.cjs.map +1 -0
  407. package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
  408. package/lib/cjs/secrets/core/SecretTypes.cjs.map +1 -0
  409. package/lib/cjs/secrets/core/index.cjs +2 -2
  410. package/lib/cjs/secrets/core/index.cjs.map +1 -0
  411. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
  412. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +1 -0
  413. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
  414. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +1 -0
  415. package/lib/cjs/secrets/gcp/index.cjs +2 -2
  416. package/lib/cjs/secrets/gcp/index.cjs.map +1 -0
  417. package/lib/cjs/secrets/index.cjs +2 -2
  418. package/lib/cjs/secrets/index.cjs.map +1 -0
  419. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
  420. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +1 -0
  421. package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
  422. package/lib/cjs/secrets/model/ModelSecretService.cjs.map +1 -0
  423. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
  424. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +1 -0
  425. package/lib/cjs/secrets/model/Secret.cjs +2 -2
  426. package/lib/cjs/secrets/model/Secret.cjs.map +1 -0
  427. package/lib/cjs/secrets/model/index.cjs +2 -2
  428. package/lib/cjs/secrets/model/index.cjs.map +1 -0
  429. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
  430. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +1 -0
  431. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
  432. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +1 -0
  433. package/lib/cjs/secrets/onepassword/index.cjs +2 -2
  434. package/lib/cjs/secrets/onepassword/index.cjs.map +1 -0
  435. package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
  436. package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +1 -0
  437. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
  438. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +1 -0
  439. package/lib/cjs/secrets/vault/index.cjs +2 -2
  440. package/lib/cjs/secrets/vault/index.cjs.map +1 -0
  441. package/lib/cjs/shared/runtime.cjs +2 -2
  442. package/lib/cjs/shared/runtime.cjs.map +1 -0
  443. package/lib/cjs/utils.cjs +2 -2
  444. package/lib/cjs/utils.cjs.map +1 -0
  445. package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
  446. package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -0
  447. package/lib/esm/blob/azure/index.js +1 -1
  448. package/lib/esm/blob/azure/index.js.map +1 -0
  449. package/lib/esm/blob/core/BlobErrors.js +1 -1
  450. package/lib/esm/blob/core/BlobErrors.js.map +1 -0
  451. package/lib/esm/blob/core/BlobKey.js +1 -1
  452. package/lib/esm/blob/core/BlobKey.js.map +1 -0
  453. package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
  454. package/lib/esm/blob/core/BlobStoreFactory.js.map +1 -0
  455. package/lib/esm/blob/core/BlobStoreService.js +1 -1
  456. package/lib/esm/blob/core/BlobStoreService.js.map +1 -0
  457. package/lib/esm/blob/core/BlobTypes.js +1 -1
  458. package/lib/esm/blob/core/BlobTypes.js.map +1 -0
  459. package/lib/esm/blob/core/BlobValue.js +1 -1
  460. package/lib/esm/blob/core/BlobValue.js.map +1 -0
  461. package/lib/esm/blob/core/index.js +1 -1
  462. package/lib/esm/blob/core/index.js.map +1 -0
  463. package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
  464. package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -0
  465. package/lib/esm/blob/gcp/index.js +1 -1
  466. package/lib/esm/blob/gcp/index.js.map +1 -0
  467. package/lib/esm/blob/index.js +1 -1
  468. package/lib/esm/blob/index.js.map +1 -0
  469. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +1 -1
  470. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +1 -0
  471. package/lib/esm/blob/ipfs/IpfsKeyIndex.js +1 -1
  472. package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +1 -0
  473. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +1 -1
  474. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +1 -0
  475. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +1 -1
  476. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +1 -0
  477. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +1 -1
  478. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +1 -0
  479. package/lib/esm/blob/ipfs/index.js +1 -1
  480. package/lib/esm/blob/ipfs/index.js.map +1 -0
  481. package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
  482. package/lib/esm/blob/local/LocalBlobStoreService.js.map +1 -0
  483. package/lib/esm/blob/local/index.js +1 -1
  484. package/lib/esm/blob/local/index.js.map +1 -0
  485. package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
  486. package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +1 -0
  487. package/lib/esm/blob/memory/index.js +1 -1
  488. package/lib/esm/blob/memory/index.js.map +1 -0
  489. package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
  490. package/lib/esm/blob/s3/MinioBlobStoreService.js.map +1 -0
  491. package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
  492. package/lib/esm/blob/s3/R2BlobStoreService.js.map +1 -0
  493. package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
  494. package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -0
  495. package/lib/esm/blob/s3/index.js +1 -1
  496. package/lib/esm/blob/s3/index.js.map +1 -0
  497. package/lib/esm/docker/DockerComposeService.js +1 -1
  498. package/lib/esm/docker/DockerComposeService.js.map +1 -0
  499. package/lib/esm/docker/index.js +1 -1
  500. package/lib/esm/docker/index.js.map +1 -0
  501. package/lib/esm/graph/engine/constants.js +62 -0
  502. package/lib/esm/graph/engine/constants.js.map +1 -0
  503. package/lib/esm/graph/engine/decorators.js +2 -0
  504. package/lib/esm/graph/engine/decorators.js.map +1 -0
  505. package/lib/esm/graph/engine/errors/GraphCycleError.js +15 -0
  506. package/lib/esm/graph/engine/errors/GraphCycleError.js.map +1 -0
  507. package/lib/esm/graph/engine/errors/GraphExecutionError.js +22 -0
  508. package/lib/esm/graph/engine/errors/GraphExecutionError.js.map +1 -0
  509. package/lib/esm/graph/engine/errors/GraphInputError.js +15 -0
  510. package/lib/esm/graph/engine/errors/GraphInputError.js.map +1 -0
  511. package/lib/esm/graph/engine/errors/GraphLoopLimitError.js +15 -0
  512. package/lib/esm/graph/engine/errors/GraphLoopLimitError.js.map +1 -0
  513. package/lib/esm/graph/engine/errors/GraphPinningError.js +15 -0
  514. package/lib/esm/graph/engine/errors/GraphPinningError.js.map +1 -0
  515. package/lib/esm/graph/engine/errors/GraphPortError.js +15 -0
  516. package/lib/esm/graph/engine/errors/GraphPortError.js.map +1 -0
  517. package/lib/esm/graph/engine/errors/GraphStoreError.js +15 -0
  518. package/lib/esm/graph/engine/errors/GraphStoreError.js.map +1 -0
  519. package/lib/esm/graph/engine/errors/GraphTopologyError.js +15 -0
  520. package/lib/esm/graph/engine/errors/GraphTopologyError.js.map +1 -0
  521. package/lib/esm/graph/engine/errors/index.js +14 -0
  522. package/lib/esm/graph/engine/errors/index.js.map +1 -0
  523. package/lib/esm/graph/engine/events/GraphExecutionEvent.js +2 -0
  524. package/lib/esm/graph/engine/events/GraphExecutionEvent.js.map +1 -0
  525. package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js +35 -0
  526. package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js.map +1 -0
  527. package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js +32 -0
  528. package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js.map +1 -0
  529. package/lib/esm/graph/engine/events/GraphExecutionObserver.js +2 -0
  530. package/lib/esm/graph/engine/events/GraphExecutionObserver.js.map +1 -0
  531. package/lib/esm/graph/engine/events/index.js +10 -0
  532. package/lib/esm/graph/engine/events/index.js.map +1 -0
  533. package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js +18 -0
  534. package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js.map +1 -0
  535. package/lib/esm/graph/engine/execution/GraphExecutionContext.js +74 -0
  536. package/lib/esm/graph/engine/execution/GraphExecutionContext.js.map +1 -0
  537. package/lib/esm/graph/engine/execution/GraphExecutionEngine.js +408 -0
  538. package/lib/esm/graph/engine/execution/GraphExecutionEngine.js.map +1 -0
  539. package/lib/esm/graph/engine/execution/GraphExecutionFrame.js +27 -0
  540. package/lib/esm/graph/engine/execution/GraphExecutionFrame.js.map +1 -0
  541. package/lib/esm/graph/engine/execution/GraphExecutionResult.js +26 -0
  542. package/lib/esm/graph/engine/execution/GraphExecutionResult.js.map +1 -0
  543. package/lib/esm/graph/engine/execution/GraphNodeExecutor.js +2 -0
  544. package/lib/esm/graph/engine/execution/GraphNodeExecutor.js.map +1 -0
  545. package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js +98 -0
  546. package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js.map +1 -0
  547. package/lib/esm/graph/engine/execution/index.js +13 -0
  548. package/lib/esm/graph/engine/execution/index.js.map +1 -0
  549. package/lib/esm/graph/engine/index.js +67 -0
  550. package/lib/esm/graph/engine/index.js.map +1 -0
  551. package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js +82 -0
  552. package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js.map +1 -0
  553. package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js +80 -0
  554. package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js.map +1 -0
  555. package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js +80 -0
  556. package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js.map +1 -0
  557. package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js +11 -0
  558. package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js.map +1 -0
  559. package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js +72 -0
  560. package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js.map +1 -0
  561. package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js +73 -0
  562. package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js.map +1 -0
  563. package/lib/esm/graph/engine/loops/index.js +12 -0
  564. package/lib/esm/graph/engine/loops/index.js.map +1 -0
  565. package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js +23 -0
  566. package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js.map +1 -0
  567. package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js +15 -0
  568. package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js.map +1 -0
  569. package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js +29 -0
  570. package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js.map +1 -0
  571. package/lib/esm/graph/engine/pinning/GraphPinningService.js +186 -0
  572. package/lib/esm/graph/engine/pinning/GraphPinningService.js.map +1 -0
  573. package/lib/esm/graph/engine/pinning/index.js +10 -0
  574. package/lib/esm/graph/engine/pinning/index.js.map +1 -0
  575. package/lib/esm/graph/engine/planning/GraphExecutionPlan.js +2 -0
  576. package/lib/esm/graph/engine/planning/GraphExecutionPlan.js.map +1 -0
  577. package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js +7 -0
  578. package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js.map +1 -0
  579. package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js +2 -0
  580. package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js.map +1 -0
  581. package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js +2 -0
  582. package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js.map +1 -0
  583. package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js +192 -0
  584. package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js.map +1 -0
  585. package/lib/esm/graph/engine/planning/GraphRelationResolver.js +167 -0
  586. package/lib/esm/graph/engine/planning/GraphRelationResolver.js.map +1 -0
  587. package/lib/esm/graph/engine/planning/GraphTopology.js +52 -0
  588. package/lib/esm/graph/engine/planning/GraphTopology.js.map +1 -0
  589. package/lib/esm/graph/engine/planning/index.js +13 -0
  590. package/lib/esm/graph/engine/planning/index.js.map +1 -0
  591. package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js +39 -0
  592. package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js.map +1 -0
  593. package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js +22 -0
  594. package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js.map +1 -0
  595. package/lib/esm/graph/engine/registry/index.js +8 -0
  596. package/lib/esm/graph/engine/registry/index.js.map +1 -0
  597. package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js +48 -0
  598. package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js.map +1 -0
  599. package/lib/esm/graph/engine/snapshots/index.js +7 -0
  600. package/lib/esm/graph/engine/snapshots/index.js.map +1 -0
  601. package/lib/esm/graph/engine/store/GraphCachedValue.js +2 -0
  602. package/lib/esm/graph/engine/store/GraphCachedValue.js.map +1 -0
  603. package/lib/esm/graph/engine/store/GraphValueKey.js +7 -0
  604. package/lib/esm/graph/engine/store/GraphValueKey.js.map +1 -0
  605. package/lib/esm/graph/engine/store/GraphValueStore.js +71 -0
  606. package/lib/esm/graph/engine/store/GraphValueStore.js.map +1 -0
  607. package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js +2 -0
  608. package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js.map +1 -0
  609. package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js +64 -0
  610. package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js.map +1 -0
  611. package/lib/esm/graph/engine/store/index.js +11 -0
  612. package/lib/esm/graph/engine/store/index.js.map +1 -0
  613. package/lib/esm/graph/engine/types.js +2 -0
  614. package/lib/esm/graph/engine/types.js.map +1 -0
  615. package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js +28 -0
  616. package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js.map +1 -0
  617. package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js +53 -0
  618. package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js.map +1 -0
  619. package/lib/esm/graph/engine/validation/GraphValueValidator.js +47 -0
  620. package/lib/esm/graph/engine/validation/GraphValueValidator.js.map +1 -0
  621. package/lib/esm/graph/engine/validation/index.js +9 -0
  622. package/lib/esm/graph/engine/validation/index.js.map +1 -0
  623. package/lib/esm/graph/index.js +9 -59
  624. package/lib/esm/graph/index.js.map +1 -0
  625. package/lib/esm/graph/shared/constants.js +56 -0
  626. package/lib/esm/graph/shared/constants.js.map +1 -0
  627. package/lib/esm/graph/shared/index.js +19 -0
  628. package/lib/esm/graph/shared/index.js.map +1 -0
  629. package/lib/esm/graph/shared/nodes/agent.js +101 -0
  630. package/lib/esm/graph/shared/nodes/agent.js.map +1 -0
  631. package/lib/esm/graph/shared/nodes/base.js +31 -0
  632. package/lib/esm/graph/shared/nodes/base.js.map +1 -0
  633. package/lib/esm/graph/shared/nodes/category-styles.js +34 -0
  634. package/lib/esm/graph/shared/nodes/category-styles.js.map +1 -0
  635. package/lib/esm/graph/shared/nodes/flow-control.js +455 -0
  636. package/lib/esm/graph/shared/nodes/flow-control.js.map +1 -0
  637. package/lib/esm/graph/shared/nodes/index.js +18 -0
  638. package/lib/esm/graph/shared/nodes/index.js.map +1 -0
  639. package/lib/esm/graph/shared/nodes/triggers.js +241 -0
  640. package/lib/esm/graph/shared/nodes/triggers.js.map +1 -0
  641. package/lib/esm/graph/shared/types.js +2 -0
  642. package/lib/esm/graph/shared/types.js.map +1 -0
  643. package/lib/esm/index.js +4 -4
  644. package/lib/esm/index.js.map +1 -0
  645. package/lib/esm/keycloak/index.js +1 -1
  646. package/lib/esm/keycloak/index.js.map +1 -0
  647. package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
  648. package/lib/esm/keycloak/services/KeycloakAuthService.js.map +1 -0
  649. package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
  650. package/lib/esm/keycloak/services/KeycloakClientService.js.map +1 -0
  651. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +1 -1
  652. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +1 -0
  653. package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
  654. package/lib/esm/keycloak/services/KeycloakRealmService.js.map +1 -0
  655. package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
  656. package/lib/esm/keycloak/services/KeycloakRoleService.js.map +1 -0
  657. package/lib/esm/keycloak/services/KeycloakService.js +1 -1
  658. package/lib/esm/keycloak/services/KeycloakService.js.map +1 -0
  659. package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
  660. package/lib/esm/keycloak/services/KeycloakUserService.js.map +1 -0
  661. package/lib/esm/keycloak/services/index.js +1 -1
  662. package/lib/esm/keycloak/services/index.js.map +1 -0
  663. package/lib/esm/keycloak/services/runtime.js +1 -1
  664. package/lib/esm/keycloak/services/runtime.js.map +1 -0
  665. package/lib/esm/keycloak/types.js +1 -1
  666. package/lib/esm/keycloak/types.js.map +1 -0
  667. package/lib/esm/kibana/helpers.js +1 -1
  668. package/lib/esm/kibana/helpers.js.map +1 -0
  669. package/lib/esm/kibana/index.js +1 -1
  670. package/lib/esm/kibana/index.js.map +1 -0
  671. package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
  672. package/lib/esm/kibana/services/KibanaAuthService.js.map +1 -0
  673. package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
  674. package/lib/esm/kibana/services/KibanaDashboardService.js.map +1 -0
  675. package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
  676. package/lib/esm/kibana/services/KibanaDataViewService.js.map +1 -0
  677. package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
  678. package/lib/esm/kibana/services/KibanaRoleService.js.map +1 -0
  679. package/lib/esm/kibana/services/KibanaService.js +1 -1
  680. package/lib/esm/kibana/services/KibanaService.js.map +1 -0
  681. package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
  682. package/lib/esm/kibana/services/KibanaSpaceService.js.map +1 -0
  683. package/lib/esm/kibana/services/KibanaUserService.js +1 -1
  684. package/lib/esm/kibana/services/KibanaUserService.js.map +1 -0
  685. package/lib/esm/kibana/services/index.js +1 -1
  686. package/lib/esm/kibana/services/index.js.map +1 -0
  687. package/lib/esm/kibana/services/runtime.js +1 -1
  688. package/lib/esm/kibana/services/runtime.js.map +1 -0
  689. package/lib/esm/kibana/types.js +1 -1
  690. package/lib/esm/kibana/types.js.map +1 -0
  691. package/lib/esm/namespaces/index.js +1 -1
  692. package/lib/esm/namespaces/index.js.map +1 -0
  693. package/lib/esm/namespaces/models/authorization-model.js +1 -1
  694. package/lib/esm/namespaces/models/authorization-model.js.map +1 -0
  695. package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
  696. package/lib/esm/namespaces/models/effective-permission.model.js.map +1 -0
  697. package/lib/esm/namespaces/models/group-membership.model.js +1 -1
  698. package/lib/esm/namespaces/models/group-membership.model.js.map +1 -0
  699. package/lib/esm/namespaces/models/group.model.js +1 -1
  700. package/lib/esm/namespaces/models/group.model.js.map +1 -0
  701. package/lib/esm/namespaces/models/index.js +1 -1
  702. package/lib/esm/namespaces/models/index.js.map +1 -0
  703. package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
  704. package/lib/esm/namespaces/models/inheritance-block.model.js.map +1 -0
  705. package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
  706. package/lib/esm/namespaces/models/org-unit-closure.model.js.map +1 -0
  707. package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
  708. package/lib/esm/namespaces/models/org-unit-membership.model.js.map +1 -0
  709. package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
  710. package/lib/esm/namespaces/models/org-unit-profile.model.js.map +1 -0
  711. package/lib/esm/namespaces/models/org-unit.model.js +1 -1
  712. package/lib/esm/namespaces/models/org-unit.model.js.map +1 -0
  713. package/lib/esm/namespaces/models/permission.model.js +1 -1
  714. package/lib/esm/namespaces/models/permission.model.js.map +1 -0
  715. package/lib/esm/namespaces/models/principal.model.js +1 -1
  716. package/lib/esm/namespaces/models/principal.model.js.map +1 -0
  717. package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
  718. package/lib/esm/namespaces/models/protected-resource.model.js.map +1 -0
  719. package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
  720. package/lib/esm/namespaces/models/resource-grant.model.js.map +1 -0
  721. package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
  722. package/lib/esm/namespaces/models/role-assignment.model.js.map +1 -0
  723. package/lib/esm/namespaces/models/role-permission.model.js +1 -1
  724. package/lib/esm/namespaces/models/role-permission.model.js.map +1 -0
  725. package/lib/esm/namespaces/models/role.model.js +1 -1
  726. package/lib/esm/namespaces/models/role.model.js.map +1 -0
  727. package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
  728. package/lib/esm/namespaces/models/storage-binding.model.js.map +1 -0
  729. package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
  730. package/lib/esm/namespaces/models/tenant-membership.model.js.map +1 -0
  731. package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
  732. package/lib/esm/namespaces/models/tenant-profile.model.js.map +1 -0
  733. package/lib/esm/namespaces/models/tenant.model.js +3 -3
  734. package/lib/esm/namespaces/models/tenant.model.js.map +1 -0
  735. package/lib/esm/namespaces/models/user.model.js +1 -1
  736. package/lib/esm/namespaces/models/user.model.js.map +1 -0
  737. package/lib/esm/namespaces/org-based-authorization-system.js +10 -4
  738. package/lib/esm/namespaces/org-based-authorization-system.js.map +1 -0
  739. package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
  740. package/lib/esm/namespaces/org-based-authorization-system.models.js.map +1 -0
  741. package/lib/esm/namespaces/org-based-authorization-system.services.js +18 -9
  742. package/lib/esm/namespaces/org-based-authorization-system.services.js.map +1 -0
  743. package/lib/esm/namespaces/services/authz.service.js +40 -14
  744. package/lib/esm/namespaces/services/authz.service.js.map +1 -0
  745. package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
  746. package/lib/esm/namespaces/services/bootstrap.service.js.map +1 -0
  747. package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
  748. package/lib/esm/namespaces/services/effective-permission.service.js.map +1 -0
  749. package/lib/esm/namespaces/services/group-membership.service.js +1 -1
  750. package/lib/esm/namespaces/services/group-membership.service.js.map +1 -0
  751. package/lib/esm/namespaces/services/group.service.js +1 -1
  752. package/lib/esm/namespaces/services/group.service.js.map +1 -0
  753. package/lib/esm/namespaces/services/index.js +1 -1
  754. package/lib/esm/namespaces/services/index.js.map +1 -0
  755. package/lib/esm/namespaces/services/inheritance-block.service.js +5 -3
  756. package/lib/esm/namespaces/services/inheritance-block.service.js.map +1 -0
  757. package/lib/esm/namespaces/services/org-unit-closure.service.js +16 -7
  758. package/lib/esm/namespaces/services/org-unit-closure.service.js.map +1 -0
  759. package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
  760. package/lib/esm/namespaces/services/org-unit-membership.service.js.map +1 -0
  761. package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
  762. package/lib/esm/namespaces/services/org-unit-profile.service.js.map +1 -0
  763. package/lib/esm/namespaces/services/org-unit.service.js +1 -1
  764. package/lib/esm/namespaces/services/org-unit.service.js.map +1 -0
  765. package/lib/esm/namespaces/services/permission.service.js +1 -1
  766. package/lib/esm/namespaces/services/permission.service.js.map +1 -0
  767. package/lib/esm/namespaces/services/principal.service.js +1 -1
  768. package/lib/esm/namespaces/services/principal.service.js.map +1 -0
  769. package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
  770. package/lib/esm/namespaces/services/protected-resource.service.js.map +1 -0
  771. package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
  772. package/lib/esm/namespaces/services/resource-grant.service.js.map +1 -0
  773. package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
  774. package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +1 -0
  775. package/lib/esm/namespaces/services/role-assignment.service.js +3 -2
  776. package/lib/esm/namespaces/services/role-assignment.service.js.map +1 -0
  777. package/lib/esm/namespaces/services/role-permission.service.js +1 -1
  778. package/lib/esm/namespaces/services/role-permission.service.js.map +1 -0
  779. package/lib/esm/namespaces/services/role.service.js +1 -1
  780. package/lib/esm/namespaces/services/role.service.js.map +1 -0
  781. package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
  782. package/lib/esm/namespaces/services/storage-binding.service.js.map +1 -0
  783. package/lib/esm/namespaces/services/system-management.service.js +1 -1
  784. package/lib/esm/namespaces/services/system-management.service.js.map +1 -0
  785. package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
  786. package/lib/esm/namespaces/services/tenant-membership.service.js.map +1 -0
  787. package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
  788. package/lib/esm/namespaces/services/tenant-profile.service.js.map +1 -0
  789. package/lib/esm/namespaces/services/tenant.service.js +1 -1
  790. package/lib/esm/namespaces/services/tenant.service.js.map +1 -0
  791. package/lib/esm/namespaces/services/user.service.js +1 -1
  792. package/lib/esm/namespaces/services/user.service.js.map +1 -0
  793. package/lib/esm/namespaces/types.js +1 -1
  794. package/lib/esm/namespaces/types.js.map +1 -0
  795. package/lib/esm/namespaces/utils.js +12 -4
  796. package/lib/esm/namespaces/utils.js.map +1 -0
  797. package/lib/esm/nest/authService.js +1 -1
  798. package/lib/esm/nest/authService.js.map +1 -0
  799. package/lib/esm/nest/graph/GraphExecutionController.js +1 -1
  800. package/lib/esm/nest/graph/GraphExecutionController.js.map +1 -0
  801. package/lib/esm/nest/graph/GraphExecutionModule.js +6 -4
  802. package/lib/esm/nest/graph/GraphExecutionModule.js.map +1 -0
  803. package/lib/esm/nest/graph/GraphExecutionResultModel.js +1 -1
  804. package/lib/esm/nest/graph/GraphExecutionResultModel.js.map +1 -0
  805. package/lib/esm/nest/graph/GraphExecutionResultRepository.js +1 -1
  806. package/lib/esm/nest/graph/GraphExecutionResultRepository.js.map +1 -0
  807. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +96 -11
  808. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js.map +1 -0
  809. package/lib/esm/nest/graph/index.js +1 -1
  810. package/lib/esm/nest/graph/index.js.map +1 -0
  811. package/lib/esm/nest/graph/main.js +27 -0
  812. package/lib/esm/nest/graph/main.js.map +1 -0
  813. package/lib/esm/nest/index.js +1 -1
  814. package/lib/esm/nest/index.js.map +1 -0
  815. package/lib/esm/nest/keycloakAuthHandler.js +1 -1
  816. package/lib/esm/nest/keycloakAuthHandler.js.map +1 -0
  817. package/lib/esm/nest/keycloakModule.js +1 -1
  818. package/lib/esm/nest/keycloakModule.js.map +1 -0
  819. package/lib/esm/nest/logging.js +1 -1
  820. package/lib/esm/nest/logging.js.map +1 -0
  821. package/lib/esm/nest/types.js +1 -1
  822. package/lib/esm/nest/types.js.map +1 -0
  823. package/lib/esm/nest/utils.js +1 -1
  824. package/lib/esm/nest/utils.js.map +1 -0
  825. package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
  826. package/lib/esm/secrets/aws/AwsSecretService.js.map +1 -0
  827. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
  828. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +1 -0
  829. package/lib/esm/secrets/aws/index.js +1 -1
  830. package/lib/esm/secrets/aws/index.js.map +1 -0
  831. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
  832. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +1 -0
  833. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
  834. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +1 -0
  835. package/lib/esm/secrets/azure/index.js +1 -1
  836. package/lib/esm/secrets/azure/index.js.map +1 -0
  837. package/lib/esm/secrets/core/SecretErrors.js +1 -1
  838. package/lib/esm/secrets/core/SecretErrors.js.map +1 -0
  839. package/lib/esm/secrets/core/SecretName.js +1 -1
  840. package/lib/esm/secrets/core/SecretName.js.map +1 -0
  841. package/lib/esm/secrets/core/SecretReference.js +1 -1
  842. package/lib/esm/secrets/core/SecretReference.js.map +1 -0
  843. package/lib/esm/secrets/core/SecretSerialization.js +1 -1
  844. package/lib/esm/secrets/core/SecretSerialization.js.map +1 -0
  845. package/lib/esm/secrets/core/SecretService.js +1 -1
  846. package/lib/esm/secrets/core/SecretService.js.map +1 -0
  847. package/lib/esm/secrets/core/SecretTypes.js +1 -1
  848. package/lib/esm/secrets/core/SecretTypes.js.map +1 -0
  849. package/lib/esm/secrets/core/index.js +1 -1
  850. package/lib/esm/secrets/core/index.js.map +1 -0
  851. package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
  852. package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +1 -0
  853. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
  854. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +1 -0
  855. package/lib/esm/secrets/gcp/index.js +1 -1
  856. package/lib/esm/secrets/gcp/index.js.map +1 -0
  857. package/lib/esm/secrets/index.js +1 -1
  858. package/lib/esm/secrets/index.js.map +1 -0
  859. package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
  860. package/lib/esm/secrets/model/ModelSecretCrypto.js.map +1 -0
  861. package/lib/esm/secrets/model/ModelSecretService.js +1 -1
  862. package/lib/esm/secrets/model/ModelSecretService.js.map +1 -0
  863. package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
  864. package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +1 -0
  865. package/lib/esm/secrets/model/Secret.js +1 -1
  866. package/lib/esm/secrets/model/Secret.js.map +1 -0
  867. package/lib/esm/secrets/model/index.js +1 -1
  868. package/lib/esm/secrets/model/index.js.map +1 -0
  869. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
  870. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +1 -0
  871. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
  872. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +1 -0
  873. package/lib/esm/secrets/onepassword/index.js +1 -1
  874. package/lib/esm/secrets/onepassword/index.js.map +1 -0
  875. package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
  876. package/lib/esm/secrets/vault/VaultSecretService.js.map +1 -0
  877. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
  878. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +1 -0
  879. package/lib/esm/secrets/vault/index.js +1 -1
  880. package/lib/esm/secrets/vault/index.js.map +1 -0
  881. package/lib/esm/shared/runtime.js +1 -1
  882. package/lib/esm/shared/runtime.js.map +1 -0
  883. package/lib/esm/utils.js +1 -1
  884. package/lib/esm/utils.js.map +1 -0
  885. package/lib/types/graph/engine/constants.d.cts +59 -0
  886. package/lib/types/graph/engine/constants.d.mts +59 -0
  887. package/lib/types/graph/{execution → engine/execution}/GraphExecutionResult.d.cts +1 -1
  888. package/lib/types/graph/{execution → engine/execution}/GraphExecutionResult.d.mts +1 -1
  889. package/lib/types/graph/engine/index.d.cts +61 -0
  890. package/lib/types/graph/engine/index.d.mts +61 -0
  891. package/lib/types/graph/{loops → engine/loops}/ConditionExpressionEvaluator.d.cts +1 -1
  892. package/lib/types/graph/{loops → engine/loops}/ConditionExpressionEvaluator.d.mts +1 -1
  893. package/lib/types/graph/{loops → engine/loops}/GraphConditionEvaluator.d.cts +2 -1
  894. package/lib/types/graph/{loops → engine/loops}/GraphConditionEvaluator.d.mts +2 -1
  895. package/lib/types/graph/{types.d.cts → engine/types.d.cts} +12 -148
  896. package/lib/types/graph/{types.d.mts → engine/types.d.mts} +12 -148
  897. package/lib/types/graph/index.d.cts +8 -53
  898. package/lib/types/graph/index.d.mts +8 -53
  899. package/lib/types/graph/shared/constants.d.cts +53 -0
  900. package/lib/types/graph/shared/constants.d.mts +53 -0
  901. package/lib/types/graph/shared/index.d.cts +18 -0
  902. package/lib/types/graph/shared/index.d.mts +18 -0
  903. package/lib/types/graph/shared/types.d.cts +162 -0
  904. package/lib/types/graph/shared/types.d.mts +162 -0
  905. package/lib/types/index.d.cts +2 -2
  906. package/lib/types/index.d.mts +2 -2
  907. package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.cts +33 -5
  908. package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.mts +33 -5
  909. package/lib/types/nest/graph/main.d.cts +1 -0
  910. package/lib/types/nest/graph/main.d.mts +1 -0
  911. package/package.json +19 -8
  912. package/lib/cjs/graph/constants.cjs +0 -94
  913. package/lib/cjs/graph/decorators.cjs +0 -4
  914. package/lib/cjs/graph/errors/GraphCycleError.cjs +0 -20
  915. package/lib/cjs/graph/errors/GraphExecutionError.cjs +0 -27
  916. package/lib/cjs/graph/errors/GraphInputError.cjs +0 -20
  917. package/lib/cjs/graph/errors/GraphLoopLimitError.cjs +0 -20
  918. package/lib/cjs/graph/errors/GraphPinningError.cjs +0 -20
  919. package/lib/cjs/graph/errors/GraphPortError.cjs +0 -20
  920. package/lib/cjs/graph/errors/GraphStoreError.cjs +0 -20
  921. package/lib/cjs/graph/errors/GraphTopologyError.cjs +0 -20
  922. package/lib/cjs/graph/errors/index.cjs +0 -31
  923. package/lib/cjs/graph/events/GraphExecutionEvent.cjs +0 -4
  924. package/lib/cjs/graph/events/GraphExecutionEventEmitter.cjs +0 -40
  925. package/lib/cjs/graph/events/GraphExecutionEventFactory.cjs +0 -37
  926. package/lib/cjs/graph/events/GraphExecutionObserver.cjs +0 -4
  927. package/lib/cjs/graph/events/index.cjs +0 -27
  928. package/lib/cjs/graph/execution/CodeSandboxEvaluator.cjs +0 -4
  929. package/lib/cjs/graph/execution/GraphExecutionContext.cjs +0 -79
  930. package/lib/cjs/graph/execution/GraphExecutionEngine.cjs +0 -407
  931. package/lib/cjs/graph/execution/GraphExecutionFrame.cjs +0 -32
  932. package/lib/cjs/graph/execution/GraphExecutionResult.cjs +0 -30
  933. package/lib/cjs/graph/execution/GraphNodeExecutor.cjs +0 -4
  934. package/lib/cjs/graph/execution/SwitchGraphNodeExecutor.cjs +0 -103
  935. package/lib/cjs/graph/execution/index.cjs +0 -30
  936. package/lib/cjs/graph/loops/ConditionExpressionEvaluator.cjs +0 -87
  937. package/lib/cjs/graph/loops/ForeachGraphNodeExecutor.cjs +0 -84
  938. package/lib/cjs/graph/loops/GraphConditionEvaluator.cjs +0 -85
  939. package/lib/cjs/graph/loops/GraphLoopExecutionContext.cjs +0 -16
  940. package/lib/cjs/graph/loops/UntilGraphNodeExecutor.cjs +0 -76
  941. package/lib/cjs/graph/loops/WhileGraphNodeExecutor.cjs +0 -77
  942. package/lib/cjs/graph/loops/index.cjs +0 -29
  943. package/lib/cjs/graph/nodes/agent.cjs +0 -110
  944. package/lib/cjs/graph/nodes/base.cjs +0 -35
  945. package/lib/cjs/graph/nodes/category-styles.cjs +0 -38
  946. package/lib/cjs/graph/nodes/flow-control.cjs +0 -464
  947. package/lib/cjs/graph/nodes/index.cjs +0 -35
  948. package/lib/cjs/graph/nodes/triggers.cjs +0 -250
  949. package/lib/cjs/graph/pinning/GraphPinningDependencyResolver.cjs +0 -28
  950. package/lib/cjs/graph/pinning/GraphPinningMetadata.cjs +0 -20
  951. package/lib/cjs/graph/pinning/GraphPinningPolicy.cjs +0 -34
  952. package/lib/cjs/graph/pinning/GraphPinningService.cjs +0 -191
  953. package/lib/cjs/graph/pinning/index.cjs +0 -27
  954. package/lib/cjs/graph/planning/GraphExecutionPlan.cjs +0 -4
  955. package/lib/cjs/graph/planning/GraphExecutionPlanEdge.cjs +0 -4
  956. package/lib/cjs/graph/planning/GraphExecutionPlanLayer.cjs +0 -4
  957. package/lib/cjs/graph/planning/GraphExecutionPlanNode.cjs +0 -4
  958. package/lib/cjs/graph/planning/GraphExecutionPlanner.cjs +0 -197
  959. package/lib/cjs/graph/planning/GraphRelationResolver.cjs +0 -172
  960. package/lib/cjs/graph/planning/GraphTopology.cjs +0 -57
  961. package/lib/cjs/graph/planning/index.cjs +0 -30
  962. package/lib/cjs/graph/registry/GraphNodeExecutorRegistry.cjs +0 -44
  963. package/lib/cjs/graph/registry/GraphNodeExecutorResolver.cjs +0 -27
  964. package/lib/cjs/graph/registry/index.cjs +0 -25
  965. package/lib/cjs/graph/snapshots/GraphExecutionSnapshotMapper.cjs +0 -53
  966. package/lib/cjs/graph/snapshots/index.cjs +0 -24
  967. package/lib/cjs/graph/store/GraphCachedValue.cjs +0 -4
  968. package/lib/cjs/graph/store/GraphValueKey.cjs +0 -4
  969. package/lib/cjs/graph/store/GraphValueStore.cjs +0 -76
  970. package/lib/cjs/graph/store/GraphValueStoreAdapter.cjs +0 -4
  971. package/lib/cjs/graph/store/InMemoryGraphValueStoreAdapter.cjs +0 -69
  972. package/lib/cjs/graph/store/index.cjs +0 -28
  973. package/lib/cjs/graph/types.cjs +0 -4
  974. package/lib/cjs/graph/validation/GraphDefinitionValidator.cjs +0 -33
  975. package/lib/cjs/graph/validation/GraphPortSchemaResolver.cjs +0 -58
  976. package/lib/cjs/graph/validation/GraphValueValidator.cjs +0 -52
  977. package/lib/cjs/graph/validation/index.cjs +0 -26
  978. package/lib/esm/graph/constants.js +0 -106
  979. package/lib/esm/graph/decorators.js +0 -2
  980. package/lib/esm/graph/errors/GraphCycleError.js +0 -15
  981. package/lib/esm/graph/errors/GraphExecutionError.js +0 -22
  982. package/lib/esm/graph/errors/GraphInputError.js +0 -15
  983. package/lib/esm/graph/errors/GraphLoopLimitError.js +0 -15
  984. package/lib/esm/graph/errors/GraphPinningError.js +0 -15
  985. package/lib/esm/graph/errors/GraphPortError.js +0 -15
  986. package/lib/esm/graph/errors/GraphStoreError.js +0 -15
  987. package/lib/esm/graph/errors/GraphTopologyError.js +0 -15
  988. package/lib/esm/graph/errors/index.js +0 -14
  989. package/lib/esm/graph/events/GraphExecutionEvent.js +0 -2
  990. package/lib/esm/graph/events/GraphExecutionEventEmitter.js +0 -35
  991. package/lib/esm/graph/events/GraphExecutionEventFactory.js +0 -32
  992. package/lib/esm/graph/events/GraphExecutionObserver.js +0 -2
  993. package/lib/esm/graph/events/index.js +0 -10
  994. package/lib/esm/graph/execution/CodeSandboxEvaluator.js +0 -18
  995. package/lib/esm/graph/execution/GraphExecutionContext.js +0 -74
  996. package/lib/esm/graph/execution/GraphExecutionEngine.js +0 -402
  997. package/lib/esm/graph/execution/GraphExecutionFrame.js +0 -27
  998. package/lib/esm/graph/execution/GraphExecutionResult.js +0 -26
  999. package/lib/esm/graph/execution/GraphNodeExecutor.js +0 -2
  1000. package/lib/esm/graph/execution/SwitchGraphNodeExecutor.js +0 -98
  1001. package/lib/esm/graph/execution/index.js +0 -13
  1002. package/lib/esm/graph/loops/ConditionExpressionEvaluator.js +0 -82
  1003. package/lib/esm/graph/loops/ForeachGraphNodeExecutor.js +0 -79
  1004. package/lib/esm/graph/loops/GraphConditionEvaluator.js +0 -80
  1005. package/lib/esm/graph/loops/GraphLoopExecutionContext.js +0 -11
  1006. package/lib/esm/graph/loops/UntilGraphNodeExecutor.js +0 -71
  1007. package/lib/esm/graph/loops/WhileGraphNodeExecutor.js +0 -72
  1008. package/lib/esm/graph/loops/index.js +0 -12
  1009. package/lib/esm/graph/nodes/agent.js +0 -101
  1010. package/lib/esm/graph/nodes/base.js +0 -30
  1011. package/lib/esm/graph/nodes/category-styles.js +0 -34
  1012. package/lib/esm/graph/nodes/flow-control.js +0 -455
  1013. package/lib/esm/graph/nodes/index.js +0 -18
  1014. package/lib/esm/graph/nodes/triggers.js +0 -241
  1015. package/lib/esm/graph/pinning/GraphPinningDependencyResolver.js +0 -23
  1016. package/lib/esm/graph/pinning/GraphPinningMetadata.js +0 -15
  1017. package/lib/esm/graph/pinning/GraphPinningPolicy.js +0 -29
  1018. package/lib/esm/graph/pinning/GraphPinningService.js +0 -186
  1019. package/lib/esm/graph/pinning/index.js +0 -10
  1020. package/lib/esm/graph/planning/GraphExecutionPlan.js +0 -2
  1021. package/lib/esm/graph/planning/GraphExecutionPlanEdge.js +0 -7
  1022. package/lib/esm/graph/planning/GraphExecutionPlanLayer.js +0 -2
  1023. package/lib/esm/graph/planning/GraphExecutionPlanNode.js +0 -2
  1024. package/lib/esm/graph/planning/GraphExecutionPlanner.js +0 -192
  1025. package/lib/esm/graph/planning/GraphRelationResolver.js +0 -167
  1026. package/lib/esm/graph/planning/GraphTopology.js +0 -52
  1027. package/lib/esm/graph/planning/index.js +0 -13
  1028. package/lib/esm/graph/registry/GraphNodeExecutorRegistry.js +0 -39
  1029. package/lib/esm/graph/registry/GraphNodeExecutorResolver.js +0 -22
  1030. package/lib/esm/graph/registry/index.js +0 -8
  1031. package/lib/esm/graph/snapshots/GraphExecutionSnapshotMapper.js +0 -48
  1032. package/lib/esm/graph/snapshots/index.js +0 -7
  1033. package/lib/esm/graph/store/GraphCachedValue.js +0 -2
  1034. package/lib/esm/graph/store/GraphValueKey.js +0 -7
  1035. package/lib/esm/graph/store/GraphValueStore.js +0 -71
  1036. package/lib/esm/graph/store/GraphValueStoreAdapter.js +0 -2
  1037. package/lib/esm/graph/store/InMemoryGraphValueStoreAdapter.js +0 -64
  1038. package/lib/esm/graph/store/index.js +0 -11
  1039. package/lib/esm/graph/types.js +0 -2
  1040. package/lib/esm/graph/validation/GraphDefinitionValidator.js +0 -28
  1041. package/lib/esm/graph/validation/GraphPortSchemaResolver.js +0 -53
  1042. package/lib/esm/graph/validation/GraphValueValidator.js +0 -47
  1043. package/lib/esm/graph/validation/index.js +0 -9
  1044. package/lib/types/graph/constants.d.cts +0 -101
  1045. package/lib/types/graph/constants.d.mts +0 -101
  1046. /package/lib/types/graph/{decorators.d.cts → engine/decorators.d.cts} +0 -0
  1047. /package/lib/types/graph/{decorators.d.mts → engine/decorators.d.mts} +0 -0
  1048. /package/lib/types/graph/{errors → engine/errors}/GraphCycleError.d.cts +0 -0
  1049. /package/lib/types/graph/{errors → engine/errors}/GraphCycleError.d.mts +0 -0
  1050. /package/lib/types/graph/{errors → engine/errors}/GraphExecutionError.d.cts +0 -0
  1051. /package/lib/types/graph/{errors → engine/errors}/GraphExecutionError.d.mts +0 -0
  1052. /package/lib/types/graph/{errors → engine/errors}/GraphInputError.d.cts +0 -0
  1053. /package/lib/types/graph/{errors → engine/errors}/GraphInputError.d.mts +0 -0
  1054. /package/lib/types/graph/{errors → engine/errors}/GraphLoopLimitError.d.cts +0 -0
  1055. /package/lib/types/graph/{errors → engine/errors}/GraphLoopLimitError.d.mts +0 -0
  1056. /package/lib/types/graph/{errors → engine/errors}/GraphPinningError.d.cts +0 -0
  1057. /package/lib/types/graph/{errors → engine/errors}/GraphPinningError.d.mts +0 -0
  1058. /package/lib/types/graph/{errors → engine/errors}/GraphPortError.d.cts +0 -0
  1059. /package/lib/types/graph/{errors → engine/errors}/GraphPortError.d.mts +0 -0
  1060. /package/lib/types/graph/{errors → engine/errors}/GraphStoreError.d.cts +0 -0
  1061. /package/lib/types/graph/{errors → engine/errors}/GraphStoreError.d.mts +0 -0
  1062. /package/lib/types/graph/{errors → engine/errors}/GraphTopologyError.d.cts +0 -0
  1063. /package/lib/types/graph/{errors → engine/errors}/GraphTopologyError.d.mts +0 -0
  1064. /package/lib/types/graph/{errors → engine/errors}/index.d.cts +0 -0
  1065. /package/lib/types/graph/{errors → engine/errors}/index.d.mts +0 -0
  1066. /package/lib/types/graph/{events → engine/events}/GraphExecutionEvent.d.cts +0 -0
  1067. /package/lib/types/graph/{events → engine/events}/GraphExecutionEvent.d.mts +0 -0
  1068. /package/lib/types/graph/{events → engine/events}/GraphExecutionEventEmitter.d.cts +0 -0
  1069. /package/lib/types/graph/{events → engine/events}/GraphExecutionEventEmitter.d.mts +0 -0
  1070. /package/lib/types/graph/{events → engine/events}/GraphExecutionEventFactory.d.cts +0 -0
  1071. /package/lib/types/graph/{events → engine/events}/GraphExecutionEventFactory.d.mts +0 -0
  1072. /package/lib/types/graph/{events → engine/events}/GraphExecutionObserver.d.cts +0 -0
  1073. /package/lib/types/graph/{events → engine/events}/GraphExecutionObserver.d.mts +0 -0
  1074. /package/lib/types/graph/{events → engine/events}/index.d.cts +0 -0
  1075. /package/lib/types/graph/{events → engine/events}/index.d.mts +0 -0
  1076. /package/lib/types/graph/{execution → engine/execution}/CodeSandboxEvaluator.d.cts +0 -0
  1077. /package/lib/types/graph/{execution → engine/execution}/CodeSandboxEvaluator.d.mts +0 -0
  1078. /package/lib/types/graph/{execution → engine/execution}/GraphExecutionContext.d.cts +0 -0
  1079. /package/lib/types/graph/{execution → engine/execution}/GraphExecutionContext.d.mts +0 -0
  1080. /package/lib/types/graph/{execution → engine/execution}/GraphExecutionEngine.d.cts +0 -0
  1081. /package/lib/types/graph/{execution → engine/execution}/GraphExecutionEngine.d.mts +0 -0
  1082. /package/lib/types/graph/{execution → engine/execution}/GraphExecutionFrame.d.cts +0 -0
  1083. /package/lib/types/graph/{execution → engine/execution}/GraphExecutionFrame.d.mts +0 -0
  1084. /package/lib/types/graph/{execution → engine/execution}/GraphNodeExecutor.d.cts +0 -0
  1085. /package/lib/types/graph/{execution → engine/execution}/GraphNodeExecutor.d.mts +0 -0
  1086. /package/lib/types/graph/{execution → engine/execution}/SwitchGraphNodeExecutor.d.cts +0 -0
  1087. /package/lib/types/graph/{execution → engine/execution}/SwitchGraphNodeExecutor.d.mts +0 -0
  1088. /package/lib/types/graph/{execution → engine/execution}/index.d.cts +0 -0
  1089. /package/lib/types/graph/{execution → engine/execution}/index.d.mts +0 -0
  1090. /package/lib/types/graph/{loops → engine/loops}/ForeachGraphNodeExecutor.d.cts +0 -0
  1091. /package/lib/types/graph/{loops → engine/loops}/ForeachGraphNodeExecutor.d.mts +0 -0
  1092. /package/lib/types/graph/{loops → engine/loops}/GraphLoopExecutionContext.d.cts +0 -0
  1093. /package/lib/types/graph/{loops → engine/loops}/GraphLoopExecutionContext.d.mts +0 -0
  1094. /package/lib/types/graph/{loops → engine/loops}/UntilGraphNodeExecutor.d.cts +0 -0
  1095. /package/lib/types/graph/{loops → engine/loops}/UntilGraphNodeExecutor.d.mts +0 -0
  1096. /package/lib/types/graph/{loops → engine/loops}/WhileGraphNodeExecutor.d.cts +0 -0
  1097. /package/lib/types/graph/{loops → engine/loops}/WhileGraphNodeExecutor.d.mts +0 -0
  1098. /package/lib/types/graph/{loops → engine/loops}/index.d.cts +0 -0
  1099. /package/lib/types/graph/{loops → engine/loops}/index.d.mts +0 -0
  1100. /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningDependencyResolver.d.cts +0 -0
  1101. /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningDependencyResolver.d.mts +0 -0
  1102. /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningMetadata.d.cts +0 -0
  1103. /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningMetadata.d.mts +0 -0
  1104. /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningPolicy.d.cts +0 -0
  1105. /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningPolicy.d.mts +0 -0
  1106. /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningService.d.cts +0 -0
  1107. /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningService.d.mts +0 -0
  1108. /package/lib/types/graph/{pinning → engine/pinning}/index.d.cts +0 -0
  1109. /package/lib/types/graph/{pinning → engine/pinning}/index.d.mts +0 -0
  1110. /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlan.d.cts +0 -0
  1111. /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlan.d.mts +0 -0
  1112. /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanEdge.d.cts +0 -0
  1113. /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanEdge.d.mts +0 -0
  1114. /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanLayer.d.cts +0 -0
  1115. /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanLayer.d.mts +0 -0
  1116. /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanNode.d.cts +0 -0
  1117. /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanNode.d.mts +0 -0
  1118. /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanner.d.cts +0 -0
  1119. /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanner.d.mts +0 -0
  1120. /package/lib/types/graph/{planning → engine/planning}/GraphRelationResolver.d.cts +0 -0
  1121. /package/lib/types/graph/{planning → engine/planning}/GraphRelationResolver.d.mts +0 -0
  1122. /package/lib/types/graph/{planning → engine/planning}/GraphTopology.d.cts +0 -0
  1123. /package/lib/types/graph/{planning → engine/planning}/GraphTopology.d.mts +0 -0
  1124. /package/lib/types/graph/{planning → engine/planning}/index.d.cts +0 -0
  1125. /package/lib/types/graph/{planning → engine/planning}/index.d.mts +0 -0
  1126. /package/lib/types/graph/{registry → engine/registry}/GraphNodeExecutorRegistry.d.cts +0 -0
  1127. /package/lib/types/graph/{registry → engine/registry}/GraphNodeExecutorRegistry.d.mts +0 -0
  1128. /package/lib/types/graph/{registry → engine/registry}/GraphNodeExecutorResolver.d.cts +0 -0
  1129. /package/lib/types/graph/{registry → engine/registry}/GraphNodeExecutorResolver.d.mts +0 -0
  1130. /package/lib/types/graph/{registry → engine/registry}/index.d.cts +0 -0
  1131. /package/lib/types/graph/{registry → engine/registry}/index.d.mts +0 -0
  1132. /package/lib/types/graph/{snapshots → engine/snapshots}/GraphExecutionSnapshotMapper.d.cts +0 -0
  1133. /package/lib/types/graph/{snapshots → engine/snapshots}/GraphExecutionSnapshotMapper.d.mts +0 -0
  1134. /package/lib/types/graph/{snapshots → engine/snapshots}/index.d.cts +0 -0
  1135. /package/lib/types/graph/{snapshots → engine/snapshots}/index.d.mts +0 -0
  1136. /package/lib/types/graph/{store → engine/store}/GraphCachedValue.d.cts +0 -0
  1137. /package/lib/types/graph/{store → engine/store}/GraphCachedValue.d.mts +0 -0
  1138. /package/lib/types/graph/{store → engine/store}/GraphValueKey.d.cts +0 -0
  1139. /package/lib/types/graph/{store → engine/store}/GraphValueKey.d.mts +0 -0
  1140. /package/lib/types/graph/{store → engine/store}/GraphValueStore.d.cts +0 -0
  1141. /package/lib/types/graph/{store → engine/store}/GraphValueStore.d.mts +0 -0
  1142. /package/lib/types/graph/{store → engine/store}/GraphValueStoreAdapter.d.cts +0 -0
  1143. /package/lib/types/graph/{store → engine/store}/GraphValueStoreAdapter.d.mts +0 -0
  1144. /package/lib/types/graph/{store → engine/store}/InMemoryGraphValueStoreAdapter.d.cts +0 -0
  1145. /package/lib/types/graph/{store → engine/store}/InMemoryGraphValueStoreAdapter.d.mts +0 -0
  1146. /package/lib/types/graph/{store → engine/store}/index.d.cts +0 -0
  1147. /package/lib/types/graph/{store → engine/store}/index.d.mts +0 -0
  1148. /package/lib/types/graph/{validation → engine/validation}/GraphDefinitionValidator.d.cts +0 -0
  1149. /package/lib/types/graph/{validation → engine/validation}/GraphDefinitionValidator.d.mts +0 -0
  1150. /package/lib/types/graph/{validation → engine/validation}/GraphPortSchemaResolver.d.cts +0 -0
  1151. /package/lib/types/graph/{validation → engine/validation}/GraphPortSchemaResolver.d.mts +0 -0
  1152. /package/lib/types/graph/{validation → engine/validation}/GraphValueValidator.d.cts +0 -0
  1153. /package/lib/types/graph/{validation → engine/validation}/GraphValueValidator.d.mts +0 -0
  1154. /package/lib/types/graph/{validation → engine/validation}/index.d.cts +0 -0
  1155. /package/lib/types/graph/{validation → engine/validation}/index.d.mts +0 -0
  1156. /package/lib/types/graph/{nodes → shared/nodes}/agent.d.cts +0 -0
  1157. /package/lib/types/graph/{nodes → shared/nodes}/agent.d.mts +0 -0
  1158. /package/lib/types/graph/{nodes → shared/nodes}/base.d.cts +0 -0
  1159. /package/lib/types/graph/{nodes → shared/nodes}/base.d.mts +0 -0
  1160. /package/lib/types/graph/{nodes → shared/nodes}/category-styles.d.cts +0 -0
  1161. /package/lib/types/graph/{nodes → shared/nodes}/category-styles.d.mts +0 -0
  1162. /package/lib/types/graph/{nodes → shared/nodes}/flow-control.d.cts +0 -0
  1163. /package/lib/types/graph/{nodes → shared/nodes}/flow-control.d.mts +0 -0
  1164. /package/lib/types/graph/{nodes → shared/nodes}/index.d.cts +0 -0
  1165. /package/lib/types/graph/{nodes → shared/nodes}/index.d.mts +0 -0
  1166. /package/lib/types/graph/{nodes → shared/nodes}/triggers.d.cts +0 -0
  1167. /package/lib/types/graph/{nodes → shared/nodes}/triggers.d.mts +0 -0
@@ -71,5 +71,5 @@ exports.User = User = __decorate([
71
71
  (0, decorator_validation_1.model)(),
72
72
  __metadata("design:paramtypes", [Object])
73
73
  ], User);
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uYW1lc3BhY2VzL21vZGVscy91c2VyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxFQUFFLEVBQ0YsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsSUFBSSxHQUNMLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxzQkFBaUI7QUFDeEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlDQUE4QjtBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUl6RCxJQUFNLElBQUksR0FBVixNQUFNLElBQUssU0FBUSxrQkFBa0I7SUFnQzFDLFlBQVksSUFBYztRQUN4QixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDZCxDQUFDO0NBQ0YsQ0FBQTtBQWhDQztJQUZDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNwQixJQUFJLEVBQUU7O2dDQUNLO0FBS1o7SUFIQyxNQUFNLEVBQUU7SUFDUixJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ1osTUFBTSxFQUFFOzttQ0FDTTtBQUtmO0lBSEMsTUFBTSxFQUFFO0lBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNaLE1BQU0sRUFBRTs7bUNBQ007QUFLZjtJQUhDLFFBQVEsRUFBRTtJQUNWLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDWixNQUFNLEVBQUU7O3lDQUNZO0FBR3JCO0lBREMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixFQUFFLFlBQVksRUFBRSxLQUFLLENBQUM7OytDQUNMO0FBR2xEO0lBREMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLFlBQVksRUFBRSxLQUFLLENBQUM7O2dEQUNKO0FBR3BEO0lBREMsU0FBUyxFQUFFOzhCQUNBLElBQUk7dUNBQUM7QUFHakI7SUFEQyxTQUFTLEVBQUU7OEJBQ0EsSUFBSTt1Q0FBQztBQTlCTixJQUFJO0lBRmhCLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFDZCxLQUFLLEVBQUU7O0dBQ0ssSUFBSSxDQW1DaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjb2x1bW4sXG4gIGNyZWF0ZWRBdCxcbiAgb25lVG9NYW55LFxuICBwayxcbiAgdGFibGUsXG4gIHVuaXF1ZSxcbiAgdXBkYXRlZEF0LFxuICB1dWlkLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IG1vZGVsLCByZXF1aXJlZCwgdHlwZSB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IFJFTF9SRVNUUklDVCB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgQXV0aG9yaXphdGlvbk1vZGVsIH0gZnJvbSBcIi4vYXV0aG9yaXphdGlvbi1tb2RlbFwiO1xuaW1wb3J0IHsgVGVuYW50TWVtYmVyc2hpcCB9IGZyb20gXCIuL3RlbmFudC1tZW1iZXJzaGlwLm1vZGVsXCI7XG5pbXBvcnQgeyBPcmdVbml0TWVtYmVyc2hpcCB9IGZyb20gXCIuL29yZy11bml0LW1lbWJlcnNoaXAubW9kZWxcIjtcblxuQHRhYmxlKFwidXNlcnNcIilcbkBtb2RlbCgpXG5leHBvcnQgY2xhc3MgVXNlciBleHRlbmRzIEF1dGhvcml6YXRpb25Nb2RlbCB7XG4gIEBwayh7IHR5cGU6IFN0cmluZyB9KVxuICBAdXVpZCgpXG4gIGlkITogc3RyaW5nO1xuXG4gIEB1bmlxdWUoKVxuICBAdHlwZShTdHJpbmcpXG4gIEBjb2x1bW4oKVxuICBlbWFpbD86IHN0cmluZztcblxuICBAdW5pcXVlKClcbiAgQHR5cGUoU3RyaW5nKVxuICBAY29sdW1uKClcbiAgcGhvbmU/OiBzdHJpbmc7XG5cbiAgQHJlcXVpcmVkKClcbiAgQHR5cGUoU3RyaW5nKVxuICBAY29sdW1uKClcbiAgZGlzcGxheU5hbWUhOiBzdHJpbmc7XG5cbiAgQG9uZVRvTWFueSgoKSA9PiBUZW5hbnRNZW1iZXJzaGlwLCBSRUxfUkVTVFJJQ1QsIGZhbHNlKVxuICB0ZW5hbnRNZW1iZXJzaGlwcz86IFRlbmFudE1lbWJlcnNoaXBbXSB8IHN0cmluZ1tdO1xuXG4gIEBvbmVUb01hbnkoKCkgPT4gT3JnVW5pdE1lbWJlcnNoaXAsIFJFTF9SRVNUUklDVCwgZmFsc2UpXG4gIG9yZ1VuaXRNZW1iZXJzaGlwcz86IE9yZ1VuaXRNZW1iZXJzaGlwW10gfCBzdHJpbmdbXTtcblxuICBAY3JlYXRlZEF0KClcbiAgY3JlYXRlZEF0ITogRGF0ZTtcblxuICBAdXBkYXRlZEF0KClcbiAgdXBkYXRlZEF0ITogRGF0ZTtcblxuICBjb25zdHJ1Y3RvcihkYXRhPzogdW5rbm93bikge1xuICAgIHN1cGVyKGRhdGEpO1xuICB9XG59XG4iXX0=
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInVzZXIubW9kZWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENB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LENBQUM7SUFDUCxJQUFBLGdCQUFTLEdBQUU7SUFDWCxVQUFVLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQztDQUNsQyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDeEMsZUFBQSxJQUFJLEdBQUcsVUFBVSxDQUFDO0lBQ2QsSUFBQSxZQUFLLEVBQUMsT0FBTyxDQUFDO0lBQ2QsSUFBQSw0QkFBSyxHQUFFO0lBQ1AsVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7Q0FDNUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVULHNsR0FBc2xHIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fZGVjb3JhdGUgPSAodGhpcyAmJiB0aGlzLl9fZGVjb3JhdGUpIHx8IGZ1bmN0aW9uIChkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcbiAgICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XG59O1xudmFyIF9fbWV0YWRhdGEgPSAodGhpcyAmJiB0aGlzLl9fbWV0YWRhdGEpIHx8IGZ1bmN0aW9uIChrLCB2KSB7XG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKGssIHYpO1xufTtcbmltcG9ydCB7IGNvbHVtbiwgY3JlYXRlZEF0LCBvbmVUb01hbnksIHBrLCB0YWJsZSwgdW5pcXVlLCB1cGRhdGVkQXQsIHV1aWQsIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBtb2RlbCwgcmVxdWlyZWQsIHR5cGUgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBSRUxfUkVTVFJJQ1QgfSBmcm9tIFwiLi8uLi91dGlscy5qc1wiO1xuaW1wb3J0IHsgQXV0aG9yaXphdGlvbk1vZGVsIH0gZnJvbSBcIi4vYXV0aG9yaXphdGlvbi1tb2RlbC5qc1wiO1xuaW1wb3J0IHsgVGVuYW50TWVtYmVyc2hpcCB9IGZyb20gXCIuL3RlbmFudC1tZW1iZXJzaGlwLm1vZGVsXCI7XG5pbXBvcnQgeyBPcmdVbml0TWVtYmVyc2hpcCB9IGZyb20gXCIuL29yZy11bml0LW1lbWJlcnNoaXAubW9kZWxcIjtcbmxldCBVc2VyID0gY2xhc3MgVXNlciBleHRlbmRzIEF1dGhvcml6YXRpb25Nb2RlbCB7XG4gICAgY29uc3RydWN0b3IoZGF0YSkge1xuICAgICAgICBzdXBlcihkYXRhKTtcbiAgICB9XG59O1xuX19kZWNvcmF0ZShbXG4gICAgcGsoeyB0eXBlOiBTdHJpbmcgfSksXG4gICAgdXVpZCgpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBVc2VyLnByb3RvdHlwZSwgXCJpZFwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgdW5pcXVlKCksXG4gICAgdHlwZShTdHJpbmcpLFxuICAgIGNvbHVtbigpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBVc2VyLnByb3RvdHlwZSwgXCJlbWFpbFwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgdW5pcXVlKCksXG4gICAgdHlwZShTdHJpbmcpLFxuICAgIGNvbHVtbigpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBVc2VyLnByb3RvdHlwZSwgXCJwaG9uZVwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgcmVxdWlyZWQoKSxcbiAgICB0eXBlKFN0cmluZyksXG4gICAgY29sdW1uKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIFVzZXIucHJvdG90eXBlLCBcImRpc3BsYXlOYW1lXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICBvbmVUb01hbnkoKCkgPT4gVGVuYW50TWVtYmVyc2hpcCwgUkVMX1JFU1RSSUNULCBmYWxzZSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEFycmF5KVxuXSwgVXNlci5wcm90b3R5cGUsIFwidGVuYW50TWVtYmVyc2hpcHNcIiwgdm9pZCAwKTtcbl9fZGVjb3JhdGUoW1xuICAgIG9uZVRvTWFueSgoKSA9PiBPcmdVbml0TWVtYmVyc2hpcCwgUkVMX1JFU1RSSUNULCBmYWxzZSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEFycmF5KVxuXSwgVXNlci5wcm90b3R5cGUsIFwib3JnVW5pdE1lbWJlcnNoaXBzXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICBjcmVhdGVkQXQoKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRGF0ZSlcbl0sIFVzZXIucHJvdG90eXBlLCBcImNyZWF0ZWRBdFwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgdXBkYXRlZEF0KCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIERhdGUpXG5dLCBVc2VyLnByb3RvdHlwZSwgXCJ1cGRhdGVkQXRcIiwgdm9pZCAwKTtcblVzZXIgPSBfX2RlY29yYXRlKFtcbiAgICB0YWJsZShcInVzZXJzXCIpLFxuICAgIG1vZGVsKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtPYmplY3RdKVxuXSwgVXNlcik7XG5leHBvcnQgeyBVc2VyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkWE5sY2k1dGIyUmxiQzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMM055WXk5dVlXMWxjM0JoWTJWekwyMXZaR1ZzY3k5MWMyVnlMbTF2WkdWc0xuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096dEJRVUZCTEU5QlFVOHNSVUZEVEN4TlFVRk5MRVZCUTA0c1UwRkJVeXhGUVVOVUxGTkJRVk1zUlVGRFZDeEZRVUZGTEVWQlEwWXNTMEZCU3l4RlFVTk1MRTFCUVUwc1JVRkRUaXhUUVVGVExFVkJRMVFzU1VGQlNTeEhRVU5NTEUxQlFVMHNaMEpCUVdkQ0xFTkJRVU03UVVGRGVFSXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJSU3hSUVVGUkxFVkJRVVVzU1VGQlNTeEZRVUZGTEUxQlFVMHNaME5CUVdkRExFTkJRVU03UVVGRGRrVXNUMEZCVHl4RlFVRkZMRmxCUVZrc1JVRkJSU3h6UWtGQmFVSTdRVUZEZUVNc1QwRkJUeXhGUVVGRkxHdENRVUZyUWl4RlFVRkZMR2xEUVVFNFFqdEJRVU16UkN4UFFVRlBMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNUVUZCVFN3eVFrRkJNa0lzUTBGQlF6dEJRVU0zUkN4UFFVRlBMRVZCUVVVc2FVSkJRV2xDTEVWQlFVVXNUVUZCVFN3MlFrRkJOa0lzUTBGQlF6dEJRVWw2UkN4SlFVRk5MRWxCUVVrc1IwRkJWaXhOUVVGTkxFbEJRVXNzVTBGQlVTeHJRa0ZCYTBJN1NVRm5RekZETEZsQlFWa3NTVUZCWXp0UlFVTjRRaXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTVUZEWkN4RFFVRkRPME5CUTBZc1EwRkJRVHRCUVdoRFF6dEpRVVpETEVWQlFVVXNRMEZCUXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hOUVVGTkxFVkJRVVVzUTBGQlF6dEpRVU53UWl4SlFVRkpMRVZCUVVVN08yZERRVU5MTzBGQlMxbzdTVUZJUXl4TlFVRk5MRVZCUVVVN1NVRkRVaXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETzBsQlExb3NUVUZCVFN4RlFVRkZPenR0UTBGRFRUdEJRVXRtTzBsQlNFTXNUVUZCVFN4RlFVRkZPMGxCUTFJc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF6dEpRVU5hTEUxQlFVMHNSVUZCUlRzN2JVTkJRMDA3UVVGTFpqdEpRVWhETEZGQlFWRXNSVUZCUlR0SlFVTldMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU03U1VGRFdpeE5RVUZOTEVWQlFVVTdPM2xEUVVOWk8wRkJSM0pDTzBsQlJFTXNVMEZCVXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExHZENRVUZuUWl4RlFVRkZMRmxCUVZrc1JVRkJSU3hMUVVGTExFTkJRVU03T3l0RFFVTk1PMEZCUjJ4RU8wbEJSRU1zVTBGQlV5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMR2xDUVVGcFFpeEZRVUZGTEZsQlFWa3NSVUZCUlN4TFFVRkxMRU5CUVVNN08yZEVRVU5LTzBGQlIzQkVPMGxCUkVNc1UwRkJVeXhGUVVGRk96aENRVU5CTEVsQlFVazdkVU5CUVVNN1FVRkhha0k3U1VGRVF5eFRRVUZUTEVWQlFVVTdPRUpCUTBFc1NVRkJTVHQxUTBGQlF6dEJRVGxDVGl4SlFVRkpPMGxCUm1oQ0xFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTTdTVUZEWkN4TFFVRkxMRVZCUVVVN08wZEJRMHNzU1VGQlNTeERRVzFEYUVJaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2UxeHVJQ0JqYjJ4MWJXNHNYRzRnSUdOeVpXRjBaV1JCZEN4Y2JpQWdiMjVsVkc5TllXNTVMRnh1SUNCd2F5eGNiaUFnZEdGaWJHVXNYRzRnSUhWdWFYRjFaU3hjYmlBZ2RYQmtZWFJsWkVGMExGeHVJQ0IxZFdsa0xGeHVmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMk52Y21WY0lqdGNibWx0Y0c5eWRDQjdJRzF2WkdWc0xDQnlaWEYxYVhKbFpDd2dkSGx3WlNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHVmpiM0poZEc5eUxYWmhiR2xrWVhScGIyNWNJanRjYm1sdGNHOXlkQ0I3SUZKRlRGOVNSVk5VVWtsRFZDQjlJR1p5YjIwZ1hDSXVMaTkxZEdsc2Mxd2lPMXh1YVcxd2IzSjBJSHNnUVhWMGFHOXlhWHBoZEdsdmJrMXZaR1ZzSUgwZ1puSnZiU0JjSWk0dllYVjBhRzl5YVhwaGRHbHZiaTF0YjJSbGJGd2lPMXh1YVcxd2IzSjBJSHNnVkdWdVlXNTBUV1Z0WW1WeWMyaHBjQ0I5SUdaeWIyMGdYQ0l1TDNSbGJtRnVkQzF0WlcxaVpYSnphR2x3TG0xdlpHVnNYQ0k3WEc1cGJYQnZjblFnZXlCUGNtZFZibWwwVFdWdFltVnljMmhwY0NCOUlHWnliMjBnWENJdUwyOXlaeTExYm1sMExXMWxiV0psY25Ob2FYQXViVzlrWld4Y0lqdGNibHh1UUhSaFlteGxLRndpZFhObGNuTmNJaWxjYmtCdGIyUmxiQ2dwWEc1bGVIQnZjblFnWTJ4aGMzTWdWWE5sY2lCbGVIUmxibVJ6SUVGMWRHaHZjbWw2WVhScGIyNU5iMlJsYkNCN1hHNGdJRUJ3YXloN0lIUjVjR1U2SUZOMGNtbHVaeUI5S1Z4dUlDQkFkWFZwWkNncFhHNGdJR2xrSVRvZ2MzUnlhVzVuTzF4dVhHNGdJRUIxYm1seGRXVW9LVnh1SUNCQWRIbHdaU2hUZEhKcGJtY3BYRzRnSUVCamIyeDFiVzRvS1Z4dUlDQmxiV0ZwYkQ4NklITjBjbWx1Wnp0Y2JseHVJQ0JBZFc1cGNYVmxLQ2xjYmlBZ1FIUjVjR1VvVTNSeWFXNW5LVnh1SUNCQVkyOXNkVzF1S0NsY2JpQWdjR2h2Ym1VL09pQnpkSEpwYm1jN1hHNWNiaUFnUUhKbGNYVnBjbVZrS0NsY2JpQWdRSFI1Y0dVb1UzUnlhVzVuS1Z4dUlDQkFZMjlzZFcxdUtDbGNiaUFnWkdsemNHeGhlVTVoYldVaE9pQnpkSEpwYm1jN1hHNWNiaUFnUUc5dVpWUnZUV0Z1ZVNnb0tTQTlQaUJVWlc1aGJuUk5aVzFpWlhKemFHbHdMQ0JTUlV4ZlVrVlRWRkpKUTFRc0lHWmhiSE5sS1Z4dUlDQjBaVzVoYm5STlpXMWlaWEp6YUdsd2N6ODZJRlJsYm1GdWRFMWxiV0psY25Ob2FYQmJYU0I4SUhOMGNtbHVaMXRkTzF4dVhHNGdJRUJ2Ym1WVWIwMWhibmtvS0NrZ1BUNGdUM0puVlc1cGRFMWxiV0psY25Ob2FYQXNJRkpGVEY5U1JWTlVVa2xEVkN3Z1ptRnNjMlVwWEc0Z0lHOXlaMVZ1YVhSTlpXMWlaWEp6YUdsd2N6ODZJRTl5WjFWdWFYUk5aVzFpWlhKemFHbHdXMTBnZkNCemRISnBibWRiWFR0Y2JseHVJQ0JBWTNKbFlYUmxaRUYwS0NsY2JpQWdZM0psWVhSbFpFRjBJVG9nUkdGMFpUdGNibHh1SUNCQWRYQmtZWFJsWkVGMEtDbGNiaUFnZFhCa1lYUmxaRUYwSVRvZ1JHRjBaVHRjYmx4dUlDQmpiMjV6ZEhKMVkzUnZjaWhrWVhSaFB6b2dkVzVyYm05M2Jpa2dlMXh1SUNBZ0lITjFjR1Z5S0dSaGRHRXBPMXh1SUNCOVhHNTlYRzRpWFgwPSJdfQ==
74
+ //# sourceMappingURL=user.model.js.map
75
+ //# sourceMappingURL=user.model.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespaces/models/user.model.cjs","sourceRoot":"","sources":["namespaces/models/user.model.js"],"names":[],"mappings":"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"}
@@ -181,7 +181,10 @@ class BaseModelService extends core_1.ModelService {
181
181
  return this.repo.findOneBy(key, value, ...args);
182
182
  }
183
183
  async findManyBy(key, value, ...args) {
184
- return this.repo.select().where({ [key]: value }).execute(...args);
184
+ return this.repo
185
+ .select()
186
+ .where({ [key]: value })
187
+ .execute(...args);
185
188
  }
186
189
  async listAll(...args) {
187
190
  return this.repo.select().execute(...args);
@@ -198,6 +201,7 @@ class AuthzService {
198
201
  constructor(dataSources = {}) {
199
202
  this.dataSources = dataSources;
200
203
  }
204
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
201
205
  async canAccess(input, ...args) {
202
206
  const at = input.at ?? new Date();
203
207
  if (input.scopeKind && input.scopeId) {
@@ -242,7 +246,9 @@ class AuthzService {
242
246
  throw new core_1.AuthorizationError(`Access denied for ${input.permissionKey} on ${input.resourceProtectedId ?? scopeKey(input.scopeKind ?? exports.ScopeKind.Resource, input.scopeId ?? "")}`);
243
247
  }
244
248
  }
245
- async buildAccessContext(tenantId, principalId, ...args) {
249
+ async buildAccessContext(tenantId, principalId,
250
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
251
+ ...args) {
246
252
  const permissions = toArray(await this.dataSources.listEffectivePermissions?.(tenantId, principalId));
247
253
  const grants = toArray(await this.dataSources.listPrincipalGrants?.(tenantId, principalId));
248
254
  return buildAccessContext({
@@ -282,5 +288,5 @@ class AuthzService {
282
288
  }
283
289
  }
284
290
  exports.AuthzService = AuthzService;
285
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnLWJhc2VkLWF1dGhvcml6YXRpb24tc3lzdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25hbWVzcGFjZXMvb3JnLWJhc2VkLWF1dGhvcml6YXRpb24tc3lzdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFjLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3RHLE1BQU0sQ0FBTixJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDdkIsa0NBQWlCLENBQUE7SUFDakIsa0NBQWlCLENBQUE7SUFDakIsOEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFKVyxhQUFhLEtBQWIsYUFBYSxRQUl4QjtBQUVELE1BQU0sQ0FBTixJQUFZLGdCQUtYO0FBTEQsV0FBWSxnQkFBZ0I7SUFDMUIsdUNBQW1CLENBQUE7SUFDbkIscUNBQWlCLENBQUE7SUFDakIsMkNBQXVCLENBQUE7SUFDdkIsdUNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUxXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFLM0I7QUFFRCxNQUFNLENBQU4sSUFBWSxhQU1YO0FBTkQsV0FBWSxhQUFhO0lBQ3ZCLDhCQUFhLENBQUE7SUFDYixnQ0FBZSxDQUFBO0lBQ2YsbURBQWtDLENBQUE7SUFDbEMsZ0NBQWUsQ0FBQTtJQUNmLG1DQUFrQixDQUFBO0FBQ3BCLENBQUMsRUFOVyxhQUFhLEtBQWIsYUFBYSxRQU14QjtBQUVELE1BQU0sQ0FBTixJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDbkIsOEJBQWlCLENBQUE7SUFDakIsaUNBQW9CLENBQUE7SUFDcEIsa0NBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUpXLFNBQVMsS0FBVCxTQUFTLFFBSXBCO0FBRUQsTUFBTSxDQUFOLElBQVksa0JBYVg7QUFiRCxXQUFZLGtCQUFrQjtJQUM1QixxQ0FBZSxDQUFBO0lBQ2Ysa0RBQTRCLENBQUE7SUFD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S0FBSyxDQUFDLGFBQWEsS0FBSyxhQUFhLENBQUM7YUFDeEQsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEMsT0FBTyxpQkFBaUIsQ0FBQztZQUN2QixRQUFRO1lBQ1IsV0FBVztZQUNYLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsa0JBQWtCO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQUVELE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhvcml6YXRpb25FcnJvciwgQ2FzY2FkZSwgTW9kZWxTZXJ2aWNlLCBSZXBvc2l0b3J5LCB0cmFuc2FjdGlvbmFsIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcblxuZXhwb3J0IGVudW0gSXNvbGF0aW9uVGllciB7XG4gIFBvb2xlZCA9IFwicG9vbGVkXCIsXG4gIEJyaWRnZSA9IFwiYnJpZGdlXCIsXG4gIFNpbG8gPSBcInNpbG9cIixcbn1cblxuZXhwb3J0IGVudW0gTWVtYmVyc2hpcFN0YXR1cyB7XG4gIEludml0ZWQgPSBcImludml0ZWRcIixcbiAgQWN0aXZlID0gXCJhY3RpdmVcIixcbiAgU3VzcGVuZGVkID0gXCJzdXNwZW5kZWRcIixcbiAgUmVtb3ZlZCA9IFwicmVtb3ZlZFwiLFxufVxuXG5leHBvcnQgZW51bSBQcmluY2lwYWxLaW5kIHtcbiAgVXNlciA9IFwidXNlclwiLFxuICBHcm91cCA9IFwiZ3JvdXBcIixcbiAgU2VydmljZUFjY291bnQgPSBcInNlcnZpY2VfYWNjb3VudFwiLFxuICBBZ2VudCA9IFwiYWdlbnRcIixcbiAgQXBpS2V5ID0gXCJhcGlfa2V5XCIsXG59XG5cbmV4cG9ydCBlbnVtIFNjb3BlS2luZCB7XG4gIFRlbmFudCA9IFwidGVuYW50XCIsXG4gIE9yZ1VuaXQgPSBcIm9yZ191bml0XCIsXG4gIFJlc291cmNlID0gXCJyZXNvdXJjZVwiLFxufVxuXG5leHBvcnQgZW51bSBQZXJtaXNzaW9uQ2F0ZWdvcnkge1xuICBBZG1pbiA9IFwiYWRtaW5cIixcbiAgQ29udGVudFJlYWQgPSBcImNvbnRlbnRfcmVhZFwiLFxuICBDb250ZW50V3JpdGUgPSBcImNvbnRlbnRfd3JpdGVcIixcbiAgTWVtb3J5ID0gXCJtZW1vcnlcIixcbiAgR3JhcGggPSBcImdyYXBoXCIsXG4gIFZlY3RvciA9IFwidmVjdG9yXCIsXG4gIEV4cG9ydCA9IFwiZXhwb3J0XCIsXG4gIEJpbGxpbmcgPSBcImJpbGxpbmdcIixcbiAgQXVkaXQgPSBcImF1ZGl0XCIsXG4gIFNlY3VyaXR5ID0gXCJzZWN1cml0eVwiLFxuICBEYXRhID0gXCJkYXRhXCIsXG4gIEF1dG9tYXRpb24gPSBcImF1dG9tYXRpb25cIixcbn1cblxuZXhwb3J0IGVudW0gUmVzb3VyY2VWaXNpYmlsaXR5IHtcbiAgUHJpdmF0ZSA9IFwicHJpdmF0ZVwiLFxuICBSZXNvdXJjZUFjbCA9IFwicmVzb3VyY2VfYWNsXCIsXG4gIE9yZ1VuaXQgPSBcIm9yZ191bml0XCIsXG4gIE9yZ1N1YnRyZWUgPSBcIm9yZ19zdWJ0cmVlXCIsXG4gIFRlbmFudCA9IFwidGVuYW50XCIsXG59XG5cbmV4cG9ydCBlbnVtIFN0b3JhZ2VLaW5kIHtcbiAgUG9zdGdyZXMgPSBcInBvc3RncmVzXCIsXG4gIEFyYW5nbyA9IFwiYXJhbmdvXCIsXG4gIFFkcmFudCA9IFwicWRyYW50XCIsXG4gIE9iamVjdFN0b3JhZ2UgPSBcIm9iamVjdF9zdG9yYWdlXCIsXG59XG5cbmV4cG9ydCBlbnVtIFN0b3JhZ2VCaW5kaW5nS2luZCB7XG4gIFNoYXJlZCA9IFwic2hhcmVkXCIsXG4gIERlZGljYXRlZCA9IFwiZGVkaWNhdGVkXCIsXG59XG5cbmV4cG9ydCBjb25zdCBJc29sYXRpb25UaWVyT3B0aW9ucyA9IE9iamVjdC52YWx1ZXMoSXNvbGF0aW9uVGllcik7XG5leHBvcnQgY29uc3QgTWVtYmVyc2hpcFN0YXR1c09wdGlvbnMgPSBPYmplY3QudmFsdWVzKE1lbWJlcnNoaXBTdGF0dXMpO1xuZXhwb3J0IGNvbnN0IFByaW5jaXBhbEtpbmRPcHRpb25zID0gT2JqZWN0LnZhbHVlcyhQcmluY2lwYWxLaW5kKTtcbmV4cG9ydCBjb25zdCBTY29wZUtpbmRPcHRpb25zID0gT2JqZWN0LnZhbHVlcyhTY29wZUtpbmQpO1xuZXhwb3J0IGNvbnN0IFBlcm1pc3Npb25DYXRlZ29yeU9wdGlvbnMgPSBPYmplY3QudmFsdWVzKFBlcm1pc3Npb25DYXRlZ29yeSk7XG5leHBvcnQgY29uc3QgUmVzb3VyY2VWaXNpYmlsaXR5T3B0aW9ucyA9IE9iamVjdC52YWx1ZXMoUmVzb3VyY2VWaXNpYmlsaXR5KTtcbmV4cG9ydCBjb25zdCBTdG9yYWdlS2luZE9wdGlvbnMgPSBPYmplY3QudmFsdWVzKFN0b3JhZ2VLaW5kKTtcbmV4cG9ydCBjb25zdCBTdG9yYWdlQmluZGluZ0tpbmRPcHRpb25zID0gT2JqZWN0LnZhbHVlcyhTdG9yYWdlQmluZGluZ0tpbmQpO1xuXG5leHBvcnQgY29uc3QgUkVMX1JFU1RSSUNUID0ge1xuICB1cGRhdGU6IENhc2NhZGUuTk9ORSxcbiAgZGVsZXRlOiBDYXNjYWRlLk5PTkUsXG4gIG51bGxhYmxlOiBmYWxzZSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBSRUxfTlVMTElGWSA9IHtcbiAgdXBkYXRlOiBDYXNjYWRlLk5PTkUsXG4gIGRlbGV0ZTogQ2FzY2FkZS5OT05FLFxuICBudWxsYWJsZTogdHJ1ZSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBSRUxfQ0FTQ0FERV9ERVBFTkRFTlQgPSB7XG4gIHVwZGF0ZTogQ2FzY2FkZS5DQVNDQURFLFxuICBkZWxldGU6IENhc2NhZGUuQ0FTQ0FERSxcbiAgbnVsbGFibGU6IGZhbHNlLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IFJFTF9DQVNDQURFX0lOU0VSVF9VUERBVEUgPSB7XG4gIHVwZGF0ZTogQ2FzY2FkZS5DQVNDQURFLFxuICBkZWxldGU6IENhc2NhZGUuTk9ORSxcbiAgbnVsbGFibGU6IGZhbHNlLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgVHhBcmdzID0gYW55W107XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlVGVuYW50SW5wdXQge1xuICBzbHVnOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgaXNvbGF0aW9uVGllcj86IElzb2xhdGlvblRpZXI7XG4gIHByb2ZpbGVLZXk/OiBzdHJpbmc7XG4gIHByb2ZpbGVNZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVVzZXJJbnB1dCB7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBwaG9uZT86IHN0cmluZztcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVPcmdVbml0SW5wdXQge1xuICB0ZW5hbnRJZDogc3RyaW5nO1xuICBwYXJlbnRPcmdVbml0SWQ/OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgcHJvZmlsZUtleT86IHN0cmluZztcbiAgcHJvZmlsZU1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlUm9sZUlucHV0IHtcbiAgdGVuYW50SWQ/OiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVBlcm1pc3Npb25JbnB1dCB7XG4gIGtleTogc3RyaW5nO1xuICBjYXRlZ29yeTogUGVybWlzc2lvbkNhdGVnb3J5O1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3NpZ25Sb2xlSW5wdXQge1xuICB0ZW5hbnRJZDogc3RyaW5nO1xuICBwcmluY2lwYWxJZDogc3RyaW5nO1xuICByb2xlSWQ6IHN0cmluZztcbiAgc2NvcGVLaW5kOiBTY29wZUtpbmQ7XG4gIHNjb3BlSWQ6IHN0cmluZztcbiAgaW5oZXJpdERvd24/OiBib29sZWFuO1xuICBzdGFydHNBdD86IERhdGU7XG4gIGV4cGlyZXNBdD86IERhdGU7XG4gIGNvbmRpdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RlclJlc291cmNlSW5wdXQge1xuICB0ZW5hbnRJZDogc3RyaW5nO1xuICBvcmdVbml0SWQ6IHN0cmluZztcbiAgcmVzb3VyY2VUeXBlOiBzdHJpbmc7XG4gIHJlc291cmNlSWQ6IHN0cmluZztcbiAgdmlzaWJpbGl0eTogUmVzb3VyY2VWaXNpYmlsaXR5O1xuICBvd25lclByaW5jaXBhbElkPzogc3RyaW5nO1xuICBzZW5zaXRpdml0eT86IHN0cmluZztcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcmFudFJlc291cmNlSW5wdXQge1xuICB0ZW5hbnRJZDogc3RyaW5nO1xuICByZXNvdXJjZUlkOiBzdHJpbmc7XG4gIHByaW5jaXBhbElkOiBzdHJpbmc7XG4gIHBlcm1pc3Npb25LZXk6IHN0cmluZztcbiAgc3RhcnRzQXQ/OiBEYXRlO1xuICBleHBpcmVzQXQ/OiBEYXRlO1xuICBjb25kaXRpb25zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNyZWF0ZWRCeVByaW5jaXBhbElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbkFjY2Vzc0lucHV0IHtcbiAgdGVuYW50SWQ6IHN0cmluZztcbiAgcHJpbmNpcGFsSWQ6IHN0cmluZztcbiAgcGVybWlzc2lvbktleTogc3RyaW5nO1xuICByZXNvdXJjZVByb3RlY3RlZElkPzogc3RyaW5nO1xuICBzY29wZUtpbmQ/OiBTY29wZUtpbmQ7XG4gIHNjb3BlSWQ/OiBzdHJpbmc7XG4gIGF0PzogRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3NDb250ZXh0IHtcbiAgdGVuYW50SWQ6IHN0cmluZztcbiAgcHJpbmNpcGFsSWQ6IHN0cmluZztcbiAgcGVybWlzc2lvbnNCeVNjb3BlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT47XG4gIGFsbG93ZWRPcmdVbml0SWRzQnlQZXJtaXNzaW9uOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT47XG4gIHJlc291cmNlR3JhbnRzOiBBcnJheTx7IHJlc291cmNlSWQ6IHN0cmluZzsgcGVybWlzc2lvbktleTogc3RyaW5nIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFyYW5nb0F1dGhDb250ZXh0IHtcbiAgdGVuYW50SWQ6IHN0cmluZztcbiAgcHJpbmNpcGFsSWQ6IHN0cmluZztcbiAgcGVybWlzc2lvbktleTogc3RyaW5nO1xuICBhbGxvd2VkT3JnVW5pdElkczogc3RyaW5nW107XG4gIGFsbG93ZWRSZXNvdXJjZUlkczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUWRyYW50QXV0aEZpbHRlciB7XG4gIG11c3Q6IEFycmF5PFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcbiAgbXVzdF9ub3Q/OiBBcnJheTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlU3RvcmFnZUJpbmRpbmdJbnB1dCB7XG4gIHRlbmFudElkOiBzdHJpbmc7XG4gIHN0b3JhZ2VLaW5kOiBTdG9yYWdlS2luZDtcbiAgYmluZGluZ0tpbmQ6IFN0b3JhZ2VCaW5kaW5nS2luZDtcbiAgYmluZGluZ0tleTogc3RyaW5nO1xuICByZWdpb246IHN0cmluZztcbiAgY29uZmlnPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwUGVybWlzc2lvbiB7XG4gIGtleTogc3RyaW5nO1xuICBjYXRlZ29yeTogUGVybWlzc2lvbkNhdGVnb3J5O1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBSb2xlIHtcbiAga2V5OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHBlcm1pc3Npb25LZXlzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBPcmdVbml0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBwcm9maWxlS2V5Pzogc3RyaW5nO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBjaGlsZHJlbj86IEJvb3RzdHJhcE9yZ1VuaXRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBUZW1wbGF0ZSB7XG4gIHRlbmFudDogQ3JlYXRlVGVuYW50SW5wdXQ7XG4gIHJvb3RPcmdVbml0OiBCb290c3RyYXBPcmdVbml0O1xuICBwZXJtaXNzaW9uczogQm9vdHN0cmFwUGVybWlzc2lvbltdO1xuICByb2xlczogQm9vdHN0cmFwUm9sZVtdO1xuICBvd25lclVzZXI6IENyZWF0ZVVzZXJJbnB1dDtcbiAgb3duZXJSb2xlS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VTbmFwc2hvdCB7XG4gIGlkOiBzdHJpbmc7XG4gIHRlbmFudElkOiBzdHJpbmc7XG4gIG9yZ1VuaXRJZDogc3RyaW5nO1xuICByZXNvdXJjZVR5cGU6IHN0cmluZztcbiAgcmVzb3VyY2VJZDogc3RyaW5nO1xuICB2aXNpYmlsaXR5OiBSZXNvdXJjZVZpc2liaWxpdHk7XG4gIG93bmVyUHJpbmNpcGFsSWQ/OiBzdHJpbmc7XG4gIHNlbnNpdGl2aXR5Pzogc3RyaW5nO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyYW50U25hcHNob3Qge1xuICBpZDogc3RyaW5nO1xuICB0ZW5hbnRJZDogc3RyaW5nO1xuICByZXNvdXJjZUlkOiBzdHJpbmc7XG4gIHByaW5jaXBhbElkOiBzdHJpbmc7XG4gIHBlcm1pc3Npb25LZXk6IHN0cmluZztcbiAgc3RhcnRzQXQ/OiBEYXRlO1xuICBleHBpcmVzQXQ/OiBEYXRlO1xuICBjb25kaXRpb25zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNyZWF0ZWRCeVByaW5jaXBhbElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVmZmVjdGl2ZVBlcm1pc3Npb25TbmFwc2hvdCB7XG4gIGlkOiBzdHJpbmc7XG4gIHRlbmFudElkOiBzdHJpbmc7XG4gIHByaW5jaXBhbElkOiBzdHJpbmc7XG4gIHBlcm1pc3Npb25LZXk6IHN0cmluZztcbiAgc2NvcGVLaW5kOiBTY29wZUtpbmQ7XG4gIHNjb3BlSWQ6IHN0cmluZztcbiAgc291cmNlS2luZDogc3RyaW5nO1xuICBzb3VyY2VJZDogc3RyaW5nO1xuICBzdGFydHNBdD86IERhdGU7XG4gIGV4cGlyZXNBdD86IERhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aHpEYXRhU291cmNlcyB7XG4gIGxvYWRSZXNvdXJjZT86ICh0ZW5hbnRJZDogc3RyaW5nLCBwcm90ZWN0ZWRSZXNvdXJjZUlkOiBzdHJpbmcpID0+IFByb21pc2U8UmVzb3VyY2VTbmFwc2hvdCB8IHVuZGVmaW5lZD47XG4gIGxpc3RSZXNvdXJjZUdyYW50cz86ICh0ZW5hbnRJZDogc3RyaW5nLCBwcm90ZWN0ZWRSZXNvdXJjZUlkOiBzdHJpbmcpID0+IFByb21pc2U8R3JhbnRTbmFwc2hvdFtdPjtcbiAgbGlzdFByaW5jaXBhbEdyYW50cz86ICh0ZW5hbnRJZDogc3RyaW5nLCBwcmluY2lwYWxJZDogc3RyaW5nKSA9PiBQcm9taXNlPEdyYW50U25hcHNob3RbXT47XG4gIGxpc3RFZmZlY3RpdmVQZXJtaXNzaW9ucz86IChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIHByaW5jaXBhbElkOiBzdHJpbmdcbiAgKSA9PiBQcm9taXNlPEVmZmVjdGl2ZVBlcm1pc3Npb25TbmFwc2hvdFtdPjtcbiAgbGlzdEVmZmVjdGl2ZVBlcm1pc3Npb25zRm9yU2NvcGU/OiAoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBzY29wZUtpbmQ6IFNjb3BlS2luZCxcbiAgICBzY29wZUlkOiBzdHJpbmdcbiAgKSA9PiBQcm9taXNlPEVmZmVjdGl2ZVBlcm1pc3Npb25TbmFwc2hvdFtdPjtcbn1cblxuZnVuY3Rpb24gaXNUaW1lVmFsaWQoXG4gIGF0OiBEYXRlIHwgdW5kZWZpbmVkLFxuICBzdGFydHNBdD86IERhdGUsXG4gIGV4cGlyZXNBdD86IERhdGVcbik6IGJvb2xlYW4ge1xuICBjb25zdCBpbnN0YW50ID0gYXQgPz8gbmV3IERhdGUoKTtcbiAgaWYgKHN0YXJ0c0F0ICYmIGluc3RhbnQgPCBzdGFydHNBdCkgcmV0dXJuIGZhbHNlO1xuICBpZiAoZXhwaXJlc0F0ICYmIGluc3RhbnQgPiBleHBpcmVzQXQpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHNjb3BlS2V5KHNjb3BlS2luZDogU2NvcGVLaW5kLCBzY29wZUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7c2NvcGVLaW5kfToke3Njb3BlSWR9YDtcbn1cblxuZnVuY3Rpb24gdG9BcnJheTxUPih2YWx1ZTogVFtdIHwgdW5kZWZpbmVkKTogVFtdIHtcbiAgcmV0dXJuIHZhbHVlID8/IFtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRBcmFuZ29Db250ZXh0KG9wdGlvbnM6IHtcbiAgdGVuYW50SWQ6IHN0cmluZztcbiAgcHJpbmNpcGFsSWQ6IHN0cmluZztcbiAgcGVybWlzc2lvbktleTogc3RyaW5nO1xuICBhbGxvd2VkT3JnVW5pdElkczogc3RyaW5nW107XG4gIGFsbG93ZWRSZXNvdXJjZUlkczogc3RyaW5nW107XG59KTogQXJhbmdvQXV0aENvbnRleHQge1xuICByZXR1cm4ge1xuICAgIHRlbmFudElkOiBvcHRpb25zLnRlbmFudElkLFxuICAgIHByaW5jaXBhbElkOiBvcHRpb25zLnByaW5jaXBhbElkLFxuICAgIHBlcm1pc3Npb25LZXk6IG9wdGlvbnMucGVybWlzc2lvbktleSxcbiAgICBhbGxvd2VkT3JnVW5pdElkczogWy4uLm9wdGlvbnMuYWxsb3dlZE9yZ1VuaXRJZHNdLFxuICAgIGFsbG93ZWRSZXNvdXJjZUlkczogWy4uLm9wdGlvbnMuYWxsb3dlZFJlc291cmNlSWRzXSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUWRyYW50RmlsdGVyKG9wdGlvbnM6IHtcbiAgdGVuYW50SWQ6IHN0cmluZztcbiAgcHJpbmNpcGFsSWQ6IHN0cmluZztcbiAgcGVybWlzc2lvbktleTogc3RyaW5nO1xuICBhbGxvd2VkT3JnVW5pdElkczogc3RyaW5nW107XG4gIGFsbG93ZWRSZXNvdXJjZUlkczogc3RyaW5nW107XG59KTogUWRyYW50QXV0aEZpbHRlciB7XG4gIHJldHVybiB7XG4gICAgbXVzdDogW1xuICAgICAge1xuICAgICAgICBrZXk6IFwidGVuYW50X2lkXCIsXG4gICAgICAgIG1hdGNoOiB7IHZhbHVlOiBvcHRpb25zLnRlbmFudElkIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzaG91bGQ6IFtcbiAgICAgICAgICB7IGtleTogXCJvcmdfdW5pdF9pZFwiLCBtYXRjaDogeyBhbnk6IG9wdGlvbnMuYWxsb3dlZE9yZ1VuaXRJZHMgfSB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJwcm90ZWN0ZWRfcmVzb3VyY2VfaWRcIixcbiAgICAgICAgICAgIG1hdGNoOiB7IGFueTogb3B0aW9ucy5hbGxvd2VkUmVzb3VyY2VJZHMgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsga2V5OiBcIm93bmVyX3ByaW5jaXBhbF9pZFwiLCBtYXRjaDogeyB2YWx1ZTogb3B0aW9ucy5wcmluY2lwYWxJZCB9IH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEFjY2Vzc0NvbnRleHQob3B0aW9uczoge1xuICB0ZW5hbnRJZDogc3RyaW5nO1xuICBwcmluY2lwYWxJZDogc3RyaW5nO1xuICBwZXJtaXNzaW9uczogRWZmZWN0aXZlUGVybWlzc2lvblNuYXBzaG90W107XG4gIGdyYW50czogR3JhbnRTbmFwc2hvdFtdO1xufSk6IEFjY2Vzc0NvbnRleHQge1xuICBjb25zdCBwZXJtaXNzaW9uc0J5U2NvcGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9O1xuICBjb25zdCBhbGxvd2VkT3JnVW5pdElkc0J5UGVybWlzc2lvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG5cbiAgZm9yIChjb25zdCBwZXJtaXNzaW9uIG9mIG9wdGlvbnMucGVybWlzc2lvbnMpIHtcbiAgICBjb25zdCBrZXkgPSBzY29wZUtleShwZXJtaXNzaW9uLnNjb3BlS2luZCwgcGVybWlzc2lvbi5zY29wZUlkKTtcbiAgICBwZXJtaXNzaW9uc0J5U2NvcGVba2V5XSA9IHBlcm1pc3Npb25zQnlTY29wZVtrZXldID8/IFtdO1xuICAgIHBlcm1pc3Npb25zQnlTY29wZVtrZXldLnB1c2gocGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5KTtcbiAgICBpZiAocGVybWlzc2lvbi5zY29wZUtpbmQgPT09IFNjb3BlS2luZC5PcmdVbml0KSB7XG4gICAgICBhbGxvd2VkT3JnVW5pdElkc0J5UGVybWlzc2lvbltwZXJtaXNzaW9uLnBlcm1pc3Npb25LZXldID1cbiAgICAgICAgYWxsb3dlZE9yZ1VuaXRJZHNCeVBlcm1pc3Npb25bcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5XSA/PyBbXTtcbiAgICAgIGFsbG93ZWRPcmdVbml0SWRzQnlQZXJtaXNzaW9uW3Blcm1pc3Npb24ucGVybWlzc2lvbktleV0ucHVzaChcbiAgICAgICAgcGVybWlzc2lvbi5zY29wZUlkXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdGVuYW50SWQ6IG9wdGlvbnMudGVuYW50SWQsXG4gICAgcHJpbmNpcGFsSWQ6IG9wdGlvbnMucHJpbmNpcGFsSWQsXG4gICAgcGVybWlzc2lvbnNCeVNjb3BlLFxuICAgIGFsbG93ZWRPcmdVbml0SWRzQnlQZXJtaXNzaW9uLFxuICAgIHJlc291cmNlR3JhbnRzOiBvcHRpb25zLmdyYW50cy5tYXAoKGdyYW50KSA9PiAoe1xuICAgICAgcmVzb3VyY2VJZDogZ3JhbnQucmVzb3VyY2VJZCxcbiAgICAgIHBlcm1pc3Npb25LZXk6IGdyYW50LnBlcm1pc3Npb25LZXksXG4gICAgfSkpLFxuICB9O1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZU1vZGVsU2VydmljZTxNIGV4dGVuZHMgTW9kZWw8Ym9vbGVhbj4gJiB7IGlkOiBzdHJpbmcgfT4gZXh0ZW5kcyBNb2RlbFNlcnZpY2U8XG4gIE0sXG4gIFJlcG9zaXRvcnk8TSwgYW55PlxuPiB7XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihjbGF6ejogbmV3ICgpID0+IE0pIHtcbiAgICBzdXBlcihjbGF6eik7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmV3TW9kZWw8VD4oY2xheno6IG5ldyAoKSA9PiBULCBkYXRhOiBQYXJ0aWFsPFQ+KTogVCB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IGNsYXp6KCkgYXMgb2JqZWN0LCBkYXRhIGFzIG9iamVjdCkgYXMgVDtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZU9uZShkYXRhOiBQYXJ0aWFsPE0+LCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TT4ge1xuICAgIHJldHVybiB0aGlzLnJlcG8uY3JlYXRlKE9iamVjdC5hc3NpZ24oe30gYXMgTSwgZGF0YSBhcyBvYmplY3QpLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGdldEJ5SWQoaWQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPE0+IHtcbiAgICByZXR1cm4gdGhpcy5yZXBvLnJlYWQoaWQsIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlT25lKGlkOiBzdHJpbmcsIHBhdGNoOiBQYXJ0aWFsPE0+LCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8TT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgdGhpcy5yZXBvLnJlYWQoaWQsIC4uLmFyZ3MpO1xuICAgIHJldHVybiB0aGlzLnJlcG8udXBkYXRlKE9iamVjdC5hc3NpZ24oZXhpc3RpbmcsIHBhdGNoKSwgLi4uYXJncyk7XG4gIH1cblxuICBhc3luYyBkZWxldGVCeUlkKGlkOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5yZXBvLmRlbGV0ZShpZCwgLi4uYXJncyk7XG4gIH1cblxuICBhc3luYyBmaW5kT25lQnk8SyBleHRlbmRzIGtleW9mIE0gJiBzdHJpbmc+KFxuICAgIGtleTogSyxcbiAgICB2YWx1ZTogTVtLXSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE0+IHtcbiAgICByZXR1cm4gdGhpcy5yZXBvLmZpbmRPbmVCeShrZXksIHZhbHVlLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGZpbmRNYW55Qnk8SyBleHRlbmRzIGtleW9mIE0gJiBzdHJpbmc+KFxuICAgIGtleTogSyxcbiAgICB2YWx1ZTogTVtLXSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE1bXT4ge1xuICAgIHJldHVybiB0aGlzLnJlcG8uc2VsZWN0KCkud2hlcmUoeyBba2V5XTogdmFsdWUgfSBhcyBhbnkpLmV4ZWN1dGUoLi4uYXJncyk7XG4gIH1cblxuICBhc3luYyBsaXN0QWxsKC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxNW10+IHtcbiAgICByZXR1cm4gdGhpcy5yZXBvLnNlbGVjdCgpLmV4ZWN1dGUoLi4uYXJncyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlkKCk6IHN0cmluZyB7XG4gIHJldHVybiBjcnlwdG8ucmFuZG9tVVVJRCgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVsYXRpb25JZCh2YWx1ZTogc3RyaW5nIHwgeyBpZDogc3RyaW5nIH0pOiBzdHJpbmcge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gdmFsdWUgOiB2YWx1ZS5pZDtcbn1cblxuZXhwb3J0IGNsYXNzIEF1dGh6U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YVNvdXJjZXM6IEF1dGh6RGF0YVNvdXJjZXM7XG5cbiAgY29uc3RydWN0b3IoZGF0YVNvdXJjZXM6IEF1dGh6RGF0YVNvdXJjZXMgPSB7fSkge1xuICAgIHRoaXMuZGF0YVNvdXJjZXMgPSBkYXRhU291cmNlcztcbiAgfVxuXG4gIGFzeW5jIGNhbkFjY2VzcyhpbnB1dDogQ2FuQWNjZXNzSW5wdXQsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgYXQgPSBpbnB1dC5hdCA/PyBuZXcgRGF0ZSgpO1xuXG4gICAgaWYgKGlucHV0LnNjb3BlS2luZCAmJiBpbnB1dC5zY29wZUlkKSB7XG4gICAgICBjb25zdCBwZXJtaXNzaW9ucyA9IGF3YWl0IHRoaXMuZGF0YVNvdXJjZXMubGlzdEVmZmVjdGl2ZVBlcm1pc3Npb25zRm9yU2NvcGU/LihcbiAgICAgICAgaW5wdXQudGVuYW50SWQsXG4gICAgICAgIGlucHV0LnNjb3BlS2luZCxcbiAgICAgICAgaW5wdXQuc2NvcGVJZFxuICAgICAgKTtcbiAgICAgIHJldHVybiB0b0FycmF5KHBlcm1pc3Npb25zKS5zb21lKFxuICAgICAgICAocGVybWlzc2lvbikgPT5cbiAgICAgICAgICBwZXJtaXNzaW9uLnBlcm1pc3Npb25LZXkgPT09IGlucHV0LnBlcm1pc3Npb25LZXkgJiZcbiAgICAgICAgICBpc1RpbWVWYWxpZChhdCwgcGVybWlzc2lvbi5zdGFydHNBdCwgcGVybWlzc2lvbi5leHBpcmVzQXQpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghaW5wdXQucmVzb3VyY2VQcm90ZWN0ZWRJZCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxvYWRSZXNvdXJjZT8uKFxuICAgICAgaW5wdXQudGVuYW50SWQsXG4gICAgICBpbnB1dC5yZXNvdXJjZVByb3RlY3RlZElkXG4gICAgKTtcbiAgICBpZiAoIXJlc291cmNlKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHJlc291cmNlLnRlbmFudElkICE9PSBpbnB1dC50ZW5hbnRJZCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgaWYgKHJlc291cmNlLm93bmVyUHJpbmNpcGFsSWQgPT09IGlucHV0LnByaW5jaXBhbElkKSByZXR1cm4gdHJ1ZTtcblxuICAgIGNvbnN0IGdyYW50cyA9IHRvQXJyYXkoXG4gICAgICBhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxpc3RSZXNvdXJjZUdyYW50cz8uKFxuICAgICAgICBpbnB1dC50ZW5hbnRJZCxcbiAgICAgICAgaW5wdXQucmVzb3VyY2VQcm90ZWN0ZWRJZFxuICAgICAgKVxuICAgICkuZmlsdGVyKFxuICAgICAgKGdyYW50KSA9PlxuICAgICAgICBncmFudC5wcmluY2lwYWxJZCA9PT0gaW5wdXQucHJpbmNpcGFsSWQgJiZcbiAgICAgICAgZ3JhbnQucGVybWlzc2lvbktleSA9PT0gaW5wdXQucGVybWlzc2lvbktleSAmJlxuICAgICAgICBpc1RpbWVWYWxpZChhdCwgZ3JhbnQuc3RhcnRzQXQsIGdyYW50LmV4cGlyZXNBdClcbiAgICApO1xuICAgIGlmIChncmFudHMubGVuZ3RoID4gMCkgcmV0dXJuIHRydWU7XG5cbiAgICBjb25zdCB2aXNpYmlsaXR5ID0gcmVzb3VyY2UudmlzaWJpbGl0eTtcbiAgICBpZiAoXG4gICAgICB2aXNpYmlsaXR5ID09PSBSZXNvdXJjZVZpc2liaWxpdHkuUHJpdmF0ZSB8fFxuICAgICAgdmlzaWJpbGl0eSA9PT0gUmVzb3VyY2VWaXNpYmlsaXR5LlJlc291cmNlQWNsXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdmlzaWJpbGl0eSA9PT0gUmVzb3VyY2VWaXNpYmlsaXR5Lk9yZ1VuaXQgfHxcbiAgICAgIHZpc2liaWxpdHkgPT09IFJlc291cmNlVmlzaWJpbGl0eS5PcmdTdWJ0cmVlXG4gICAgKSB7XG4gICAgICBjb25zdCBlZmZlY3RpdmVQZXJtaXNzaW9ucyA9IHRvQXJyYXkoXG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YVNvdXJjZXMubGlzdEVmZmVjdGl2ZVBlcm1pc3Npb25zRm9yU2NvcGU/LihcbiAgICAgICAgICBpbnB1dC50ZW5hbnRJZCxcbiAgICAgICAgICBTY29wZUtpbmQuT3JnVW5pdCxcbiAgICAgICAgICByZXNvdXJjZS5vcmdVbml0SWRcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIHJldHVybiBlZmZlY3RpdmVQZXJtaXNzaW9ucy5zb21lKFxuICAgICAgICAocGVybWlzc2lvbikgPT5cbiAgICAgICAgICBwZXJtaXNzaW9uLnBlcm1pc3Npb25LZXkgPT09IGlucHV0LnBlcm1pc3Npb25LZXkgJiZcbiAgICAgICAgICBpc1RpbWVWYWxpZChhdCwgcGVybWlzc2lvbi5zdGFydHNBdCwgcGVybWlzc2lvbi5leHBpcmVzQXQpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh2aXNpYmlsaXR5ID09PSBSZXNvdXJjZVZpc2liaWxpdHkuVGVuYW50KSB7XG4gICAgICBjb25zdCBlZmZlY3RpdmVQZXJtaXNzaW9ucyA9IHRvQXJyYXkoXG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YVNvdXJjZXMubGlzdEVmZmVjdGl2ZVBlcm1pc3Npb25zRm9yU2NvcGU/LihcbiAgICAgICAgICBpbnB1dC50ZW5hbnRJZCxcbiAgICAgICAgICBTY29wZUtpbmQuVGVuYW50LFxuICAgICAgICAgIGlucHV0LnRlbmFudElkXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgICByZXR1cm4gZWZmZWN0aXZlUGVybWlzc2lvbnMuc29tZShcbiAgICAgICAgKHBlcm1pc3Npb24pID0+XG4gICAgICAgICAgcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5ID09PSBpbnB1dC5wZXJtaXNzaW9uS2V5ICYmXG4gICAgICAgICAgaXNUaW1lVmFsaWQoYXQsIHBlcm1pc3Npb24uc3RhcnRzQXQsIHBlcm1pc3Npb24uZXhwaXJlc0F0KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBhc3luYyByZXF1aXJlQWNjZXNzKGlucHV0OiBDYW5BY2Nlc3NJbnB1dCwgLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIShhd2FpdCB0aGlzLmNhbkFjY2VzcyhpbnB1dCwgLi4uYXJncykpKSB7XG4gICAgICB0aHJvdyBuZXcgQXV0aG9yaXphdGlvbkVycm9yKFxuICAgICAgICBgQWNjZXNzIGRlbmllZCBmb3IgJHtpbnB1dC5wZXJtaXNzaW9uS2V5fSBvbiAke2lucHV0LnJlc291cmNlUHJvdGVjdGVkSWQgPz8gc2NvcGVLZXkoaW5wdXQuc2NvcGVLaW5kID8/IFNjb3BlS2luZC5SZXNvdXJjZSwgaW5wdXQuc2NvcGVJZCA/PyBcIlwiKX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGJ1aWxkQWNjZXNzQ29udGV4dChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIHByaW5jaXBhbElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxBY2Nlc3NDb250ZXh0PiB7XG4gICAgY29uc3QgcGVybWlzc2lvbnMgPSB0b0FycmF5KFxuICAgICAgYXdhaXQgdGhpcy5kYXRhU291cmNlcy5saXN0RWZmZWN0aXZlUGVybWlzc2lvbnM/Lih0ZW5hbnRJZCwgcHJpbmNpcGFsSWQpXG4gICAgKTtcbiAgICBjb25zdCBncmFudHMgPSB0b0FycmF5KFxuICAgICAgYXdhaXQgdGhpcy5kYXRhU291cmNlcy5saXN0UHJpbmNpcGFsR3JhbnRzPy4odGVuYW50SWQsIHByaW5jaXBhbElkKVxuICAgICk7XG4gICAgcmV0dXJuIGJ1aWxkQWNjZXNzQ29udGV4dCh7XG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIHByaW5jaXBhbElkLFxuICAgICAgcGVybWlzc2lvbnMsXG4gICAgICBncmFudHMsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBidWlsZEFyYW5nb0NvbnRleHQoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBwcmluY2lwYWxJZDogc3RyaW5nLFxuICAgIHBlcm1pc3Npb25LZXk6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPEFyYW5nb0F1dGhDb250ZXh0PiB7XG4gICAgY29uc3QgYWNjZXNzID0gYXdhaXQgdGhpcy5idWlsZEFjY2Vzc0NvbnRleHQodGVuYW50SWQsIHByaW5jaXBhbElkLCAuLi5hcmdzKTtcbiAgICBjb25zdCBhbGxvd2VkT3JnVW5pdElkcyA9IGFjY2Vzcy5hbGxvd2VkT3JnVW5pdElkc0J5UGVybWlzc2lvbltwZXJtaXNzaW9uS2V5XSA/PyBbXTtcbiAgICBjb25zdCBhbGxvd2VkUmVzb3VyY2VJZHMgPSBhY2Nlc3MucmVzb3VyY2VHcmFudHNcbiAgICAgIC5maWx0ZXIoKGdyYW50KSA9PiBncmFudC5wZXJtaXNzaW9uS2V5ID09PSBwZXJtaXNzaW9uS2V5KVxuICAgICAgLm1hcCgoZ3JhbnQpID0+IGdyYW50LnJlc291cmNlSWQpO1xuICAgIHJldHVybiBidWlsZEFyYW5nb0NvbnRleHQoe1xuICAgICAgdGVuYW50SWQsXG4gICAgICBwcmluY2lwYWxJZCxcbiAgICAgIHBlcm1pc3Npb25LZXksXG4gICAgICBhbGxvd2VkT3JnVW5pdElkcyxcbiAgICAgIGFsbG93ZWRSZXNvdXJjZUlkcyxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGJ1aWxkUWRyYW50RmlsdGVyKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgcHJpbmNpcGFsSWQ6IHN0cmluZyxcbiAgICBwZXJtaXNzaW9uS2V5OiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxRZHJhbnRBdXRoRmlsdGVyPiB7XG4gICAgY29uc3QgYWNjZXNzID0gYXdhaXQgdGhpcy5idWlsZEFjY2Vzc0NvbnRleHQodGVuYW50SWQsIHByaW5jaXBhbElkLCAuLi5hcmdzKTtcbiAgICBjb25zdCBhbGxvd2VkT3JnVW5pdElkcyA9IGFjY2Vzcy5hbGxvd2VkT3JnVW5pdElkc0J5UGVybWlzc2lvbltwZXJtaXNzaW9uS2V5XSA/PyBbXTtcbiAgICBjb25zdCBhbGxvd2VkUmVzb3VyY2VJZHMgPSBhY2Nlc3MucmVzb3VyY2VHcmFudHNcbiAgICAgIC5maWx0ZXIoKGdyYW50KSA9PiBncmFudC5wZXJtaXNzaW9uS2V5ID09PSBwZXJtaXNzaW9uS2V5KVxuICAgICAgLm1hcCgoZ3JhbnQpID0+IGdyYW50LnJlc291cmNlSWQpO1xuICAgIHJldHVybiBidWlsZFFkcmFudEZpbHRlcih7XG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIHByaW5jaXBhbElkLFxuICAgICAgcGVybWlzc2lvbktleSxcbiAgICAgIGFsbG93ZWRPcmdVbml0SWRzLFxuICAgICAgYWxsb3dlZFJlc291cmNlSWRzLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCB7IHRyYW5zYWN0aW9uYWwgfTtcbiJdfQ==
286
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnLWJhc2VkLWF1dGhvcml6YXRpb24tc3lzdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsib3JnLWJhc2VkLWF1dGhvcml6YXRpb24tc3lzdGVtLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXlHQSxnREFRQztBQUNELDhDQW1CQztBQUNELGdEQXVCQztBQStCRCxnQkFFQztBQUNELGdDQUVDO0FBak1ELHlDQUEwRjtBQXlSakYsOEZBelIyQyxvQkFBYSxPQXlSM0M7QUF2UnRCLENBQUMsVUFBVSxhQUFhO0lBQ3BCLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxRQUFRLENBQUM7SUFDbkMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQztJQUNuQyxhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDO0FBQ25DLENBQUMsQ0FBQyxDQUFDLHFCQUFhLElBQUksQ0FBQyxxQkFBYSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFMUMsQ0FBQyxVQUFVLGdCQUFnQjtJQUN2QixnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLENBQUM7SUFDeEMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEdBQUcsUUFBUSxDQUFDO0lBQ3RDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxHQUFHLFdBQVcsQ0FBQztJQUM1QyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLENBQUM7QUFDNUMsQ0FBQyxDQUFDLENBQUMsd0JBQWdCLElBQUksQ0FBQyx3QkFBZ0IsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRWhELENBQUMsVUFBVSxhQUFhO0lBQ3BCLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDL0IsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQztJQUNqQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxpQkFBaUIsQ0FBQztJQUNwRCxhQUFhLENBQUMsT0FBTyxDQUFDLEdB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eEQsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsT0FBTyxpQkFBaUIsQ0FBQztZQUNyQixRQUFRO1lBQ1IsV0FBVztZQUNYLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsa0JBQWtCO1NBQ3JCLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSjtBQXRGRCxvQ0FzRkM7QUFFRCxzemxDQUFzemxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aG9yaXphdGlvbkVycm9yLCBDYXNjYWRlLCBNb2RlbFNlcnZpY2UsIHRyYW5zYWN0aW9uYWwgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmV4cG9ydCB2YXIgSXNvbGF0aW9uVGllcjtcbihmdW5jdGlvbiAoSXNvbGF0aW9uVGllcikge1xuICAgIElzb2xhdGlvblRpZXJbXCJQb29sZWRcIl0gPSBcInBvb2xlZFwiO1xuICAgIElzb2xhdGlvblRpZXJbXCJCcmlkZ2VcIl0gPSBcImJyaWRnZVwiO1xuICAgIElzb2xhdGlvblRpZXJbXCJTaWxvXCJdID0gXCJzaWxvXCI7XG59KShJc29sYXRpb25UaWVyIHx8IChJc29sYXRpb25UaWVyID0ge30pKTtcbmV4cG9ydCB2YXIgTWVtYmVyc2hpcFN0YXR1cztcbihmdW5jdGlvbiAoTWVtYmVyc2hpcFN0YXR1cykge1xuICAgIE1lbWJlcnNoaXBTdGF0dXNbXCJJbnZpdGVkXCJdID0gXCJpbnZpdGVkXCI7XG4gICAgTWVtYmVyc2hpcFN0YXR1c1tcIkFjdGl2ZVwiXSA9IFwiYWN0aXZlXCI7XG4gICAgTWVtYmVyc2hpcFN0YXR1c1tcIlN1c3BlbmRlZFwiXSA9IFwic3VzcGVuZGVkXCI7XG4gICAgTWVtYmVyc2hpcFN0YXR1c1tcIlJlbW92ZWRcIl0gPSBcInJlbW92ZWRcIjtcbn0pKE1lbWJlcnNoaXBTdGF0dXMgfHwgKE1lbWJlcnNoaXBTdGF0dXMgPSB7fSkpO1xuZXhwb3J0IHZhciBQcmluY2lwYWxLaW5kO1xuKGZ1bmN0aW9uIChQcmluY2lwYWxLaW5kKSB7XG4gICAgUHJpbmNpcGFsS2luZFtcIlVzZXJcIl0gPSBcInVzZXJcIjtcbiAgICBQcmluY2lwYWxLaW5kW1wiR3JvdXBcIl0gPSBcImdyb3VwXCI7XG4gICAgUHJpbmNpcGFsS2luZFtcIlNlcnZpY2VBY2NvdW50XCJdID0gXCJzZXJ2aWNlX2FjY291bnRcIjtcbiAgICBQcmluY2lwYWxLaW5kW1wiQWdlbnRcIl0gPSBcImFnZW50XCI7XG4gICAgUHJpbmNpcGFsS2luZFtcIkFwaUtleVwiXSA9IFwiYXBpX2tleVwiO1xufSkoUHJpbmNpcGFsS2luZCB8fCAoUHJpbmNpcGFsS2luZCA9IHt9KSk7XG5leHBvcnQgdmFyIFNjb3BlS2luZDtcbihmdW5jdGlvbiAoU2NvcGVLaW5kKSB7XG4gICAgU2NvcGVLaW5kW1wiVGVuYW50XCJdID0gXCJ0ZW5hbnRcIjtcbiAgICBTY29wZUtpbmRbXCJPcmdVbml0XCJdID0gXCJvcmdfdW5pdFwiO1xuICAgIFNjb3BlS2luZFtcIlJlc291cmNlXCJdID0gXCJyZXNvdXJjZVwiO1xufSkoU2NvcGVLaW5kIHx8IChTY29wZUtpbmQgPSB7fSkpO1xuZXhwb3J0IHZhciBQZXJtaXNzaW9uQ2F0ZWdvcnk7XG4oZnVuY3Rpb24gKFBlcm1pc3Npb25DYXRlZ29yeSkge1xuICAgIFBlcm1pc3Npb25DYXRlZ29yeVtcIkFkbWluXCJdID0gXCJhZG1pblwiO1xuICAgIFBlcm1pc3Npb25DYXRlZ29yeVtcIkNvbnRlbnRSZWFkXCJdID0gXCJjb250ZW50X3JlYWRcIjtcbiAgICBQZXJtaXNzaW9uQ2F0ZWdvcnlbXCJDb250ZW50V3JpdGVcIl0gPSBcImNvbnRlbnRfd3JpdGVcIjtcbiAgICBQZXJtaXNzaW9uQ2F0ZWdvcnlbXCJNZW1vcnlcIl0gPSBcIm1lbW9yeVwiO1xuICAgIFBlcm1pc3Npb25DYXRlZ29yeVtcIkdyYXBoXCJdID0gXCJncmFwaFwiO1xuICAgIFBlcm1pc3Npb25DYXRlZ29yeVtcIlZlY3RvclwiXSA9IFwidmVjdG9yXCI7XG4gICAgUGVybWlzc2lvbkNhdGVnb3J5W1wiRXhwb3J0XCJdID0gXCJleHBvcnRcIjtcbiAgICBQZXJtaXNzaW9uQ2F0ZWdvcnlbXCJCaWxsaW5nXCJdID0gXCJiaWxsaW5nXCI7XG4gICAgUGVybWlzc2lvbkNhdGVnb3J5W1wiQXVkaXRcIl0gPSBcImF1ZGl0XCI7XG4gICAgUGVybWlzc2lvbkNhdGVnb3J5W1wiU2VjdXJpdHlcIl0gPSBcInNlY3VyaXR5XCI7XG4gICAgUGVybWlzc2lvbkNhdGVnb3J5W1wiRGF0YVwiXSA9IFwiZGF0YVwiO1xuICAgIFBlcm1pc3Npb25DYXRlZ29yeVtcIkF1dG9tYXRpb25cIl0gPSBcImF1dG9tYXRpb25cIjtcbn0pKFBlcm1pc3Npb25DYXRlZ29yeSB8fCAoUGVybWlzc2lvbkNhdGVnb3J5ID0ge30pKTtcbmV4cG9ydCB2YXIgUmVzb3VyY2VWaXNpYmlsaXR5O1xuKGZ1bmN0aW9uIChSZXNvdXJjZVZpc2liaWxpdHkpIHtcbiAgICBSZXNvdXJjZVZpc2liaWxpdHlbXCJQcml2YXRlXCJdID0gXCJwcml2YXRlXCI7XG4gICAgUmVzb3VyY2VWaXNpYmlsaXR5W1wiUmVzb3VyY2VBY2xcIl0gPSBcInJlc291cmNlX2FjbFwiO1xuICAgIFJlc291cmNlVmlzaWJpbGl0eVtcIk9yZ1VuaXRcIl0gPSBcIm9yZ191bml0XCI7XG4gICAgUmVzb3VyY2VWaXNpYmlsaXR5W1wiT3JnU3VidHJlZVwiXSA9IFwib3JnX3N1YnRyZWVcIjtcbiAgICBSZXNvdXJjZVZpc2liaWxpdHlbXCJUZW5hbnRcIl0gPSBcInRlbmFudFwiO1xufSkoUmVzb3VyY2VWaXNpYmlsaXR5IHx8IChSZXNvdXJjZVZpc2liaWxpdHkgPSB7fSkpO1xuZXhwb3J0IHZhciBTdG9yYWdlS2luZDtcbihmdW5jdGlvbiAoU3RvcmFnZUtpbmQpIHtcbiAgICBTdG9yYWdlS2luZFtcIlBvc3RncmVzXCJdID0gXCJwb3N0Z3Jlc1wiO1xuICAgIFN0b3JhZ2VLaW5kW1wiQXJhbmdvXCJdID0gXCJhcmFuZ29cIjtcbiAgICBTdG9yYWdlS2luZFtcIlFkcmFudFwiXSA9IFwicWRyYW50XCI7XG4gICAgU3RvcmFnZUtpbmRbXCJPYmplY3RTdG9yYWdlXCJdID0gXCJvYmplY3Rfc3RvcmFnZVwiO1xufSkoU3RvcmFnZUtpbmQgfHwgKFN0b3JhZ2VLaW5kID0ge30pKTtcbmV4cG9ydCB2YXIgU3RvcmFnZUJpbmRpbmdLaW5kO1xuKGZ1bmN0aW9uIChTdG9yYWdlQmluZGluZ0tpbmQpIHtcbiAgICBTdG9yYWdlQmluZGluZ0tpbmRbXCJTaGFyZWRcIl0gPSBcInNoYXJlZFwiO1xuICAgIFN0b3JhZ2VCaW5kaW5nS2luZFtcIkRlZGljYXRlZFwiXSA9IFwiZGVkaWNhdGVkXCI7XG59KShTdG9yYWdlQmluZGluZ0tpbmQgfHwgKFN0b3JhZ2VCaW5kaW5nS2luZCA9IHt9KSk7XG5leHBvcnQgY29uc3QgSXNvbGF0aW9uVGllck9wdGlvbnMgPSBPYmplY3QudmFsdWVzKElzb2xhdGlvblRpZXIpO1xuZXhwb3J0IGNvbnN0IE1lbWJlcnNoaXBTdGF0dXNPcHRpb25zID0gT2JqZWN0LnZhbHVlcyhNZW1iZXJzaGlwU3RhdHVzKTtcbmV4cG9ydCBjb25zdCBQcmluY2lwYWxLaW5kT3B0aW9ucyA9IE9iamVjdC52YWx1ZXMoUHJpbmNpcGFsS2luZCk7XG5leHBvcnQgY29uc3QgU2NvcGVLaW5kT3B0aW9ucyA9IE9iamVjdC52YWx1ZXMoU2NvcGVLaW5kKTtcbmV4cG9ydCBjb25zdCBQZXJtaXNzaW9uQ2F0ZWdvcnlPcHRpb25zID0gT2JqZWN0LnZhbHVlcyhQZXJtaXNzaW9uQ2F0ZWdvcnkpO1xuZXhwb3J0IGNvbnN0IFJlc291cmNlVmlzaWJpbGl0eU9wdGlvbnMgPSBPYmplY3QudmFsdWVzKFJlc291cmNlVmlzaWJpbGl0eSk7XG5leHBvcnQgY29uc3QgU3RvcmFnZUtpbmRPcHRpb25zID0gT2JqZWN0LnZhbHVlcyhTdG9yYWdlS2luZCk7XG5leHBvcnQgY29uc3QgU3RvcmFnZUJpbmRpbmdLaW5kT3B0aW9ucyA9IE9iamVjdC52YWx1ZXMoU3RvcmFnZUJpbmRpbmdLaW5kKTtcbmV4cG9ydCBjb25zdCBSRUxfUkVTVFJJQ1QgPSB7XG4gICAgdXBkYXRlOiBDYXNjYWRlLk5PTkUsXG4gICAgZGVsZXRlOiBDYXNjYWRlLk5PTkUsXG4gICAgbnVsbGFibGU6IGZhbHNlLFxufTtcbmV4cG9ydCBjb25zdCBSRUxfTlVMTElGWSA9IHtcbiAgICB1cGRhdGU6IENhc2NhZGUuTk9ORSxcbiAgICBkZWxldGU6IENhc2NhZGUuTk9ORSxcbiAgICBudWxsYWJsZTogdHJ1ZSxcbn07XG5leHBvcnQgY29uc3QgUkVMX0NBU0NBREVfREVQRU5ERU5UID0ge1xuICAgIHVwZGF0ZTogQ2FzY2FkZS5DQVNDQURFLFxuICAgIGRlbGV0ZTogQ2FzY2FkZS5DQVNDQURFLFxuICAgIG51bGxhYmxlOiBmYWxzZSxcbn07XG5leHBvcnQgY29uc3QgUkVMX0NBU0NBREVfSU5TRVJUX1VQREFURSA9IHtcbiAgICB1cGRhdGU6IENhc2NhZGUuQ0FTQ0FERSxcbiAgICBkZWxldGU6IENhc2NhZGUuTk9ORSxcbiAgICBudWxsYWJsZTogZmFsc2UsXG59O1xuZnVuY3Rpb24gaXNUaW1lVmFsaWQoYXQsIHN0YXJ0c0F0LCBleHBpcmVzQXQpIHtcbiAgICBjb25zdCBpbnN0YW50ID0gYXQgPz8gbmV3IERhdGUoKTtcbiAgICBpZiAoc3RhcnRzQXQgJiYgaW5zdGFudCA8IHN0YXJ0c0F0KVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgaWYgKGV4cGlyZXNBdCAmJiBpbnN0YW50ID4gZXhwaXJlc0F0KVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiBzY29wZUtleShzY29wZUtpbmQsIHNjb3BlSWQpIHtcbiAgICByZXR1cm4gYCR7c2NvcGVLaW5kfToke3Njb3BlSWR9YDtcbn1cbmZ1bmN0aW9uIHRvQXJyYXkodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgPz8gW107XG59XG5leHBvcnQgZnVuY3Rpb24gYnVpbGRBcmFuZ29Db250ZXh0KG9wdGlvbnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0ZW5hbnRJZDogb3B0aW9ucy50ZW5hbnRJZCxcbiAgICAgICAgcHJpbmNpcGFsSWQ6IG9wdGlvbnMucHJpbmNpcGFsSWQsXG4gICAgICAgIHBlcm1pc3Npb25LZXk6IG9wdGlvbnMucGVybWlzc2lvbktleSxcbiAgICAgICAgYWxsb3dlZE9yZ1VuaXRJZHM6IFsuLi5vcHRpb25zLmFsbG93ZWRPcmdVbml0SWRzXSxcbiAgICAgICAgYWxsb3dlZFJlc291cmNlSWRzOiBbLi4ub3B0aW9ucy5hbGxvd2VkUmVzb3VyY2VJZHNdLFxuICAgIH07XG59XG5leHBvcnQgZnVuY3Rpb24gYnVpbGRRZHJhbnRGaWx0ZXIob3B0aW9ucykge1xuICAgIHJldHVybiB7XG4gICAgICAgIG11c3Q6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6IFwidGVuYW50X2lkXCIsXG4gICAgICAgICAgICAgICAgbWF0Y2g6IHsgdmFsdWU6IG9wdGlvbnMudGVuYW50SWQgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2hvdWxkOiBbXG4gICAgICAgICAgICAgICAgICAgIHsga2V5OiBcIm9yZ191bml0X2lkXCIsIG1hdGNoOiB7IGFueTogb3B0aW9ucy5hbGxvd2VkT3JnVW5pdElkcyB9IH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogXCJwcm90ZWN0ZWRfcmVzb3VyY2VfaWRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoOiB7IGFueTogb3B0aW9ucy5hbGxvd2VkUmVzb3VyY2VJZHMgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBrZXk6IFwib3duZXJfcHJpbmNpcGFsX2lkXCIsIG1hdGNoOiB7IHZhbHVlOiBvcHRpb25zLnByaW5jaXBhbElkIH0gfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICB9O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQWNjZXNzQ29udGV4dChvcHRpb25zKSB7XG4gICAgY29uc3QgcGVybWlzc2lvbnNCeVNjb3BlID0ge307XG4gICAgY29uc3QgYWxsb3dlZE9yZ1VuaXRJZHNCeVBlcm1pc3Npb24gPSB7fTtcbiAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb24gb2Ygb3B0aW9ucy5wZXJtaXNzaW9ucykge1xuICAgICAgICBjb25zdCBrZXkgPSBzY29wZUtleShwZXJtaXNzaW9uLnNjb3BlS2luZCwgcGVybWlzc2lvbi5zY29wZUlkKTtcbiAgICAgICAgcGVybWlzc2lvbnNCeVNjb3BlW2tleV0gPSBwZXJtaXNzaW9uc0J5U2NvcGVba2V5XSA/PyBbXTtcbiAgICAgICAgcGVybWlzc2lvbnNCeVNjb3BlW2tleV0ucHVzaChwZXJtaXNzaW9uLnBlcm1pc3Npb25LZXkpO1xuICAgICAgICBpZiAocGVybWlzc2lvbi5zY29wZUtpbmQgPT09IFNjb3BlS2luZC5PcmdVbml0KSB7XG4gICAgICAgICAgICBhbGxvd2VkT3JnVW5pdElkc0J5UGVybWlzc2lvbltwZXJtaXNzaW9uLnBlcm1pc3Npb25LZXldID1cbiAgICAgICAgICAgICAgICBhbGxvd2VkT3JnVW5pdElkc0J5UGVybWlzc2lvbltwZXJtaXNzaW9uLnBlcm1pc3Npb25LZXldID8/IFtdO1xuICAgICAgICAgICAgYWxsb3dlZE9yZ1VuaXRJZHNCeVBlcm1pc3Npb25bcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5XS5wdXNoKHBlcm1pc3Npb24uc2NvcGVJZCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdGVuYW50SWQ6IG9wdGlvbnMudGVuYW50SWQsXG4gICAgICAgIHByaW5jaXBhbElkOiBvcHRpb25zLnByaW5jaXBhbElkLFxuICAgICAgICBwZXJtaXNzaW9uc0J5U2NvcGUsXG4gICAgICAgIGFsbG93ZWRPcmdVbml0SWRzQnlQZXJtaXNzaW9uLFxuICAgICAgICByZXNvdXJjZUdyYW50czogb3B0aW9ucy5ncmFudHMubWFwKChncmFudCkgPT4gKHtcbiAgICAgICAgICAgIHJlc291cmNlSWQ6IGdyYW50LnJlc291cmNlSWQsXG4gICAgICAgICAgICBwZXJtaXNzaW9uS2V5OiBncmFudC5wZXJtaXNzaW9uS2V5LFxuICAgICAgICB9KSksXG4gICAgfTtcbn1cbmV4cG9ydCBjbGFzcyBCYXNlTW9kZWxTZXJ2aWNlIGV4dGVuZHMgTW9kZWxTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcihjbGF6eikge1xuICAgICAgICBzdXBlcihjbGF6eik7XG4gICAgfVxuICAgIG5ld01vZGVsKGNsYXp6LCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBjbGF6eigpLCBkYXRhKTtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlT25lKGRhdGEsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVwby5jcmVhdGUoT2JqZWN0LmFzc2lnbih7fSwgZGF0YSksIC4uLmFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBnZXRCeUlkKGlkLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcG8ucmVhZChpZCwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHVwZGF0ZU9uZShpZCwgcGF0Y2gsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBhd2FpdCB0aGlzLnJlcG8ucmVhZChpZCwgLi4uYXJncyk7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcG8udXBkYXRlKE9iamVjdC5hc3NpZ24oZXhpc3RpbmcsIHBhdGNoKSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGRlbGV0ZUJ5SWQoaWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5yZXBvLmRlbGV0ZShpZCwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGZpbmRPbmVCeShrZXksIHZhbHVlLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcG8uZmluZE9uZUJ5KGtleSwgdmFsdWUsIC4uLmFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBmaW5kTWFueUJ5KGtleSwgdmFsdWUsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVwby5zZWxlY3QoKS53aGVyZSh7IFtrZXldOiB2YWx1ZSB9KS5leGVjdXRlKC4uLmFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBsaXN0QWxsKC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVwby5zZWxlY3QoKS5leGVjdXRlKC4uLmFyZ3MpO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBpZCgpIHtcbiAgICByZXR1cm4gY3J5cHRvLnJhbmRvbVVVSUQoKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZWxhdGlvbklkKHZhbHVlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IHZhbHVlIDogdmFsdWUuaWQ7XG59XG5leHBvcnQgY2xhc3MgQXV0aHpTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcihkYXRhU291cmNlcyA9IHt9KSB7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZXMgPSBkYXRhU291cmNlcztcbiAgICB9XG4gICAgYXN5bmMgY2FuQWNjZXNzKGlucHV0LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IGF0ID0gaW5wdXQuYXQgPz8gbmV3IERhdGUoKTtcbiAgICAgICAgaWYgKGlucHV0LnNjb3BlS2luZCAmJiBpbnB1dC5zY29wZUlkKSB7XG4gICAgICAgICAgICBjb25zdCBwZXJtaXNzaW9ucyA9IGF3YWl0IHRoaXMuZGF0YVNvdXJjZXMubGlzdEVmZmVjdGl2ZVBlcm1pc3Npb25zRm9yU2NvcGU/LihpbnB1dC50ZW5hbnRJZCwgaW5wdXQuc2NvcGVLaW5kLCBpbnB1dC5zY29wZUlkKTtcbiAgICAgICAgICAgIHJldHVybiB0b0FycmF5KHBlcm1pc3Npb25zKS5zb21lKChwZXJtaXNzaW9uKSA9PiBwZXJtaXNzaW9uLnBlcm1pc3Npb25LZXkgPT09IGlucHV0LnBlcm1pc3Npb25LZXkgJiZcbiAgICAgICAgICAgICAgICBpc1RpbWVWYWxpZChhdCwgcGVybWlzc2lvbi5zdGFydHNBdCwgcGVybWlzc2lvbi5leHBpcmVzQXQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlucHV0LnJlc291cmNlUHJvdGVjdGVkSWQpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IHJlc291cmNlID0gYXdhaXQgdGhpcy5kYXRhU291cmNlcy5sb2FkUmVzb3VyY2U/LihpbnB1dC50ZW5hbnRJZCwgaW5wdXQucmVzb3VyY2VQcm90ZWN0ZWRJZCk7XG4gICAgICAgIGlmICghcmVzb3VyY2UpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmIChyZXNvdXJjZS50ZW5hbnRJZCAhPT0gaW5wdXQudGVuYW50SWQpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmIChyZXNvdXJjZS5vd25lclByaW5jaXBhbElkID09PSBpbnB1dC5wcmluY2lwYWxJZClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBjb25zdCBncmFudHMgPSB0b0FycmF5KGF3YWl0IHRoaXMuZGF0YVNvdXJjZXMubGlzdFJlc291cmNlR3JhbnRzPy4oaW5wdXQudGVuYW50SWQsIGlucHV0LnJlc291cmNlUHJvdGVjdGVkSWQpKS5maWx0ZXIoKGdyYW50KSA9PiBncmFudC5wcmluY2lwYWxJZCA9PT0gaW5wdXQucHJpbmNpcGFsSWQgJiZcbiAgICAgICAgICAgIGdyYW50LnBlcm1pc3Npb25LZXkgPT09IGlucHV0LnBlcm1pc3Npb25LZXkgJiZcbiAgICAgICAgICAgIGlzVGltZVZhbGlkKGF0LCBncmFudC5zdGFydHNBdCwgZ3JhbnQuZXhwaXJlc0F0KSk7XG4gICAgICAgIGlmIChncmFudHMubGVuZ3RoID4gMClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBjb25zdCB2aXNpYmlsaXR5ID0gcmVzb3VyY2UudmlzaWJpbGl0eTtcbiAgICAgICAgaWYgKHZpc2liaWxpdHkgPT09IFJlc291cmNlVmlzaWJpbGl0eS5Qcml2YXRlIHx8XG4gICAgICAgICAgICB2aXNpYmlsaXR5ID09PSBSZXNvdXJjZVZpc2liaWxpdHkuUmVzb3VyY2VBY2wpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmlzaWJpbGl0eSA9PT0gUmVzb3VyY2VWaXNpYmlsaXR5Lk9yZ1VuaXQgfHxcbiAgICAgICAgICAgIHZpc2liaWxpdHkgPT09IFJlc291cmNlVmlzaWJpbGl0eS5PcmdTdWJ0cmVlKSB7XG4gICAgICAgICAgICBjb25zdCBlZmZlY3RpdmVQZXJtaXNzaW9ucyA9IHRvQXJyYXkoYXdhaXQgdGhpcy5kYXRhU291cmNlcy5saXN0RWZmZWN0aXZlUGVybWlzc2lvbnNGb3JTY29wZT8uKGlucHV0LnRlbmFudElkLCBTY29wZUtpbmQuT3JnVW5pdCwgcmVzb3VyY2Uub3JnVW5pdElkKSk7XG4gICAgICAgICAgICByZXR1cm4gZWZmZWN0aXZlUGVybWlzc2lvbnMuc29tZSgocGVybWlzc2lvbikgPT4gcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5ID09PSBpbnB1dC5wZXJtaXNzaW9uS2V5ICYmXG4gICAgICAgICAgICAgICAgaXNUaW1lVmFsaWQoYXQsIHBlcm1pc3Npb24uc3RhcnRzQXQsIHBlcm1pc3Npb24uZXhwaXJlc0F0KSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZpc2liaWxpdHkgPT09IFJlc291cmNlVmlzaWJpbGl0eS5UZW5hbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVmZmVjdGl2ZVBlcm1pc3Npb25zID0gdG9BcnJheShhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxpc3RFZmZlY3RpdmVQZXJtaXNzaW9uc0ZvclNjb3BlPy4oaW5wdXQudGVuYW50SWQsIFNjb3BlS2luZC5UZW5hbnQsIGlucHV0LnRlbmFudElkKSk7XG4gICAgICAgICAgICByZXR1cm4gZWZmZWN0aXZlUGVybWlzc2lvbnMuc29tZSgocGVybWlzc2lvbikgPT4gcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5ID09PSBpbnB1dC5wZXJtaXNzaW9uS2V5ICYmXG4gICAgICAgICAgICAgICAgaXNUaW1lVmFsaWQoYXQsIHBlcm1pc3Npb24uc3RhcnRzQXQsIHBlcm1pc3Npb24uZXhwaXJlc0F0KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBhc3luYyByZXF1aXJlQWNjZXNzKGlucHV0LCAuLi5hcmdzKSB7XG4gICAgICAgIGlmICghKGF3YWl0IHRoaXMuY2FuQWNjZXNzKGlucHV0LCAuLi5hcmdzKSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBBdXRob3JpemF0aW9uRXJyb3IoYEFjY2VzcyBkZW5pZWQgZm9yICR7aW5wdXQucGVybWlzc2lvbktleX0gb24gJHtpbnB1dC5yZXNvdXJjZVByb3RlY3RlZElkID8/IHNjb3BlS2V5KGlucHV0LnNjb3BlS2luZCA/PyBTY29wZUtpbmQuUmVzb3VyY2UsIGlucHV0LnNjb3BlSWQgPz8gXCJcIil9YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgYnVpbGRBY2Nlc3NDb250ZXh0KHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCBwZXJtaXNzaW9ucyA9IHRvQXJyYXkoYXdhaXQgdGhpcy5kYXRhU291cmNlcy5saXN0RWZmZWN0aXZlUGVybWlzc2lvbnM/Lih0ZW5hbnRJZCwgcHJpbmNpcGFsSWQpKTtcbiAgICAgICAgY29uc3QgZ3JhbnRzID0gdG9BcnJheShhd2FpdCB0aGlzLmRhdGFTb3VyY2VzLmxpc3RQcmluY2lwYWxHcmFudHM/Lih0ZW5hbnRJZCwgcHJpbmNpcGFsSWQpKTtcbiAgICAgICAgcmV0dXJuIGJ1aWxkQWNjZXNzQ29udGV4dCh7XG4gICAgICAgICAgICB0ZW5hbnRJZCxcbiAgICAgICAgICAgIHByaW5jaXBhbElkLFxuICAgICAgICAgICAgcGVybWlzc2lvbnMsXG4gICAgICAgICAgICBncmFudHMsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBidWlsZEFyYW5nb0NvbnRleHQodGVuYW50SWQsIHByaW5jaXBhbElkLCBwZXJtaXNzaW9uS2V5LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IGFjY2VzcyA9IGF3YWl0IHRoaXMuYnVpbGRBY2Nlc3NDb250ZXh0KHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncyk7XG4gICAgICAgIGNvbnN0IGFsbG93ZWRPcmdVbml0SWRzID0gYWNjZXNzLmFsbG93ZWRPcmdVbml0SWRzQnlQZXJtaXNzaW9uW3Blcm1pc3Npb25LZXldID8/IFtdO1xuICAgICAgICBjb25zdCBhbGxvd2VkUmVzb3VyY2VJZHMgPSBhY2Nlc3MucmVzb3VyY2VHcmFudHNcbiAgICAgICAgICAgIC5maWx0ZXIoKGdyYW50KSA9PiBncmFudC5wZXJtaXNzaW9uS2V5ID09PSBwZXJtaXNzaW9uS2V5KVxuICAgICAgICAgICAgLm1hcCgoZ3JhbnQpID0+IGdyYW50LnJlc291cmNlSWQpO1xuICAgICAgICByZXR1cm4gYnVpbGRBcmFuZ29Db250ZXh0KHtcbiAgICAgICAgICAgIHRlbmFudElkLFxuICAgICAgICAgICAgcHJpbmNpcGFsSWQsXG4gICAgICAgICAgICBwZXJtaXNzaW9uS2V5LFxuICAgICAgICAgICAgYWxsb3dlZE9yZ1VuaXRJZHMsXG4gICAgICAgICAgICBhbGxvd2VkUmVzb3VyY2VJZHMsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBidWlsZFFkcmFudEZpbHRlcih0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIHBlcm1pc3Npb25LZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgYWNjZXNzID0gYXdhaXQgdGhpcy5idWlsZEFjY2Vzc0NvbnRleHQodGVuYW50SWQsIHByaW5jaXBhbElkLCAuLi5hcmdzKTtcbiAgICAgICAgY29uc3QgYWxsb3dlZE9yZ1VuaXRJZHMgPSBhY2Nlc3MuYWxsb3dlZE9yZ1VuaXRJZHNCeVBlcm1pc3Npb25bcGVybWlzc2lvbktleV0gPz8gW107XG4gICAgICAgIGNvbnN0IGFsbG93ZWRSZXNvdXJjZUlkcyA9IGFjY2Vzcy5yZXNvdXJjZUdyYW50c1xuICAgICAgICAgICAgLmZpbHRlcigoZ3JhbnQpID0+IGdyYW50LnBlcm1pc3Npb25LZXkgPT09IHBlcm1pc3Npb25LZXkpXG4gICAgICAgICAgICAubWFwKChncmFudCkgPT4gZ3JhbnQucmVzb3VyY2VJZCk7XG4gICAgICAgIHJldHVybiBidWlsZFFkcmFudEZpbHRlcih7XG4gICAgICAgICAgICB0ZW5hbnRJZCxcbiAgICAgICAgICAgIHByaW5jaXBhbElkLFxuICAgICAgICAgICAgcGVybWlzc2lvbktleSxcbiAgICAgICAgICAgIGFsbG93ZWRPcmdVbml0SWRzLFxuICAgICAgICAgICAgYWxsb3dlZFJlc291cmNlSWRzLFxuICAgICAgICB9KTtcbiAgICB9XG59XG5leHBvcnQgeyB0cmFuc2FjdGlvbmFsIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2liM0puTFdKaGMyVmtMV0YxZEdodmNtbDZZWFJwYjI0dGMzbHpkR1Z0TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZjM0pqTDI1aGJXVnpjR0ZqWlhNdmIzSm5MV0poYzJWa0xXRjFkR2h2Y21sNllYUnBiMjR0YzNsemRHVnRMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFOUJRVThzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3hQUVVGUExFVkJRVVVzV1VGQldTeEZRVUZqTEdGQlFXRXNSVUZCUlN4TlFVRk5MR2RDUVVGblFpeERRVUZETzBGQlIzUkhMRTFCUVUwc1EwRkJUaXhKUVVGWkxHRkJTVmc3UVVGS1JDeFhRVUZaTEdGQlFXRTdTVUZEZGtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc2EwTkJRV2xDTEVOQlFVRTdTVUZEYWtJc09FSkJRV0VzUTBGQlFUdEJRVU5tTEVOQlFVTXNSVUZLVnl4aFFVRmhMRXRCUVdJc1lVRkJZU3hSUVVsNFFqdEJRVVZFTEUxQlFVMHNRMEZCVGl4SlFVRlpMR2RDUVV0WU8wRkJURVFzVjBGQldTeG5Ra0ZCWjBJN1NVRkRNVUlzZFVOQlFXMUNMRU5CUVVFN1NVRkRia0lzY1VOQlFXbENMRU5CUVVFN1NVRkRha0lzTWtOQlFYVkNMRU5CUVVFN1NVRkRka0lzZFVOQlFXMUNMRU5CUVVFN1FVRkRja0lzUTBGQlF5eEZRVXhYTEdkQ1FVRm5RaXhMUVVGb1FpeG5Ra0ZCWjBJc1VVRkxNMEk3UVVGRlJDeE5RVUZOTEVOQlFVNHNTVUZCV1N4aFFVMVlPMEZCVGtRc1YwRkJXU3hoUVVGaE8wbEJRM1pDTERoQ1FVRmhMRU5CUVVFN1NVRkRZaXhuUTBGQlpTeERRVUZCTzBsQlEyWXNiVVJCUVd0RExFTkJRVUU3U1VGRGJFTXNaME5CUVdVc1EwRkJRVHRKUVVObUxHMURRVUZyUWl4RFFVRkJPMEZCUTNCQ0xFTkJRVU1zUlVGT1Z5eGhRVUZoTEV0QlFXSXNZVUZCWVN4UlFVMTRRanRCUVVWRUxFMUJRVTBzUTBGQlRpeEpRVUZaTEZOQlNWZzdRVUZLUkN4WFFVRlpMRk5CUVZNN1NVRkRia0lzT0VKQlFXbENMRU5CUVVFN1NVRkRha0lzYVVOQlFXOUNMRU5CUVVFN1NVRkRjRUlzYTBOQlFYRkNMRU5CUVVFN1FVRkRka0lzUTBGQlF5eEZRVXBYTEZOQlFWTXNTMEZCVkN4VFFVRlRMRkZCU1hCQ08wRkJSVVFzVFVGQlRTeERRVUZPTEVsQlFWa3NhMEpCWVZnN1FVRmlSQ3hYUVVGWkxHdENRVUZyUWp0SlFVTTFRaXh4UTBGQlpTeERRVUZCTzBsQlEyWXNhMFJCUVRSQ0xFTkJRVUU3U1VGRE5VSXNiMFJCUVRoQ0xFTkJRVUU3U1VGRE9VSXNkVU5CUVdsQ0xFTkJRVUU3U1VGRGFrSXNjVU5CUVdVc1EwRkJRVHRKUVVObUxIVkRRVUZwUWl4RFFVRkJPMGxCUTJwQ0xIVkRRVUZwUWl4RFFVRkJPMGxCUTJwQ0xIbERRVUZ0UWl4RFFVRkJPMGxCUTI1Q0xIRkRRVUZsTEVOQlFVRTdTVUZEWml3eVEwRkJjVUlzUTBGQlFUdEpRVU55UWl4dFEwRkJZU3hEUVVGQk8wbEJRMklzSzBOQlFYbENMRU5CUVVFN1FVRkRNMElzUTBGQlF5eEZRV0pYTEd0Q1FVRnJRaXhMUVVGc1FpeHJRa0ZCYTBJc1VVRmhOMEk3UVVGRlJDeE5RVUZOTEVOQlFVNHNTVUZCV1N4clFrRk5XRHRCUVU1RUxGZEJRVmtzYTBKQlFXdENPMGxCUXpWQ0xIbERRVUZ0UWl4RFFVRkJPMGxCUTI1Q0xHdEVRVUUwUWl4RFFVRkJPMGxCUXpWQ0xEQkRRVUZ2UWl4RFFVRkJPMGxCUTNCQ0xHZEVRVUV3UWl4RFFVRkJPMGxCUXpGQ0xIVkRRVUZwUWl4RFFVRkJPMEZCUTI1Q0xFTkJRVU1zUlVGT1Z5eHJRa0ZCYTBJc1MwRkJiRUlzYTBKQlFXdENMRkZCVFRkQ08wRkJSVVFzVFVGQlRTeERRVUZPTEVsQlFWa3NWMEZMV0R0QlFVeEVMRmRCUVZrc1YwRkJWenRKUVVOeVFpeHZRMEZCY1VJc1EwRkJRVHRKUVVOeVFpeG5RMEZCYVVJc1EwRkJRVHRKUVVOcVFpeG5RMEZCYVVJc1EwRkJRVHRKUVVOcVFpd3JRMEZCWjBNc1EwRkJRVHRCUVVOc1F5eERRVUZETEVWQlRGY3NWMEZCVnl4TFFVRllMRmRCUVZjc1VVRkxkRUk3UVVGRlJDeE5RVUZOTEVOQlFVNHNTVUZCV1N4clFrRkhXRHRCUVVoRUxGZEJRVmtzYTBKQlFXdENPMGxCUXpWQ0xIVkRRVUZwUWl4RFFVRkJPMGxCUTJwQ0xEWkRRVUYxUWl4RFFVRkJPMEZCUTNwQ0xFTkJRVU1zUlVGSVZ5eHJRa0ZCYTBJc1MwRkJiRUlzYTBKQlFXdENMRkZCUnpkQ08wRkJSVVFzVFVGQlRTeERRVUZETEUxQlFVMHNiMEpCUVc5Q0xFZEJRVWNzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJRenRCUVVOcVJTeE5RVUZOTEVOQlFVTXNUVUZCVFN4MVFrRkJkVUlzUjBGQlJ5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTTdRVUZEZGtVc1RVRkJUU3hEUVVGRExFMUJRVTBzYjBKQlFXOUNMRWRCUVVjc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXp0QlFVTnFSU3hOUVVGTkxFTkJRVU1zVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMEZCUTNwRUxFMUJRVTBzUTBGQlF5eE5RVUZOTEhsQ1FVRjVRaXhIUVVGSExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF6dEJRVU16UlN4TlFVRk5MRU5CUVVNc1RVRkJUU3g1UWtGQmVVSXNSMEZCUnl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExHdENRVUZyUWl4RFFVRkRMRU5CUVVNN1FVRkRNMFVzVFVGQlRTeERRVUZETEUxQlFVMHNhMEpCUVd0Q0xFZEJRVWNzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRCUVVNM1JDeE5RVUZOTEVOQlFVTXNUVUZCVFN4NVFrRkJlVUlzUjBGQlJ5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMR3RDUVVGclFpeERRVUZETEVOQlFVTTdRVUZGTTBVc1RVRkJUU3hEUVVGRExFMUJRVTBzV1VGQldTeEhRVUZITzBsQlF6RkNMRTFCUVUwc1JVRkJSU3hQUVVGUExFTkJRVU1zU1VGQlNUdEpRVU53UWl4TlFVRk5MRVZCUVVVc1QwRkJUeXhEUVVGRExFbEJRVWs3U1VGRGNFSXNVVUZCVVN4RlFVRkZMRXRCUVVzN1EwRkRVQ3hEUVVGRE8wRkJSVmdzVFVGQlRTeERRVUZETEUxQlFVMHNWMEZCVnl4SFFVRkhPMGxCUTNwQ0xFMUJRVTBzUlVGQlJTeFBRVUZQTEVOQlFVTXNTVUZCU1R0SlFVTndRaXhOUVVGTkxFVkJRVVVzVDBGQlR5eERRVUZETEVsQlFVazdTVUZEY0VJc1VVRkJVU3hGUVVGRkxFbEJRVWs3UTBGRFRpeERRVUZETzBGQlJWZ3NUVUZCVFN4RFFVRkRMRTFCUVUwc2NVSkJRWEZDTEVkQlFVYzdTVUZEYmtNc1RVRkJUU3hGUVVGRkxFOUJRVThzUTBGQlF5eFBRVUZQTzBsQlEzWkNMRTFCUVUwc1JVRkJSU3hQUVVGUExFTkJRVU1zVDBGQlR6dEpRVU4yUWl4UlFVRlJMRVZCUVVVc1MwRkJTenREUVVOUUxFTkJRVU03UVVGRldDeE5RVUZOTEVOQlFVTXNUVUZCVFN4NVFrRkJlVUlzUjBGQlJ6dEpRVU4yUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhEUVVGRExFOUJRVTg3U1VGRGRrSXNUVUZCVFN4RlFVRkZMRTlCUVU4c1EwRkJReXhKUVVGSk8wbEJRM0JDTEZGQlFWRXNSVUZCUlN4TFFVRkxPME5CUTFBc1EwRkJRenRCUVc5TldDeFRRVUZUTEZkQlFWY3NRMEZEYkVJc1JVRkJiMElzUlVGRGNFSXNVVUZCWlN4RlFVTm1MRk5CUVdkQ08wbEJSV2hDTEUxQlFVMHNUMEZCVHl4SFFVRkhMRVZCUVVVc1NVRkJTU3hKUVVGSkxFbEJRVWtzUlVGQlJTeERRVUZETzBsQlEycERMRWxCUVVrc1VVRkJVU3hKUVVGSkxFOUJRVThzUjBGQlJ5eFJRVUZSTzFGQlFVVXNUMEZCVHl4TFFVRkxMRU5CUVVNN1NVRkRha1FzU1VGQlNTeFRRVUZUTEVsQlFVa3NUMEZCVHl4SFFVRkhMRk5CUVZNN1VVRkJSU3hQUVVGUExFdEJRVXNzUTBGQlF6dEpRVU51UkN4UFFVRlBMRWxCUVVrc1EwRkJRenRCUVVOa0xFTkJRVU03UVVGRlJDeFRRVUZUTEZGQlFWRXNRMEZCUXl4VFFVRnZRaXhGUVVGRkxFOUJRV1U3U1VGRGNrUXNUMEZCVHl4SFFVRkhMRk5CUVZNc1NVRkJTU3hQUVVGUExFVkJRVVVzUTBGQlF6dEJRVU51UXl4RFFVRkRPMEZCUlVRc1UwRkJVeXhQUVVGUExFTkJRVWtzUzBGQmMwSTdTVUZEZUVNc1QwRkJUeXhMUVVGTExFbEJRVWtzUlVGQlJTeERRVUZETzBGQlEzSkNMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzYTBKQlFXdENMRU5CUVVNc1QwRk5iRU03U1VGRFF5eFBRVUZQTzFGQlEwd3NVVUZCVVN4RlFVRkZMRTlCUVU4c1EwRkJReXhSUVVGUk8xRkJRekZDTEZkQlFWY3NSVUZCUlN4UFFVRlBMRU5CUVVNc1YwRkJWenRSUVVOb1F5eGhRVUZoTEVWQlFVVXNUMEZCVHl4RFFVRkRMR0ZCUVdFN1VVRkRjRU1zYVVKQlFXbENMRVZCUVVVc1EwRkJReXhIUVVGSExFOUJRVThzUTBGQlF5eHBRa0ZCYVVJc1EwRkJRenRSUVVOcVJDeHJRa0ZCYTBJc1JVRkJSU3hEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEd0Q1FVRnJRaXhEUVVGRE8wdEJRM0JFTEVOQlFVTTdRVUZEU2l4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHbENRVUZwUWl4RFFVRkRMRTlCVFdwRE8wbEJRME1zVDBGQlR6dFJRVU5NTEVsQlFVa3NSVUZCUlR0WlFVTktPMmRDUVVORkxFZEJRVWNzUlVGQlJTeFhRVUZYTzJkQ1FVTm9RaXhMUVVGTExFVkJRVVVzUlVGQlJTeExRVUZMTEVWQlFVVXNUMEZCVHl4RFFVRkRMRkZCUVZFc1JVRkJSVHRoUVVOdVF6dFpRVU5FTzJkQ1FVTkZMRTFCUVUwc1JVRkJSVHR2UWtGRFRpeEZRVUZGTEVkQlFVY3NSVUZCUlN4aFFVRmhMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEU5QlFVOHNRMEZCUXl4cFFrRkJhVUlzUlVGQlJTeEZRVUZGTzI5Q1FVTnFSVHQzUWtGRFJTeEhRVUZITEVWQlFVVXNkVUpCUVhWQ08zZENRVU0xUWl4TFFVRkxMRVZCUVVVc1JVRkJSU3hIUVVGSExFVkJRVVVzVDBGQlR5eERRVUZETEd0Q1FVRnJRaXhGUVVGRk8zRkNRVU16UXp0dlFrRkRSQ3hGUVVGRkxFZEJRVWNzUlVGQlJTeHZRa0ZCYjBJc1JVRkJSU3hMUVVGTExFVkJRVVVzUlVGQlJTeExRVUZMTEVWQlFVVXNUMEZCVHl4RFFVRkRMRmRCUVZjc1JVRkJSU3hGUVVGRk8ybENRVU55UlR0aFFVTkdPMU5CUTBZN1MwRkRSaXhEUVVGRE8wRkJRMG9zUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4clFrRkJhMElzUTBGQlF5eFBRVXRzUXp0SlFVTkRMRTFCUVUwc2EwSkJRV3RDTEVkQlFUWkNMRVZCUVVVc1EwRkJRenRKUVVONFJDeE5RVUZOTERaQ1FVRTJRaXhIUVVFMlFpeEZRVUZGTEVOQlFVTTdTVUZGYmtVc1MwRkJTeXhOUVVGTkxGVkJRVlVzU1VGQlNTeFBRVUZQTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNN1VVRkROME1zVFVGQlRTeEhRVUZITEVkQlFVY3NVVUZCVVN4RFFVRkRMRlZCUVZVc1EwRkJReXhUUVVGVExFVkJRVVVzVlVGQlZTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUXk5RUxHdENRVUZyUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExHdENRVUZyUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dFJRVU40UkN4clFrRkJhMElzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzFGQlEzWkVMRWxCUVVrc1ZVRkJWU3hEUVVGRExGTkJRVk1zUzBGQlN5eFRRVUZUTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1dVRkRMME1zTmtKQlFUWkNMRU5CUVVNc1ZVRkJWU3hEUVVGRExHRkJRV0VzUTBGQlF6dG5Ra0ZEY2tRc05rSkJRVFpDTEVOQlFVTXNWVUZCVlN4RFFVRkRMR0ZCUVdFc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dFpRVU5vUlN3MlFrRkJOa0lzUTBGQlF5eFZRVUZWTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVNeFJDeFZRVUZWTEVOQlFVTXNUMEZCVHl4RFFVTnVRaXhEUVVGRE8xRkJRMG9zUTBGQlF6dEpRVU5JTEVOQlFVTTdTVUZGUkN4UFFVRlBPMUZCUTB3c1VVRkJVU3hGUVVGRkxFOUJRVThzUTBGQlF5eFJRVUZSTzFGQlF6RkNMRmRCUVZjc1JVRkJSU3hQUVVGUExFTkJRVU1zVjBGQlZ6dFJRVU5vUXl4clFrRkJhMEk3VVVGRGJFSXNOa0pCUVRaQ08xRkJRemRDTEdOQlFXTXNSVUZCUlN4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenRaUVVNM1F5eFZRVUZWTEVWQlFVVXNTMEZCU3l4RFFVRkRMRlZCUVZVN1dVRkROVUlzWVVGQllTeEZRVUZGTEV0QlFVc3NRMEZCUXl4aFFVRmhPMU5CUTI1RExFTkJRVU1zUTBGQlF6dExRVU5LTEVOQlFVTTdRVUZEU2l4RFFVRkRPMEZCUlVRc1RVRkJUU3hQUVVGblFpeG5Ra0ZCTkVRc1UwRkJVU3haUVVkNlJqdEpRVU5ETEZsQlFYTkNMRXRCUVd0Q08xRkJRM1JETEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRKUVVObUxFTkJRVU03U1VGRlV5eFJRVUZSTEVOQlFVa3NTMEZCYTBJc1JVRkJSU3hKUVVGblFqdFJRVU40UkN4UFFVRlBMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeExRVUZMTEVWQlFWa3NSVUZCUlN4SlFVRmpMRU5CUVUwc1EwRkJRenRKUVVOdVJTeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGblFpeEZRVUZGTEVkQlFVY3NTVUZCVnp0UlFVTTVReXhQUVVGUExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlR5eEZRVUZGTEVsQlFXTXNRMEZCUXl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRE0wVXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlZTeEZRVUZGTEVkQlFVY3NTVUZCVnp0UlFVTjBReXhQUVVGUExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzBsQlEzSkRMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVWQlFWVXNSVUZCUlN4TFFVRnBRaXhGUVVGRkxFZEJRVWNzU1VGQlZ6dFJRVU16UkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEyNUVMRTlCUVU4c1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFVkJRVVVzUzBGQlN5eERRVUZETEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVOdVJTeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRlZCUVZVc1EwRkJReXhGUVVGVkxFVkJRVVVzUjBGQlJ5eEpRVUZYTzFGQlEzcERMRTFCUVUwc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGRFTXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRMklzUjBGQlRTeEZRVU5PTEV0QlFWY3NSVUZEV0N4SFFVRkhMRWxCUVZjN1VVRkZaQ3hQUVVGUExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hMUVVGTExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTnNSQ3hEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEZWQlFWVXNRMEZEWkN4SFFVRk5MRVZCUTA0c1MwRkJWeXhGUVVOWUxFZEJRVWNzU1VGQlZ6dFJRVVZrTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFdEJRVXNzUlVGQlV5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRE5VVXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eEpRVUZYTzFGQlF6RkNMRTlCUVU4c1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU0zUXl4RFFVRkRPME5CUTBZN1FVRkZSQ3hOUVVGTkxGVkJRVlVzUlVGQlJUdEpRVU5vUWl4UFFVRlBMRTFCUVUwc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF6dEJRVU0zUWl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxGVkJRVlVzUTBGQlF5eExRVUU0UWp0SlFVTjJSQ3hQUVVGUExFOUJRVThzUzBGQlN5eExRVUZMTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRPMEZCUTNSRUxFTkJRVU03UVVGRlJDeE5RVUZOTEU5QlFVOHNXVUZCV1R0SlFVZDJRaXhaUVVGWkxHTkJRV2RETEVWQlFVVTdVVUZETlVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUjBGQlJ5eFhRVUZYTEVOQlFVTTdTVUZEYWtNc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCY1VJc1JVRkJSU3hIUVVGSExFbEJRVmM3VVVGRGJrUXNUVUZCVFN4RlFVRkZMRWRCUVVjc1MwRkJTeXhEUVVGRExFVkJRVVVzU1VGQlNTeEpRVUZKTEVsQlFVa3NSVUZCUlN4RFFVRkRPMUZCUld4RExFbEJRVWtzUzBGQlN5eERRVUZETEZOQlFWTXNTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU03V1VGRGNrTXNUVUZCVFN4WFFVRlhMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEdkRFFVRm5ReXhGUVVGRkxFTkJRek5GTEV0QlFVc3NRMEZCUXl4UlFVRlJMRVZCUTJRc1MwRkJTeXhEUVVGRExGTkJRVk1zUlVGRFppeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVTmtMRU5CUVVNN1dVRkRSaXhQUVVGUExFOUJRVThzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUXpsQ0xFTkJRVU1zVlVGQlZTeEZRVUZGTEVWQlFVVXNRMEZEWWl4VlFVRlZMRU5CUVVNc1lVRkJZU3hMUVVGTExFdEJRVXNzUTBGQlF5eGhRVUZoTzJkQ1FVTm9SQ3hYUVVGWExFTkJRVU1zUlVGQlJTeEZRVUZGTEZWQlFWVXNRMEZCUXl4UlFVRlJMRVZCUVVVc1ZVRkJWU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVU0zUkN4RFFVRkRPMUZCUTBvc1EwRkJRenRSUVVWRUxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNiVUpCUVcxQ08xbEJRVVVzVDBGQlR5eExRVUZMTEVOQlFVTTdVVUZGTjBNc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVOd1JDeExRVUZMTEVOQlFVTXNVVUZCVVN4RlFVTmtMRXRCUVVzc1EwRkJReXh0UWtGQmJVSXNRMEZETVVJc1EwRkJRenRSUVVOR0xFbEJRVWtzUTBGQlF5eFJRVUZSTzFsQlFVVXNUMEZCVHl4TFFVRkxMRU5CUVVNN1VVRkROVUlzU1VGQlNTeFJRVUZSTEVOQlFVTXNVVUZCVVN4TFFVRkxMRXRCUVVzc1EwRkJReXhSUVVGUk8xbEJRVVVzVDBGQlR5eExRVUZMTEVOQlFVTTdVVUZGZGtRc1NVRkJTU3hSUVVGUkxFTkJRVU1zWjBKQlFXZENMRXRCUVVzc1MwRkJTeXhEUVVGRExGZEJRVmM3V1VGQlJTeFBRVUZQTEVsQlFVa3NRMEZCUXp0UlFVVnFSU3hOUVVGTkxFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlEzQkNMRTFCUVUwc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3hEUVVONlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RlFVTmtMRXRCUVVzc1EwRkJReXh0UWtGQmJVSXNRMEZETVVJc1EwRkRSaXhEUVVGRExFMUJRVTBzUTBGRFRpeERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRU5CUTFJc1MwRkJTeXhEUVVGRExGZEJRVmNzUzBGQlN5eExRVUZMTEVOQlFVTXNWMEZCVnp0WlFVTjJReXhMUVVGTExFTkJRVU1zWVVGQllTeExRVUZMTEV0QlFVc3NRMEZCUXl4aFFVRmhPMWxCUXpORExGZEJRVmNzUTBGQlF5eEZRVUZGTEVWQlFVVXNTMEZCU3l4RFFVRkRMRkZCUVZFc1JVRkJSU3hMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlEyNUVMRU5CUVVNN1VVRkRSaXhKUVVGSkxFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXp0WlFVRkZMRTlCUVU4c1NVRkJTU3hEUVVGRE8xRkJSVzVETEUxQlFVMHNWVUZCVlN4SFFVRkhMRkZCUVZFc1EwRkJReXhWUVVGVkxFTkJRVU03VVVGRGRrTXNTVUZEUlN4VlFVRlZMRXRCUVVzc2EwSkJRV3RDTEVOQlFVTXNUMEZCVHp0WlFVTjZReXhWUVVGVkxFdEJRVXNzYTBKQlFXdENMRU5CUVVNc1YwRkJWeXhGUVVNM1F5eERRVUZETzFsQlEwUXNUMEZCVHl4TFFVRkxMRU5CUVVNN1VVRkRaaXhEUVVGRE8xRkJSVVFzU1VGRFJTeFZRVUZWTEV0QlFVc3NhMEpCUVd0Q0xFTkJRVU1zVDBGQlR6dFpRVU42UXl4VlFVRlZMRXRCUVVzc2EwSkJRV3RDTEVOQlFVTXNWVUZCVlN4RlFVTTFReXhEUVVGRE8xbEJRMFFzVFVGQlRTeHZRa0ZCYjBJc1IwRkJSeXhQUVVGUExFTkJRMnhETEUxQlFVMHNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhuUTBGQlowTXNSVUZCUlN4RFFVTjJSQ3hMUVVGTExFTkJRVU1zVVVGQlVTeEZRVU5rTEZOQlFWTXNRMEZCUXl4UFFVRlBMRVZCUTJwQ0xGRkJRVkVzUTBGQlF5eFRRVUZUTEVOQlEyNUNMRU5CUTBZc1EwRkJRenRaUVVOR0xFOUJRVThzYjBKQlFXOUNMRU5CUVVNc1NVRkJTU3hEUVVNNVFpeERRVUZETEZWQlFWVXNSVUZCUlN4RlFVRkZMRU5CUTJJc1ZVRkJWU3hEUVVGRExHRkJRV0VzUzBGQlN5eExRVUZMTEVOQlFVTXNZVUZCWVR0blFrRkRhRVFzVjBGQlZ5eERRVUZETEVWQlFVVXNSVUZCUlN4VlFVRlZMRU5CUVVNc1VVRkJVU3hGUVVGRkxGVkJRVlVzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZETjBRc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGRlJDeEpRVUZKTEZWQlFWVXNTMEZCU3l4clFrRkJhMElzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0WlFVTTNReXhOUVVGTkxHOUNRVUZ2UWl4SFFVRkhMRTlCUVU4c1EwRkRiRU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMR2REUVVGblF5eEZRVUZGTEVOQlEzWkVMRXRCUVVzc1EwRkJReXhSUVVGUkxFVkJRMlFzVTBGQlV5eERRVUZETEUxQlFVMHNSVUZEYUVJc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGRFppeERRVU5HTEVOQlFVTTdXVUZEUml4UFFVRlBMRzlDUVVGdlFpeERRVUZETEVsQlFVa3NRMEZET1VJc1EwRkJReXhWUVVGVkxFVkJRVVVzUlVGQlJTeERRVU5pTEZWQlFWVXNRMEZCUXl4aFFVRmhMRXRCUVVzc1MwRkJTeXhEUVVGRExHRkJRV0U3WjBKQlEyaEVMRmRCUVZjc1EwRkJReXhGUVVGRkxFVkJRVVVzVlVGQlZTeERRVUZETEZGQlFWRXNSVUZCUlN4VlFVRlZMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRemRFTEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUlVRc1QwRkJUeXhMUVVGTExFTkJRVU03U1VGRFppeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMR0ZCUVdFc1EwRkJReXhMUVVGeFFpeEZRVUZGTEVkQlFVY3NTVUZCVnp0UlFVTjJSQ3hKUVVGSkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUXpWRExFMUJRVTBzU1VGQlNTeHJRa0ZCYTBJc1EwRkRNVUlzY1VKQlFYRkNMRXRCUVVzc1EwRkJReXhoUVVGaExFOUJRVThzUzBGQlN5eERRVUZETEcxQ1FVRnRRaXhKUVVGSkxGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNVMEZCVXl4SlFVRkpMRk5CUVZNc1EwRkJReXhSUVVGUkxFVkJRVVVzUzBGQlN5eERRVUZETEU5QlFVOHNTVUZCU1N4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVOdVNpeERRVUZETzFGQlEwb3NRMEZCUXp0SlFVTklMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zYTBKQlFXdENMRU5CUTNSQ0xGRkJRV2RDTEVWQlEyaENMRmRCUVcxQ0xFVkJRMjVDTEVkQlFVY3NTVUZCVnp0UlFVVmtMRTFCUVUwc1YwRkJWeXhIUVVGSExFOUJRVThzUTBGRGVrSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExIZENRVUYzUWl4RlFVRkZMRU5CUVVNc1VVRkJVU3hGUVVGRkxGZEJRVmNzUTBGQlF5eERRVU42UlN4RFFVRkRPMUZCUTBZc1RVRkJUU3hOUVVGTkxFZEJRVWNzVDBGQlR5eERRVU53UWl4TlFVRk5MRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zYlVKQlFXMUNMRVZCUVVVc1EwRkJReXhSUVVGUkxFVkJRVVVzVjBGQlZ5eERRVUZETEVOQlEzQkZMRU5CUVVNN1VVRkRSaXhQUVVGUExHdENRVUZyUWl4RFFVRkRPMWxCUTNoQ0xGRkJRVkU3V1VGRFVpeFhRVUZYTzFsQlExZ3NWMEZCVnp0WlFVTllMRTFCUVUwN1UwRkRVQ3hEUVVGRExFTkJRVU03U1VGRFRDeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMR3RDUVVGclFpeERRVU4wUWl4UlFVRm5RaXhGUVVOb1FpeFhRVUZ0UWl4RlFVTnVRaXhoUVVGeFFpeEZRVU55UWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eFJRVUZSTEVWQlFVVXNWMEZCVnl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRE4wVXNUVUZCVFN4cFFrRkJhVUlzUjBGQlJ5eE5RVUZOTEVOQlFVTXNOa0pCUVRaQ0xFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMUZCUTNCR0xFMUJRVTBzYTBKQlFXdENMRWRCUVVjc1RVRkJUU3hEUVVGRExHTkJRV003WVVGRE4wTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNZVUZCWVN4TFFVRkxMR0ZCUVdFc1EwRkJRenRoUVVONFJDeEhRVUZITEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVGRExFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTndReXhQUVVGUExHdENRVUZyUWl4RFFVRkRPMWxCUTNoQ0xGRkJRVkU3V1VGRFVpeFhRVUZYTzFsQlExZ3NZVUZCWVR0WlFVTmlMR2xDUVVGcFFqdFpRVU5xUWl4clFrRkJhMEk3VTBGRGJrSXNRMEZCUXl4RFFVRkRPMGxCUTB3c1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eHBRa0ZCYVVJc1EwRkRja0lzVVVGQlowSXNSVUZEYUVJc1YwRkJiVUlzUlVGRGJrSXNZVUZCY1VJc1JVRkRja0lzUjBGQlJ5eEpRVUZYTzFGQlJXUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1VVRkJVU3hGUVVGRkxGZEJRVmNzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUXpkRkxFMUJRVTBzYVVKQlFXbENMRWRCUVVjc1RVRkJUU3hEUVVGRExEWkNRVUUyUWl4RFFVRkRMR0ZCUVdFc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dFJRVU53Uml4TlFVRk5MR3RDUVVGclFpeEhRVUZITEUxQlFVMHNRMEZCUXl4alFVRmpPMkZCUXpkRExFMUJRVTBzUTBGQlF5eERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExHRkJRV0VzUzBGQlN5eGhRVUZoTEVOQlFVTTdZVUZEZUVRc1IwRkJSeXhEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03VVVGRGNFTXNUMEZCVHl4cFFrRkJhVUlzUTBGQlF6dFpRVU4yUWl4UlFVRlJPMWxCUTFJc1YwRkJWenRaUVVOWUxHRkJRV0U3V1VGRFlpeHBRa0ZCYVVJN1dVRkRha0lzYTBKQlFXdENPMU5CUTI1Q0xFTkJRVU1zUTBGQlF6dEpRVU5NTEVOQlFVTTdRMEZEUmp0QlFVVkVMRTlCUVU4c1JVRkJSU3hoUVVGaExFVkJRVVVzUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdJRUYxZEdodmNtbDZZWFJwYjI1RmNuSnZjaXdnUTJGelkyRmtaU3dnVFc5a1pXeFRaWEoyYVdObExDQlNaWEJ2YzJsMGIzSjVMQ0IwY21GdWMyRmpkR2x2Ym1Gc0lIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2V5Qk5iMlJsYkNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHVmpiM0poZEc5eUxYWmhiR2xrWVhScGIyNWNJanRjYmx4dVpYaHdiM0owSUdWdWRXMGdTWE52YkdGMGFXOXVWR2xsY2lCN1hHNGdJRkJ2YjJ4bFpDQTlJRndpY0c5dmJHVmtYQ0lzWEc0Z0lFSnlhV1JuWlNBOUlGd2lZbkpwWkdkbFhDSXNYRzRnSUZOcGJHOGdQU0JjSW5OcGJHOWNJaXhjYm4xY2JseHVaWGh3YjNKMElHVnVkVzBnVFdWdFltVnljMmhwY0ZOMFlYUjFjeUI3WEc0Z0lFbHVkbWwwWldRZ1BTQmNJbWx1ZG1sMFpXUmNJaXhjYmlBZ1FXTjBhWFpsSUQwZ1hDSmhZM1JwZG1WY0lpeGNiaUFnVTNWemNHVnVaR1ZrSUQwZ1hDSnpkWE53Wlc1a1pXUmNJaXhjYmlBZ1VtVnRiM1psWkNBOUlGd2ljbVZ0YjNabFpGd2lMRnh1ZlZ4dVhHNWxlSEJ2Y25RZ1pXNTFiU0JRY21sdVkybHdZV3hMYVc1a0lIdGNiaUFnVlhObGNpQTlJRndpZFhObGNsd2lMRnh1SUNCSGNtOTFjQ0E5SUZ3aVozSnZkWEJjSWl4Y2JpQWdVMlZ5ZG1salpVRmpZMjkxYm5RZ1BTQmNJbk5sY25acFkyVmZZV05qYjNWdWRGd2lMRnh1SUNCQloyVnVkQ0E5SUZ3aVlXZGxiblJjSWl4Y2JpQWdRWEJwUzJWNUlEMGdYQ0poY0dsZmEyVjVYQ0lzWEc1OVhHNWNibVY0Y0c5eWRDQmxiblZ0SUZOamIzQmxTMmx1WkNCN1hHNGdJRlJsYm1GdWRDQTlJRndpZEdWdVlXNTBYQ0lzWEc0Z0lFOXlaMVZ1YVhRZ1BTQmNJbTl5WjE5MWJtbDBYQ0lzWEc0Z0lGSmxjMjkxY21ObElEMGdYQ0p5WlhOdmRYSmpaVndpTEZ4dWZWeHVYRzVsZUhCdmNuUWdaVzUxYlNCUVpYSnRhWE56YVc5dVEyRjBaV2R2Y25rZ2UxeHVJQ0JCWkcxcGJpQTlJRndpWVdSdGFXNWNJaXhjYmlBZ1EyOXVkR1Z1ZEZKbFlXUWdQU0JjSW1OdmJuUmxiblJmY21WaFpGd2lMRnh1SUNCRGIyNTBaVzUwVjNKcGRHVWdQU0JjSW1OdmJuUmxiblJmZDNKcGRHVmNJaXhjYmlBZ1RXVnRiM0o1SUQwZ1hDSnRaVzF2Y25sY0lpeGNiaUFnUjNKaGNHZ2dQU0JjSW1keVlYQm9YQ0lzWEc0Z0lGWmxZM1J2Y2lBOUlGd2lkbVZqZEc5eVhDSXNYRzRnSUVWNGNHOXlkQ0E5SUZ3aVpYaHdiM0owWENJc1hHNGdJRUpwYkd4cGJtY2dQU0JjSW1KcGJHeHBibWRjSWl4Y2JpQWdRWFZrYVhRZ1BTQmNJbUYxWkdsMFhDSXNYRzRnSUZObFkzVnlhWFI1SUQwZ1hDSnpaV04xY21sMGVWd2lMRnh1SUNCRVlYUmhJRDBnWENKa1lYUmhYQ0lzWEc0Z0lFRjFkRzl0WVhScGIyNGdQU0JjSW1GMWRHOXRZWFJwYjI1Y0lpeGNibjFjYmx4dVpYaHdiM0owSUdWdWRXMGdVbVZ6YjNWeVkyVldhWE5wWW1sc2FYUjVJSHRjYmlBZ1VISnBkbUYwWlNBOUlGd2ljSEpwZG1GMFpWd2lMRnh1SUNCU1pYTnZkWEpqWlVGamJDQTlJRndpY21WemIzVnlZMlZmWVdOc1hDSXNYRzRnSUU5eVoxVnVhWFFnUFNCY0ltOXlaMTkxYm1sMFhDSXNYRzRnSUU5eVoxTjFZblJ5WldVZ1BTQmNJbTl5WjE5emRXSjBjbVZsWENJc1hHNGdJRlJsYm1GdWRDQTlJRndpZEdWdVlXNTBYQ0lzWEc1OVhHNWNibVY0Y0c5eWRDQmxiblZ0SUZOMGIzSmhaMlZMYVc1a0lIdGNiaUFnVUc5emRHZHlaWE1nUFNCY0luQnZjM1JuY21WelhDSXNYRzRnSUVGeVlXNW5ieUE5SUZ3aVlYSmhibWR2WENJc1hHNGdJRkZrY21GdWRDQTlJRndpY1dSeVlXNTBYQ0lzWEc0Z0lFOWlhbVZqZEZOMGIzSmhaMlVnUFNCY0ltOWlhbVZqZEY5emRHOXlZV2RsWENJc1hHNTlYRzVjYm1WNGNHOXlkQ0JsYm5WdElGTjBiM0poWjJWQ2FXNWthVzVuUzJsdVpDQjdYRzRnSUZOb1lYSmxaQ0E5SUZ3aWMyaGhjbVZrWENJc1hHNGdJRVJsWkdsallYUmxaQ0E5SUZ3aVpHVmthV05oZEdWa1hDSXNYRzU5WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JKYzI5c1lYUnBiMjVVYVdWeVQzQjBhVzl1Y3lBOUlFOWlhbVZqZEM1MllXeDFaWE1vU1hOdmJHRjBhVzl1VkdsbGNpazdYRzVsZUhCdmNuUWdZMjl1YzNRZ1RXVnRZbVZ5YzJocGNGTjBZWFIxYzA5d2RHbHZibk1nUFNCUFltcGxZM1F1ZG1Gc2RXVnpLRTFsYldKbGNuTm9hWEJUZEdGMGRYTXBPMXh1Wlhod2IzSjBJR052Ym5OMElGQnlhVzVqYVhCaGJFdHBibVJQY0hScGIyNXpJRDBnVDJKcVpXTjBMblpoYkhWbGN5aFFjbWx1WTJsd1lXeExhVzVrS1R0Y2JtVjRjRzl5ZENCamIyNXpkQ0JUWTI5d1pVdHBibVJQY0hScGIyNXpJRDBnVDJKcVpXTjBMblpoYkhWbGN5aFRZMjl3WlV0cGJtUXBPMXh1Wlhod2IzSjBJR052Ym5OMElGQmxjbTFwYzNOcGIyNURZWFJsWjI5eWVVOXdkR2x2Ym5NZ1BTQlBZbXBsWTNRdWRtRnNkV1Z6S0ZCbGNtMXBjM05wYjI1RFlYUmxaMjl5ZVNrN1hHNWxlSEJ2Y25RZ1kyOXVjM1FnVW1WemIzVnlZMlZXYVhOcFltbHNhWFI1VDNCMGFXOXVjeUE5SUU5aWFtVmpkQzUyWVd4MVpYTW9VbVZ6YjNWeVkyVldhWE5wWW1sc2FYUjVLVHRjYm1WNGNHOXlkQ0JqYjI1emRDQlRkRzl5WVdkbFMybHVaRTl3ZEdsdmJuTWdQU0JQWW1wbFkzUXVkbUZzZFdWektGTjBiM0poWjJWTGFXNWtLVHRjYm1WNGNHOXlkQ0JqYjI1emRDQlRkRzl5WVdkbFFtbHVaR2x1WjB0cGJtUlBjSFJwYjI1eklEMGdUMkpxWldOMExuWmhiSFZsY3loVGRHOXlZV2RsUW1sdVpHbHVaMHRwYm1RcE8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1VrVk1YMUpGVTFSU1NVTlVJRDBnZTF4dUlDQjFjR1JoZEdVNklFTmhjMk5oWkdVdVRrOU9SU3hjYmlBZ1pHVnNaWFJsT2lCRFlYTmpZV1JsTGs1UFRrVXNYRzRnSUc1MWJHeGhZbXhsT2lCbVlXeHpaU3hjYm4wZ1lYTWdZMjl1YzNRN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCU1JVeGZUbFZNVEVsR1dTQTlJSHRjYmlBZ2RYQmtZWFJsT2lCRFlYTmpZV1JsTGs1UFRrVXNYRzRnSUdSbGJHVjBaVG9nUTJGelkyRmtaUzVPVDA1RkxGeHVJQ0J1ZFd4c1lXSnNaVG9nZEhKMVpTeGNibjBnWVhNZ1kyOXVjM1E3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JTUlV4ZlEwRlRRMEZFUlY5RVJWQkZUa1JGVGxRZ1BTQjdYRzRnSUhWd1pHRjBaVG9nUTJGelkyRmtaUzVEUVZORFFVUkZMRnh1SUNCa1pXeGxkR1U2SUVOaGMyTmhaR1V1UTBGVFEwRkVSU3hjYmlBZ2JuVnNiR0ZpYkdVNklHWmhiSE5sTEZ4dWZTQmhjeUJqYjI1emREdGNibHh1Wlhod2IzSjBJR052Ym5OMElGSkZURjlEUVZORFFVUkZYMGxPVTBWU1ZGOVZVRVJCVkVVZ1BTQjdYRzRnSUhWd1pHRjBaVG9nUTJGelkyRmtaUzVEUVZORFFVUkZMRnh1SUNCa1pXeGxkR1U2SUVOaGMyTmhaR1V1VGs5T1JTeGNiaUFnYm5Wc2JHRmliR1U2SUdaaGJITmxMRnh1ZlNCaGN5QmpiMjV6ZER0Y2JseHVaWGh3YjNKMElIUjVjR1VnVkhoQmNtZHpJRDBnWVc1NVcxMDdYRzVjYm1WNGNHOXlkQ0JwYm5SbGNtWmhZMlVnUTNKbFlYUmxWR1Z1WVc1MFNXNXdkWFFnZTF4dUlDQnpiSFZuT2lCemRISnBibWM3WEc0Z0lHNWhiV1U2SUhOMGNtbHVaenRjYmlBZ2FYTnZiR0YwYVc5dVZHbGxjajg2SUVsemIyeGhkR2x2YmxScFpYSTdYRzRnSUhCeWIyWnBiR1ZMWlhrL09pQnpkSEpwYm1jN1hHNGdJSEJ5YjJacGJHVk5aWFJoWkdGMFlUODZJRkpsWTI5eVpEeHpkSEpwYm1jc0lIVnVhMjV2ZDI0K08xeHVmVnh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVOeVpXRjBaVlZ6WlhKSmJuQjFkQ0I3WEc0Z0lHVnRZV2xzUHpvZ2MzUnlhVzVuTzF4dUlDQndhRzl1WlQ4NklITjBjbWx1Wnp0Y2JpQWdaR2x6Y0d4aGVVNWhiV1U2SUhOMGNtbHVaenRjYm4xY2JseHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQkRjbVZoZEdWUGNtZFZibWwwU1c1d2RYUWdlMXh1SUNCMFpXNWhiblJKWkRvZ2MzUnlhVzVuTzF4dUlDQndZWEpsYm5SUGNtZFZibWwwU1dRL09pQnpkSEpwYm1jN1hHNGdJRzVoYldVNklITjBjbWx1Wnp0Y2JpQWdiV1YwWVdSaGRHRS9PaUJTWldOdmNtUThjM1J5YVc1bkxDQjFibXR1YjNkdVBqdGNiaUFnY0hKdlptbHNaVXRsZVQ4NklITjBjbWx1Wnp0Y2JpQWdjSEp2Wm1sc1pVMWxkR0ZrWVhSaFB6b2dVbVZqYjNKa1BITjBjbWx1Wnl3Z2RXNXJibTkzYmo0N1hHNTlYRzVjYm1WNGNHOXlkQ0JwYm5SbGNtWmhZMlVnUTNKbFlYUmxVbTlzWlVsdWNIVjBJSHRjYmlBZ2RHVnVZVzUwU1dRL09pQnpkSEpwYm1jN1hHNGdJR3RsZVRvZ2MzUnlhVzVuTzF4dUlDQnVZVzFsT2lCemRISnBibWM3WEc0Z0lHUmxjMk55YVhCMGFXOXVQem9nYzNSeWFXNW5PMXh1SUNCdFpYUmhaR0YwWVQ4NklGSmxZMjl5WkR4emRISnBibWNzSUhWdWEyNXZkMjQrTzF4dWZWeHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRU55WldGMFpWQmxjbTFwYzNOcGIyNUpibkIxZENCN1hHNGdJR3RsZVRvZ2MzUnlhVzVuTzF4dUlDQmpZWFJsWjI5eWVUb2dVR1Z5YldsemMybHZia05oZEdWbmIzSjVPMXh1SUNCa1pYTmpjbWx3ZEdsdmJqODZJSE4wY21sdVp6dGNibjFjYmx4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCQmMzTnBaMjVTYjJ4bFNXNXdkWFFnZTF4dUlDQjBaVzVoYm5SSlpEb2djM1J5YVc1bk8xeHVJQ0J3Y21sdVkybHdZV3hKWkRvZ2MzUnlhVzVuTzF4dUlDQnliMnhsU1dRNklITjBjbWx1Wnp0Y2JpQWdjMk52Y0dWTGFXNWtPaUJUWTI5d1pVdHBibVE3WEc0Z0lITmpiM0JsU1dRNklITjBjbWx1Wnp0Y2JpQWdhVzVvWlhKcGRFUnZkMjQvT2lCaWIyOXNaV0Z1TzF4dUlDQnpkR0Z5ZEhOQmREODZJRVJoZEdVN1hHNGdJR1Y0Y0dseVpYTkJkRDg2SUVSaGRHVTdYRzRnSUdOdmJtUnBkR2x2Ym5NL09pQlNaV052Y21ROGMzUnlhVzVuTENCMWJtdHViM2R1UGp0Y2JuMWNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JTWldkcGMzUmxjbEpsYzI5MWNtTmxTVzV3ZFhRZ2UxeHVJQ0IwWlc1aGJuUkpaRG9nYzNSeWFXNW5PMXh1SUNCdmNtZFZibWwwU1dRNklITjBjbWx1Wnp0Y2JpQWdjbVZ6YjNWeVkyVlVlWEJsT2lCemRISnBibWM3WEc0Z0lISmxjMjkxY21ObFNXUTZJSE4wY21sdVp6dGNiaUFnZG1semFXSnBiR2wwZVRvZ1VtVnpiM1Z5WTJWV2FYTnBZbWxzYVhSNU8xeHVJQ0J2ZDI1bGNsQnlhVzVqYVhCaGJFbGtQem9nYzNSeWFXNW5PMXh1SUNCelpXNXphWFJwZG1sMGVUODZJSE4wY21sdVp6dGNiaUFnYldWMFlXUmhkR0UvT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0IxYm10dWIzZHVQanRjYm4xY2JseHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQkhjbUZ1ZEZKbGMyOTFjbU5sU1c1d2RYUWdlMXh1SUNCMFpXNWhiblJKWkRvZ2MzUnlhVzVuTzF4dUlDQnlaWE52ZFhKalpVbGtPaUJ6ZEhKcGJtYzdYRzRnSUhCeWFXNWphWEJoYkVsa09pQnpkSEpwYm1jN1hHNGdJSEJsY20xcGMzTnBiMjVMWlhrNklITjBjbWx1Wnp0Y2JpQWdjM1JoY25SelFYUS9PaUJFWVhSbE8xeHVJQ0JsZUhCcGNtVnpRWFEvT2lCRVlYUmxPMXh1SUNCamIyNWthWFJwYjI1elB6b2dVbVZqYjNKa1BITjBjbWx1Wnl3Z2RXNXJibTkzYmo0N1hHNGdJR055WldGMFpXUkNlVkJ5YVc1amFYQmhiRWxrUHpvZ2MzUnlhVzVuTzF4dWZWeHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRU5oYmtGalkyVnpjMGx1Y0hWMElIdGNiaUFnZEdWdVlXNTBTV1E2SUhOMGNtbHVaenRjYmlBZ2NISnBibU5wY0dGc1NXUTZJSE4wY21sdVp6dGNiaUFnY0dWeWJXbHpjMmx2Ymt0bGVUb2djM1J5YVc1bk8xeHVJQ0J5WlhOdmRYSmpaVkJ5YjNSbFkzUmxaRWxrUHpvZ2MzUnlhVzVuTzF4dUlDQnpZMjl3WlV0cGJtUS9PaUJUWTI5d1pVdHBibVE3WEc0Z0lITmpiM0JsU1dRL09pQnpkSEpwYm1jN1hHNGdJR0YwUHpvZ1JHRjBaVHRjYm4xY2JseHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQkJZMk5sYzNORGIyNTBaWGgwSUh0Y2JpQWdkR1Z1WVc1MFNXUTZJSE4wY21sdVp6dGNiaUFnY0hKcGJtTnBjR0ZzU1dRNklITjBjbWx1Wnp0Y2JpQWdjR1Z5YldsemMybHZibk5DZVZOamIzQmxPaUJTWldOdmNtUThjM1J5YVc1bkxDQnpkSEpwYm1kYlhUNDdYRzRnSUdGc2JHOTNaV1JQY21kVmJtbDBTV1J6UW5sUVpYSnRhWE56YVc5dU9pQlNaV052Y21ROGMzUnlhVzVuTENCemRISnBibWRiWFQ0N1hHNGdJSEpsYzI5MWNtTmxSM0poYm5Sek9pQkJjbkpoZVR4N0lISmxjMjkxY21ObFNXUTZJSE4wY21sdVp6c2djR1Z5YldsemMybHZia3RsZVRvZ2MzUnlhVzVuSUgwK08xeHVmVnh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVGeVlXNW5iMEYxZEdoRGIyNTBaWGgwSUh0Y2JpQWdkR1Z1WVc1MFNXUTZJSE4wY21sdVp6dGNiaUFnY0hKcGJtTnBjR0ZzU1dRNklITjBjbWx1Wnp0Y2JpQWdjR1Z5YldsemMybHZia3RsZVRvZ2MzUnlhVzVuTzF4dUlDQmhiR3h2ZDJWa1QzSm5WVzVwZEVsa2N6b2djM1J5YVc1blcxMDdYRzRnSUdGc2JHOTNaV1JTWlhOdmRYSmpaVWxrY3pvZ2MzUnlhVzVuVzEwN1hHNTlYRzVjYm1WNGNHOXlkQ0JwYm5SbGNtWmhZMlVnVVdSeVlXNTBRWFYwYUVacGJIUmxjaUI3WEc0Z0lHMTFjM1E2SUVGeWNtRjVQRkpsWTI5eVpEeHpkSEpwYm1jc0lIVnVhMjV2ZDI0K1BqdGNiaUFnYlhWemRGOXViM1EvT2lCQmNuSmhlVHhTWldOdmNtUThjM1J5YVc1bkxDQjFibXR1YjNkdVBqNDdYRzU5WEc1Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1EzSmxZWFJsVTNSdmNtRm5aVUpwYm1ScGJtZEpibkIxZENCN1hHNGdJSFJsYm1GdWRFbGtPaUJ6ZEhKcGJtYzdYRzRnSUhOMGIzSmhaMlZMYVc1a09pQlRkRzl5WVdkbFMybHVaRHRjYmlBZ1ltbHVaR2x1WjB0cGJtUTZJRk4wYjNKaFoyVkNhVzVrYVc1blMybHVaRHRjYmlBZ1ltbHVaR2x1WjB0bGVUb2djM1J5YVc1bk8xeHVJQ0J5WldkcGIyNDZJSE4wY21sdVp6dGNiaUFnWTI5dVptbG5Qem9nVW1WamIzSmtQSE4wY21sdVp5d2dkVzVyYm05M2JqNDdYRzU5WEc1Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1FtOXZkSE4wY21Gd1VHVnliV2x6YzJsdmJpQjdYRzRnSUd0bGVUb2djM1J5YVc1bk8xeHVJQ0JqWVhSbFoyOXllVG9nVUdWeWJXbHpjMmx2YmtOaGRHVm5iM0o1TzF4dUlDQmtaWE5qY21sd2RHbHZiajg2SUhOMGNtbHVaenRjYm4xY2JseHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQkNiMjkwYzNSeVlYQlNiMnhsSUh0Y2JpQWdhMlY1T2lCemRISnBibWM3WEc0Z0lHNWhiV1U2SUhOMGNtbHVaenRjYmlBZ1pHVnpZM0pwY0hScGIyNC9PaUJ6ZEhKcGJtYzdYRzRnSUhCbGNtMXBjM05wYjI1TFpYbHpPaUJ6ZEhKcGJtZGJYVHRjYm4xY2JseHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQkNiMjkwYzNSeVlYQlBjbWRWYm1sMElIdGNiaUFnYm1GdFpUb2djM1J5YVc1bk8xeHVJQ0J3Y205bWFXeGxTMlY1UHpvZ2MzUnlhVzVuTzF4dUlDQnRaWFJoWkdGMFlUODZJRkpsWTI5eVpEeHpkSEpwYm1jc0lIVnVhMjV2ZDI0K08xeHVJQ0JqYUdsc1pISmxiajg2SUVKdmIzUnpkSEpoY0U5eVoxVnVhWFJiWFR0Y2JuMWNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JDYjI5MGMzUnlZWEJVWlcxd2JHRjBaU0I3WEc0Z0lIUmxibUZ1ZERvZ1EzSmxZWFJsVkdWdVlXNTBTVzV3ZFhRN1hHNGdJSEp2YjNSUGNtZFZibWwwT2lCQ2IyOTBjM1J5WVhCUGNtZFZibWwwTzF4dUlDQndaWEp0YVhOemFXOXVjem9nUW05dmRITjBjbUZ3VUdWeWJXbHpjMmx2Ymx0ZE8xeHVJQ0J5YjJ4bGN6b2dRbTl2ZEhOMGNtRndVbTlzWlZ0ZE8xeHVJQ0J2ZDI1bGNsVnpaWEk2SUVOeVpXRjBaVlZ6WlhKSmJuQjFkRHRjYmlBZ2IzZHVaWEpTYjJ4bFMyVjVPaUJ6ZEhKcGJtYzdYRzU5WEc1Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1VtVnpiM1Z5WTJWVGJtRndjMmh2ZENCN1hHNGdJR2xrT2lCemRISnBibWM3WEc0Z0lIUmxibUZ1ZEVsa09pQnpkSEpwYm1jN1hHNGdJRzl5WjFWdWFYUkpaRG9nYzNSeWFXNW5PMXh1SUNCeVpYTnZkWEpqWlZSNWNHVTZJSE4wY21sdVp6dGNiaUFnY21WemIzVnlZMlZKWkRvZ2MzUnlhVzVuTzF4dUlDQjJhWE5wWW1sc2FYUjVPaUJTWlhOdmRYSmpaVlpwYzJsaWFXeHBkSGs3WEc0Z0lHOTNibVZ5VUhKcGJtTnBjR0ZzU1dRL09pQnpkSEpwYm1jN1hHNGdJSE5sYm5OcGRHbDJhWFI1UHpvZ2MzUnlhVzVuTzF4dUlDQnRaWFJoWkdGMFlUODZJRkpsWTI5eVpEeHpkSEpwYm1jc0lIVnVhMjV2ZDI0K08xeHVmVnh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVkeVlXNTBVMjVoY0hOb2IzUWdlMXh1SUNCcFpEb2djM1J5YVc1bk8xeHVJQ0IwWlc1aGJuUkpaRG9nYzNSeWFXNW5PMXh1SUNCeVpYTnZkWEpqWlVsa09pQnpkSEpwYm1jN1hHNGdJSEJ5YVc1amFYQmhiRWxrT2lCemRISnBibWM3WEc0Z0lIQmxjbTFwYzNOcGIyNUxaWGs2SUhOMGNtbHVaenRjYmlBZ2MzUmhjblJ6UVhRL09pQkVZWFJsTzF4dUlDQmxlSEJwY21WelFYUS9PaUJFWVhSbE8xeHVJQ0JqYjI1a2FYUnBiMjV6UHpvZ1VtVmpiM0prUEhOMGNtbHVaeXdnZFc1cmJtOTNiajQ3WEc0Z0lHTnlaV0YwWldSQ2VWQnlhVzVqYVhCaGJFbGtQem9nYzNSeWFXNW5PMXh1ZlZ4dVhHNWxlSEJ2Y25RZ2FXNTBaWEptWVdObElFVm1abVZqZEdsMlpWQmxjbTFwYzNOcGIyNVRibUZ3YzJodmRDQjdYRzRnSUdsa09pQnpkSEpwYm1jN1hHNGdJSFJsYm1GdWRFbGtPaUJ6ZEhKcGJtYzdYRzRnSUhCeWFXNWphWEJoYkVsa09pQnpkSEpwYm1jN1hHNGdJSEJsY20xcGMzTnBiMjVMWlhrNklITjBjbWx1Wnp0Y2JpQWdjMk52Y0dWTGFXNWtPaUJUWTI5d1pVdHBibVE3WEc0Z0lITmpiM0JsU1dRNklITjBjbWx1Wnp0Y2JpQWdjMjkxY21ObFMybHVaRG9nYzNSeWFXNW5PMXh1SUNCemIzVnlZMlZKWkRvZ2MzUnlhVzVuTzF4dUlDQnpkR0Z5ZEhOQmREODZJRVJoZEdVN1hHNGdJR1Y0Y0dseVpYTkJkRDg2SUVSaGRHVTdYRzU5WEc1Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1FYVjBhSHBFWVhSaFUyOTFjbU5sY3lCN1hHNGdJR3h2WVdSU1pYTnZkWEpqWlQ4NklDaDBaVzVoYm5SSlpEb2djM1J5YVc1bkxDQndjbTkwWldOMFpXUlNaWE52ZFhKalpVbGtPaUJ6ZEhKcGJtY3BJRDArSUZCeWIyMXBjMlU4VW1WemIzVnlZMlZUYm1Gd2MyaHZkQ0I4SUhWdVpHVm1hVzVsWkQ0N1hHNGdJR3hwYzNSU1pYTnZkWEpqWlVkeVlXNTBjejg2SUNoMFpXNWhiblJKWkRvZ2MzUnlhVzVuTENCd2NtOTBaV04wWldSU1pYTnZkWEpqWlVsa09pQnpkSEpwYm1jcElEMCtJRkJ5YjIxcGMyVThSM0poYm5SVGJtRndjMmh2ZEZ0ZFBqdGNiaUFnYkdsemRGQnlhVzVqYVhCaGJFZHlZVzUwY3o4NklDaDBaVzVoYm5SSlpEb2djM1J5YVc1bkxDQndjbWx1WTJsd1lXeEpaRG9nYzNSeWFXNW5LU0E5UGlCUWNtOXRhWE5sUEVkeVlXNTBVMjVoY0hOb2IzUmJYVDQ3WEc0Z0lHeHBjM1JGWm1abFkzUnBkbVZRWlhKdGFYTnphVzl1Y3o4NklDaGNiaUFnSUNCMFpXNWhiblJKWkRvZ2MzUnlhVzVuTEZ4dUlDQWdJSEJ5YVc1amFYQmhiRWxrT2lCemRISnBibWRjYmlBZ0tTQTlQaUJRY205dGFYTmxQRVZtWm1WamRHbDJaVkJsY20xcGMzTnBiMjVUYm1Gd2MyaHZkRnRkUGp0Y2JpQWdiR2x6ZEVWbVptVmpkR2wyWlZCbGNtMXBjM05wYjI1elJtOXlVMk52Y0dVL09pQW9YRzRnSUNBZ2RHVnVZVzUwU1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0J6WTI5d1pVdHBibVE2SUZOamIzQmxTMmx1WkN4Y2JpQWdJQ0J6WTI5d1pVbGtPaUJ6ZEhKcGJtZGNiaUFnS1NBOVBpQlFjbTl0YVhObFBFVm1abVZqZEdsMlpWQmxjbTFwYzNOcGIyNVRibUZ3YzJodmRGdGRQanRjYm4xY2JseHVablZ1WTNScGIyNGdhWE5VYVcxbFZtRnNhV1FvWEc0Z0lHRjBPaUJFWVhSbElId2dkVzVrWldacGJtVmtMRnh1SUNCemRHRnlkSE5CZEQ4NklFUmhkR1VzWEc0Z0lHVjRjR2x5WlhOQmREODZJRVJoZEdWY2JpazZJR0p2YjJ4bFlXNGdlMXh1SUNCamIyNXpkQ0JwYm5OMFlXNTBJRDBnWVhRZ1B6OGdibVYzSUVSaGRHVW9LVHRjYmlBZ2FXWWdLSE4wWVhKMGMwRjBJQ1ltSUdsdWMzUmhiblFnUENCemRHRnlkSE5CZENrZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNCcFppQW9aWGh3YVhKbGMwRjBJQ1ltSUdsdWMzUmhiblFnUGlCbGVIQnBjbVZ6UVhRcElISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ2NtVjBkWEp1SUhSeWRXVTdYRzU5WEc1Y2JtWjFibU4wYVc5dUlITmpiM0JsUzJWNUtITmpiM0JsUzJsdVpEb2dVMk52Y0dWTGFXNWtMQ0J6WTI5d1pVbGtPaUJ6ZEhKcGJtY3BPaUJ6ZEhKcGJtY2dlMXh1SUNCeVpYUjFjbTRnWUNSN2MyTnZjR1ZMYVc1a2ZUb2tlM05qYjNCbFNXUjlZRHRjYm4xY2JseHVablZ1WTNScGIyNGdkRzlCY25KaGVUeFVQaWgyWVd4MVpUb2dWRnRkSUh3Z2RXNWtaV1pwYm1Wa0tUb2dWRnRkSUh0Y2JpQWdjbVYwZFhKdUlIWmhiSFZsSUQ4L0lGdGRPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1luVnBiR1JCY21GdVoyOURiMjUwWlhoMEtHOXdkR2x2Ym5NNklIdGNiaUFnZEdWdVlXNTBTV1E2SUhOMGNtbHVaenRjYmlBZ2NISnBibU5wY0dGc1NXUTZJSE4wY21sdVp6dGNiaUFnY0dWeWJXbHpjMmx2Ymt0bGVUb2djM1J5YVc1bk8xeHVJQ0JoYkd4dmQyVmtUM0puVlc1cGRFbGtjem9nYzNSeWFXNW5XMTA3WEc0Z0lHRnNiRzkzWldSU1pYTnZkWEpqWlVsa2N6b2djM1J5YVc1blcxMDdYRzU5S1RvZ1FYSmhibWR2UVhWMGFFTnZiblJsZUhRZ2UxeHVJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lIUmxibUZ1ZEVsa09pQnZjSFJwYjI1ekxuUmxibUZ1ZEVsa0xGeHVJQ0FnSUhCeWFXNWphWEJoYkVsa09pQnZjSFJwYjI1ekxuQnlhVzVqYVhCaGJFbGtMRnh1SUNBZ0lIQmxjbTFwYzNOcGIyNUxaWGs2SUc5d2RHbHZibk11Y0dWeWJXbHpjMmx2Ymt0bGVTeGNiaUFnSUNCaGJHeHZkMlZrVDNKblZXNXBkRWxrY3pvZ1d5NHVMbTl3ZEdsdmJuTXVZV3hzYjNkbFpFOXlaMVZ1YVhSSlpITmRMRnh1SUNBZ0lHRnNiRzkzWldSU1pYTnZkWEpqWlVsa2N6b2dXeTR1TG05d2RHbHZibk11WVd4c2IzZGxaRkpsYzI5MWNtTmxTV1J6WFN4Y2JpQWdmVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHSjFhV3hrVVdSeVlXNTBSbWxzZEdWeUtHOXdkR2x2Ym5NNklIdGNiaUFnZEdWdVlXNTBTV1E2SUhOMGNtbHVaenRjYmlBZ2NISnBibU5wY0dGc1NXUTZJSE4wY21sdVp6dGNiaUFnY0dWeWJXbHpjMmx2Ymt0bGVUb2djM1J5YVc1bk8xeHVJQ0JoYkd4dmQyVmtUM0puVlc1cGRFbGtjem9nYzNSeWFXNW5XMTA3WEc0Z0lHRnNiRzkzWldSU1pYTnZkWEpqWlVsa2N6b2djM1J5YVc1blcxMDdYRzU5S1RvZ1VXUnlZVzUwUVhWMGFFWnBiSFJsY2lCN1hHNGdJSEpsZEhWeWJpQjdYRzRnSUNBZ2JYVnpkRG9nVzF4dUlDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNCclpYazZJRndpZEdWdVlXNTBYMmxrWENJc1hHNGdJQ0FnSUNBZ0lHMWhkR05vT2lCN0lIWmhiSFZsT2lCdmNIUnBiMjV6TG5SbGJtRnVkRWxrSUgwc1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQnphRzkxYkdRNklGdGNiaUFnSUNBZ0lDQWdJQ0I3SUd0bGVUb2dYQ0p2Y21kZmRXNXBkRjlwWkZ3aUxDQnRZWFJqYURvZ2V5Qmhibms2SUc5d2RHbHZibk11WVd4c2IzZGxaRTl5WjFWdWFYUkpaSE1nZlNCOUxGeHVJQ0FnSUNBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHdGxlVG9nWENKd2NtOTBaV04wWldSZmNtVnpiM1Z5WTJWZmFXUmNJaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHMWhkR05vT2lCN0lHRnVlVG9nYjNCMGFXOXVjeTVoYkd4dmQyVmtVbVZ6YjNWeVkyVkpaSE1nZlN4Y2JpQWdJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0FnSUhzZ2EyVjVPaUJjSW05M2JtVnlYM0J5YVc1amFYQmhiRjlwWkZ3aUxDQnRZWFJqYURvZ2V5QjJZV3gxWlRvZ2IzQjBhVzl1Y3k1d2NtbHVZMmx3WVd4SlpDQjlJSDBzWEc0Z0lDQWdJQ0FnSUYwc1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUYwc1hHNGdJSDA3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmlkV2xzWkVGalkyVnpjME52Ym5SbGVIUW9iM0IwYVc5dWN6b2dlMXh1SUNCMFpXNWhiblJKWkRvZ2MzUnlhVzVuTzF4dUlDQndjbWx1WTJsd1lXeEpaRG9nYzNSeWFXNW5PMXh1SUNCd1pYSnRhWE56YVc5dWN6b2dSV1ptWldOMGFYWmxVR1Z5YldsemMybHZibE51WVhCemFHOTBXMTA3WEc0Z0lHZHlZVzUwY3pvZ1IzSmhiblJUYm1Gd2MyaHZkRnRkTzF4dWZTazZJRUZqWTJWemMwTnZiblJsZUhRZ2UxeHVJQ0JqYjI1emRDQndaWEp0YVhOemFXOXVjMEo1VTJOdmNHVTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lITjBjbWx1WjF0ZFBpQTlJSHQ5TzF4dUlDQmpiMjV6ZENCaGJHeHZkMlZrVDNKblZXNXBkRWxrYzBKNVVHVnliV2x6YzJsdmJqb2dVbVZqYjNKa1BITjBjbWx1Wnl3Z2MzUnlhVzVuVzEwK0lEMGdlMzA3WEc1Y2JpQWdabTl5SUNoamIyNXpkQ0J3WlhKdGFYTnphVzl1SUc5bUlHOXdkR2x2Ym5NdWNHVnliV2x6YzJsdmJuTXBJSHRjYmlBZ0lDQmpiMjV6ZENCclpYa2dQU0J6WTI5d1pVdGxlU2h3WlhKdGFYTnphVzl1TG5OamIzQmxTMmx1WkN3Z2NHVnliV2x6YzJsdmJpNXpZMjl3WlVsa0tUdGNiaUFnSUNCd1pYSnRhWE56YVc5dWMwSjVVMk52Y0dWYmEyVjVYU0E5SUhCbGNtMXBjM05wYjI1elFubFRZMjl3WlZ0clpYbGRJRDgvSUZ0ZE8xeHVJQ0FnSUhCbGNtMXBjM05wYjI1elFubFRZMjl3WlZ0clpYbGRMbkIxYzJnb2NHVnliV2x6YzJsdmJpNXdaWEp0YVhOemFXOXVTMlY1S1R0Y2JpQWdJQ0JwWmlBb2NHVnliV2x6YzJsdmJpNXpZMjl3WlV0cGJtUWdQVDA5SUZOamIzQmxTMmx1WkM1UGNtZFZibWwwS1NCN1hHNGdJQ0FnSUNCaGJHeHZkMlZrVDNKblZXNXBkRWxrYzBKNVVHVnliV2x6YzJsdmJsdHdaWEp0YVhOemFXOXVMbkJsY20xcGMzTnBiMjVMWlhsZElEMWNiaUFnSUNBZ0lDQWdZV3hzYjNkbFpFOXlaMVZ1YVhSSlpITkNlVkJsY20xcGMzTnBiMjViY0dWeWJXbHpjMmx2Ymk1d1pYSnRhWE56YVc5dVMyVjVYU0EvUHlCYlhUdGNiaUFnSUNBZ0lHRnNiRzkzWldSUGNtZFZibWwwU1dSelFubFFaWEp0YVhOemFXOXVXM0JsY20xcGMzTnBiMjR1Y0dWeWJXbHpjMmx2Ymt0bGVWMHVjSFZ6YUNoY2JpQWdJQ0FnSUNBZ2NHVnliV2x6YzJsdmJpNXpZMjl3WlVsa1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lISmxkSFZ5YmlCN1hHNGdJQ0FnZEdWdVlXNTBTV1E2SUc5d2RHbHZibk11ZEdWdVlXNTBTV1FzWEc0Z0lDQWdjSEpwYm1OcGNHRnNTV1E2SUc5d2RHbHZibk11Y0hKcGJtTnBjR0ZzU1dRc1hHNGdJQ0FnY0dWeWJXbHpjMmx2Ym5OQ2VWTmpiM0JsTEZ4dUlDQWdJR0ZzYkc5M1pXUlBjbWRWYm1sMFNXUnpRbmxRWlhKdGFYTnphVzl1TEZ4dUlDQWdJSEpsYzI5MWNtTmxSM0poYm5Sek9pQnZjSFJwYjI1ekxtZHlZVzUwY3k1dFlYQW9LR2R5WVc1MEtTQTlQaUFvZTF4dUlDQWdJQ0FnY21WemIzVnlZMlZKWkRvZ1ozSmhiblF1Y21WemIzVnlZMlZKWkN4Y2JpQWdJQ0FnSUhCbGNtMXBjM05wYjI1TFpYazZJR2R5WVc1MExuQmxjbTFwYzNOcGIyNUxaWGtzWEc0Z0lDQWdmU2twTEZ4dUlDQjlPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1lXSnpkSEpoWTNRZ1kyeGhjM01nUW1GelpVMXZaR1ZzVTJWeWRtbGpaVHhOSUdWNGRHVnVaSE1nVFc5a1pXdzhZbTl2YkdWaGJqNGdKaUI3SUdsa09pQnpkSEpwYm1jZ2ZUNGdaWGgwWlc1a2N5Qk5iMlJsYkZObGNuWnBZMlU4WEc0Z0lFMHNYRzRnSUZKbGNHOXphWFJ2Y25rOFRTd2dZVzU1UGx4dVBpQjdYRzRnSUhCeWIzUmxZM1JsWkNCamIyNXpkSEoxWTNSdmNpaGpiR0Y2ZWpvZ2JtVjNJQ2dwSUQwK0lFMHBJSHRjYmlBZ0lDQnpkWEJsY2loamJHRjZlaWs3WEc0Z0lIMWNibHh1SUNCd2NtOTBaV04wWldRZ2JtVjNUVzlrWld3OFZENG9ZMnhoZW5vNklHNWxkeUFvS1NBOVBpQlVMQ0JrWVhSaE9pQlFZWEowYVdGc1BGUStLVG9nVkNCN1hHNGdJQ0FnY21WMGRYSnVJRTlpYW1WamRDNWhjM05wWjI0b2JtVjNJR05zWVhwNktDa2dZWE1nYjJKcVpXTjBMQ0JrWVhSaElHRnpJRzlpYW1WamRDa2dZWE1nVkR0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdOeVpXRjBaVTl1WlNoa1lYUmhPaUJRWVhKMGFXRnNQRTArTENBdUxpNWhjbWR6T2lCaGJubGJYU2s2SUZCeWIyMXBjMlU4VFQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuSmxjRzh1WTNKbFlYUmxLRTlpYW1WamRDNWhjM05wWjI0b2UzMGdZWE1nVFN3Z1pHRjBZU0JoY3lCdlltcGxZM1FwTENBdUxpNWhjbWR6S1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdkbGRFSjVTV1FvYVdRNklITjBjbWx1Wnl3Z0xpNHVZWEpuY3pvZ1lXNTVXMTBwT2lCUWNtOXRhWE5sUEUwK0lIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXlaWEJ2TG5KbFlXUW9hV1FzSUM0dUxtRnlaM01wTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nZFhCa1lYUmxUMjVsS0dsa09pQnpkSEpwYm1jc0lIQmhkR05vT2lCUVlYSjBhV0ZzUEUwK0xDQXVMaTVoY21kek9pQmhibmxiWFNrNklGQnliMjFwYzJVOFRUNGdlMXh1SUNBZ0lHTnZibk4wSUdWNGFYTjBhVzVuSUQwZ1lYZGhhWFFnZEdocGN5NXlaWEJ2TG5KbFlXUW9hV1FzSUM0dUxtRnlaM01wTzF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5KbGNHOHVkWEJrWVhSbEtFOWlhbVZqZEM1aGMzTnBaMjRvWlhocGMzUnBibWNzSUhCaGRHTm9LU3dnTGk0dVlYSm5jeWs3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJrWld4bGRHVkNlVWxrS0dsa09pQnpkSEpwYm1jc0lDNHVMbUZ5WjNNNklHRnVlVnRkS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZWGRoYVhRZ2RHaHBjeTV5WlhCdkxtUmxiR1YwWlNocFpDd2dMaTR1WVhKbmN5azdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5Qm1hVzVrVDI1bFFuazhTeUJsZUhSbGJtUnpJR3RsZVc5bUlFMGdKaUJ6ZEhKcGJtYytLRnh1SUNBZ0lHdGxlVG9nU3l4Y2JpQWdJQ0IyWVd4MVpUb2dUVnRMWFN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEUwK0lIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXlaWEJ2TG1acGJtUlBibVZDZVNoclpYa3NJSFpoYkhWbExDQXVMaTVoY21kektUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHWnBibVJOWVc1NVFuazhTeUJsZUhSbGJtUnpJR3RsZVc5bUlFMGdKaUJ6ZEhKcGJtYytLRnh1SUNBZ0lHdGxlVG9nU3l4Y2JpQWdJQ0IyWVd4MVpUb2dUVnRMWFN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEUxYlhUNGdlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbkpsY0c4dWMyVnNaV04wS0NrdWQyaGxjbVVvZXlCYmEyVjVYVG9nZG1Gc2RXVWdmU0JoY3lCaGJua3BMbVY0WldOMWRHVW9MaTR1WVhKbmN5azdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QnNhWE4wUVd4c0tDNHVMbUZ5WjNNNklHRnVlVnRkS1RvZ1VISnZiV2x6WlR4TlcxMCtJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV5WlhCdkxuTmxiR1ZqZENncExtVjRaV04xZEdVb0xpNHVZWEpuY3lrN1hHNGdJSDFjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHbGtLQ2s2SUhOMGNtbHVaeUI3WEc0Z0lISmxkSFZ5YmlCamNubHdkRzh1Y21GdVpHOXRWVlZKUkNncE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY21Wc1lYUnBiMjVKWkNoMllXeDFaVG9nYzNSeWFXNW5JSHdnZXlCcFpEb2djM1J5YVc1bklIMHBPaUJ6ZEhKcGJtY2dlMXh1SUNCeVpYUjFjbTRnZEhsd1pXOW1JSFpoYkhWbElEMDlQU0JjSW5OMGNtbHVaMXdpSUQ4Z2RtRnNkV1VnT2lCMllXeDFaUzVwWkR0Y2JuMWNibHh1Wlhod2IzSjBJR05zWVhOeklFRjFkR2g2VTJWeWRtbGpaU0I3WEc0Z0lIQnlhWFpoZEdVZ2NtVmhaRzl1YkhrZ1pHRjBZVk52ZFhKalpYTTZJRUYxZEdoNlJHRjBZVk52ZFhKalpYTTdYRzVjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9aR0YwWVZOdmRYSmpaWE02SUVGMWRHaDZSR0YwWVZOdmRYSmpaWE1nUFNCN2ZTa2dlMXh1SUNBZ0lIUm9hWE11WkdGMFlWTnZkWEpqWlhNZ1BTQmtZWFJoVTI5MWNtTmxjenRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR05oYmtGalkyVnpjeWhwYm5CMWREb2dRMkZ1UVdOalpYTnpTVzV3ZFhRc0lDNHVMbUZ5WjNNNklHRnVlVnRkS1RvZ1VISnZiV2x6WlR4aWIyOXNaV0Z1UGlCN1hHNGdJQ0FnWTI5dWMzUWdZWFFnUFNCcGJuQjFkQzVoZENBL1B5QnVaWGNnUkdGMFpTZ3BPMXh1WEc0Z0lDQWdhV1lnS0dsdWNIVjBMbk5qYjNCbFMybHVaQ0FtSmlCcGJuQjFkQzV6WTI5d1pVbGtLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQndaWEp0YVhOemFXOXVjeUE5SUdGM1lXbDBJSFJvYVhNdVpHRjBZVk52ZFhKalpYTXViR2x6ZEVWbVptVmpkR2wyWlZCbGNtMXBjM05wYjI1elJtOXlVMk52Y0dVL0xpaGNiaUFnSUNBZ0lDQWdhVzV3ZFhRdWRHVnVZVzUwU1dRc1hHNGdJQ0FnSUNBZ0lHbHVjSFYwTG5OamIzQmxTMmx1WkN4Y2JpQWdJQ0FnSUNBZ2FXNXdkWFF1YzJOdmNHVkpaRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBiMEZ5Y21GNUtIQmxjbTFwYzNOcGIyNXpLUzV6YjIxbEtGeHVJQ0FnSUNBZ0lDQW9jR1Z5YldsemMybHZiaWtnUFQ1Y2JpQWdJQ0FnSUNBZ0lDQndaWEp0YVhOemFXOXVMbkJsY20xcGMzTnBiMjVMWlhrZ1BUMDlJR2x1Y0hWMExuQmxjbTFwYzNOcGIyNUxaWGtnSmlaY2JpQWdJQ0FnSUNBZ0lDQnBjMVJwYldWV1lXeHBaQ2hoZEN3Z2NHVnliV2x6YzJsdmJpNXpkR0Z5ZEhOQmRDd2djR1Z5YldsemMybHZiaTVsZUhCcGNtVnpRWFFwWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNnaGFXNXdkWFF1Y21WemIzVnlZMlZRY205MFpXTjBaV1JKWkNrZ2NtVjBkWEp1SUdaaGJITmxPMXh1WEc0Z0lDQWdZMjl1YzNRZ2NtVnpiM1Z5WTJVZ1BTQmhkMkZwZENCMGFHbHpMbVJoZEdGVGIzVnlZMlZ6TG14dllXUlNaWE52ZFhKalpUOHVLRnh1SUNBZ0lDQWdhVzV3ZFhRdWRHVnVZVzUwU1dRc1hHNGdJQ0FnSUNCcGJuQjFkQzV5WlhOdmRYSmpaVkJ5YjNSbFkzUmxaRWxrWEc0Z0lDQWdLVHRjYmlBZ0lDQnBaaUFvSVhKbGMyOTFjbU5sS1NCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUNBZ2FXWWdLSEpsYzI5MWNtTmxMblJsYm1GdWRFbGtJQ0U5UFNCcGJuQjFkQzUwWlc1aGJuUkpaQ2tnY21WMGRYSnVJR1poYkhObE8xeHVYRzRnSUNBZ2FXWWdLSEpsYzI5MWNtTmxMbTkzYm1WeVVISnBibU5wY0dGc1NXUWdQVDA5SUdsdWNIVjBMbkJ5YVc1amFYQmhiRWxrS1NCeVpYUjFjbTRnZEhKMVpUdGNibHh1SUNBZ0lHTnZibk4wSUdkeVlXNTBjeUE5SUhSdlFYSnlZWGtvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG1SaGRHRlRiM1Z5WTJWekxteHBjM1JTWlhOdmRYSmpaVWR5WVc1MGN6OHVLRnh1SUNBZ0lDQWdJQ0JwYm5CMWRDNTBaVzVoYm5SSlpDeGNiaUFnSUNBZ0lDQWdhVzV3ZFhRdWNtVnpiM1Z5WTJWUWNtOTBaV04wWldSSlpGeHVJQ0FnSUNBZ0tWeHVJQ0FnSUNrdVptbHNkR1Z5S0Z4dUlDQWdJQ0FnS0dkeVlXNTBLU0E5UGx4dUlDQWdJQ0FnSUNCbmNtRnVkQzV3Y21sdVkybHdZV3hKWkNBOVBUMGdhVzV3ZFhRdWNISnBibU5wY0dGc1NXUWdKaVpjYmlBZ0lDQWdJQ0FnWjNKaGJuUXVjR1Z5YldsemMybHZia3RsZVNBOVBUMGdhVzV3ZFhRdWNHVnliV2x6YzJsdmJrdGxlU0FtSmx4dUlDQWdJQ0FnSUNCcGMxUnBiV1ZXWVd4cFpDaGhkQ3dnWjNKaGJuUXVjM1JoY25SelFYUXNJR2R5WVc1MExtVjRjR2x5WlhOQmRDbGNiaUFnSUNBcE8xeHVJQ0FnSUdsbUlDaG5jbUZ1ZEhNdWJHVnVaM1JvSUQ0Z01Da2djbVYwZFhKdUlIUnlkV1U3WEc1Y2JpQWdJQ0JqYjI1emRDQjJhWE5wWW1sc2FYUjVJRDBnY21WemIzVnlZMlV1ZG1semFXSnBiR2wwZVR0Y2JpQWdJQ0JwWmlBb1hHNGdJQ0FnSUNCMmFYTnBZbWxzYVhSNUlEMDlQU0JTWlhOdmRYSmpaVlpwYzJsaWFXeHBkSGt1VUhKcGRtRjBaU0I4ZkZ4dUlDQWdJQ0FnZG1semFXSnBiR2wwZVNBOVBUMGdVbVZ6YjNWeVkyVldhWE5wWW1sc2FYUjVMbEpsYzI5MWNtTmxRV05zWEc0Z0lDQWdLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tGeHVJQ0FnSUNBZ2RtbHphV0pwYkdsMGVTQTlQVDBnVW1WemIzVnlZMlZXYVhOcFltbHNhWFI1TGs5eVoxVnVhWFFnZkh4Y2JpQWdJQ0FnSUhacGMybGlhV3hwZEhrZ1BUMDlJRkpsYzI5MWNtTmxWbWx6YVdKcGJHbDBlUzVQY21kVGRXSjBjbVZsWEc0Z0lDQWdLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmxabVpsWTNScGRtVlFaWEp0YVhOemFXOXVjeUE5SUhSdlFYSnlZWGtvWEc0Z0lDQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdVpHRjBZVk52ZFhKalpYTXViR2x6ZEVWbVptVmpkR2wyWlZCbGNtMXBjM05wYjI1elJtOXlVMk52Y0dVL0xpaGNiaUFnSUNBZ0lDQWdJQ0JwYm5CMWRDNTBaVzVoYm5SSlpDeGNiaUFnSUNBZ0lDQWdJQ0JUWTI5d1pVdHBibVF1VDNKblZXNXBkQ3hjYmlBZ0lDQWdJQ0FnSUNCeVpYTnZkWEpqWlM1dmNtZFZibWwwU1dSY2JpQWdJQ0FnSUNBZ0tWeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCbFptWmxZM1JwZG1WUVpYSnRhWE56YVc5dWN5NXpiMjFsS0Z4dUlDQWdJQ0FnSUNBb2NHVnliV2x6YzJsdmJpa2dQVDVjYmlBZ0lDQWdJQ0FnSUNCd1pYSnRhWE56YVc5dUxuQmxjbTFwYzNOcGIyNUxaWGtnUFQwOUlHbHVjSFYwTG5CbGNtMXBjM05wYjI1TFpYa2dKaVpjYmlBZ0lDQWdJQ0FnSUNCcGMxUnBiV1ZXWVd4cFpDaGhkQ3dnY0dWeWJXbHpjMmx2Ymk1emRHRnlkSE5CZEN3Z2NHVnliV2x6YzJsdmJpNWxlSEJwY21WelFYUXBYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2gyYVhOcFltbHNhWFI1SUQwOVBTQlNaWE52ZFhKalpWWnBjMmxpYVd4cGRIa3VWR1Z1WVc1MEtTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCbFptWmxZM1JwZG1WUVpYSnRhWE56YVc5dWN5QTlJSFJ2UVhKeVlYa29YRzRnSUNBZ0lDQWdJR0YzWVdsMElIUm9hWE11WkdGMFlWTnZkWEpqWlhNdWJHbHpkRVZtWm1WamRHbDJaVkJsY20xcGMzTnBiMjV6Um05eVUyTnZjR1UvTGloY2JpQWdJQ0FnSUNBZ0lDQnBibkIxZEM1MFpXNWhiblJKWkN4Y2JpQWdJQ0FnSUNBZ0lDQlRZMjl3WlV0cGJtUXVWR1Z1WVc1MExGeHVJQ0FnSUNBZ0lDQWdJR2x1Y0hWMExuUmxibUZ1ZEVsa1hHNGdJQ0FnSUNBZ0lDbGNiaUFnSUNBZ0lDazdYRzRnSUNBZ0lDQnlaWFIxY200Z1pXWm1aV04wYVhabFVHVnliV2x6YzJsdmJuTXVjMjl0WlNoY2JpQWdJQ0FnSUNBZ0tIQmxjbTFwYzNOcGIyNHBJRDArWEc0Z0lDQWdJQ0FnSUNBZ2NHVnliV2x6YzJsdmJpNXdaWEp0YVhOemFXOXVTMlY1SUQwOVBTQnBibkIxZEM1d1pYSnRhWE56YVc5dVMyVjVJQ1ltWEc0Z0lDQWdJQ0FnSUNBZ2FYTlVhVzFsVm1Gc2FXUW9ZWFFzSUhCbGNtMXBjM05wYjI0dWMzUmhjblJ6UVhRc0lIQmxjbTFwYzNOcGIyNHVaWGh3YVhKbGMwRjBLVnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJ5WlhGMWFYSmxRV05qWlhOektHbHVjSFYwT2lCRFlXNUJZMk5sYzNOSmJuQjFkQ3dnTGk0dVlYSm5jem9nWVc1NVcxMHBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCcFppQW9JU2hoZDJGcGRDQjBhR2x6TG1OaGJrRmpZMlZ6Y3locGJuQjFkQ3dnTGk0dVlYSm5jeWtwS1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1FYVjBhRzl5YVhwaGRHbHZia1Z5Y205eUtGeHVJQ0FnSUNBZ0lDQmdRV05qWlhOeklHUmxibWxsWkNCbWIzSWdKSHRwYm5CMWRDNXdaWEp0YVhOemFXOXVTMlY1ZlNCdmJpQWtlMmx1Y0hWMExuSmxjMjkxY21ObFVISnZkR1ZqZEdWa1NXUWdQejhnYzJOdmNHVkxaWGtvYVc1d2RYUXVjMk52Y0dWTGFXNWtJRDgvSUZOamIzQmxTMmx1WkM1U1pYTnZkWEpqWlN3Z2FXNXdkWFF1YzJOdmNHVkpaQ0EvUHlCY0lsd2lLWDFnWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR0oxYVd4a1FXTmpaWE56UTI5dWRHVjRkQ2hjYmlBZ0lDQjBaVzVoYm5SSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUhCeWFXNWphWEJoYkVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4QlkyTmxjM05EYjI1MFpYaDBQaUI3WEc0Z0lDQWdZMjl1YzNRZ2NHVnliV2x6YzJsdmJuTWdQU0IwYjBGeWNtRjVLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVrWVhSaFUyOTFjbU5sY3k1c2FYTjBSV1ptWldOMGFYWmxVR1Z5YldsemMybHZibk0vTGloMFpXNWhiblJKWkN3Z2NISnBibU5wY0dGc1NXUXBYRzRnSUNBZ0tUdGNiaUFnSUNCamIyNXpkQ0JuY21GdWRITWdQU0IwYjBGeWNtRjVLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVrWVhSaFUyOTFjbU5sY3k1c2FYTjBVSEpwYm1OcGNHRnNSM0poYm5SelB5NG9kR1Z1WVc1MFNXUXNJSEJ5YVc1amFYQmhiRWxrS1Z4dUlDQWdJQ2s3WEc0Z0lDQWdjbVYwZFhKdUlHSjFhV3hrUVdOalpYTnpRMjl1ZEdWNGRDaDdYRzRnSUNBZ0lDQjBaVzVoYm5SSlpDeGNiaUFnSUNBZ0lIQnlhVzVqYVhCaGJFbGtMRnh1SUNBZ0lDQWdjR1Z5YldsemMybHZibk1zWEc0Z0lDQWdJQ0JuY21GdWRITXNYRzRnSUNBZ2ZTazdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QmlkV2xzWkVGeVlXNW5iME52Ym5SbGVIUW9YRzRnSUNBZ2RHVnVZVzUwU1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0J3Y21sdVkybHdZV3hKWkRvZ2MzUnlhVzVuTEZ4dUlDQWdJSEJsY20xcGMzTnBiMjVMWlhrNklITjBjbWx1Wnl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEVGeVlXNW5iMEYxZEdoRGIyNTBaWGgwUGlCN1hHNGdJQ0FnWTI5dWMzUWdZV05qWlhOeklEMGdZWGRoYVhRZ2RHaHBjeTVpZFdsc1pFRmpZMlZ6YzBOdmJuUmxlSFFvZEdWdVlXNTBTV1FzSUhCeWFXNWphWEJoYkVsa0xDQXVMaTVoY21kektUdGNiaUFnSUNCamIyNXpkQ0JoYkd4dmQyVmtUM0puVlc1cGRFbGtjeUE5SUdGalkyVnpjeTVoYkd4dmQyVmtUM0puVlc1cGRFbGtjMEo1VUdWeWJXbHpjMmx2Ymx0d1pYSnRhWE56YVc5dVMyVjVYU0EvUHlCYlhUdGNiaUFnSUNCamIyNXpkQ0JoYkd4dmQyVmtVbVZ6YjNWeVkyVkpaSE1nUFNCaFkyTmxjM011Y21WemIzVnlZMlZIY21GdWRITmNiaUFnSUNBZ0lDNW1hV3gwWlhJb0tHZHlZVzUwS1NBOVBpQm5jbUZ1ZEM1d1pYSnRhWE56YVc5dVMyVjVJRDA5UFNCd1pYSnRhWE56YVc5dVMyVjVLVnh1SUNBZ0lDQWdMbTFoY0Nnb1ozSmhiblFwSUQwK0lHZHlZVzUwTG5KbGMyOTFjbU5sU1dRcE8xeHVJQ0FnSUhKbGRIVnliaUJpZFdsc1pFRnlZVzVuYjBOdmJuUmxlSFFvZTF4dUlDQWdJQ0FnZEdWdVlXNTBTV1FzWEc0Z0lDQWdJQ0J3Y21sdVkybHdZV3hKWkN4Y2JpQWdJQ0FnSUhCbGNtMXBjM05wYjI1TFpYa3NYRzRnSUNBZ0lDQmhiR3h2ZDJWa1QzSm5WVzVwZEVsa2N5eGNiaUFnSUNBZ0lHRnNiRzkzWldSU1pYTnZkWEpqWlVsa2N5eGNiaUFnSUNCOUtUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHSjFhV3hrVVdSeVlXNTBSbWxzZEdWeUtGeHVJQ0FnSUhSbGJtRnVkRWxrT2lCemRISnBibWNzWEc0Z0lDQWdjSEpwYm1OcGNHRnNTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQndaWEp0YVhOemFXOXVTMlY1T2lCemRISnBibWNzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhSWkhKaGJuUkJkWFJvUm1sc2RHVnlQaUI3WEc0Z0lDQWdZMjl1YzNRZ1lXTmpaWE56SUQwZ1lYZGhhWFFnZEdocGN5NWlkV2xzWkVGalkyVnpjME52Ym5SbGVIUW9kR1Z1WVc1MFNXUXNJSEJ5YVc1amFYQmhiRWxrTENBdUxpNWhjbWR6S1R0Y2JpQWdJQ0JqYjI1emRDQmhiR3h2ZDJWa1QzSm5WVzVwZEVsa2N5QTlJR0ZqWTJWemN5NWhiR3h2ZDJWa1QzSm5WVzVwZEVsa2MwSjVVR1Z5YldsemMybHZibHR3WlhKdGFYTnphVzl1UzJWNVhTQS9QeUJiWFR0Y2JpQWdJQ0JqYjI1emRDQmhiR3h2ZDJWa1VtVnpiM1Z5WTJWSlpITWdQU0JoWTJObGMzTXVjbVZ6YjNWeVkyVkhjbUZ1ZEhOY2JpQWdJQ0FnSUM1bWFXeDBaWElvS0dkeVlXNTBLU0E5UGlCbmNtRnVkQzV3WlhKdGFYTnphVzl1UzJWNUlEMDlQU0J3WlhKdGFYTnphVzl1UzJWNUtWeHVJQ0FnSUNBZ0xtMWhjQ2dvWjNKaGJuUXBJRDArSUdkeVlXNTBMbkpsYzI5MWNtTmxTV1FwTzF4dUlDQWdJSEpsZEhWeWJpQmlkV2xzWkZGa2NtRnVkRVpwYkhSbGNpaDdYRzRnSUNBZ0lDQjBaVzVoYm5SSlpDeGNiaUFnSUNBZ0lIQnlhVzVqYVhCaGJFbGtMRnh1SUNBZ0lDQWdjR1Z5YldsemMybHZia3RsZVN4Y2JpQWdJQ0FnSUdGc2JHOTNaV1JQY21kVmJtbDBTV1J6TEZ4dUlDQWdJQ0FnWVd4c2IzZGxaRkpsYzI5MWNtTmxTV1J6TEZ4dUlDQWdJSDBwTzF4dUlDQjlYRzU5WEc1Y2JtVjRjRzl5ZENCN0lIUnlZVzV6WVdOMGFXOXVZV3dnZlR0Y2JpSmRmUT09Il19
291
+ //# sourceMappingURL=org-based-authorization-system.js.map
292
+ //# sourceMappingURL=org-based-authorization-system.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespaces/org-based-authorization-system.cjs","sourceRoot":"","sources":["namespaces/org-based-authorization-system.js"],"names":[],"mappings":"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"}