@optimystic/db-p2p 0.24.1 → 0.25.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.
- package/{readme.md → README.md} +688 -668
- package/dist/src/cluster/block-transfer-service.d.ts +133 -10
- package/dist/src/cluster/block-transfer-service.d.ts.map +1 -1
- package/dist/src/cluster/block-transfer-service.js +155 -9
- package/dist/src/cluster/block-transfer-service.js.map +1 -1
- package/dist/src/cluster/block-transfer.d.ts +67 -7
- package/dist/src/cluster/block-transfer.d.ts.map +1 -1
- package/dist/src/cluster/block-transfer.js +127 -24
- package/dist/src/cluster/block-transfer.js.map +1 -1
- package/dist/src/cluster/certified-claims.d.ts +170 -0
- package/dist/src/cluster/certified-claims.d.ts.map +1 -0
- package/dist/src/cluster/certified-claims.js +200 -0
- package/dist/src/cluster/certified-claims.js.map +1 -0
- package/dist/src/cluster/client-signature-verifier.d.ts +23 -0
- package/dist/src/cluster/client-signature-verifier.d.ts.map +1 -0
- package/dist/src/cluster/client-signature-verifier.js +33 -0
- package/dist/src/cluster/client-signature-verifier.js.map +1 -0
- package/dist/src/cluster/cluster-policy.d.ts +9 -3
- package/dist/src/cluster/cluster-policy.d.ts.map +1 -1
- package/dist/src/cluster/cluster-policy.js +111 -27
- package/dist/src/cluster/cluster-policy.js.map +1 -1
- package/dist/src/cluster/cluster-repo.d.ts +140 -11
- package/dist/src/cluster/cluster-repo.d.ts.map +1 -1
- package/dist/src/cluster/cluster-repo.js +485 -29
- package/dist/src/cluster/cluster-repo.js.map +1 -1
- package/dist/src/cluster/commit-proof.d.ts +134 -0
- package/dist/src/cluster/commit-proof.d.ts.map +1 -0
- package/dist/src/cluster/commit-proof.js +263 -0
- package/dist/src/cluster/commit-proof.js.map +1 -0
- package/dist/src/cluster/quorum-restore.d.ts +95 -8
- package/dist/src/cluster/quorum-restore.d.ts.map +1 -1
- package/dist/src/cluster/quorum-restore.js +113 -14
- package/dist/src/cluster/quorum-restore.js.map +1 -1
- package/dist/src/cluster/rebalance-monitor.d.ts +84 -0
- package/dist/src/cluster/rebalance-monitor.d.ts.map +1 -1
- package/dist/src/cluster/rebalance-monitor.js +207 -5
- package/dist/src/cluster/rebalance-monitor.js.map +1 -1
- package/dist/src/cluster/reconcile-block.d.ts +27 -7
- package/dist/src/cluster/reconcile-block.d.ts.map +1 -1
- package/dist/src/cluster/reconcile-block.js +179 -38
- package/dist/src/cluster/reconcile-block.js.map +1 -1
- package/dist/src/cluster/service.d.ts +21 -4
- package/dist/src/cluster/service.d.ts.map +1 -1
- package/dist/src/cluster/service.js +28 -17
- package/dist/src/cluster/service.js.map +1 -1
- package/dist/src/cluster/spread-on-churn.d.ts +8 -2
- package/dist/src/cluster/spread-on-churn.d.ts.map +1 -1
- package/dist/src/cluster/spread-on-churn.js +7 -7
- package/dist/src/cluster/spread-on-churn.js.map +1 -1
- package/dist/src/cohort-topic/host.d.ts.map +1 -1
- package/dist/src/cohort-topic/host.js +8 -7
- package/dist/src/cohort-topic/host.js.map +1 -1
- package/dist/src/cohort-topic/stream-util.d.ts +7 -6
- package/dist/src/cohort-topic/stream-util.d.ts.map +1 -1
- package/dist/src/cohort-topic/stream-util.js +14 -41
- package/dist/src/cohort-topic/stream-util.js.map +1 -1
- package/dist/src/dispute/cascade.d.ts +7 -8
- package/dist/src/dispute/cascade.d.ts.map +1 -1
- package/dist/src/dispute/cascade.js +24 -7
- package/dist/src/dispute/cascade.js.map +1 -1
- package/dist/src/dispute/dispute-service.d.ts +5 -0
- package/dist/src/dispute/dispute-service.d.ts.map +1 -1
- package/dist/src/dispute/dispute-service.js +13 -3
- package/dist/src/dispute/dispute-service.js.map +1 -1
- package/dist/src/dispute/invalidation.d.ts +33 -15
- package/dist/src/dispute/invalidation.d.ts.map +1 -1
- package/dist/src/dispute/invalidation.js +127 -34
- package/dist/src/dispute/invalidation.js.map +1 -1
- package/dist/src/dispute/service.d.ts.map +1 -1
- package/dist/src/dispute/service.js +2 -1
- package/dist/src/dispute/service.js.map +1 -1
- package/dist/src/index.d.ts +7 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/libp2p-key-network.d.ts +78 -6
- package/dist/src/libp2p-key-network.d.ts.map +1 -1
- package/dist/src/libp2p-key-network.js +136 -57
- package/dist/src/libp2p-key-network.js.map +1 -1
- package/dist/src/libp2p-node-base.d.ts +38 -7
- package/dist/src/libp2p-node-base.d.ts.map +1 -1
- package/dist/src/libp2p-node-base.js +150 -62
- package/dist/src/libp2p-node-base.js.map +1 -1
- package/dist/src/logger.d.ts +2 -2
- package/dist/src/logger.js +2 -2
- package/dist/src/network/open-protocol-stream.d.ts +56 -0
- package/dist/src/network/open-protocol-stream.d.ts.map +1 -0
- package/dist/src/network/open-protocol-stream.js +60 -0
- package/dist/src/network/open-protocol-stream.js.map +1 -0
- package/dist/src/network/register-protocol-handler.d.ts +66 -0
- package/dist/src/network/register-protocol-handler.d.ts.map +1 -0
- package/dist/src/network/register-protocol-handler.js +51 -0
- package/dist/src/network/register-protocol-handler.js.map +1 -0
- package/dist/src/peer-address-book.d.ts +128 -1
- package/dist/src/peer-address-book.d.ts.map +1 -1
- package/dist/src/peer-address-book.js +198 -15
- package/dist/src/peer-address-book.js.map +1 -1
- package/dist/src/pend-validation.d.ts +65 -0
- package/dist/src/pend-validation.d.ts.map +1 -0
- package/dist/src/pend-validation.js +69 -0
- package/dist/src/pend-validation.js.map +1 -0
- package/dist/src/reactivity/notify-transport.d.ts.map +1 -1
- package/dist/src/reactivity/notify-transport.js +2 -1
- package/dist/src/reactivity/notify-transport.js.map +1 -1
- package/dist/src/reactivity/push-state-gossip.d.ts.map +1 -1
- package/dist/src/reactivity/push-state-gossip.js +2 -1
- package/dist/src/reactivity/push-state-gossip.js.map +1 -1
- package/dist/src/repo/cluster-coordinator.d.ts +32 -6
- package/dist/src/repo/cluster-coordinator.d.ts.map +1 -1
- package/dist/src/repo/cluster-coordinator.js +44 -10
- package/dist/src/repo/cluster-coordinator.js.map +1 -1
- package/dist/src/repo/coordinator-repo.d.ts +181 -25
- package/dist/src/repo/coordinator-repo.d.ts.map +1 -1
- package/dist/src/repo/coordinator-repo.js +650 -62
- package/dist/src/repo/coordinator-repo.js.map +1 -1
- package/dist/src/repo/served-repo-proxy.d.ts +30 -0
- package/dist/src/repo/served-repo-proxy.d.ts.map +1 -0
- package/dist/src/repo/served-repo-proxy.js +50 -0
- package/dist/src/repo/served-repo-proxy.js.map +1 -0
- package/dist/src/repo/service.d.ts +22 -1
- package/dist/src/repo/service.d.ts.map +1 -1
- package/dist/src/repo/service.js +25 -13
- package/dist/src/repo/service.js.map +1 -1
- package/dist/src/reputation/types.d.ts +3 -1
- package/dist/src/reputation/types.d.ts.map +1 -1
- package/dist/src/reputation/types.js +3 -1
- package/dist/src/reputation/types.js.map +1 -1
- package/dist/src/rn.d.ts +24 -2
- package/dist/src/rn.d.ts.map +1 -1
- package/dist/src/rn.js +33 -4
- package/dist/src/rn.js.map +1 -1
- package/dist/src/routing/libp2p-known-peers.d.ts.map +1 -1
- package/dist/src/routing/libp2p-known-peers.js +5 -0
- package/dist/src/routing/libp2p-known-peers.js.map +1 -1
- package/dist/src/storage/block-archive.d.ts +153 -0
- package/dist/src/storage/block-archive.d.ts.map +1 -0
- package/dist/src/storage/block-archive.js +194 -0
- package/dist/src/storage/block-archive.js.map +1 -0
- package/dist/src/storage/block-latch.d.ts +92 -0
- package/dist/src/storage/block-latch.d.ts.map +1 -0
- package/dist/src/storage/block-latch.js +132 -0
- package/dist/src/storage/block-latch.js.map +1 -0
- package/dist/src/storage/block-storage.d.ts +169 -12
- package/dist/src/storage/block-storage.d.ts.map +1 -1
- package/dist/src/storage/block-storage.js +415 -152
- package/dist/src/storage/block-storage.js.map +1 -1
- package/dist/src/storage/cached-raw-storage.d.ts +5 -1
- package/dist/src/storage/cached-raw-storage.d.ts.map +1 -1
- package/dist/src/storage/cached-raw-storage.js +16 -1
- package/dist/src/storage/cached-raw-storage.js.map +1 -1
- package/dist/src/storage/cached-store-driver.d.ts +14 -4
- package/dist/src/storage/cached-store-driver.d.ts.map +1 -1
- package/dist/src/storage/cached-store-driver.js +39 -5
- package/dist/src/storage/cached-store-driver.js.map +1 -1
- package/dist/src/storage/i-block-storage.d.ts +70 -19
- package/dist/src/storage/i-block-storage.d.ts.map +1 -1
- package/dist/src/storage/i-block-storage.js +21 -1
- package/dist/src/storage/i-block-storage.js.map +1 -1
- package/dist/src/storage/i-raw-storage.d.ts +38 -0
- package/dist/src/storage/i-raw-storage.d.ts.map +1 -1
- package/dist/src/storage/kv-raw-storage.d.ts +14 -8
- package/dist/src/storage/kv-raw-storage.d.ts.map +1 -1
- package/dist/src/storage/kv-raw-storage.js +29 -9
- package/dist/src/storage/kv-raw-storage.js.map +1 -1
- package/dist/src/storage/memory-store-driver.d.ts +4 -1
- package/dist/src/storage/memory-store-driver.d.ts.map +1 -1
- package/dist/src/storage/memory-store-driver.js +22 -2
- package/dist/src/storage/memory-store-driver.js.map +1 -1
- package/dist/src/storage/raw-store-codec.js +2 -2
- package/dist/src/storage/raw-store-driver.d.ts +44 -3
- package/dist/src/storage/raw-store-driver.d.ts.map +1 -1
- package/dist/src/storage/shared-cache-pool.d.ts +60 -3
- package/dist/src/storage/shared-cache-pool.d.ts.map +1 -1
- package/dist/src/storage/shared-cache-pool.js +68 -4
- package/dist/src/storage/shared-cache-pool.js.map +1 -1
- package/dist/src/storage/storage-repo.d.ts +204 -26
- package/dist/src/storage/storage-repo.d.ts.map +1 -1
- package/dist/src/storage/storage-repo.js +422 -119
- package/dist/src/storage/storage-repo.js.map +1 -1
- package/dist/src/storage/store-identity.d.ts +21 -0
- package/dist/src/storage/store-identity.d.ts.map +1 -0
- package/dist/src/storage/store-identity.js +33 -0
- package/dist/src/storage/store-identity.js.map +1 -0
- package/dist/src/storage/struct.d.ts +15 -0
- package/dist/src/storage/struct.d.ts.map +1 -1
- package/dist/src/storage/with-read-cache.d.ts +92 -0
- package/dist/src/storage/with-read-cache.d.ts.map +1 -0
- package/dist/src/storage/with-read-cache.js +132 -0
- package/dist/src/storage/with-read-cache.js.map +1 -0
- package/dist/src/sync/service.d.ts +13 -3
- package/dist/src/sync/service.d.ts.map +1 -1
- package/dist/src/sync/service.js +7 -30
- package/dist/src/sync/service.js.map +1 -1
- package/dist/src/testing/mesh-harness.d.ts +75 -2
- package/dist/src/testing/mesh-harness.d.ts.map +1 -1
- package/dist/src/testing/mesh-harness.js +193 -81
- package/dist/src/testing/mesh-harness.js.map +1 -1
- package/dist/src/testing/raw-storage-conformance.d.ts +8 -0
- package/dist/src/testing/raw-storage-conformance.d.ts.map +1 -1
- package/dist/src/testing/raw-storage-conformance.js +97 -2
- package/dist/src/testing/raw-storage-conformance.js.map +1 -1
- package/package.json +5 -6
- package/src/cluster/block-transfer-service.ts +528 -312
- package/src/cluster/block-transfer.ts +547 -424
- package/src/cluster/certified-claims.ts +319 -0
- package/src/cluster/client-signature-verifier.ts +34 -0
- package/src/cluster/cluster-policy.ts +294 -203
- package/src/cluster/cluster-repo.ts +2501 -2034
- package/src/cluster/commit-proof.ts +344 -0
- package/src/cluster/quorum-restore.ts +348 -223
- package/src/cluster/rebalance-monitor.ts +539 -254
- package/src/cluster/reconcile-block.ts +404 -203
- package/src/cluster/service.ts +308 -293
- package/src/cluster/spread-on-churn.ts +352 -346
- package/src/cohort-topic/host.ts +8 -7
- package/src/cohort-topic/stream-util.ts +14 -43
- package/src/dispute/cascade.ts +31 -15
- package/src/dispute/dispute-service.ts +706 -696
- package/src/dispute/invalidation.ts +162 -52
- package/src/dispute/service.ts +126 -125
- package/src/index.ts +7 -0
- package/src/libp2p-key-network.ts +142 -58
- package/src/libp2p-node-base.ts +1793 -1675
- package/src/logger.ts +27 -27
- package/src/network/open-protocol-stream.ts +87 -0
- package/src/network/register-protocol-handler.ts +85 -0
- package/src/peer-address-book.ts +360 -149
- package/src/pend-validation.ts +89 -0
- package/src/reactivity/notify-transport.ts +145 -144
- package/src/reactivity/push-state-gossip.ts +292 -291
- package/src/repo/cluster-coordinator.ts +65 -11
- package/src/repo/coordinator-repo.ts +729 -71
- package/src/repo/served-repo-proxy.ts +55 -0
- package/src/repo/service.ts +332 -313
- package/src/reputation/types.ts +3 -1
- package/src/rn.ts +34 -4
- package/src/routing/libp2p-known-peers.ts +31 -26
- package/src/storage/block-archive.ts +242 -0
- package/src/storage/block-latch.ts +144 -0
- package/src/storage/block-storage.ts +787 -498
- package/src/storage/cached-raw-storage.ts +21 -1
- package/src/storage/cached-store-driver.ts +898 -859
- package/src/storage/i-block-storage.ts +172 -116
- package/src/storage/i-raw-storage.ts +40 -0
- package/src/storage/kv-raw-storage.ts +34 -9
- package/src/storage/memory-store-driver.ts +26 -2
- package/src/storage/raw-store-codec.ts +42 -42
- package/src/storage/raw-store-driver.ts +45 -3
- package/src/storage/shared-cache-pool.ts +516 -452
- package/src/storage/storage-repo.ts +1421 -1014
- package/src/storage/store-identity.ts +41 -0
- package/src/storage/struct.ts +52 -34
- package/src/storage/with-read-cache.ts +182 -0
- package/src/sync/service.ts +178 -198
- package/src/testing/cohort-topic-mesh-harness.ts +673 -673
- package/src/testing/mesh-harness.ts +524 -344
- package/src/testing/raw-storage-conformance.ts +114 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libp2p-node-base.js","sourceRoot":"","sources":["../../src/libp2p-node-base.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"libp2p-node-base.js","sourceRoot":"","sources":["../../src/libp2p-node-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAe,MAAM,QAAQ,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAA+B,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAA0B,MAAM,8BAA8B,CAAC;AAErF,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAA2B,MAAM,4BAA4B,CAAC;AAC5G,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,aAAa,EAA+F,MAAM,2BAA2B,CAAC;AACvJ,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAA6B,MAAM,6BAA6B,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,8BAA8B,EAAwB,MAAM,0BAA0B,CAAC;AACvH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAkD,MAAM,yBAAyB,CAAC;AAC/G,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAmB,MAAM,wBAAwB,CAAC;AAEtG,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,qBAAqB,EAA8B,MAAM,sCAAsC,CAAC;AAEzG,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAG3E,OAAO,EAAE,qBAAqB,EAA+B,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,kCAAkC,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACvH,OAAO,EAAE,+BAA+B,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAC1G,OAAO,EACN,gCAAgC,EAChC,yBAAyB,EACzB,sBAAsB,EACtB,2BAA2B,GAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AACrI,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,+BAA+B,EAAE,8BAA8B,EAAmC,MAAM,mCAAmC,CAAC;AACrJ,OAAO,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAC3F,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACjG,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EACN,0BAA0B,EAC1B,4BAA4B,EAC5B,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,IAAI,EACJ,aAAa,EACb,aAAa,GAMb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAGxE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAiCtE,kGAAkG;AAClG,MAAM,mBAAmB,GAAG,YAAY,CAAC,wBAAwB,CAAC,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAgO9C;;;;;;;;;;GAUG;AACH,SAAS,cAAc,CAAC,QAAwC,EAAE,WAAmB;IACpF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAO,EAAE,OAAO,EAAE,IAAI,gBAAgB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC9D,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvE,gGAAgG;IAChG,8FAA8F;IAC9F,6FAA6F;IAC7F,4FAA4F;IAC5F,6FAA6F;IAC7F,8FAA8F;IAC9F,mBAAmB;IACnB,OAAO,aAAa,CAAC,OAAO,EAAE,QAAQ,WAAW,EAAE,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,iBAAiB,CAAC,IAA6B;IACvD,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,MAAM,SAAS,GAAG,IAAiD,CAAC;IACpE,OAAO,OAAO,SAAS,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3E,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,yBAAyB,CAAC,aAAsC,EAAE,YAAoB;IAC9F,MAAM,EAAE,GAAG,aAAa,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAC9D,OAAO,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,OAAoB,EACpB,QAGC;IAED,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAE5F,2EAA2E;IAC3E,IAAI,eAAe,GAAoB,KAAK,EAAE,QAAQ,EAAE,IAAK,EAAE,EAAE;QAChE,OAAO,SAAS,CAAC;IAClB,CAAC,CAAC;IAEF,yDAAyD;IACzD,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAC/C,IAAI,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,eAAe,CAAC,CACtD,CAAC;IAEF,IAAI,WAAiC,CAAC;IACtC,IAAI,eAAkC,CAAC;IACvC,8FAA8F;IAC9F,8FAA8F;IAC9F,gGAAgG;IAChG,8FAA8F;IAC9F,gGAAgG;IAChG,+FAA+F;IAC/F,4DAA4D;IAC5D,IAAI,QAA4B,CAAC;IAEjC,MAAM,YAAY,GAAa;QAC9B,KAAK,CAAC,MAAM,CAAC,MAAM;YAClB,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAClD,CAAC;YACD,OAAO,MAAM,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;KACD,CAAC;IAEF,2FAA2F;IAC3F,+FAA+F;IAC/F,8FAA8F;IAC9F,4EAA4E;IAC5E,MAAM,SAAS,GAAuB,qBAAqB,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;IAEhG,6FAA6F;IAC7F,6FAA6F;IAC7F,+FAA+F;IAC/F,+EAA+E;IAC/E,6FAA6F;IAC7F,wEAAwE;IACxE,MAAM,oBAAoB,GAAmC;QAC5D,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrG,GAAG,CAAC,OAAO,CAAC,+BAA+B,KAAK,SAAS;YACxD,CAAC,CAAC,EAAE,+BAA+B,EAAE,OAAO,CAAC,+BAA+B,EAAE;YAC9E,CAAC,CAAC,EAAE,CAAC;KACN,CAAC;IAEF,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,IAAI,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC;IAE9E,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC;IAChE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC;IAE7D,qGAAqG;IACrG,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,sGAAsG;IACtG,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC;IACrD,oGAAoG;IACpG,kGAAkG;IAClG,gGAAgG;IAChG,oGAAoG;IACpG,MAAM,SAAS,GAAgC,aAAa,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACnG,MAAM,mBAAmB,GAAsC,SAAS;QACvE,mGAAmG;QACnG,mGAAmG;QACnG,oGAAoG;QACpG,gGAAgG;QAChG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAQ,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7G,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAE/B,kGAAkG;IAClG,yEAAyE;IACzE,mGAAmG;IACnG,2FAA2F;IAC3F,2GAA2G;IAC3G,oGAAoG;IACpG,oGAAoG;IACpG,4EAA4E;IAC5E,MAAM,eAAe,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAEtD,MAAM,aAAa,GAAe;QACjC,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,cAAc;QAC1B,iGAAiG;QACjG,gGAAgG;QAChG,iEAAiE;QACjE,SAAS,EAAE;YACV,MAAM,EAAE,WAAW;YACnB,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvF;QACD,iBAAiB,EAAE;YAClB,uFAAuF;YACvF,0FAA0F;YAC1F,0FAA0F;YAC1F,oFAAoF;YACpF,cAAc,EAAE,EAAE;YAClB,yFAAyF;YACzF,kGAAkG;YAClG,qBAAqB,EAAE,MAAM;SAC7B;QACD,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,UAAU;QACV,oBAAoB,EAAE,CAAC,KAAK,EAAE,CAAC;QAC/B,YAAY,EAAE,CAAC,KAAK,EAAE,CAAC;QACvB,8FAA8F;QAC9F,oGAAoG;QACpG,4FAA4F;QAC5F,oGAAoG;QACpG,gGAAgG;QAChG,iGAAiG;QACjG,4GAA4G;QAC5G,QAAQ,EAAE,CAAC;YACV,iFAAiF;YACjF,mFAAmF;YACnF,+EAA+E;YAC/E,+EAA+E;YAC/E,wEAAwE;YACxE,iFAAiF;YACjF,wEAAwE;YACxE,4CAA4C;YAC5C,QAAQ,EAAE,QAAQ,CAAC;gBAClB,cAAc,EAAE,cAAc,OAAO,CAAC,WAAW,EAAE;aACnD,CAAC;YACF,gFAAgF;YAChF,uFAAuF;YACvF,mFAAmF;YACnF,yEAAyE;YACzE,wFAAwF;YACxF,wFAAwF;YACxF,qFAAqF;YACrF,+FAA+F;YAC/F,oEAAoE;YACpE,oFAAoF;YACpF,wFAAwF;YACxF,+EAA+E;YAC/E,0CAA0C;YAC1C,YAAY,EAAE,YAAY,CAAC;gBAC1B,cAAc,EAAE,cAAc,OAAO,CAAC,WAAW,EAAE;aACnD,CAAC;YACF,IAAI,EAAE,IAAI,EAAE;YACZ,sEAAsE;YACtE,2EAA2E;YAC3E,0EAA0E;YAC1E,4EAA4E;YAC5E,uEAAuE;YACvE,KAAK,EAAE,KAAK,EAAE;YACd,OAAO,EAAE,OAAO,EAAE;YAClB,4FAA4F;YAC5F,0FAA0F;YAC1F,mFAAmF;YACnF,4FAA4F;YAC5F,qFAAqF;YACrF,0FAA0F;YAC1F,wFAAwF;YACxF,0FAA0F;YAC1F,0FAA0F;YAC1F,sEAAsE;YAEtE,gFAAgF;YAChF,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAEhF,sEAAsE;YACtE,OAAO,EAAE,CAAC,UAAe,EAAE,EAAE;gBAC5B,MAAM,UAAU,GAAe,YAAY,CAAC,mBAAmB,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAChG,MAAM,cAAc,GAAG,cAAc,CAAC;oBACrC,cAAc,EAAE,eAAe,OAAO,CAAC,WAAW,EAAE;oBACpD,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,CAAC;oBAC7C,GAAG,oBAAoB;iBACvB,CAAC,CAAC;gBACH,OAAO,cAAc,CAAC;oBACrB,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,SAAS,EAAE,UAAU,CAAC,SAAS;oBAC/B,OAAO,EAAE,YAAY;oBACrB,uEAAuE;oBACvE,4DAA4D;oBAC5D,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,uEAAuE;oBACvE,4EAA4E;oBAC5E,+EAA+E;oBAC/E,8EAA8E;oBAC9E,yEAAyE;oBACzE,kBAAkB,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;wBACzC,IAAI,CAAC,QAAQ;4BAAE,OAAO,EAAE,CAAC;wBACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;wBACtD,OAAO,MAAM,uBAAuB,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;oBAC3E,CAAC;oBACD,6EAA6E;oBAC7E,gFAAgF;oBAChF,6EAA6E;oBAC7E,2EAA2E;oBAC3E,oEAAoE;oBACpE,mBAAmB,EAAE,CAAC,MAAW,EAAE,UAAoB,EAAE,EAAE;wBAC1D,IAAI,CAAC,QAAQ;4BAAE,OAAO;wBACtB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;oBAC9D,CAAC;iBACD,CAAC,CAAC;YACJ,CAAC;YAED,IAAI,EAAE,CAAC,UAAe,EAAE,EAAE;gBACzB,MAAM,cAAc,GAAG,WAAW,CAAC;oBAClC,cAAc,EAAE,eAAe,OAAO,CAAC,WAAW,EAAE;oBACpD,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,CAAC;oBAC7C,GAAG,oBAAoB;iBACvB,CAAC,CAAC;gBACH,4EAA4E;gBAC5E,4EAA4E;gBAC5E,2EAA2E;gBAC3E,yEAAyE;gBACzE,6EAA6E;gBAC7E,gFAAgF;gBAChF,uDAAuD;gBACvD,sEAAsE;gBACtE,kFAAkF;gBAClF,OAAO,cAAc,CAAC;oBACrB,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,SAAS,EAAE,UAAU,CAAC,SAAS;oBAC/B,IAAI,EAAE,SAAS;iBACf,CAAC,CAAC;YACJ,CAAC;YAED,IAAI,EAAE,CAAC,UAAe,EAAE,EAAE;gBACzB,MAAM,cAAc,GAAG,WAAW,CAAC;oBAClC,cAAc,EAAE,eAAe,OAAO,CAAC,WAAW,EAAE;oBACpD,GAAG,oBAAoB;iBACvB,CAAC,CAAC;gBACH,OAAO,cAAc,CAAC;oBACrB,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,SAAS,EAAE,UAAU,CAAC,SAAS;oBAC/B,IAAI,EAAE,SAAS;iBACf,CAAC,CAAC;YACJ,CAAC;YAED,yEAAyE;YACzE,0EAA0E;YAC1E,6EAA6E;YAC7E,aAAa,EAAE,CAAC,UAAe,EAAE,EAAE;gBAClC,MAAM,cAAc,GAAG,oBAAoB,CAAC;oBAC3C,cAAc,EAAE,eAAe,OAAO,CAAC,WAAW,EAAE;oBACpD,sFAAsF;oBACtF,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,sBAAsB,KAAK,SAAS;wBAC9D,CAAC,CAAC,EAAE,sBAAsB,EAAE,OAAO,CAAC,aAAa,CAAC,sBAAsB,EAAE;wBAC1E,CAAC,CAAC,EAAE,CAAC;oBACN,GAAG,oBAAoB;iBACvB,CAAC,CAAC;gBACH,OAAO,cAAc,CAAC;oBACrB,SAAS,EAAE,UAAU,CAAC,SAAS;oBAC/B,IAAI,EAAE,WAAW;oBACjB,sFAAsF;oBACtF,uFAAuF;oBACvF,yFAAyF;oBACzF,qCAAqC;oBACrC,sBAAsB,EAAE,eAAe,CAAC,sBAAsB;oBAC9D,wFAAwF;oBACxF,MAAM,EAAE,UAAU,CAAC,MAAM;iBACzB,CAAC,CAAC;YACJ,CAAC;YAED,cAAc,EAAE,CAAC,UAAe,EAAE,EAAE;gBACnC,MAAM,UAAU,GAAG,qBAAqB,CAAC;oBACxC,WAAW,EAAE,eAAe,CAAC,WAAW;oBACxC,eAAe,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;oBAC1D,oBAAoB,EAAE,OAAO,CAAC,aAAa,EAAE,aAAa,IAAI,IAAI;oBAClE,oBAAoB,EAAE,OAAO,CAAC,aAAa,EAAE,aAAa,IAAI,GAAG;iBACjE,CAAC,CAAC;gBACH,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;gBACnC,0FAA0F;gBAC1F,IAAI,CAAC;oBAAE,GAAwB,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAAC,CAAC;gBAC/D,OAAO,GAAG,EAAE,CAAC;oBAAC,SAAS,CAAC,8FAA8F,EAAE,GAAG,CAAC,CAAC;gBAAC,CAAC;gBAC/H,OAAO,GAAG,CAAC;YACZ,CAAC;YACD,IAAI,EAAE,CAAC,UAAe,EAAE,EAAE;gBACzB,MAAM,UAAU,GAAG,WAAW,CAAC;oBAC9B,CAAC,EAAE,EAAE;oBACL,CAAC,EAAE,CAAC;oBACJ,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC7F,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,UAAU,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;iBACxC,CAAC,CAAC;gBACH,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAsB,CAAC;gBACxD,0FAA0F;gBAC1F,IAAI,CAAC;oBAAE,GAAwB,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAAC,CAAC;gBAC/D,OAAO,GAAG,EAAE,CAAC;oBAAC,SAAS,CAAC,oFAAoF,EAAE,GAAG,CAAC,CAAC;gBAAC,CAAC;gBACrH,OAAO,GAAG,CAAC;YACZ,CAAC;YAED,8EAA8E;YAC9E,0FAA0F;YAC1F,wFAAwF;YACxF,uFAAuF;YACvF,6FAA6F;YAC7F,sEAAsE;SACtE,CAAmD;QACpD,gCAAgC;QAChC,aAAa,EAAE;YACd,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACxF;KACD,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,CAAC;IAE/C,4FAA4F;IAC5F,4FAA4F;IAC5F,qDAAqD;IACrD,QAAQ,GAAG,IAAI,CAAC;IAEhB,+FAA+F;IAC/F,+FAA+F;IAC/F,8FAA8F;IAC9F,uFAAuF;IACvF,+FAA+F;IAC/F,6FAA6F;IAC7F,wFAAwF;IACxF,yFAAyF;IACzF,2CAA2C;IAC3C,IAAI,KAAK,EAAE,CAAC;QACX,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE;YACtB,IAAI,CAAC;gBACJ,MAAM,YAAY,EAAE,CAAC;YACtB,CAAC;oBAAS,CAAC;gBACV,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;YACvB,CAAC;QACF,CAAC,CAAC;IACH,CAAC;IAED,wFAAwF;IACxF,0FAA0F;IAC1F,8FAA8F;IAC9F,0FAA0F;IAC1F,MAAM,KAAK,GAAG,IAAI,CAAC,QAAoC,CAAC;IACxD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACrC,gFAAgF;IAChF,8EAA8E;IAC9E,8EAA8E;IAC9E,iEAAiE;IACjE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAE3B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IAEnB,8FAA8F;IAC9F,kGAAkG;IAClG,mGAAmG;IACnG,kGAAkG;IAClG,mEAAmE;IACnE,IAAI,CAAC;QAEJ,qCAAqC;QACrC,MAAM,UAAU,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAE/C,6CAA6C;QAC7C,MAAM,WAAW,GAAgB,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACnG,oFAAoF;QACpF,uFAAuF;QACvF,+EAA+E;QAC/E,oFAAoF;QACpF,4EAA4E;QAC5E,MAAM,cAAc,GAAG,eAAe,OAAO,CAAC,WAAW,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAI,oBAAoB,CAAC,IAAI,EAAE,eAAe,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;QACxJ,MAAM,UAAU,CAAC,sBAAsB,EAAE,CAAC;QAC1C,MAAM,mBAAmB,GAAG,CAAC,MAAW,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;QAEtG,8FAA8F;QAC9F,mGAAmG;QACnG,qGAAqG;QACrG,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAE/C,iDAAiD;QACjD,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAClD,MAAM,OAAO,GAAI,IAAY,CAAC,QAAQ,EAAE,IAA+B,CAAC;QAExE,kFAAkF;QAClF,kFAAkF;QAClF,mFAAmF;QACnF,yEAAyE;QACzE,MAAM,oBAAoB,GAAG,KAAK,EAAE,SAAiB,EAAE,OAAgB,EAAqC,EAAE;YAC7G,IAAI,MAA2C,CAAC;YAChD,IAAI,CAAC;gBACJ,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO,SAAS,CAAC;YAClB,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAE,OAAO,SAAS,CAAC;YACjD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;YACtE,IAAI,CAAC;gBACJ,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAe;oBACjD,UAAU,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;oBACpD,IAAI,OAAO,CAAe,OAAO,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;iBACtG,CAAC,CAAC;gBACH,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YACxD,CAAC;YAAC,MAAM,CAAC;gBACR,0EAA0E;gBAC1E,OAAO,SAAS,CAAC;YAClB,CAAC;QACF,CAAC,CAAC;QAEF,wFAAwF;QACxF,4FAA4F;QAC5F,wFAAwF;QACxF,4EAA4E;QAC5E,qEAAqE;QACrE,+FAA+F;QAC/F,+FAA+F;QAC/F,0EAA0E;QAC1E,kEAAkE;QAClE,MAAM,cAAc,GAA2B,oBAAoB,CAAC;YACnE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAClC,YAAY,EAAE,oBAAoB;YAClC,mFAAmF;YACnF,4FAA4F;YAC5F,mBAAmB,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,CAC9D,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC;YACvE,uBAAuB,EAAE,eAAe,CAAC,uBAAuB;YAChE,sBAAsB,EAAE,eAAe,CAAC,sBAAsB;YAC9D,8BAA8B,EAAE,eAAe,CAAC,8BAA8B;YAC9E,UAAU;YACV,0FAA0F;YAC1F,oFAAoF;YACpF,wFAAwF;YACxF,2FAA2F;YAC3F,oFAAoF;YACpF,uFAAuF;YACvF,kFAAkF;SAClF,CAAC,CAAC;QAEH,iGAAiG;QACjG,uGAAuG;QACvG,mGAAmG;QACnG,wGAAwG;QACxG,qFAAqF;QACrF,MAAM,qBAAqB,GAAkC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC9E,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9E,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC;oBACJ,UAAU,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,UAAU,CAAC;gBAC1D,CAAC;gBAAC,MAAM,CAAC;oBACR,mDAAmD;gBACpD,CAAC;YACF,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC;QAC3C,CAAC,CAAC;QAEF,WAAW,GAAG,aAAa,CAAC;YAC3B,WAAW;YACX,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,cAAc;YAC1B,cAAc;YACd,iBAAiB;YACjB,WAAW,EAAE,OAAO;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU;YACV,eAAe;YACf,UAAU,EAAE,OAAO,CAAC,qBAAqB;YACzC,cAAc;YACd,mBAAmB;YACnB,qBAAqB;YACrB,mGAAmG;YACnG,oGAAoG;YACpG,4FAA4F;YAC5F,oGAAoG;YACpG,+FAA+F;YAC/F,sGAAsG;SACtG,CAAC,CAAC;QAEH,+FAA+F;QAC/F,8FAA8F;QAC9F,iGAAiG;QACjG,8FAA8F;QAC9F,kCAAkC;QAClC,CAAC;YACA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC;oBACH,WAAiE,CAAC,OAAO,EAAE,CAAC;gBAC9E,CAAC;wBAAS,CAAC;oBACV,mFAAmF;oBACnF,oCAAoC;oBACpC,MAAM,YAAY,EAAE,CAAC;gBACtB,CAAC;YACF,CAAC,CAAC;QACH,CAAC;QAED,MAAM,sBAAsB,GAAG,eAAe,CAC7C,UAAU,EACV,mBAAmB,EACnB;YACC,yFAAyF;YACzF,GAAG,eAAe;SAClB,EACD,OAAO,EACP,UAAU,EACV,OAAO,CAAC,qBAAqB,CAC7B,CAAC;QAEF,wFAAwF;QACxF,6FAA6F;QAC7F,uFAAuF;QACvF,0FAA0F;QAC1F,0FAA0F;QAC1F,yFAAyF;QACzF,0DAA0D;QAC1D,EAAE;QACF,0FAA0F;QAC1F,0FAA0F;QAC1F,0FAA0F;QAC1F,kFAAkF;QAClF,sDAAsD;QACtD,MAAM,qBAAqB,GAA0B,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAQ,EAAE,EAAE;YACxF,wEAAwE;YACxE,yEAAyE;YACzE,uEAAuE;YACvE,6EAA6E;YAC7E,wEAAwE;YACxE,+CAA+C;YAC/C,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACJ,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;oBACvE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC;oBAC9C,IAAI,CAAC,MAAM;wBAAE,OAAO,SAAS,CAAC;oBAC9B,gFAAgF;oBAChF,+EAA+E;oBAC/E,wEAAwE;oBACxE,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;oBAChE,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC9C,CAAC;gBAAC,MAAM,CAAC;oBACR,OAAO,SAAS,CAAC;gBAClB,CAAC;YACF,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;YACtE,qFAAqF;YACrF,8EAA8E;YAC9E,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;YAC5E,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC1C,iFAAiF;gBACjF,oFAAoF;gBACpF,6EAA6E;gBAC7E,MAAM,KAAK,GAAG,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACvD,IAAI,KAAK;oBAAE,OAAO,KAAK,CAAC;YACzB,CAAC;YACD,sFAAsF;YACtF,wFAAwF;YACxF,4CAA4C;YAC5C,OAAO,SAAS,CAAC;QAClB,CAAC,CAAC;QAEF,eAAe,GAAG,sBAAsB,CAAC;YACxC,WAAW;YACX,YAAY,EAAE,WAAW;YACzB,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,qBAAqB;YACrB,6FAA6F;YAC7F,8FAA8F;YAC9F,2FAA2F;YAC3F,8FAA8F;YAC9F,uDAAuD;YACvD,sBAAsB,EAAE,cAAc;SACtC,CAAC,CAAC;QAEH,+FAA+F;QAC/F,+FAA+F;QAC/F,qGAAqG;QACrG,uGAAuG;QACvG,2DAA2D;QAC3D,2BAA2B,CAC1B,WAAgE,EAChE,eAAuE,CACvE,CAAC;QAEF,oEAAoE;QACpE,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;YACnC,MAAO,WAAiE,CAAC,mBAAmB,EAAE,CAAC;YAC/F,MAAO,eAAwE,CAAC,mBAAmB,EAAE,CAAC;QACvG,CAAC;QAED,6DAA6D;QAC7D,+FAA+F;QAC/F,8FAA8F;QAC9F,6FAA6F;QAC7F,iGAAiG;QACjG,MAAM,cAAc,GAAI,IAAY,CAAC,QAAQ,EAAE,cAAmD,CAAC;QAEnG,iGAAiG;QACjG,mGAAmG;QACnG,+EAA+E;QAC/E,yBAAyB,CAAC,eAAe,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;QAEvF,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QACtC,wFAAwF;QACxF,4EAA4E;QAC5E,iFAAiF;QACjF,0FAA0F;QAC1F,6FAA6F;QAC7F,8FAA8F;QAC9F,gGAAgG;QAChG,yEAAyE;QACzE,8FAA8F;QAC9F,2DAA2D;QAC3D,IAAI,iBAA2C,CAAC;QAChD,MAAM,oBAAoB,GAAG,GAAS,EAAE;YACvC,IAAI,iBAAiB;gBAAE,OAAO;YAC9B,iBAAiB,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3D,KAAK,MAAM,OAAO,IAAI,CAAC,CAAC,QAAQ;oBAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC;QACF,0FAA0F;QAC1F,sFAAsF;QACtF,6FAA6F;QAC7F,CAAC;YACA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC;oBACJ,iBAAiB,EAAE,EAAE,CAAC;gBACvB,CAAC;wBAAS,CAAC;oBACV,MAAM,YAAY,EAAE,CAAC;gBACtB,CAAC;YACF,CAAC,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,4FAA4F;QAC5F,0FAA0F;QAC1F,2FAA2F;QAC3F,4FAA4F;QAC5F,IAAI,aAA+C,CAAC;QACpD,IAAI,cAAc,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;YAC1E,IAAI,CAAC;gBACJ,aAAa,GAAG,cAAc,CAAC,wBAAwB,CACtD,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,eAAe,CAAC,WAAW,EAC3B,cAAc,EACd,WAAW,EACX,OAAO,CAAC,aAAa,CACrB,CAAC;gBACF,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;gBAC5B,oBAAoB,EAAE,CAAC;YACxB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,gFAAgF;gBAChF,sFAAsF;gBACtF,2EAA2E;gBAC3E,CAAE,IAAY,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YAC5F,CAAC;QACF,CAAC;QAED,4EAA4E;QAC3E,IAAY,CAAC,oBAAoB,GAAG,aAAa,CAAC;QAEnD,4FAA4F;QAC5F,2FAA2F;QAC3F,gGAAgG;QAChG,8FAA8F;QAC9F,+CAA+C;QAC/C,CAAC;YACA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC;oBACJ,IAAI,aAAa;wBAAE,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;gBAC/C,CAAC;wBAAS,CAAC;oBACV,MAAM,YAAY,EAAE,CAAC;gBACtB,CAAC;YACF,CAAC,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,cAAc,IAAI,IAAI,CAAC;QAClE,IAAI,eAAe,EAAE,CAAC;YACrB,MAAM,GAAG,GAAI,IAAY,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,kBAAkB,CAAC,CAAC;YACrE,MAAM,IAAI,GAAI,IAAY,CAAC,QAAQ,EAAE,IAAW,CAAC;YAEjD,IAAI,IAAI,EAAE,CAAC;gBACV,MAAM,WAAW,GAAG,IAAI,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAE3E,qFAAqF;gBACrF,iFAAiF;gBACjF,8FAA8F;gBAC9F,0FAA0F;gBAC1F,gEAAgE;gBAChE,sEAAsE;gBACtE,4FAA4F;gBAC5F,mFAAmF;gBACnF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;gBACpC,IAAY,CAAC,gBAAgB,GAAG,UAAU,CAAC;gBAE5C,6FAA6F;gBAC7F,wFAAwF;gBACxF,6FAA6F;gBAC7F,yDAAyD;gBACzD,IAAI,SAA2C,CAAC;gBAEhD,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;gBACxF,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,WAAW,EAAE,cAAc,EAAE;oBAClE,WAAW,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;oBAC9B,UAAU,EAAE;wBACX,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,IAAI;qBACZ;oBACD,6DAA6D;oBAC7D,6CAA6C;oBAC7C,cAAc,EAAE,GAAG;oBACnB,QAAQ,EAAE,GAAG;oBACb,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;iBAC1B,CAAC,CAAC;gBAEH,yCAAyC;gBACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACtC,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBACrE,WAAW,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBAE5C,GAAG,EAAE,CAAC,yCAAyC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;gBAE1E,kDAAkD;gBAClD,MAAM,wBAAwB,GAAG,IAAI,sBAAsB,CAC1D,WAAW;gBACX,sFAAsF;gBACtF,uFAAuF;gBACvF,kFAAkF;gBAClF,uFAAuF;gBACvF,UAAU,EACV,eAAe,OAAO,CAAC,WAAW,EAAE,EACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CACtB,CAAC;gBAEF,iDAAiD;gBACjD,MAAM,kBAAkB,GAAoB,KAAK,EAAE,OAAO,EAAE,GAAI,EAAE,EAAE;oBACnE,OAAO,MAAM,wBAAwB,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC7D,CAAC,CAAC;gBAEF,wEAAwE;gBACvE,WAAmB,CAAC,kBAAkB,GAAG,CAAC,OAAe,EAAE,EAAE,CAC7D,IAAI,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;gBAE3D,0FAA0F;gBAC1F,2FAA2F;gBAC3F,mFAAmF;gBACnF,6FAA6F;gBAC7F,wFAAwF;gBACxF,+FAA+F;gBAC/F,4FAA4F;gBAC5F,8FAA8F;gBAC9F,IAAI,cAAc,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;oBACtE,IAAI,CAAC;wBACJ,wFAAwF;wBACxF,6EAA6E;wBAC7E,yFAAyF;wBACzF,sFAAsF;wBACtF,iEAAiE;wBACjE,MAAM,WAAW,GAAG,IAAI,wBAAwB,CAC/C,WAAW,EACX,UAAU,EACV,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,CACd,CAAC;wBAEF,MAAM,gBAAgB,GAAG,cAAc,CAAC,oBAAoB,CAC3D,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,OAAO,CAAC,SAAS,CACjB,CAAC;wBACF,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;wBAE/B,wFAAwF;wBACxF,yFAAyF;wBACzF,wFAAwF;wBACxF,yFAAyF;wBACzF,wFAAwF;wBACxF,mEAAmE;wBACnE,EAAE;wBACF,sFAAsF;wBACtF,oFAAoF;wBACpF,gEAAgE;wBAChE,EAAE;wBACF,uFAAuF;wBACvF,0FAA0F;wBAC1F,yFAAyF;wBACzF,0FAA0F;wBAC1F,qFAAqF;wBACrF,0FAA0F;wBAC1F,mFAAmF;wBACnF,4DAA4D;wBAC5D,EAAE;wBACF,2EAA2E;wBAC3E,qFAAqF;wBACrF,0FAA0F;wBAC1F,kFAAkF;wBAClF,4CAA4C;wBAC5C,EAAE;wBACF,wFAAwF;wBACxF,yFAAyF;wBACzF,0FAA0F;wBAC1F,mFAAmF;wBACnF,2FAA2F;wBAC3F,uFAAuF;wBACvF,0FAA0F;wBAC1F,uFAAuF;wBACvF,2FAA2F;wBAC3F,yFAAyF;wBACzF,cAAc;wBACd,gBAAgB,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE;4BACtC,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,MAAM;gCAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;4BAC7D,WAAW,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gCACvD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oCACvC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,8CAA8C;oCACtF,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAiB,uCAAuC;gCACjF,CAAC;gCACD,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oCAChD,gBAAgB,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gCACxD,CAAC;gCACD,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oCACvC,MAAM,UAAU,GAAG,gBAAgB,CAAC,oBAAoB,EAAE,CAAC;oCAC3D,GAAG,EAAE,CAAC,4EAA4E;wCACjF,8CAA8C,EAC9C,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAC/C,UAAU,CAAC,0BAA0B,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;gCACpE,CAAC;4BACF,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gCAChB,kFAAkF;gCAClF,gFAAgF;gCAChF,mFAAmF;gCACnF,8EAA8E;gCAC9E,kFAAkF;gCAClF,mFAAmF;gCACnF,mFAAmF;gCACnF,sEAAsE;gCACtE,GAAG,EAAE,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;4BAC7C,CAAC,CAAC,CAAC;wBACJ,CAAC,CAAC,CAAC;wBAEH,+EAA+E;wBAC/E,kFAAkF;wBAClF,oFAAoF;wBACpF,0FAA0F;wBAC1F,oBAAoB;wBACpB,SAAS,GAAG,IAAI,oBAAoB,CAAC;4BACpC,WAAW;4BACX,YAAY;4BACZ,IAAI;4BACJ,iBAAiB;4BACjB,SAAS,EAAE,WAAW;4BACtB,WAAW;4BACX,UAAU,EAAE,MAAM;4BAClB,QAAQ,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE;4BAChD,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;gCACvB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oCAChC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;oCACvC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gCACzB,CAAC;4BACF,CAAC;yBACD,CAAC,CAAC;wBACH,uFAAuF;wBACvF,gEAAgE;wBAChE,SAAS,CAAC,gBAAgB,EAAE,CAAC;wBAE7B,wFAAwF;wBACxF,qFAAqF;wBACrF,oBAAoB,EAAE,CAAC;wBAEvB,oEAAoE;wBACnE,IAAY,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;wBACjD,IAAY,CAAC,wBAAwB,GAAG,WAAW,CAAC;wBACpD,IAAY,CAAC,oBAAoB,GAAG,SAAS,CAAC;wBAE/C,mFAAmF;wBACnF,6FAA6F;wBAC7F,0FAA0F;wBAC1F,oFAAoF;wBACpF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC1C,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE;4BACtB,IAAI,CAAC;gCACJ,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC;4BAC/B,CAAC;oCAAS,CAAC;gCACV,MAAM,YAAY,EAAE,CAAC;4BACtB,CAAC;wBACF,CAAC,CAAC;oBACH,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACd,mFAAmF;wBACnF,2EAA2E;wBAC3E,GAAG,EAAE,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;oBAChD,CAAC;gBACF,CAAC;gBAED,yFAAyF;gBACzF,4FAA4F;gBAC5F,2FAA2F;gBAC3F,8FAA8F;gBAC9F,oFAAoF;gBACpF,EAAE;gBACF,6FAA6F;gBAC7F,6FAA6F;gBAC7F,sEAAsE;gBACtE,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;oBAC9C,IAAI,CAAC,SAAS;wBAAE,OAAO;oBACvB,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,gBAAgB,EAAE,CAAC;oBACzD,IAAI,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;wBAC5F,GAAG,EAAE,CAAC,8CAA8C,EAAE,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;wBACrG,IAAI,CAAC;4BACJ,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC;gCAC5C,SAAS,EAAE,UAAU,CAAC,SAAS;gCAC/B,YAAY,EAAE,UAAU,CAAC,YAAY;6BACrC,CAAC,CAAC;4BACH,GAAG,EAAE,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;wBAC1C,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACd,GAAG,EAAE,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;wBACrC,CAAC;gCAAS,CAAC;4BACV,mFAAmF;4BACnF,0FAA0F;4BAC1F,YAAY,CAAC,kBAAkB,EAAE,CAAC;wBACnC,CAAC;oBACF,CAAC;gBACF,CAAC,EAAE,MAAM,CAAC,CAAC;gBAEX,uBAAuB;gBACvB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1C,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE;oBACtB,aAAa,CAAC,eAAe,CAAC,CAAC;oBAC/B,MAAM,YAAY,EAAE,CAAC;gBACtB,CAAC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,GAAG,EAAE,CAAC,gDAAgD,CAAC,CAAC;YACzD,CAAC;QACF,CAAC;QAED,uEAAuE;QACvE,yFAAyF;QACzF,8FAA8F;QAC9F,8FAA8F;QAC9F,0BAA0B;QAC1B,iGAAiG;QACjG,6FAA6F;QAC7F,2FAA2F;QAC3F,+FAA+F;QAC/F,gGAAgG;QAChG,+FAA+F;QAC/F,4CAA4C;QAC5C,uFAAuF;QACvF,kFAAkF;QAClF,+FAA+F;QAC/F,kGAAkG;QAClG,6FAA6F;QAC7F,mGAAmG;QACnG,gGAAgG;QAChG,4CAA4C;QAC5C,IAAI,iBAAiB,IAAI,OAAO,UAAU,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YACxE,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE;gBACtB,YAAY,GAAG,IAAI,CAAC;gBACpB,MAAM,YAAY,EAAE,CAAC;YACtB,CAAC,CAAC;YACF,KAAK,0BAA0B,CAAC,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC;iBAC1E,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAE,IAAY,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/G,CAAC;QAED,0FAA0F;QAC1F,6EAA6E;QAC7E,mFAAmF;QACnF,wFAAwF;QACxF,iGAAiG;QACjG,0GAA0G;QAC1G,6FAA6F;QAC7F,sEAAsE;QACtE,wCAAwC;QACxC,IAAI,sBAAkD,CAAC;QACvD,IAAI,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;YACrC,MAAM,mBAAmB,GAAG,CAAC,MAAW,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;YACtG,sBAAsB,GAAG,IAAI,cAAc,CAAC;gBAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,cAAc;gBAC1B,WAAW,EAAE,UAAU;gBACvB,mBAAmB;gBACnB,UAAU;gBACV,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,MAAM,EAAE,OAAO,CAAC,OAAO;gBACvB,iBAAiB,EAAE,KAAK,EAAE,OAAe,EAAE,YAAsB,EAAE,KAAa,EAAE,KAAa,EAAE,KAAiB,EAAE,EAAE;oBACrH,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC1D,MAAM,IAAI,GAAI,IAAY,CAAC,QAAQ,EAAE,IAA+B,CAAC;oBACrE,IAAI,CAAC,IAAI;wBAAE,OAAO,EAAE,CAAC;oBACrB,2FAA2F;oBAC3F,+FAA+F;oBAC/F,6FAA6F;oBAC7F,iGAAiG;oBACjG,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;oBACzC,6FAA6F;oBAC7F,uFAAuF;oBACvF,+FAA+F;oBAC/F,+FAA+F;oBAC/F,4FAA4F;oBAC5F,yGAAyG;oBACzG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACvC,MAAM,KAAK,GAAG,MAAM,iBAAiB,CACpC,EAAE,OAAO,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,EACxF,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAa,EAC/D,WAAW,CACX,CAAC;oBACF,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChD,CAAC;aACD,CAAC,CAAC;QACJ,CAAC;QAED,6FAA6F;QAC7F,iFAAiF;QACjF,wFAAwF;QACxF,8EAA8E;QAC9E,8FAA8F;QAC9F,0FAA0F;QAC1F,sFAAsF;QACtF,uDAAuD;QACvD,MAAM,WAAW,GAA8B;YAC9C,eAAe;YACf,WAAW;YACX,2EAA2E;YAC3E,uFAAuF;YACvF,+FAA+F;YAC/F,iDAAiD;YACjD,mBAAmB,EAAE,WAAW;YAChC,UAAU;YACV,UAAU;YACV,cAAc,EAAE,sBAAsB;YACtC,oFAAoF;YACpF,+FAA+F;YAC/F,gGAAgG;YAChG,gGAAgG;YAChG,uFAAuF;YACvF,cAAc,EAAE,cAAc;SAC9B,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAEjC,oGAAoG;QACpG,iGAAiG;QACjG,sGAAsG;QACtG,6FAA6F;QAC7F,oGAAoG;QACpG,iEAAiE;QACjE,IAAI,aAAa,EAAE,CAAC;YACnB,0GAA0G;YAC1G,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACX,0FAA0F;gBAC1F,qGAAqG;gBACrG,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;YACxF,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE;gBACpD,GAAG,CAAC,OAAO,CAAC,WAAY,CAAC,IAAI,IAAI,EAAE,CAAC;gBACpC,6FAA6F;gBAC7F,+FAA+F;gBAC/F,+FAA+F;gBAC/F,+FAA+F;gBAC/F,kGAAkG;gBAClG,oFAAoF;gBACpF,OAAO,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,WAAY,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;gBAChE,8FAA8F;gBAC9F,wFAAwF;gBACxF,8FAA8F;gBAC9F,iGAAiG;gBACjG,mGAAmG;gBACnG,uGAAuG;gBACvG,kFAAkF;gBAClF,UAAU,EAAE,cAAc,EAAE,+BAA+B;gBAC3D,KAAK,EAAE,WAAW;aAClB,CAAC,CAAC;YAEH,2DAA2D;YAC3D,4FAA4F;YAC5F,8FAA8F;YAC9F,8FAA8F;YAC9F,iGAAiG;YACjG,0FAA0F;YAC1F,gGAAgG;YAChG,+EAA+E;YAC/E,EAAE;YACF,4FAA4F;YAC5F,kGAAkG;YAClG,6FAA6F;YAC7F,+FAA+F;YAC/F,4FAA4F;YAC5F,+FAA+F;YAC/F,+DAA+D;YAC/D,MAAM,mBAAmB,GAAG,4BAA4B,CAAC;YACzD,MAAM,oBAAoB,GAAG,6BAA6B,CAAC;YAC3D,IAAI,uBAAiD,CAAC;YACtD,IAAI,gBAA0C,CAAC;YAC/C,IAAI,eAA4D,CAAC;YACjE,IAAI,kBAA+D,CAAC;YACpE,CAAC;gBACA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1C,IAAI,CAAC,IAAI,GAAG,KAAK,IAAmB,EAAE;oBACrC,IAAI,CAAC;wBACJ,kBAAkB,EAAE,IAAI,EAAE,CAAC;wBAC3B,eAAe,EAAE,IAAI,EAAE,CAAC;wBACxB,gBAAgB,EAAE,EAAE,CAAC;wBACrB,MAAM,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC,CAAC;wBACjE,MAAM,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,CAAC,CAAC;wBACnE,uBAAuB,EAAE,EAAE,CAAC;wBAC5B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnB,CAAC;4BAAS,CAAC;wBACV,MAAM,YAAY,EAAE,CAAC;oBACtB,CAAC;gBACF,CAAC,CAAC;YACH,CAAC;YAED,gGAAgG;YAChG,6FAA6F;YAC7F,+FAA+F;YAC/F,+FAA+F;YAC/F,gFAAgF;YAChF,MAAM,kBAAkB,GAAG,kCAAkC,CAAC;gBAC7D,IAAI;gBACJ,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;gBAClC,KAAK,EAAE,WAAW;aAClB,CAAC,CAAC;YAEH,uBAAuB,GAAG,wBAAwB,CACjD,IAAiE,EACjE;gBACC,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,kBAAkB;gBAClB,iBAAiB,EAAE,8BAA8B,CAAC,SAAU,CAAC;aAC7D,CACD,CAAC,WAAW,CAAC;YAEd,6FAA6F;YAC7F,sCAAsC;YACrC,IAAY,CAAC,eAAe,GAAG,IAAI,CAAC;YAErC,2GAA2G;YAC3G,uGAAuG;YACvG,oGAAoG;YACpG,0FAA0F;YAC1F,kGAAkG;YAClG,wFAAwF;YACxF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC1C,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,6DAA6D;YACrG,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;YACjE,+FAA+F;YAC/F,gGAAgG;YAChG,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,cAAc,EAAE,CAAC,CAAC;YACpE,oGAAoG;YACpG,kGAAkG;YAClG,8EAA8E;YAC9E,MAAM,8BAA8B,GAAG,CAAC,CAAC;YAEzC,kGAAkG;YAClG,gGAAgG;YAChG,kGAAkG;YAClG,MAAM,qBAAqB,GAAG,IAAI,4BAA4B,EAAE,CAAC;YAChE,IAAY,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;YAE5D,uGAAuG;YACvG,MAAM,MAAM,GAAG,IAAI,+BAA+B,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;YAEzE,8FAA8F;YAC9F,MAAM,aAAa,GAAG,IAAI,uBAAuB,CAAC;gBACjD,SAAS,EAAE,MAAM;gBACjB,UAAU;gBACV,OAAO,EAAE,iBAAiB;gBAC1B,aAAa,EAAE,CAAC,OAAmB,EAAE,CAAiB,EAAiB,EAAE,CAAC,CAAC;oBAC1E,YAAY,EAAE,CAAC,CAAC,YAAY;oBAC5B,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC;oBAC/B,YAAY,EAAE,CAAC,CAAC,MAAM;oBACtB,aAAa,EAAE,gBAAgB,CAAC,aAAa;iBAC7C,CAAC;gBACF,WAAW,EAAE,GAAyB,EAAE,CAAC,0BAA0B,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;gBACzH,iBAAiB,EAAE,CAAC,OAAmB,EAAY,EAAE;oBACpD,iGAAiG;oBACjG,mGAAmG;oBACnG,+FAA+F;oBAC/F,+FAA+F;oBAC/F,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;oBAClF,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACjF,CAAC;gBACD,gGAAgG;gBAChG,qGAAqG;gBACrG,+DAA+D;gBAC/D,mBAAmB,EAAE,CAAC,GAAc,EAAsB,EAAE;oBAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC;oBACzE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAChD,CAAC;gBACD,YAAY,EAAE,CAAC,OAAmB,EAAE,CAAiB,EAAQ,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;aACzG,CAAC,CAAC;YAEH,yGAAyG;YACzG,wFAAwF;YACxF,qGAAqG;YACrG,4FAA4F;YAC5F,gGAAgG;YAChG,gGAAgG;YAChG,oFAAoF;YACpF,iGAAiG;YACjG,uEAAuE;YACvE,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAChE,gBAAgB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC,EAAQ,EAAE,GAAG,KAAK,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAExG,uGAAuG;YACvG,MAAM,WAAW,GAAG,IAAI,4BAA4B,CAAC;gBACpD,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;oBACzB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBAChC,OAAO,SAAS,CAAC,CAAC,mFAAmF;oBACtG,CAAC;oBACD,OAAO;wBACN,mFAAmF;wBACnF,wFAAwF;wBACxF,MAAM,EAAE,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC;wBACzC,aAAa,EAAE,gBAAgB,CAAC,aAAa;wBAC7C,4FAA4F;wBAC5F,0FAA0F;wBAC1F,4FAA4F;wBAC5F,8FAA8F;wBAC9F,wEAAwE;qBACxE,CAAC;gBACH,CAAC;gBACD,uFAAuF;gBACvF,oGAAoG;gBACpG,oFAAoF;gBACpF,IAAI,EAAE,CAAC,CAAC,EAAQ,EAAE,GAAG,KAAK,aAAa,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtF,kGAAkG;gBAClG,kGAAkG;gBAClG,oGAAoG;gBACpG,iGAAiG;gBACjG,WAAW,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAQ,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC;aACtG,CAAC,CAAC;YACH,WAAW,CAAC,OAAO,EAAE,CAAC;YAEtB,mGAAmG;YACnG,2FAA2F;YAC3F,eAAe,GAAG,IAAI,+BAA+B,CAAC;gBACrD,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,eAAe,EAAE,GAAiC,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACvG,SAAS;oBACT,WAAW,EAAE,oBAAoB,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;iBAC1E,CAAC,CAAC;gBACH,kBAAkB,EAAE,CAAC,CAAoB,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAClG,kGAAkG;gBAClG,6GAA6G;gBAC7G,cAAc,EAAE,CAAC,UAAkB,EAAE,CAAoB,EAAW,EAAE,CACrE,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;aAC7G,CAAC,CAAC;YACH,8BAA8B,CAAC,IAAI,EAAE,mBAAmB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;YAC3F,eAAe,CAAC,KAAK,EAAE,CAAC;YAExB,gGAAgG;YAChG,sGAAsG;YACtG,qGAAqG;YACrG,sGAAsG;YACtG,qGAAqG;YACrG,wGAAwG;YACxG,wGAAwG;YACxG,oDAAoD;YACpD,EAAE;YACF,uGAAuG;YACvG,sGAAsG;YACtG,oGAAoG;YACpG,4FAA4F;YAC5F,MAAM,yBAAyB,GAAG,2BAA2B,EAAE,CAAC;YAChE,yGAAyG;YACzG,oGAAoG;YACpG,yGAAyG;YACzG,kGAAkG;YAClG,MAAM,uBAAuB,GAAG,CAAC,OAAmB,EAAY,EAAE,CACjE,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;YAExE,uGAAuG;YACvG,uGAAuG;YACvG,qGAAqG;YACrG,MAAM,OAAO,GAAG,IAAI,gCAAgC,CAAC;gBACpD,MAAM,EAAE,yBAAyB,CAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC;gBACpE,UAAU;gBACV,eAAe,EAAE,yBAAyB;gBAC1C,aAAa,EAAE,uBAAuB;aACtC,CAAC,CAAC;YAEH,0GAA0G;YAC1G,yGAAyG;YACzG,0GAA0G;YAC1G,4FAA4F;YAC5F,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,EAAE;gBACzD,YAAY,EAAE,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC5D,sBAAsB,EAAE,aAAa,CAAC,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC;gBAChF,WAAW,EAAE,4BAA4B,EAAE;gBAC3C,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;oBACzB,gGAAgG;oBAChG,8FAA8F;oBAC9F,gGAAgG;oBAChG,2FAA2F;oBAC3F,kGAAkG;oBAClG,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,IAAI,yBAAyB,CAAC,aAAa,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;oBAC7F,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,mBAAmB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;gBAClG,CAAC;aACD,CAAC,CAAC;YAEH,0GAA0G;YAC1G,sGAAsG;YACtG,iFAAiF;YACjF,kDAAkD;YAClD,MAAM,cAAc,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC;YAEnE,qGAAqG;YACrG,wDAAwD;YACvD,IAAY,CAAC,iBAAiB,GAAG,OAAO,CAAC;YACzC,IAAY,CAAC,wBAAwB,GAAG,cAAc,CAAC;YACvD,IAAY,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;YAEpE,qGAAqG;YACrG,yGAAyG;YACzG,gGAAgG;YAChG,0GAA0G;YAC1G,2GAA2G;YAC3G,0GAA0G;YAC1G,oGAAoG;YACpG,kGAAkG;YAClG,uGAAuG;YACvG,oFAAoF;YACpF,kBAAkB,GAAG,IAAI,+BAA+B,CAAC;gBACxD,UAAU,EAAE,CAAC,IAAI,EAAiB,EAAE;oBACnC,mBAAmB,CAAC,2LAA2L,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oBACpQ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC1B,CAAC;aACD,CAAC,CAAC;YACF,IAAY,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;YAEtD,0FAA0F;YAC1F,6GAA6G;YAC7G,yGAAyG;YACzG,wGAAwG;YACxG,0GAA0G;YAC1G,qGAAqG;YACrG,0FAA0F;YAC1F,+BAA+B,CAAC,IAAI,EAAE,oBAAoB,CAAC,KAAK,EAAE;gBACjE,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,mGAAmG;gBACnG,kGAAkG;gBAClG,sCAAsC;gBACtC,UAAU,EAAE,oBAAoB;gBAChC,uGAAuG;gBACvG,IAAI,EAAE,KAAK,EAAE,OAAmB,EAAmB,EAAE,CAAC,aAAa,CAAC,MAAM,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;gBAC5G,mGAAmG;gBACnG,sGAAsG;gBACtG,mFAAmF;aACnF,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,IAAiC,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,mGAAmG;QACnG,qGAAqG;QACrG,sGAAsG;QACtG,0DAA0D;QAC1D,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,CAAC;QAAC,OAAO,OAAO,EAAE,CAAC;YAClB,SAAS,CAAC,8CAA8C,EAAE,OAAO,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,GAAG,CAAC;IACX,CAAC;AACF,CAAC"}
|
package/dist/src/logger.d.ts
CHANGED
|
@@ -10,8 +10,8 @@ import debug from 'debug';
|
|
|
10
10
|
* distinguish nodes (~11M combinations — ample for the handful of nodes a test process runs).
|
|
11
11
|
* Widen this only if a run ever needs to match a namespace against a full peer id.
|
|
12
12
|
*
|
|
13
|
-
* NOTE: only
|
|
14
|
-
*
|
|
13
|
+
* NOTE: only a few call sites pass a peer id today (`Libp2pKeyPeerNetwork`, `CoordinatorRepo`, and
|
|
14
|
+
* the three `peer-address-book` sinks); the package's other ~30 `createLogger` call sites
|
|
15
15
|
* still log under a flat namespace. Thread a peer id through any of them if a future diagnosis
|
|
16
16
|
* needs per-node attribution from that subsystem — the mechanism is already here.
|
|
17
17
|
*/
|
package/dist/src/logger.js
CHANGED
|
@@ -11,8 +11,8 @@ const BASE_NAMESPACE = 'optimystic:db-p2p';
|
|
|
11
11
|
* distinguish nodes (~11M combinations — ample for the handful of nodes a test process runs).
|
|
12
12
|
* Widen this only if a run ever needs to match a namespace against a full peer id.
|
|
13
13
|
*
|
|
14
|
-
* NOTE: only
|
|
15
|
-
*
|
|
14
|
+
* NOTE: only a few call sites pass a peer id today (`Libp2pKeyPeerNetwork`, `CoordinatorRepo`, and
|
|
15
|
+
* the three `peer-address-book` sinks); the package's other ~30 `createLogger` call sites
|
|
16
16
|
* still log under a flat namespace. Thread a peer id through any of them if a future diagnosis
|
|
17
17
|
* needs per-node attribution from that subsystem — the mechanism is already here.
|
|
18
18
|
*/
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The single place in `db-p2p` that opens a libp2p protocol stream.
|
|
3
|
+
*
|
|
4
|
+
* libp2p refuses to open a protocol stream over a *limited* (circuit-relay) connection unless the
|
|
5
|
+
* caller opts in with `runOnLimitedConnection: true`. Omitting it produces no compile error and no
|
|
6
|
+
* obvious failure — only "that peer never answers" — so every peer reachable only through a relay
|
|
7
|
+
* (the steady state for browsers, phones, and NATed peers) silently drops out. The flag is
|
|
8
|
+
* deliberately NOT an option here: a new call site gets relay support without its author needing to
|
|
9
|
+
* know the flag exists, and `test/dial-options-single-site.spec.ts` fails the build if a second
|
|
10
|
+
* source file calls `dialProtocol` / `newStream` directly.
|
|
11
|
+
*
|
|
12
|
+
* NOTE: accepted tradeoff — this duplicates FRET's `rpc/protocols.ts#openRpcStream` (exported since
|
|
13
|
+
* `p2p-fret@1.0.0-beta.3`) rather than delegating to it. FRET's helper pins `negotiateFully: false`
|
|
14
|
+
* with no way to opt out, and `cohort-topic/stream-util.ts` deliberately does not set that option
|
|
15
|
+
* (see the NOTE at its call sites); adopting FRET's would silently reverse a decision a human
|
|
16
|
+
* already made. It also has no hook for the pre-dial check `libp2p-key-network.ts#connect` runs.
|
|
17
|
+
* Revisit — and delete this module in favour of `openRpcStream` — if FRET ever parameterizes
|
|
18
|
+
* `negotiateFully`.
|
|
19
|
+
*
|
|
20
|
+
* Imports here are type-only on purpose: this module is reachable from the react-native entry
|
|
21
|
+
* (`src/rn.ts`) via `libp2p-key-network.ts`, which must not pull node-specific code.
|
|
22
|
+
*/
|
|
23
|
+
import type { Libp2p } from "libp2p";
|
|
24
|
+
import type { Connection, PeerId, Stream } from "@libp2p/interface";
|
|
25
|
+
export interface OpenProtocolStreamOptions {
|
|
26
|
+
/** Forwarded to libp2p so a caller's deadline cancels both the connection reuse and the dial. */
|
|
27
|
+
signal?: AbortSignal;
|
|
28
|
+
/**
|
|
29
|
+
* Omit for libp2p's default (full multistream-select negotiation at stream-open).
|
|
30
|
+
* Pass `false` to save the round trip, accepting that an unsupported-protocol failure is
|
|
31
|
+
* deferred to the first read — only safe when the caller always reads a reply.
|
|
32
|
+
*/
|
|
33
|
+
negotiateFully?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Runs immediately before a FRESH dial, and never on the connection-reuse path.
|
|
36
|
+
* Throwing aborts the open. This is the seam for checks that are only meaningful when no
|
|
37
|
+
* connection exists yet (see `libp2p-key-network.ts#assertNotSelfRelayOnly`).
|
|
38
|
+
*/
|
|
39
|
+
beforeDial?: () => Promise<void> | void;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* True for a circuit-relay ("limited") connection: libp2p stamps one with per-circuit `limits`
|
|
43
|
+
* (data/duration caps); sniffing `/p2p-circuit` in the remote multiaddr covers transports and
|
|
44
|
+
* versions that leave `limits` unpopulated.
|
|
45
|
+
*/
|
|
46
|
+
export declare function isLimitedConnection(c: Connection): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Open `protocol` to `peer`, reusing a healthy existing connection when there is one.
|
|
49
|
+
*
|
|
50
|
+
* Skips connections libp2p has not yet evicted from its index but that are no longer open, and
|
|
51
|
+
* prefers a direct connection over a relayed one — a relayed connection can be reset once the
|
|
52
|
+
* relay's per-circuit cap or reservation lapses, and after DCUtR upgrades a link to direct both
|
|
53
|
+
* briefly coexist. Falls back to the relayed connection when it is the only open path.
|
|
54
|
+
*/
|
|
55
|
+
export declare function openProtocolStream(node: Libp2p, peer: PeerId, protocol: string, options?: OpenProtocolStreamOptions): Promise<Stream>;
|
|
56
|
+
//# sourceMappingURL=open-protocol-stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open-protocol-stream.d.ts","sourceRoot":"","sources":["../../../src/network/open-protocol-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEpE,MAAM,WAAW,yBAAyB;IACzC,iGAAiG;IACjG,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACxC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO,CAG1D;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACvC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,yBAAyB,GACjC,OAAO,CAAC,MAAM,CAAC,CAoBjB"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The single place in `db-p2p` that opens a libp2p protocol stream.
|
|
3
|
+
*
|
|
4
|
+
* libp2p refuses to open a protocol stream over a *limited* (circuit-relay) connection unless the
|
|
5
|
+
* caller opts in with `runOnLimitedConnection: true`. Omitting it produces no compile error and no
|
|
6
|
+
* obvious failure — only "that peer never answers" — so every peer reachable only through a relay
|
|
7
|
+
* (the steady state for browsers, phones, and NATed peers) silently drops out. The flag is
|
|
8
|
+
* deliberately NOT an option here: a new call site gets relay support without its author needing to
|
|
9
|
+
* know the flag exists, and `test/dial-options-single-site.spec.ts` fails the build if a second
|
|
10
|
+
* source file calls `dialProtocol` / `newStream` directly.
|
|
11
|
+
*
|
|
12
|
+
* NOTE: accepted tradeoff — this duplicates FRET's `rpc/protocols.ts#openRpcStream` (exported since
|
|
13
|
+
* `p2p-fret@1.0.0-beta.3`) rather than delegating to it. FRET's helper pins `negotiateFully: false`
|
|
14
|
+
* with no way to opt out, and `cohort-topic/stream-util.ts` deliberately does not set that option
|
|
15
|
+
* (see the NOTE at its call sites); adopting FRET's would silently reverse a decision a human
|
|
16
|
+
* already made. It also has no hook for the pre-dial check `libp2p-key-network.ts#connect` runs.
|
|
17
|
+
* Revisit — and delete this module in favour of `openRpcStream` — if FRET ever parameterizes
|
|
18
|
+
* `negotiateFully`.
|
|
19
|
+
*
|
|
20
|
+
* Imports here are type-only on purpose: this module is reachable from the react-native entry
|
|
21
|
+
* (`src/rn.ts`) via `libp2p-key-network.ts`, which must not pull node-specific code.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* True for a circuit-relay ("limited") connection: libp2p stamps one with per-circuit `limits`
|
|
25
|
+
* (data/duration caps); sniffing `/p2p-circuit` in the remote multiaddr covers transports and
|
|
26
|
+
* versions that leave `limits` unpopulated.
|
|
27
|
+
*/
|
|
28
|
+
export function isLimitedConnection(c) {
|
|
29
|
+
if (c.limits != null)
|
|
30
|
+
return true;
|
|
31
|
+
return c.remoteAddr?.toString?.().includes("/p2p-circuit") ?? false;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Open `protocol` to `peer`, reusing a healthy existing connection when there is one.
|
|
35
|
+
*
|
|
36
|
+
* Skips connections libp2p has not yet evicted from its index but that are no longer open, and
|
|
37
|
+
* prefers a direct connection over a relayed one — a relayed connection can be reset once the
|
|
38
|
+
* relay's per-circuit cap or reservation lapses, and after DCUtR upgrades a link to direct both
|
|
39
|
+
* briefly coexist. Falls back to the relayed connection when it is the only open path.
|
|
40
|
+
*/
|
|
41
|
+
export async function openProtocolStream(node, peer, protocol, options) {
|
|
42
|
+
// Before touching connections: a caller that has already given up is owed its own reason,
|
|
43
|
+
// not whatever libp2p would report several layers down.
|
|
44
|
+
options?.signal?.throwIfAborted();
|
|
45
|
+
const conns = node.getConnections?.(peer) ?? [];
|
|
46
|
+
const open = conns.filter(c => c?.status === "open" && typeof c?.newStream === "function");
|
|
47
|
+
const chosen = open.find(c => !isLimitedConnection(c)) ?? open[0];
|
|
48
|
+
// Keys are OMITTED rather than set to `undefined` when the caller did not supply them, so
|
|
49
|
+
// libp2p applies its own defaults instead of seeing an explicit `undefined`.
|
|
50
|
+
const streamOptions = {
|
|
51
|
+
runOnLimitedConnection: true,
|
|
52
|
+
...(options?.negotiateFully !== undefined ? { negotiateFully: options.negotiateFully } : {}),
|
|
53
|
+
...(options?.signal !== undefined ? { signal: options.signal } : {}),
|
|
54
|
+
};
|
|
55
|
+
if (chosen)
|
|
56
|
+
return await chosen.newStream([protocol], streamOptions);
|
|
57
|
+
await options?.beforeDial?.();
|
|
58
|
+
return await node.dialProtocol(peer, [protocol], streamOptions);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=open-protocol-stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open-protocol-stream.js","sourceRoot":"","sources":["../../../src/network/open-protocol-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAsBH;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,CAAa;IAChD,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAClC,OAAO,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC;AACrE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,IAAY,EACZ,IAAY,EACZ,QAAgB,EAChB,OAAmC;IAEnC,0FAA0F;IAC1F,wDAAwD;IACxD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAElC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,EAAE,SAAS,KAAK,UAAU,CAAC,CAAC;IAC3F,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IAElE,0FAA0F;IAC1F,6EAA6E;IAC7E,MAAM,aAAa,GAAG;QACrB,sBAAsB,EAAE,IAAI;QAC5B,GAAG,CAAC,OAAO,EAAE,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpE,CAAC;IAEF,IAAI,MAAM;QAAE,OAAO,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;IACrE,MAAM,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC;IAC9B,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The single place in `db-p2p` that registers a libp2p protocol handler.
|
|
3
|
+
*
|
|
4
|
+
* The mirror image of `./open-protocol-stream.ts`. Opening a stream over a *limited* (circuit-relay)
|
|
5
|
+
* connection needs BOTH sides to opt in, and libp2p checks each side against its own options:
|
|
6
|
+
*
|
|
7
|
+
* - the dialer's `newStream` / `dialProtocol` options (`libp2p/src/connection.ts`, outbound path), and
|
|
8
|
+
* - the options the *answering* peer passed when it registered the handler
|
|
9
|
+
* (`libp2p/src/connection.ts`, incoming path — it reads back
|
|
10
|
+
* `registrar.getHandler(protocol).options.runOnLimitedConnection`).
|
|
11
|
+
*
|
|
12
|
+
* Miss either one and libp2p throws `LimitedConnectionError`. On the answering side it does so
|
|
13
|
+
* *after* multistream-select has already acknowledged the protocol, so the dialer's stream open
|
|
14
|
+
* appears to succeed and the stream is then reset with no reply — indistinguishable, from the
|
|
15
|
+
* dialer's seat, from a peer that simply does not hold the data. Every peer reachable only through
|
|
16
|
+
* a capped relay (phones, browsers, machines behind a home router) silently drops out.
|
|
17
|
+
*
|
|
18
|
+
* `openProtocolStream` fixed the dialling half; this fixes the answering half. As there, the flag is
|
|
19
|
+
* deliberately NOT an option: a new protocol gets relay support without its author needing to know
|
|
20
|
+
* the flag exists, and `test/dial-options-single-site.spec.ts` fails the build if a second source
|
|
21
|
+
* file calls `.handle(...)` directly.
|
|
22
|
+
*
|
|
23
|
+
* Accepting the stream is necessary but not sufficient. A stock relay also caps the *whole* relayed
|
|
24
|
+
* connection — `applyDefaultLimit: true` stamps `Limit { data: 128 KiB, duration: 2 min }` on every
|
|
25
|
+
* reservation — so a relay-only peer now answers, but the circuit is reset once either cap is hit,
|
|
26
|
+
* which one cohort frame (`DEFAULT_STREAM_MAX_BYTES`, 512 KiB) can do on its own. Lifting that is
|
|
27
|
+
* the relay operator's knob, not this one: see `NodeOptions.relayServerInit` in `libp2p-node-base.ts`.
|
|
28
|
+
*
|
|
29
|
+
* Imports here are type-only on purpose: this module is reachable from the react-native entry
|
|
30
|
+
* (`src/rn.ts`), which must not pull node-specific code.
|
|
31
|
+
*/
|
|
32
|
+
import type { StreamHandler, StreamHandlerOptions, StreamMiddleware } from "@libp2p/interface";
|
|
33
|
+
/**
|
|
34
|
+
* Anything that can register a libp2p protocol handler.
|
|
35
|
+
*
|
|
36
|
+
* Both shapes in this package satisfy it: a `Libp2p` node (`node.handle(...)`) and the `registrar`
|
|
37
|
+
* component the service classes are constructed with (`components.registrar.handle(...)`).
|
|
38
|
+
*/
|
|
39
|
+
export interface ProtocolRegistrar {
|
|
40
|
+
handle(protocol: string, handler: StreamHandler, options?: StreamHandlerOptions): Promise<void>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The per-protocol settings that legitimately vary. `runOnLimitedConnection` is absent on purpose —
|
|
44
|
+
* it is a constant of this helper, not a caller's choice.
|
|
45
|
+
*/
|
|
46
|
+
export interface RegisterProtocolHandlerOptions {
|
|
47
|
+
/** Concurrent inbound streams allowed per connection. Omit for libp2p's default (32). */
|
|
48
|
+
maxInboundStreams?: number;
|
|
49
|
+
/** Concurrent outbound streams allowed per connection. Omit for libp2p's default (64). */
|
|
50
|
+
maxOutboundStreams?: number;
|
|
51
|
+
/** Stream middleware, run around the handler. Omit for none. */
|
|
52
|
+
middleware?: StreamMiddleware[];
|
|
53
|
+
/** Replace an existing registration for this protocol instead of rejecting. */
|
|
54
|
+
force?: true;
|
|
55
|
+
/** Forwarded to libp2p so a caller's deadline cancels the registration. */
|
|
56
|
+
signal?: AbortSignal;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Register `handler` for `protocol`, accepting streams over limited (relay) connections.
|
|
60
|
+
*
|
|
61
|
+
* Rejects if the registrar rejects — a duplicate protocol id, or an aborted signal. Callers that
|
|
62
|
+
* register fire-and-forget (`void registerProtocolHandler(...)`) keep that behaviour; see the NOTE
|
|
63
|
+
* in `libp2p-node-base.ts` about the reactivity handlers.
|
|
64
|
+
*/
|
|
65
|
+
export declare function registerProtocolHandler(target: ProtocolRegistrar, protocol: string, handler: StreamHandler, options?: RegisterProtocolHandlerOptions): Promise<void>;
|
|
66
|
+
//# sourceMappingURL=register-protocol-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-protocol-handler.d.ts","sourceRoot":"","sources":["../../../src/network/register-protocol-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE/F;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IACjC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChG;AAED;;;GAGG;AACH,MAAM,WAAW,8BAA8B;IAC9C,yFAAyF;IACzF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,0FAA0F;IAC1F,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gEAAgE;IAChE,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC,+EAA+E;IAC/E,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,2EAA2E;IAC3E,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC5C,MAAM,EAAE,iBAAiB,EACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE,8BAA8B,GACtC,OAAO,CAAC,IAAI,CAAC,CAWf"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The single place in `db-p2p` that registers a libp2p protocol handler.
|
|
3
|
+
*
|
|
4
|
+
* The mirror image of `./open-protocol-stream.ts`. Opening a stream over a *limited* (circuit-relay)
|
|
5
|
+
* connection needs BOTH sides to opt in, and libp2p checks each side against its own options:
|
|
6
|
+
*
|
|
7
|
+
* - the dialer's `newStream` / `dialProtocol` options (`libp2p/src/connection.ts`, outbound path), and
|
|
8
|
+
* - the options the *answering* peer passed when it registered the handler
|
|
9
|
+
* (`libp2p/src/connection.ts`, incoming path — it reads back
|
|
10
|
+
* `registrar.getHandler(protocol).options.runOnLimitedConnection`).
|
|
11
|
+
*
|
|
12
|
+
* Miss either one and libp2p throws `LimitedConnectionError`. On the answering side it does so
|
|
13
|
+
* *after* multistream-select has already acknowledged the protocol, so the dialer's stream open
|
|
14
|
+
* appears to succeed and the stream is then reset with no reply — indistinguishable, from the
|
|
15
|
+
* dialer's seat, from a peer that simply does not hold the data. Every peer reachable only through
|
|
16
|
+
* a capped relay (phones, browsers, machines behind a home router) silently drops out.
|
|
17
|
+
*
|
|
18
|
+
* `openProtocolStream` fixed the dialling half; this fixes the answering half. As there, the flag is
|
|
19
|
+
* deliberately NOT an option: a new protocol gets relay support without its author needing to know
|
|
20
|
+
* the flag exists, and `test/dial-options-single-site.spec.ts` fails the build if a second source
|
|
21
|
+
* file calls `.handle(...)` directly.
|
|
22
|
+
*
|
|
23
|
+
* Accepting the stream is necessary but not sufficient. A stock relay also caps the *whole* relayed
|
|
24
|
+
* connection — `applyDefaultLimit: true` stamps `Limit { data: 128 KiB, duration: 2 min }` on every
|
|
25
|
+
* reservation — so a relay-only peer now answers, but the circuit is reset once either cap is hit,
|
|
26
|
+
* which one cohort frame (`DEFAULT_STREAM_MAX_BYTES`, 512 KiB) can do on its own. Lifting that is
|
|
27
|
+
* the relay operator's knob, not this one: see `NodeOptions.relayServerInit` in `libp2p-node-base.ts`.
|
|
28
|
+
*
|
|
29
|
+
* Imports here are type-only on purpose: this module is reachable from the react-native entry
|
|
30
|
+
* (`src/rn.ts`), which must not pull node-specific code.
|
|
31
|
+
*/
|
|
32
|
+
/**
|
|
33
|
+
* Register `handler` for `protocol`, accepting streams over limited (relay) connections.
|
|
34
|
+
*
|
|
35
|
+
* Rejects if the registrar rejects — a duplicate protocol id, or an aborted signal. Callers that
|
|
36
|
+
* register fire-and-forget (`void registerProtocolHandler(...)`) keep that behaviour; see the NOTE
|
|
37
|
+
* in `libp2p-node-base.ts` about the reactivity handlers.
|
|
38
|
+
*/
|
|
39
|
+
export async function registerProtocolHandler(target, protocol, handler, options) {
|
|
40
|
+
// Keys are OMITTED rather than set to `undefined` when the caller did not supply them, so
|
|
41
|
+
// libp2p applies its own defaults instead of seeing an explicit `undefined`.
|
|
42
|
+
await target.handle(protocol, handler, {
|
|
43
|
+
runOnLimitedConnection: true,
|
|
44
|
+
...(options?.maxInboundStreams !== undefined ? { maxInboundStreams: options.maxInboundStreams } : {}),
|
|
45
|
+
...(options?.maxOutboundStreams !== undefined ? { maxOutboundStreams: options.maxOutboundStreams } : {}),
|
|
46
|
+
...(options?.middleware !== undefined ? { middleware: options.middleware } : {}),
|
|
47
|
+
...(options?.force !== undefined ? { force: options.force } : {}),
|
|
48
|
+
...(options?.signal !== undefined ? { signal: options.signal } : {}),
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=register-protocol-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-protocol-handler.js","sourceRoot":"","sources":["../../../src/network/register-protocol-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AA+BH;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC5C,MAAyB,EACzB,QAAgB,EAChB,OAAsB,EACtB,OAAwC;IAExC,0FAA0F;IAC1F,6EAA6E;IAC7E,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE;QACtC,sBAAsB,EAAE,IAAI;QAC5B,GAAG,CAAC,OAAO,EAAE,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrG,GAAG,CAAC,OAAO,EAAE,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxG,GAAG,CAAC,OAAO,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,GAAG,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpE,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -21,13 +21,20 @@ export declare const MAX_MERGED_ADDRS_PER_PEER = 8;
|
|
|
21
21
|
* peers — single digits — so this is generous margin, not a functional limit.
|
|
22
22
|
*/
|
|
23
23
|
export declare const MAX_LEARNED_PEERS_PER_RECORD = 64;
|
|
24
|
-
/** The narrow slice of libp2p this module needs — a peer id and (optionally) a peerStore
|
|
24
|
+
/** The narrow slice of libp2p this module needs — a peer id and (optionally) a peerStore. */
|
|
25
25
|
export interface PeerAddressBookHost {
|
|
26
26
|
peerId: PeerId;
|
|
27
27
|
peerStore?: {
|
|
28
28
|
merge?: (id: PeerId, data: {
|
|
29
29
|
multiaddrs: Multiaddr[];
|
|
30
30
|
}) => Promise<unknown>;
|
|
31
|
+
get?: (id: PeerId) => Promise<{
|
|
32
|
+
addresses?: Array<{
|
|
33
|
+
multiaddr: {
|
|
34
|
+
toString(): string;
|
|
35
|
+
};
|
|
36
|
+
}>;
|
|
37
|
+
}>;
|
|
31
38
|
};
|
|
32
39
|
}
|
|
33
40
|
/** Log sink shaped like both `debug` loggers and libp2p's `Logger`. */
|
|
@@ -40,6 +47,126 @@ export type AddressLog = (fmt: string, ...args: unknown[]) => void;
|
|
|
40
47
|
* "an address string we are willing to carry".
|
|
41
48
|
*/
|
|
42
49
|
export declare function validMultiaddrStrings(addrs: string[], log: AddressLog): string[];
|
|
50
|
+
/**
|
|
51
|
+
* The slice of a libp2p `Connection` that decides whether its remote address may be published.
|
|
52
|
+
*
|
|
53
|
+
* `direction` is populated on every connection libp2p creates; it is optional here only because
|
|
54
|
+
* unit stubs build connection literals by hand — and a missing `direction` is deliberately treated
|
|
55
|
+
* as NOT publishable, so a stub cannot silently opt back into the pre-fix behavior.
|
|
56
|
+
*/
|
|
57
|
+
export interface DirectionalConnection {
|
|
58
|
+
direction?: 'inbound' | 'outbound';
|
|
59
|
+
remoteAddr?: {
|
|
60
|
+
toString?: () => string;
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* A live connection's remote address, when it is one we may publish to a **third** party —
|
|
65
|
+
* otherwise `undefined`.
|
|
66
|
+
*
|
|
67
|
+
* The companion to {@link validMultiaddrStrings}: that answers "an address string we are willing
|
|
68
|
+
* to carry", this answers "an address we are willing to hand to someone else". They are not the
|
|
69
|
+
* same question, because an inbound connection's `remoteAddr` is not an address at all in the
|
|
70
|
+
* sense a third party needs. For an **outbound** connection it is the address we dialed — a real
|
|
71
|
+
* listen (or circuit) address that anyone can reach the peer on. For an **inbound** one it is the
|
|
72
|
+
* far side's *ephemeral source socket*: the port their operating system picked for this single
|
|
73
|
+
* connection. It is reachable by nobody else, it is indistinguishable from a listen address once
|
|
74
|
+
* it is on the wire, and it takes a slot against {@link MAX_MERGED_ADDRS_PER_PEER} in every peer
|
|
75
|
+
* that merges it. So the cure has to be here, at the producer.
|
|
76
|
+
*
|
|
77
|
+
* An inbound-only peer loses nothing by this: its own advertised addresses reach us through
|
|
78
|
+
* `identify`/`identifyPush` and are published from the peerStore instead — see
|
|
79
|
+
* {@link publishableAddrsForPeer}, which is where the two halves are joined.
|
|
80
|
+
*
|
|
81
|
+
* NOTE: accepted tradeoff — making an INBOUND connection's `remoteAddr` publishable when it is a
|
|
82
|
+
* circuit address was proposed (the "at least a relayed dialer has a real address" reading) and
|
|
83
|
+
* declined. Read from `@libp2p/circuit-relay-v2@4.1.3` as vendored under
|
|
84
|
+
* `packages/db-p2p/node_modules`: the destination side composes that address as
|
|
85
|
+
* `ourConnectionToTheRelay.remoteAddr` encapsulated with `/p2p-circuit/p2p/<dialer>`
|
|
86
|
+
* (`dist/src/transport/index.js:272`), so the relay it names is the one WE hold a reservation
|
|
87
|
+
* with, not one the dialer is reachable on. A relay's `handleConnect` requires a reservation for
|
|
88
|
+
* the DESTINATION only (`dist/src/server/index.js:219-222`, status `NO_RESERVATION`) — a dialer
|
|
89
|
+
* needs none — so a third party dialing that composed address reaches the dialer only if the
|
|
90
|
+
* dialer coincidentally also holds a reservation on our relay, which nothing establishes. When our
|
|
91
|
+
* own hop to the relay was itself inbound the prefix is an ephemeral source socket, making it
|
|
92
|
+
* undialable twice over. And in the one case where it would work — dialer and we share a relay —
|
|
93
|
+
* the dialer's genuine self-advertised circuit address has already reached us through `identify`,
|
|
94
|
+
* so publishing the composed form adds nothing and costs a slot against
|
|
95
|
+
* {@link MAX_MERGED_ADDRS_PER_PEER}. Revisit only on a MEASURED case where a peer's genuine
|
|
96
|
+
* circuit address reaches a third party by no other route.
|
|
97
|
+
*/
|
|
98
|
+
export declare function publishableConnectionAddr(conn: DirectionalConnection, log: AddressLog): string | undefined;
|
|
99
|
+
/**
|
|
100
|
+
* Join the two sources of a third-party-publishable address set: the publishable half of our live
|
|
101
|
+
* connections, then the peer's own advertised addresses. De-duplicated, **connection-first**.
|
|
102
|
+
*
|
|
103
|
+
* The ordering is not cosmetic. An address that reaches `connectionAddrs` is one we OUTBOUND-dialed,
|
|
104
|
+
* so libp2p has just succeeded with it; an advertised address is one we have never tried. So the
|
|
105
|
+
* proven one goes first, and the recipient — which caps what it merges at
|
|
106
|
+
* {@link MAX_MERGED_ADDRS_PER_PEER} — keeps the proven ones when it truncates.
|
|
107
|
+
*
|
|
108
|
+
* `connectionAddrs` are already validated by {@link publishableConnectionAddr}; the advertised half
|
|
109
|
+
* arrives from a peerStore or a record and is put through {@link validMultiaddrStrings} here, so the
|
|
110
|
+
* union is uniformly carriable regardless of which side an address came from.
|
|
111
|
+
*
|
|
112
|
+
* Split out from {@link publishableAddrsForPeer} for the one caller that has already read the
|
|
113
|
+
* peerStore for other reasons (`findCluster`'s membership-scoped path reads protocols and addresses
|
|
114
|
+
* in a single `store.get` per member) and must not pay a second read to reuse the rule.
|
|
115
|
+
*/
|
|
116
|
+
export declare function unionPublishableAddrs(connectionAddrs: string[], advertisedAddrs: string[], log: AddressLog): string[];
|
|
117
|
+
/**
|
|
118
|
+
* Every address we may hand a **third** party for `peerId`.
|
|
119
|
+
*
|
|
120
|
+
* The single answer to that question: `findCluster` (via {@link unionPublishableAddrs}) and all
|
|
121
|
+
* three redirect-address resolvers — `RepoService.getPeerAddrs`, `ClusterService.getPeerAddrs`, and
|
|
122
|
+
* the `getConnectionAddrs` the node wires into the cluster service — go through this one rule.
|
|
123
|
+
* They used to answer it two different ways, and the connections-only half was the weaker one: a
|
|
124
|
+
* cohort member that only ever dialed US and is reachable only through a relay has its real circuit
|
|
125
|
+
* address in exactly one place — the peerStore, where `identify`/`identifyPush` put it — so a
|
|
126
|
+
* redirect built from connections alone described it as having no address at all.
|
|
127
|
+
*
|
|
128
|
+
* A peerStore read that fails or finds nothing yields the connection-derived half rather than
|
|
129
|
+
* throwing: a redirect carrying half the answer is strictly better than a redirect that errors.
|
|
130
|
+
*/
|
|
131
|
+
export declare function publishableAddrsForPeer(host: PeerAddressBookHost, connections: DirectionalConnection[], peerId: PeerId, log: AddressLog): Promise<string[]>;
|
|
132
|
+
/**
|
|
133
|
+
* How useful the addresses we hold for a peer are **to this node's own dialer**.
|
|
134
|
+
*
|
|
135
|
+
* - `none` — we hold no address at all. Nobody has told us how to reach the peer.
|
|
136
|
+
* - `self-relay-only` — we hold addresses, but every one of them reaches the peer by relaying
|
|
137
|
+
* through *us*. Useful to everyone except us: to use one we would have to relay to the peer
|
|
138
|
+
* through ourselves.
|
|
139
|
+
* - `dialable` — at least one address does not route through us, so a dial can be attempted.
|
|
140
|
+
*/
|
|
141
|
+
export type SelfDialability = 'none' | 'self-relay-only' | 'dialable';
|
|
142
|
+
/**
|
|
143
|
+
* Does `addr` reach its target by relaying through `relayPeerId`?
|
|
144
|
+
*
|
|
145
|
+
* A circuit multiaddr names its relay in the `p2p` component immediately BEFORE the
|
|
146
|
+
* `p2p-circuit` marker — `/<transport>/p2p/<relay>/p2p-circuit[/p2p/<target>]`. So the question is
|
|
147
|
+
* answered by walking the address's components, not by testing the string for `/p2p/<id>/p2p-circuit`:
|
|
148
|
+
* the peer id after the marker (appended by libp2p's dial queue), a bare `/p2p-circuit` with no
|
|
149
|
+
* relay named, and multi-hop addresses with two circuit markers all read differently as text but
|
|
150
|
+
* classify correctly as components. True if ANY hop relays through `relayPeerId` — a chain that
|
|
151
|
+
* passes through us at any point is one we cannot open ourselves.
|
|
152
|
+
*
|
|
153
|
+
* Called with our own peer id, this is the "can WE dial this?" question. It is deliberately NOT
|
|
154
|
+
* the same question as {@link publishableConnectionAddr}'s: a self-relay address is perfectly
|
|
155
|
+
* publishable — a cohort sibling reaching a peer through our relay is the working path — and is
|
|
156
|
+
* simply unusable by the one node the circuit terminates on.
|
|
157
|
+
*/
|
|
158
|
+
export declare function routesThroughRelay(addr: string, relayPeerId: string, log: AddressLog): boolean;
|
|
159
|
+
/**
|
|
160
|
+
* Classify what the addresses we hold for one peer are worth to our own dialer.
|
|
161
|
+
*
|
|
162
|
+
* `self-relay-only` is the state a relay lands in for its own reservation holders: the address
|
|
163
|
+
* such a client advertises — and therefore the one we learn through `identifyPush` and store — is
|
|
164
|
+
* `/<our transport addr>/p2p/<our peer id>/p2p-circuit`. Dialing it is guaranteed to fail, and the
|
|
165
|
+
* failure is indistinguishable from `none` in libp2p's error text, so the two are separated here
|
|
166
|
+
* instead. Nothing can repair it from our side: once the client's connection drops only the client
|
|
167
|
+
* can re-initiate, so the useful response is to fail fast and let the caller move on.
|
|
168
|
+
*/
|
|
169
|
+
export declare function classifySelfDialability(addrs: string[], selfPeerId: string, log: AddressLog): SelfDialability;
|
|
43
170
|
/**
|
|
44
171
|
* Write dialable addresses for `peerId` into the libp2p address book, from addresses
|
|
45
172
|
* carried by an application-level message.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-address-book.d.ts","sourceRoot":"","sources":["../../src/peer-address-book.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,
|
|
1
|
+
{"version":3,"file":"peer-address-book.d.ts","sourceRoot":"","sources":["../../src/peer-address-book.ts"],"names":[],"mappings":"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"}
|