@interop/wallet-core 0.62.0 → 0.66.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (321) hide show
  1. package/README.md +41 -16
  2. package/dist/clientAnnex/credentialAnchoredGenesis.d.ts +46 -26
  3. package/dist/clientAnnex/credentialAnchoredGenesis.d.ts.map +1 -1
  4. package/dist/clientAnnex/credentialAnchoredGenesis.js +91 -39
  5. package/dist/clientAnnex/credentialAnchoredGenesis.js.map +1 -1
  6. package/dist/clientAnnex/establish.d.ts +119 -35
  7. package/dist/clientAnnex/establish.d.ts.map +1 -1
  8. package/dist/clientAnnex/establish.js +227 -160
  9. package/dist/clientAnnex/establish.js.map +1 -1
  10. package/dist/clientAnnex/forget.d.ts +18 -8
  11. package/dist/clientAnnex/forget.d.ts.map +1 -1
  12. package/dist/clientAnnex/forget.js +37 -64
  13. package/dist/clientAnnex/forget.js.map +1 -1
  14. package/dist/clientAnnex/forgetLast.d.ts +85 -38
  15. package/dist/clientAnnex/forgetLast.d.ts.map +1 -1
  16. package/dist/clientAnnex/forgetLast.js +155 -98
  17. package/dist/clientAnnex/forgetLast.js.map +1 -1
  18. package/dist/clientAnnex/gc.d.ts +3 -2
  19. package/dist/clientAnnex/gc.d.ts.map +1 -1
  20. package/dist/clientAnnex/gc.js +16 -7
  21. package/dist/clientAnnex/gc.js.map +1 -1
  22. package/dist/clientAnnex/heal.d.ts +65 -14
  23. package/dist/clientAnnex/heal.d.ts.map +1 -1
  24. package/dist/clientAnnex/heal.js +397 -298
  25. package/dist/clientAnnex/heal.js.map +1 -1
  26. package/dist/clientAnnex/index.d.ts +23 -7
  27. package/dist/clientAnnex/index.d.ts.map +1 -1
  28. package/dist/clientAnnex/index.js +26 -7
  29. package/dist/clientAnnex/index.js.map +1 -1
  30. package/dist/clientAnnex/ladder.d.ts +58 -0
  31. package/dist/clientAnnex/ladder.d.ts.map +1 -1
  32. package/dist/clientAnnex/ladder.js +249 -41
  33. package/dist/clientAnnex/ladder.js.map +1 -1
  34. package/dist/clientAnnex/ladderAnchored.d.ts +148 -22
  35. package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -1
  36. package/dist/clientAnnex/ladderAnchored.js +391 -346
  37. package/dist/clientAnnex/ladderAnchored.js.map +1 -1
  38. package/dist/clientAnnex/log.d.ts +237 -53
  39. package/dist/clientAnnex/log.d.ts.map +1 -1
  40. package/dist/clientAnnex/log.js +533 -198
  41. package/dist/clientAnnex/log.js.map +1 -1
  42. package/dist/clientAnnex/mend.d.ts +12 -6
  43. package/dist/clientAnnex/mend.d.ts.map +1 -1
  44. package/dist/clientAnnex/mend.js +44 -72
  45. package/dist/clientAnnex/mend.js.map +1 -1
  46. package/dist/clientAnnex/recoveryLadderAnchored.d.ts +6 -4
  47. package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -1
  48. package/dist/clientAnnex/recoveryLadderAnchored.js +56 -35
  49. package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -1
  50. package/dist/clientAnnex/spaceCapability.d.ts +123 -0
  51. package/dist/clientAnnex/spaceCapability.d.ts.map +1 -0
  52. package/dist/clientAnnex/spaceCapability.js +152 -0
  53. package/dist/clientAnnex/spaceCapability.js.map +1 -0
  54. package/dist/clientAnnex/stages.d.ts +63 -0
  55. package/dist/clientAnnex/stages.d.ts.map +1 -0
  56. package/dist/clientAnnex/stages.js +64 -0
  57. package/dist/clientAnnex/stages.js.map +1 -0
  58. package/dist/clientAnnex/zcap.d.ts +1 -1
  59. package/dist/clientAnnex/zcap.d.ts.map +1 -1
  60. package/dist/clientAnnex/zcap.js +42 -35
  61. package/dist/clientAnnex/zcap.js.map +1 -1
  62. package/dist/clients/policy.d.ts +15 -1
  63. package/dist/clients/policy.d.ts.map +1 -1
  64. package/dist/clients/policy.js +12 -6
  65. package/dist/clients/policy.js.map +1 -1
  66. package/dist/clients/revocation.d.ts +18 -10
  67. package/dist/clients/revocation.d.ts.map +1 -1
  68. package/dist/clients/revocation.js +13 -5
  69. package/dist/clients/revocation.js.map +1 -1
  70. package/dist/clients/rosterPolicy.d.ts +10 -2
  71. package/dist/clients/rosterPolicy.d.ts.map +1 -1
  72. package/dist/clients/rosterPolicy.js +41 -24
  73. package/dist/clients/rosterPolicy.js.map +1 -1
  74. package/dist/descriptors/acquire.d.ts.map +1 -1
  75. package/dist/descriptors/acquire.js +6 -23
  76. package/dist/descriptors/acquire.js.map +1 -1
  77. package/dist/descriptors/cipher.d.ts.map +1 -1
  78. package/dist/descriptors/cipher.js +5 -0
  79. package/dist/descriptors/cipher.js.map +1 -1
  80. package/dist/descriptors/errors.d.ts +43 -0
  81. package/dist/descriptors/errors.d.ts.map +1 -0
  82. package/dist/descriptors/errors.js +45 -0
  83. package/dist/descriptors/errors.js.map +1 -0
  84. package/dist/descriptors/index.d.ts +5 -0
  85. package/dist/descriptors/index.d.ts.map +1 -1
  86. package/dist/descriptors/index.js +5 -0
  87. package/dist/descriptors/index.js.map +1 -1
  88. package/dist/enrollment/enrollment.d.ts +37 -10
  89. package/dist/enrollment/enrollment.d.ts.map +1 -1
  90. package/dist/enrollment/enrollment.js +52 -15
  91. package/dist/enrollment/enrollment.js.map +1 -1
  92. package/dist/genesis/accountGenesis.d.ts +42 -11
  93. package/dist/genesis/accountGenesis.d.ts.map +1 -1
  94. package/dist/genesis/accountGenesis.js +80 -22
  95. package/dist/genesis/accountGenesis.js.map +1 -1
  96. package/dist/genesis/index.d.ts +3 -1
  97. package/dist/genesis/index.d.ts.map +1 -1
  98. package/dist/genesis/index.js +3 -1
  99. package/dist/genesis/index.js.map +1 -1
  100. package/dist/identity/agents.d.ts +17 -1
  101. package/dist/identity/agents.d.ts.map +1 -1
  102. package/dist/identity/agents.js +23 -7
  103. package/dist/identity/agents.js.map +1 -1
  104. package/dist/identity/index.d.ts +3 -1
  105. package/dist/identity/index.d.ts.map +1 -1
  106. package/dist/identity/index.js +3 -1
  107. package/dist/identity/index.js.map +1 -1
  108. package/dist/index.d.ts +6 -3
  109. package/dist/index.d.ts.map +1 -1
  110. package/dist/index.js +6 -3
  111. package/dist/index.js.map +1 -1
  112. package/dist/keyring/index.d.ts +2 -1
  113. package/dist/keyring/index.d.ts.map +1 -1
  114. package/dist/keyring/index.js +2 -1
  115. package/dist/keyring/index.js.map +1 -1
  116. package/dist/keyring/record.d.ts.map +1 -1
  117. package/dist/keyring/record.js +3 -6
  118. package/dist/keyring/record.js.map +1 -1
  119. package/dist/keyring/unlockSpace.d.ts +14 -5
  120. package/dist/keyring/unlockSpace.d.ts.map +1 -1
  121. package/dist/keyring/unlockSpace.js +31 -36
  122. package/dist/keyring/unlockSpace.js.map +1 -1
  123. package/dist/keys/index.d.ts +22 -8
  124. package/dist/keys/index.d.ts.map +1 -1
  125. package/dist/keys/index.js +20 -6
  126. package/dist/keys/index.js.map +1 -1
  127. package/dist/keys/rosterLogStore.d.ts +15 -12
  128. package/dist/keys/rosterLogStore.d.ts.map +1 -1
  129. package/dist/keys/rosterLogStore.js +21 -16
  130. package/dist/keys/rosterLogStore.js.map +1 -1
  131. package/dist/keys/rosterStore.d.ts +3 -6
  132. package/dist/keys/rosterStore.d.ts.map +1 -1
  133. package/dist/keys/rosterStore.js +10 -9
  134. package/dist/keys/rosterStore.js.map +1 -1
  135. package/dist/keys/spaceEpochs.d.ts.map +1 -1
  136. package/dist/keys/spaceEpochs.js +2 -3
  137. package/dist/keys/spaceEpochs.js.map +1 -1
  138. package/dist/keys/userKeyCascade.d.ts +8 -5
  139. package/dist/keys/userKeyCascade.d.ts.map +1 -1
  140. package/dist/keys/userKeyCascade.js +7 -6
  141. package/dist/keys/userKeyCascade.js.map +1 -1
  142. package/dist/keys/userKeyRoster.d.ts +95 -8
  143. package/dist/keys/userKeyRoster.d.ts.map +1 -1
  144. package/dist/keys/userKeyRoster.js +278 -35
  145. package/dist/keys/userKeyRoster.js.map +1 -1
  146. package/dist/keys/userKeyRosterCascade.d.ts +117 -16
  147. package/dist/keys/userKeyRosterCascade.d.ts.map +1 -1
  148. package/dist/keys/userKeyRosterCascade.js +184 -43
  149. package/dist/keys/userKeyRosterCascade.js.map +1 -1
  150. package/dist/keys/wasLabelsStore.d.ts +9 -2
  151. package/dist/keys/wasLabelsStore.d.ts.map +1 -1
  152. package/dist/keys/wasLabelsStore.js +14 -6
  153. package/dist/keys/wasLabelsStore.js.map +1 -1
  154. package/dist/log.d.ts +7 -2
  155. package/dist/log.d.ts.map +1 -1
  156. package/dist/log.js +6 -1
  157. package/dist/log.js.map +1 -1
  158. package/dist/recovery/index.d.ts +13 -9
  159. package/dist/recovery/index.d.ts.map +1 -1
  160. package/dist/recovery/index.js +12 -8
  161. package/dist/recovery/index.js.map +1 -1
  162. package/dist/recovery/recoveryCode.d.ts +27 -7
  163. package/dist/recovery/recoveryCode.d.ts.map +1 -1
  164. package/dist/recovery/recoveryCode.js +18 -6
  165. package/dist/recovery/recoveryCode.js.map +1 -1
  166. package/dist/recovery/recoveryDelegation.d.ts +23 -0
  167. package/dist/recovery/recoveryDelegation.d.ts.map +1 -1
  168. package/dist/recovery/recoveryDelegation.js +66 -46
  169. package/dist/recovery/recoveryDelegation.js.map +1 -1
  170. package/dist/recovery/recoveryWebvh.d.ts +75 -63
  171. package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
  172. package/dist/recovery/recoveryWebvh.js +127 -116
  173. package/dist/recovery/recoveryWebvh.js.map +1 -1
  174. package/dist/request/appKey.d.ts +35 -1
  175. package/dist/request/appKey.d.ts.map +1 -1
  176. package/dist/request/appKey.js +29 -10
  177. package/dist/request/appKey.js.map +1 -1
  178. package/dist/request/classify.d.ts +32 -8
  179. package/dist/request/classify.d.ts.map +1 -1
  180. package/dist/request/classify.js +39 -14
  181. package/dist/request/classify.js.map +1 -1
  182. package/dist/request/ephemeralExchange.d.ts +1 -6
  183. package/dist/request/ephemeralExchange.d.ts.map +1 -1
  184. package/dist/request/ephemeralExchange.js.map +1 -1
  185. package/dist/request/onboarding.d.ts.map +1 -1
  186. package/dist/request/onboarding.js +2 -2
  187. package/dist/request/onboarding.js.map +1 -1
  188. package/dist/request/parse.d.ts.map +1 -1
  189. package/dist/request/parse.js +2 -3
  190. package/dist/request/parse.js.map +1 -1
  191. package/dist/resourceLog/controller.d.ts +34 -12
  192. package/dist/resourceLog/controller.d.ts.map +1 -1
  193. package/dist/resourceLog/controller.js +79 -86
  194. package/dist/resourceLog/controller.js.map +1 -1
  195. package/dist/resourceLog/document.d.ts +182 -0
  196. package/dist/resourceLog/document.d.ts.map +1 -0
  197. package/dist/resourceLog/document.js +159 -0
  198. package/dist/resourceLog/document.js.map +1 -0
  199. package/dist/resourceLog/errors.d.ts +47 -8
  200. package/dist/resourceLog/errors.d.ts.map +1 -1
  201. package/dist/resourceLog/errors.js +54 -8
  202. package/dist/resourceLog/errors.js.map +1 -1
  203. package/dist/resourceLog/index.d.ts +7 -3
  204. package/dist/resourceLog/index.d.ts.map +1 -1
  205. package/dist/resourceLog/index.js +7 -3
  206. package/dist/resourceLog/index.js.map +1 -1
  207. package/dist/resourceLog/ladderRungs.d.ts +35 -0
  208. package/dist/resourceLog/ladderRungs.d.ts.map +1 -0
  209. package/dist/resourceLog/ladderRungs.js +352 -0
  210. package/dist/resourceLog/ladderRungs.js.map +1 -0
  211. package/dist/resourceLog/license.d.ts +42 -17
  212. package/dist/resourceLog/license.d.ts.map +1 -1
  213. package/dist/resourceLog/license.js +38 -24
  214. package/dist/resourceLog/license.js.map +1 -1
  215. package/dist/space/activity.d.ts +15 -15
  216. package/dist/space/activity.d.ts.map +1 -1
  217. package/dist/space/activity.js +15 -15
  218. package/dist/space/activity.js.map +1 -1
  219. package/dist/space/collections.d.ts +11 -0
  220. package/dist/space/collections.d.ts.map +1 -1
  221. package/dist/space/collections.js +13 -0
  222. package/dist/space/collections.js.map +1 -1
  223. package/dist/space/deleteSpace.d.ts +28 -0
  224. package/dist/space/deleteSpace.d.ts.map +1 -0
  225. package/dist/space/deleteSpace.js +44 -0
  226. package/dist/space/deleteSpace.js.map +1 -0
  227. package/dist/space/errors.d.ts.map +1 -1
  228. package/dist/space/errors.js +0 -1
  229. package/dist/space/errors.js.map +1 -1
  230. package/dist/space/index.d.ts +6 -0
  231. package/dist/space/index.d.ts.map +1 -1
  232. package/dist/space/index.js +6 -0
  233. package/dist/space/index.js.map +1 -1
  234. package/dist/space/plaintextCollection.d.ts +43 -0
  235. package/dist/space/plaintextCollection.d.ts.map +1 -0
  236. package/dist/space/plaintextCollection.js +17 -0
  237. package/dist/space/plaintextCollection.js.map +1 -0
  238. package/dist/stages.d.ts +23 -0
  239. package/dist/stages.d.ts.map +1 -0
  240. package/dist/stages.js +23 -0
  241. package/dist/stages.js.map +1 -0
  242. package/dist/sync/index.d.ts +7 -0
  243. package/dist/sync/index.d.ts.map +1 -1
  244. package/dist/sync/index.js +7 -0
  245. package/dist/sync/index.js.map +1 -1
  246. package/dist/sync/push.js +4 -4
  247. package/dist/sync/push.js.map +1 -1
  248. package/dist/sync/remint.js +2 -2
  249. package/dist/sync/remint.js.map +1 -1
  250. package/dist/sync/types.d.ts +41 -1
  251. package/dist/sync/types.d.ts.map +1 -1
  252. package/dist/sync/types.js +47 -1
  253. package/dist/sync/types.js.map +1 -1
  254. package/dist/unlock/index.d.ts +5 -1
  255. package/dist/unlock/index.d.ts.map +1 -1
  256. package/dist/unlock/index.js +5 -1
  257. package/dist/unlock/index.js.map +1 -1
  258. package/dist/unlock/retire.d.ts +35 -7
  259. package/dist/unlock/retire.d.ts.map +1 -1
  260. package/dist/unlock/retire.js +52 -14
  261. package/dist/unlock/retire.js.map +1 -1
  262. package/dist/unlock/standingClient.d.ts.map +1 -1
  263. package/dist/unlock/standingClient.js +5 -1
  264. package/dist/unlock/standingClient.js.map +1 -1
  265. package/dist/unlock/standingWebvh.d.ts +217 -35
  266. package/dist/unlock/standingWebvh.d.ts.map +1 -1
  267. package/dist/unlock/standingWebvh.js +469 -210
  268. package/dist/unlock/standingWebvh.js.map +1 -1
  269. package/dist/webvh/accountEntry.d.ts +146 -0
  270. package/dist/webvh/accountEntry.d.ts.map +1 -0
  271. package/dist/webvh/accountEntry.js +239 -0
  272. package/dist/webvh/accountEntry.js.map +1 -0
  273. package/dist/webvh/didWeb.d.ts +12 -7
  274. package/dist/webvh/didWeb.d.ts.map +1 -1
  275. package/dist/webvh/didWeb.js +2 -2
  276. package/dist/webvh/didWeb.js.map +1 -1
  277. package/dist/webvh/didWebProjection.d.ts +164 -0
  278. package/dist/webvh/didWebProjection.d.ts.map +1 -0
  279. package/dist/webvh/didWebProjection.js +230 -0
  280. package/dist/webvh/didWebProjection.js.map +1 -0
  281. package/dist/webvh/didWebvh.d.ts +275 -136
  282. package/dist/webvh/didWebvh.d.ts.map +1 -1
  283. package/dist/webvh/didWebvh.js +307 -340
  284. package/dist/webvh/didWebvh.js.map +1 -1
  285. package/dist/webvh/enrollClient.d.ts +65 -0
  286. package/dist/webvh/enrollClient.d.ts.map +1 -0
  287. package/dist/webvh/enrollClient.js +172 -0
  288. package/dist/webvh/enrollClient.js.map +1 -0
  289. package/dist/webvh/index.d.ts +37 -12
  290. package/dist/webvh/index.d.ts.map +1 -1
  291. package/dist/webvh/index.js +33 -10
  292. package/dist/webvh/index.js.map +1 -1
  293. package/dist/webvh/listClients.d.ts +1 -35
  294. package/dist/webvh/listClients.d.ts.map +1 -1
  295. package/dist/webvh/listClients.js +2 -30
  296. package/dist/webvh/listClients.js.map +1 -1
  297. package/dist/webvh/revokeClient.d.ts +41 -11
  298. package/dist/webvh/revokeClient.d.ts.map +1 -1
  299. package/dist/webvh/revokeClient.js +99 -48
  300. package/dist/webvh/revokeClient.js.map +1 -1
  301. package/dist/webvh/standingZcap.d.ts +61 -14
  302. package/dist/webvh/standingZcap.d.ts.map +1 -1
  303. package/dist/webvh/standingZcap.js +91 -0
  304. package/dist/webvh/standingZcap.js.map +1 -1
  305. package/dist/webvh/verifyLog.d.ts +59 -5
  306. package/dist/webvh/verifyLog.d.ts.map +1 -1
  307. package/dist/webvh/verifyLog.js +76 -11
  308. package/dist/webvh/verifyLog.js.map +1 -1
  309. package/dist/webvh/wasIdStore.d.ts +8 -8
  310. package/dist/webvh/wasIdStore.d.ts.map +1 -1
  311. package/dist/webvh/wasIdStore.js +39 -14
  312. package/dist/webvh/wasIdStore.js.map +1 -1
  313. package/dist/webvh/zcap.d.ts +14 -1
  314. package/dist/webvh/zcap.d.ts.map +1 -1
  315. package/dist/webvh/zcap.js +3 -27
  316. package/dist/webvh/zcap.js.map +1 -1
  317. package/package.json +2 -2
  318. package/dist/webvh/keyAgreement.d.ts +0 -97
  319. package/dist/webvh/keyAgreement.d.ts.map +0 -1
  320. package/dist/webvh/keyAgreement.js +0 -71
  321. package/dist/webvh/keyAgreement.js.map +0 -1
@@ -10,10 +10,19 @@
10
10
  * protect it, so a secret-derived rung would be a standing offline grind
11
11
  * oracle against the credential.
12
12
  *
13
- * Between uses only `hash(rung i)` stands in the document's `nextKeyHashes`;
14
- * each self-enrollment is one loud reveal-and-commit entry signing with rung
15
- * `i` and committing `hash(rung i + 1)`, after which the add entry retires
16
- * the spent rung. The credential never holds a standing `updateKeys` member.
13
+ * A self-enrollment is one loud reveal-and-commit entry signing with rung `i`
14
+ * and committing `hash(rung i + 1)`, after which the add entry retires the
15
+ * spent rung. Every other ceremony reuses its rung rather than consuming it:
16
+ * an entry keeps its own signer, so the acting rung is unioned back into
17
+ * `updateKeys`, and {@link attributeLadderRung} prefers a revealed rung over
18
+ * a committed one. So rung 0 stands revealed in the world-readable
19
+ * `updateKeys` for the credential's life, and prerotation protects it across
20
+ * none of the single-entry ceremonies. That is accepted on custody: the
21
+ * rung's private half exists only in tab memory during a ceremony, derived
22
+ * from the ladder seed just unsealed from the unlock record, so no attacker
23
+ * holds a rung without holding the seed, and the seed yields every rung. The
24
+ * attackers who do arise -- a phished credential, an offline grind of the
25
+ * record -- hold the seed, and credential rotation is already their remedy.
17
26
  *
18
27
  * There is no stored counter: which rung is current is recovered by
19
28
  * re-deriving and scanning the published log's standing parameters
@@ -27,11 +36,12 @@
27
36
  * ladder from the same seed), so the salt and info labels are permanent.
28
37
  */
29
38
  import { deriveNextKeyHash } from '@interop/did-method-webvh';
39
+ import { vmFragmentOf } from '@interop/vh-resource-log';
30
40
  import { hkdf } from '@noble/hashes/hkdf.js';
31
41
  import { sha256 } from '@noble/hashes/sha2.js';
32
- import { effectiveParameters, relationIds, updateKeyMultibase } from '../webvh/didWebvh.js';
33
- import { ladderVmIds, listEnrolledWebvhClients } from '../webvh/listClients.js';
34
- import { credentialKeyAgreementMethods, resolvedKeyAgreementMethods } from '../webvh/keyAgreement.js';
42
+ import { currentLogParameters, effectiveParameters, updateKeyMultibase } from '../webvh/didWebvh.js';
43
+ import { listEnrolledWebvhClients } from '../webvh/listClients.js';
44
+ import { credentialKeyAgreementMethods, ladderVmIds, relationIds, resolvedKeyAgreementMethods } from '../resourceLog/document.js';
35
45
  import { survivingClientKeyProtection } from '../webvh/revokeClient.js';
36
46
  import { log as logger } from '../log.js';
37
47
  import { LADDER_SEED_BYTES } from '../unlock/unlockRecord.js';
@@ -133,6 +143,24 @@ export async function ladderRung({ ladderSeed, index }) {
133
143
  const seed = ladderRungSeed({ ladderSeed, index });
134
144
  return { index, seed, keyMultibase: await updateKeyMultibase({ seed }) };
135
145
  }
146
+ /**
147
+ * Derives rungs `0..maxScan - 1` and their `nextKeyHashes` commitments
148
+ * concurrently. Each rung is an HKDF expansion plus an Ed25519 keygen, so a
149
+ * seeded scan of the full range is worth deriving in parallel rather than one
150
+ * `await` per index. The result is in ascending rung order, so a caller that
151
+ * classifies over it sees the same order a serial loop did.
152
+ *
153
+ * @param options {object}
154
+ * @param options.ladderSeed {Uint8Array}
155
+ * @param options.maxScan {number} how many rungs to derive, from 0
156
+ * @returns {Promise<{ rung: LadderRung, hash: string }[]>}
157
+ */
158
+ async function deriveLadderRungs({ ladderSeed, maxScan }) {
159
+ return await Promise.all(Array.from({ length: maxScan }, async (unused, index) => {
160
+ const rung = await ladderRung({ ladderSeed, index });
161
+ return { rung, hash: await deriveNextKeyHash(rung.keyMultibase) };
162
+ }));
163
+ }
136
164
  /**
137
165
  * Derives the 32-byte Ed25519 seed of the ladder VM -- the STABLE SIBLING: a
138
166
  * dedicated key derived once from the ladder seed, distinct from every rung,
@@ -238,12 +266,14 @@ export async function clientAnnexRung({ ladderSeed, generationId }) {
238
266
  export async function attributeLadderRung({ ladderSeed, published, maxScan = LADDER_MAX_SCAN }) {
239
267
  const revealed = [];
240
268
  const committed = [];
241
- for (let index = 0; index < maxScan; index++) {
242
- const rung = await ladderRung({ ladderSeed, index });
269
+ // The whole range is derived up front: the ambiguity refusal below counts
270
+ // every match, so there is nothing to exit early for.
271
+ const scanned = await deriveLadderRungs({ ladderSeed, maxScan });
272
+ for (const { rung, hash } of scanned) {
243
273
  if (published.updateKeys.includes(rung.keyMultibase)) {
244
274
  revealed.push(rung);
245
275
  }
246
- else if (published.nextKeyHashes.includes(await deriveNextKeyHash(rung.keyMultibase))) {
276
+ else if (published.nextKeyHashes.includes(hash)) {
247
277
  committed.push(rung);
248
278
  }
249
279
  }
@@ -286,7 +316,8 @@ function ladderSigned({ entry, ladderKeys }) {
286
316
  */
287
317
  function entrySigners({ entry }) {
288
318
  return (entry?.proof ?? []).flatMap(proof => {
289
- const keyMultibase = proof.verificationMethod?.split('#')[1];
319
+ const id = proof.verificationMethod;
320
+ const keyMultibase = id === undefined ? undefined : vmFragmentOf(id);
290
321
  return keyMultibase === undefined ? [] : [keyMultibase];
291
322
  });
292
323
  }
@@ -340,6 +371,54 @@ function introducedCredentialKeys({ doc, prevDoc, did }) {
340
371
  .map(method => method.id)
341
372
  .filter((id) => id !== undefined && !before.has(id));
342
373
  }
374
+ /**
375
+ * The log-derived indexes every attribution walk starts from, computed once
376
+ * per log rather than once per credential.
377
+ *
378
+ * `effectiveParameters`, `indexLadderLog` and the enrolled-client attribution
379
+ * are pure functions of the log, and a retirement walks the SAME log once per
380
+ * retiring credential ({@link attributeRetiredCredentialRungs}), so without
381
+ * this the recovery-spend and last-client-forget ceremonies rebuild all three
382
+ * N times over. Keyed on the log's own identity: a log is read fresh and
383
+ * never mutated in place, so an entry keyed by one can never describe
384
+ * another.
385
+ */
386
+ const ladderLogIndexes = new WeakMap();
387
+ /**
388
+ * {@link effectiveParameters} and {@link indexLadderLog} over a log, memoized
389
+ * on the log.
390
+ *
391
+ * @param log {DIDLog}
392
+ * @returns {object}
393
+ */
394
+ function indexedLadderLog(log) {
395
+ const cached = ladderLogIndexes.get(log);
396
+ if (cached) {
397
+ return cached;
398
+ }
399
+ const params = effectiveParameters(log);
400
+ const { facts, commitIndex } = indexLadderLog({ log, params });
401
+ const indexed = { params, facts, commitIndex };
402
+ ladderLogIndexes.set(log, indexed);
403
+ return indexed;
404
+ }
405
+ /**
406
+ * The account's enrolled clients as the log attributes them, memoized on the
407
+ * log for the same reason as {@link indexedLadderLog}.
408
+ *
409
+ * @param log {DIDLog}
410
+ * @returns {ReturnType<typeof listEnrolledWebvhClients>}
411
+ */
412
+ const enrolledClientsByLog = new WeakMap();
413
+ function indexedEnrolledClients(log) {
414
+ const cached = enrolledClientsByLog.get(log);
415
+ if (cached) {
416
+ return cached;
417
+ }
418
+ const clients = listEnrolledWebvhClients({ log });
419
+ enrolledClientsByLog.set(log, clients);
420
+ return clients;
421
+ }
343
422
  /**
344
423
  * The one pre-pass over the log's effective parameters: per-entry facts, plus
345
424
  * the commit index both walks project their positional questions through. The
@@ -594,9 +673,88 @@ function introducesEnrolledClient({ doc, prevDoc, did }) {
594
673
  * undefined>}
595
674
  */
596
675
  export async function credentialLadderAnchor({ log, credentialVmId }) {
597
- const { facts } = indexLadderLog({ log, params: effectiveParameters(log) });
676
+ const { facts } = indexedLadderLog(log);
598
677
  return resolveBindAnchor({ log, facts, credentialVmId });
599
678
  }
679
+ /**
680
+ * The ladder VMs the log introduced ALONGSIDE something of this credential's
681
+ * -- the question a fail-closed retirement gate asks when its seedless walk
682
+ * claimed nothing. A standing VM is this credential's candidate in three
683
+ * shapes:
684
+ *
685
+ * - the entry that introduced it also introduced this credential's own
686
+ * `keyAgreement` member (the merged bind, and the recovery continuations'
687
+ * add-and-retire entry);
688
+ * - it newly committed the credential's anchor hash, or newly authorized its
689
+ * anchor key (the split bind, whose key entry and authority entry are two
690
+ * versions apart);
691
+ * - it introduced no credential-class member at ALL. Such an entry installs
692
+ * authority for a credential bound earlier, and the log does not say
693
+ * which, so every credential retiring seedlessly must treat it as possibly
694
+ * its own. A recovery code's issuance authority entry is exactly this
695
+ * shape, and a code whose registry entry records the wrong anchor reaches
696
+ * the gate through it.
697
+ *
698
+ * An empty result is the positive answer the gate needs: no entry of this log
699
+ * ever brought a ladder VM in beside anything of this credential's, so a VM
700
+ * standing now is a sibling's and the retirement has nothing of its own to
701
+ * leave behind. That is what tells a torn issuance's orphan -- a credential
702
+ * with a `keyAgreement` member, no ladder VM, and no committed rung -- from a
703
+ * credential whose VM stands unattributable, which the gate must still
704
+ * refuse. Every credential bind co-introduces its own member, so a sibling's
705
+ * VM never reaches the result through the third shape.
706
+ *
707
+ * Deliberately entry-shaped rather than an attribution: it answers which VMs
708
+ * COULD be this credential's, so a walk that refused still fails closed.
709
+ *
710
+ * @param options {object}
711
+ * @param options.log {DIDLog} a resolved, caller-verified log
712
+ * @param options.credentialVmId {string} the credential's `keyAgreement`
713
+ * verification-method id
714
+ * @param [options.anchorKeyMultibase] {string} the credential's recorded
715
+ * update key (a registry entry's `updateKeyMultibase`)
716
+ * @param [options.anchorHash] {string} the same anchor as a committed hash
717
+ * @returns {Promise<string[]>} the candidate ladder VM ids, in log order
718
+ */
719
+ export async function ladderVmIdsIntroducedWithCredential({ log, credentialVmId, anchorKeyMultibase, anchorHash }) {
720
+ const did = credentialVmId.split('#')[0];
721
+ if (did === undefined || did === '') {
722
+ return [];
723
+ }
724
+ const { facts } = indexedLadderLog(log);
725
+ const rungHash = anchorHash ??
726
+ (anchorKeyMultibase === undefined
727
+ ? undefined
728
+ : await deriveNextKeyHash(anchorKeyMultibase));
729
+ const candidates = [];
730
+ let prevDoc;
731
+ let prevLadderVmIds = new Set();
732
+ for (const [index, entry] of log.entries()) {
733
+ const doc = entry.state;
734
+ if (doc === undefined) {
735
+ continue;
736
+ }
737
+ const publishedVmIds = ladderVmIds({ doc });
738
+ const newVmIds = publishedVmIds.filter(vmId => !prevLadderVmIds.has(vmId));
739
+ const introduced = introducedCredentialKeys({ doc, prevDoc, did });
740
+ prevDoc = doc;
741
+ prevLadderVmIds = new Set(publishedVmIds);
742
+ if (newVmIds.length === 0) {
743
+ continue;
744
+ }
745
+ const bind = facts[index];
746
+ const carriesAnchor = introduced.includes(credentialVmId) ||
747
+ introduced.length === 0 ||
748
+ (rungHash !== undefined &&
749
+ (bind?.addedHashes.includes(rungHash) ?? false)) ||
750
+ (anchorKeyMultibase !== undefined &&
751
+ (bind?.addedKeys.includes(anchorKeyMultibase) ?? false));
752
+ if (carriesAnchor) {
753
+ candidates.push(...newVmIds);
754
+ }
755
+ }
756
+ return [...new Set(candidates)];
757
+ }
600
758
  /**
601
759
  * The synchronous core of {@link credentialLadderAnchor}, over a pre-pass the
602
760
  * caller already ran.
@@ -616,7 +774,7 @@ function resolveBindAnchor({ log, facts, credentialVmId }) {
616
774
  // lists, so the self-signed arm can refuse one outright. A client whose
617
775
  // active key the log cannot attribute leaves that arm unable to refuse
618
776
  // anything, so no anchor is named at all.
619
- const enrolledClients = listEnrolledWebvhClients({ log });
777
+ const enrolledClients = indexedEnrolledClients(log);
620
778
  if (enrolledClients.some(client => client.updateKeyMultibase === undefined)) {
621
779
  return undefined;
622
780
  }
@@ -932,6 +1090,18 @@ export async function attributeRetiredCredentialRungs({ log, credentialVmIds, pr
932
1090
  * arms can see it. Like the co-introduction arm it needs `credentialVmId`
933
1091
  * in hand, since with no id the foreign-member guard would pass vacuously.
934
1092
  *
1093
+ * One narrowing runs across both the signer arm and the hash claims. A ladder
1094
+ * derives exactly ONE verification method from its seed, so a ladder already
1095
+ * holding a standing claimed VM cannot own a second one an entry introduces.
1096
+ * An entry introducing such a VM, or another credential's `keyAgreement`
1097
+ * member, is installing a foreign inventory: the acting credential's rung
1098
+ * signs exactly that on a ladder-branch bind and on a recovery code's split
1099
+ * issuance. The signer arm does not claim the VM there, and the hashes such
1100
+ * an entry commits are the bound credential's rung commitments rather than
1101
+ * this ladder's next one, so they stay out of the claims. Without the
1102
+ * narrowing, retiring the acting credential would strike the credential (or
1103
+ * the recovery code) it had just bound.
1104
+ *
935
1105
  * The attribution is anchor-invariant across the shapes where each rung's
936
1106
  * hash was committed by an entry that also revealed the previous rung, or by
937
1107
  * a handover. The signer arm's key set is the anchor plus every earlier rung
@@ -989,8 +1159,7 @@ export async function attributeRetiredCredentialRungs({ log, credentialVmIds, pr
989
1159
  * array empty when the log carries nothing of the ladder any more
990
1160
  */
991
1161
  export async function attributeLadderInventory({ log, anchorKeyMultibase, anchorHash: suppliedAnchorHash, ladderSeed, credentialVmId, maxScan = LADDER_MAX_SCAN }) {
992
- const params = effectiveParameters(log);
993
- const { facts, commitIndex } = indexLadderLog({ log, params });
1162
+ const { params, facts, commitIndex } = indexedLadderLog(log);
994
1163
  // The anchor, in the caller's order of preference: the recorded update key,
995
1164
  // a hash the caller resolved itself, or -- holding neither, the cold-browser
996
1165
  // case -- the credential's own bind entry, read off the log.
@@ -1019,12 +1188,11 @@ export async function attributeLadderInventory({ log, anchorKeyMultibase, anchor
1019
1188
  const derivedHashes = new Set([anchorHash]);
1020
1189
  const ladderHashes = new Set([anchorHash]);
1021
1190
  if (ladderSeed) {
1022
- for (let index = 0; index < maxScan; index++) {
1023
- const rung = await ladderRung({ ladderSeed, index });
1191
+ const scanned = await deriveLadderRungs({ ladderSeed, maxScan });
1192
+ for (const { rung, hash } of scanned) {
1024
1193
  ladderKeys.add(rung.keyMultibase);
1025
- const rungHash = await deriveNextKeyHash(rung.keyMultibase);
1026
- derivedHashes.add(rungHash);
1027
- ladderHashes.add(rungHash);
1194
+ derivedHashes.add(hash);
1195
+ ladderHashes.add(hash);
1028
1196
  }
1029
1197
  }
1030
1198
  // Without the seed, the anchor alone would hide every entry a spent rung
@@ -1066,6 +1234,35 @@ export async function attributeLadderInventory({ log, anchorKeyMultibase, anchor
1066
1234
  // update-key hash as its staged hash (the reveal entry's append order, a
1067
1235
  // ratified convention).
1068
1236
  const { addedKeys, removedKeys, addedHashes } = facts[index];
1237
+ // What this entry introduces, resolved before the reveal branch because
1238
+ // the hash claims below turn on it: the ladder VMs it publishes that were
1239
+ // not standing before, and the credential-class `keyAgreement` members it
1240
+ // brings in.
1241
+ const entryDoc = log[index]?.state;
1242
+ const publishedVmIds = entryDoc ? ladderVmIds({ doc: entryDoc }) : [];
1243
+ const newVmIds = publishedVmIds.filter(vmId => !prevLadderVmIds.has(vmId));
1244
+ const introduced = credentialDid !== undefined && entryDoc !== undefined
1245
+ ? introducedCredentialKeys({
1246
+ doc: entryDoc,
1247
+ prevDoc: prevEntryDoc,
1248
+ did: credentialDid
1249
+ })
1250
+ : [];
1251
+ // A ladder derives exactly ONE verification method from its seed, so a
1252
+ // ladder already holding a standing VM cannot own a second one this entry
1253
+ // introduces. That is what tells the acting credential's rung, signing
1254
+ // another credential's inventory into the document, from a rung signing
1255
+ // its own in.
1256
+ const holdsStandingVm = [...prevLadderVmIds].some(vmId => ladderVmClaims.get(vmId) === true);
1257
+ const foreignVmIntroduced = newVmIds.length > 0 && holdsStandingVm;
1258
+ // An entry installing another party's inventory -- a successor
1259
+ // credential's `keyAgreement` member, or a ladder VM this ladder cannot
1260
+ // own -- commits that party's rung hash, not this ladder's next one. The
1261
+ // acting rung signs such an entry on every ladder-branch bind and on a
1262
+ // recovery code's split issuance, and claiming what it commits there
1263
+ // would strike the bound credential's own commitment when this one
1264
+ // retires.
1265
+ const installsForeignInventory = foreignVmIntroduced || introduced.some(id => id !== credentialVmId);
1069
1266
  // Completion first: the pending revealed rung left `updateKeys`. When the
1070
1267
  // same entry authorizes a key whose hash sits among the reveal's claims,
1071
1268
  // the enrollment completed -- that hash and its successor (the client's
@@ -1157,7 +1354,9 @@ export async function attributeLadderInventory({ log, anchorKeyMultibase, anchor
1157
1354
  }
1158
1355
  }
1159
1356
  }
1160
- else if (pending && ladderSigned({ entry: log[index], ladderKeys })) {
1357
+ else if (pending &&
1358
+ !installsForeignInventory &&
1359
+ ladderSigned({ entry: log[index], ladderKeys })) {
1161
1360
  // The rung is still revealed AND signed this entry, so the hashes it
1162
1361
  // commits were committed under the rung's authority and join its
1163
1362
  // claims.
@@ -1171,23 +1370,14 @@ export async function attributeLadderInventory({ log, anchorKeyMultibase, anchor
1171
1370
  ladderHashes.add(hash);
1172
1371
  }
1173
1372
  }
1174
- // After the reveal branch, so a VM installed by the very entry that
1175
- // reveals the rung signing it (the ladder-anchored genesis, the ladder-VM
1176
- // install) is attributed to this ladder rather than missed.
1177
- const entryDoc = log[index]?.state;
1178
- const publishedVmIds = entryDoc ? ladderVmIds({ doc: entryDoc }) : [];
1179
- const newVmIds = publishedVmIds.filter(vmId => !prevLadderVmIds.has(vmId));
1373
+ // The claims are answered after the reveal branch, so a VM installed by
1374
+ // the very entry that reveals the rung signing it (the ladder-anchored
1375
+ // genesis, the ladder-VM install) is attributed to this ladder rather
1376
+ // than missed.
1180
1377
  // The co-introduction arm, under its three guards (see the header): one
1181
1378
  // new ladder VM, one newly introduced credential-class `keyAgreement`
1182
1379
  // member, and that member is this credential's. It is what reaches the
1183
1380
  // bind entry an enrolled client signs, which no rung stands behind.
1184
- const introduced = credentialDid !== undefined && entryDoc !== undefined
1185
- ? introducedCredentialKeys({
1186
- doc: entryDoc,
1187
- prevDoc: prevEntryDoc,
1188
- did: credentialDid
1189
- })
1190
- : [];
1191
1381
  const coIntroduced = credentialVmId !== undefined &&
1192
1382
  newVmIds.length === 1 &&
1193
1383
  introduced.length === 1 &&
@@ -1204,19 +1394,37 @@ export async function attributeLadderInventory({ log, anchorKeyMultibase, anchor
1204
1394
  newVmIds.length === 1 &&
1205
1395
  addedHashes.some(hash => derivedHashes.has(hash)) &&
1206
1396
  introduced.every(id => id === credentialVmId);
1397
+ // The SIGNER arm, under two guards of its own: a rung of this ladder
1398
+ // signed the entry that published the VM, the entry published exactly
1399
+ // ONE, AND it either introduced no credential-class member at all or
1400
+ // introduced this credential's own. What the last guard excludes is the
1401
+ // ladder-branch BIND entry, where the ACTING credential's rung signs an
1402
+ // entry installing a SUCCESSOR credential's whole inventory: without it
1403
+ // the acting ladder would be credited with the successor's VM, and every
1404
+ // later claim on either ladder would refuse as ambiguous.
1405
+ //
1406
+ // The one-VM guard is what the transient recovery's add-and-retire entry
1407
+ // meets on: it publishes the fresh credential's ladder VM and the
1408
+ // replacement code's together, and nothing in the log says which is
1409
+ // which -- a VM key and a rung key are independent expansions of a seed,
1410
+ // so no pairing exists to read. Claiming both would be silent,
1411
+ // unhealable damage: retiring the fresh credential would strike the
1412
+ // replacement code's VM and rot the bridge its record carries. So
1413
+ // neither is claimed, and the credential's own seed is what names its VM
1414
+ // (`decisions/0014`'s under-striking bias, applied to the VM axis).
1415
+ const signerClaimed = newVmIds.length === 1 &&
1416
+ ladderSigned({ entry: log[index], ladderKeys }) &&
1417
+ !foreignVmIntroduced &&
1418
+ (introduced.length === 0 ||
1419
+ (credentialVmId !== undefined && introduced.includes(credentialVmId)));
1207
1420
  for (const vmId of newVmIds) {
1208
- ladderVmClaims.set(vmId, coIntroduced ||
1209
- commitmentClaimed ||
1210
- ladderSigned({ entry: log[index], ladderKeys }));
1421
+ ladderVmClaims.set(vmId, coIntroduced || commitmentClaimed || signerClaimed);
1211
1422
  }
1212
1423
  prevLadderVmIds = new Set(publishedVmIds);
1213
1424
  prevEntryDoc = entryDoc;
1214
1425
  prevHashes = new Set(entry.nextKeyHashes);
1215
1426
  }
1216
- const final = params[params.length - 1] ?? {
1217
- updateKeys: [],
1218
- nextKeyHashes: []
1219
- };
1427
+ const final = currentLogParameters({ log });
1220
1428
  return {
1221
1429
  revealedKeys: final.updateKeys.filter(key => ladderKeys.has(key)),
1222
1430
  committedHashes: final.nextKeyHashes.filter(hash => ladderHashes.has(hash)),
@@ -1 +1 @@
1
- {"version":3,"file":"ladder.js","sourceRoot":"","sources":["../../src/clientAnnex/ladder.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAE7D,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EACnB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAC/E,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAE5B,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAA;AACvE,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAE7D;;;;GAIG;AACH,MAAM,WAAW,GAAG,oCAAoC,CAAA;AACxD,MAAM,uBAAuB,GAAG,OAAO,CAAA;AAEvC;;;;;GAKG;AACH,MAAM,cAAc,GAAG,IAAI,CAAA;AAE3B;;;;;;;;;;;GAWG;AACH,MAAM,6BAA6B,GAAG,SAAS,CAAA;AAE/C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA;AAElC;;;;;;GAMG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAA;IACtC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAClE,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,YAAY,CAAC,EACpB,UAAU,EACV,IAAI,EAIL;IACC,OAAO,IAAI,CACT,MAAM,EACN,UAAU,EACV,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,EACrC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAC9B,EAAE,CACH,CAAA;AACH,CAAC;AAYD;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,UAAU,EACV,KAAK,EAIN;IACC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,YAAY,CAAC;QAClB,UAAU;QACV,IAAI,EAAE,GAAG,uBAAuB,GAAG,KAAK,EAAE;KAC3C,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAC/B,UAAU,EACV,KAAK,EAIN;IACC,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;IAClD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;AAC1E,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,UAAU,EAGX;IACC,OAAO,YAAY,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAA;AAC3D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,UAAU,EAGX;IACC,OAAO,kBAAkB,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAA;AACnE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAClC,UAAU,EACV,YAAY,EAIb;IACC,OAAO,YAAY,CAAC;QAClB,UAAU;QACV,IAAI,EAAE,GAAG,YAAY,GAAG,6BAA6B,EAAE;KACxD,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EACpC,UAAU,EACV,YAAY,EAIb;IACC,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAA;IAC9D,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;AACnE,CAAC;AAUD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EACxC,UAAU,EACV,SAAS,EACT,OAAO,GAAG,eAAe,EAK1B;IACC,MAAM,QAAQ,GAAiB,EAAE,CAAA;IACjC,MAAM,SAAS,GAAiB,EAAE,CAAA;IAClC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;QACpD,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACrD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;aAAM,IACL,SAAS,CAAC,aAAa,CAAC,QAAQ,CAC9B,MAAM,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAC3C,EACD,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,sBAAsB,CAC9B,qEAAqE;YACnE,iEAAiE,CACpE,CAAA;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;IAClD,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACpD,CAAC;IACD,MAAM,IAAI,sBAAsB,CAC9B,uEAAuE;QACrE,wEAAwE,CAC3E,CAAA;AACH,CAAC;AAmBD;;;;;;;;;;;;GAYG;AACH,SAAS,YAAY,CAAC,EACpB,KAAK,EACL,UAAU,EAIX;IACC,OAAO,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AACjE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,EAAE,KAAK,EAAsC;IACjE,OAAO,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC1C,MAAM,YAAY,GAAG,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5D,OAAO,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,kBAAkB,CAAC,EAC1B,KAAK,EACL,IAAI,EAIL;IACC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;QACxC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,0DAA0D;IAC1D,0EAA0E;IAC1E,8EAA8E;IAC9E,wEAAwE;IACxE,cAAc;IACd,OAAO,WAAW,CAChB,KAAK,CAAC,KAAK,CAAC,YAA2D,CACxE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAClB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,wBAAwB,CAAC,EAChC,GAAG,EACH,OAAO,EACP,GAAG,EAKJ;IACC,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CACvE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CACpB,CACF,CAAA;IACD,OAAO,6BAA6B,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;SAC/C,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;SACxB,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;AACtE,CAAC;AA2BD;;;;;;;;;;;GAWG;AACH,SAAS,cAAc,CAAC,EACtB,GAAG,EACH,MAAM,EAIP;IAIC,MAAM,KAAK,GAAuB,EAAE,CAAA;IACpC,MAAM,WAAW,GAAG,IAAI,GAAG,EAA8B,CAAA;IACzD,IAAI,cAAc,GAAG,IAAI,GAAG,EAAU,CAAA;IACtC,IAAI,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;IAClC,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACnD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACnD,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1E,MAAM,WAAW,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,MAAM,CAC5C,GAAG,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CACnC,CAAA;QACD,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAC5C,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAC9B,CAAA;QACD,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QACxD,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;YAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC,CAAC,CAAA;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA;QAC5D,cAAc,GAAG,iBAAiB,CAAA;QAClC,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAC3C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;AAC/B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,KAAK,UAAU,mBAAmB,CAAC,EACjC,GAAG,EACH,KAAK,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACd,OAAO,EAQR;IACC,MAAM,SAAS,GAAyC,EAAE,CAAA;IAC1D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,CAAC,UAAU,CAAC,CAAC,CAAA;IAChD,IAAI,UAAU,GAAG,UAAU,CAAA;IAC3B,IAAI,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAA;IAC1C,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAC1C,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC;YAC7D,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAE,CAAA;QAC7C,IAAI,MAAM,CAAC,EAAE,KAAK,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,mDAAmD;YACnD,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;YAC5C,IACE,WAAW,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;gBAClC,WAAW,KAAK,SAAS;gBACzB,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAC1C,CAAC,kBAAkB,CAAC;oBAClB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;oBAC7B,IAAI,EAAE,cAAc;iBACrB,CAAC,EACF,CAAC;gBACD,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAA;YACjD,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;YAC1C,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACpB,UAAU,GAAG,IAAI,CAAA;YACjB,WAAW,GAAG,MAAM,CAAC,UAAU,CAAA;YAC/B,SAAQ;QACV,CAAC;QACD,kDAAkD;QAClD,MAAM,OAAO,GACX,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACpE,IAAI,OAAO,KAAK,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;YAClC,KAAK;YACL,KAAK,EAAE,MAAM,CAAC,UAAU;YACxB,gBAAgB,EAAE,WAAW,CAAC,OAAO;YACrC,IAAI,EAAE,OAAO;SACd,CAAC,CAAA;QACF,IACE,MAAM,KAAK,SAAS;YACpB,CAAC,kBAAkB,CAAC;gBAClB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC7B,IAAI,EAAE,cAAc;aACrB,CAAC,EACF,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QAClD,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACvB,UAAU,GAAG,OAAO,CAAA;QACpB,WAAW,GAAG,MAAM,CAAC,UAAU,CAAA;IACjC,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,cAAc,CAAC,EAC5B,KAAK,EACL,KAAK,EACL,gBAAgB,EAChB,IAAI,EAML;IACC,KAAK,IAAI,UAAU,GAAG,KAAK,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;QACzE,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAE,CAAA;QACpC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACvE,SAAQ;QACV,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC5C,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAA;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAA;IACvC,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,EACxC,aAAa,EACb,QAAQ,EAIT;IACC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,uBAAuB,CAC/B,cAAc,QAAQ,iDAAiD;YACrE,oEAAoE,CACvE,CAAA;IACH,CAAC;IACD,OAAO,aAAa,CAAA;AACtB,CAAC;AAUD;;;;;;;;;;;;;GAaG;AACH,SAAS,wBAAwB,CAAC,EAChC,GAAG,EACH,OAAO,EACP,GAAG,EAKJ;IACC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAA;IAC5E,IACE,WAAW,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAC3E,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,SAAS,GAAG,CAChB,QAA0C,EAC7B,EAAE;QACf,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,IAAI,GAAG,EAAE,CAAA;QAClB,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,6BAA6B,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CACvD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CACpB,CACF,CAAA;QACD,OAAO,IAAI,GAAG,CACZ,2BAA2B,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;aAC3C,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;aACxB,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CACzE,CAAA;IACH,CAAC,CAAA;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;IACjC,OAAO,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;AACxD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAC3C,GAAG,EACH,cAAc,EAIf;IACC,MAAM,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC3E,OAAO,iBAAiB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;AAC1D,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,iBAAiB,CAAC,EACzB,GAAG,EACH,KAAK,EACL,cAAc,EAKf;IACC,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACxC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACpC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,2EAA2E;IAC3E,wEAAwE;IACxE,uEAAuE;IACvE,0CAA0C;IAC1C,MAAM,eAAe,GAAG,wBAAwB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IACzD,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,KAAK,SAAS,CAAC,EAAE,CAAC;QAC5E,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAChC,eAAe;SACZ,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC;SACxC,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CACrD,CAAA;IACD,IAAI,OAAyC,CAAA;IAC7C,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,KAAyC,CAAA;QAC3D,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,SAAQ;QACV,CAAC;QACD,MAAM,UAAU,GAAG,wBAAwB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;QAClE,MAAM,aAAa,GAAG,OAA0C,CAAA;QAChE,OAAO,GAAG,GAAG,CAAA;QACb,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACzC,SAAQ;QACV,CAAC;QACD,wEAAwE;QACxE,qDAAqD;QACrD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QACzB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,wEAAwE;QACxE,uEAAuE;QACvE,0EAA0E;QAC1E,mEAAmE;QACnE,wEAAwE;QACxE,uDAAuD;QACvD,IACE,wBAAwB,CAAC;YACvB,GAAG,EAAE,GAA0B;YAC/B,OAAO,EAAE,aAAa;YACtB,GAAG;SACJ,CAAC,EACF,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAClC,IACE,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAC3B,QAAQ,KAAK,SAAS;YACtB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC/B,wEAAwE;YACxE,sEAAsE;YACtE,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EACjC,CAAC;YACD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAA;QACzC,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjE,oEAAoE;YACpE,sEAAsE;YACtE,mBAAmB;YACnB,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAE,EAAE,CAAA;QAC7C,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,oBAAoB,CAAC,EAClC,GAAG,EACH,cAAc,EACd,OAAO,EAKR;IACC,IAAI,CAAC;QACH,OAAO,MAAM,wBAAwB,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAA;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,4DAA4D;QAC5D,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,EACpD,GAAG,EACH,sBAAsB,EACtB,eAAe,EACf,eAAe,GAAG,EAAE,EACpB,aAAa,GAAG,EAAE,EAClB,OAAO,GAAG,eAAe,EAQ1B;IAKC,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAA;IACvC,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC1C,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAClD,CAAA;IACD,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,4CACE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,uBACxC,eAAe,sBAAsB,iCAAiC,CACvE,CAAA;IACH,CAAC;IACD,OAAO,+BAA+B,CAAC;QACrC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;QAC7B,eAAe;QACf,eAAe;QACf,aAAa;QACb,OAAO;KACR,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,EACpD,GAAG,EACH,eAAe,EACf,eAAe,GAAG,EAAE,EACpB,aAAa,GAAG,EAAE,EAClB,OAAO,GAAG,eAAe,EAO1B;IAKC,0EAA0E;IAC1E,6DAA6D;IAC7D,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+C,CAAA;IACrE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAA;IACvC,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC;YAC3C,GAAG;YACH,cAAc;YACd,OAAO;SACR,CAAC,CAAA;QACF,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;QACrC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,eAAe,IAAI,EAAE,EAAE,CAAC;YACpD,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACzB,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,kEAAkE;IAClE,MAAM,SAAS,GAAG,MAAM,4BAA4B,CAAC;QACnD,GAAG;QACH,YAAY,EAAE,eAAe;QAC7B,iBAAiB,EAAE,CAAC,GAAG,aAAa,CAAC;KACtC,CAAC,CAAA;IACF,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CACT,iEAAiE;YAC/D,iEAAiE,EACnE,EAAE,OAAO,EAAE,SAAS,CAAC,SAAS,EAAE,CACjC,CAAA;QACD,OAAO;YACL,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,EAAE;YACd,wBAAwB,EAAE,CAAC,GAAG,eAAe,CAAC;SAC/C,CAAA;IACH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;IACrE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAA;IACtC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;IACpC,MAAM,wBAAwB,GAAa,EAAE,CAAA;IAC7C,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QAC5C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,wBAAwB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAC7C,SAAQ;QACV,CAAC;QACD,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;YAC7C,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,QAAQ,GAAG,IAAI,CAAA;gBACf,SAAQ;YACV,CAAC;YACD,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACtB,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;YACzC,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,QAAQ,GAAG,IAAI,CAAA;gBACf,SAAQ;YACV,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACnB,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC;QACD,IAAI,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3B,wBAAwB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IACD,OAAO;QACL,YAAY,EAAE,CAAC,GAAG,YAAY,CAAC;QAC/B,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC;QAC3B,wBAAwB;KACzB,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4HG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAC7C,GAAG,EACH,kBAAkB,EAClB,UAAU,EAAE,kBAAkB,EAC9B,UAAU,EACV,cAAc,EACd,OAAO,GAAG,eAAe,EAQ1B;IACC,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAA;IACvC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;IAC9D,4EAA4E;IAC5E,6EAA6E;IAC7E,6DAA6D;IAC7D,IAAI,SAAS,GAAG,kBAAkB,CAAA;IAClC,IAAI,UAAU,GAAG,kBAAkB,CAAA;IACnC,IAAI,SAAS,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACxD,MAAM,QAAQ,GACZ,cAAc,KAAK,SAAS;YAC1B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;QACvD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,sBAAsB,CAC9B,oEAAoE;gBAClE,0DAA0D;gBAC1D,iCAAiC,CACpC,CAAA;QACH,CAAC;QACD,SAAS,GAAG,QAAQ,CAAC,kBAAkB,CAAA;QACvC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAA;IAClC,CAAC;IACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,UAAU,GAAG,MAAM,iBAAiB,CAAC,SAAU,CAAC,CAAA;IAClD,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;IAC9E,wEAAwE;IACxE,sEAAsE;IACtE,qEAAqE;IACrE,8CAA8C;IAC9C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS,CAAC,UAAU,CAAC,CAAC,CAAA;IACnD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAS,CAAC,UAAU,CAAC,CAAC,CAAA;IAClD,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;YACpD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YACjC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YAC3D,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC3B,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,IAAI,CAAC,UAAU,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC;YACxC,GAAG;YACH,KAAK;YACL,WAAW;YACX,UAAU;YACV,cAAc;YACd,OAAO;SACR,CAAC,CAAA;QACF,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACxB,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC5B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC;IAED,IAAI,OAAsD,CAAA;IAC1D,IAAI,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;IAClC,4EAA4E;IAC5E,sEAAsE;IACtE,yEAAyE;IACzE,qDAAqD;IACrD,IAAI,eAAe,GAAG,IAAI,GAAG,EAAU,CAAA;IACvC,IAAI,YAA8C,CAAA;IAClD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAmB,CAAA;IACjD,yEAAyE;IACzE,8DAA8D;IAC9D,qEAAqE;IACrE,wBAAwB;IACxB,MAAM,aAAa,GAAG,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACnD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9C,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACnD,uEAAuE;QACvE,0EAA0E;QAC1E,yEAAyE;QACzE,wBAAwB;QACxB,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAE,CAAA;QAE7D,0EAA0E;QAC1E,yEAAyE;QACzE,wEAAwE;QACxE,wEAAwE;QACxE,+CAA+C;QAC/C,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACnD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAA;YACrC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC5B,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;gBAC/D,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;oBACd,SAAQ;gBACV,CAAC;gBACD,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAE,CAAC,CAAA;gBACpC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;gBACrC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;gBACzB,CAAC;gBACD,MAAK;YACP,CAAC;YACD,mEAAmE;YACnE,iEAAiE;YACjE,uEAAuE;YACvE,sEAAsE;YACtE,oEAAoE;YACpE,wEAAwE;YACxE,uEAAuE;YACvE,oBAAoB;YACpB,MAAM,MAAM,GAAG,kBAAkB,CAAC;gBAChC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC;gBACjB,IAAI,EAAE,cAAc;aACrB,CAAC,CAAA;YACF,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAClC,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBAClE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAC3B,CAAC;YACH,CAAC;YACD,OAAO,GAAG,SAAS,CAAA;QACrB,CAAC;QAED,yEAAyE;QACzE,MAAM,OAAO,GAAa,EAAE,CAAA;QAC5B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,IACE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;gBACnB,YAAY,CAAC,GAAG,CAAC,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAC9C,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACnB,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,sBAAsB,CAC9B,iEAAiE;gBAC/D,mDAAmD,CACtD,CAAA;QACH,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAE,CAAA;YACvB,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACnB,OAAO,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,GAAG,WAAW,CAAC,EAAE,CAAA;YAC3C,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC/B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACxB,CAAC;YACD,uEAAuE;YACvE,mEAAmE;YACnE,mEAAmE;YACnE,mEAAmE;YACnE,2DAA2D;YAC3D,sEAAsE;YACtE,qEAAqE;YACrE,sEAAsE;YACtE,qEAAqE;YACrE,wEAAwE;YACxE,qEAAqE;YACrE,yDAAyD;YACzD,kEAAkE;YAClE,wEAAwE;YACxE,oEAAoE;YACpE,qEAAqE;YACrE,mEAAmE;YACnE,8CAA8C;YAC9C,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAA;YAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;gBACpC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;gBAC1B,CAAC,CAAC,SAAS,CAAA;YACb,MAAM,WAAW,GACf,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAC7D,IAAI,MAAM,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBACtD,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;gBACxD,MAAM,aAAa,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,WAAW,CAAC,WAAW,CAAC,MAAM,CAAA;gBACtE,IACE,SAAS,KAAK,SAAS;oBACvB,CAAC,aAAa;oBACd,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAChE,CAAC;oBACD,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;oBACjC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;YACtE,qEAAqE;YACrE,iEAAiE;YACjE,UAAU;YACV,mEAAmE;YACnE,qEAAqE;YACrE,oEAAoE;YACpE,uEAAuE;YACvE,2CAA2C;YAC3C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAA;YACnC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC/B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,0EAA0E;QAC1E,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,KAKhB,CAAA;QACb,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACrE,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QAC1E,wEAAwE;QACxE,sEAAsE;QACtE,uEAAuE;QACvE,oEAAoE;QACpE,MAAM,UAAU,GACd,aAAa,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;YACnD,CAAC,CAAC,wBAAwB,CAAC;gBACvB,GAAG,EAAE,QAAQ;gBACb,OAAO,EAAE,YAAY;gBACrB,GAAG,EAAE,aAAa;aACnB,CAAC;YACJ,CAAC,CAAC,EAAE,CAAA;QACR,MAAM,YAAY,GAChB,cAAc,KAAK,SAAS;YAC5B,QAAQ,CAAC,MAAM,KAAK,CAAC;YACrB,UAAU,CAAC,MAAM,KAAK,CAAC;YACvB,UAAU,CAAC,CAAC,CAAC,KAAK,cAAc,CAAA;QAClC,uEAAuE;QACvE,0EAA0E;QAC1E,0EAA0E;QAC1E,sEAAsE;QACtE,kEAAkE;QAClE,wEAAwE;QACxE,wEAAwE;QACxE,2DAA2D;QAC3D,MAAM,iBAAiB,GACrB,cAAc,KAAK,SAAS;YAC5B,QAAQ,CAAC,MAAM,KAAK,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjD,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,cAAc,CAAC,CAAA;QAC/C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,cAAc,CAAC,GAAG,CAChB,IAAI,EACJ,YAAY;gBACV,iBAAiB;gBACjB,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC,CAClD,CAAA;QACH,CAAC;QACD,eAAe,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAA;QACzC,YAAY,GAAG,QAAQ,CAAA;QAEvB,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAC3C,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI;QACzC,UAAU,EAAE,EAAE;QACd,aAAa,EAAE,EAAE;KAClB,CAAA;IACD,OAAO;QACL,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjE,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3E,WAAW,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,MAAM,CACtC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAC1C;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"ladder.js","sourceRoot":"","sources":["../../src/clientAnnex/ladder.ts"],"names":[],"mappings":"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"}