@lodestar/beacon-node 1.40.0-dev.1c71f4299a → 1.40.0-dev.1fc7f36d3e

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 (277) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +7 -7
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/lodestar/index.d.ts.map +1 -1
  5. package/lib/api/impl/lodestar/index.js +10 -2
  6. package/lib/api/impl/lodestar/index.js.map +1 -1
  7. package/lib/api/impl/validator/index.d.ts.map +1 -1
  8. package/lib/api/impl/validator/index.js +9 -8
  9. package/lib/api/impl/validator/index.js.map +1 -1
  10. package/lib/chain/ColumnReconstructionTracker.d.ts +2 -0
  11. package/lib/chain/ColumnReconstructionTracker.d.ts.map +1 -1
  12. package/lib/chain/ColumnReconstructionTracker.js +7 -3
  13. package/lib/chain/ColumnReconstructionTracker.js.map +1 -1
  14. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  15. package/lib/chain/blocks/verifyBlock.js +1 -1
  16. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  17. package/lib/chain/blocks/verifyBlocksSignatures.d.ts +2 -2
  18. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
  19. package/lib/chain/blocks/verifyBlocksSignatures.js +2 -2
  20. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  21. package/lib/chain/bls/multithread/index.d.ts +3 -1
  22. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  23. package/lib/chain/bls/multithread/index.js +5 -3
  24. package/lib/chain/bls/multithread/index.js.map +1 -1
  25. package/lib/chain/bls/multithread/jobItem.d.ts +2 -2
  26. package/lib/chain/bls/multithread/jobItem.d.ts.map +1 -1
  27. package/lib/chain/bls/multithread/jobItem.js +2 -2
  28. package/lib/chain/bls/multithread/jobItem.js.map +1 -1
  29. package/lib/chain/bls/singleThread.d.ts +4 -2
  30. package/lib/chain/bls/singleThread.d.ts.map +1 -1
  31. package/lib/chain/bls/singleThread.js +4 -2
  32. package/lib/chain/bls/singleThread.js.map +1 -1
  33. package/lib/chain/bls/utils.d.ts +2 -2
  34. package/lib/chain/bls/utils.d.ts.map +1 -1
  35. package/lib/chain/bls/utils.js +9 -6
  36. package/lib/chain/bls/utils.js.map +1 -1
  37. package/lib/chain/chain.d.ts +8 -3
  38. package/lib/chain/chain.d.ts.map +1 -1
  39. package/lib/chain/chain.js +36 -18
  40. package/lib/chain/chain.js.map +1 -1
  41. package/lib/chain/errors/attestationError.d.ts +14 -1
  42. package/lib/chain/errors/attestationError.d.ts.map +1 -1
  43. package/lib/chain/errors/attestationError.js +8 -0
  44. package/lib/chain/errors/attestationError.js.map +1 -1
  45. package/lib/chain/errors/executionPayloadBid.d.ts +48 -0
  46. package/lib/chain/errors/executionPayloadBid.d.ts.map +1 -0
  47. package/lib/chain/errors/executionPayloadBid.js +15 -0
  48. package/lib/chain/errors/executionPayloadBid.js.map +1 -0
  49. package/lib/chain/errors/executionPayloadEnvelope.d.ts +48 -0
  50. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -0
  51. package/lib/chain/errors/executionPayloadEnvelope.js +16 -0
  52. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -0
  53. package/lib/chain/errors/index.d.ts +3 -0
  54. package/lib/chain/errors/index.d.ts.map +1 -1
  55. package/lib/chain/errors/index.js +3 -0
  56. package/lib/chain/errors/index.js.map +1 -1
  57. package/lib/chain/errors/payloadAttestation.d.ts +34 -0
  58. package/lib/chain/errors/payloadAttestation.d.ts.map +1 -0
  59. package/lib/chain/errors/payloadAttestation.js +13 -0
  60. package/lib/chain/errors/payloadAttestation.js.map +1 -0
  61. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  62. package/lib/chain/forkChoice/index.js +18 -0
  63. package/lib/chain/forkChoice/index.js.map +1 -1
  64. package/lib/chain/interface.d.ts +7 -2
  65. package/lib/chain/interface.d.ts.map +1 -1
  66. package/lib/chain/interface.js.map +1 -1
  67. package/lib/chain/opPools/executionPayloadBidPool.d.ts +21 -0
  68. package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -0
  69. package/lib/chain/opPools/executionPayloadBidPool.js +57 -0
  70. package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -0
  71. package/lib/chain/opPools/index.d.ts +2 -0
  72. package/lib/chain/opPools/index.d.ts.map +1 -1
  73. package/lib/chain/opPools/index.js +2 -0
  74. package/lib/chain/opPools/index.js.map +1 -1
  75. package/lib/chain/opPools/payloadAttestationPool.d.ts +24 -0
  76. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -0
  77. package/lib/chain/opPools/payloadAttestationPool.js +109 -0
  78. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -0
  79. package/lib/chain/prepareNextSlot.js +6 -4
  80. package/lib/chain/prepareNextSlot.js.map +1 -1
  81. package/lib/chain/produceBlock/produceBlockBody.d.ts +3 -2
  82. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  83. package/lib/chain/produceBlock/produceBlockBody.js +5 -3
  84. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  85. package/lib/chain/regen/interface.d.ts +3 -8
  86. package/lib/chain/regen/interface.d.ts.map +1 -1
  87. package/lib/chain/regen/interface.js +1 -1
  88. package/lib/chain/regen/interface.js.map +1 -1
  89. package/lib/chain/regen/queued.d.ts +1 -2
  90. package/lib/chain/regen/queued.d.ts.map +1 -1
  91. package/lib/chain/regen/queued.js +2 -16
  92. package/lib/chain/regen/queued.js.map +1 -1
  93. package/lib/chain/regen/regen.d.ts +5 -7
  94. package/lib/chain/regen/regen.d.ts.map +1 -1
  95. package/lib/chain/regen/regen.js +7 -17
  96. package/lib/chain/regen/regen.js.map +1 -1
  97. package/lib/chain/seenCache/index.d.ts +3 -1
  98. package/lib/chain/seenCache/index.d.ts.map +1 -1
  99. package/lib/chain/seenCache/index.js +3 -1
  100. package/lib/chain/seenCache/index.js.map +1 -1
  101. package/lib/chain/seenCache/seenAttesters.d.ts +5 -0
  102. package/lib/chain/seenCache/seenAttesters.d.ts.map +1 -1
  103. package/lib/chain/seenCache/seenAttesters.js +5 -0
  104. package/lib/chain/seenCache/seenAttesters.js.map +1 -1
  105. package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts +12 -0
  106. package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts.map +1 -0
  107. package/lib/chain/seenCache/seenExecutionPayloadBids.js +30 -0
  108. package/lib/chain/seenCache/seenExecutionPayloadBids.js.map +1 -0
  109. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts +15 -0
  110. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts.map +1 -0
  111. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js +28 -0
  112. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js.map +1 -0
  113. package/lib/chain/seenCache/seenGossipBlockInput.js +1 -1
  114. package/lib/chain/validation/aggregateAndProof.js +35 -14
  115. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  116. package/lib/chain/validation/attestation.d.ts +2 -2
  117. package/lib/chain/validation/attestation.d.ts.map +1 -1
  118. package/lib/chain/validation/attestation.js +27 -8
  119. package/lib/chain/validation/attestation.js.map +1 -1
  120. package/lib/chain/validation/attesterSlashing.d.ts.map +1 -1
  121. package/lib/chain/validation/attesterSlashing.js +1 -1
  122. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  123. package/lib/chain/validation/blobSidecar.d.ts.map +1 -1
  124. package/lib/chain/validation/blobSidecar.js +3 -3
  125. package/lib/chain/validation/blobSidecar.js.map +1 -1
  126. package/lib/chain/validation/block.d.ts.map +1 -1
  127. package/lib/chain/validation/block.js +6 -6
  128. package/lib/chain/validation/block.js.map +1 -1
  129. package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
  130. package/lib/chain/validation/dataColumnSidecar.js +3 -3
  131. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  132. package/lib/chain/validation/executionPayloadBid.d.ts +5 -0
  133. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -0
  134. package/lib/chain/validation/executionPayloadBid.js +104 -0
  135. package/lib/chain/validation/executionPayloadBid.js.map +1 -0
  136. package/lib/chain/validation/executionPayloadEnvelope.d.ts +5 -0
  137. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -0
  138. package/lib/chain/validation/executionPayloadEnvelope.js +89 -0
  139. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -0
  140. package/lib/chain/validation/payloadAttestationMessage.d.ts +9 -0
  141. package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -0
  142. package/lib/chain/validation/payloadAttestationMessage.js +72 -0
  143. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -0
  144. package/lib/chain/validation/proposerSlashing.js +1 -1
  145. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  146. package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts +2 -3
  147. package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts.map +1 -1
  148. package/lib/chain/validation/signatureSets/aggregateAndProof.js +8 -3
  149. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  150. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts +2 -2
  151. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts.map +1 -1
  152. package/lib/chain/validation/signatureSets/contributionAndProof.js +3 -3
  153. package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
  154. package/lib/chain/validation/signatureSets/selectionProof.d.ts +2 -3
  155. package/lib/chain/validation/signatureSets/selectionProof.d.ts.map +1 -1
  156. package/lib/chain/validation/signatureSets/selectionProof.js +8 -3
  157. package/lib/chain/validation/signatureSets/selectionProof.js.map +1 -1
  158. package/lib/chain/validation/signatureSets/syncCommittee.d.ts +2 -2
  159. package/lib/chain/validation/signatureSets/syncCommittee.d.ts.map +1 -1
  160. package/lib/chain/validation/signatureSets/syncCommittee.js +3 -3
  161. package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
  162. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts +1 -2
  163. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts.map +1 -1
  164. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js +2 -2
  165. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
  166. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts +2 -2
  167. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts.map +1 -1
  168. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js +3 -3
  169. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
  170. package/lib/chain/validation/syncCommittee.js +1 -1
  171. package/lib/chain/validation/syncCommittee.js.map +1 -1
  172. package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +1 -1
  173. package/lib/chain/validation/syncCommitteeContributionAndProof.js +3 -5
  174. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  175. package/lib/chain/validation/voluntaryExit.js +1 -1
  176. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  177. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  178. package/lib/chain/validatorMonitor.js +7 -4
  179. package/lib/chain/validatorMonitor.js.map +1 -1
  180. package/lib/db/repositories/checkpointState.js +0 -1
  181. package/lib/db/repositories/checkpointState.js.map +1 -1
  182. package/lib/metrics/metrics/lodestar.d.ts +20 -0
  183. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  184. package/lib/metrics/metrics/lodestar.js +40 -0
  185. package/lib/metrics/metrics/lodestar.js.map +1 -1
  186. package/lib/network/gossip/interface.d.ts +20 -2
  187. package/lib/network/gossip/interface.d.ts.map +1 -1
  188. package/lib/network/gossip/interface.js +3 -0
  189. package/lib/network/gossip/interface.js.map +1 -1
  190. package/lib/network/gossip/scoringParameters.d.ts.map +1 -1
  191. package/lib/network/gossip/scoringParameters.js +38 -2
  192. package/lib/network/gossip/scoringParameters.js.map +1 -1
  193. package/lib/network/gossip/topic.d.ts +77 -1
  194. package/lib/network/gossip/topic.d.ts.map +1 -1
  195. package/lib/network/gossip/topic.js +20 -0
  196. package/lib/network/gossip/topic.js.map +1 -1
  197. package/lib/network/peers/peerManager.d.ts.map +1 -1
  198. package/lib/network/peers/peerManager.js +9 -0
  199. package/lib/network/peers/peerManager.js.map +1 -1
  200. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  201. package/lib/network/processor/gossipHandlers.js +34 -0
  202. package/lib/network/processor/gossipHandlers.js.map +1 -1
  203. package/lib/network/processor/gossipQueues/index.d.ts.map +1 -1
  204. package/lib/network/processor/gossipQueues/index.js +16 -0
  205. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  206. package/lib/network/processor/index.d.ts.map +1 -1
  207. package/lib/network/processor/index.js +3 -0
  208. package/lib/network/processor/index.js.map +1 -1
  209. package/lib/sync/backfill/backfill.js +2 -2
  210. package/lib/sync/backfill/backfill.js.map +1 -1
  211. package/lib/sync/backfill/verify.d.ts +1 -2
  212. package/lib/sync/backfill/verify.d.ts.map +1 -1
  213. package/lib/sync/backfill/verify.js +2 -2
  214. package/lib/sync/backfill/verify.js.map +1 -1
  215. package/package.json +15 -15
  216. package/src/api/impl/beacon/blocks/index.ts +9 -7
  217. package/src/api/impl/lodestar/index.ts +12 -3
  218. package/src/api/impl/validator/index.ts +12 -11
  219. package/src/chain/ColumnReconstructionTracker.ts +8 -4
  220. package/src/chain/blocks/verifyBlock.ts +0 -1
  221. package/src/chain/blocks/verifyBlocksSignatures.ts +4 -12
  222. package/src/chain/bls/multithread/index.ts +7 -4
  223. package/src/chain/bls/multithread/jobItem.ts +7 -3
  224. package/src/chain/bls/singleThread.ts +5 -3
  225. package/src/chain/bls/utils.ts +15 -7
  226. package/src/chain/chain.ts +39 -26
  227. package/src/chain/errors/attestationError.ts +11 -1
  228. package/src/chain/errors/executionPayloadBid.ts +35 -0
  229. package/src/chain/errors/executionPayloadEnvelope.ts +34 -0
  230. package/src/chain/errors/index.ts +3 -0
  231. package/src/chain/errors/payloadAttestation.ts +25 -0
  232. package/src/chain/forkChoice/index.ts +19 -0
  233. package/src/chain/interface.ts +16 -1
  234. package/src/chain/opPools/executionPayloadBidPool.ts +77 -0
  235. package/src/chain/opPools/index.ts +2 -0
  236. package/src/chain/opPools/payloadAttestationPool.ts +157 -0
  237. package/src/chain/prepareNextSlot.ts +6 -6
  238. package/src/chain/produceBlock/produceBlockBody.ts +7 -5
  239. package/src/chain/regen/interface.ts +2 -12
  240. package/src/chain/regen/queued.ts +3 -23
  241. package/src/chain/regen/regen.ts +10 -25
  242. package/src/chain/seenCache/index.ts +3 -1
  243. package/src/chain/seenCache/seenAttesters.ts +5 -0
  244. package/src/chain/seenCache/seenExecutionPayloadBids.ts +35 -0
  245. package/src/chain/seenCache/seenExecutionPayloadEnvelope.ts +34 -0
  246. package/src/chain/seenCache/seenGossipBlockInput.ts +1 -1
  247. package/src/chain/validation/aggregateAndProof.ts +36 -14
  248. package/src/chain/validation/attestation.ts +33 -16
  249. package/src/chain/validation/attesterSlashing.ts +1 -6
  250. package/src/chain/validation/blobSidecar.ts +2 -7
  251. package/src/chain/validation/block.ts +6 -6
  252. package/src/chain/validation/dataColumnSidecar.ts +2 -7
  253. package/src/chain/validation/executionPayloadBid.ts +141 -0
  254. package/src/chain/validation/executionPayloadEnvelope.ts +122 -0
  255. package/src/chain/validation/payloadAttestationMessage.ts +109 -0
  256. package/src/chain/validation/proposerSlashing.ts +1 -6
  257. package/src/chain/validation/signatureSets/aggregateAndProof.ts +9 -14
  258. package/src/chain/validation/signatureSets/contributionAndProof.ts +2 -4
  259. package/src/chain/validation/signatureSets/selectionProof.ts +9 -9
  260. package/src/chain/validation/signatureSets/syncCommittee.ts +2 -4
  261. package/src/chain/validation/signatureSets/syncCommitteeContribution.ts +2 -3
  262. package/src/chain/validation/signatureSets/syncCommitteeSelectionProof.ts +2 -4
  263. package/src/chain/validation/syncCommittee.ts +1 -1
  264. package/src/chain/validation/syncCommitteeContributionAndProof.ts +3 -5
  265. package/src/chain/validation/voluntaryExit.ts +1 -1
  266. package/src/chain/validatorMonitor.ts +10 -5
  267. package/src/db/repositories/checkpointState.ts +1 -1
  268. package/src/metrics/metrics/lodestar.ts +40 -0
  269. package/src/network/gossip/interface.ts +17 -0
  270. package/src/network/gossip/scoringParameters.ts +44 -2
  271. package/src/network/gossip/topic.ts +21 -0
  272. package/src/network/peers/peerManager.ts +11 -0
  273. package/src/network/processor/gossipHandlers.ts +48 -0
  274. package/src/network/processor/gossipQueues/index.ts +16 -0
  275. package/src/network/processor/index.ts +3 -0
  276. package/src/sync/backfill/backfill.ts +2 -2
  277. package/src/sync/backfill/verify.ts +2 -3
@@ -548,7 +548,7 @@ export class BackfillSync extends EventEmitter {
548
548
  // GENESIS_SLOT doesn't has valid signature
549
549
  if (anchorBlock.message.slot === GENESIS_SLOT)
550
550
  return;
551
- await verifyBlockProposerSignature(this.chain.config, this.chain.index2pubkey, this.chain.bls, [anchorBlock]);
551
+ await verifyBlockProposerSignature(this.chain.config, this.chain.bls, [anchorBlock]);
552
552
  // We can write to the disk if this is ahead of prevFinalizedCheckpointBlock otherwise
553
553
  // we will need to go make checks on the top of sync loop before writing as it might
554
554
  // override prevFinalizedCheckpointBlock
@@ -599,7 +599,7 @@ export class BackfillSync extends EventEmitter {
599
599
  const { nextAnchor, verifiedBlocks, error } = verifyBlockSequence(this.config, blocks, anchorParentRoot);
600
600
  // If any of the block's proposer signature fail, we can't trust this peer at all
601
601
  if (verifiedBlocks.length > 0) {
602
- await verifyBlockProposerSignature(this.chain.config, this.chain.index2pubkey, this.chain.bls, verifiedBlocks);
602
+ await verifyBlockProposerSignature(this.chain.config, this.chain.bls, verifiedBlocks);
603
603
  // This is bad, like super bad. Abort the backfill
604
604
  if (!nextAnchor)
605
605
  throw new BackfillSyncError({
@@ -1 +1 @@
1
- {"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../../src/sync/backfill/backfill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../../src/sync/backfill/backfill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAsB,aAAa,EAAE,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AACvG,OAAO,EAAwC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAC,YAAY,EAAU,KAAK,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAC,YAAY,EAAE,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAGjE,OAAO,EAAW,YAAY,EAAoB,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAC,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAElD,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAC,iBAAiB,EAAE,qBAAqB,EAAC,MAAM,aAAa,CAAC;AACrE,OAAO,EAAqC,4BAA4B,EAAE,mBAAmB,EAAC,MAAM,aAAa,CAAC;AAElH;;;GAGG;AACH,MAAM,wBAAwB,GAAG,IAAI,CAAC;AA0BtC,MAAM,CAAN,IAAY,iBAEX;AAFD,WAAY,iBAAiB;IAC3B,yDAAoC,CAAA;AACtC,CAAC,EAFW,iBAAiB,KAAjB,iBAAiB,QAE5B;AAED,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,2CAAqB,CAAA;IACrB,6DAAuC,CAAA;IACvC,6CAAuB,CAAA;IACvB,iDAA2B,CAAA;AAC7B,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AAED,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,yCAAmB,CAAA;IACnB,6CAAuB,CAAA;IACvB,yCAAmB,CAAA;AACrB,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AAED,6DAA6D;AAC7D,MAAM,UAAU,GAAwC;IACtD,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/B,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/B,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/B,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;CAClC,CAAC;AA6BF,MAAM,OAAO,YAAa,SAAS,YAA8C;IAC/E,6CAA6C;IAC7C,UAAU,CAAqB;IAEd,KAAK,CAAe;IACpB,OAAO,CAAW;IAClB,EAAE,CAAY;IACd,MAAM,CAAe;IACrB,MAAM,CAAS;IACf,OAAO,CAAiB;IAEzC;;OAEG;IACK,IAAI,CAAmB;IAC/B;;;;;;;;OAQG;IACK,kBAAkB,CAA6B;IAC/C,WAAW,GAAG,KAAK,CAAC;IAE5B;;;;;;;;;;;;;;OAcG;IACK,4BAA4B,CAAsB;IAC1D,6EAA6E;IACrE,qBAAqB,CAAO;IAC5B,wBAAwB,CAAc;IAEtC,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAC5B,KAAK,GAAG,IAAI,GAAG,EAAa,CAAC;IAC7B,MAAM,GAAuB,kBAAkB,CAAC,OAAO,CAAC;IACxD,MAAM,CAAc;IAE5B,YAAY,IAAsB,EAAE,OAAwB;QAC1D,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;QAC3D,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;QACjE,IAAI,CAAC,4BAA4B,GAAG,OAAO,CAAC,4BAA4B,CAAC;QACzE,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAErD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAE/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACjE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE7B,IAAI,CAAC,IAAI,EAAE;aACR,IAAI,CAAC,CAAC,gBAAgB,EAAE,EAAE;YACzB,IAAI,IAAI,CAAC,MAAM,KAAK,kBAAkB,CAAC,SAAS,EAAE,CAAC;gBACjD,MAAM,IAAI,YAAY,CAAC,oEAAoE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5G,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAC,gBAAgB,EAAC,CAAC,CAAC;YAC/D,2EAA2E;YAC3E,8DAA8D;YAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC;YACzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QAEL,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvG,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,UAAU,CAAC,GAAG,EAAE,CACtD,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,CACzC,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,IAAI,IAAI,IAAI,CAAC,qBAAqB,CACxE,CACF,CAAC;YACF,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,EAAE,CACnD,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CACzG,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,IAAsB,EACtB,OAA4B;QAE5B,MAAM,EAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAC,GAAG,OAAO,CAAC;QAEhE,MAAM,EAAC,UAAU,EAAE,QAAQ,EAAC,GAAG,uBAAuB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC;QACtD,MAAM,UAAU,GAAG;YACjB,WAAW,EAAE,IAAI;YACjB,eAAe,EAAE,QAAQ,CAAC,IAAI;YAC9B,UAAU;YACV,mBAAmB,EAAE,IAAI;SAC1B,CAAC;QAEF,uEAAuE;QACvE,sBAAsB;QACtB,MAAM,qBAAqB,GAAG,UAAU,CAAC;QACzC,MAAM,wBAAwB,GAAG,MAAM,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACtF,MAAM,wBAAwB,GAAG,MAAM,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC;YACjE,GAAG,EAAE,qBAAqB;SAC3B,CAAC,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;YAClD,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC9B,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,qBAAqB;YACrB,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC;SACnE,CAAC,CAAC;QAEH,uEAAuE;QACvE,MAAM,kBAAkB,GAA+B,YAAY;YACjE,CAAC,CAAC,EAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,GAAG,eAAe,EAAC;YACvE,CAAC,CAAC,IAAI,CAAC;QACT,0EAA0E;QAC1E,MAAM,4BAA4B,GAAG,MAAM,gCAAgC,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAE5G,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE;YAC5B,UAAU;YACV,qBAAqB;YACrB,wBAAwB;YACxB,kBAAkB;YAClB,4BAA4B;YAC5B,GAAG,OAAO;SACX,CAAM,CAAC;IACV,CAAC;IAED,yCAAyC;IACzC,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACxE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,IAAI;QAChB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAEzB,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,MAAM,KAAK,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBAC/C,6CAA6C;gBAC7C,MAAM;YACR,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC;YAEzC,+EAA+E;YAC/E,8CAA8C;YAC9C,wEAAwE;YACxE,iFAAiF;YACjF,wEAAwE;YACxE,2BAA2B;YAC3B,8CAA8C;YAC9C,EAAE;YACF,oFAAoF;YACpF,uCAAuC;YACvC,8EAA8E;YAC9E,yCAAyC;YACzC,wFAAwF;YACxF,8EAA8E;YAC9E,qFAAqF;YACrF,uEAAuE;YACvE,mCAAmC;YACnC,wEAAwE;YACxE,sFAAsF;YACtF,gFAAgF;YAChF,kBAAkB;YAClB,uFAAuF;YACvF,eAAe;YACf,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,IAAI,IAAI,EAAE,CAAC;gBAChD,kCAAkC;gBAClC,iEAAiE;gBACjE,kFAAkF;gBAClF,+DAA+D;gBAC/D,gEAAgE;gBAChE,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,GAAG,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,CAAC;oBACtF,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,mBACE,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IACtC,qEAAqE,SAAS,CAC5E,IAAI,CAAC,4BAA4B,CAAC,IAAI,CACvC,UAAU,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,CACpD,CAAC;oBACF,kCAAkC;oBAClC,MAAM;gBACR,CAAC;gBAED,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,KAAK,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,CAAC;oBACxF,qEAAqE;oBACrE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,EAAE,CAAC;wBACvG,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,qEACE,IAAI,CAAC,4BAA4B,CAAC,IACpC,cAAc,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,YAAY,SAAS,CAClF,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CACzC,EAAE,CACJ,CAAC;wBACF,kCAAkC;wBAClC,MAAM;oBACR,CAAC;oBACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gDAAgD,EAAE;wBACpE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC;wBACvD,IAAI,EAAE,IAAI,CAAC,4BAA4B,CAAC,IAAI;qBAC7C,CAAC,CAAC;oBAEH,+EAA+E;oBAC/E,mFAAmF;oBACnF,qCAAqC;oBACrC,EAAE;oBACF,yEAAyE;oBACzE,uEAAuE;oBACvE,mBAAmB;oBACnB,6EAA6E;oBAC7E,0BAA0B;oBAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;wBAC9D,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAC5B,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,EACxC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAC1C,CAAC;oBACJ,CAAC;oBACD,IAAI,CAAC,4BAA4B,GAAG,MAAM,gCAAgC,CACxE,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,EACxC,IAAI,CAAC,MAAM,CACZ,CAAC;gBACJ,CAAC;gBAED,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC9D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;wBAC9F,KAAK,CACH,iDAAiD,SAAS,CACxD,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAC7D,EAAE,CACJ,CAAC;oBACJ,CAAC;oBACD,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAC1F,CAAC;gBAED,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjD,MAAM,IAAI,CAAC,kCAAkC,EAAE,CAAC;gBAClD,CAAC;gBAED,IACE,IAAI,CAAC,wBAAwB,KAAK,IAAI;oBACtC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,GAAG,IAAI,CAAC,wBAAwB,EACxE,CAAC;oBACD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC;oBACzE,MAAM,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;oBAC9F,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,mCAAmC,IAAI,CAAC,qBAAqB,SAAS,IAAI,CAAC,wBAAwB,EAAE,CACtG,CAAC;gBACJ,CAAC;gBAED,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC9D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;oBACvD,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC;oBAC3C,OAAO,YAAY,CAAC;gBACtB,CAAC;gBAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gCAAgC,EAAE,CAAC;gBACpE,IAAI,aAAa,EAAE,CAAC;oBAClB,oCAAoC;oBACpC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;oBACzB,SAAS;gBACX,CAAC;YACH,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAChD,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;oBACzB,SAAS;gBACX,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,EAAE,CAAU,CAAC,CAAC;gBACjE,kCAAkC;gBAClC,MAAM;YACR,CAAC;YAED,yCAAyC;YACzC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACzD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAClC,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;oBACjC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;oBAElE,gEAAgE;oBAChE,sCAAsC;gBACxC,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBAE3B,6EAA6E;oBAC7E,sCAAsC;gBACxC,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,EAAE,CAAU,CAAC,CAAC;gBAEhD,IAAI,CAAC,YAAY,iBAAiB,EAAE,CAAC;oBACnC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;wBACpB,KAAK,qBAAqB,CAAC,cAAc;4BACvC,2CAA2C;4BAC3C,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC;4BACzC,MAAM;wBACR,KAAK,qBAAqB,CAAC,YAAY,CAAC;wBACxC,6FAA6F;wBAC7F,KAAK,qBAAqB,CAAC,UAAU;4BACnC,0EAA0E;4BAC1E,+CAA+C;4BAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;gCAChC,IAAI,CAAC,UAAU,GAAG;oCAChB,WAAW,EAAE,IAAI;oCACjB,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU;oCAC/D,UAAU,EAAE,IAAI;oCAChB,mBAAmB,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB;iCACzD,CAAC;4BACJ,CAAC;wBAEH,gBAAgB;wBAChB,KAAK,qBAAqB,CAAC,iBAAiB;4BAC1C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;oBACjF,CAAC;gBACH,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,IAAI,CAAC,MAAM,KAAK,kBAAkB,CAAC,OAAO;oBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC3E,CAAC;QACH,CAAC;QAED,MAAM,IAAI,YAAY,CAAC,cAAc,CAAC,CAAC;IACzC,CAAC;IAEO,OAAO,GAAG,CAAC,IAAkD,EAAQ,EAAE;QAC7E,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,IAAI,IAAI,IAAI,CAAC,qBAAqB,CAAC;QAC7F,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,EAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,EAAC,CAAC,CAAC;QAC9E,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,YAAY,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC;IAEM,UAAU,GAAG,CAAC,IAAqD,EAAQ,EAAE;QACnF,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF;;;OAGG;IACK,KAAK,CAAC,kCAAkC;QAC9C,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,IAAI,IAAI,EAAE,CAAC;YAChD,MAAM,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE,CAAC;YACpC,MAAM,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAE7B,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;YAC7E,oFAAoF;YACpF,8EAA8E;YAC9E,wDAAwD;YACxD,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC/F,IACE,CAAC,mBAAmB;gBACpB,oFAAoF;gBACpF,2EAA2E;gBAC3E,8DAA8D;gBAE9D,8DAA8D;gBAC9D,4BAA4B;gBAC5B,mEAAmE;gBACnE,mBAAmB,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,eAAe;gBAElF,yCAAyC;gBACzC,MAAM,IAAI,KAAK,CACb,4BAA4B,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WACjE,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,eACjC,KACE,mBAAmB;oBACjB,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,OAAO,CAAC,IAAI,GAAG,eAAe,CAAC;oBACrF,CAAC,CAAC,WACN,EAAE,CACH,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBAC1C,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAC7C,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,eAAe;aACtD,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gCAAgC;QAC5C,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,KAAK,IAAI,EAAE,CAAC;YACjD,MAAM,KAAK,CAAC,4FAA4F,CAAC,CAAC;QAC5G,CAAC;QAED,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,aAAa,CAAC;QAC5E,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAEpE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC;YAC1D,GAAG,EAAE,kBAAkB;SACxB,CAAC,CAAC;QAEH,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,EAAC,KAAK,EAAE,UAAU,EAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YAEtF,IAAI,UAAU,GAAG,kBAAkB,EAAE,CAAC;gBACpC,aAAa,GAAG,IAAI,CAAC;gBACrB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC/D,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,aAAa,GAAG,KAAK,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,kDAAkD,UAAU,yCAAyC,CACtG,CAAC;gBACJ,CAAC;gBACD,IAAI,WAAW,IAAI,aAAa,IAAI,IAAI,CAAC,4BAA4B,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;oBACzF,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kCAAkC,UAAU,gDAAgD,EAC5F,EAAC,IAAI,EAAE,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAC,CAC/C,CAAC;oBAEF,4EAA4E;oBAC5E,iEAAiE;oBACjE,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;oBACzG,IACE,mBAAmB,IAAI,IAAI;wBAC3B,IAAI,CAAC,4BAA4B,CAAC,IAAI,KAAK,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAC3E,CAAC;wBACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gDAAgD,EAAE;4BACpE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC;4BACvD,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI;yBACvC,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,aAAa,GAAG,KAAK,CAAC;wBACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,0EAA0E,SAAS,CACjF,IAAI,CAAC,4BAA4B,CAAC,IAAI,CACvC,UAAU,IAAI,CAAC,4BAA4B,CAAC,IAAI,IAC/C,mBAAmB,CAAC,CAAC,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,WAC9E,yBAAyB,CAC1B,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,IAAI,WAAW,IAAI,aAAa,EAAE,CAAC;oBACjC,iFAAiF;oBACjF,MAAM,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;oBAC3E,IAAI,CAAC,wBAAwB,GAAG,UAAU,CAAC;oBAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,CACjB,2CAA2C,IAAI,CAAC,qBAAqB,KAAK,IAAI,CAAC,wBAAwB,EAAE,EACzG,EAAC,UAAU,EAAC,CACb,CAAC;oBAEF,MAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC1E,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;oBAErF,IAAI,CAAC,UAAU,GAAG;wBAChB,WAAW;wBACX,eAAe;wBACf,UAAU,EAAE,UAAU;wBACtB,mBAAmB,EAAE,EAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAC;qBACnF,CAAC;oBACF,IAAI,IAAI,CAAC,4BAA4B,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;wBACzD,qEAAqE;wBACrE,iBAAiB;wBACjB,+DAA+D;wBAC/D,IAAI,CAAC,4BAA4B,GAAG,MAAM,gCAAgC,CACxE,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,EAAE,EACP,UAAU,EACV,IAAI,CAAC,MAAM,CACZ,CAAC;oBACJ,CAAC;oBAED,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,GAAG,CACxC,EAAC,MAAM,EAAE,kBAAkB,CAAC,iBAAiB,EAAC,EAC9C,kBAAkB,GAAG,UAAU,CAChC,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,mFAAmF;QACnF,6CAA6C;QAC7C,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC3F,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAClF,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,wCAAwC,IAAI,CAAC,qBAAqB,IAAI,SAAS,CAC7E,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CACzC,EAAE,EACH,EAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAC,CAC3C,CAAC;QACJ,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,iFAAiF;QACjF,mDAAmD;QACnD,IAAI,eAAqB,CAAC;QAC1B,IAAI,YAAY,GAAgB,IAAI,CAAC;QACrC,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAChC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;YAClD,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAC5C,CAAC;QACD,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACxE,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QAE/B,IAAI,YAAY,KAAK,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY;YACpE,MAAM,KAAK,CACT,sDAAsD,SAAS,CAC7D,eAAe,CAChB,cAAc,YAAY,YAAY,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CAClE,CAAC;QAEJ,8EAA8E;QAC9E,IAAI,WAAqC,EACvC,SAAS,GAAG,CAAC,CAAC;QAEhB,IAAI,gCAAgC,GAAG,KAAK,CAAC;QAC7C,OACE,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,iBAAiB;YACzC,8EAA8E;YAC9E,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EACpF,CAAC;YACD,iFAAiF;YACjF,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,CAAC;gBACtE,MAAM,KAAK,CACT,oDAAoD,SAAS,CAC3D,IAAI,CAAC,4BAA4B,CAAC,IAAI,CACvC,UAAU,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,EAAE,CAC/D,CAAC;YACJ,CAAC;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,CAAC;gBACxE,IACE,CAAC,gCAAgC;oBACjC,CAAC,eAAe,CAAC,eAAe,EAAE,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,EACzE,CAAC;oBACD,MAAM,KAAK,CACT,yDACE,IAAI,CAAC,4BAA4B,CAAC,IACpC,cAAc,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,WAAW,SAAS,CAAC,eAAe,CAAC,EAAE,CACvG,CAAC;gBACJ,CAAC;gBAED,qEAAqE;gBACrE,kEAAkE;gBAClE,wDAAwD;gBACxD,+BAA+B;gBAC/B,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBAC9D,IAAI,CAAC,4BAA4B,GAAG,EAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,EAAC,CAAC;oBAC3G,gCAAgC,GAAG,IAAI,CAAC;gBAC1C,CAAC;qBAAM,CAAC;oBACN,6DAA6D;oBAC7D,IAAI,CAAC,4BAA4B,GAAG,MAAM,gCAAgC,CACxE,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,EAAE,EACP,WAAW,CAAC,OAAO,CAAC,IAAI,EACxB,IAAI,CAAC,MAAM,CACZ,CAAC;oBACF,gCAAgC,GAAG,KAAK,CAAC;gBAC3C,CAAC;YACH,CAAC;YACD,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;YACjD,WAAW,GAAG,WAAW,CAAC;YAC1B,SAAS,EAAE,CAAC;QACd,CAAC;QAED,IAAI,CAAC,UAAU,GAAG;YAChB,WAAW;YACX,eAAe;YACf,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI;YACpC,mBAAmB,EAAE,EAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAC;SACjG,CAAC;QACF,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAC,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAC,EAAE,SAAS,CAAC,CAAC;QAC7F,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,SAAS,uBAAuB,EAAE;YAC5D,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI;SAC/B,CAAC,CAAC;QACH,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7C,qFAAqF;YACrF,6DAA6D;YAC7D,MAAM,KAAK,CAAC,wBAAwB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAe,EAAE,eAAqB;QAClE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;QAC/E,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClE,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAE3B,2CAA2C;QAC3C,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO;QACtD,MAAM,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QAErF,sFAAsF;QACtF,oFAAoF;QACpF,wCAAwC;QACxC,IAAI,IAAI,CAAC,4BAA4B,CAAC,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACtE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC/D,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC7E,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAED,IAAI,CAAC,UAAU,GAAG;YAChB,WAAW,EAAE,WAAW;YACxB,eAAe;YACf,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI;YACpC,mBAAmB,EAAE,EAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAC;SACjG,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAC,MAAM,EAAE,kBAAkB,CAAC,WAAW,EAAC,CAAC,CAAC;QAErF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,yBAAyB,EAAE;YAC7C,IAAI,EAAE,SAAS,CAAC,eAAe,CAAC;YAChC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI;SAC/B,CAAC,CAAC;QAEH,OAAO;IACT,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,IAAe;QACrC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EACpC,IAAI,CAAC,4BAA4B,CAAC,IAAI,EACtC,YAAY,CACb,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE;YAC9D,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,MAAM,GAAG,QAAQ;YACxB,IAAI,EAAE,CAAC;SACR,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;QAExE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,qDAAqD;YACrD,IAAI,CAAC,UAAU,GAAG;gBAChB,WAAW,EAAE,IAAI;gBACjB,eAAe,EAAE,gBAAgB;gBACjC,UAAU,EAAE,IAAI;gBAChB,mBAAmB,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB;aACzD,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,EAAC,UAAU,EAAE,cAAc,EAAE,KAAK,EAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAEvG,iFAAiF;QACjF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAEtF,kDAAkD;YAClD,IAAI,CAAC,UAAU;gBACb,MAAM,IAAI,iBAAiB,CAAC;oBAC1B,IAAI,EAAE,qBAAqB,CAAC,cAAc;oBAC1C,MAAM,EAAE,oCAAoC;iBAC7C,CAAC,CAAC;YAEL,mFAAmF;YACnF,mFAAmF;YACnF,yDAAyD;YACzD,MAAM,WAAW,GACf,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,4BAA4B,CAAC,IAAI;gBACtD,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAEzD,MAAM,UAAU,GAAG,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,EAAE,CAAC;YAEzB,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;gBAChC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACzD,MAAM,IAAI,GAAG;oBACX,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;oBACvB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;oBACxB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;oBAC/F,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU;iBACrC,CAAC;gBAEF,IAAI,UAAU,EAAE,CAAC;oBACf,UAAU,CAAC,IAAI,CAAC,EAAC,GAAG,IAAI,EAAE,KAAK,EAAE,UAAU,EAAC,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,aAAa,CAAC,IAAI,CAAC,EAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;YAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACrD,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAC,MAAM,EAAE,kBAAkB,CAAC,SAAS,EAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5G,CAAC;QAED,4DAA4D;QAC5D,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG;gBAChB,WAAW,EAAE,UAAU,CAAC,KAAK;gBAC7B,eAAe,EAAE,UAAU,CAAC,IAAI;gBAChC,UAAU,EAAE,UAAU,CAAC,IAAI;gBAC3B,mBAAmB,EAAE,UAAU;aAChC,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,wBAAwB,cAAc,CAAC,MAAM,eAAe,EAAE;gBAChF,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI;aACrD,CAAC,CAAC;QACL,CAAC;QACD,IAAI,KAAK,IAAI,IAAI;YAAE,MAAM,IAAI,iBAAiB,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,CAAC;IAChE,CAAC;CACF;AAED,KAAK,UAAU,gCAAgC,CAC7C,MAAuB,EACvB,EAAa,EACb,SAAe,EACf,MAAe;IAEf,iDAAiD;IACjD,IAAI,SAAS,IAAI,YAAY;QAAE,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,CAAC,EAAC,CAAC;IAE7E,oFAAoF;IACpF,sFAAsF;IACtF,uCAAuC;IACvC,sDAAsD;IACtD,4CAA4C;IAC5C,MAAM,oBAAoB,GAAG,CAC3B,MAAM,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC;QAC3B,EAAE,EAAE,SAAS;QACb,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,CAAC;KACT,CAAC,CACH,CAAC,CAAC,CAAC,CAAC;IAEL,IAAI,4BAAiD,CAAC;IACtD,IAAI,oBAAoB,IAAI,IAAI,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC/D,4BAA4B,GAAG,EAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAC,CAAC;QAC/E,MAAM,EAAE,KAAK,CAAC,4FAA4F,EAAE;YAC1G,IAAI,EAAE,SAAS,CAAC,4BAA4B,CAAC,IAAI,CAAC;YAClD,IAAI,EAAE,4BAA4B,CAAC,IAAI;SACxC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,yEAAyE;QACzE,oCAAoC;QACpC,4BAA4B,GAAG,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,GAAG,CAAC,EAAC,CAAC;IAC3E,CAAC;IACD,OAAO,4BAA4B,CAAC;AACtC,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { BeaconConfig } from "@lodestar/config";
2
- import { Index2PubkeyCache } from "@lodestar/state-transition";
3
2
  import { Root, SignedBeaconBlock, Slot } from "@lodestar/types";
4
3
  import { IBlsVerifier } from "../../chain/bls/index.js";
5
4
  import { BackfillSyncErrorCode } from "./errors.js";
@@ -15,5 +14,5 @@ export declare function verifyBlockSequence(config: BeaconConfig, blocks: Signed
15
14
  verifiedBlocks: SignedBeaconBlock[];
16
15
  error?: BackfillSyncErrorCode.NOT_LINEAR;
17
16
  };
18
- export declare function verifyBlockProposerSignature(config: BeaconConfig, index2pubkey: Index2PubkeyCache, bls: IBlsVerifier, blocks: SignedBeaconBlock[]): Promise<void>;
17
+ export declare function verifyBlockProposerSignature(config: BeaconConfig, bls: IBlsVerifier, blocks: SignedBeaconBlock[]): Promise<void>;
19
18
  //# sourceMappingURL=verify.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/sync/backfill/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAgB,iBAAiB,EAA+B,MAAM,4BAA4B,CAAC;AAC1G,OAAO,EAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAM,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAoB,qBAAqB,EAAC,MAAM,aAAa,CAAC;AAErE,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAC,CAAC;AAE7E,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,iBAAiB,EAAE,EAC3B,UAAU,EAAE,IAAI,GACf;IACD,UAAU,EAAE,aAAa,GAAG,IAAI,CAAC;IACjC,cAAc,EAAE,iBAAiB,EAAE,CAAC;IACpC,KAAK,CAAC,EAAE,qBAAqB,CAAC,UAAU,CAAC;CAC1C,CAkBA;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,iBAAiB,EAC/B,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,iBAAiB,EAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CAWf"}
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/sync/backfill/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAM,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAoB,qBAAqB,EAAC,MAAM,aAAa,CAAC;AAErE,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAC,CAAC;AAE7E,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,iBAAiB,EAAE,EAC3B,UAAU,EAAE,IAAI,GACf;IACD,UAAU,EAAE,aAAa,GAAG,IAAI,CAAC;IACjC,cAAc,EAAE,iBAAiB,EAAE,CAAC;IACpC,KAAK,CAAC,EAAE,qBAAqB,CAAC,UAAU,CAAC;CAC1C,CAkBA;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,iBAAiB,EAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CAWf"}
@@ -20,13 +20,13 @@ export function verifyBlockSequence(config, blocks, anchorRoot) {
20
20
  }
21
21
  return { nextAnchor, verifiedBlocks };
22
22
  }
23
- export async function verifyBlockProposerSignature(config, index2pubkey, bls, blocks) {
23
+ export async function verifyBlockProposerSignature(config, bls, blocks) {
24
24
  if (blocks.length === 1 && blocks[0].message.slot === GENESIS_SLOT)
25
25
  return;
26
26
  const signatures = blocks.reduce((sigs, block) => {
27
27
  // genesis block doesn't have valid signature
28
28
  if (block.message.slot !== GENESIS_SLOT)
29
- sigs.push(getBlockProposerSignatureSet(config, index2pubkey, block));
29
+ sigs.push(getBlockProposerSignatureSet(config, block));
30
30
  return sigs;
31
31
  }, []);
32
32
  if (!(await bls.verifySignatureSets(signatures, { batchable: true }))) {
@@ -1 +1 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/sync/backfill/verify.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAmC,4BAA4B,EAAC,MAAM,4BAA4B,CAAC;AAC1G,OAAO,EAAgC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAC,iBAAiB,EAAE,qBAAqB,EAAC,MAAM,aAAa,CAAC;AASrE,MAAM,UAAU,mBAAmB,CACjC,MAAoB,EACpB,MAA2B,EAC3B,UAAgB;IAMhB,IAAI,QAAQ,GAAS,UAAU,CAAC;IAChC,IAAI,UAAU,GAAyB,IAAI,CAAC;IAE5C,MAAM,cAAc,GAAwB,EAAE,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC1C,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,iBAAiB,CAAC,EAAC,IAAI,EAAE,qBAAqB,CAAC,YAAY,EAAC,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,EAAC,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,qBAAqB,CAAC,UAAU,EAAC,CAAC;QAC/E,CAAC;QACD,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,UAAU,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAC,CAAC;QACtE,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;IACtC,CAAC;IACD,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,MAAoB,EACpB,YAA+B,EAC/B,GAAiB,EACjB,MAA2B;IAE3B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO;IAC3E,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAqB,EAAE,KAAK,EAAE,EAAE;QAChE,6CAA6C;QAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY;YAAE,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9G,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,mBAAmB,CAAC,UAAU,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,iBAAiB,CAAC,EAAC,IAAI,EAAE,qBAAqB,CAAC,iBAAiB,EAAC,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/sync/backfill/verify.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAgB,4BAA4B,EAAC,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAgC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAC,iBAAiB,EAAE,qBAAqB,EAAC,MAAM,aAAa,CAAC;AASrE,MAAM,UAAU,mBAAmB,CACjC,MAAoB,EACpB,MAA2B,EAC3B,UAAgB;IAMhB,IAAI,QAAQ,GAAS,UAAU,CAAC;IAChC,IAAI,UAAU,GAAyB,IAAI,CAAC;IAE5C,MAAM,cAAc,GAAwB,EAAE,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC1C,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,iBAAiB,CAAC,EAAC,IAAI,EAAE,qBAAqB,CAAC,YAAY,EAAC,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,EAAC,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,qBAAqB,CAAC,UAAU,EAAC,CAAC;QAC/E,CAAC;QACD,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,UAAU,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAC,CAAC;QACtE,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;IACtC,CAAC;IACD,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,MAAoB,EACpB,GAAiB,EACjB,MAA2B;IAE3B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO;IAC3E,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAqB,EAAE,KAAK,EAAE,EAAE;QAChE,6CAA6C;QAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY;YAAE,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAChG,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,mBAAmB,CAAC,UAAU,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,iBAAiB,CAAC,EAAC,IAAI,EAAE,qBAAqB,CAAC,iBAAiB,EAAC,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "bugs": {
12
12
  "url": "https://github.com/ChainSafe/lodestar/issues"
13
13
  },
14
- "version": "1.40.0-dev.1c71f4299a",
14
+ "version": "1.40.0-dev.1fc7f36d3e",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -134,18 +134,18 @@
134
134
  "@libp2p/peer-id": "^5.1.0",
135
135
  "@libp2p/prometheus-metrics": "^4.3.15",
136
136
  "@libp2p/tcp": "^10.1.8",
137
- "@lodestar/api": "^1.40.0-dev.1c71f4299a",
138
- "@lodestar/config": "^1.40.0-dev.1c71f4299a",
139
- "@lodestar/db": "^1.40.0-dev.1c71f4299a",
140
- "@lodestar/fork-choice": "^1.40.0-dev.1c71f4299a",
141
- "@lodestar/light-client": "^1.40.0-dev.1c71f4299a",
142
- "@lodestar/logger": "^1.40.0-dev.1c71f4299a",
143
- "@lodestar/params": "^1.40.0-dev.1c71f4299a",
144
- "@lodestar/reqresp": "^1.40.0-dev.1c71f4299a",
145
- "@lodestar/state-transition": "^1.40.0-dev.1c71f4299a",
146
- "@lodestar/types": "^1.40.0-dev.1c71f4299a",
147
- "@lodestar/utils": "^1.40.0-dev.1c71f4299a",
148
- "@lodestar/validator": "^1.40.0-dev.1c71f4299a",
137
+ "@lodestar/api": "^1.40.0-dev.1fc7f36d3e",
138
+ "@lodestar/config": "^1.40.0-dev.1fc7f36d3e",
139
+ "@lodestar/db": "^1.40.0-dev.1fc7f36d3e",
140
+ "@lodestar/fork-choice": "^1.40.0-dev.1fc7f36d3e",
141
+ "@lodestar/light-client": "^1.40.0-dev.1fc7f36d3e",
142
+ "@lodestar/logger": "^1.40.0-dev.1fc7f36d3e",
143
+ "@lodestar/params": "^1.40.0-dev.1fc7f36d3e",
144
+ "@lodestar/reqresp": "^1.40.0-dev.1fc7f36d3e",
145
+ "@lodestar/state-transition": "^1.40.0-dev.1fc7f36d3e",
146
+ "@lodestar/types": "^1.40.0-dev.1fc7f36d3e",
147
+ "@lodestar/utils": "^1.40.0-dev.1fc7f36d3e",
148
+ "@lodestar/validator": "^1.40.0-dev.1fc7f36d3e",
149
149
  "@multiformats/multiaddr": "^12.1.3",
150
150
  "datastore-core": "^10.0.2",
151
151
  "datastore-fs": "^10.0.6",
@@ -169,7 +169,7 @@
169
169
  "@chainsafe/swap-or-not-shuffle": "^1.2.1",
170
170
  "@libp2p/interface-internal": "^2.3.18",
171
171
  "@libp2p/logger": "^5.1.21",
172
- "@lodestar/spec-test-util": "^1.40.0-dev.1c71f4299a",
172
+ "@lodestar/spec-test-util": "^1.40.0-dev.1fc7f36d3e",
173
173
  "@types/js-yaml": "^4.0.5",
174
174
  "@types/qs": "^6.9.7",
175
175
  "@types/tmp": "^0.2.3",
@@ -188,5 +188,5 @@
188
188
  "beacon",
189
189
  "blockchain"
190
190
  ],
191
- "gitHead": "2e53e59d8a74209d99f9bc716e1628d7688c9fda"
191
+ "gitHead": "6979c822e4e0bd825a58aab6f4c597a90aab95a8"
192
192
  }
@@ -434,11 +434,13 @@ export function getBeaconBlockApi({
434
434
  const nonFinalizedBlocks = chain.forkChoice.getBlockSummariesByParentRoot(parentRoot);
435
435
  await Promise.all(
436
436
  nonFinalizedBlocks.map(async (summary) => {
437
- const block = await db.block.get(fromHex(summary.blockRoot));
438
- if (block) {
439
- const canonical = chain.forkChoice.getCanonicalBlockAtSlot(block.message.slot);
437
+ const blockResult = await chain.getBlockByRoot(summary.blockRoot);
438
+ if (blockResult) {
439
+ const canonical = chain.forkChoice.getCanonicalBlockAtSlot(blockResult.block.message.slot);
440
440
  if (canonical) {
441
- result.push(toBeaconHeaderResponse(config, block, canonical.blockRoot === summary.blockRoot));
441
+ result.push(
442
+ toBeaconHeaderResponse(config, blockResult.block, canonical.blockRoot === summary.blockRoot)
443
+ );
442
444
  if (isOptimisticBlock(canonical)) {
443
445
  executionOptimistic = true;
444
446
  }
@@ -492,9 +494,9 @@ export function getBeaconBlockApi({
492
494
  finalized = false;
493
495
 
494
496
  if (summary.blockRoot !== toRootHex(canonicalRoot)) {
495
- const block = await db.block.get(fromHex(summary.blockRoot));
496
- if (block) {
497
- result.push(toBeaconHeaderResponse(config, block));
497
+ const blockResult = await chain.getBlockByRoot(summary.blockRoot);
498
+ if (blockResult) {
499
+ result.push(toBeaconHeaderResponse(config, blockResult.block));
498
500
  }
499
501
  }
500
502
  })
@@ -244,6 +244,18 @@ export function getLodestarApi({
244
244
  data: chain.validatorMonitor?.getMonitoredValidatorIndices() ?? [],
245
245
  };
246
246
  },
247
+
248
+ async getCustodyInfo() {
249
+ const {custodyColumns, targetCustodyGroupCount} = chain.custodyConfig;
250
+
251
+ return {
252
+ data: {
253
+ earliestCustodiedSlot: chain.earliestAvailableSlot,
254
+ custodyGroupCount: targetCustodyGroupCount,
255
+ custodyColumns,
256
+ },
257
+ };
258
+ },
247
259
  };
248
260
  }
249
261
 
@@ -255,9 +267,6 @@ function regenRequestToJson(config: ChainForkConfig, regenRequest: RegenRequest)
255
267
  slot: regenRequest.args[1],
256
268
  };
257
269
 
258
- case "getCheckpointState":
259
- return ssz.phase0.Checkpoint.toJson(regenRequest.args[0]);
260
-
261
270
  case "getPreState": {
262
271
  const slot = regenRequest.args[0].slot;
263
272
  return {
@@ -1,7 +1,7 @@
1
1
  import {PubkeyIndexMap} from "@chainsafe/pubkey-index-map";
2
2
  import {routes} from "@lodestar/api";
3
3
  import {ApplicationMethods} from "@lodestar/api/server";
4
- import {ExecutionStatus} from "@lodestar/fork-choice";
4
+ import {ExecutionStatus, ProtoBlock} from "@lodestar/fork-choice";
5
5
  import {
6
6
  ForkName,
7
7
  ForkPostBellatrix,
@@ -413,10 +413,10 @@ export function getValidatorApi(
413
413
  // as of now fee recipient checks can not be performed because builder does not return bid recipient
414
414
  {
415
415
  commonBlockBodyPromise,
416
- parentBlockRoot,
416
+ parentBlock,
417
417
  }: Omit<routes.validator.ExtraProduceBlockOpts, "builderSelection"> & {
418
418
  commonBlockBodyPromise: Promise<CommonBlockBody>;
419
- parentBlockRoot: Root;
419
+ parentBlock: ProtoBlock;
420
420
  }
421
421
  ): Promise<ProduceBlindedBlockRes> {
422
422
  const version = config.getForkName(slot);
@@ -447,7 +447,7 @@ export function getValidatorApi(
447
447
  timer = metrics?.blockProductionTime.startTimer();
448
448
  const {block, executionPayloadValue, consensusBlockValue} = await chain.produceBlindedBlock({
449
449
  slot,
450
- parentBlockRoot,
450
+ parentBlock,
451
451
  randaoReveal,
452
452
  graffiti,
453
453
  commonBlockBodyPromise,
@@ -482,10 +482,10 @@ export function getValidatorApi(
482
482
  feeRecipient,
483
483
  strictFeeRecipientCheck,
484
484
  commonBlockBodyPromise,
485
- parentBlockRoot,
485
+ parentBlock,
486
486
  }: Omit<routes.validator.ExtraProduceBlockOpts, "builderSelection"> & {
487
487
  commonBlockBodyPromise: Promise<CommonBlockBody>;
488
- parentBlockRoot: Root;
488
+ parentBlock: ProtoBlock;
489
489
  }
490
490
  ): Promise<ProduceBlockContentsRes & {shouldOverrideBuilder?: boolean}> {
491
491
  const source = ProducedBlockSource.engine;
@@ -496,7 +496,7 @@ export function getValidatorApi(
496
496
  timer = metrics?.blockProductionTime.startTimer();
497
497
  const {block, executionPayloadValue, consensusBlockValue, shouldOverrideBuilder} = await chain.produceBlock({
498
498
  slot,
499
- parentBlockRoot,
499
+ parentBlock,
500
500
  randaoReveal,
501
501
  graffiti,
502
502
  feeRecipient,
@@ -569,7 +569,8 @@ export function getValidatorApi(
569
569
  notWhileSyncing();
570
570
  await waitForSlot(slot); // Must never request for a future slot > currentSlot
571
571
 
572
- const {blockRoot: parentBlockRootHex, slot: parentSlot} = chain.getProposerHead(slot);
572
+ const parentBlock = chain.getProposerHead(slot);
573
+ const {blockRoot: parentBlockRootHex, slot: parentSlot} = parentBlock;
573
574
  const parentBlockRoot = fromHex(parentBlockRootHex);
574
575
  notOnOutOfRangeData(parentBlockRoot);
575
576
  metrics?.blockProductionSlotDelta.set(slot - parentSlot);
@@ -638,7 +639,7 @@ export function getValidatorApi(
638
639
  // can't do fee recipient checks as builder bid doesn't return feeRecipient as of now
639
640
  strictFeeRecipientCheck: false,
640
641
  commonBlockBodyPromise,
641
- parentBlockRoot,
642
+ parentBlock,
642
643
  })
643
644
  : Promise.reject(new Error("Builder disabled"));
644
645
 
@@ -647,7 +648,7 @@ export function getValidatorApi(
647
648
  feeRecipient,
648
649
  strictFeeRecipientCheck,
649
650
  commonBlockBodyPromise,
650
- parentBlockRoot,
651
+ parentBlock,
651
652
  }).then((engineBlock) => {
652
653
  // Once the engine returns a block, in the event of either:
653
654
  // - suspected builder censorship
@@ -689,7 +690,7 @@ export function getValidatorApi(
689
690
  chain
690
691
  .produceCommonBlockBody({
691
692
  slot,
692
- parentBlockRoot,
693
+ parentBlock,
693
694
  randaoReveal,
694
695
  graffiti: graffitiBytes,
695
696
  })
@@ -8,12 +8,12 @@ import {ChainEventEmitter} from "./emitter.js";
8
8
  /**
9
9
  * Minimum time to wait before attempting reconstruction
10
10
  */
11
- const RECONSTRUCTION_DELAY_MIN_MS = 800;
11
+ const RECONSTRUCTION_DELAY_MIN_BPS = 667;
12
12
 
13
13
  /**
14
14
  * Maximum time to wait before attempting reconstruction
15
15
  */
16
- const RECONSTRUCTION_DELAY_MAX_MS = 1200;
16
+ const RECONSTRUCTION_DELAY_MAX_BPS = 1000;
17
17
 
18
18
  export type ColumnReconstructionTrackerInit = {
19
19
  logger: Logger;
@@ -41,11 +41,16 @@ export class ColumnReconstructionTracker {
41
41
  /** Track if a reconstruction attempt is in-flight */
42
42
  running = false;
43
43
 
44
+ private readonly minDelayMs: number;
45
+ private readonly maxDelayMs: number;
46
+
44
47
  constructor(init: ColumnReconstructionTrackerInit) {
45
48
  this.logger = init.logger;
46
49
  this.emitter = init.emitter;
47
50
  this.metrics = init.metrics;
48
51
  this.config = init.config;
52
+ this.minDelayMs = this.config.getSlotComponentDurationMs(RECONSTRUCTION_DELAY_MIN_BPS);
53
+ this.maxDelayMs = this.config.getSlotComponentDurationMs(RECONSTRUCTION_DELAY_MAX_BPS);
49
54
  }
50
55
 
51
56
  triggerColumnReconstruction(blockInput: BlockInputColumns): void {
@@ -61,8 +66,7 @@ export class ColumnReconstructionTracker {
61
66
  // just that it has been triggered for this block root.
62
67
  this.running = true;
63
68
  this.lastBlockRootHex = blockInput.blockRootHex;
64
- const delay =
65
- RECONSTRUCTION_DELAY_MIN_MS + Math.random() * (RECONSTRUCTION_DELAY_MAX_MS - RECONSTRUCTION_DELAY_MIN_MS);
69
+ const delay = this.minDelayMs + Math.random() * (this.maxDelayMs - this.minDelayMs);
66
70
  sleep(delay)
67
71
  .then(() => {
68
72
  const logCtx = {slot: blockInput.slot, root: blockInput.blockRootHex};
@@ -145,7 +145,6 @@ export async function verifyBlocksInEpoch(
145
145
  opts.skipVerifyBlockSignatures !== true
146
146
  ? verifyBlocksSignatures(
147
147
  this.config,
148
- this.index2pubkey,
149
148
  this.bls,
150
149
  this.logger,
151
150
  this.metrics,
@@ -1,5 +1,5 @@
1
1
  import {BeaconConfig} from "@lodestar/config";
2
- import {CachedBeaconStateAllForks, Index2PubkeyCache, getBlockSignatureSets} from "@lodestar/state-transition";
2
+ import {CachedBeaconStateAllForks, getBlockSignatureSets} from "@lodestar/state-transition";
3
3
  import {IndexedAttestation, SignedBeaconBlock} from "@lodestar/types";
4
4
  import {Logger} from "@lodestar/utils";
5
5
  import {Metrics} from "../../metrics/metrics.js";
@@ -17,7 +17,6 @@ import {ImportBlockOpts} from "./types.js";
17
17
  */
18
18
  export async function verifyBlocksSignatures(
19
19
  config: BeaconConfig,
20
- index2pubkey: Index2PubkeyCache,
21
20
  bls: IBlsVerifier,
22
21
  logger: Logger,
23
22
  metrics: Metrics | null,
@@ -42,16 +41,9 @@ export async function verifyBlocksSignatures(
42
41
  : //
43
42
  // Verify signatures per block to track which block is invalid
44
43
  bls.verifySignatureSets(
45
- getBlockSignatureSets(
46
- config,
47
- index2pubkey,
48
- currentSyncCommitteeIndexed,
49
- block,
50
- indexedAttestationsByBlock[i],
51
- {
52
- skipProposerSignature: opts.validProposerSignature,
53
- }
54
- )
44
+ getBlockSignatureSets(config, currentSyncCommitteeIndexed, block, indexedAttestationsByBlock[i], {
45
+ skipProposerSignature: opts.validProposerSignature,
46
+ })
55
47
  );
56
48
 
57
49
  // getBlockSignatureSets() takes 45ms in benchmarks for 2022Q2 mainnet blocks (100 sigs). When syncing a 32 blocks
@@ -7,7 +7,7 @@ import {Worker, spawn} from "@chainsafe/threads";
7
7
  self = undefined;
8
8
 
9
9
  import {PublicKey} from "@chainsafe/blst";
10
- import {ISignatureSet} from "@lodestar/state-transition";
10
+ import {ISignatureSet, Index2PubkeyCache} from "@lodestar/state-transition";
11
11
  import {Logger} from "@lodestar/utils";
12
12
  import {Metrics} from "../../../metrics/index.js";
13
13
  import {LinkedList} from "../../../util/array.js";
@@ -34,6 +34,7 @@ const workerDir = process.env.NODE_ENV === "test" ? "../../../../lib/chain/bls/m
34
34
  export type BlsMultiThreadWorkerPoolModules = {
35
35
  logger: Logger;
36
36
  metrics: Metrics | null;
37
+ index2pubkey: Index2PubkeyCache;
37
38
  };
38
39
 
39
40
  export type BlsMultiThreadWorkerPoolOptions = {
@@ -113,6 +114,7 @@ type WorkerDescriptor = {
113
114
  export class BlsMultiThreadWorkerPool implements IBlsVerifier {
114
115
  private readonly logger: Logger;
115
116
  private readonly metrics: Metrics | null;
117
+ private readonly index2pubkey: Index2PubkeyCache;
116
118
 
117
119
  private readonly workers: WorkerDescriptor[];
118
120
  private readonly jobs = new LinkedList<JobQueueItem>();
@@ -128,9 +130,10 @@ export class BlsMultiThreadWorkerPool implements IBlsVerifier {
128
130
  private workersBusy = 0;
129
131
 
130
132
  constructor(options: BlsMultiThreadWorkerPoolOptions, modules: BlsMultiThreadWorkerPoolModules) {
131
- const {logger, metrics} = modules;
133
+ const {logger, metrics, index2pubkey} = modules;
132
134
  this.logger = logger;
133
135
  this.metrics = metrics;
136
+ this.index2pubkey = index2pubkey;
134
137
  this.blsVerifyAllMultiThread = options.blsVerifyAllMultiThread ?? false;
135
138
 
136
139
  // Use compressed for herumi for now.
@@ -170,7 +173,7 @@ export class BlsMultiThreadWorkerPool implements IBlsVerifier {
170
173
  try {
171
174
  return verifySignatureSetsMaybeBatch(
172
175
  sets.map((set) => ({
173
- publicKey: getAggregatedPubkey(set),
176
+ publicKey: getAggregatedPubkey(set, this.index2pubkey),
174
177
  message: set.signingRoot.valueOf(),
175
178
  signature: set.signature,
176
179
  }))
@@ -395,7 +398,7 @@ export class BlsMultiThreadWorkerPool implements IBlsVerifier {
395
398
  try {
396
399
  // Note: This can throw, must be handled per-job.
397
400
  // Pubkey and signature aggregation is defered here
398
- workReq = await jobItemWorkReq(job, this.metrics);
401
+ workReq = await jobItemWorkReq(job, this.index2pubkey, this.metrics);
399
402
  } catch (e) {
400
403
  this.metrics?.blsThreadPool.errorAggregateSignatureSetsCount.inc({type: job.type});
401
404
 
@@ -1,5 +1,5 @@
1
1
  import {PublicKey, asyncAggregateWithRandomness} from "@chainsafe/blst";
2
- import {ISignatureSet, SignatureSetType} from "@lodestar/state-transition";
2
+ import {ISignatureSet, Index2PubkeyCache, SignatureSetType} from "@lodestar/state-transition";
3
3
  import {Metrics} from "../../../metrics/metrics.js";
4
4
  import {LinkedList} from "../../../util/array.js";
5
5
  import {VerifySignatureOpts} from "../interface.js";
@@ -48,14 +48,18 @@ export function jobItemSigSets(job: JobQueueItem): number {
48
48
  * Prepare BlsWorkReq from JobQueueItem
49
49
  * WARNING: May throw with untrusted user input
50
50
  */
51
- export async function jobItemWorkReq(job: JobQueueItem, metrics: Metrics | null): Promise<BlsWorkReq> {
51
+ export async function jobItemWorkReq(
52
+ job: JobQueueItem,
53
+ index2pubkey: Index2PubkeyCache,
54
+ metrics: Metrics | null
55
+ ): Promise<BlsWorkReq> {
52
56
  switch (job.type) {
53
57
  case JobQueueItemType.default:
54
58
  return {
55
59
  opts: job.opts,
56
60
  sets: job.sets.map((set) => ({
57
61
  // this can throw, handled in the consumer code
58
- publicKey: getAggregatedPubkey(set, metrics).toBytes(),
62
+ publicKey: getAggregatedPubkey(set, index2pubkey, metrics).toBytes(),
59
63
  signature: set.signature,
60
64
  message: set.signingRoot,
61
65
  })),
@@ -1,5 +1,5 @@
1
1
  import {PublicKey, Signature, aggregatePublicKeys, aggregateSignatures, verify} from "@chainsafe/blst";
2
- import {ISignatureSet} from "@lodestar/state-transition";
2
+ import {ISignatureSet, Index2PubkeyCache} from "@lodestar/state-transition";
3
3
  import {Metrics} from "../../metrics/index.js";
4
4
  import {IBlsVerifier} from "./interface.js";
5
5
  import {verifySignatureSetsMaybeBatch} from "./maybeBatch.js";
@@ -7,16 +7,18 @@ import {getAggregatedPubkey, getAggregatedPubkeysCount} from "./utils.js";
7
7
 
8
8
  export class BlsSingleThreadVerifier implements IBlsVerifier {
9
9
  private readonly metrics: Metrics | null;
10
+ private readonly index2pubkey: Index2PubkeyCache;
10
11
 
11
- constructor({metrics = null}: {metrics: Metrics | null}) {
12
+ constructor({metrics = null, index2pubkey}: {metrics: Metrics | null; index2pubkey: Index2PubkeyCache}) {
12
13
  this.metrics = metrics;
14
+ this.index2pubkey = index2pubkey;
13
15
  }
14
16
 
15
17
  async verifySignatureSets(sets: ISignatureSet[]): Promise<boolean> {
16
18
  this.metrics?.bls.aggregatedPubkeys.inc(getAggregatedPubkeysCount(sets));
17
19
 
18
20
  const setsAggregated = sets.map((set) => ({
19
- publicKey: getAggregatedPubkey(set),
21
+ publicKey: getAggregatedPubkey(set, this.index2pubkey, this.metrics),
20
22
  message: set.signingRoot,
21
23
  signature: set.signature,
22
24
  }));
@@ -1,17 +1,25 @@
1
1
  import {PublicKey, aggregatePublicKeys} from "@chainsafe/blst";
2
- import {ISignatureSet, SignatureSetType} from "@lodestar/state-transition";
2
+ import {ISignatureSet, Index2PubkeyCache, SignatureSetType} from "@lodestar/state-transition";
3
3
  import {Metrics} from "../../metrics/metrics.js";
4
4
 
5
- export function getAggregatedPubkey(signatureSet: ISignatureSet, metrics: Metrics | null = null): PublicKey {
5
+ export function getAggregatedPubkey(
6
+ signatureSet: ISignatureSet,
7
+ index2pubkey: Index2PubkeyCache,
8
+ metrics: Metrics | null = null
9
+ ): PublicKey {
6
10
  switch (signatureSet.type) {
7
11
  case SignatureSetType.single:
8
12
  return signatureSet.pubkey;
9
13
 
14
+ case SignatureSetType.indexed:
15
+ return index2pubkey[signatureSet.index];
16
+
10
17
  case SignatureSetType.aggregate: {
11
18
  const timer = metrics?.blsThreadPool.pubkeysAggregationMainThreadDuration.startTimer();
12
- const pubkeys = aggregatePublicKeys(signatureSet.pubkeys);
19
+ const pubkeys = signatureSet.indices.map((i) => index2pubkey[i]);
20
+ const aggregated = aggregatePublicKeys(pubkeys);
13
21
  timer?.();
14
- return pubkeys;
22
+ return aggregated;
15
23
  }
16
24
 
17
25
  default:
@@ -20,11 +28,11 @@ export function getAggregatedPubkey(signatureSet: ISignatureSet, metrics: Metric
20
28
  }
21
29
 
22
30
  export function getAggregatedPubkeysCount(signatureSets: ISignatureSet[]): number {
23
- let pubkeysConut = 0;
31
+ let pubkeysCount = 0;
24
32
  for (const set of signatureSets) {
25
33
  if (set.type === SignatureSetType.aggregate) {
26
- pubkeysConut += set.pubkeys.length;
34
+ pubkeysCount += set.indices.length;
27
35
  }
28
36
  }
29
- return pubkeysConut;
37
+ return pubkeysCount;
30
38
  }