From d1c46b4df0e83b50246ab7b08f8e19782d90b732 Mon Sep 17 00:00:00 2001 From: Xiaoyu Chen Date: Mon, 22 Aug 2022 11:52:23 -0700 Subject: [PATCH 001/254] first commit --- sei-tendermint/.clang-format | 11 + sei-tendermint/.dockerignore | 5 + sei-tendermint/.editorconfig | 16 + sei-tendermint/.gitignore | 57 + sei-tendermint/.golangci.yml | 59 + sei-tendermint/.goreleaser.yml | 36 + sei-tendermint/.markdownlint.yml | 11 + sei-tendermint/.markdownlintignore | 6 + sei-tendermint/.md-link-check.json | 6 + sei-tendermint/CHANGELOG.md | 4028 +++ sei-tendermint/CHANGELOG_PENDING.md | 96 + sei-tendermint/CODE_OF_CONDUCT.md | 59 + sei-tendermint/CONTRIBUTING.md | 343 + sei-tendermint/DOCKER/Dockerfile | 55 + sei-tendermint/DOCKER/README.md | 56 + sei-tendermint/DOCKER/docker-entrypoint.sh | 23 + sei-tendermint/LICENSE | 204 + sei-tendermint/Makefile | 350 + sei-tendermint/README.md | 147 + sei-tendermint/RELEASES.md | 207 + sei-tendermint/SECURITY.md | 158 + sei-tendermint/STYLE_GUIDE.md | 162 + sei-tendermint/UPGRADING.md | 1162 + sei-tendermint/abci/README.md | 36 + sei-tendermint/abci/client/client.go | 71 + sei-tendermint/abci/client/doc.go | 20 + sei-tendermint/abci/client/grpc_client.go | 185 + sei-tendermint/abci/client/local_client.go | 40 + sei-tendermint/abci/client/mocks/client.go | 436 + sei-tendermint/abci/client/socket_client.go | 415 + sei-tendermint/abci/cmd/abci-cli/abci-cli.go | 701 + sei-tendermint/abci/cmd/abci-cli/main.go | 14 + sei-tendermint/abci/example/code/code.go | 10 + sei-tendermint/abci/example/example.go | 3 + sei-tendermint/abci/example/example_test.go | 145 + sei-tendermint/abci/example/kvstore/README.md | 30 + .../abci/example/kvstore/helpers.go | 41 + .../abci/example/kvstore/kvstore.go | 467 + .../abci/example/kvstore/kvstore_test.go | 392 + .../example/kvstore/persistent_kvstore.go | 46 + sei-tendermint/abci/server/grpc_server.go | 83 + sei-tendermint/abci/server/server.go | 31 + sei-tendermint/abci/server/socket_server.go | 317 + sei-tendermint/abci/tests/benchmarks/blank.go | 1 + .../tests/benchmarks/parallel/parallel.go | 55 + .../abci/tests/benchmarks/simple/simple.go | 69 + .../abci/tests/client_server_test.go | 40 + sei-tendermint/abci/tests/server/client.go | 90 + sei-tendermint/abci/tests/test_cli/ex1.abci | 9 + .../abci/tests/test_cli/ex1.abci.out | 50 + sei-tendermint/abci/tests/test_cli/ex2.abci | 10 + .../abci/tests/test_cli/ex2.abci.out | 38 + sei-tendermint/abci/tests/test_cli/test.sh | 42 + sei-tendermint/abci/tests/tests.go | 1 + sei-tendermint/abci/types/application.go | 121 + sei-tendermint/abci/types/client.go | 1 + sei-tendermint/abci/types/messages.go | 228 + sei-tendermint/abci/types/messages_test.go | 97 + .../abci/types/mocks/application.go | 352 + sei-tendermint/abci/types/pubkey.go | 53 + sei-tendermint/abci/types/types.go | 239 + sei-tendermint/abci/types/types.pb.go | 17325 +++++++++++ sei-tendermint/abci/types/types_test.go | 74 + sei-tendermint/abci/types/util.go | 31 + sei-tendermint/buf.gen.yaml | 9 + sei-tendermint/buf.work.yaml | 3 + sei-tendermint/cmd/contract_tests/main.go | 34 + sei-tendermint/cmd/priv_val_server/main.go | 174 + .../cmd/tendermint/commands/compact.go | 71 + .../cmd/tendermint/commands/completion.go | 46 + .../cmd/tendermint/commands/debug/debug.go | 31 + .../cmd/tendermint/commands/debug/dump.go | 160 + .../cmd/tendermint/commands/debug/io.go | 114 + .../cmd/tendermint/commands/debug/kill.go | 164 + .../cmd/tendermint/commands/debug/util.go | 82 + .../cmd/tendermint/commands/gen_node_key.go | 32 + .../cmd/tendermint/commands/gen_validator.go | 41 + .../cmd/tendermint/commands/init.go | 130 + .../cmd/tendermint/commands/inspect.go | 51 + .../cmd/tendermint/commands/key_migrate.go | 76 + .../cmd/tendermint/commands/light.go | 233 + .../cmd/tendermint/commands/reindex_event.go | 284 + .../tendermint/commands/reindex_event_test.go | 200 + .../cmd/tendermint/commands/replay.go | 31 + .../cmd/tendermint/commands/reset.go | 182 + .../cmd/tendermint/commands/reset_test.go | 62 + .../cmd/tendermint/commands/rollback.go | 53 + .../cmd/tendermint/commands/rollback_test.go | 79 + .../cmd/tendermint/commands/root.go | 69 + .../cmd/tendermint/commands/root_test.go | 190 + .../cmd/tendermint/commands/run_node.go | 155 + .../cmd/tendermint/commands/show_node_id.go | 26 + .../cmd/tendermint/commands/show_validator.go | 83 + .../cmd/tendermint/commands/testnet.go | 335 + .../cmd/tendermint/commands/version.go | 18 + sei-tendermint/cmd/tendermint/main.go | 66 + sei-tendermint/config/config.go | 1232 + sei-tendermint/config/config_test.go | 166 + sei-tendermint/config/db.go | 29 + sei-tendermint/config/toml.go | 675 + sei-tendermint/config/toml_test.go | 83 + sei-tendermint/crypto/CHANGELOG.md | 154 + sei-tendermint/crypto/README.md | 30 + sei-tendermint/crypto/batch/batch.go | 33 + sei-tendermint/crypto/crypto.go | 76 + sei-tendermint/crypto/doc.go | 42 + sei-tendermint/crypto/ed25519/bench_test.go | 68 + sei-tendermint/crypto/ed25519/ed25519.go | 233 + sei-tendermint/crypto/ed25519/ed25519_test.go | 55 + sei-tendermint/crypto/encoding/codec.go | 78 + .../crypto/internal/benchmarking/bench.go | 92 + sei-tendermint/crypto/merkle/README.md | 4 + sei-tendermint/crypto/merkle/doc.go | 31 + sei-tendermint/crypto/merkle/hash.go | 48 + sei-tendermint/crypto/merkle/proof.go | 239 + .../crypto/merkle/proof_key_path.go | 110 + .../crypto/merkle/proof_key_path_test.go | 44 + sei-tendermint/crypto/merkle/proof_op.go | 139 + sei-tendermint/crypto/merkle/proof_test.go | 200 + sei-tendermint/crypto/merkle/proof_value.go | 102 + sei-tendermint/crypto/merkle/rfc6962_test.go | 105 + sei-tendermint/crypto/merkle/tree.go | 112 + sei-tendermint/crypto/merkle/tree_test.go | 160 + sei-tendermint/crypto/merkle/types.go | 39 + sei-tendermint/crypto/random.go | 15 + sei-tendermint/crypto/random_test.go | 23 + sei-tendermint/crypto/secp256k1/secp256k1.go | 247 + .../secp256k1/secp256k1_internal_test.go | 74 + .../crypto/secp256k1/secp256k1_test.go | 114 + sei-tendermint/crypto/sr25519/batch.go | 47 + sei-tendermint/crypto/sr25519/bench_test.go | 68 + sei-tendermint/crypto/sr25519/encoding.go | 15 + sei-tendermint/crypto/sr25519/privkey.go | 169 + sei-tendermint/crypto/sr25519/pubkey.go | 70 + sei-tendermint/crypto/sr25519/sr25519_test.go | 98 + sei-tendermint/docker-compose.yml | 69 + sei-tendermint/docs/.textlintrc.json | 9 + sei-tendermint/docs/.vuepress/config.js | 171 + .../docs/.vuepress/public/logo-bw.svg | 7 + sei-tendermint/docs/.vuepress/redirects | 1 + .../docs/.vuepress/styles/index.styl | 3 + sei-tendermint/docs/DOCS_README.md | 105 + sei-tendermint/docs/README.md | 33 + sei-tendermint/docs/app-dev/abci-cli.md | 233 + .../docs/app-dev/app-architecture.md | 60 + .../docs/app-dev/getting-started.md | 202 + .../docs/app-dev/indexing-transactions.md | 181 + sei-tendermint/docs/app-dev/readme.md | 6 + sei-tendermint/docs/architecture/README.md | 120 + .../docs/architecture/adr-001-logging.md | 216 + .../adr-002-event-subscription.md | 88 + .../docs/architecture/adr-003-abci-app-rpc.md | 34 + .../adr-004-historical-validators.md | 38 + .../architecture/adr-005-consensus-params.md | 85 + .../docs/architecture/adr-006-trust-metric.md | 229 + .../adr-007-trust-metric-usage.md | 106 + .../architecture/adr-008-priv-validator.md | 35 + .../docs/architecture/adr-009-ABCI-design.md | 271 + .../architecture/adr-010-crypto-changes.md | 77 + .../docs/architecture/adr-011-monitoring.md | 116 + .../architecture/adr-012-peer-transport.md | 113 + .../architecture/adr-013-symmetric-crypto.md | 99 + .../architecture/adr-014-secp-malleability.md | 63 + .../architecture/adr-015-crypto-encoding.md | 84 + .../architecture/adr-016-protocol-versions.md | 308 + .../architecture/adr-017-chain-versions.md | 99 + .../architecture/adr-018-ABCI-Validators.md | 100 + .../docs/architecture/adr-019-multisigs.md | 162 + .../docs/architecture/adr-020-block-size.md | 104 + .../docs/architecture/adr-021-abci-events.md | 52 + .../docs/architecture/adr-022-abci-errors.md | 63 + .../architecture/adr-023-ABCI-propose-tx.md | 183 + .../docs/architecture/adr-024-sign-bytes.md | 234 + .../docs/architecture/adr-025-commit.md | 150 + .../adr-026-general-merkle-proof.md | 49 + .../adr-029-check-tx-consensus.md | 127 + .../adr-030-consensus-refactor.md | 458 + .../docs/architecture/adr-033-pubsub.md | 247 + .../adr-034-priv-validator-file-structure.md | 72 + .../architecture/adr-035-documentation.md | 40 + .../architecture/adr-036-empty-blocks-abci.md | 38 + .../architecture/adr-037-deliver-block.md | 100 + .../adr-038-non-zero-start-height.md | 38 + .../architecture/adr-039-peer-behaviour.md | 159 + .../adr-040-blockchain-reactor-refactor.md | 534 + .../adr-041-proposer-selection-via-abci.md | 29 + .../docs/architecture/adr-042-state-sync.md | 235 + .../adr-043-blockchain-riri-org.md | 404 + ...-044-lite-client-with-weak-subjectivity.md | 141 + .../architecture/adr-045-abci-evidence.md | 140 + .../adr-046-light-client-implementation.md | 169 + ...047-handling-evidence-from-light-client.md | 254 + .../adr-050-improved-trusted-peering.md | 58 + .../adr-051-double-signing-risk-reduction.md | 53 + .../architecture/adr-052-tendermint-mode.md | 85 + .../adr-053-state-sync-prototype.md | 254 + .../architecture/adr-054-crypto-encoding-2.md | 71 + .../architecture/adr-055-protobuf-design.md | 61 + .../adr-056-light-client-amnesia-attacks.md | 170 + .../docs/architecture/adr-057-RPC.md | 90 + .../architecture/adr-058-event-hashing.md | 122 + ...-059-evidence-composition-and-lifecycle.md | 306 + .../architecture/adr-060-go-api-stability.md | 193 + .../adr-061-p2p-refactor-scope.md | 109 + .../architecture/adr-062-p2p-architecture.md | 615 + .../docs/architecture/adr-063-privval-grpc.md | 109 + .../adr-064-batch-verification.md | 90 + .../adr-065-custom-event-indexing.md | 425 + .../docs/architecture/adr-066-e2e-testing.md | 140 + .../architecture/adr-067-mempool-refactor.md | 303 + .../docs/architecture/adr-068-reverse-sync.md | 97 + .../adr-069-flexible-node-initialization.md | 268 + .../adr-071-proposer-based-timestamps.md | 333 + .../adr-072-request-for-comments.md | 105 + .../docs/architecture/adr-073-libp2p.md | 235 + .../architecture/adr-074-timeout-params.md | 203 + .../architecture/adr-075-rpc-subscription.md | 684 + .../architecture/adr-076-combine-spec-repo.md | 112 + .../architecture/adr-077-block-retention.md | 109 + .../architecture/adr-078-nonzero-genesis.md | 82 + .../adr-079-ed25519-verification.md | 57 + .../docs/architecture/adr-080-reverse-sync.md | 203 + .../architecture/adr-081-protobuf-mgmt.md | 201 + .../docs/architecture/adr-template.md | 101 + .../docs/architecture/img/adr-046-fig1.png | Bin 0 -> 13276 bytes .../architecture/img/adr-062-architecture.svg | 1 + .../architecture/img/adr-075-log-after.png | Bin 0 -> 22864 bytes .../architecture/img/adr-075-log-before.png | Bin 0 -> 15057 bytes .../architecture/img/bc-reactor-refactor.png | Bin 0 -> 8105 bytes .../docs/architecture/img/bc-reactor.png | Bin 0 -> 44211 bytes .../docs/architecture/img/block-retention.png | Bin 0 -> 53718 bytes .../img/blockchain-reactor-v1.png | Bin 0 -> 124042 bytes .../img/blockchain-reactor-v2.png | Bin 0 -> 171024 bytes .../img/blockchain-v2-channels.png | Bin 0 -> 109340 bytes .../architecture/img/consensus_blockchain.png | Bin 0 -> 687838 bytes .../docs/architecture/img/formula1.png | Bin 0 -> 9833 bytes .../docs/architecture/img/formula2.png | Bin 0 -> 5942 bytes .../docs/architecture/img/mempool-v0.jpeg | Bin 0 -> 94476 bytes .../docs/architecture/img/pbts-message.png | Bin 0 -> 32028 bytes .../docs/architecture/img/state-sync.png | Bin 0 -> 101084 bytes .../docs/architecture/img/tags1.png | Bin 0 -> 10446 bytes sei-tendermint/docs/imgs/abci.png | Bin 0 -> 44405 bytes .../docs/imgs/bifurcation-point.png | Bin 0 -> 41104 bytes sei-tendermint/docs/imgs/consensus_logic.png | Bin 0 -> 105454 bytes sei-tendermint/docs/imgs/contributing.png | Bin 0 -> 31745 bytes .../docs/imgs/cosmos-tendermint-stack-4k.jpg | Bin 0 -> 640210 bytes .../docs/imgs/evidence_lifecycle.png | Bin 0 -> 62565 bytes .../docs/imgs/light-client-detector.png | Bin 0 -> 37398 bytes .../docs/imgs/light_client_bisection_alg.png | Bin 0 -> 50560 bytes sei-tendermint/docs/imgs/tcp-window.png | Bin 0 -> 64976 bytes .../docs/imgs/tm-amnesia-attack.png | Bin 0 -> 16912 bytes .../docs/imgs/tm-application-example.png | Bin 0 -> 26691 bytes .../docs/imgs/tm-transaction-flow.png | Bin 0 -> 2488459 bytes sei-tendermint/docs/imgs/tmint-logo-blue.png | Bin 0 -> 53596 bytes sei-tendermint/docs/introduction/README.md | 20 + .../docs/introduction/architecture.md | 135 + sei-tendermint/docs/introduction/install.md | 128 + .../docs/introduction/quick-start.md | 128 + .../docs/introduction/what-is-tendermint.md | 328 + sei-tendermint/docs/nodes/README.md | 48 + sei-tendermint/docs/nodes/configuration.md | 618 + sei-tendermint/docs/nodes/light-client.md | 39 + sei-tendermint/docs/nodes/local_config.png | Bin 0 -> 43143 bytes sei-tendermint/docs/nodes/logging.md | 164 + sei-tendermint/docs/nodes/metrics.md | 88 + sei-tendermint/docs/nodes/remote-signer.md | 70 + .../docs/nodes/running-in-production.md | 368 + sei-tendermint/docs/nodes/sentry_layout.png | Bin 0 -> 44471 bytes sei-tendermint/docs/nodes/state-sync.md | 42 + sei-tendermint/docs/nodes/validators.md | 117 + sei-tendermint/docs/package-lock.json | 25488 ++++++++++++++++ sei-tendermint/docs/package.json | 23 + sei-tendermint/docs/post.sh | 4 + sei-tendermint/docs/pre.sh | 4 + sei-tendermint/docs/presubmit.sh | 39 + sei-tendermint/docs/rfc/README.md | 62 + sei-tendermint/docs/rfc/images/abci++.png | Bin 0 -> 2792638 bytes sei-tendermint/docs/rfc/images/abci.png | Bin 0 -> 2644284 bytes .../docs/rfc/images/node-dependency-tree.svg | 3 + .../docs/rfc/rfc-000-p2p-roadmap.rst | 316 + .../docs/rfc/rfc-001-storage-engine.rst | 179 + .../docs/rfc/rfc-002-ipc-ecosystem.md | 420 + .../docs/rfc/rfc-003-performance-questions.md | 283 + .../docs/rfc/rfc-004-e2e-framework.rst | 213 + .../docs/rfc/rfc-005-event-system.rst | 122 + .../docs/rfc/rfc-006-event-subscription.md | 204 + .../rfc/rfc-007-deterministic-proto-bytes.md | 140 + .../docs/rfc/rfc-008-do-not-panic.md | 139 + .../rfc-009-consensus-parameter-upgrades.md | 128 + .../docs/rfc/rfc-010-p2p-light-client.rst | 145 + sei-tendermint/docs/rfc/rfc-011-delete-gas.md | 162 + .../docs/rfc/rfc-012-custom-indexing.md | 352 + sei-tendermint/docs/rfc/rfc-013-abci++.md | 253 + .../docs/rfc/rfc-014-semantic-versioning.md | 94 + .../docs/rfc/rfc-015-abci++-tx-mutation.md | 261 + .../docs/rfc/rfc-016-node-architecture.md | 83 + .../rfc-017-abci++-vote-extension-propag.md | 571 + .../docs/rfc/rfc-018-bls-agg-exploration.md | 555 + .../docs/rfc/rfc-019-config-version.md | 400 + .../docs/rfc/rfc-020-onboarding-projects.rst | 240 + sei-tendermint/docs/rfc/rfc-template.md | 35 + sei-tendermint/docs/roadmap/README.md | 6 + sei-tendermint/docs/roadmap/roadmap.md | 99 + sei-tendermint/docs/security/README.md | 4 + .../docs/security/vulnerability-names.md | 70 + sei-tendermint/docs/stop-words.txt | 6 + sei-tendermint/docs/tendermint-core-image.jpg | Bin 0 -> 125536 bytes sei-tendermint/docs/tendermint-core/README.md | 24 + .../docs/tendermint-core/block-structure.md | 16 + .../docs/tendermint-core/block-sync/README.md | 71 + .../block-sync/img/bc-reactor-routines.png | Bin 0 -> 271695 bytes .../block-sync/img/bc-reactor.png | Bin 0 -> 44211 bytes .../block-sync/implementation.md | 47 + .../tendermint-core/block-sync/reactor.md | 278 + .../docs/tendermint-core/configuration.md | 7 + .../docs/tendermint-core/consensus/README.md | 42 + .../consensus/proposer-based-timestamps.md | 96 + .../docs/tendermint-core/consensus/reactor.md | 370 + .../docs/tendermint-core/evidence/README.md | 13 + .../docs/tendermint-core/how-to-read-logs.md | 7 + .../docs/tendermint-core/light-client.md | 54 + .../docs/tendermint-core/mempool/README.md | 71 + .../docs/tendermint-core/mempool/config.md | 90 + .../docs/tendermint-core/metrics.md | 7 + .../docs/tendermint-core/pex/README.md | 177 + sei-tendermint/docs/tendermint-core/rpc.md | 27 + .../tendermint-core/running-in-production.md | 7 + .../docs/tendermint-core/state-sync/README.md | 85 + .../docs/tendermint-core/subscription.md | 229 + .../docs/tendermint-core/using-tendermint.md | 585 + .../docs/tendermint-core/validators.md | 7 + sei-tendermint/docs/tools/README.md | 36 + sei-tendermint/docs/tools/debugging/README.md | 91 + sei-tendermint/docs/tools/debugging/pro.md | 106 + .../proposer-based-timestamps-runbook.md | 216 + sei-tendermint/docs/tools/docker-compose.md | 184 + .../docs/tools/terraform-and-ansible.md | 177 + sei-tendermint/docs/tutorials/go-built-in.md | 684 + sei-tendermint/docs/tutorials/go.md | 568 + sei-tendermint/docs/tutorials/readme.md | 7 + sei-tendermint/docs/versions | 4 + sei-tendermint/dredd.yml | 33 + sei-tendermint/go.mod | 245 + sei-tendermint/go.sum | 1880 ++ sei-tendermint/internal/blocksync/doc.go | 31 + sei-tendermint/internal/blocksync/msgs.go | 12 + sei-tendermint/internal/blocksync/pool.go | 705 + .../internal/blocksync/pool_test.go | 237 + sei-tendermint/internal/blocksync/reactor.go | 720 + .../internal/blocksync/reactor_test.go | 479 + .../internal/consensus/byzantine_test.go | 301 + .../internal/consensus/common_test.go | 1003 + .../internal/consensus/invalid_test.go | 175 + .../internal/consensus/mempool_test.go | 358 + .../internal/consensus/metrics.gen.go | 248 + sei-tendermint/internal/consensus/metrics.go | 204 + .../consensus/mocks/cons_sync_reactor.go | 43 + .../consensus/mocks/fast_sync_reactor.go | 72 + sei-tendermint/internal/consensus/msgs.go | 706 + .../internal/consensus/msgs_test.go | 736 + .../internal/consensus/pbts_test.go | 501 + .../internal/consensus/peer_state.go | 537 + .../internal/consensus/peer_state_test.go | 101 + sei-tendermint/internal/consensus/reactor.go | 1453 + .../internal/consensus/reactor_test.go | 1010 + sei-tendermint/internal/consensus/replay.go | 573 + .../internal/consensus/replay_file.go | 359 + .../internal/consensus/replay_stubs.go | 89 + .../internal/consensus/replay_test.go | 1292 + sei-tendermint/internal/consensus/state.go | 2834 ++ .../internal/consensus/state_test.go | 3134 ++ sei-tendermint/internal/consensus/ticker.go | 135 + .../consensus/types/height_vote_set.go | 286 + .../consensus/types/height_vote_set_test.go | 94 + .../consensus/types/peer_round_state.go | 93 + .../consensus/types/peer_round_state_test.go | 30 + .../internal/consensus/types/round_state.go | 225 + sei-tendermint/internal/consensus/wal.go | 436 + sei-tendermint/internal/consensus/wal_fuzz.go | 32 + .../internal/consensus/wal_generator.go | 224 + sei-tendermint/internal/consensus/wal_test.go | 210 + sei-tendermint/internal/eventbus/event_bus.go | 196 + .../internal/eventbus/event_bus_test.go | 553 + .../internal/eventlog/cursor/cursor.go | 100 + .../internal/eventlog/cursor/cursor_test.go | 141 + sei-tendermint/internal/eventlog/eventlog.go | 217 + .../internal/eventlog/eventlog_test.go | 222 + sei-tendermint/internal/eventlog/item.go | 78 + .../internal/eventlog/metrics.gen.go | 30 + sei-tendermint/internal/eventlog/metrics.go | 14 + sei-tendermint/internal/eventlog/prune.go | 111 + sei-tendermint/internal/evidence/doc.go | 53 + .../internal/evidence/metrics.gen.go | 30 + sei-tendermint/internal/evidence/metrics.go | 20 + .../internal/evidence/mocks/block_store.go | 74 + sei-tendermint/internal/evidence/pool.go | 673 + sei-tendermint/internal/evidence/pool_test.go | 633 + sei-tendermint/internal/evidence/reactor.go | 320 + .../internal/evidence/reactor_test.go | 582 + sei-tendermint/internal/evidence/services.go | 13 + sei-tendermint/internal/evidence/verify.go | 268 + .../internal/evidence/verify_test.go | 654 + sei-tendermint/internal/inspect/doc.go | 36 + sei-tendermint/internal/inspect/inspect.go | 141 + .../internal/inspect/inspect_test.go | 600 + sei-tendermint/internal/inspect/rpc/rpc.go | 133 + .../internal/jsontypes/jsontypes.go | 121 + .../internal/jsontypes/jsontypes_test.go | 188 + sei-tendermint/internal/libs/async/async.go | 184 + .../internal/libs/async/async_test.go | 160 + .../internal/libs/autofile/README.md | 1 + .../internal/libs/autofile/autofile.go | 218 + .../internal/libs/autofile/autofile_test.go | 146 + .../internal/libs/autofile/cmd/logjack.go | 118 + .../internal/libs/autofile/group.go | 557 + .../internal/libs/autofile/group_test.go | 321 + .../internal/libs/clist/bench_test.go | 46 + sei-tendermint/internal/libs/clist/clist.go | 324 + .../libs/clist/clist_property_test.go | 72 + .../internal/libs/clist/clist_test.go | 364 + .../internal/libs/flowrate/flowrate.go | 289 + sei-tendermint/internal/libs/flowrate/util.go | 58 + .../internal/libs/progressbar/progressbar.go | 41 + .../libs/progressbar/progressbar_test.go | 41 + sei-tendermint/internal/libs/protoio/io.go | 99 + .../internal/libs/protoio/io_test.go | 183 + .../internal/libs/protoio/reader.go | 106 + .../internal/libs/protoio/writer.go | 134 + .../internal/libs/protoio/writer_test.go | 89 + sei-tendermint/internal/libs/queue/queue.go | 232 + .../internal/libs/queue/queue_test.go | 194 + sei-tendermint/internal/libs/sync/waker.go | 30 + .../internal/libs/sync/waker_test.go | 47 + .../internal/libs/tempfile/tempfile.go | 128 + .../internal/libs/tempfile/tempfile_test.go | 144 + sei-tendermint/internal/libs/test/mutate.go | 29 + .../internal/libs/timer/throttle_timer.go | 68 + .../libs/timer/throttle_timer_test.go | 81 + sei-tendermint/internal/mempool/cache.go | 107 + .../internal/mempool/cache_bench_test.go | 41 + sei-tendermint/internal/mempool/cache_test.go | 35 + sei-tendermint/internal/mempool/ids.go | 83 + sei-tendermint/internal/mempool/ids_test.go | 89 + sei-tendermint/internal/mempool/mempool.go | 845 + .../internal/mempool/mempool_bench_test.go | 50 + .../internal/mempool/mempool_test.go | 638 + .../internal/mempool/metrics.gen.go | 67 + sei-tendermint/internal/mempool/metrics.go | 43 + .../internal/mempool/mocks/mempool.go | 187 + .../internal/mempool/priority_queue.go | 158 + .../internal/mempool/priority_queue_test.go | 176 + sei-tendermint/internal/mempool/reactor.go | 347 + .../internal/mempool/reactor_test.go | 421 + sei-tendermint/internal/mempool/tx.go | 293 + sei-tendermint/internal/mempool/tx_test.go | 231 + sei-tendermint/internal/mempool/types.go | 147 + sei-tendermint/internal/p2p/README.md | 11 + sei-tendermint/internal/p2p/address.go | 176 + sei-tendermint/internal/p2p/address_test.go | 388 + sei-tendermint/internal/p2p/channel.go | 205 + sei-tendermint/internal/p2p/channel_test.go | 221 + .../internal/p2p/conn/connection.go | 785 + .../internal/p2p/conn/connection_test.go | 680 + .../p2p/conn/evil_secret_connection_test.go | 271 + .../internal/p2p/conn/secret_connection.go | 464 + .../p2p/conn/secret_connection_test.go | 471 + ...TestDeriveSecretsAndChallengeGolden.golden | 32 + sei-tendermint/internal/p2p/conn_tracker.go | 76 + .../internal/p2p/conn_tracker_test.go | 84 + sei-tendermint/internal/p2p/errors.go | 177 + sei-tendermint/internal/p2p/metrics.gen.go | 86 + sei-tendermint/internal/p2p/metrics.go | 97 + sei-tendermint/internal/p2p/metrics_test.go | 20 + .../internal/p2p/mocks/connection.go | 167 + .../internal/p2p/mocks/transport.go | 165 + sei-tendermint/internal/p2p/p2p_test.go | 42 + .../internal/p2p/p2ptest/network.go | 355 + .../internal/p2p/p2ptest/require.go | 171 + sei-tendermint/internal/p2p/p2ptest/util.go | 19 + sei-tendermint/internal/p2p/peermanager.go | 1373 + .../internal/p2p/peermanager_scoring_test.go | 99 + .../internal/p2p/peermanager_test.go | 1870 ++ sei-tendermint/internal/p2p/pex/doc.go | 29 + sei-tendermint/internal/p2p/pex/reactor.go | 407 + .../internal/p2p/pex/reactor_test.go | 734 + sei-tendermint/internal/p2p/pqueue.go | 287 + sei-tendermint/internal/p2p/pqueue_test.go | 47 + sei-tendermint/internal/p2p/queue.go | 53 + sei-tendermint/internal/p2p/router.go | 1012 + .../internal/p2p/router_filter_test.go | 34 + .../internal/p2p/router_init_test.go | 66 + sei-tendermint/internal/p2p/router_test.go | 958 + sei-tendermint/internal/p2p/transport.go | 190 + .../internal/p2p/transport_mconn.go | 490 + .../internal/p2p/transport_mconn_test.go | 230 + .../internal/p2p/transport_memory.go | 349 + .../internal/p2p/transport_memory_test.go | 36 + sei-tendermint/internal/p2p/transport_test.go | 664 + sei-tendermint/internal/p2p/types.go | 8 + sei-tendermint/internal/proxy/client.go | 214 + sei-tendermint/internal/proxy/client_test.go | 235 + sei-tendermint/internal/proxy/metrics.gen.go | 32 + sei-tendermint/internal/proxy/metrics.go | 19 + .../proxy/mocks/app_conn_consensus.go | 191 + .../internal/proxy/mocks/app_conn_mempool.go | 67 + .../internal/proxy/mocks/app_conn_query.go | 99 + .../internal/proxy/mocks/app_conn_snapshot.go | 122 + sei-tendermint/internal/proxy/version.go | 16 + .../internal/pubsub/example_test.go | 34 + sei-tendermint/internal/pubsub/pubsub.go | 421 + sei-tendermint/internal/pubsub/pubsub_test.go | 482 + .../internal/pubsub/query/bench_test.go | 55 + sei-tendermint/internal/pubsub/query/query.go | 322 + .../internal/pubsub/query/query_test.go | 265 + .../internal/pubsub/query/syntax/doc.go | 34 + .../internal/pubsub/query/syntax/parser.go | 213 + .../internal/pubsub/query/syntax/scanner.go | 312 + .../pubsub/query/syntax/syntax_test.go | 190 + sei-tendermint/internal/pubsub/subindex.go | 117 + .../internal/pubsub/subscription.go | 90 + .../internal/rpc/core/CONTRIBUTING.md | 4 + sei-tendermint/internal/rpc/core/README.md | 18 + sei-tendermint/internal/rpc/core/abci.go | 36 + sei-tendermint/internal/rpc/core/blocks.go | 272 + .../internal/rpc/core/blocks_test.go | 119 + sei-tendermint/internal/rpc/core/consensus.go | 121 + sei-tendermint/internal/rpc/core/dev.go | 13 + sei-tendermint/internal/rpc/core/doc.go | 45 + .../internal/rpc/core/doc_template.txt | 8 + sei-tendermint/internal/rpc/core/env.go | 354 + sei-tendermint/internal/rpc/core/env_test.go | 90 + sei-tendermint/internal/rpc/core/events.go | 270 + sei-tendermint/internal/rpc/core/evidence.go | 23 + sei-tendermint/internal/rpc/core/health.go | 14 + sei-tendermint/internal/rpc/core/mempool.go | 192 + sei-tendermint/internal/rpc/core/net.go | 67 + sei-tendermint/internal/rpc/core/routes.go | 125 + sei-tendermint/internal/rpc/core/status.go | 137 + sei-tendermint/internal/rpc/core/tx.go | 132 + sei-tendermint/internal/state/errors.go | 107 + sei-tendermint/internal/state/execution.go | 743 + .../internal/state/execution_test.go | 1147 + sei-tendermint/internal/state/export_test.go | 12 + sei-tendermint/internal/state/helpers_test.go | 324 + .../internal/state/indexer/block/kv/kv.go | 485 + .../state/indexer/block/kv/kv_test.go | 136 + .../internal/state/indexer/block/kv/util.go | 97 + .../internal/state/indexer/block/null/null.go | 27 + sei-tendermint/internal/state/indexer/doc.go | 72 + .../internal/state/indexer/eventsink.go | 56 + .../internal/state/indexer/indexer.go | 66 + .../internal/state/indexer/indexer_service.go | 171 + .../state/indexer/indexer_service_test.go | 197 + .../internal/state/indexer/metrics.gen.go | 51 + .../internal/state/indexer/metrics.go | 25 + .../state/indexer/mocks/event_sink.go | 182 + .../internal/state/indexer/query_range.go | 137 + .../internal/state/indexer/sink/kv/kv.go | 64 + .../internal/state/indexer/sink/kv/kv_test.go | 348 + .../internal/state/indexer/sink/null/null.go | 51 + .../state/indexer/sink/null/null_test.go | 43 + .../internal/state/indexer/sink/psql/psql.go | 257 + .../state/indexer/sink/psql/psql_test.go | 332 + .../state/indexer/sink/psql/schema.sql | 85 + .../internal/state/indexer/sink/sink.go | 63 + .../internal/state/indexer/tx/kv/kv.go | 588 + .../state/indexer/tx/kv/kv_bench_test.go | 70 + .../internal/state/indexer/tx/kv/kv_test.go | 376 + .../internal/state/indexer/tx/kv/utils.go | 11 + .../state/indexer/tx/kv/utils_test.go | 14 + .../internal/state/indexer/tx/null/null.go | 34 + sei-tendermint/internal/state/metrics.gen.go | 46 + sei-tendermint/internal/state/metrics.go | 29 + .../internal/state/mocks/block_store.go | 246 + .../internal/state/mocks/event_sink.go | 168 + .../internal/state/mocks/evidence_pool.go | 88 + sei-tendermint/internal/state/mocks/store.go | 204 + sei-tendermint/internal/state/rollback.go | 109 + .../internal/state/rollback_test.go | 148 + sei-tendermint/internal/state/services.go | 68 + sei-tendermint/internal/state/state.go | 354 + sei-tendermint/internal/state/state_test.go | 1171 + sei-tendermint/internal/state/store.go | 694 + sei-tendermint/internal/state/store_test.go | 298 + .../internal/state/test/factory/block.go | 89 + sei-tendermint/internal/state/tx_filter.go | 85 + .../internal/state/tx_filter_test.go | 41 + sei-tendermint/internal/state/validation.go | 138 + .../internal/state/validation_test.go | 393 + .../internal/statesync/block_queue.go | 265 + .../internal/statesync/block_queue_test.go | 303 + sei-tendermint/internal/statesync/chunks.go | 369 + .../internal/statesync/chunks_test.go | 561 + .../internal/statesync/dispatcher.go | 318 + .../internal/statesync/dispatcher_test.go | 325 + .../internal/statesync/metrics.gen.go | 72 + sei-tendermint/internal/statesync/metrics.go | 30 + .../internal/statesync/mocks/Metricer.go | 112 + .../statesync/mocks/state_provider.go | 99 + sei-tendermint/internal/statesync/reactor.go | 1180 + .../internal/statesync/reactor_test.go | 968 + .../internal/statesync/snapshots.go | 289 + .../internal/statesync/snapshots_test.go | 301 + .../internal/statesync/stateprovider.go | 463 + sei-tendermint/internal/statesync/syncer.go | 554 + .../internal/statesync/syncer_test.go | 783 + sei-tendermint/internal/store/store.go | 743 + sei-tendermint/internal/store/store_test.go | 652 + sei-tendermint/internal/test/factory/block.go | 91 + .../internal/test/factory/commit.go | 41 + sei-tendermint/internal/test/factory/doc.go | 6 + .../internal/test/factory/factory_test.go | 15 + .../internal/test/factory/genesis.go | 33 + sei-tendermint/internal/test/factory/p2p.go | 32 + .../internal/test/factory/params.go | 23 + sei-tendermint/internal/test/factory/tx.go | 11 + .../internal/test/factory/validator.go | 41 + sei-tendermint/internal/test/factory/vote.go | 45 + sei-tendermint/libs/CHANGELOG.md | 438 + sei-tendermint/libs/bits/bit_array.go | 486 + sei-tendermint/libs/bits/bit_array_test.go | 318 + sei-tendermint/libs/bytes/bytes.go | 71 + sei-tendermint/libs/bytes/bytes_test.go | 74 + sei-tendermint/libs/bytes/byteslice.go | 10 + sei-tendermint/libs/cli/helper.go | 60 + sei-tendermint/libs/cli/setup.go | 92 + sei-tendermint/libs/cli/setup_test.go | 293 + sei-tendermint/libs/events/events.go | 114 + sei-tendermint/libs/events/events_test.go | 374 + sei-tendermint/libs/log/default.go | 114 + sei-tendermint/libs/log/default_test.go | 46 + sei-tendermint/libs/log/logger.go | 57 + sei-tendermint/libs/log/nop.go | 11 + sei-tendermint/libs/log/testing.go | 51 + sei-tendermint/libs/math/fraction.go | 48 + sei-tendermint/libs/math/fraction_test.go | 86 + sei-tendermint/libs/math/math.go | 31 + sei-tendermint/libs/math/safemath.go | 60 + sei-tendermint/libs/net/net.go | 43 + sei-tendermint/libs/net/net_test.go | 43 + sei-tendermint/libs/os/os.go | 50 + sei-tendermint/libs/os/os_test.go | 109 + sei-tendermint/libs/rand/random.go | 51 + sei-tendermint/libs/rand/random_test.go | 45 + sei-tendermint/libs/service/service.go | 200 + sei-tendermint/libs/service/service_test.go | 137 + sei-tendermint/libs/strings/string.go | 62 + sei-tendermint/libs/strings/string_test.go | 89 + sei-tendermint/libs/time/mocks/source.go | 43 + sei-tendermint/libs/time/time.go | 31 + sei-tendermint/light/client.go | 1175 + sei-tendermint/light/client_benchmark_test.go | 176 + sei-tendermint/light/client_test.go | 1161 + sei-tendermint/light/detector.go | 421 + sei-tendermint/light/detector_test.go | 569 + sei-tendermint/light/doc.go | 124 + sei-tendermint/light/errors.go | 106 + sei-tendermint/light/example_test.go | 105 + sei-tendermint/light/helpers_test.go | 230 + sei-tendermint/light/light_test.go | 236 + sei-tendermint/light/mbt/doc.go | 20 + sei-tendermint/light/mbt/driver_test.go | 122 + ...4_4_faulty_Test2NotEnoughTrustFailure.json | 305 + ...4_4_faulty_Test2NotEnoughTrustSuccess.json | 462 + ...4_4_faulty_Test3NotEnoughTrustFailure.json | 538 + ...4_4_faulty_Test3NotEnoughTrustSuccess.json | 662 + .../mbt/json/MC4_4_faulty_TestFailure.json | 347 + .../MC4_4_faulty_TestHeaderFromFuture.json | 162 + .../mbt/json/MC4_4_faulty_TestSuccess.json | 479 + ...4_4_faulty_TestUntrustedBeforeTrusted.json | 170 + ..._4_faulty_TestValsetDifferentAllSteps.json | 371 + sei-tendermint/light/provider/errors.go | 47 + sei-tendermint/light/provider/http/http.go | 340 + .../light/provider/http/http_test.go | 109 + .../light/provider/mocks/provider.go | 82 + sei-tendermint/light/provider/provider.go | 32 + sei-tendermint/light/proxy/proxy.go | 125 + sei-tendermint/light/proxy/routes.go | 153 + sei-tendermint/light/rpc/client.go | 729 + .../light/rpc/mocks/light_client.go | 132 + sei-tendermint/light/setup.go | 51 + sei-tendermint/light/store/db/db.go | 330 + sei-tendermint/light/store/db/db_test.go | 221 + sei-tendermint/light/store/errors.go | 9 + sei-tendermint/light/store/store.go | 48 + sei-tendermint/light/trust_options.go | 53 + sei-tendermint/light/verifier.go | 290 + sei-tendermint/light/verifier_test.go | 336 + sei-tendermint/networks/local/Makefile | 7 + sei-tendermint/networks/local/README.md | 3 + .../networks/local/localnode/Dockerfile | 15 + .../local/localnode/config-template.toml | 6 + .../networks/local/localnode/wrapper.sh | 35 + sei-tendermint/networks/remote/README.md | 3 + .../networks/remote/ansible/.gitignore | 1 + .../networks/remote/ansible/ansible.cfg | 4 + .../networks/remote/ansible/config.yml | 15 + .../networks/remote/ansible/install.yml | 9 + .../networks/remote/ansible/inventory/COPYING | 675 + .../ansible/inventory/digital_ocean.ini | 34 + .../remote/ansible/inventory/digital_ocean.py | 541 + .../networks/remote/ansible/logzio.yml | 11 + .../networks/remote/ansible/reset.yml | 11 + .../networks/remote/ansible/restart.yml | 10 + .../ansible/roles/config/tasks/main.yml | 15 + .../ansible/roles/install/handlers/main.yml | 3 + .../ansible/roles/install/tasks/main.yml | 13 + .../install/templates/systemd.service.j2 | 17 + .../roles/logzio/files/journalbeat.service | 15 + .../ansible/roles/logzio/handlers/main.yml | 6 + .../ansible/roles/logzio/tasks/main.yml | 25 + .../roles/logzio/templates/journalbeat.yml.j2 | 342 + .../remote/ansible/roles/start/tasks/main.yml | 3 + .../ansible/roles/status/tasks/main.yml | 8 + .../remote/ansible/roles/stop/tasks/main.yml | 3 + .../ansible/roles/unsafe_reset/tasks/main.yml | 3 + .../networks/remote/ansible/start.yml | 9 + .../networks/remote/ansible/status.yml | 9 + .../networks/remote/ansible/stop.yml | 9 + sei-tendermint/networks/remote/integration.sh | 141 + .../networks/remote/terraform/.gitignore | 4 + .../networks/remote/terraform/cluster/main.tf | 37 + .../remote/terraform/cluster/outputs.tf | 15 + .../remote/terraform/cluster/variables.tf | 25 + .../networks/remote/terraform/main.tf | 46 + sei-tendermint/node/doc.go | 6 + sei-tendermint/node/node.go | 753 + sei-tendermint/node/node_test.go | 781 + sei-tendermint/node/public.go | 75 + sei-tendermint/node/seed.go | 162 + sei-tendermint/node/setup.go | 505 + sei-tendermint/privval/doc.go | 29 + sei-tendermint/privval/errors.go | 35 + sei-tendermint/privval/file.go | 501 + sei-tendermint/privval/file_test.go | 373 + sei-tendermint/privval/grpc/client.go | 101 + sei-tendermint/privval/grpc/client_test.go | 172 + sei-tendermint/privval/grpc/server.go | 83 + sei-tendermint/privval/grpc/server_test.go | 199 + sei-tendermint/privval/grpc/util.go | 122 + sei-tendermint/privval/msgs.go | 40 + sei-tendermint/privval/msgs_test.go | 97 + sei-tendermint/privval/retry_signer_client.go | 104 + sei-tendermint/privval/secret_connection.go | 477 + sei-tendermint/privval/signer_client.go | 145 + sei-tendermint/privval/signer_client_test.go | 447 + .../privval/signer_dialer_endpoint.go | 112 + sei-tendermint/privval/signer_endpoint.go | 161 + .../privval/signer_listener_endpoint.go | 220 + .../privval/signer_listener_endpoint_test.go | 223 + .../privval/signer_requestHandler.go | 96 + sei-tendermint/privval/signer_server.go | 106 + sei-tendermint/privval/socket_dialers.go | 42 + sei-tendermint/privval/socket_dialers_test.go | 58 + sei-tendermint/privval/socket_listeners.go | 189 + .../privval/socket_listeners_test.go | 139 + sei-tendermint/privval/utils.go | 52 + sei-tendermint/privval/utils_test.go | 14 + sei-tendermint/proto/README.md | 21 + sei-tendermint/proto/buf.lock | 7 + sei-tendermint/proto/buf.yaml | 11 + .../proto/tendermint/abci/types.proto | 491 + .../proto/tendermint/blocksync/message.go | 107 + .../tendermint/blocksync/message_test.go | 130 + .../proto/tendermint/blocksync/types.pb.go | 1582 + .../proto/tendermint/blocksync/types.proto | 43 + .../proto/tendermint/consensus/message.go | 80 + .../tendermint/consensus/message_test.go | 32 + .../proto/tendermint/consensus/types.pb.go | 3428 +++ .../proto/tendermint/consensus/types.proto | 99 + .../proto/tendermint/consensus/wal.pb.go | 1540 + .../proto/tendermint/consensus/wal.proto | 46 + .../proto/tendermint/crypto/crypto.go | 7 + .../proto/tendermint/crypto/keys.pb.go | 788 + .../proto/tendermint/crypto/keys.proto | 18 + .../proto/tendermint/crypto/proof.pb.go | 1421 + .../proto/tendermint/crypto/proof.proto | 41 + .../proto/tendermint/libs/bits/types.pb.go | 408 + .../proto/tendermint/libs/bits/types.proto | 9 + .../proto/tendermint/mempool/message.go | 32 + .../proto/tendermint/mempool/types.pb.go | 556 + .../proto/tendermint/mempool/types.proto | 14 + .../proto/tendermint/p2p/conn.pb.go | 1269 + .../proto/tendermint/p2p/conn.proto | 30 + sei-tendermint/proto/tendermint/p2p/pex.go | 33 + sei-tendermint/proto/tendermint/p2p/pex.pb.go | 942 + sei-tendermint/proto/tendermint/p2p/pex.proto | 26 + .../proto/tendermint/p2p/types.pb.go | 1767 ++ .../proto/tendermint/p2p/types.proto | 44 + .../proto/tendermint/privval/service.pb.go | 199 + .../proto/tendermint/privval/service.proto | 14 + .../proto/tendermint/privval/types.pb.go | 3031 ++ .../proto/tendermint/privval/types.proto | 84 + .../proto/tendermint/state/types.pb.go | 1647 + .../proto/tendermint/state/types.proto | 65 + .../proto/tendermint/statesync/message.go | 137 + .../tendermint/statesync/message_test.go | 231 + .../proto/tendermint/statesync/types.pb.go | 2660 ++ .../proto/tendermint/statesync/types.proto | 63 + .../proto/tendermint/types/block.pb.go | 490 + .../proto/tendermint/types/block.proto | 15 + .../proto/tendermint/types/canonical.pb.go | 1659 + .../proto/tendermint/types/canonical.proto | 46 + .../proto/tendermint/types/events.pb.go | 386 + .../proto/tendermint/types/events.proto | 10 + .../proto/tendermint/types/evidence.pb.go | 1396 + .../proto/tendermint/types/evidence.proto | 42 + .../proto/tendermint/types/params.pb.go | 2945 ++ .../proto/tendermint/types/params.proto | 148 + .../proto/tendermint/types/types.pb.go | 5416 ++++ .../proto/tendermint/types/types.proto | 203 + .../proto/tendermint/types/validator.pb.go | 944 + .../proto/tendermint/types/validator.proto | 25 + .../proto/tendermint/version/types.pb.go | 366 + .../proto/tendermint/version/types.proto | 16 + sei-tendermint/rpc/client/event_test.go | 72 + .../rpc/client/eventstream/eventstream.go | 193 + .../client/eventstream/eventstream_test.go | 274 + sei-tendermint/rpc/client/evidence_test.go | 124 + sei-tendermint/rpc/client/examples_test.go | 154 + sei-tendermint/rpc/client/helpers.go | 77 + sei-tendermint/rpc/client/helpers_test.go | 83 + sei-tendermint/rpc/client/http/http.go | 486 + sei-tendermint/rpc/client/http/ws.go | 214 + sei-tendermint/rpc/client/interface.go | 184 + sei-tendermint/rpc/client/local/local.go | 325 + sei-tendermint/rpc/client/main_test.go | 37 + sei-tendermint/rpc/client/mock/abci.go | 277 + sei-tendermint/rpc/client/mock/abci_test.go | 204 + sei-tendermint/rpc/client/mock/client.go | 168 + sei-tendermint/rpc/client/mock/status.go | 54 + sei-tendermint/rpc/client/mock/status_test.go | 75 + sei-tendermint/rpc/client/mocks/client.go | 835 + sei-tendermint/rpc/client/rpc_test.go | 912 + sei-tendermint/rpc/client/types.go | 11 + sei-tendermint/rpc/coretypes/requests.go | 188 + sei-tendermint/rpc/coretypes/responses.go | 394 + .../rpc/coretypes/responses_test.go | 93 + sei-tendermint/rpc/jsonrpc/client/decode.go | 70 + .../rpc/jsonrpc/client/http_json_client.go | 403 + .../jsonrpc/client/http_json_client_test.go | 114 + .../rpc/jsonrpc/client/integration_test.go | 61 + .../rpc/jsonrpc/client/ws_client.go | 465 + .../rpc/jsonrpc/client/ws_client_test.go | 248 + sei-tendermint/rpc/jsonrpc/doc.go | 85 + sei-tendermint/rpc/jsonrpc/jsonrpc_test.go | 371 + .../rpc/jsonrpc/server/http_json_handler.go | 168 + .../jsonrpc/server/http_json_handler_test.go | 266 + .../rpc/jsonrpc/server/http_server.go | 294 + .../rpc/jsonrpc/server/http_server_test.go | 172 + .../rpc/jsonrpc/server/http_uri_handler.go | 105 + .../rpc/jsonrpc/server/parse_test.go | 328 + sei-tendermint/rpc/jsonrpc/server/rpc_func.go | 267 + sei-tendermint/rpc/jsonrpc/server/test.crt | 25 + sei-tendermint/rpc/jsonrpc/server/test.key | 27 + .../rpc/jsonrpc/server/ws_handler.go | 402 + .../rpc/jsonrpc/server/ws_handler_test.go | 65 + sei-tendermint/rpc/jsonrpc/test/data.json | 9 + .../rpc/jsonrpc/test/integration_test.sh | 95 + sei-tendermint/rpc/jsonrpc/test/main.go | 49 + sei-tendermint/rpc/jsonrpc/types/types.go | 314 + .../rpc/jsonrpc/types/types_test.go | 73 + sei-tendermint/rpc/openapi/index.html | 27 + sei-tendermint/rpc/openapi/openapi.yaml | 3358 ++ sei-tendermint/rpc/test/helpers.go | 130 + sei-tendermint/scripts/README.md | 1 + sei-tendermint/scripts/authors.sh | 16 + sei-tendermint/scripts/build.sh | 40 + .../scripts/confix/condiff/condiff.go | 152 + sei-tendermint/scripts/confix/confix.go | 164 + sei-tendermint/scripts/confix/confix_test.go | 99 + sei-tendermint/scripts/confix/plan.go | 237 + .../scripts/confix/testdata/README.md | 52 + .../scripts/confix/testdata/baseline.txt | 73 + .../scripts/confix/testdata/diff-26-27.txt | 0 .../scripts/confix/testdata/diff-27-28.txt | 3 + .../scripts/confix/testdata/diff-28-29.txt | 0 .../scripts/confix/testdata/diff-29-30.txt | 0 .../scripts/confix/testdata/diff-30-31.txt | 7 + .../scripts/confix/testdata/diff-31-32.txt | 5 + .../scripts/confix/testdata/diff-32-33.txt | 6 + .../scripts/confix/testdata/diff-33-34.txt | 20 + .../scripts/confix/testdata/diff-34-35.txt | 31 + .../scripts/confix/testdata/diff-35-36.txt | 28 + .../scripts/confix/testdata/non-config.toml | 6 + .../scripts/confix/testdata/v26-config.toml | 249 + .../scripts/confix/testdata/v27-config.toml | 249 + .../scripts/confix/testdata/v28-config.toml | 252 + .../scripts/confix/testdata/v29-config.toml | 252 + .../scripts/confix/testdata/v30-config.toml | 252 + .../scripts/confix/testdata/v31-config.toml | 292 + .../scripts/confix/testdata/v32-config.toml | 319 + .../scripts/confix/testdata/v33-config.toml | 335 + .../scripts/confix/testdata/v34-config.toml | 428 + .../scripts/confix/testdata/v35-config.toml | 527 + .../scripts/confix/testdata/v36-config.toml | 483 + sei-tendermint/scripts/dist.sh | 78 + sei-tendermint/scripts/estream/estream.go | 81 + sei-tendermint/scripts/get_nodejs.sh | 14 + sei-tendermint/scripts/json2wal/main.go | 69 + sei-tendermint/scripts/keymigrate/migrate.go | 461 + .../scripts/keymigrate/migrate_test.go | 242 + sei-tendermint/scripts/linkify_changelog.py | 13 + sei-tendermint/scripts/linkpatch/linkpatch.go | 205 + .../metricsgen/metricsdiff/metricsdiff.go | 197 + .../metricsdiff/metricsdiff_test.go | 62 + .../scripts/metricsgen/metricsgen.go | 347 + .../scripts/metricsgen/metricsgen_test.go | 259 + .../metricsgen/testdata/basic/metrics.gen.go | 30 + .../metricsgen/testdata/basic/metrics.go | 11 + .../testdata/commented/metrics.gen.go | 30 + .../metricsgen/testdata/commented/metrics.go | 11 + .../metricsgen/testdata/tags/metrics.gen.go | 55 + .../metricsgen/testdata/tags/metrics.go | 12 + sei-tendermint/scripts/mockery_generate.sh | 15 + sei-tendermint/scripts/proto-gen.sh | 19 + sei-tendermint/scripts/scmigrate/migrate.go | 197 + .../scripts/scmigrate/migrate_test.go | 174 + sei-tendermint/scripts/txs/random.sh | 19 + sei-tendermint/scripts/wal2json/main.go | 62 + sei-tendermint/spec/README.md | 81 + sei-tendermint/spec/abci++/README.md | 39 + .../abci++_app_requirements_002_draft.md | 1021 + .../abci++/abci++_basic_concepts_002_draft.md | 404 + .../abci++/abci++_client_server_002_draft.md | 102 + .../spec/abci++/abci++_methods_002_draft.md | 907 + ...bci++_tmint_expected_behavior_002_draft.md | 218 + sei-tendermint/spec/abci++/v0.md | 156 + sei-tendermint/spec/abci++/v1.md | 162 + sei-tendermint/spec/abci++/v2.md | 180 + sei-tendermint/spec/abci++/v3.md | 201 + sei-tendermint/spec/abci++/v4.md | 199 + sei-tendermint/spec/abci/README.md | 27 + sei-tendermint/spec/abci/abci.md | 757 + sei-tendermint/spec/abci/apps.md | 694 + sei-tendermint/spec/abci/client-server.md | 113 + sei-tendermint/spec/consensus/bft-time.md | 55 + .../consensus/consensus-paper/IEEEtran.bst | 2417 ++ .../consensus/consensus-paper/IEEEtran.cls | 4733 +++ .../spec/consensus/consensus-paper/README.md | 24 + .../consensus-paper/algorithmicplus.sty | 195 + .../consensus/consensus-paper/conclusion.tex | 16 + .../consensus/consensus-paper/consensus.tex | 397 + .../consensus/consensus-paper/definitions.tex | 126 + .../consensus/consensus-paper/homodel.sty | 32 + .../spec/consensus/consensus-paper/intro.tex | 138 + .../spec/consensus/consensus-paper/latex8.bst | 1124 + .../spec/consensus/consensus-paper/latex8.sty | 168 + .../spec/consensus/consensus-paper/lit.bib | 1659 + .../spec/consensus/consensus-paper/paper.tex | 153 + .../spec/consensus/consensus-paper/proof.tex | 280 + .../consensus/consensus-paper/rounddiag.sty | 62 + .../consensus/consensus-paper/technote.sty | 118 + sei-tendermint/spec/consensus/consensus.md | 352 + .../spec/consensus/creating-proposal.md | 43 + sei-tendermint/spec/consensus/evidence.md | 199 + .../spec/consensus/light-client/README.md | 9 + .../consensus/light-client/accountability.md | 3 + .../light-client/assets/light-node-image.png | Bin 0 -> 122270 bytes .../spec/consensus/light-client/detection.md | 3 + .../consensus/light-client/verification.md | 3 + .../proposer-based-timestamp/README.md | 157 + .../pbts-algorithm_002_draft.md | 148 + .../pbts-sysmodel_002_draft.md | 357 + .../proposer-based-timestamp/tla/Apalache.tla | 109 + .../proposer-based-timestamp/tla/MC_PBT.tla | 77 + .../tla/TendermintPBT_001_draft.tla | 597 + .../tla/TendermintPBT_002_draft.tla | 885 + .../proposer-based-timestamp/tla/typedefs.tla | 39 + .../v1/pbts-algorithm_001_draft.md | 162 + .../v1/pbts-sysmodel_001_draft.md | 194 + .../v1/pbts_001_draft.md | 267 + .../spec/consensus/proposer-selection.md | 323 + sei-tendermint/spec/consensus/readme.md | 32 + sei-tendermint/spec/consensus/signing.md | 229 + sei-tendermint/spec/consensus/wal.md | 32 + sei-tendermint/spec/core/data_structures.md | 479 + sei-tendermint/spec/core/encoding.md | 300 + sei-tendermint/spec/core/genesis.md | 35 + sei-tendermint/spec/core/readme.md | 13 + sei-tendermint/spec/core/state.md | 121 + sei-tendermint/spec/ivy-proofs/Dockerfile | 37 + sei-tendermint/spec/ivy-proofs/README.md | 33 + .../spec/ivy-proofs/abstract_tendermint.ivy | 178 + .../spec/ivy-proofs/accountable_safety_1.ivy | 143 + .../spec/ivy-proofs/accountable_safety_2.ivy | 52 + .../spec/ivy-proofs/check_proofs.sh | 39 + .../spec/ivy-proofs/classic_safety.ivy | 85 + sei-tendermint/spec/ivy-proofs/count_lines.sh | 13 + .../spec/ivy-proofs/docker-compose.yml | 7 + .../spec/ivy-proofs/domain_model.ivy | 143 + .../spec/ivy-proofs/network_shim.ivy | 133 + .../spec/ivy-proofs/output/.gitignore | 4 + sei-tendermint/spec/ivy-proofs/tendermint.ivy | 420 + .../spec/ivy-proofs/tendermint_test.ivy | 127 + sei-tendermint/spec/light-client/README.md | 206 + .../accountability/001indinv-apalache.csv | 13 + .../light-client/accountability/MC_n4_f1.tla | 46 + .../light-client/accountability/MC_n4_f2.tla | 46 + .../accountability/MC_n4_f2_amnesia.tla | 62 + .../light-client/accountability/MC_n4_f3.tla | 46 + .../light-client/accountability/MC_n5_f1.tla | 46 + .../light-client/accountability/MC_n5_f2.tla | 46 + .../light-client/accountability/MC_n6_f1.tla | 46 + .../light-client/accountability/README.md | 308 + .../light-client/accountability/Synopsis.md | 105 + .../TendermintAccDebug_004_draft.tla | 101 + .../TendermintAccInv_004_draft.tla | 376 + .../TendermintAccTrace_004_draft.tla | 37 + .../TendermintAcc_004_draft.tla | 596 + .../results/001indinv-apalache-mem-log.svg | 1063 + .../results/001indinv-apalache-mem.svg | 1141 + .../results/001indinv-apalache-ncells.svg | 1015 + .../results/001indinv-apalache-nclauses.svg | 1133 + .../results/001indinv-apalache-report.md | 61 + .../results/001indinv-apalache-time-log.svg | 1134 + .../results/001indinv-apalache-time.svg | 957 + .../results/001indinv-apalache-unstable.csv | 13 + .../spec/light-client/accountability/run.sh | 9 + .../light-client/accountability/typedefs.tla | 36 + .../light-client/assets/light-node-image.png | Bin 0 -> 122270 bytes .../attacks/Blockchain_003_draft.tla | 166 + .../attacks/Isolation_001_draft.tla | 159 + .../attacks/LCVerificationApi_003_draft.tla | 192 + .../spec/light-client/attacks/MC_5_3.tla | 18 + .../attacks/isolate-attackers_001_draft.md | 222 + .../attacks/isolate-attackers_002_reviewed.md | 225 + .../attacks/notes-on-evidence-handling.md | 219 + .../detection/004bmc-apalache-ok.csv | 10 + .../detection/005bmc-apalache-error.csv | 4 + .../detection/Blockchain_003_draft.tla | 164 + .../detection/LCD_MC3_3_faulty.tla | 27 + .../detection/LCD_MC3_4_faulty.tla | 27 + .../detection/LCD_MC4_4_faulty.tla | 27 + .../detection/LCD_MC5_5_faulty.tla | 27 + .../detection/LCDetector_003_draft.tla | 373 + .../detection/LCVerificationApi_003_draft.tla | 192 + .../spec/light-client/detection/README.md | 75 + .../detection/detection_001_reviewed.md | 790 + .../detection/detection_003_reviewed.md | 841 + .../light-client/detection/discussions.md | 178 + .../light-client/detection/draft-functions.md | 289 + .../detection/req-ibc-detection.md | 347 + .../spec/light-client/experiments.png | Bin 0 -> 83681 bytes .../supervisor/supervisor_001_draft.md | 639 + .../supervisor/supervisor_001_draft.tla | 71 + .../supervisor/supervisor_002_draft.md | 131 + .../verification/001bmc-apalache.csv | 49 + .../verification/002bmc-apalache-ok.csv | 55 + .../verification/003bmc-apalache-error.csv | 45 + .../verification/004bmc-apalache-ok.csv | 10 + .../verification/005bmc-apalache-error.csv | 4 + .../verification/Blockchain_002_draft.tla | 171 + .../verification/Blockchain_003_draft.tla | 164 + .../verification/Blockchain_A_1.tla | 171 + .../LCVerificationApi_003_draft.tla | 192 + .../verification/Lightclient_002_draft.tla | 465 + .../verification/Lightclient_003_draft.tla | 493 + .../verification/Lightclient_A_1.tla | 440 + .../verification/MC4_3_correct.tla | 26 + .../verification/MC4_3_faulty.tla | 26 + .../verification/MC4_4_correct.tla | 26 + .../verification/MC4_4_correct_drifted.tla | 26 + .../verification/MC4_4_faulty.tla | 26 + .../verification/MC4_4_faulty_drifted.tla | 26 + .../verification/MC4_5_correct.tla | 26 + .../verification/MC4_5_faulty.tla | 26 + .../verification/MC4_6_faulty.tla | 26 + .../verification/MC4_7_faulty.tla | 26 + .../verification/MC5_5_correct.tla | 26 + .../MC5_5_correct_peer_two_thirds_faulty.tla | 26 + .../verification/MC5_5_faulty.tla | 26 + .../MC5_5_faulty_peer_two_thirds_faulty.tla | 26 + .../verification/MC5_7_faulty.tla | 26 + .../verification/MC7_5_faulty.tla | 26 + .../verification/MC7_7_faulty.tla | 26 + .../spec/light-client/verification/README.md | 577 + .../verification_001_published.md | 1180 + .../verification/verification_002_draft.md | 1063 + .../verification/verification_003_draft.md | 76 + sei-tendermint/spec/p2p/config.md | 49 + sei-tendermint/spec/p2p/connection.md | 111 + sei-tendermint/spec/p2p/messages/README.md | 19 + .../spec/p2p/messages/block-sync.md | 68 + sei-tendermint/spec/p2p/messages/consensus.md | 149 + sei-tendermint/spec/p2p/messages/evidence.md | 23 + sei-tendermint/spec/p2p/messages/mempool.md | 33 + sei-tendermint/spec/p2p/messages/pex.md | 47 + .../spec/p2p/messages/state-sync.md | 134 + sei-tendermint/spec/p2p/node.md | 65 + sei-tendermint/spec/p2p/peer.md | 130 + sei-tendermint/spec/p2p/readme.md | 6 + sei-tendermint/spec/rpc/README.md | 1382 + sei-tendermint/test/Makefile | 66 + sei-tendermint/test/README.md | 20 + sei-tendermint/test/app/clean.sh | 3 + sei-tendermint/test/app/counter_test.sh | 136 + sei-tendermint/test/app/kvstore_test.sh | 84 + sei-tendermint/test/app/test.sh | 67 + sei-tendermint/test/docker/Dockerfile | 42 + sei-tendermint/test/docker/build.sh | 3 + .../test/docker/config-template.toml | 5 + sei-tendermint/test/e2e/Makefile | 18 + sei-tendermint/test/e2e/README.md | 183 + sei-tendermint/test/e2e/app/app.go | 583 + sei-tendermint/test/e2e/app/snapshots.go | 175 + sei-tendermint/test/e2e/app/state.go | 200 + sei-tendermint/test/e2e/docker/Dockerfile | 33 + sei-tendermint/test/e2e/docker/entrypoint | 10 + .../test/e2e/docker/entrypoint-builtin | 6 + sei-tendermint/test/e2e/generator/generate.go | 370 + .../test/e2e/generator/generate_test.go | 50 + sei-tendermint/test/e2e/generator/main.go | 114 + sei-tendermint/test/e2e/generator/random.go | 109 + .../test/e2e/generator/random_test.go | 59 + sei-tendermint/test/e2e/networks/ci.toml | 85 + sei-tendermint/test/e2e/networks/simple.toml | 4 + sei-tendermint/test/e2e/networks/single.toml | 1 + sei-tendermint/test/e2e/node/built-in.toml | 4 + sei-tendermint/test/e2e/node/config.go | 67 + sei-tendermint/test/e2e/node/main.go | 345 + sei-tendermint/test/e2e/node/socket.toml | 5 + sei-tendermint/test/e2e/pkg/manifest.go | 271 + sei-tendermint/test/e2e/pkg/testnet.go | 561 + sei-tendermint/test/e2e/run-multiple.sh | 49 + sei-tendermint/test/e2e/runner/benchmark.go | 234 + sei-tendermint/test/e2e/runner/cleanup.go | 70 + sei-tendermint/test/e2e/runner/evidence.go | 326 + sei-tendermint/test/e2e/runner/exec.go | 50 + sei-tendermint/test/e2e/runner/load.go | 201 + sei-tendermint/test/e2e/runner/main.go | 365 + sei-tendermint/test/e2e/runner/perturb.go | 100 + sei-tendermint/test/e2e/runner/rpc.go | 232 + sei-tendermint/test/e2e/runner/setup.go | 425 + sei-tendermint/test/e2e/runner/start.go | 136 + sei-tendermint/test/e2e/runner/test.go | 17 + sei-tendermint/test/e2e/runner/wait.go | 28 + sei-tendermint/test/e2e/tests/app_test.go | 215 + sei-tendermint/test/e2e/tests/block_test.go | 100 + sei-tendermint/test/e2e/tests/e2e_test.go | 143 + .../test/e2e/tests/evidence_test.go | 26 + sei-tendermint/test/e2e/tests/net_test.go | 43 + .../test/e2e/tests/validator_test.go | 180 + sei-tendermint/test/fuzz/README.md | 23 + sei-tendermint/test/fuzz/oss-fuzz-build.sh | 23 + .../test/fuzz/tests/mempool_test.go | 33 + .../fuzz/tests/p2p_secretconnection_test.go | 135 + .../fuzz/tests/rpc_jsonrpc_server_test.go | 72 + ...cb7440674e67a9e2cc0a4531863076254ada059863 | 2 + ...9a43e0f9fd5c94bba343ce7bb6724d4ebafe311ed4 | 2 + ...a91bcef18e6f24cf368bb4bd248c7a7101ef8e178d | 2 + ...9bad652d355431f5824327271aca6f648e8cd4e786 | 2 + ...9b235928fc1c8c4adbb4635913c204c4724cf47d20 | 2 + ...c8907cb66557347cb9b45709b17da861997d7cabea | 2 + ...b97caa73657b4a78d48e5fd6fc3b1590d24799e803 | 2 + ...c18a7ec4eb3c9e1384af92cfa14cf50951535b6c85 | 2 + ...a91bcef18e6f24cf368bb4bd248c7a7101ef8e178d | 2 + ...0b1d027f749960376c338e14a81e0396ffc6e6d6bd | 2 + ...ea46edb8b7cf7368e90da0cb35888a1452f4d114a2 | 2 + ...5b430076844ebd0b3c4f30f5263b94a3d50f00bce6 | 2 + ...e64b33c804d994cce06781e8c39481411793a8a73f | 2 + ...a91bcef18e6f24cf368bb4bd248c7a7101ef8e178d | 2 + sei-tendermint/test/test_cover.sh | 14 + sei-tendermint/tools/README.md | 5 + sei-tendermint/tools/tools.go | 14 + sei-tendermint/types/block.go | 1455 + sei-tendermint/types/block_meta.go | 78 + sei-tendermint/types/block_meta_test.go | 95 + sei-tendermint/types/block_test.go | 1469 + sei-tendermint/types/canonical.go | 86 + sei-tendermint/types/canonical_test.go | 39 + sei-tendermint/types/encoding_helper.go | 47 + sei-tendermint/types/errors.go | 41 + sei-tendermint/types/errors_p2p.go | 33 + sei-tendermint/types/events.go | 337 + sei-tendermint/types/events_test.go | 43 + sei-tendermint/types/evidence.go | 852 + sei-tendermint/types/evidence_test.go | 472 + sei-tendermint/types/genesis.go | 171 + sei-tendermint/types/genesis_test.go | 177 + sei-tendermint/types/light.go | 237 + sei-tendermint/types/light_test.go | 178 + sei-tendermint/types/mempool.go | 57 + sei-tendermint/types/node_id.go | 66 + sei-tendermint/types/node_info.go | 289 + sei-tendermint/types/node_info_test.go | 256 + sei-tendermint/types/node_key.go | 110 + sei-tendermint/types/node_key_test.go | 45 + sei-tendermint/types/params.go | 556 + sei-tendermint/types/params_test.go | 514 + sei-tendermint/types/part_set.go | 381 + sei-tendermint/types/part_set_test.go | 194 + sei-tendermint/types/priv_validator.go | 176 + sei-tendermint/types/proposal.go | 199 + sei-tendermint/types/proposal_test.go | 297 + sei-tendermint/types/protobuf.go | 62 + sei-tendermint/types/protobuf_test.go | 67 + sei-tendermint/types/signable.go | 13 + sei-tendermint/types/signed_msg_type.go | 13 + sei-tendermint/types/test_util.go | 48 + sei-tendermint/types/tx.go | 337 + sei-tendermint/types/tx_test.go | 325 + sei-tendermint/types/utils.go | 29 + sei-tendermint/types/validation.go | 359 + sei-tendermint/types/validation_test.go | 292 + sei-tendermint/types/validator.go | 211 + sei-tendermint/types/validator_set.go | 930 + sei-tendermint/types/validator_set_test.go | 1635 + sei-tendermint/types/validator_test.go | 125 + sei-tendermint/types/vote.go | 391 + sei-tendermint/types/vote_set.go | 712 + sei-tendermint/types/vote_set_test.go | 675 + sei-tendermint/types/vote_test.go | 568 + sei-tendermint/version/version.go | 40 + 1214 files changed, 314863 insertions(+) create mode 100644 sei-tendermint/.clang-format create mode 100644 sei-tendermint/.dockerignore create mode 100644 sei-tendermint/.editorconfig create mode 100644 sei-tendermint/.gitignore create mode 100644 sei-tendermint/.golangci.yml create mode 100644 sei-tendermint/.goreleaser.yml create mode 100644 sei-tendermint/.markdownlint.yml create mode 100644 sei-tendermint/.markdownlintignore create mode 100644 sei-tendermint/.md-link-check.json create mode 100644 sei-tendermint/CHANGELOG.md create mode 100644 sei-tendermint/CHANGELOG_PENDING.md create mode 100644 sei-tendermint/CODE_OF_CONDUCT.md create mode 100644 sei-tendermint/CONTRIBUTING.md create mode 100644 sei-tendermint/DOCKER/Dockerfile create mode 100644 sei-tendermint/DOCKER/README.md create mode 100755 sei-tendermint/DOCKER/docker-entrypoint.sh create mode 100644 sei-tendermint/LICENSE create mode 100644 sei-tendermint/Makefile create mode 100644 sei-tendermint/README.md create mode 100644 sei-tendermint/RELEASES.md create mode 100644 sei-tendermint/SECURITY.md create mode 100644 sei-tendermint/STYLE_GUIDE.md create mode 100644 sei-tendermint/UPGRADING.md create mode 100644 sei-tendermint/abci/README.md create mode 100644 sei-tendermint/abci/client/client.go create mode 100644 sei-tendermint/abci/client/doc.go create mode 100644 sei-tendermint/abci/client/grpc_client.go create mode 100644 sei-tendermint/abci/client/local_client.go create mode 100644 sei-tendermint/abci/client/mocks/client.go create mode 100644 sei-tendermint/abci/client/socket_client.go create mode 100644 sei-tendermint/abci/cmd/abci-cli/abci-cli.go create mode 100644 sei-tendermint/abci/cmd/abci-cli/main.go create mode 100644 sei-tendermint/abci/example/code/code.go create mode 100644 sei-tendermint/abci/example/example.go create mode 100644 sei-tendermint/abci/example/example_test.go create mode 100644 sei-tendermint/abci/example/kvstore/README.md create mode 100644 sei-tendermint/abci/example/kvstore/helpers.go create mode 100644 sei-tendermint/abci/example/kvstore/kvstore.go create mode 100644 sei-tendermint/abci/example/kvstore/kvstore_test.go create mode 100644 sei-tendermint/abci/example/kvstore/persistent_kvstore.go create mode 100644 sei-tendermint/abci/server/grpc_server.go create mode 100644 sei-tendermint/abci/server/server.go create mode 100644 sei-tendermint/abci/server/socket_server.go create mode 100644 sei-tendermint/abci/tests/benchmarks/blank.go create mode 100644 sei-tendermint/abci/tests/benchmarks/parallel/parallel.go create mode 100644 sei-tendermint/abci/tests/benchmarks/simple/simple.go create mode 100644 sei-tendermint/abci/tests/client_server_test.go create mode 100644 sei-tendermint/abci/tests/server/client.go create mode 100644 sei-tendermint/abci/tests/test_cli/ex1.abci create mode 100644 sei-tendermint/abci/tests/test_cli/ex1.abci.out create mode 100644 sei-tendermint/abci/tests/test_cli/ex2.abci create mode 100644 sei-tendermint/abci/tests/test_cli/ex2.abci.out create mode 100755 sei-tendermint/abci/tests/test_cli/test.sh create mode 100644 sei-tendermint/abci/tests/tests.go create mode 100644 sei-tendermint/abci/types/application.go create mode 100644 sei-tendermint/abci/types/client.go create mode 100644 sei-tendermint/abci/types/messages.go create mode 100644 sei-tendermint/abci/types/messages_test.go create mode 100644 sei-tendermint/abci/types/mocks/application.go create mode 100644 sei-tendermint/abci/types/pubkey.go create mode 100644 sei-tendermint/abci/types/types.go create mode 100644 sei-tendermint/abci/types/types.pb.go create mode 100644 sei-tendermint/abci/types/types_test.go create mode 100644 sei-tendermint/abci/types/util.go create mode 100644 sei-tendermint/buf.gen.yaml create mode 100644 sei-tendermint/buf.work.yaml create mode 100644 sei-tendermint/cmd/contract_tests/main.go create mode 100644 sei-tendermint/cmd/priv_val_server/main.go create mode 100644 sei-tendermint/cmd/tendermint/commands/compact.go create mode 100644 sei-tendermint/cmd/tendermint/commands/completion.go create mode 100644 sei-tendermint/cmd/tendermint/commands/debug/debug.go create mode 100644 sei-tendermint/cmd/tendermint/commands/debug/dump.go create mode 100644 sei-tendermint/cmd/tendermint/commands/debug/io.go create mode 100644 sei-tendermint/cmd/tendermint/commands/debug/kill.go create mode 100644 sei-tendermint/cmd/tendermint/commands/debug/util.go create mode 100644 sei-tendermint/cmd/tendermint/commands/gen_node_key.go create mode 100644 sei-tendermint/cmd/tendermint/commands/gen_validator.go create mode 100644 sei-tendermint/cmd/tendermint/commands/init.go create mode 100644 sei-tendermint/cmd/tendermint/commands/inspect.go create mode 100644 sei-tendermint/cmd/tendermint/commands/key_migrate.go create mode 100644 sei-tendermint/cmd/tendermint/commands/light.go create mode 100644 sei-tendermint/cmd/tendermint/commands/reindex_event.go create mode 100644 sei-tendermint/cmd/tendermint/commands/reindex_event_test.go create mode 100644 sei-tendermint/cmd/tendermint/commands/replay.go create mode 100644 sei-tendermint/cmd/tendermint/commands/reset.go create mode 100644 sei-tendermint/cmd/tendermint/commands/reset_test.go create mode 100644 sei-tendermint/cmd/tendermint/commands/rollback.go create mode 100644 sei-tendermint/cmd/tendermint/commands/rollback_test.go create mode 100644 sei-tendermint/cmd/tendermint/commands/root.go create mode 100644 sei-tendermint/cmd/tendermint/commands/root_test.go create mode 100644 sei-tendermint/cmd/tendermint/commands/run_node.go create mode 100644 sei-tendermint/cmd/tendermint/commands/show_node_id.go create mode 100644 sei-tendermint/cmd/tendermint/commands/show_validator.go create mode 100644 sei-tendermint/cmd/tendermint/commands/testnet.go create mode 100644 sei-tendermint/cmd/tendermint/commands/version.go create mode 100644 sei-tendermint/cmd/tendermint/main.go create mode 100644 sei-tendermint/config/config.go create mode 100644 sei-tendermint/config/config_test.go create mode 100644 sei-tendermint/config/db.go create mode 100644 sei-tendermint/config/toml.go create mode 100644 sei-tendermint/config/toml_test.go create mode 100644 sei-tendermint/crypto/CHANGELOG.md create mode 100644 sei-tendermint/crypto/README.md create mode 100644 sei-tendermint/crypto/batch/batch.go create mode 100644 sei-tendermint/crypto/crypto.go create mode 100644 sei-tendermint/crypto/doc.go create mode 100644 sei-tendermint/crypto/ed25519/bench_test.go create mode 100644 sei-tendermint/crypto/ed25519/ed25519.go create mode 100644 sei-tendermint/crypto/ed25519/ed25519_test.go create mode 100644 sei-tendermint/crypto/encoding/codec.go create mode 100644 sei-tendermint/crypto/internal/benchmarking/bench.go create mode 100644 sei-tendermint/crypto/merkle/README.md create mode 100644 sei-tendermint/crypto/merkle/doc.go create mode 100644 sei-tendermint/crypto/merkle/hash.go create mode 100644 sei-tendermint/crypto/merkle/proof.go create mode 100644 sei-tendermint/crypto/merkle/proof_key_path.go create mode 100644 sei-tendermint/crypto/merkle/proof_key_path_test.go create mode 100644 sei-tendermint/crypto/merkle/proof_op.go create mode 100644 sei-tendermint/crypto/merkle/proof_test.go create mode 100644 sei-tendermint/crypto/merkle/proof_value.go create mode 100644 sei-tendermint/crypto/merkle/rfc6962_test.go create mode 100644 sei-tendermint/crypto/merkle/tree.go create mode 100644 sei-tendermint/crypto/merkle/tree_test.go create mode 100644 sei-tendermint/crypto/merkle/types.go create mode 100644 sei-tendermint/crypto/random.go create mode 100644 sei-tendermint/crypto/random_test.go create mode 100644 sei-tendermint/crypto/secp256k1/secp256k1.go create mode 100644 sei-tendermint/crypto/secp256k1/secp256k1_internal_test.go create mode 100644 sei-tendermint/crypto/secp256k1/secp256k1_test.go create mode 100644 sei-tendermint/crypto/sr25519/batch.go create mode 100644 sei-tendermint/crypto/sr25519/bench_test.go create mode 100644 sei-tendermint/crypto/sr25519/encoding.go create mode 100644 sei-tendermint/crypto/sr25519/privkey.go create mode 100644 sei-tendermint/crypto/sr25519/pubkey.go create mode 100644 sei-tendermint/crypto/sr25519/sr25519_test.go create mode 100644 sei-tendermint/docker-compose.yml create mode 100644 sei-tendermint/docs/.textlintrc.json create mode 100644 sei-tendermint/docs/.vuepress/config.js create mode 100644 sei-tendermint/docs/.vuepress/public/logo-bw.svg create mode 100644 sei-tendermint/docs/.vuepress/redirects create mode 100644 sei-tendermint/docs/.vuepress/styles/index.styl create mode 100644 sei-tendermint/docs/DOCS_README.md create mode 100644 sei-tendermint/docs/README.md create mode 100644 sei-tendermint/docs/app-dev/abci-cli.md create mode 100644 sei-tendermint/docs/app-dev/app-architecture.md create mode 100644 sei-tendermint/docs/app-dev/getting-started.md create mode 100644 sei-tendermint/docs/app-dev/indexing-transactions.md create mode 100644 sei-tendermint/docs/app-dev/readme.md create mode 100644 sei-tendermint/docs/architecture/README.md create mode 100644 sei-tendermint/docs/architecture/adr-001-logging.md create mode 100644 sei-tendermint/docs/architecture/adr-002-event-subscription.md create mode 100644 sei-tendermint/docs/architecture/adr-003-abci-app-rpc.md create mode 100644 sei-tendermint/docs/architecture/adr-004-historical-validators.md create mode 100644 sei-tendermint/docs/architecture/adr-005-consensus-params.md create mode 100644 sei-tendermint/docs/architecture/adr-006-trust-metric.md create mode 100644 sei-tendermint/docs/architecture/adr-007-trust-metric-usage.md create mode 100644 sei-tendermint/docs/architecture/adr-008-priv-validator.md create mode 100644 sei-tendermint/docs/architecture/adr-009-ABCI-design.md create mode 100644 sei-tendermint/docs/architecture/adr-010-crypto-changes.md create mode 100644 sei-tendermint/docs/architecture/adr-011-monitoring.md create mode 100644 sei-tendermint/docs/architecture/adr-012-peer-transport.md create mode 100644 sei-tendermint/docs/architecture/adr-013-symmetric-crypto.md create mode 100644 sei-tendermint/docs/architecture/adr-014-secp-malleability.md create mode 100644 sei-tendermint/docs/architecture/adr-015-crypto-encoding.md create mode 100644 sei-tendermint/docs/architecture/adr-016-protocol-versions.md create mode 100644 sei-tendermint/docs/architecture/adr-017-chain-versions.md create mode 100644 sei-tendermint/docs/architecture/adr-018-ABCI-Validators.md create mode 100644 sei-tendermint/docs/architecture/adr-019-multisigs.md create mode 100644 sei-tendermint/docs/architecture/adr-020-block-size.md create mode 100644 sei-tendermint/docs/architecture/adr-021-abci-events.md create mode 100644 sei-tendermint/docs/architecture/adr-022-abci-errors.md create mode 100644 sei-tendermint/docs/architecture/adr-023-ABCI-propose-tx.md create mode 100644 sei-tendermint/docs/architecture/adr-024-sign-bytes.md create mode 100644 sei-tendermint/docs/architecture/adr-025-commit.md create mode 100644 sei-tendermint/docs/architecture/adr-026-general-merkle-proof.md create mode 100644 sei-tendermint/docs/architecture/adr-029-check-tx-consensus.md create mode 100644 sei-tendermint/docs/architecture/adr-030-consensus-refactor.md create mode 100644 sei-tendermint/docs/architecture/adr-033-pubsub.md create mode 100644 sei-tendermint/docs/architecture/adr-034-priv-validator-file-structure.md create mode 100644 sei-tendermint/docs/architecture/adr-035-documentation.md create mode 100644 sei-tendermint/docs/architecture/adr-036-empty-blocks-abci.md create mode 100644 sei-tendermint/docs/architecture/adr-037-deliver-block.md create mode 100644 sei-tendermint/docs/architecture/adr-038-non-zero-start-height.md create mode 100644 sei-tendermint/docs/architecture/adr-039-peer-behaviour.md create mode 100644 sei-tendermint/docs/architecture/adr-040-blockchain-reactor-refactor.md create mode 100644 sei-tendermint/docs/architecture/adr-041-proposer-selection-via-abci.md create mode 100644 sei-tendermint/docs/architecture/adr-042-state-sync.md create mode 100644 sei-tendermint/docs/architecture/adr-043-blockchain-riri-org.md create mode 100644 sei-tendermint/docs/architecture/adr-044-lite-client-with-weak-subjectivity.md create mode 100644 sei-tendermint/docs/architecture/adr-045-abci-evidence.md create mode 100644 sei-tendermint/docs/architecture/adr-046-light-client-implementation.md create mode 100644 sei-tendermint/docs/architecture/adr-047-handling-evidence-from-light-client.md create mode 100644 sei-tendermint/docs/architecture/adr-050-improved-trusted-peering.md create mode 100644 sei-tendermint/docs/architecture/adr-051-double-signing-risk-reduction.md create mode 100644 sei-tendermint/docs/architecture/adr-052-tendermint-mode.md create mode 100644 sei-tendermint/docs/architecture/adr-053-state-sync-prototype.md create mode 100644 sei-tendermint/docs/architecture/adr-054-crypto-encoding-2.md create mode 100644 sei-tendermint/docs/architecture/adr-055-protobuf-design.md create mode 100644 sei-tendermint/docs/architecture/adr-056-light-client-amnesia-attacks.md create mode 100644 sei-tendermint/docs/architecture/adr-057-RPC.md create mode 100644 sei-tendermint/docs/architecture/adr-058-event-hashing.md create mode 100644 sei-tendermint/docs/architecture/adr-059-evidence-composition-and-lifecycle.md create mode 100644 sei-tendermint/docs/architecture/adr-060-go-api-stability.md create mode 100644 sei-tendermint/docs/architecture/adr-061-p2p-refactor-scope.md create mode 100644 sei-tendermint/docs/architecture/adr-062-p2p-architecture.md create mode 100644 sei-tendermint/docs/architecture/adr-063-privval-grpc.md create mode 100644 sei-tendermint/docs/architecture/adr-064-batch-verification.md create mode 100644 sei-tendermint/docs/architecture/adr-065-custom-event-indexing.md create mode 100644 sei-tendermint/docs/architecture/adr-066-e2e-testing.md create mode 100644 sei-tendermint/docs/architecture/adr-067-mempool-refactor.md create mode 100644 sei-tendermint/docs/architecture/adr-068-reverse-sync.md create mode 100644 sei-tendermint/docs/architecture/adr-069-flexible-node-initialization.md create mode 100644 sei-tendermint/docs/architecture/adr-071-proposer-based-timestamps.md create mode 100644 sei-tendermint/docs/architecture/adr-072-request-for-comments.md create mode 100644 sei-tendermint/docs/architecture/adr-073-libp2p.md create mode 100644 sei-tendermint/docs/architecture/adr-074-timeout-params.md create mode 100644 sei-tendermint/docs/architecture/adr-075-rpc-subscription.md create mode 100644 sei-tendermint/docs/architecture/adr-076-combine-spec-repo.md create mode 100644 sei-tendermint/docs/architecture/adr-077-block-retention.md create mode 100644 sei-tendermint/docs/architecture/adr-078-nonzero-genesis.md create mode 100644 sei-tendermint/docs/architecture/adr-079-ed25519-verification.md create mode 100644 sei-tendermint/docs/architecture/adr-080-reverse-sync.md create mode 100644 sei-tendermint/docs/architecture/adr-081-protobuf-mgmt.md create mode 100644 sei-tendermint/docs/architecture/adr-template.md create mode 100644 sei-tendermint/docs/architecture/img/adr-046-fig1.png create mode 100644 sei-tendermint/docs/architecture/img/adr-062-architecture.svg create mode 100644 sei-tendermint/docs/architecture/img/adr-075-log-after.png create mode 100644 sei-tendermint/docs/architecture/img/adr-075-log-before.png create mode 100644 sei-tendermint/docs/architecture/img/bc-reactor-refactor.png create mode 100644 sei-tendermint/docs/architecture/img/bc-reactor.png create mode 100644 sei-tendermint/docs/architecture/img/block-retention.png create mode 100644 sei-tendermint/docs/architecture/img/blockchain-reactor-v1.png create mode 100644 sei-tendermint/docs/architecture/img/blockchain-reactor-v2.png create mode 100644 sei-tendermint/docs/architecture/img/blockchain-v2-channels.png create mode 100644 sei-tendermint/docs/architecture/img/consensus_blockchain.png create mode 100644 sei-tendermint/docs/architecture/img/formula1.png create mode 100644 sei-tendermint/docs/architecture/img/formula2.png create mode 100644 sei-tendermint/docs/architecture/img/mempool-v0.jpeg create mode 100644 sei-tendermint/docs/architecture/img/pbts-message.png create mode 100644 sei-tendermint/docs/architecture/img/state-sync.png create mode 100644 sei-tendermint/docs/architecture/img/tags1.png create mode 100644 sei-tendermint/docs/imgs/abci.png create mode 100644 sei-tendermint/docs/imgs/bifurcation-point.png create mode 100644 sei-tendermint/docs/imgs/consensus_logic.png create mode 100644 sei-tendermint/docs/imgs/contributing.png create mode 100644 sei-tendermint/docs/imgs/cosmos-tendermint-stack-4k.jpg create mode 100644 sei-tendermint/docs/imgs/evidence_lifecycle.png create mode 100644 sei-tendermint/docs/imgs/light-client-detector.png create mode 100644 sei-tendermint/docs/imgs/light_client_bisection_alg.png create mode 100644 sei-tendermint/docs/imgs/tcp-window.png create mode 100644 sei-tendermint/docs/imgs/tm-amnesia-attack.png create mode 100644 sei-tendermint/docs/imgs/tm-application-example.png create mode 100644 sei-tendermint/docs/imgs/tm-transaction-flow.png create mode 100644 sei-tendermint/docs/imgs/tmint-logo-blue.png create mode 100644 sei-tendermint/docs/introduction/README.md create mode 100644 sei-tendermint/docs/introduction/architecture.md create mode 100644 sei-tendermint/docs/introduction/install.md create mode 100644 sei-tendermint/docs/introduction/quick-start.md create mode 100644 sei-tendermint/docs/introduction/what-is-tendermint.md create mode 100644 sei-tendermint/docs/nodes/README.md create mode 100644 sei-tendermint/docs/nodes/configuration.md create mode 100644 sei-tendermint/docs/nodes/light-client.md create mode 100644 sei-tendermint/docs/nodes/local_config.png create mode 100644 sei-tendermint/docs/nodes/logging.md create mode 100644 sei-tendermint/docs/nodes/metrics.md create mode 100644 sei-tendermint/docs/nodes/remote-signer.md create mode 100644 sei-tendermint/docs/nodes/running-in-production.md create mode 100644 sei-tendermint/docs/nodes/sentry_layout.png create mode 100644 sei-tendermint/docs/nodes/state-sync.md create mode 100644 sei-tendermint/docs/nodes/validators.md create mode 100644 sei-tendermint/docs/package-lock.json create mode 100644 sei-tendermint/docs/package.json create mode 100755 sei-tendermint/docs/post.sh create mode 100755 sei-tendermint/docs/pre.sh create mode 100755 sei-tendermint/docs/presubmit.sh create mode 100644 sei-tendermint/docs/rfc/README.md create mode 100644 sei-tendermint/docs/rfc/images/abci++.png create mode 100644 sei-tendermint/docs/rfc/images/abci.png create mode 100644 sei-tendermint/docs/rfc/images/node-dependency-tree.svg create mode 100644 sei-tendermint/docs/rfc/rfc-000-p2p-roadmap.rst create mode 100644 sei-tendermint/docs/rfc/rfc-001-storage-engine.rst create mode 100644 sei-tendermint/docs/rfc/rfc-002-ipc-ecosystem.md create mode 100644 sei-tendermint/docs/rfc/rfc-003-performance-questions.md create mode 100644 sei-tendermint/docs/rfc/rfc-004-e2e-framework.rst create mode 100644 sei-tendermint/docs/rfc/rfc-005-event-system.rst create mode 100644 sei-tendermint/docs/rfc/rfc-006-event-subscription.md create mode 100644 sei-tendermint/docs/rfc/rfc-007-deterministic-proto-bytes.md create mode 100644 sei-tendermint/docs/rfc/rfc-008-do-not-panic.md create mode 100644 sei-tendermint/docs/rfc/rfc-009-consensus-parameter-upgrades.md create mode 100644 sei-tendermint/docs/rfc/rfc-010-p2p-light-client.rst create mode 100644 sei-tendermint/docs/rfc/rfc-011-delete-gas.md create mode 100644 sei-tendermint/docs/rfc/rfc-012-custom-indexing.md create mode 100644 sei-tendermint/docs/rfc/rfc-013-abci++.md create mode 100644 sei-tendermint/docs/rfc/rfc-014-semantic-versioning.md create mode 100644 sei-tendermint/docs/rfc/rfc-015-abci++-tx-mutation.md create mode 100644 sei-tendermint/docs/rfc/rfc-016-node-architecture.md create mode 100644 sei-tendermint/docs/rfc/rfc-017-abci++-vote-extension-propag.md create mode 100644 sei-tendermint/docs/rfc/rfc-018-bls-agg-exploration.md create mode 100644 sei-tendermint/docs/rfc/rfc-019-config-version.md create mode 100644 sei-tendermint/docs/rfc/rfc-020-onboarding-projects.rst create mode 100644 sei-tendermint/docs/rfc/rfc-template.md create mode 100644 sei-tendermint/docs/roadmap/README.md create mode 100644 sei-tendermint/docs/roadmap/roadmap.md create mode 100644 sei-tendermint/docs/security/README.md create mode 100644 sei-tendermint/docs/security/vulnerability-names.md create mode 100644 sei-tendermint/docs/stop-words.txt create mode 100755 sei-tendermint/docs/tendermint-core-image.jpg create mode 100644 sei-tendermint/docs/tendermint-core/README.md create mode 100644 sei-tendermint/docs/tendermint-core/block-structure.md create mode 100644 sei-tendermint/docs/tendermint-core/block-sync/README.md create mode 100644 sei-tendermint/docs/tendermint-core/block-sync/img/bc-reactor-routines.png create mode 100644 sei-tendermint/docs/tendermint-core/block-sync/img/bc-reactor.png create mode 100644 sei-tendermint/docs/tendermint-core/block-sync/implementation.md create mode 100644 sei-tendermint/docs/tendermint-core/block-sync/reactor.md create mode 100644 sei-tendermint/docs/tendermint-core/configuration.md create mode 100644 sei-tendermint/docs/tendermint-core/consensus/README.md create mode 100644 sei-tendermint/docs/tendermint-core/consensus/proposer-based-timestamps.md create mode 100644 sei-tendermint/docs/tendermint-core/consensus/reactor.md create mode 100644 sei-tendermint/docs/tendermint-core/evidence/README.md create mode 100644 sei-tendermint/docs/tendermint-core/how-to-read-logs.md create mode 100644 sei-tendermint/docs/tendermint-core/light-client.md create mode 100644 sei-tendermint/docs/tendermint-core/mempool/README.md create mode 100644 sei-tendermint/docs/tendermint-core/mempool/config.md create mode 100644 sei-tendermint/docs/tendermint-core/metrics.md create mode 100644 sei-tendermint/docs/tendermint-core/pex/README.md create mode 100644 sei-tendermint/docs/tendermint-core/rpc.md create mode 100644 sei-tendermint/docs/tendermint-core/running-in-production.md create mode 100644 sei-tendermint/docs/tendermint-core/state-sync/README.md create mode 100644 sei-tendermint/docs/tendermint-core/subscription.md create mode 100644 sei-tendermint/docs/tendermint-core/using-tendermint.md create mode 100644 sei-tendermint/docs/tendermint-core/validators.md create mode 100644 sei-tendermint/docs/tools/README.md create mode 100644 sei-tendermint/docs/tools/debugging/README.md create mode 100644 sei-tendermint/docs/tools/debugging/pro.md create mode 100644 sei-tendermint/docs/tools/debugging/proposer-based-timestamps-runbook.md create mode 100644 sei-tendermint/docs/tools/docker-compose.md create mode 100644 sei-tendermint/docs/tools/terraform-and-ansible.md create mode 100644 sei-tendermint/docs/tutorials/go-built-in.md create mode 100644 sei-tendermint/docs/tutorials/go.md create mode 100644 sei-tendermint/docs/tutorials/readme.md create mode 100644 sei-tendermint/docs/versions create mode 100644 sei-tendermint/dredd.yml create mode 100644 sei-tendermint/go.mod create mode 100644 sei-tendermint/go.sum create mode 100644 sei-tendermint/internal/blocksync/doc.go create mode 100644 sei-tendermint/internal/blocksync/msgs.go create mode 100644 sei-tendermint/internal/blocksync/pool.go create mode 100644 sei-tendermint/internal/blocksync/pool_test.go create mode 100644 sei-tendermint/internal/blocksync/reactor.go create mode 100644 sei-tendermint/internal/blocksync/reactor_test.go create mode 100644 sei-tendermint/internal/consensus/byzantine_test.go create mode 100644 sei-tendermint/internal/consensus/common_test.go create mode 100644 sei-tendermint/internal/consensus/invalid_test.go create mode 100644 sei-tendermint/internal/consensus/mempool_test.go create mode 100644 sei-tendermint/internal/consensus/metrics.gen.go create mode 100644 sei-tendermint/internal/consensus/metrics.go create mode 100644 sei-tendermint/internal/consensus/mocks/cons_sync_reactor.go create mode 100644 sei-tendermint/internal/consensus/mocks/fast_sync_reactor.go create mode 100644 sei-tendermint/internal/consensus/msgs.go create mode 100644 sei-tendermint/internal/consensus/msgs_test.go create mode 100644 sei-tendermint/internal/consensus/pbts_test.go create mode 100644 sei-tendermint/internal/consensus/peer_state.go create mode 100644 sei-tendermint/internal/consensus/peer_state_test.go create mode 100644 sei-tendermint/internal/consensus/reactor.go create mode 100644 sei-tendermint/internal/consensus/reactor_test.go create mode 100644 sei-tendermint/internal/consensus/replay.go create mode 100644 sei-tendermint/internal/consensus/replay_file.go create mode 100644 sei-tendermint/internal/consensus/replay_stubs.go create mode 100644 sei-tendermint/internal/consensus/replay_test.go create mode 100644 sei-tendermint/internal/consensus/state.go create mode 100644 sei-tendermint/internal/consensus/state_test.go create mode 100644 sei-tendermint/internal/consensus/ticker.go create mode 100644 sei-tendermint/internal/consensus/types/height_vote_set.go create mode 100644 sei-tendermint/internal/consensus/types/height_vote_set_test.go create mode 100644 sei-tendermint/internal/consensus/types/peer_round_state.go create mode 100644 sei-tendermint/internal/consensus/types/peer_round_state_test.go create mode 100644 sei-tendermint/internal/consensus/types/round_state.go create mode 100644 sei-tendermint/internal/consensus/wal.go create mode 100644 sei-tendermint/internal/consensus/wal_fuzz.go create mode 100644 sei-tendermint/internal/consensus/wal_generator.go create mode 100644 sei-tendermint/internal/consensus/wal_test.go create mode 100644 sei-tendermint/internal/eventbus/event_bus.go create mode 100644 sei-tendermint/internal/eventbus/event_bus_test.go create mode 100644 sei-tendermint/internal/eventlog/cursor/cursor.go create mode 100644 sei-tendermint/internal/eventlog/cursor/cursor_test.go create mode 100644 sei-tendermint/internal/eventlog/eventlog.go create mode 100644 sei-tendermint/internal/eventlog/eventlog_test.go create mode 100644 sei-tendermint/internal/eventlog/item.go create mode 100644 sei-tendermint/internal/eventlog/metrics.gen.go create mode 100644 sei-tendermint/internal/eventlog/metrics.go create mode 100644 sei-tendermint/internal/eventlog/prune.go create mode 100644 sei-tendermint/internal/evidence/doc.go create mode 100644 sei-tendermint/internal/evidence/metrics.gen.go create mode 100644 sei-tendermint/internal/evidence/metrics.go create mode 100644 sei-tendermint/internal/evidence/mocks/block_store.go create mode 100644 sei-tendermint/internal/evidence/pool.go create mode 100644 sei-tendermint/internal/evidence/pool_test.go create mode 100644 sei-tendermint/internal/evidence/reactor.go create mode 100644 sei-tendermint/internal/evidence/reactor_test.go create mode 100644 sei-tendermint/internal/evidence/services.go create mode 100644 sei-tendermint/internal/evidence/verify.go create mode 100644 sei-tendermint/internal/evidence/verify_test.go create mode 100644 sei-tendermint/internal/inspect/doc.go create mode 100644 sei-tendermint/internal/inspect/inspect.go create mode 100644 sei-tendermint/internal/inspect/inspect_test.go create mode 100644 sei-tendermint/internal/inspect/rpc/rpc.go create mode 100644 sei-tendermint/internal/jsontypes/jsontypes.go create mode 100644 sei-tendermint/internal/jsontypes/jsontypes_test.go create mode 100644 sei-tendermint/internal/libs/async/async.go create mode 100644 sei-tendermint/internal/libs/async/async_test.go create mode 100644 sei-tendermint/internal/libs/autofile/README.md create mode 100644 sei-tendermint/internal/libs/autofile/autofile.go create mode 100644 sei-tendermint/internal/libs/autofile/autofile_test.go create mode 100644 sei-tendermint/internal/libs/autofile/cmd/logjack.go create mode 100644 sei-tendermint/internal/libs/autofile/group.go create mode 100644 sei-tendermint/internal/libs/autofile/group_test.go create mode 100644 sei-tendermint/internal/libs/clist/bench_test.go create mode 100644 sei-tendermint/internal/libs/clist/clist.go create mode 100644 sei-tendermint/internal/libs/clist/clist_property_test.go create mode 100644 sei-tendermint/internal/libs/clist/clist_test.go create mode 100644 sei-tendermint/internal/libs/flowrate/flowrate.go create mode 100644 sei-tendermint/internal/libs/flowrate/util.go create mode 100644 sei-tendermint/internal/libs/progressbar/progressbar.go create mode 100644 sei-tendermint/internal/libs/progressbar/progressbar_test.go create mode 100644 sei-tendermint/internal/libs/protoio/io.go create mode 100644 sei-tendermint/internal/libs/protoio/io_test.go create mode 100644 sei-tendermint/internal/libs/protoio/reader.go create mode 100644 sei-tendermint/internal/libs/protoio/writer.go create mode 100644 sei-tendermint/internal/libs/protoio/writer_test.go create mode 100644 sei-tendermint/internal/libs/queue/queue.go create mode 100644 sei-tendermint/internal/libs/queue/queue_test.go create mode 100644 sei-tendermint/internal/libs/sync/waker.go create mode 100644 sei-tendermint/internal/libs/sync/waker_test.go create mode 100644 sei-tendermint/internal/libs/tempfile/tempfile.go create mode 100644 sei-tendermint/internal/libs/tempfile/tempfile_test.go create mode 100644 sei-tendermint/internal/libs/test/mutate.go create mode 100644 sei-tendermint/internal/libs/timer/throttle_timer.go create mode 100644 sei-tendermint/internal/libs/timer/throttle_timer_test.go create mode 100644 sei-tendermint/internal/mempool/cache.go create mode 100644 sei-tendermint/internal/mempool/cache_bench_test.go create mode 100644 sei-tendermint/internal/mempool/cache_test.go create mode 100644 sei-tendermint/internal/mempool/ids.go create mode 100644 sei-tendermint/internal/mempool/ids_test.go create mode 100644 sei-tendermint/internal/mempool/mempool.go create mode 100644 sei-tendermint/internal/mempool/mempool_bench_test.go create mode 100644 sei-tendermint/internal/mempool/mempool_test.go create mode 100644 sei-tendermint/internal/mempool/metrics.gen.go create mode 100644 sei-tendermint/internal/mempool/metrics.go create mode 100644 sei-tendermint/internal/mempool/mocks/mempool.go create mode 100644 sei-tendermint/internal/mempool/priority_queue.go create mode 100644 sei-tendermint/internal/mempool/priority_queue_test.go create mode 100644 sei-tendermint/internal/mempool/reactor.go create mode 100644 sei-tendermint/internal/mempool/reactor_test.go create mode 100644 sei-tendermint/internal/mempool/tx.go create mode 100644 sei-tendermint/internal/mempool/tx_test.go create mode 100644 sei-tendermint/internal/mempool/types.go create mode 100644 sei-tendermint/internal/p2p/README.md create mode 100644 sei-tendermint/internal/p2p/address.go create mode 100644 sei-tendermint/internal/p2p/address_test.go create mode 100644 sei-tendermint/internal/p2p/channel.go create mode 100644 sei-tendermint/internal/p2p/channel_test.go create mode 100644 sei-tendermint/internal/p2p/conn/connection.go create mode 100644 sei-tendermint/internal/p2p/conn/connection_test.go create mode 100644 sei-tendermint/internal/p2p/conn/evil_secret_connection_test.go create mode 100644 sei-tendermint/internal/p2p/conn/secret_connection.go create mode 100644 sei-tendermint/internal/p2p/conn/secret_connection_test.go create mode 100644 sei-tendermint/internal/p2p/conn/testdata/TestDeriveSecretsAndChallengeGolden.golden create mode 100644 sei-tendermint/internal/p2p/conn_tracker.go create mode 100644 sei-tendermint/internal/p2p/conn_tracker_test.go create mode 100644 sei-tendermint/internal/p2p/errors.go create mode 100644 sei-tendermint/internal/p2p/metrics.gen.go create mode 100644 sei-tendermint/internal/p2p/metrics.go create mode 100644 sei-tendermint/internal/p2p/metrics_test.go create mode 100644 sei-tendermint/internal/p2p/mocks/connection.go create mode 100644 sei-tendermint/internal/p2p/mocks/transport.go create mode 100644 sei-tendermint/internal/p2p/p2p_test.go create mode 100644 sei-tendermint/internal/p2p/p2ptest/network.go create mode 100644 sei-tendermint/internal/p2p/p2ptest/require.go create mode 100644 sei-tendermint/internal/p2p/p2ptest/util.go create mode 100644 sei-tendermint/internal/p2p/peermanager.go create mode 100644 sei-tendermint/internal/p2p/peermanager_scoring_test.go create mode 100644 sei-tendermint/internal/p2p/peermanager_test.go create mode 100644 sei-tendermint/internal/p2p/pex/doc.go create mode 100644 sei-tendermint/internal/p2p/pex/reactor.go create mode 100644 sei-tendermint/internal/p2p/pex/reactor_test.go create mode 100644 sei-tendermint/internal/p2p/pqueue.go create mode 100644 sei-tendermint/internal/p2p/pqueue_test.go create mode 100644 sei-tendermint/internal/p2p/queue.go create mode 100644 sei-tendermint/internal/p2p/router.go create mode 100644 sei-tendermint/internal/p2p/router_filter_test.go create mode 100644 sei-tendermint/internal/p2p/router_init_test.go create mode 100644 sei-tendermint/internal/p2p/router_test.go create mode 100644 sei-tendermint/internal/p2p/transport.go create mode 100644 sei-tendermint/internal/p2p/transport_mconn.go create mode 100644 sei-tendermint/internal/p2p/transport_mconn_test.go create mode 100644 sei-tendermint/internal/p2p/transport_memory.go create mode 100644 sei-tendermint/internal/p2p/transport_memory_test.go create mode 100644 sei-tendermint/internal/p2p/transport_test.go create mode 100644 sei-tendermint/internal/p2p/types.go create mode 100644 sei-tendermint/internal/proxy/client.go create mode 100644 sei-tendermint/internal/proxy/client_test.go create mode 100644 sei-tendermint/internal/proxy/metrics.gen.go create mode 100644 sei-tendermint/internal/proxy/metrics.go create mode 100644 sei-tendermint/internal/proxy/mocks/app_conn_consensus.go create mode 100644 sei-tendermint/internal/proxy/mocks/app_conn_mempool.go create mode 100644 sei-tendermint/internal/proxy/mocks/app_conn_query.go create mode 100644 sei-tendermint/internal/proxy/mocks/app_conn_snapshot.go create mode 100644 sei-tendermint/internal/proxy/version.go create mode 100644 sei-tendermint/internal/pubsub/example_test.go create mode 100644 sei-tendermint/internal/pubsub/pubsub.go create mode 100644 sei-tendermint/internal/pubsub/pubsub_test.go create mode 100644 sei-tendermint/internal/pubsub/query/bench_test.go create mode 100644 sei-tendermint/internal/pubsub/query/query.go create mode 100644 sei-tendermint/internal/pubsub/query/query_test.go create mode 100644 sei-tendermint/internal/pubsub/query/syntax/doc.go create mode 100644 sei-tendermint/internal/pubsub/query/syntax/parser.go create mode 100644 sei-tendermint/internal/pubsub/query/syntax/scanner.go create mode 100644 sei-tendermint/internal/pubsub/query/syntax/syntax_test.go create mode 100644 sei-tendermint/internal/pubsub/subindex.go create mode 100644 sei-tendermint/internal/pubsub/subscription.go create mode 100644 sei-tendermint/internal/rpc/core/CONTRIBUTING.md create mode 100644 sei-tendermint/internal/rpc/core/README.md create mode 100644 sei-tendermint/internal/rpc/core/abci.go create mode 100644 sei-tendermint/internal/rpc/core/blocks.go create mode 100644 sei-tendermint/internal/rpc/core/blocks_test.go create mode 100644 sei-tendermint/internal/rpc/core/consensus.go create mode 100644 sei-tendermint/internal/rpc/core/dev.go create mode 100644 sei-tendermint/internal/rpc/core/doc.go create mode 100644 sei-tendermint/internal/rpc/core/doc_template.txt create mode 100644 sei-tendermint/internal/rpc/core/env.go create mode 100644 sei-tendermint/internal/rpc/core/env_test.go create mode 100644 sei-tendermint/internal/rpc/core/events.go create mode 100644 sei-tendermint/internal/rpc/core/evidence.go create mode 100644 sei-tendermint/internal/rpc/core/health.go create mode 100644 sei-tendermint/internal/rpc/core/mempool.go create mode 100644 sei-tendermint/internal/rpc/core/net.go create mode 100644 sei-tendermint/internal/rpc/core/routes.go create mode 100644 sei-tendermint/internal/rpc/core/status.go create mode 100644 sei-tendermint/internal/rpc/core/tx.go create mode 100644 sei-tendermint/internal/state/errors.go create mode 100644 sei-tendermint/internal/state/execution.go create mode 100644 sei-tendermint/internal/state/execution_test.go create mode 100644 sei-tendermint/internal/state/export_test.go create mode 100644 sei-tendermint/internal/state/helpers_test.go create mode 100644 sei-tendermint/internal/state/indexer/block/kv/kv.go create mode 100644 sei-tendermint/internal/state/indexer/block/kv/kv_test.go create mode 100644 sei-tendermint/internal/state/indexer/block/kv/util.go create mode 100644 sei-tendermint/internal/state/indexer/block/null/null.go create mode 100644 sei-tendermint/internal/state/indexer/doc.go create mode 100644 sei-tendermint/internal/state/indexer/eventsink.go create mode 100644 sei-tendermint/internal/state/indexer/indexer.go create mode 100644 sei-tendermint/internal/state/indexer/indexer_service.go create mode 100644 sei-tendermint/internal/state/indexer/indexer_service_test.go create mode 100644 sei-tendermint/internal/state/indexer/metrics.gen.go create mode 100644 sei-tendermint/internal/state/indexer/metrics.go create mode 100644 sei-tendermint/internal/state/indexer/mocks/event_sink.go create mode 100644 sei-tendermint/internal/state/indexer/query_range.go create mode 100644 sei-tendermint/internal/state/indexer/sink/kv/kv.go create mode 100644 sei-tendermint/internal/state/indexer/sink/kv/kv_test.go create mode 100644 sei-tendermint/internal/state/indexer/sink/null/null.go create mode 100644 sei-tendermint/internal/state/indexer/sink/null/null_test.go create mode 100644 sei-tendermint/internal/state/indexer/sink/psql/psql.go create mode 100644 sei-tendermint/internal/state/indexer/sink/psql/psql_test.go create mode 100644 sei-tendermint/internal/state/indexer/sink/psql/schema.sql create mode 100644 sei-tendermint/internal/state/indexer/sink/sink.go create mode 100644 sei-tendermint/internal/state/indexer/tx/kv/kv.go create mode 100644 sei-tendermint/internal/state/indexer/tx/kv/kv_bench_test.go create mode 100644 sei-tendermint/internal/state/indexer/tx/kv/kv_test.go create mode 100644 sei-tendermint/internal/state/indexer/tx/kv/utils.go create mode 100644 sei-tendermint/internal/state/indexer/tx/kv/utils_test.go create mode 100644 sei-tendermint/internal/state/indexer/tx/null/null.go create mode 100644 sei-tendermint/internal/state/metrics.gen.go create mode 100644 sei-tendermint/internal/state/metrics.go create mode 100644 sei-tendermint/internal/state/mocks/block_store.go create mode 100644 sei-tendermint/internal/state/mocks/event_sink.go create mode 100644 sei-tendermint/internal/state/mocks/evidence_pool.go create mode 100644 sei-tendermint/internal/state/mocks/store.go create mode 100644 sei-tendermint/internal/state/rollback.go create mode 100644 sei-tendermint/internal/state/rollback_test.go create mode 100644 sei-tendermint/internal/state/services.go create mode 100644 sei-tendermint/internal/state/state.go create mode 100644 sei-tendermint/internal/state/state_test.go create mode 100644 sei-tendermint/internal/state/store.go create mode 100644 sei-tendermint/internal/state/store_test.go create mode 100644 sei-tendermint/internal/state/test/factory/block.go create mode 100644 sei-tendermint/internal/state/tx_filter.go create mode 100644 sei-tendermint/internal/state/tx_filter_test.go create mode 100644 sei-tendermint/internal/state/validation.go create mode 100644 sei-tendermint/internal/state/validation_test.go create mode 100644 sei-tendermint/internal/statesync/block_queue.go create mode 100644 sei-tendermint/internal/statesync/block_queue_test.go create mode 100644 sei-tendermint/internal/statesync/chunks.go create mode 100644 sei-tendermint/internal/statesync/chunks_test.go create mode 100644 sei-tendermint/internal/statesync/dispatcher.go create mode 100644 sei-tendermint/internal/statesync/dispatcher_test.go create mode 100644 sei-tendermint/internal/statesync/metrics.gen.go create mode 100644 sei-tendermint/internal/statesync/metrics.go create mode 100644 sei-tendermint/internal/statesync/mocks/Metricer.go create mode 100644 sei-tendermint/internal/statesync/mocks/state_provider.go create mode 100644 sei-tendermint/internal/statesync/reactor.go create mode 100644 sei-tendermint/internal/statesync/reactor_test.go create mode 100644 sei-tendermint/internal/statesync/snapshots.go create mode 100644 sei-tendermint/internal/statesync/snapshots_test.go create mode 100644 sei-tendermint/internal/statesync/stateprovider.go create mode 100644 sei-tendermint/internal/statesync/syncer.go create mode 100644 sei-tendermint/internal/statesync/syncer_test.go create mode 100644 sei-tendermint/internal/store/store.go create mode 100644 sei-tendermint/internal/store/store_test.go create mode 100644 sei-tendermint/internal/test/factory/block.go create mode 100644 sei-tendermint/internal/test/factory/commit.go create mode 100644 sei-tendermint/internal/test/factory/doc.go create mode 100644 sei-tendermint/internal/test/factory/factory_test.go create mode 100644 sei-tendermint/internal/test/factory/genesis.go create mode 100644 sei-tendermint/internal/test/factory/p2p.go create mode 100644 sei-tendermint/internal/test/factory/params.go create mode 100644 sei-tendermint/internal/test/factory/tx.go create mode 100644 sei-tendermint/internal/test/factory/validator.go create mode 100644 sei-tendermint/internal/test/factory/vote.go create mode 100644 sei-tendermint/libs/CHANGELOG.md create mode 100644 sei-tendermint/libs/bits/bit_array.go create mode 100644 sei-tendermint/libs/bits/bit_array_test.go create mode 100644 sei-tendermint/libs/bytes/bytes.go create mode 100644 sei-tendermint/libs/bytes/bytes_test.go create mode 100644 sei-tendermint/libs/bytes/byteslice.go create mode 100644 sei-tendermint/libs/cli/helper.go create mode 100644 sei-tendermint/libs/cli/setup.go create mode 100644 sei-tendermint/libs/cli/setup_test.go create mode 100644 sei-tendermint/libs/events/events.go create mode 100644 sei-tendermint/libs/events/events_test.go create mode 100644 sei-tendermint/libs/log/default.go create mode 100644 sei-tendermint/libs/log/default_test.go create mode 100644 sei-tendermint/libs/log/logger.go create mode 100644 sei-tendermint/libs/log/nop.go create mode 100644 sei-tendermint/libs/log/testing.go create mode 100644 sei-tendermint/libs/math/fraction.go create mode 100644 sei-tendermint/libs/math/fraction_test.go create mode 100644 sei-tendermint/libs/math/math.go create mode 100644 sei-tendermint/libs/math/safemath.go create mode 100644 sei-tendermint/libs/net/net.go create mode 100644 sei-tendermint/libs/net/net_test.go create mode 100644 sei-tendermint/libs/os/os.go create mode 100644 sei-tendermint/libs/os/os_test.go create mode 100644 sei-tendermint/libs/rand/random.go create mode 100644 sei-tendermint/libs/rand/random_test.go create mode 100644 sei-tendermint/libs/service/service.go create mode 100644 sei-tendermint/libs/service/service_test.go create mode 100644 sei-tendermint/libs/strings/string.go create mode 100644 sei-tendermint/libs/strings/string_test.go create mode 100644 sei-tendermint/libs/time/mocks/source.go create mode 100644 sei-tendermint/libs/time/time.go create mode 100644 sei-tendermint/light/client.go create mode 100644 sei-tendermint/light/client_benchmark_test.go create mode 100644 sei-tendermint/light/client_test.go create mode 100644 sei-tendermint/light/detector.go create mode 100644 sei-tendermint/light/detector_test.go create mode 100644 sei-tendermint/light/doc.go create mode 100644 sei-tendermint/light/errors.go create mode 100644 sei-tendermint/light/example_test.go create mode 100644 sei-tendermint/light/helpers_test.go create mode 100644 sei-tendermint/light/light_test.go create mode 100644 sei-tendermint/light/mbt/doc.go create mode 100644 sei-tendermint/light/mbt/driver_test.go create mode 100644 sei-tendermint/light/mbt/json/MC4_4_faulty_Test2NotEnoughTrustFailure.json create mode 100644 sei-tendermint/light/mbt/json/MC4_4_faulty_Test2NotEnoughTrustSuccess.json create mode 100644 sei-tendermint/light/mbt/json/MC4_4_faulty_Test3NotEnoughTrustFailure.json create mode 100644 sei-tendermint/light/mbt/json/MC4_4_faulty_Test3NotEnoughTrustSuccess.json create mode 100644 sei-tendermint/light/mbt/json/MC4_4_faulty_TestFailure.json create mode 100644 sei-tendermint/light/mbt/json/MC4_4_faulty_TestHeaderFromFuture.json create mode 100644 sei-tendermint/light/mbt/json/MC4_4_faulty_TestSuccess.json create mode 100644 sei-tendermint/light/mbt/json/MC4_4_faulty_TestUntrustedBeforeTrusted.json create mode 100644 sei-tendermint/light/mbt/json/MC4_4_faulty_TestValsetDifferentAllSteps.json create mode 100644 sei-tendermint/light/provider/errors.go create mode 100644 sei-tendermint/light/provider/http/http.go create mode 100644 sei-tendermint/light/provider/http/http_test.go create mode 100644 sei-tendermint/light/provider/mocks/provider.go create mode 100644 sei-tendermint/light/provider/provider.go create mode 100644 sei-tendermint/light/proxy/proxy.go create mode 100644 sei-tendermint/light/proxy/routes.go create mode 100644 sei-tendermint/light/rpc/client.go create mode 100644 sei-tendermint/light/rpc/mocks/light_client.go create mode 100644 sei-tendermint/light/setup.go create mode 100644 sei-tendermint/light/store/db/db.go create mode 100644 sei-tendermint/light/store/db/db_test.go create mode 100644 sei-tendermint/light/store/errors.go create mode 100644 sei-tendermint/light/store/store.go create mode 100644 sei-tendermint/light/trust_options.go create mode 100644 sei-tendermint/light/verifier.go create mode 100644 sei-tendermint/light/verifier_test.go create mode 100644 sei-tendermint/networks/local/Makefile create mode 100644 sei-tendermint/networks/local/README.md create mode 100644 sei-tendermint/networks/local/localnode/Dockerfile create mode 100644 sei-tendermint/networks/local/localnode/config-template.toml create mode 100755 sei-tendermint/networks/local/localnode/wrapper.sh create mode 100644 sei-tendermint/networks/remote/README.md create mode 100644 sei-tendermint/networks/remote/ansible/.gitignore create mode 100644 sei-tendermint/networks/remote/ansible/ansible.cfg create mode 100644 sei-tendermint/networks/remote/ansible/config.yml create mode 100644 sei-tendermint/networks/remote/ansible/install.yml create mode 100644 sei-tendermint/networks/remote/ansible/inventory/COPYING create mode 100644 sei-tendermint/networks/remote/ansible/inventory/digital_ocean.ini create mode 100755 sei-tendermint/networks/remote/ansible/inventory/digital_ocean.py create mode 100644 sei-tendermint/networks/remote/ansible/logzio.yml create mode 100644 sei-tendermint/networks/remote/ansible/reset.yml create mode 100644 sei-tendermint/networks/remote/ansible/restart.yml create mode 100644 sei-tendermint/networks/remote/ansible/roles/config/tasks/main.yml create mode 100644 sei-tendermint/networks/remote/ansible/roles/install/handlers/main.yml create mode 100644 sei-tendermint/networks/remote/ansible/roles/install/tasks/main.yml create mode 100644 sei-tendermint/networks/remote/ansible/roles/install/templates/systemd.service.j2 create mode 100644 sei-tendermint/networks/remote/ansible/roles/logzio/files/journalbeat.service create mode 100644 sei-tendermint/networks/remote/ansible/roles/logzio/handlers/main.yml create mode 100644 sei-tendermint/networks/remote/ansible/roles/logzio/tasks/main.yml create mode 100644 sei-tendermint/networks/remote/ansible/roles/logzio/templates/journalbeat.yml.j2 create mode 100644 sei-tendermint/networks/remote/ansible/roles/start/tasks/main.yml create mode 100644 sei-tendermint/networks/remote/ansible/roles/status/tasks/main.yml create mode 100644 sei-tendermint/networks/remote/ansible/roles/stop/tasks/main.yml create mode 100644 sei-tendermint/networks/remote/ansible/roles/unsafe_reset/tasks/main.yml create mode 100644 sei-tendermint/networks/remote/ansible/start.yml create mode 100644 sei-tendermint/networks/remote/ansible/status.yml create mode 100644 sei-tendermint/networks/remote/ansible/stop.yml create mode 100644 sei-tendermint/networks/remote/integration.sh create mode 100644 sei-tendermint/networks/remote/terraform/.gitignore create mode 100644 sei-tendermint/networks/remote/terraform/cluster/main.tf create mode 100644 sei-tendermint/networks/remote/terraform/cluster/outputs.tf create mode 100644 sei-tendermint/networks/remote/terraform/cluster/variables.tf create mode 100644 sei-tendermint/networks/remote/terraform/main.tf create mode 100644 sei-tendermint/node/doc.go create mode 100644 sei-tendermint/node/node.go create mode 100644 sei-tendermint/node/node_test.go create mode 100644 sei-tendermint/node/public.go create mode 100644 sei-tendermint/node/seed.go create mode 100644 sei-tendermint/node/setup.go create mode 100644 sei-tendermint/privval/doc.go create mode 100644 sei-tendermint/privval/errors.go create mode 100644 sei-tendermint/privval/file.go create mode 100644 sei-tendermint/privval/file_test.go create mode 100644 sei-tendermint/privval/grpc/client.go create mode 100644 sei-tendermint/privval/grpc/client_test.go create mode 100644 sei-tendermint/privval/grpc/server.go create mode 100644 sei-tendermint/privval/grpc/server_test.go create mode 100644 sei-tendermint/privval/grpc/util.go create mode 100644 sei-tendermint/privval/msgs.go create mode 100644 sei-tendermint/privval/msgs_test.go create mode 100644 sei-tendermint/privval/retry_signer_client.go create mode 100644 sei-tendermint/privval/secret_connection.go create mode 100644 sei-tendermint/privval/signer_client.go create mode 100644 sei-tendermint/privval/signer_client_test.go create mode 100644 sei-tendermint/privval/signer_dialer_endpoint.go create mode 100644 sei-tendermint/privval/signer_endpoint.go create mode 100644 sei-tendermint/privval/signer_listener_endpoint.go create mode 100644 sei-tendermint/privval/signer_listener_endpoint_test.go create mode 100644 sei-tendermint/privval/signer_requestHandler.go create mode 100644 sei-tendermint/privval/signer_server.go create mode 100644 sei-tendermint/privval/socket_dialers.go create mode 100644 sei-tendermint/privval/socket_dialers_test.go create mode 100644 sei-tendermint/privval/socket_listeners.go create mode 100644 sei-tendermint/privval/socket_listeners_test.go create mode 100644 sei-tendermint/privval/utils.go create mode 100644 sei-tendermint/privval/utils_test.go create mode 100644 sei-tendermint/proto/README.md create mode 100644 sei-tendermint/proto/buf.lock create mode 100644 sei-tendermint/proto/buf.yaml create mode 100644 sei-tendermint/proto/tendermint/abci/types.proto create mode 100644 sei-tendermint/proto/tendermint/blocksync/message.go create mode 100644 sei-tendermint/proto/tendermint/blocksync/message_test.go create mode 100644 sei-tendermint/proto/tendermint/blocksync/types.pb.go create mode 100644 sei-tendermint/proto/tendermint/blocksync/types.proto create mode 100644 sei-tendermint/proto/tendermint/consensus/message.go create mode 100644 sei-tendermint/proto/tendermint/consensus/message_test.go create mode 100644 sei-tendermint/proto/tendermint/consensus/types.pb.go create mode 100644 sei-tendermint/proto/tendermint/consensus/types.proto create mode 100644 sei-tendermint/proto/tendermint/consensus/wal.pb.go create mode 100644 sei-tendermint/proto/tendermint/consensus/wal.proto create mode 100644 sei-tendermint/proto/tendermint/crypto/crypto.go create mode 100644 sei-tendermint/proto/tendermint/crypto/keys.pb.go create mode 100644 sei-tendermint/proto/tendermint/crypto/keys.proto create mode 100644 sei-tendermint/proto/tendermint/crypto/proof.pb.go create mode 100644 sei-tendermint/proto/tendermint/crypto/proof.proto create mode 100644 sei-tendermint/proto/tendermint/libs/bits/types.pb.go create mode 100644 sei-tendermint/proto/tendermint/libs/bits/types.proto create mode 100644 sei-tendermint/proto/tendermint/mempool/message.go create mode 100644 sei-tendermint/proto/tendermint/mempool/types.pb.go create mode 100644 sei-tendermint/proto/tendermint/mempool/types.proto create mode 100644 sei-tendermint/proto/tendermint/p2p/conn.pb.go create mode 100644 sei-tendermint/proto/tendermint/p2p/conn.proto create mode 100644 sei-tendermint/proto/tendermint/p2p/pex.go create mode 100644 sei-tendermint/proto/tendermint/p2p/pex.pb.go create mode 100644 sei-tendermint/proto/tendermint/p2p/pex.proto create mode 100644 sei-tendermint/proto/tendermint/p2p/types.pb.go create mode 100644 sei-tendermint/proto/tendermint/p2p/types.proto create mode 100644 sei-tendermint/proto/tendermint/privval/service.pb.go create mode 100644 sei-tendermint/proto/tendermint/privval/service.proto create mode 100644 sei-tendermint/proto/tendermint/privval/types.pb.go create mode 100644 sei-tendermint/proto/tendermint/privval/types.proto create mode 100644 sei-tendermint/proto/tendermint/state/types.pb.go create mode 100644 sei-tendermint/proto/tendermint/state/types.proto create mode 100644 sei-tendermint/proto/tendermint/statesync/message.go create mode 100644 sei-tendermint/proto/tendermint/statesync/message_test.go create mode 100644 sei-tendermint/proto/tendermint/statesync/types.pb.go create mode 100644 sei-tendermint/proto/tendermint/statesync/types.proto create mode 100644 sei-tendermint/proto/tendermint/types/block.pb.go create mode 100644 sei-tendermint/proto/tendermint/types/block.proto create mode 100644 sei-tendermint/proto/tendermint/types/canonical.pb.go create mode 100644 sei-tendermint/proto/tendermint/types/canonical.proto create mode 100644 sei-tendermint/proto/tendermint/types/events.pb.go create mode 100644 sei-tendermint/proto/tendermint/types/events.proto create mode 100644 sei-tendermint/proto/tendermint/types/evidence.pb.go create mode 100644 sei-tendermint/proto/tendermint/types/evidence.proto create mode 100644 sei-tendermint/proto/tendermint/types/params.pb.go create mode 100644 sei-tendermint/proto/tendermint/types/params.proto create mode 100644 sei-tendermint/proto/tendermint/types/types.pb.go create mode 100644 sei-tendermint/proto/tendermint/types/types.proto create mode 100644 sei-tendermint/proto/tendermint/types/validator.pb.go create mode 100644 sei-tendermint/proto/tendermint/types/validator.proto create mode 100644 sei-tendermint/proto/tendermint/version/types.pb.go create mode 100644 sei-tendermint/proto/tendermint/version/types.proto create mode 100644 sei-tendermint/rpc/client/event_test.go create mode 100644 sei-tendermint/rpc/client/eventstream/eventstream.go create mode 100644 sei-tendermint/rpc/client/eventstream/eventstream_test.go create mode 100644 sei-tendermint/rpc/client/evidence_test.go create mode 100644 sei-tendermint/rpc/client/examples_test.go create mode 100644 sei-tendermint/rpc/client/helpers.go create mode 100644 sei-tendermint/rpc/client/helpers_test.go create mode 100644 sei-tendermint/rpc/client/http/http.go create mode 100644 sei-tendermint/rpc/client/http/ws.go create mode 100644 sei-tendermint/rpc/client/interface.go create mode 100644 sei-tendermint/rpc/client/local/local.go create mode 100644 sei-tendermint/rpc/client/main_test.go create mode 100644 sei-tendermint/rpc/client/mock/abci.go create mode 100644 sei-tendermint/rpc/client/mock/abci_test.go create mode 100644 sei-tendermint/rpc/client/mock/client.go create mode 100644 sei-tendermint/rpc/client/mock/status.go create mode 100644 sei-tendermint/rpc/client/mock/status_test.go create mode 100644 sei-tendermint/rpc/client/mocks/client.go create mode 100644 sei-tendermint/rpc/client/rpc_test.go create mode 100644 sei-tendermint/rpc/client/types.go create mode 100644 sei-tendermint/rpc/coretypes/requests.go create mode 100644 sei-tendermint/rpc/coretypes/responses.go create mode 100644 sei-tendermint/rpc/coretypes/responses_test.go create mode 100644 sei-tendermint/rpc/jsonrpc/client/decode.go create mode 100644 sei-tendermint/rpc/jsonrpc/client/http_json_client.go create mode 100644 sei-tendermint/rpc/jsonrpc/client/http_json_client_test.go create mode 100644 sei-tendermint/rpc/jsonrpc/client/integration_test.go create mode 100644 sei-tendermint/rpc/jsonrpc/client/ws_client.go create mode 100644 sei-tendermint/rpc/jsonrpc/client/ws_client_test.go create mode 100644 sei-tendermint/rpc/jsonrpc/doc.go create mode 100644 sei-tendermint/rpc/jsonrpc/jsonrpc_test.go create mode 100644 sei-tendermint/rpc/jsonrpc/server/http_json_handler.go create mode 100644 sei-tendermint/rpc/jsonrpc/server/http_json_handler_test.go create mode 100644 sei-tendermint/rpc/jsonrpc/server/http_server.go create mode 100644 sei-tendermint/rpc/jsonrpc/server/http_server_test.go create mode 100644 sei-tendermint/rpc/jsonrpc/server/http_uri_handler.go create mode 100644 sei-tendermint/rpc/jsonrpc/server/parse_test.go create mode 100644 sei-tendermint/rpc/jsonrpc/server/rpc_func.go create mode 100644 sei-tendermint/rpc/jsonrpc/server/test.crt create mode 100644 sei-tendermint/rpc/jsonrpc/server/test.key create mode 100644 sei-tendermint/rpc/jsonrpc/server/ws_handler.go create mode 100644 sei-tendermint/rpc/jsonrpc/server/ws_handler_test.go create mode 100644 sei-tendermint/rpc/jsonrpc/test/data.json create mode 100755 sei-tendermint/rpc/jsonrpc/test/integration_test.sh create mode 100644 sei-tendermint/rpc/jsonrpc/test/main.go create mode 100644 sei-tendermint/rpc/jsonrpc/types/types.go create mode 100644 sei-tendermint/rpc/jsonrpc/types/types_test.go create mode 100644 sei-tendermint/rpc/openapi/index.html create mode 100644 sei-tendermint/rpc/openapi/openapi.yaml create mode 100644 sei-tendermint/rpc/test/helpers.go create mode 100644 sei-tendermint/scripts/README.md create mode 100755 sei-tendermint/scripts/authors.sh create mode 100755 sei-tendermint/scripts/build.sh create mode 100644 sei-tendermint/scripts/confix/condiff/condiff.go create mode 100644 sei-tendermint/scripts/confix/confix.go create mode 100644 sei-tendermint/scripts/confix/confix_test.go create mode 100644 sei-tendermint/scripts/confix/plan.go create mode 100644 sei-tendermint/scripts/confix/testdata/README.md create mode 100644 sei-tendermint/scripts/confix/testdata/baseline.txt create mode 100644 sei-tendermint/scripts/confix/testdata/diff-26-27.txt create mode 100644 sei-tendermint/scripts/confix/testdata/diff-27-28.txt create mode 100644 sei-tendermint/scripts/confix/testdata/diff-28-29.txt create mode 100644 sei-tendermint/scripts/confix/testdata/diff-29-30.txt create mode 100644 sei-tendermint/scripts/confix/testdata/diff-30-31.txt create mode 100644 sei-tendermint/scripts/confix/testdata/diff-31-32.txt create mode 100644 sei-tendermint/scripts/confix/testdata/diff-32-33.txt create mode 100644 sei-tendermint/scripts/confix/testdata/diff-33-34.txt create mode 100644 sei-tendermint/scripts/confix/testdata/diff-34-35.txt create mode 100644 sei-tendermint/scripts/confix/testdata/diff-35-36.txt create mode 100644 sei-tendermint/scripts/confix/testdata/non-config.toml create mode 100644 sei-tendermint/scripts/confix/testdata/v26-config.toml create mode 100644 sei-tendermint/scripts/confix/testdata/v27-config.toml create mode 100644 sei-tendermint/scripts/confix/testdata/v28-config.toml create mode 100644 sei-tendermint/scripts/confix/testdata/v29-config.toml create mode 100644 sei-tendermint/scripts/confix/testdata/v30-config.toml create mode 100644 sei-tendermint/scripts/confix/testdata/v31-config.toml create mode 100644 sei-tendermint/scripts/confix/testdata/v32-config.toml create mode 100644 sei-tendermint/scripts/confix/testdata/v33-config.toml create mode 100644 sei-tendermint/scripts/confix/testdata/v34-config.toml create mode 100644 sei-tendermint/scripts/confix/testdata/v35-config.toml create mode 100644 sei-tendermint/scripts/confix/testdata/v36-config.toml create mode 100755 sei-tendermint/scripts/dist.sh create mode 100644 sei-tendermint/scripts/estream/estream.go create mode 100755 sei-tendermint/scripts/get_nodejs.sh create mode 100644 sei-tendermint/scripts/json2wal/main.go create mode 100644 sei-tendermint/scripts/keymigrate/migrate.go create mode 100644 sei-tendermint/scripts/keymigrate/migrate_test.go create mode 100644 sei-tendermint/scripts/linkify_changelog.py create mode 100644 sei-tendermint/scripts/linkpatch/linkpatch.go create mode 100644 sei-tendermint/scripts/metricsgen/metricsdiff/metricsdiff.go create mode 100644 sei-tendermint/scripts/metricsgen/metricsdiff/metricsdiff_test.go create mode 100644 sei-tendermint/scripts/metricsgen/metricsgen.go create mode 100644 sei-tendermint/scripts/metricsgen/metricsgen_test.go create mode 100644 sei-tendermint/scripts/metricsgen/testdata/basic/metrics.gen.go create mode 100644 sei-tendermint/scripts/metricsgen/testdata/basic/metrics.go create mode 100644 sei-tendermint/scripts/metricsgen/testdata/commented/metrics.gen.go create mode 100644 sei-tendermint/scripts/metricsgen/testdata/commented/metrics.go create mode 100644 sei-tendermint/scripts/metricsgen/testdata/tags/metrics.gen.go create mode 100644 sei-tendermint/scripts/metricsgen/testdata/tags/metrics.go create mode 100755 sei-tendermint/scripts/mockery_generate.sh create mode 100755 sei-tendermint/scripts/proto-gen.sh create mode 100644 sei-tendermint/scripts/scmigrate/migrate.go create mode 100644 sei-tendermint/scripts/scmigrate/migrate_test.go create mode 100644 sei-tendermint/scripts/txs/random.sh create mode 100644 sei-tendermint/scripts/wal2json/main.go create mode 100644 sei-tendermint/spec/README.md create mode 100644 sei-tendermint/spec/abci++/README.md create mode 100644 sei-tendermint/spec/abci++/abci++_app_requirements_002_draft.md create mode 100644 sei-tendermint/spec/abci++/abci++_basic_concepts_002_draft.md create mode 100644 sei-tendermint/spec/abci++/abci++_client_server_002_draft.md create mode 100644 sei-tendermint/spec/abci++/abci++_methods_002_draft.md create mode 100644 sei-tendermint/spec/abci++/abci++_tmint_expected_behavior_002_draft.md create mode 100644 sei-tendermint/spec/abci++/v0.md create mode 100644 sei-tendermint/spec/abci++/v1.md create mode 100644 sei-tendermint/spec/abci++/v2.md create mode 100644 sei-tendermint/spec/abci++/v3.md create mode 100644 sei-tendermint/spec/abci++/v4.md create mode 100644 sei-tendermint/spec/abci/README.md create mode 100644 sei-tendermint/spec/abci/abci.md create mode 100644 sei-tendermint/spec/abci/apps.md create mode 100644 sei-tendermint/spec/abci/client-server.md create mode 100644 sei-tendermint/spec/consensus/bft-time.md create mode 100644 sei-tendermint/spec/consensus/consensus-paper/IEEEtran.bst create mode 100644 sei-tendermint/spec/consensus/consensus-paper/IEEEtran.cls create mode 100644 sei-tendermint/spec/consensus/consensus-paper/README.md create mode 100644 sei-tendermint/spec/consensus/consensus-paper/algorithmicplus.sty create mode 100644 sei-tendermint/spec/consensus/consensus-paper/conclusion.tex create mode 100644 sei-tendermint/spec/consensus/consensus-paper/consensus.tex create mode 100644 sei-tendermint/spec/consensus/consensus-paper/definitions.tex create mode 100644 sei-tendermint/spec/consensus/consensus-paper/homodel.sty create mode 100644 sei-tendermint/spec/consensus/consensus-paper/intro.tex create mode 100644 sei-tendermint/spec/consensus/consensus-paper/latex8.bst create mode 100644 sei-tendermint/spec/consensus/consensus-paper/latex8.sty create mode 100644 sei-tendermint/spec/consensus/consensus-paper/lit.bib create mode 100644 sei-tendermint/spec/consensus/consensus-paper/paper.tex create mode 100644 sei-tendermint/spec/consensus/consensus-paper/proof.tex create mode 100644 sei-tendermint/spec/consensus/consensus-paper/rounddiag.sty create mode 100644 sei-tendermint/spec/consensus/consensus-paper/technote.sty create mode 100644 sei-tendermint/spec/consensus/consensus.md create mode 100644 sei-tendermint/spec/consensus/creating-proposal.md create mode 100644 sei-tendermint/spec/consensus/evidence.md create mode 100644 sei-tendermint/spec/consensus/light-client/README.md create mode 100644 sei-tendermint/spec/consensus/light-client/accountability.md create mode 100644 sei-tendermint/spec/consensus/light-client/assets/light-node-image.png create mode 100644 sei-tendermint/spec/consensus/light-client/detection.md create mode 100644 sei-tendermint/spec/consensus/light-client/verification.md create mode 100644 sei-tendermint/spec/consensus/proposer-based-timestamp/README.md create mode 100644 sei-tendermint/spec/consensus/proposer-based-timestamp/pbts-algorithm_002_draft.md create mode 100644 sei-tendermint/spec/consensus/proposer-based-timestamp/pbts-sysmodel_002_draft.md create mode 100644 sei-tendermint/spec/consensus/proposer-based-timestamp/tla/Apalache.tla create mode 100644 sei-tendermint/spec/consensus/proposer-based-timestamp/tla/MC_PBT.tla create mode 100644 sei-tendermint/spec/consensus/proposer-based-timestamp/tla/TendermintPBT_001_draft.tla create mode 100644 sei-tendermint/spec/consensus/proposer-based-timestamp/tla/TendermintPBT_002_draft.tla create mode 100644 sei-tendermint/spec/consensus/proposer-based-timestamp/tla/typedefs.tla create mode 100644 sei-tendermint/spec/consensus/proposer-based-timestamp/v1/pbts-algorithm_001_draft.md create mode 100644 sei-tendermint/spec/consensus/proposer-based-timestamp/v1/pbts-sysmodel_001_draft.md create mode 100644 sei-tendermint/spec/consensus/proposer-based-timestamp/v1/pbts_001_draft.md create mode 100644 sei-tendermint/spec/consensus/proposer-selection.md create mode 100644 sei-tendermint/spec/consensus/readme.md create mode 100644 sei-tendermint/spec/consensus/signing.md create mode 100644 sei-tendermint/spec/consensus/wal.md create mode 100644 sei-tendermint/spec/core/data_structures.md create mode 100644 sei-tendermint/spec/core/encoding.md create mode 100644 sei-tendermint/spec/core/genesis.md create mode 100644 sei-tendermint/spec/core/readme.md create mode 100644 sei-tendermint/spec/core/state.md create mode 100644 sei-tendermint/spec/ivy-proofs/Dockerfile create mode 100644 sei-tendermint/spec/ivy-proofs/README.md create mode 100644 sei-tendermint/spec/ivy-proofs/abstract_tendermint.ivy create mode 100644 sei-tendermint/spec/ivy-proofs/accountable_safety_1.ivy create mode 100644 sei-tendermint/spec/ivy-proofs/accountable_safety_2.ivy create mode 100755 sei-tendermint/spec/ivy-proofs/check_proofs.sh create mode 100644 sei-tendermint/spec/ivy-proofs/classic_safety.ivy create mode 100755 sei-tendermint/spec/ivy-proofs/count_lines.sh create mode 100644 sei-tendermint/spec/ivy-proofs/docker-compose.yml create mode 100644 sei-tendermint/spec/ivy-proofs/domain_model.ivy create mode 100644 sei-tendermint/spec/ivy-proofs/network_shim.ivy create mode 100644 sei-tendermint/spec/ivy-proofs/output/.gitignore create mode 100644 sei-tendermint/spec/ivy-proofs/tendermint.ivy create mode 100644 sei-tendermint/spec/ivy-proofs/tendermint_test.ivy create mode 100644 sei-tendermint/spec/light-client/README.md create mode 100644 sei-tendermint/spec/light-client/accountability/001indinv-apalache.csv create mode 100644 sei-tendermint/spec/light-client/accountability/MC_n4_f1.tla create mode 100644 sei-tendermint/spec/light-client/accountability/MC_n4_f2.tla create mode 100644 sei-tendermint/spec/light-client/accountability/MC_n4_f2_amnesia.tla create mode 100644 sei-tendermint/spec/light-client/accountability/MC_n4_f3.tla create mode 100644 sei-tendermint/spec/light-client/accountability/MC_n5_f1.tla create mode 100644 sei-tendermint/spec/light-client/accountability/MC_n5_f2.tla create mode 100644 sei-tendermint/spec/light-client/accountability/MC_n6_f1.tla create mode 100644 sei-tendermint/spec/light-client/accountability/README.md create mode 100644 sei-tendermint/spec/light-client/accountability/Synopsis.md create mode 100644 sei-tendermint/spec/light-client/accountability/TendermintAccDebug_004_draft.tla create mode 100644 sei-tendermint/spec/light-client/accountability/TendermintAccInv_004_draft.tla create mode 100644 sei-tendermint/spec/light-client/accountability/TendermintAccTrace_004_draft.tla create mode 100644 sei-tendermint/spec/light-client/accountability/TendermintAcc_004_draft.tla create mode 100644 sei-tendermint/spec/light-client/accountability/results/001indinv-apalache-mem-log.svg create mode 100644 sei-tendermint/spec/light-client/accountability/results/001indinv-apalache-mem.svg create mode 100644 sei-tendermint/spec/light-client/accountability/results/001indinv-apalache-ncells.svg create mode 100644 sei-tendermint/spec/light-client/accountability/results/001indinv-apalache-nclauses.svg create mode 100644 sei-tendermint/spec/light-client/accountability/results/001indinv-apalache-report.md create mode 100644 sei-tendermint/spec/light-client/accountability/results/001indinv-apalache-time-log.svg create mode 100644 sei-tendermint/spec/light-client/accountability/results/001indinv-apalache-time.svg create mode 100644 sei-tendermint/spec/light-client/accountability/results/001indinv-apalache-unstable.csv create mode 100755 sei-tendermint/spec/light-client/accountability/run.sh create mode 100644 sei-tendermint/spec/light-client/accountability/typedefs.tla create mode 100644 sei-tendermint/spec/light-client/assets/light-node-image.png create mode 100644 sei-tendermint/spec/light-client/attacks/Blockchain_003_draft.tla create mode 100644 sei-tendermint/spec/light-client/attacks/Isolation_001_draft.tla create mode 100644 sei-tendermint/spec/light-client/attacks/LCVerificationApi_003_draft.tla create mode 100644 sei-tendermint/spec/light-client/attacks/MC_5_3.tla create mode 100644 sei-tendermint/spec/light-client/attacks/isolate-attackers_001_draft.md create mode 100644 sei-tendermint/spec/light-client/attacks/isolate-attackers_002_reviewed.md create mode 100644 sei-tendermint/spec/light-client/attacks/notes-on-evidence-handling.md create mode 100644 sei-tendermint/spec/light-client/detection/004bmc-apalache-ok.csv create mode 100644 sei-tendermint/spec/light-client/detection/005bmc-apalache-error.csv create mode 100644 sei-tendermint/spec/light-client/detection/Blockchain_003_draft.tla create mode 100644 sei-tendermint/spec/light-client/detection/LCD_MC3_3_faulty.tla create mode 100644 sei-tendermint/spec/light-client/detection/LCD_MC3_4_faulty.tla create mode 100644 sei-tendermint/spec/light-client/detection/LCD_MC4_4_faulty.tla create mode 100644 sei-tendermint/spec/light-client/detection/LCD_MC5_5_faulty.tla create mode 100644 sei-tendermint/spec/light-client/detection/LCDetector_003_draft.tla create mode 100644 sei-tendermint/spec/light-client/detection/LCVerificationApi_003_draft.tla create mode 100644 sei-tendermint/spec/light-client/detection/README.md create mode 100644 sei-tendermint/spec/light-client/detection/detection_001_reviewed.md create mode 100644 sei-tendermint/spec/light-client/detection/detection_003_reviewed.md create mode 100644 sei-tendermint/spec/light-client/detection/discussions.md create mode 100644 sei-tendermint/spec/light-client/detection/draft-functions.md create mode 100644 sei-tendermint/spec/light-client/detection/req-ibc-detection.md create mode 100644 sei-tendermint/spec/light-client/experiments.png create mode 100644 sei-tendermint/spec/light-client/supervisor/supervisor_001_draft.md create mode 100644 sei-tendermint/spec/light-client/supervisor/supervisor_001_draft.tla create mode 100644 sei-tendermint/spec/light-client/supervisor/supervisor_002_draft.md create mode 100644 sei-tendermint/spec/light-client/verification/001bmc-apalache.csv create mode 100644 sei-tendermint/spec/light-client/verification/002bmc-apalache-ok.csv create mode 100644 sei-tendermint/spec/light-client/verification/003bmc-apalache-error.csv create mode 100644 sei-tendermint/spec/light-client/verification/004bmc-apalache-ok.csv create mode 100644 sei-tendermint/spec/light-client/verification/005bmc-apalache-error.csv create mode 100644 sei-tendermint/spec/light-client/verification/Blockchain_002_draft.tla create mode 100644 sei-tendermint/spec/light-client/verification/Blockchain_003_draft.tla create mode 100644 sei-tendermint/spec/light-client/verification/Blockchain_A_1.tla create mode 100644 sei-tendermint/spec/light-client/verification/LCVerificationApi_003_draft.tla create mode 100644 sei-tendermint/spec/light-client/verification/Lightclient_002_draft.tla create mode 100644 sei-tendermint/spec/light-client/verification/Lightclient_003_draft.tla create mode 100644 sei-tendermint/spec/light-client/verification/Lightclient_A_1.tla create mode 100644 sei-tendermint/spec/light-client/verification/MC4_3_correct.tla create mode 100644 sei-tendermint/spec/light-client/verification/MC4_3_faulty.tla create mode 100644 sei-tendermint/spec/light-client/verification/MC4_4_correct.tla create mode 100644 sei-tendermint/spec/light-client/verification/MC4_4_correct_drifted.tla create mode 100644 sei-tendermint/spec/light-client/verification/MC4_4_faulty.tla create mode 100644 sei-tendermint/spec/light-client/verification/MC4_4_faulty_drifted.tla create mode 100644 sei-tendermint/spec/light-client/verification/MC4_5_correct.tla create mode 100644 sei-tendermint/spec/light-client/verification/MC4_5_faulty.tla create mode 100644 sei-tendermint/spec/light-client/verification/MC4_6_faulty.tla create mode 100644 sei-tendermint/spec/light-client/verification/MC4_7_faulty.tla create mode 100644 sei-tendermint/spec/light-client/verification/MC5_5_correct.tla create mode 100644 sei-tendermint/spec/light-client/verification/MC5_5_correct_peer_two_thirds_faulty.tla create mode 100644 sei-tendermint/spec/light-client/verification/MC5_5_faulty.tla create mode 100644 sei-tendermint/spec/light-client/verification/MC5_5_faulty_peer_two_thirds_faulty.tla create mode 100644 sei-tendermint/spec/light-client/verification/MC5_7_faulty.tla create mode 100644 sei-tendermint/spec/light-client/verification/MC7_5_faulty.tla create mode 100644 sei-tendermint/spec/light-client/verification/MC7_7_faulty.tla create mode 100644 sei-tendermint/spec/light-client/verification/README.md create mode 100644 sei-tendermint/spec/light-client/verification/verification_001_published.md create mode 100644 sei-tendermint/spec/light-client/verification/verification_002_draft.md create mode 100644 sei-tendermint/spec/light-client/verification/verification_003_draft.md create mode 100644 sei-tendermint/spec/p2p/config.md create mode 100644 sei-tendermint/spec/p2p/connection.md create mode 100644 sei-tendermint/spec/p2p/messages/README.md create mode 100644 sei-tendermint/spec/p2p/messages/block-sync.md create mode 100644 sei-tendermint/spec/p2p/messages/consensus.md create mode 100644 sei-tendermint/spec/p2p/messages/evidence.md create mode 100644 sei-tendermint/spec/p2p/messages/mempool.md create mode 100644 sei-tendermint/spec/p2p/messages/pex.md create mode 100644 sei-tendermint/spec/p2p/messages/state-sync.md create mode 100644 sei-tendermint/spec/p2p/node.md create mode 100644 sei-tendermint/spec/p2p/peer.md create mode 100644 sei-tendermint/spec/p2p/readme.md create mode 100644 sei-tendermint/spec/rpc/README.md create mode 100644 sei-tendermint/test/Makefile create mode 100644 sei-tendermint/test/README.md create mode 100755 sei-tendermint/test/app/clean.sh create mode 100755 sei-tendermint/test/app/counter_test.sh create mode 100755 sei-tendermint/test/app/kvstore_test.sh create mode 100755 sei-tendermint/test/app/test.sh create mode 100644 sei-tendermint/test/docker/Dockerfile create mode 100644 sei-tendermint/test/docker/build.sh create mode 100644 sei-tendermint/test/docker/config-template.toml create mode 100644 sei-tendermint/test/e2e/Makefile create mode 100644 sei-tendermint/test/e2e/README.md create mode 100644 sei-tendermint/test/e2e/app/app.go create mode 100644 sei-tendermint/test/e2e/app/snapshots.go create mode 100644 sei-tendermint/test/e2e/app/state.go create mode 100644 sei-tendermint/test/e2e/docker/Dockerfile create mode 100755 sei-tendermint/test/e2e/docker/entrypoint create mode 100755 sei-tendermint/test/e2e/docker/entrypoint-builtin create mode 100644 sei-tendermint/test/e2e/generator/generate.go create mode 100644 sei-tendermint/test/e2e/generator/generate_test.go create mode 100644 sei-tendermint/test/e2e/generator/main.go create mode 100644 sei-tendermint/test/e2e/generator/random.go create mode 100644 sei-tendermint/test/e2e/generator/random_test.go create mode 100644 sei-tendermint/test/e2e/networks/ci.toml create mode 100644 sei-tendermint/test/e2e/networks/simple.toml create mode 100644 sei-tendermint/test/e2e/networks/single.toml create mode 100644 sei-tendermint/test/e2e/node/built-in.toml create mode 100644 sei-tendermint/test/e2e/node/config.go create mode 100644 sei-tendermint/test/e2e/node/main.go create mode 100644 sei-tendermint/test/e2e/node/socket.toml create mode 100644 sei-tendermint/test/e2e/pkg/manifest.go create mode 100644 sei-tendermint/test/e2e/pkg/testnet.go create mode 100755 sei-tendermint/test/e2e/run-multiple.sh create mode 100644 sei-tendermint/test/e2e/runner/benchmark.go create mode 100644 sei-tendermint/test/e2e/runner/cleanup.go create mode 100644 sei-tendermint/test/e2e/runner/evidence.go create mode 100644 sei-tendermint/test/e2e/runner/exec.go create mode 100644 sei-tendermint/test/e2e/runner/load.go create mode 100644 sei-tendermint/test/e2e/runner/main.go create mode 100644 sei-tendermint/test/e2e/runner/perturb.go create mode 100644 sei-tendermint/test/e2e/runner/rpc.go create mode 100644 sei-tendermint/test/e2e/runner/setup.go create mode 100644 sei-tendermint/test/e2e/runner/start.go create mode 100644 sei-tendermint/test/e2e/runner/test.go create mode 100644 sei-tendermint/test/e2e/runner/wait.go create mode 100644 sei-tendermint/test/e2e/tests/app_test.go create mode 100644 sei-tendermint/test/e2e/tests/block_test.go create mode 100644 sei-tendermint/test/e2e/tests/e2e_test.go create mode 100644 sei-tendermint/test/e2e/tests/evidence_test.go create mode 100644 sei-tendermint/test/e2e/tests/net_test.go create mode 100644 sei-tendermint/test/e2e/tests/validator_test.go create mode 100644 sei-tendermint/test/fuzz/README.md create mode 100755 sei-tendermint/test/fuzz/oss-fuzz-build.sh create mode 100644 sei-tendermint/test/fuzz/tests/mempool_test.go create mode 100644 sei-tendermint/test/fuzz/tests/p2p_secretconnection_test.go create mode 100644 sei-tendermint/test/fuzz/tests/rpc_jsonrpc_server_test.go create mode 100644 sei-tendermint/test/fuzz/tests/testdata/fuzz/FuzzMempool/1daffc1033a0bfc7f0c2bccb7440674e67a9e2cc0a4531863076254ada059863 create mode 100644 sei-tendermint/test/fuzz/tests/testdata/fuzz/FuzzMempool/582528ddfad69eb57775199a43e0f9fd5c94bba343ce7bb6724d4ebafe311ed4 create mode 100644 sei-tendermint/test/fuzz/tests/testdata/fuzz/FuzzMempool/d40a98862ed393eb712e47a91bcef18e6f24cf368bb4bd248c7a7101ef8e178d create mode 100644 sei-tendermint/test/fuzz/tests/testdata/fuzz/FuzzP2PSecretConnection/0f1a3d10e4d642e42a3ccd9bad652d355431f5824327271aca6f648e8cd4e786 create mode 100644 sei-tendermint/test/fuzz/tests/testdata/fuzz/FuzzP2PSecretConnection/172c521d1c5e7a5cce55e39b235928fc1c8c4adbb4635913c204c4724cf47d20 create mode 100644 sei-tendermint/test/fuzz/tests/testdata/fuzz/FuzzP2PSecretConnection/a9481542b8154bfe8fe868c8907cb66557347cb9b45709b17da861997d7cabea create mode 100644 sei-tendermint/test/fuzz/tests/testdata/fuzz/FuzzP2PSecretConnection/ba3758980fe724f83bdf1cb97caa73657b4a78d48e5fd6fc3b1590d24799e803 create mode 100644 sei-tendermint/test/fuzz/tests/testdata/fuzz/FuzzP2PSecretConnection/c22ff3cdf5145a03ecc6a2c18a7ec4eb3c9e1384af92cfa14cf50951535b6c85 create mode 100644 sei-tendermint/test/fuzz/tests/testdata/fuzz/FuzzP2PSecretConnection/d40a98862ed393eb712e47a91bcef18e6f24cf368bb4bd248c7a7101ef8e178d create mode 100644 sei-tendermint/test/fuzz/tests/testdata/fuzz/FuzzP2PSecretConnection/dc7304b2cddeadd08647d30b1d027f749960376c338e14a81e0396ffc6e6d6bd create mode 100644 sei-tendermint/test/fuzz/tests/testdata/fuzz/FuzzRPCJSONRPCServer/058ae08103537df220789dea46edb8b7cf7368e90da0cb35888a1452f4d114a2 create mode 100644 sei-tendermint/test/fuzz/tests/testdata/fuzz/FuzzRPCJSONRPCServer/2ab633cb322fca9e76fc965b430076844ebd0b3c4f30f5263b94a3d50f00bce6 create mode 100644 sei-tendermint/test/fuzz/tests/testdata/fuzz/FuzzRPCJSONRPCServer/aadb440fa55da05c1185e3e64b33c804d994cce06781e8c39481411793a8a73f create mode 100644 sei-tendermint/test/fuzz/tests/testdata/fuzz/FuzzRPCJSONRPCServer/d40a98862ed393eb712e47a91bcef18e6f24cf368bb4bd248c7a7101ef8e178d create mode 100644 sei-tendermint/test/test_cover.sh create mode 100644 sei-tendermint/tools/README.md create mode 100644 sei-tendermint/tools/tools.go create mode 100644 sei-tendermint/types/block.go create mode 100644 sei-tendermint/types/block_meta.go create mode 100644 sei-tendermint/types/block_meta_test.go create mode 100644 sei-tendermint/types/block_test.go create mode 100644 sei-tendermint/types/canonical.go create mode 100644 sei-tendermint/types/canonical_test.go create mode 100644 sei-tendermint/types/encoding_helper.go create mode 100644 sei-tendermint/types/errors.go create mode 100644 sei-tendermint/types/errors_p2p.go create mode 100644 sei-tendermint/types/events.go create mode 100644 sei-tendermint/types/events_test.go create mode 100644 sei-tendermint/types/evidence.go create mode 100644 sei-tendermint/types/evidence_test.go create mode 100644 sei-tendermint/types/genesis.go create mode 100644 sei-tendermint/types/genesis_test.go create mode 100644 sei-tendermint/types/light.go create mode 100644 sei-tendermint/types/light_test.go create mode 100644 sei-tendermint/types/mempool.go create mode 100644 sei-tendermint/types/node_id.go create mode 100644 sei-tendermint/types/node_info.go create mode 100644 sei-tendermint/types/node_info_test.go create mode 100644 sei-tendermint/types/node_key.go create mode 100644 sei-tendermint/types/node_key_test.go create mode 100644 sei-tendermint/types/params.go create mode 100644 sei-tendermint/types/params_test.go create mode 100644 sei-tendermint/types/part_set.go create mode 100644 sei-tendermint/types/part_set_test.go create mode 100644 sei-tendermint/types/priv_validator.go create mode 100644 sei-tendermint/types/proposal.go create mode 100644 sei-tendermint/types/proposal_test.go create mode 100644 sei-tendermint/types/protobuf.go create mode 100644 sei-tendermint/types/protobuf_test.go create mode 100644 sei-tendermint/types/signable.go create mode 100644 sei-tendermint/types/signed_msg_type.go create mode 100644 sei-tendermint/types/test_util.go create mode 100644 sei-tendermint/types/tx.go create mode 100644 sei-tendermint/types/tx_test.go create mode 100644 sei-tendermint/types/utils.go create mode 100644 sei-tendermint/types/validation.go create mode 100644 sei-tendermint/types/validation_test.go create mode 100644 sei-tendermint/types/validator.go create mode 100644 sei-tendermint/types/validator_set.go create mode 100644 sei-tendermint/types/validator_set_test.go create mode 100644 sei-tendermint/types/validator_test.go create mode 100644 sei-tendermint/types/vote.go create mode 100644 sei-tendermint/types/vote_set.go create mode 100644 sei-tendermint/types/vote_set_test.go create mode 100644 sei-tendermint/types/vote_test.go create mode 100644 sei-tendermint/version/version.go diff --git a/sei-tendermint/.clang-format b/sei-tendermint/.clang-format new file mode 100644 index 0000000000..dd819a18f6 --- /dev/null +++ b/sei-tendermint/.clang-format @@ -0,0 +1,11 @@ +--- +Language: Proto +BasedOnStyle: Google +IndentWidth: 2 +ColumnLimit: 0 +AlignConsecutiveAssignments: true +AlignConsecutiveDeclarations: true +SpacesInSquareBrackets: true +ReflowComments: true +SortIncludes: true +SortUsingDeclarations: true diff --git a/sei-tendermint/.dockerignore b/sei-tendermint/.dockerignore new file mode 100644 index 0000000000..a7ae6a5b0c --- /dev/null +++ b/sei-tendermint/.dockerignore @@ -0,0 +1,5 @@ +build +test/e2e/build +test/e2e/networks +test/logs +test/p2p/data diff --git a/sei-tendermint/.editorconfig b/sei-tendermint/.editorconfig new file mode 100644 index 0000000000..481621f761 --- /dev/null +++ b/sei-tendermint/.editorconfig @@ -0,0 +1,16 @@ +# top-most EditorConfig file +root = true + +# Unix-style newlines with a newline ending every file +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.{sh,Makefile}] +indent_style = tab + +[*.proto] +indent_style = space +indent_size = 2 diff --git a/sei-tendermint/.gitignore b/sei-tendermint/.gitignore new file mode 100644 index 0000000000..1e3cbce3c1 --- /dev/null +++ b/sei-tendermint/.gitignore @@ -0,0 +1,57 @@ +*.bak +*.iml +*.log +*.swo +*.swp +*/.glide +*/vendor +.DS_Store +.bak +.idea/ +.revision +.tendermint +.tendermint-lite +.terraform +.vagrant +.vendor-new/ +.vscode/ +abci/abci-cli +addrbook.json +artifacts/* +build/* +coverage.txt +docs/.vuepress/dist +docs/_build +docs/dist +docs/node_modules/ +docs/spec +docs/.vuepress/public/rpc +index.html.md +libs/pubsub/query/fuzz_test/output +profile\.out +remote_dump +rpc/test/.tendermint +scripts/cutWALUntil/cutWALUntil +scripts/wal2json/wal2json +shunit2 +terraform.tfstate +terraform.tfstate.backup +terraform.tfstate.d +test/app/grpc_client +test/e2e/build +test/e2e/networks/*/ +test/logs +test/p2p/data/ +vendor +test/fuzz/**/corpus +test/fuzz/**/crashers +test/fuzz/**/suppressions +test/fuzz/**/*.zip +proto/spec/**/*.pb.go +*.aux +*.bbl +*.blg +*.log +*.pdf +*.gz +*.dvi diff --git a/sei-tendermint/.golangci.yml b/sei-tendermint/.golangci.yml new file mode 100644 index 0000000000..7330f25ee6 --- /dev/null +++ b/sei-tendermint/.golangci.yml @@ -0,0 +1,59 @@ +linters: + enable: + - asciicheck + - bodyclose + - deadcode + - depguard + - dogsled + - dupl + - errcheck + - exportloopref + # - funlen + # - gochecknoglobals + # - gochecknoinits + # - gocognit + - goconst + # - gocritic + # - gocyclo + # - godox + - gofmt + - goimports + - revive + - gosec + - gosimple + - govet + - ineffassign + # - interfacer + # - lll + # - maligned + - misspell + - nakedret + - nolintlint + - prealloc + - staticcheck + - structcheck + - stylecheck + - typecheck + - unconvert + # - unparam + - unused + - varcheck + # - whitespace + # - wsl + +issues: + exclude-rules: + - path: _test\.go + linters: + - gosec + max-same-issues: 50 + +linters-settings: + dogsled: + max-blank-identifiers: 3 + golint: + min-confidence: 0 + maligned: + suggest-new: true + misspell: + locale: US diff --git a/sei-tendermint/.goreleaser.yml b/sei-tendermint/.goreleaser.yml new file mode 100644 index 0000000000..28c6a017d6 --- /dev/null +++ b/sei-tendermint/.goreleaser.yml @@ -0,0 +1,36 @@ +project_name: tendermint + +env: + # Require use of Go modules. + - GO111MODULE=on + +builds: + - id: "tendermint" + main: ./cmd/tendermint/main.go + ldflags: + - -s -w -X github.com/tendermint/tendermint/version.TMCoreSemVer={{ .Version }} + env: + - CGO_ENABLED=0 + goos: + - darwin + - linux + - windows + goarch: + - amd64 + - arm + - arm64 + +checksum: + name_template: SHA256SUMS-{{.Version}}.txt + algorithm: sha256 + +release: + name_template: "{{.Version}} (WARNING: BETA SOFTWARE)" + +archives: + - files: + - LICENSE + - README.md + - UPGRADING.md + - SECURITY.md + - CHANGELOG.md diff --git a/sei-tendermint/.markdownlint.yml b/sei-tendermint/.markdownlint.yml new file mode 100644 index 0000000000..80e3be4edb --- /dev/null +++ b/sei-tendermint/.markdownlint.yml @@ -0,0 +1,11 @@ +default: true +MD001: false +MD007: {indent: 4} +MD013: false +MD024: {siblings_only: true} +MD025: false +MD033: false +MD036: false +MD010: false +MD012: false +MD028: false diff --git a/sei-tendermint/.markdownlintignore b/sei-tendermint/.markdownlintignore new file mode 100644 index 0000000000..12b20d6bb1 --- /dev/null +++ b/sei-tendermint/.markdownlintignore @@ -0,0 +1,6 @@ +docs/node_modules +CHANGELOG.md +docs/architecture/* +crypto/secp256k1/** +scripts/* +.github diff --git a/sei-tendermint/.md-link-check.json b/sei-tendermint/.md-link-check.json new file mode 100644 index 0000000000..6f47fa2c94 --- /dev/null +++ b/sei-tendermint/.md-link-check.json @@ -0,0 +1,6 @@ +{ + "retryOn429": true, + "retryCount": 5, + "fallbackRetryDelay": "30s", + "aliveStatusCodes": [200, 206, 503] +} diff --git a/sei-tendermint/CHANGELOG.md b/sei-tendermint/CHANGELOG.md new file mode 100644 index 0000000000..8b30abf027 --- /dev/null +++ b/sei-tendermint/CHANGELOG.md @@ -0,0 +1,4028 @@ +# Changelog + +Friendly reminder: We have a [bug bounty program](https://hackerone.com/cosmos). + +## v0.35.5 + +May 26, 2022 + +### BUG FIXES + +- [p2p] [\#8371](https://github.com/tendermint/tendermint/pull/8371) fix setting in con-tracker (backport #8370) (@tychoish) +- [blocksync] [\#8496](https://github.com/tendermint/tendermint/pull/8496) validate block against state before persisting it to disk (@cmwaters) +- [statesync] [\#8494](https://github.com/tendermint/tendermint/pull/8494) avoid potential race (@tychoish) +- [keymigrate] [\#8467](https://github.com/tendermint/tendermint/pull/8467) improve filtering for legacy transaction hashes (backport #8466) (@creachadair) +- [rpc] [\#8594](https://github.com/tendermint/tendermint/pull/8594) fix encoding of block_results responses (@creachadair) + +## v0.35.4 + +April 18, 2022 + +Special thanks to external contributors on this release: @firelizzard18 + +### FEATURES + +- [cli] [\#8300](https://github.com/tendermint/tendermint/pull/8300) Add a tool to update old config files to the latest version [backport [\#8281](https://github.com/tendermint/tendermint/pull/8281)]. (@creachadair) + +### IMPROVEMENTS + +### BUG FIXES + +- [cli] [\#8294](https://github.com/tendermint/tendermint/pull/8294) keymigrate: ensure block hash keys are correctly translated. (@creachadair) +- [cli] [\#8352](https://github.com/tendermint/tendermint/pull/8352) keymigrate: ensure transaction hash keys are correctly translated. (@creachadair) + +## v0.35.3 + +April 8, 2022 + +### FEATURES + +- [cli] [\#8081](https://github.com/tendermint/tendermint/pull/8081) add a safer-to-use `reset-state` command. (@marbar3778) + +### IMPROVEMENTS + +- [consensus] [\#8138](https://github.com/tendermint/tendermint/pull/8138) change lock handling in reactor and handleMsg for RoundState. (@williambanfield) + +### BUG FIXES + +- [cli] [\#8276](https://github.com/tendermint/tendermint/pull/8276) scmigrate: ensure target key is correctly renamed. (@creachadair) + +## v0.35.2 + +February 28, 2022 + +Special thanks to external contributors on this release: @ashcherbakov, @yihuang, @waelsy123 + +### IMPROVEMENTS + +- [consensus] [\#7875](https://github.com/tendermint/tendermint/pull/7875) additional timing metrics. (@williambanfield) + +### BUG FIXES + +- [abci] [\#7990](https://github.com/tendermint/tendermint/pull/7990) revert buffer limit change. (@williambanfield) +- [cli] [#7837](https://github.com/tendermint/tendermint/pull/7837) fix app hash in state rollback. (@yihuang) +- [cli] [\#7869](https://github.com/tendermint/tendermint/pull/7869) Update unsafe-reset-all command to match release v35. (waelsy123) +- [light] [\#7640](https://github.com/tendermint/tendermint/pull/7640) Light Client: fix absence proof verification (@ashcherbakov) +- [light] [\#7641](https://github.com/tendermint/tendermint/pull/7641) Light Client: fix querying against the latest height (@ashcherbakov) +- [mempool] [\#7718](https://github.com/tendermint/tendermint/pull/7718) return duplicate tx errors more consistently. (@tychoish) +- [rpc] [\#7744](https://github.com/tendermint/tendermint/pull/7744) fix layout of endpoint list. (@creachadair) +- [statesync] [\#7886](https://github.com/tendermint/tendermint/pull/7886) assert app version matches. (@cmwaters) + +## v0.35.1 + +January 26, 2022 + +Special thanks to external contributors on this release: @altergui, @odeke-em, +@thanethomson + +### BREAKING CHANGES + +- CLI/RPC/Config + + - [config] [\#7276](https://github.com/tendermint/tendermint/pull/7276) rpc: Add experimental config params to allow for subscription buffer size control (@thanethomson). + +- P2P Protocol + + - [p2p] [\#7265](https://github.com/tendermint/tendermint/pull/7265) Peer manager reduces peer score for each failed dial attempts for peers that have not successfully dialed. (@tychoish) + - [p2p] [\#7594](https://github.com/tendermint/tendermint/pull/7594) always advertise self, to enable mutual address discovery. (@altergui) + +### FEATURES + +- [rpc] [\#7270](https://github.com/tendermint/tendermint/pull/7270) Add `header` and `header_by_hash` RPC Client queries. (@fedekunze) (@cmwaters) + +### IMPROVEMENTS + +- [internal/protoio] [\#7325](https://github.com/tendermint/tendermint/pull/7325) Optimized `MarshalDelimited` by inlining the common case and using a `sync.Pool` in the worst case. (@odeke-em) +- [\#7338](https://github.com/tendermint/tendermint/pull/7338) pubsub: Performance improvements for the event query API (backport of #7319) (@creachadair) +- [\#7252](https://github.com/tendermint/tendermint/pull/7252) Add basic metrics to the indexer package. (@creachadair) +- [\#7338](https://github.com/tendermint/tendermint/pull/7338) Performance improvements for the event query API. (@creachadair) + +### BUG FIXES + +- [\#7310](https://github.com/tendermint/tendermint/issues/7310) pubsub: Report a non-nil error when shutting down (fixes #7306). +- [\#7355](https://github.com/tendermint/tendermint/pull/7355) Fix incorrect tests using the PSQL sink. (@creachadair) +- [\#7683](https://github.com/tendermint/tendermint/pull/7683) rpc: check error code for broadcast_tx_commit. (@tychoish) + +## v0.35.0 + +November 4, 2021 + +Special thanks to external contributors on this release: @JayT106, +@bipulprasad, @alessio, @Yawning, @silasdavis, @cuonglm, @tanyabouman, +@JoeKash, @githubsands, @jeebster, @crypto-facs, @liamsi, and @gotjoshua + +### FEATURES + +- [cli] [#7033](https://github.com/tendermint/tendermint/pull/7033) Add a `rollback` command to rollback to the previous tendermint state in the event of an incorrect app hash. (@cmwaters) +- [config] [\#7174](https://github.com/tendermint/tendermint/pull/7174) expose ability to write config to arbitrary paths. (@tychoish) +- [mempool, rpc] [\#7065](https://github.com/tendermint/tendermint/pull/7065) add removetx rpc method (backport of #7047) (@tychoish). +- [\#6982](https://github.com/tendermint/tendermint/pull/6982) tendermint binary has built-in suppport for running the e2e application (with state sync support) (@cmwaters). +- [config] Add `--mode` flag and config variable. See [ADR-52](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-052-tendermint-mode.md) @dongsam +- [rpc] [\#6329](https://github.com/tendermint/tendermint/pull/6329) Don't cap page size in unsafe mode (@gotjoshua, @cmwaters) +- [pex] [\#6305](https://github.com/tendermint/tendermint/pull/6305) v2 pex reactor with backwards compatability. Introduces two new pex messages to + accomodate for the new p2p stack. Removes the notion of seeds and crawling. All peer + exchange reactors behave the same. (@cmwaters) +- [crypto] [\#6376](https://github.com/tendermint/tendermint/pull/6376) Enable sr25519 as a validator key type +- [mempool] [\#6466](https://github.com/tendermint/tendermint/pull/6466) Introduction of a prioritized mempool. (@alexanderbez) + - `Priority` and `Sender` have been introduced into the `ResponseCheckTx` type, where the `priority` will determine the prioritization of + the transaction when a proposer reaps transactions for a block proposal. The `sender` field acts as an index. + - Operators may toggle between the legacy mempool reactor, `v0`, and the new prioritized reactor, `v1`, by setting the + `mempool.version` configuration, where `v1` is the default configuration. + - Applications that do not specify a priority, i.e. zero, will have transactions reaped by the order in which they are received by the node. + - Transactions are gossiped in FIFO order as they are in `v0`. +- [config/indexer] [\#6411](https://github.com/tendermint/tendermint/pull/6411) Introduce support for custom event indexing data sources, specifically PostgreSQL. (@JayT106) +- [blocksync/event] [\#6619](https://github.com/tendermint/tendermint/pull/6619) Emit blocksync status event when switching consensus/blocksync (@JayT106) +- [statesync/event] [\#6700](https://github.com/tendermint/tendermint/pull/6700) Emit statesync status start/end event (@JayT106) +- [inspect] [\#6785](https://github.com/tendermint/tendermint/pull/6785) Add a new `inspect` command for introspecting the state and block store of a crashed tendermint node. (@williambanfield) + +### BUG FIXES + +- [\#7106](https://github.com/tendermint/tendermint/pull/7106) Revert mutex change to ABCI Clients (@tychoish). +- [\#7142](https://github.com/tendermint/tendermint/pull/7142) mempool: remove panic when recheck-tx was not sent to ABCI application (@williambanfield). +- [consensus]: [\#7060](https://github.com/tendermint/tendermint/pull/7060) + wait until peerUpdates channel is closed to close remaining peers (@williambanfield) +- [privval] [\#5638](https://github.com/tendermint/tendermint/pull/5638) Increase read/write timeout to 5s and calculate ping interval based on it (@JoeKash) +- [evidence] [\#6375](https://github.com/tendermint/tendermint/pull/6375) Fix bug with inconsistent LightClientAttackEvidence hashing (cmwaters) +- [rpc] [\#6507](https://github.com/tendermint/tendermint/pull/6507) Ensure RPC client can handle URLs without ports (@JayT106) +- [statesync] [\#6463](https://github.com/tendermint/tendermint/pull/6463) Adds Reverse Sync feature to fetch historical light blocks after state sync in order to verify any evidence (@cmwaters) +- [blocksync] [\#6590](https://github.com/tendermint/tendermint/pull/6590) Update the metrics during blocksync (@JayT106) + +### BREAKING CHANGES + +- Go API + + - [crypto/armor]: [\#6963](https://github.com/tendermint/tendermint/pull/6963) remove package which is unused, and based on + deprecated fundamentals. Downstream users should maintain this + library. (@tychoish) + - [state] [store] [proxy] [rpc/core]: [\#6937](https://github.com/tendermint/tendermint/pull/6937) move packages to + `internal` to prevent consumption of these internal APIs by + external users. (@tychoish) + - [pubsub] [\#6634](https://github.com/tendermint/tendermint/pull/6634) The `Query#Matches` method along with other pubsub methods, now accepts a `[]abci.Event` instead of `map[string][]string`. (@alexanderbez) + - [p2p] [\#6618](https://github.com/tendermint/tendermint/pull/6618) [\#6583](https://github.com/tendermint/tendermint/pull/6583) Move `p2p.NodeInfo`, `p2p.NodeID` and `p2p.NetAddress` into `types` to support use in external packages. (@tychoish) + - [node] [\#6540](https://github.com/tendermint/tendermint/pull/6540) Reduce surface area of the `node` package by making most of the implementation details private. (@tychoish) + - [p2p] [\#6547](https://github.com/tendermint/tendermint/pull/6547) Move the entire `p2p` package and all reactor implementations into `internal`. (@tychoish) + - [libs/log] [\#6534](https://github.com/tendermint/tendermint/pull/6534) Remove the existing custom Tendermint logger backed by go-kit. The logging interface, `Logger`, remains. Tendermint still provides a default logger backed by the performant zerolog logger. (@alexanderbez) + - [libs/time] [\#6495](https://github.com/tendermint/tendermint/pull/6495) Move types/time to libs/time to improve consistency. (@tychoish) + - [mempool] [\#6529](https://github.com/tendermint/tendermint/pull/6529) The `Context` field has been removed from the `TxInfo` type. `CheckTx` now requires a `Context` argument. (@alexanderbez) + - [abci/client, proxy] [\#5673](https://github.com/tendermint/tendermint/pull/5673) `Async` funcs return an error, `Sync` and `Async` funcs accept `context.Context` (@melekes) + - [p2p] Remove unused function `MakePoWTarget`. (@erikgrinaker) + - [libs/bits] [\#5720](https://github.com/tendermint/tendermint/pull/5720) Validate `BitArray` in `FromProto`, which now returns an error (@melekes) + - [proto/p2p] Rename `DefaultNodeInfo` and `DefaultNodeInfoOther` to `NodeInfo` and `NodeInfoOther` (@erikgrinaker) + - [proto/p2p] Rename `NodeInfo.default_node_id` to `node_id` (@erikgrinaker) + - [libs/os] Kill() and {Must,}{Read,Write}File() functions have been removed. (@alessio) + - [store] [\#5848](https://github.com/tendermint/tendermint/pull/5848) Remove block store state in favor of using the db iterators directly (@cmwaters) + - [state] [\#5864](https://github.com/tendermint/tendermint/pull/5864) Use an iterator when pruning state (@cmwaters) + - [types] [\#6023](https://github.com/tendermint/tendermint/pull/6023) Remove `tm2pb.Header`, `tm2pb.BlockID`, `tm2pb.PartSetHeader` and `tm2pb.NewValidatorUpdate`. + - Each of the above types has a `ToProto` and `FromProto` method or function which replaced this logic. + - [light] [\#6054](https://github.com/tendermint/tendermint/pull/6054) Move `MaxRetryAttempt` option from client to provider. + - `NewWithOptions` now sets the max retry attempts and timeouts (@cmwaters) + - [all] [\#6077](https://github.com/tendermint/tendermint/pull/6077) Change spelling from British English to American (@cmwaters) + - Rename "Subscription.Cancelled()" to "Subscription.Canceled()" in libs/pubsub + - Rename "behaviour" pkg to "behavior" and internalized it in blocksync v2 + - [rpc/client/http] [\#6176](https://github.com/tendermint/tendermint/pull/6176) Remove `endpoint` arg from `New`, `NewWithTimeout` and `NewWithClient` (@melekes) + - [rpc/client/http] [\#6176](https://github.com/tendermint/tendermint/pull/6176) Unexpose `WSEvents` (@melekes) + - [rpc/jsonrpc/client/ws_client] [\#6176](https://github.com/tendermint/tendermint/pull/6176) `NewWS` no longer accepts options (use `NewWSWithOptions` and `OnReconnect` funcs to configure the client) (@melekes) + - [internal/libs] [\#6366](https://github.com/tendermint/tendermint/pull/6366) Move `autofile`, `clist`,`fail`,`flowrate`, `protoio`, `sync`, `tempfile`, `test` and `timer` lib packages to an internal folder + - [libs/rand] [\#6364](https://github.com/tendermint/tendermint/pull/6364) Remove most of libs/rand in favour of standard lib's `math/rand` (@liamsi) + - [mempool] [\#6466](https://github.com/tendermint/tendermint/pull/6466) The original mempool reactor has been versioned as `v0` and moved to a sub-package under the root `mempool` package. + Some core types have been kept in the `mempool` package such as `TxCache` and it's implementations, the `Mempool` interface itself + and `TxInfo`. (@alexanderbez) + - [crypto/sr25519] [\#6526](https://github.com/tendermint/tendermint/pull/6526) Do not re-execute the Ed25519-style key derivation step when doing signing and verification. The derivation is now done once and only once. This breaks `sr25519.GenPrivKeyFromSecret` output compatibility. (@Yawning) + - [types] [\#6627](https://github.com/tendermint/tendermint/pull/6627) Move `NodeKey` to types to make the type public. + - [config] [\#6627](https://github.com/tendermint/tendermint/pull/6627) Extend `config` to contain methods `LoadNodeKeyID` and `LoadorGenNodeKeyID` + - [blocksync] [\#6755](https://github.com/tendermint/tendermint/pull/6755) Rename `FastSync` and `Blockchain` package to `BlockSync` (@cmwaters) + +- CLI/RPC/Config + + - [pubsub/events] [\#6634](https://github.com/tendermint/tendermint/pull/6634) The `ResultEvent.Events` field is now of type `[]abci.Event` preserving event order instead of `map[string][]string`. (@alexanderbez) + - [config] [\#5598](https://github.com/tendermint/tendermint/pull/5598) The `test_fuzz` and `test_fuzz_config` P2P settings have been removed. (@erikgrinaker) + - [config] [\#5728](https://github.com/tendermint/tendermint/pull/5728) `fastsync.version = "v1"` is no longer supported (@melekes) + - [cli] [\#5772](https://github.com/tendermint/tendermint/pull/5772) `gen_node_key` prints JSON-encoded `NodeKey` rather than ID and does not save it to `node_key.json` (@melekes) + - [cli] [\#5777](https://github.com/tendermint/tendermint/pull/5777) use hyphen-case instead of snake_case for all cli commands and config parameters (@cmwaters) + - [rpc] [\#6019](https://github.com/tendermint/tendermint/pull/6019) standardise RPC errors and return the correct status code (@bipulprasad & @cmwaters) + - [rpc] [\#6168](https://github.com/tendermint/tendermint/pull/6168) Change default sorting to desc for `/tx_search` results (@melekes) + - [cli] [\#6282](https://github.com/tendermint/tendermint/pull/6282) User must specify the node mode when using `tendermint init` (@cmwaters) + - [state/indexer] [\#6382](https://github.com/tendermint/tendermint/pull/6382) reconstruct indexer, move txindex into the indexer package (@JayT106) + - [cli] [\#6372](https://github.com/tendermint/tendermint/pull/6372) Introduce `BootstrapPeers` as part of the new p2p stack. Peers to be connected on startup (@cmwaters) + - [config] [\#6462](https://github.com/tendermint/tendermint/pull/6462) Move `PrivValidator` configuration out of `BaseConfig` into its own section. (@tychoish) + - [rpc] [\#6610](https://github.com/tendermint/tendermint/pull/6610) Add MaxPeerBlockHeight into /status rpc call (@JayT106) + - [blocksync/rpc] [\#6620](https://github.com/tendermint/tendermint/pull/6620) Add TotalSyncedTime & RemainingTime to SyncInfo in /status RPC (@JayT106) + - [rpc/grpc] [\#6725](https://github.com/tendermint/tendermint/pull/6725) Mark gRPC in the RPC layer as deprecated. + - [blocksync/v2] [\#6730](https://github.com/tendermint/tendermint/pull/6730) Fast Sync v2 is deprecated, please use v0 + - [rpc] Add genesis_chunked method to support paginated and parallel fetching of large genesis documents. + - [rpc/jsonrpc/server] [\#6785](https://github.com/tendermint/tendermint/pull/6785) `Listen` function updated to take an `int` argument, `maxOpenConnections`, instead of an entire config object. (@williambanfield) + - [rpc] [\#6820](https://github.com/tendermint/tendermint/pull/6820) Update RPC methods to reflect changes in the p2p layer, disabling support for `UnsafeDialPeers` and `UnsafeDialPeers` when used with the new p2p layer, and changing the response format of the peer list in `NetInfo` for all users. + - [cli] [\#6854](https://github.com/tendermint/tendermint/pull/6854) Remove deprecated snake case commands. (@tychoish) + - [tools] [\#6498](https://github.com/tendermint/tendermint/pull/6498) Set OS home dir to instead of the hardcoded PATH. (@JayT106) + - [cli/indexer] [\#6676](https://github.com/tendermint/tendermint/pull/6676) Reindex events command line tooling. (@JayT106) + +- Apps + + - [ABCI] [\#6408](https://github.com/tendermint/tendermint/pull/6408) Change the `key` and `value` fields from `[]byte` to `string` in the `EventAttribute` type. (@alexanderbez) + - [ABCI] [\#5447](https://github.com/tendermint/tendermint/pull/5447) Remove `SetOption` method from `ABCI.Client` interface + - [ABCI] [\#5447](https://github.com/tendermint/tendermint/pull/5447) Reset `Oneof` indexes for `Request` and `Response`. + - [ABCI] [\#5818](https://github.com/tendermint/tendermint/pull/5818) Use protoio for msg length delimitation. Migrates from int64 to uint64 length delimiters. + - [ABCI] [\#3546](https://github.com/tendermint/tendermint/pull/3546) Add `mempool_error` field to `ResponseCheckTx`. This field will contain an error string if Tendermint encountered an error while adding a transaction to the mempool. (@williambanfield) + - [Version] [\#6494](https://github.com/tendermint/tendermint/pull/6494) `TMCoreSemVer` has been renamed to `TMVersion`. + - It is not required any longer to set ldflags to set version strings + - [abci/counter] [\#6684](https://github.com/tendermint/tendermint/pull/6684) Delete counter example app + +- Data Storage + - [store/state/evidence/light] [\#5771](https://github.com/tendermint/tendermint/pull/5771) Use an order-preserving varint key encoding (@cmwaters) + - [mempool] [\#6396](https://github.com/tendermint/tendermint/pull/6396) Remove mempool's write ahead log (WAL), (previously unused by the tendermint code). (@tychoish) + - [state] [\#6541](https://github.com/tendermint/tendermint/pull/6541) Move pruneBlocks from consensus/state to state/execution. (@JayT106) + +### IMPROVEMENTS + +- [libs/log] Console log formatting changes as a result of [\#6534](https://github.com/tendermint/tendermint/pull/6534) and [\#6589](https://github.com/tendermint/tendermint/pull/6589). (@tychoish) +- [statesync] [\#6566](https://github.com/tendermint/tendermint/pull/6566) Allow state sync fetchers and request timeout to be configurable. (@alexanderbez) +- [types] [\#6478](https://github.com/tendermint/tendermint/pull/6478) Add `block_id` to `newblock` event (@jeebster) +- [crypto/ed25519] [\#5632](https://github.com/tendermint/tendermint/pull/5632) Adopt zip215 `ed25519` verification. (@marbar3778) +- [crypto/ed25519] [\#6526](https://github.com/tendermint/tendermint/pull/6526) Use [curve25519-voi](https://github.com/oasisprotocol/curve25519-voi) for `ed25519` signing and verification. (@Yawning) +- [crypto/sr25519] [\#6526](https://github.com/tendermint/tendermint/pull/6526) Use [curve25519-voi](https://github.com/oasisprotocol/curve25519-voi) for `sr25519` signing and verification. (@Yawning) +- [privval] [\#5603](https://github.com/tendermint/tendermint/pull/5603) Add `--key` to `init`, `gen_validator`, `testnet` & `unsafe_reset_priv_validator` for use in generating `secp256k1` keys. +- [privval] [\#5725](https://github.com/tendermint/tendermint/pull/5725) Add gRPC support to private validator. +- [privval] [\#5876](https://github.com/tendermint/tendermint/pull/5876) `tendermint show-validator` will query the remote signer if gRPC is being used (@marbar3778) +- [abci/client] [\#5673](https://github.com/tendermint/tendermint/pull/5673) `Async` requests return an error if queue is full (@melekes) +- [mempool] [\#5673](https://github.com/tendermint/tendermint/pull/5673) Cancel `CheckTx` requests if RPC client disconnects or times out (@melekes) +- [abci] [\#5706](https://github.com/tendermint/tendermint/pull/5706) Added `AbciVersion` to `RequestInfo` allowing applications to check ABCI version when connecting to Tendermint. (@marbar3778) +- [blocksync/v1] [\#5728](https://github.com/tendermint/tendermint/pull/5728) Remove blocksync v1 (@melekes) +- [blocksync/v0] [\#5741](https://github.com/tendermint/tendermint/pull/5741) Relax termination conditions and increase sync timeout (@melekes) +- [cli] [\#5772](https://github.com/tendermint/tendermint/pull/5772) `gen_node_key` output now contains node ID (`id` field) (@melekes) +- [blocksync/v2] [\#5774](https://github.com/tendermint/tendermint/pull/5774) Send status request when new peer joins (@melekes) +- [store] [\#5888](https://github.com/tendermint/tendermint/pull/5888) store.SaveBlock saves using batches instead of transactions for now to improve ACID properties. This is a quick fix for underlying issues around tm-db and ACID guarantees. (@githubsands) +- [consensus] [\#5987](https://github.com/tendermint/tendermint/pull/5987) and [\#5792](https://github.com/tendermint/tendermint/pull/5792) Remove the `time_iota_ms` consensus parameter. Merge `tmproto.ConsensusParams` and `abci.ConsensusParams`. (@marbar3778, @valardragon) +- [types] [\#5994](https://github.com/tendermint/tendermint/pull/5994) Reduce the use of protobuf types in core logic. (@marbar3778) + - `ConsensusParams`, `BlockParams`, `ValidatorParams`, `EvidenceParams`, `VersionParams`, `sm.Version` and `version.Consensus` have become native types. They still utilize protobuf when being sent over the wire or written to disk. +- [rpc/client/http] [\#6163](https://github.com/tendermint/tendermint/pull/6163) Do not drop events even if the `out` channel is full (@melekes) +- [node] [\#6059](https://github.com/tendermint/tendermint/pull/6059) Validate and complete genesis doc before saving to state store (@silasdavis) +- [state] [\#6067](https://github.com/tendermint/tendermint/pull/6067) Batch save state data (@githubsands & @cmwaters) +- [crypto] [\#6120](https://github.com/tendermint/tendermint/pull/6120) Implement batch verification interface for ed25519 and sr25519. (@marbar3778) +- [types] [\#6120](https://github.com/tendermint/tendermint/pull/6120) use batch verification for verifying commits signatures. + - If the key type supports the batch verification API it will try to batch verify. If the verification fails we will single verify each signature. +- [privval/file] [\#6185](https://github.com/tendermint/tendermint/pull/6185) Return error on `LoadFilePV`, `LoadFilePVEmptyState`. Allows for better programmatic control of Tendermint. +- [privval] [\#6240](https://github.com/tendermint/tendermint/pull/6240) Add `context.Context` to privval interface. +- [rpc] [\#6265](https://github.com/tendermint/tendermint/pull/6265) set cache control in http-rpc response header (@JayT106) +- [statesync] [\#6378](https://github.com/tendermint/tendermint/pull/6378) Retry requests for snapshots and add a minimum discovery time (5s) for new snapshots. +- [node/state] [\#6370](https://github.com/tendermint/tendermint/pull/6370) graceful shutdown in the consensus reactor (@JayT106) +- [crypto/merkle] [\#6443](https://github.com/tendermint/tendermint/pull/6443) Improve HashAlternatives performance (@cuonglm) +- [crypto/merkle] [\#6513](https://github.com/tendermint/tendermint/pull/6513) Optimize HashAlternatives (@marbar3778) +- [p2p/pex] [\#6509](https://github.com/tendermint/tendermint/pull/6509) Improve addrBook.hash performance (@cuonglm) +- [consensus/metrics] [\#6549](https://github.com/tendermint/tendermint/pull/6549) Change block_size gauge to a histogram for better observability over time (@marbar3778) +- [statesync] [\#6587](https://github.com/tendermint/tendermint/pull/6587) Increase chunk priority and re-request chunks that don't arrive (@cmwaters) +- [state/privval] [\#6578](https://github.com/tendermint/tendermint/pull/6578) No GetPubKey retry beyond the proposal/voting window (@JayT106) +- [rpc] [\#6615](https://github.com/tendermint/tendermint/pull/6615) Add TotalGasUsed to block_results response (@crypto-facs) +- [cmd/tendermint/commands] [\#6623](https://github.com/tendermint/tendermint/pull/6623) replace `$HOME/.some/test/dir` with `t.TempDir` (@tanyabouman) +- [statesync] \6807 Implement P2P state provider as an alternative to RPC (@cmwaters) + +## v0.34.19 + +### BUG FIXES + +- [cli] [\#8270](https://github.com/tendermint/tendermint/issues/8270) fix reset commands (@alexanderbez). + +## v0.34.18 + +### BREAKING CHANGES + +- CLI/RPC/Config + - [cli] [\#8258](https://github.com/tendermint/tendermint/pull/8258) Fix a bug in the cli that caused `unsafe-reset-all` to panic + +## v0.34.17 + +### BREAKING CHANGES + +- CLI/RPC/Config + + - [cli] [\#8081](https://github.com/tendermint/tendermint/issues/8081) make the reset command safe to use (@marbar3778). + +### BUG FIXES + +- [consensus] [\#8079](https://github.com/tendermint/tendermint/issues/8079) start the timeout ticker before relay (backport #7844) (@creachadair). +- [consensus] [\#7992](https://github.com/tendermint/tendermint/issues/7992) [\#7994](https://github.com/tendermint/tendermint/issues/7994) change lock handling in handleMsg and reactor to alleviate issues gossiping during long ABCI calls (@williambanfield). + +## v0.34.16 + +Special thanks to external contributors on this release: @yihuang + +### BUG FIXES + +- [consensus] [\#7617](https://github.com/tendermint/tendermint/issues/7617) calculate prevote message delay metric (backport #7551) (@williambanfield). +- [consensus] [\#7631](https://github.com/tendermint/tendermint/issues/7631) check proposal non-nil in prevote message delay metric (backport #7625) (@williambanfield). +- [statesync] [\#7885](https://github.com/tendermint/tendermint/issues/7885) statesync: assert app version matches (backport #7856) (@cmwaters). +- [statesync] [\#7881](https://github.com/tendermint/tendermint/issues/7881) fix app hash in state rollback (backport #7837) (@cmwaters). +- [cli] [#7837](https://github.com/tendermint/tendermint/pull/7837) fix app hash in state rollback. (@yihuang). + +## v0.34.15 + +Special thanks to external contributors on this release: @thanethomson + +### BUG FIXES + +- [\#7368](https://github.com/tendermint/tendermint/issues/7368) cmd: add integration test for rollback functionality (@cmwaters). +- [\#7309](https://github.com/tendermint/tendermint/issues/7309) pubsub: Report a non-nil error when shutting down (fixes #7306). +- [\#7057](https://github.com/tendermint/tendermint/pull/7057) Import Postgres driver support for the psql indexer (@creachadair). +- [\#7106](https://github.com/tendermint/tendermint/pull/7106) Revert mutex change to ABCI Clients (@tychoish). + +### IMPROVEMENTS + +- [config] [\#7230](https://github.com/tendermint/tendermint/issues/7230) rpc: Add experimental config params to allow for subscription buffer size control (@thanethomson). + +## v0.34.14 + +This release backports the `rollback` feature to allow recovery in the event of an incorrect app hash. + +### FEATURES + +- [\#6982](https://github.com/tendermint/tendermint/pull/6982) The tendermint binary now has built-in suppport for running the end-to-end test application (with state sync support) (@cmwaters). +- [cli] [#7033](https://github.com/tendermint/tendermint/pull/7033) Add a `rollback` command to rollback to the previous tendermint state. This may be useful in the event of non-determinstic app hash or when reverting an upgrade. @cmwaters + +### IMPROVEMENTS + +- [\#7103](https://github.com/tendermint/tendermint/pull/7104) Remove IAVL dependency (backport of #6550) (@cmwaters) + +### BUG FIXES + +- [\#7057](https://github.com/tendermint/tendermint/pull/7057) Import Postgres driver support for the psql indexer (@creachadair). +- [ABCI] [\#7110](https://github.com/tendermint/tendermint/issues/7110) Revert "change client to use multi-reader mutexes (#6873)" (@tychoish). + +## v0.34.13 + +*September 6, 2021* + +This release backports improvements to state synchronization and ABCI +performance under concurrent load, and the PostgreSQL event indexer. + +### IMPROVEMENTS + +- [statesync] [\#6881](https://github.com/tendermint/tendermint/issues/6881) improvements to stateprovider logic (@cmwaters) +- [ABCI] [\#6873](https://github.com/tendermint/tendermint/issues/6873) change client to use multi-reader mutexes (@tychoish) +- [indexing] [\#6906](https://github.com/tendermint/tendermint/issues/6906) enable the PostgreSQL indexer sink (@creachadair) + +## v0.34.12 + +*August 17, 2021* + +Special thanks to external contributors on this release: @JayT106. + +### FEATURES + +- [rpc] [\#6717](https://github.com/tendermint/tendermint/pull/6717) introduce + `/genesis_chunked` rpc endpoint for handling large genesis files by chunking them (@tychoish) + +### IMPROVEMENTS + +- [rpc] [\#6825](https://github.com/tendermint/tendermint/issues/6825) Remove egregious INFO log from `ABCI#Query` RPC. (@alexanderbez) + +### BUG FIXES + +- [light] [\#6685](https://github.com/tendermint/tendermint/pull/6685) fix bug + with incorrectly handling contexts that would occasionally freeze state sync. (@cmwaters) +- [privval] [\#6748](https://github.com/tendermint/tendermint/issues/6748) Fix vote timestamp to prevent chain halt (@JayT106) + +## v0.34.11 + +*June 18, 2021* + +This release improves the robustness of statesync; tweaking channel priorities and timeouts and +adding two new parameters to the state sync config. + +### BREAKING CHANGES + +- Apps + - [Version] [\#6494](https://github.com/tendermint/tendermint/pull/6494) `TMCoreSemVer` is not required to be set as a ldflag any longer. + +### IMPROVEMENTS + +- [statesync] [\#6566](https://github.com/tendermint/tendermint/pull/6566) Allow state sync fetchers and request timeout to be configurable. (@alexanderbez) +- [statesync] [\#6378](https://github.com/tendermint/tendermint/pull/6378) Retry requests for snapshots and add a minimum discovery time (5s) for new snapshots. (@tychoish) +- [statesync] [\#6582](https://github.com/tendermint/tendermint/pull/6582) Increase chunk priority and add multiple retry chunk requests (@cmwaters) + +### BUG FIXES + +- [evidence] [\#6375](https://github.com/tendermint/tendermint/pull/6375) Fix bug with inconsistent LightClientAttackEvidence hashing (@cmwaters) + +## v0.34.10 + +*April 14, 2021* + +This release fixes a bug where peers would sometimes try to send messages +on incorrect channels. Special thanks to our friends at Oasis Labs for surfacing +this issue! + +- [p2p/node] [\#6339](https://github.com/tendermint/tendermint/issues/6339) Fix bug with using custom channels (@cmwaters) +- [light] [\#6346](https://github.com/tendermint/tendermint/issues/6346) Correctly handle too high errors to improve client robustness (@cmwaters) + +## v0.34.9 + +*April 8, 2021* + +This release fixes a moderate severity security issue, Security Advisory Alderfly, +which impacts all networks that rely on Tendermint light clients. +Further details will be released once networks have upgraded. + +This release also includes a small Go API-breaking change, to reduce panics in the RPC layer. + +Special thanks to our external contributors on this release: @gchaincl + +### BREAKING CHANGES + +- Go API + - [rpc/jsonrpc/server] [\#6204](https://github.com/tendermint/tendermint/issues/6204) Modify `WriteRPCResponseHTTP(Error)` to return an error (@melekes) + +### FEATURES + +- [rpc] [\#6226](https://github.com/tendermint/tendermint/issues/6226) Index block events and expose a new RPC method, `/block_search`, to allow querying for blocks by `BeginBlock` and `EndBlock` events (@alexanderbez) + +### BUG FIXES + +- [rpc/jsonrpc/server] [\#6191](https://github.com/tendermint/tendermint/issues/6191) Correctly unmarshal `RPCRequest` when data is `null` (@melekes) +- [p2p] [\#6289](https://github.com/tendermint/tendermint/issues/6289) Fix "unknown channels" bug on CustomReactors (@gchaincl) +- [light/evidence] Adds logic to handle forward lunatic attacks (@cmwaters) + +## v0.34.8 + +*February 25, 2021* + +This release, in conjunction with [a fix in the Cosmos SDK](https://github.com/cosmos/cosmos-sdk/pull/8641), +introduces changes that should mean the logs are much, much quieter. 🎉 + +### IMPROVEMENTS + +- [libs/log] [\#6174](https://github.com/tendermint/tendermint/issues/6174) Include timestamp (`ts` field; `time.RFC3339Nano` format) in JSON logger output (@melekes) + +### BUG FIXES + +- [abci] [\#6124](https://github.com/tendermint/tendermint/issues/6124) Fixes a panic condition during callback execution in `ReCheckTx` during high tx load. (@alexanderbez) + +## v0.34.7 + +*February 18, 2021* + +This release fixes a downstream security issue which impacts Cosmos SDK +users who are: + +* Using Cosmos SDK v0.40.0 or later, AND +* Running validator nodes, AND +* Using the file-based `FilePV` implementation for their consensus keys + +Users who fulfill all the above criteria were susceptible to leaking +private key material in the logs. All other users are unaffected. + +The root cause was a discrepancy +between the Tendermint Core (untyped) logger and the Cosmos SDK (typed) logger: +Tendermint Core's logger automatically stringifies Go interfaces whenever possible; +however, the Cosmos SDK's logger uses reflection to log the fields within a Go interface. + +The introduction of the typed logger meant that previously un-logged fields within +interfaces are now sometimes logged, including the private key material inside the +`FilePV` struct. + +Tendermint Core v0.34.7 fixes this issue; however, we strongly recommend that all validators +use remote signer implementations instead of `FilePV` in production. + +Thank you to @joe-bowman for his assistance with this vulnerability and a particular +shout-out to @marbar3778 for diagnosing it quickly. + +### BUG FIXES + +- [consensus] [\#6128](https://github.com/tendermint/tendermint/pull/6128) Remove privValidator from log call (@tessr) + +## v0.34.6 + +*February 18, 2021* + +_Tendermint Core v0.34.5 and v0.34.6 have been recalled due to release tooling problems._ + +## v0.34.4 + +*February 11, 2021* + +This release includes a fix for a memory leak in the evidence reactor (see #6068, below). +All Tendermint clients are recommended to upgrade. +Thank you to our friends at Crypto.com for the initial report of this memory leak! + +Special thanks to other external contributors on this release: @yayajacky, @odidev, @laniehei, and @c29r3! + +### BUG FIXES + +- [light] [\#6022](https://github.com/tendermint/tendermint/pull/6022) Fix a bug when the number of validators equals 100 (@melekes) +- [light] [\#6026](https://github.com/tendermint/tendermint/pull/6026) Fix a bug when height isn't provided for the rpc calls: `/commit` and `/validators` (@cmwaters) +- [evidence] [\#6068](https://github.com/tendermint/tendermint/pull/6068) Terminate broadcastEvidenceRoutine when peer is stopped (@melekes) + +## v0.34.3 + +*January 19, 2021* + +This release includes a fix for a high-severity security vulnerability, +a DoS-vector that impacted Tendermint Core v0.34.0-v0.34.2. For more details, see +[Security Advisory Mulberry](https://github.com/tendermint/tendermint/security/advisories/GHSA-p658-8693-mhvg) +or https://nvd.nist.gov/vuln/detail/CVE-2021-21271. + +Tendermint Core v0.34.3 also updates GoGo Protobuf to 1.3.2 in order to pick up the fix for +https://nvd.nist.gov/vuln/detail/CVE-2021-3121. + +### BUG FIXES + +- [evidence] [[security fix]](https://github.com/tendermint/tendermint/security/advisories/GHSA-p658-8693-mhvg) Use correct source of evidence time (@cmwaters) +- [proto] [\#5886](https://github.com/tendermint/tendermint/pull/5889) Bump gogoproto to 1.3.2 (@marbar3778) + +## v0.34.2 + +*January 12, 2021* + +This release fixes a substantial bug in evidence handling where evidence could +sometimes be broadcast before the block containing that evidence was fully committed, +resulting in some nodes panicking when trying to verify said evidence. + +### BREAKING CHANGES + +- Go API + - [libs/os] [\#5871](https://github.com/tendermint/tendermint/issues/5871) `EnsureDir` now propagates IO errors and checks the file type (@erikgrinaker) + +### BUG FIXES + +- [evidence] [\#5890](https://github.com/tendermint/tendermint/pull/5890) Add a buffer to evidence from consensus to avoid broadcasting and proposing evidence before the + height of such an evidence has finished (@cmwaters) +- [statesync] [\#5889](https://github.com/tendermint/tendermint/issues/5889) Set `LastHeightConsensusParamsChanged` when bootstrapping Tendermint state (@cmwaters) + +## v0.34.1 + +*January 6, 2021* + +Special thanks to external contributors on this release: + +@p4u from vocdoni.io reported that the mempool might behave incorrectly under a +high load. The consequences can range from pauses between blocks to the peers +disconnecting from this node. As a temporary remedy (until the mempool package +is refactored), the `max-batch-bytes` was disabled. Transactions will be sent +one by one without batching. + +### BREAKING CHANGES + +- CLI/RPC/Config + - [cli] [\#5786](https://github.com/tendermint/tendermint/issues/5786) deprecate snake_case commands for hyphen-case (@cmwaters) + +- Go API + - [libs/protoio] [\#5868](https://github.com/tendermint/tendermint/issues/5868) Return number of bytes read in `Reader.ReadMsg()` (@erikgrinaker) + +### IMPROVEMENTS + +- [mempool] [\#5813](https://github.com/tendermint/tendermint/issues/5813) Add `keep-invalid-txs-in-cache` config option. When set to true, mempool will keep invalid transactions in the cache (@p4u) + +### BUG FIXES + +- [crypto] [\#5707](https://github.com/tendermint/tendermint/issues/5707) Fix infinite recursion in string formatting of Secp256k1 keys (@erikgrinaker) +- [mempool] [\#5800](https://github.com/tendermint/tendermint/issues/5800) Disable `max-batch-bytes` (@melekes) +- [p2p] [\#5868](https://github.com/tendermint/tendermint/issues/5868) Fix inbound traffic statistics and rate limiting in `MConnection` (@erikgrinaker) + +## v0.34.0 + +*November 19, 2020* + +Holy smokes, this is a big one! For a more reader-friendly overview of the changes in 0.34.0 +(and of the changes you need to accommodate as a user), check out [UPGRADING.md](UPGRADING.md). + +Special thanks to external contributors on this release: @james-ray, @fedekunze, @favadi, @alessio, +@joe-bowman, @cuonglm, @SadPencil and @dongsam. + +### BREAKING CHANGES + +- CLI/RPC/Config + + - [config] [\#5315](https://github.com/tendermint/tendermint/pull/5315) Rename `prof_laddr` to `pprof_laddr` and move it to `rpc` section (@melekes) + - [evidence] [\#4959](https://github.com/tendermint/tendermint/pull/4959) Add JSON tags to `DuplicateVoteEvidence` (@marbar3778) + - [light] [\#4946](https://github.com/tendermint/tendermint/pull/4946) `tendermint lite` command has been renamed to `tendermint light` (@marbar3778) + - [privval] [\#4582](https://github.com/tendermint/tendermint/pull/4582) `round` in private_validator_state.json is no longer JSON string; instead it is a number (@marbar3778) + - [rpc] [\#4792](https://github.com/tendermint/tendermint/pull/4792) `/validators` are now sorted by voting power (@melekes) + - [rpc] [\#4947](https://github.com/tendermint/tendermint/pull/4947) Return an error when `page` pagination param is 0 in `/validators`, `tx_search` (@melekes) + - [rpc] [\#5137](https://github.com/tendermint/tendermint/pull/5137) JSON tags of `gasWanted` and `gasUsed` in `ResponseCheckTx` and `ResponseDeliverTx` have been made snake_case (`gas_wanted` and `gas_used`) (@marbar3778) + - [rpc] [\#5315](https://github.com/tendermint/tendermint/pull/5315) Remove `/unsafe_start_cpu_profiler`, `/unsafe_stop_cpu_profiler` and `/unsafe_write_heap_profile`. Please use pprof functionality instead (@melekes) + - [rpc/client, rpc/jsonrpc/client] [\#5347](https://github.com/tendermint/tendermint/pull/5347) All client methods now accept `context.Context` as 1st param (@melekes) + +- Apps + + - [abci] [\#4704](https://github.com/tendermint/tendermint/pull/4704) Add ABCI methods `ListSnapshots`, `LoadSnapshotChunk`, `OfferSnapshot`, and `ApplySnapshotChunk` for state sync snapshots. `ABCIVersion` bumped to 0.17.0. (@erikgrinaker) + - [abci] [\#4989](https://github.com/tendermint/tendermint/pull/4989) `Proof` within `ResponseQuery` has been renamed to `ProofOps` (@marbar3778) + - [abci] [\#5096](https://github.com/tendermint/tendermint/pull/5096) `CheckTxType` Protobuf enum names are now uppercase, to follow Protobuf style guide (@erikgrinaker) + - [abci] [\#5324](https://github.com/tendermint/tendermint/pull/5324) ABCI evidence type is now an enum with two types of possible evidence (@cmwaters) + +- P2P Protocol + + - [blockchain] [\#4637](https://github.com/tendermint/tendermint/pull/4637) Migrate blockchain reactor(s) to Protobuf encoding (@marbar3778) + - [evidence] [\#4949](https://github.com/tendermint/tendermint/pull/4949) Migrate evidence reactor to Protobuf encoding (@marbar3778) + - [mempool] [\#4940](https://github.com/tendermint/tendermint/pull/4940) Migrate mempool from to Protobuf encoding (@marbar3778) + - [mempool] [\#5321](https://github.com/tendermint/tendermint/pull/5321) Batch transactions when broadcasting them to peers (@melekes) + - `MaxBatchBytes` new config setting defines the max size of one batch. + - [p2p/pex] [\#4973](https://github.com/tendermint/tendermint/pull/4973) Migrate `p2p/pex` reactor to Protobuf encoding (@marbar3778) + - [statesync] [\#4943](https://github.com/tendermint/tendermint/pull/4943) Migrate state sync reactor to Protobuf encoding (@marbar3778) + +- Blockchain Protocol + + - [evidence] [\#4725](https://github.com/tendermint/tendermint/pull/4725) Remove `Pubkey` from `DuplicateVoteEvidence` (@marbar3778) + - [evidence] [\#5499](https://github.com/tendermint/tendermint/pull/5449) Cap evidence to a maximum number of bytes (supercedes [\#4780](https://github.com/tendermint/tendermint/pull/4780)) (@cmwaters) + - [merkle] [\#5193](https://github.com/tendermint/tendermint/pull/5193) Header hashes are no longer empty for empty inputs, notably `DataHash`, `EvidenceHash`, and `LastResultsHash` (@erikgrinaker) + - [state] [\#4845](https://github.com/tendermint/tendermint/pull/4845) Include `GasWanted` and `GasUsed` into `LastResultsHash` (@melekes) + - [types] [\#4792](https://github.com/tendermint/tendermint/pull/4792) Sort validators by voting power to enable faster commit verification (@melekes) + +- On-disk serialization + + - [state] [\#4679](https://github.com/tendermint/tendermint/pull/4679) Migrate state module to Protobuf encoding (@marbar3778) + - `BlockStoreStateJSON` is now `BlockStoreState` and is encoded as binary in the database + - [store] [\#4778](https://github.com/tendermint/tendermint/pull/4778) Migrate store module to Protobuf encoding (@marbar3778) + +- Light client, private validator + + - [light] [\#4964](https://github.com/tendermint/tendermint/pull/4964) Migrate light module migration to Protobuf encoding (@marbar3778) + - [privval] [\#4985](https://github.com/tendermint/tendermint/pull/4985) Migrate `privval` module to Protobuf encoding (@marbar3778) + +- Go API + + - [consensus] [\#4582](https://github.com/tendermint/tendermint/pull/4582) RoundState: `Round`, `LockedRound` & `CommitRound` are now `int32` (@marbar3778) + - [consensus] [\#4582](https://github.com/tendermint/tendermint/pull/4582) HeightVoteSet: `round` is now `int32` (@marbar3778) + - [crypto] [\#4721](https://github.com/tendermint/tendermint/pull/4721) Remove `SimpleHashFromMap()` and `SimpleProofsFromMap()` (@erikgrinaker) + - [crypto] [\#4940](https://github.com/tendermint/tendermint/pull/4940) All keys have become `[]byte` instead of `[]byte`. The byte method no longer returns the marshaled value but just the `[]byte` form of the data. (@marbar3778) + - [crypto] [\#4988](https://github.com/tendermint/tendermint/pull/4988) Removal of key type multisig (@marbar3778) + - The key has been moved to the [Cosmos-SDK](https://github.com/cosmos/cosmos-sdk/blob/master/crypto/types/multisig/multisignature.go) + - [crypto] [\#4989](https://github.com/tendermint/tendermint/pull/4989) Remove `Simple` prefixes from `SimpleProof`, `SimpleValueOp` & `SimpleProofNode`. (@marbar3778) + - `merkle.Proof` has been renamed to `ProofOps`. + - Protobuf messages `Proof` & `ProofOp` has been moved to `proto/crypto/merkle` + - `SimpleHashFromByteSlices` has been renamed to `HashFromByteSlices` + - `SimpleHashFromByteSlicesIterative` has been renamed to `HashFromByteSlicesIterative` + - `SimpleProofsFromByteSlices` has been renamed to `ProofsFromByteSlices` + - [crypto] [\#4941](https://github.com/tendermint/tendermint/pull/4941) Remove suffixes from all keys. (@marbar3778) + - ed25519: type `PrivKeyEd25519` is now `PrivKey` + - ed25519: type `PubKeyEd25519` is now `PubKey` + - secp256k1: type`PrivKeySecp256k1` is now `PrivKey` + - secp256k1: type`PubKeySecp256k1` is now `PubKey` + - sr25519: type `PrivKeySr25519` is now `PrivKey` + - sr25519: type `PubKeySr25519` is now `PubKey` + - [crypto] [\#5214](https://github.com/tendermint/tendermint/pull/5214) Change `GenPrivKeySecp256k1` to `GenPrivKeyFromSecret` to be consistent with other keys (@marbar3778) + - [crypto] [\#5236](https://github.com/tendermint/tendermint/pull/5236) `VerifyBytes` is now `VerifySignature` on the `crypto.PubKey` interface (@marbar3778) + - [evidence] [\#5361](https://github.com/tendermint/tendermint/pull/5361) Add LightClientAttackEvidence and change evidence interface (@cmwaters) + - [libs] [\#4831](https://github.com/tendermint/tendermint/pull/4831) Remove `Bech32` pkg from Tendermint. This pkg now lives in the [cosmos-sdk](https://github.com/cosmos/cosmos-sdk/tree/4173ea5ebad906dd9b45325bed69b9c655504867/types/bech32) (@marbar3778) + - [light] [\#4946](https://github.com/tendermint/tendermint/pull/4946) Rename `lite2` pkg to `light`. Remove `lite` implementation. (@marbar3778) + - [light] [\#5347](https://github.com/tendermint/tendermint/pull/5347) `NewClient`, `NewHTTPClient`, `VerifyHeader` and `VerifyLightBlockAtHeight` now accept `context.Context` as 1st param (@melekes) + - [merkle] [\#5193](https://github.com/tendermint/tendermint/pull/5193) `HashFromByteSlices` and `ProofsFromByteSlices` now return a hash for empty inputs, following RFC6962 (@erikgrinaker) + - [proto] [\#5025](https://github.com/tendermint/tendermint/pull/5025) All proto files have been moved to `/proto` directory. (@marbar3778) + - Using the recommended the file layout from buf, [see here for more info](https://buf.build/docs/lint-checkers#file_layout) + - [rpc/client] [\#4947](https://github.com/tendermint/tendermint/pull/4947) `Validators`, `TxSearch` `page`/`per_page` params become pointers (@melekes) + - `UnconfirmedTxs` `limit` param is a pointer + - [rpc/jsonrpc/server] [\#5141](https://github.com/tendermint/tendermint/pull/5141) Remove `WriteRPCResponseArrayHTTP` (use `WriteRPCResponseHTTP` instead) (@melekes) + - [state] [\#4679](https://github.com/tendermint/tendermint/pull/4679) `TxResult` is a Protobuf type defined in `abci` types directory (@marbar3778) + - [state] [\#5191](https://github.com/tendermint/tendermint/pull/5191) Add `State.InitialHeight` field to record initial block height, must be `1` (not `0`) to start from 1 (@erikgrinaker) + - [state] [\#5231](https://github.com/tendermint/tendermint/pull/5231) `LoadStateFromDBOrGenesisFile()` and `LoadStateFromDBOrGenesisDoc()` no longer saves the state in the database if not found, the genesis state is simply returned (@erikgrinaker) + - [state] [\#5348](https://github.com/tendermint/tendermint/pull/5348) Define an Interface for the state store. (@marbar3778) + - [types] [\#4939](https://github.com/tendermint/tendermint/pull/4939) `SignedMsgType` has moved to a Protobuf enum types (@marbar3778) + - [types] [\#4962](https://github.com/tendermint/tendermint/pull/4962) `ConsensusParams`, `BlockParams`, `EvidenceParams`, `ValidatorParams` & `HashedParams` are now Protobuf types (@marbar3778) + - [types] [\#4852](https://github.com/tendermint/tendermint/pull/4852) Vote & Proposal `SignBytes` is now func `VoteSignBytes` & `ProposalSignBytes` (@marbar3778) + - [types] [\#4798](https://github.com/tendermint/tendermint/pull/4798) Simplify `VerifyCommitTrusting` func + remove extra validation (@melekes) + - [types] [\#4845](https://github.com/tendermint/tendermint/pull/4845) Remove `ABCIResult` (@melekes) + - [types] [\#5029](https://github.com/tendermint/tendermint/pull/5029) Rename all values from `PartsHeader` to `PartSetHeader` to have consistency (@marbar3778) + - [types] [\#4939](https://github.com/tendermint/tendermint/pull/4939) `Total` in `Parts` & `PartSetHeader` has been changed from a `int` to a `uint32` (@marbar3778) + - [types] [\#4939](https://github.com/tendermint/tendermint/pull/4939) Vote: `ValidatorIndex` & `Round` are now `int32` (@marbar3778) + - [types] [\#4939](https://github.com/tendermint/tendermint/pull/4939) Proposal: `POLRound` & `Round` are now `int32` (@marbar3778) + - [types] [\#4939](https://github.com/tendermint/tendermint/pull/4939) Block: `Round` is now `int32` (@marbar3778) + +### FEATURES + +- [abci] [\#5031](https://github.com/tendermint/tendermint/pull/5031) Add `AppVersion` to consensus parameters (@james-ray) + - This makes it possible to update your ABCI application version via `EndBlock` response +- [abci] [\#5174](https://github.com/tendermint/tendermint/pull/5174) Remove `MockEvidence` in favor of testing with actual evidence types (`DuplicateVoteEvidence` & `LightClientAttackEvidence`) (@cmwaters) +- [abci] [\#5191](https://github.com/tendermint/tendermint/pull/5191) Add `InitChain.InitialHeight` field giving the initial block height (@erikgrinaker) +- [abci] [\#5227](https://github.com/tendermint/tendermint/pull/5227) Add `ResponseInitChain.app_hash` which is recorded in genesis block (@erikgrinaker) +- [config] [\#5147](https://github.com/tendermint/tendermint/pull/5147) Add `--consensus.double_sign_check_height` flag and `DoubleSignCheckHeight` config variable. See [ADR-51](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-051-double-signing-risk-reduction.md) (@dongsam) +- [db] [\#5233](https://github.com/tendermint/tendermint/pull/5233) Add support for `badgerdb` database backend (@erikgrinaker) +- [evidence] [\#4532](https://github.com/tendermint/tendermint/pull/4532) Handle evidence from light clients (@melekes) +- [evidence] [#4821](https://github.com/tendermint/tendermint/pull/4821) Amnesia (light client attack) evidence can be detected, verified and committed (@cmwaters) +- [genesis] [\#5191](https://github.com/tendermint/tendermint/pull/5191) Add `initial_height` field to specify the initial chain height (defaults to `1`) (@erikgrinaker) +- [libs/math] [\#5665](https://github.com/tendermint/tendermint/pull/5665) Make fractions unsigned integers (uint64) (@cmwaters) +- [light] [\#5298](https://github.com/tendermint/tendermint/pull/5298) Morph validator set and signed header into light block (@cmwaters) +- [p2p] [\#4981](https://github.com/tendermint/tendermint/pull/4981) Expose `SaveAs` func on NodeKey (@melekes) +- [privval] [\#5239](https://github.com/tendermint/tendermint/pull/5239) Add `chainID` to requests from client. (@marbar3778) +- [rpc] [\#4532](https://github.com/tendermint/tendermint/pull/4923) Support `BlockByHash` query (@fedekunze) +- [rpc] [\#4979](https://github.com/tendermint/tendermint/pull/4979) Support EXISTS operator in `/tx_search` query (@melekes) +- [rpc] [\#5017](https://github.com/tendermint/tendermint/pull/5017) Add `/check_tx` endpoint to check transactions without executing them or adding them to the mempool (@melekes) +- [rpc] [\#5108](https://github.com/tendermint/tendermint/pull/5108) Subscribe using the websocket for new evidence events (@cmwaters) +- [statesync] Add state sync support, where a new node can be rapidly bootstrapped by fetching state snapshots from peers instead of replaying blocks. See the `[statesync]` config section. +- [evidence] [\#5361](https://github.com/tendermint/tendermint/pull/5361) Add LightClientAttackEvidence and refactor evidence lifecycle - for more information see [ADR-059](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-059-evidence-composition-and-lifecycle.md) (@cmwaters) + +### IMPROVEMENTS + +- [blockchain] [\#5278](https://github.com/tendermint/tendermint/pull/5278) Verify only +2/3 of the signatures in a block when fast syncing. (@marbar3778) +- [consensus] [\#4578](https://github.com/tendermint/tendermint/pull/4578) Attempt to repair the consensus WAL file (`data/cs.wal/wal`) automatically in case of corruption (@alessio) + - The original WAL file will be backed up to `data/cs.wal/wal.CORRUPTED`. +- [consensus] [\#5143](https://github.com/tendermint/tendermint/pull/5143) Only call `privValidator.GetPubKey` once per block (@melekes) +- [evidence] [\#4722](https://github.com/tendermint/tendermint/pull/4722) Consolidate evidence store and pool types to improve evidence DB (@cmwaters) +- [evidence] [\#4839](https://github.com/tendermint/tendermint/pull/4839) Reject duplicate evidence from being proposed (@cmwaters) +- [evidence] [\#5219](https://github.com/tendermint/tendermint/pull/5219) Change the source of evidence time to block time (@cmwaters) +- [libs] [\#5126](https://github.com/tendermint/tendermint/pull/5126) Add a sync package which wraps sync.(RW)Mutex & deadlock.(RW)Mutex and use a build flag (deadlock) in order to enable deadlock checking (@marbar3778) +- [light] [\#4935](https://github.com/tendermint/tendermint/pull/4935) Fetch and compare a new header with witnesses in parallel (@melekes) +- [light] [\#4929](https://github.com/tendermint/tendermint/pull/4929) Compare header with witnesses only when doing bisection (@melekes) +- [light] [\#4916](https://github.com/tendermint/tendermint/pull/4916) Validate basic for inbound validator sets and headers before further processing them (@cmwaters) +- [mempool] Add RemoveTxByKey() exported function for custom mempool cleaning (@p4u) +- [p2p/conn] [\#4795](https://github.com/tendermint/tendermint/pull/4795) Return err on `signChallenge()` instead of panic +- [privval] [\#5437](https://github.com/tendermint/tendermint/pull/5437) `NewSignerDialerEndpoint` can now be given `SignerServiceEndpointOption` (@erikgrinaker) +- [rpc] [\#4968](https://github.com/tendermint/tendermint/pull/4968) JSON encoding is now handled by `libs/json`, not Amino (@erikgrinaker) +- [rpc] [\#5293](https://github.com/tendermint/tendermint/pull/5293) `/dial_peers` has added `private` and `unconditional` as parameters. (@marbar3778) +- [state] [\#4781](https://github.com/tendermint/tendermint/pull/4781) Export `InitStateVersion` for the initial state version (@erikgrinaker) +- [txindex] [\#4466](https://github.com/tendermint/tendermint/pull/4466) Allow to index an event at runtime (@favadi) + - `abci.EventAttribute` replaces `KV.Pair` +- [types] [\#4905](https://github.com/tendermint/tendermint/pull/4905) Add `ValidateBasic` to validator and validator set (@cmwaters) +- [types] [\#5340](https://github.com/tendermint/tendermint/pull/5340) Add check in `Header.ValidateBasic()` for block protocol version (@marbar3778) +- [types] [\#5490](https://github.com/tendermint/tendermint/pull/5490) Use `Commit` and `CommitSig` max sizes instead of vote max size to calculate the maximum block size. (@cmwaters) + + +### BUG FIXES + +- [abci/grpc] [\#5520](https://github.com/tendermint/tendermint/pull/5520) Return async responses in order, to avoid mempool panics. (@erikgrinaker) +- [blockchain/v2] [\#4971](https://github.com/tendermint/tendermint/pull/4971) Correctly set block store base in status responses (@erikgrinaker) +- [blockchain/v2] [\#5499](https://github.com/tendermint/tendermint/pull/5499) Fix "duplicate block enqueued by processor" panic (@melekes) +- [blockchain/v2] [\#5530](https://github.com/tendermint/tendermint/pull/5530) Fix out of order block processing panic (@melekes) +- [blockchain/v2] [\#5553](https://github.com/tendermint/tendermint/pull/5553) Make the removal of an already removed peer a noop (@melekes) +- [consensus] [\#4895](https://github.com/tendermint/tendermint/pull/4895) Cache the address of the validator to reduce querying a remote KMS (@joe-bowman) +- [consensus] [\#4970](https://github.com/tendermint/tendermint/pull/4970) Don't allow `LastCommitRound` to be negative (@cuonglm) +- [consensus] [\#5329](https://github.com/tendermint/tendermint/pull/5329) Fix wrong proposer schedule for validators returned by `InitChain` (@erikgrinaker) +- [docker] [\#5385](https://github.com/tendermint/tendermint/pull/5385) Fix incorrect `time_iota_ms` default setting causing block timestamp drift (@erikgrinaker) +- [evidence] [\#5170](https://github.com/tendermint/tendermint/pull/5170) Change ABCI evidence time to the time the infraction happened not the time the evidence was committed on the block (@cmwaters) +- [evidence] [\#5610](https://github.com/tendermint/tendermint/pull/5610) Make it possible for ABCI evidence to be formed from Tendermint evidence (@cmwaters) +- [libs/rand] [\#5215](https://github.com/tendermint/tendermint/pull/5215) Fix out-of-memory error on unexpected argument of Str() (@SadPencil) +- [light] [\#5307](https://github.com/tendermint/tendermint/pull/5307) Persist correct proposer priority in light client validator sets (@cmwaters) +- [p2p] [\#5136](https://github.com/tendermint/tendermint/pull/5136) Fix error for peer with the same ID but different IPs (@valardragon) +- [privval] [\#5638](https://github.com/tendermint/tendermint/pull/5638) Increase read/write timeout to 5s and calculate ping interval based on it (@JoeKash) +- [proxy] [\#5078](https://github.com/tendermint/tendermint/pull/5078) Force Tendermint to exit when ABCI app crashes (@melekes) +- [rpc] [\#5660](https://github.com/tendermint/tendermint/pull/5660) Set `application/json` as the `Content-Type` header in RPC responses. (@alexanderbez) +- [store] [\#5382](https://github.com/tendermint/tendermint/pull/5382) Fix race conditions when loading/saving/pruning blocks (@erikgrinaker) + +## v0.33.8 + +*August 11, 2020* + +### Go security update + +Go reported a security vulnerability that affected the `encoding/binary` package. The most recent binary for tendermint is using 1.14.6, for this +reason the Tendermint engineering team has opted to conduct a release to aid users in using the correct version of Go. Read more about the security issue [here](https://github.com/golang/go/issues/40618). + + +## v0.33.7 + + *August 4, 2020* + + ### BUG FIXES: + + - [go] Build release binary using Go 1.14.4, to avoid halt caused by Go 1.14.1 (https://github.com/golang/go/issues/38223) + - [privval] [\#5140](https://github.com/tendermint/tendermint/pull/5140) `RemoteSignerError` from remote signers are no longer retried (@melekes) + + +## v0.33.6 + +*July 2, 2020* + +This security release fixes: + +### Denial of service + +Tendermint 0.33.0 and above allow block proposers to include signatures for the +wrong block. This may happen naturally if you start a network, have it run for +some time and restart it **without changing the chainID**. (It is a +[misconfiguration](https://docs.tendermint.com/master/tendermint-core/using-tendermint.html) +to reuse chainIDs.) Correct block proposers will accidentally include signatures +for the wrong block if they see these signatures, and then commits won't validate, +making all proposed blocks invalid. A malicious validator (even with a minimal +amount of stake) can use this vulnerability to completely halt the network. + +Tendermint 0.33.6 checks all the signatures are for the block with +2/3 +majority before creating a commit. + +### False Witness + +Tendermint 0.33.1 and above are no longer fully verifying commit signatures +during block execution - they stop after +2/3. This means proposers can propose +blocks that contain valid +2/3 signatures and then the rest of the signatures +can be whatever they want. They can claim that all the other validators signed +just by including a CommitSig with arbitrary signature data. While this doesn't +seem to impact safety of Tendermint per se, it means that Commits may contain a +lot of invalid data. + +_This was already true of blocks, since they could include invalid txs filled +with garbage, but in that case the application knew that they are invalid and +could punish the proposer. But since applications didn't--and don't-- +verify commit signatures directly (they trust Tendermint to do that), +they won't be able to detect it._ + +This can impact incentivization logic in the application that depends on the +LastCommitInfo sent in BeginBlock, which includes which validators signed. For +instance, Gaia incentivizes proposers with a bonus for including more than +2/3 +of the signatures. But a proposer can now claim that bonus just by including +arbitrary data for the final -1/3 of validators without actually waiting for +their signatures. There may be other tricks that can be played because of this. + +Tendermint 0.33.6 verifies all the signatures during block execution. + +_Please note that the light client does not check nil votes and exits as soon +as 2/3+ of the signatures are checked._ + +**All clients are recommended to upgrade.** + +Special thanks to @njmurarka at Bluzelle Networks for reporting this. + +### SECURITY: + +- [consensus] Do not allow signatures for a wrong block in commits (@ebuchman) +- [consensus] Verify all the signatures during block execution (@melekes) + +**Please note that the fix for the False Witness issue renames the `VerifyCommitTrusting` +function to `VerifyCommitLightTrusting`. If you were relying on the light client, you may +need to update your code.** + +## v0.33.5 + +*May 28, 2020* + +Special thanks to external contributors on this release: @tau3, + +### BREAKING CHANGES: + +- Go API + + - [privval] [\#4744](https://github.com/tendermint/tendermint/pull/4744) Remove deprecated `OldFilePV` (@melekes) + - [mempool] [\#4759](https://github.com/tendermint/tendermint/pull/4759) Modify `Mempool#InitWAL` to return an error (@melekes) + - [node] [\#4832](https://github.com/tendermint/tendermint/pull/4832) `ConfigureRPC` returns an error (@melekes) + - [rpc] [\#4836](https://github.com/tendermint/tendermint/pull/4836) Overhaul `lib` folder (@melekes) + Move lib/ folder to jsonrpc/. + Rename: + rpc package -> jsonrpc package + rpcclient package -> client package + rpcserver package -> server package + JSONRPCClient to Client + JSONRPCRequestBatch to RequestBatch + JSONRPCCaller to Caller + StartHTTPServer to Serve + StartHTTPAndTLSServer to ServeTLS + NewURIClient to NewURI + NewJSONRPCClient to New + NewJSONRPCClientWithHTTPClient to NewWithHTTPClient + NewWSClient to NewWS + Unexpose ResponseWriterWrapper + Remove unused http_params.go + + +### FEATURES: + +- [pex] [\#4439](https://github.com/tendermint/tendermint/pull/4439) Use highwayhash for pex buckets (@tau3) + +### IMPROVEMENTS: + +- [abci/server] [\#4719](https://github.com/tendermint/tendermint/pull/4719) Print panic & stack trace to STDERR if logger is not set (@melekes) +- [types] [\#4638](https://github.com/tendermint/tendermint/pull/4638) Implement `Header#ValidateBasic` (@alexanderbez) +- [buildsystem] [\#4378](https://github.com/tendermint/tendermint/pull/4738) Replace build_c and install_c with TENDERMINT_BUILD_OPTIONS parsing. The following options are available: + - nostrip: don't strip debugging symbols nor DWARF tables. + - cleveldb: use cleveldb as db backend instead of goleveldb. + - race: pass -race to go build and enable data race detection. +- [mempool] [\#4759](https://github.com/tendermint/tendermint/pull/4759) Allow ReapX and CheckTx functions to run in parallel (@melekes) +- [rpc/core] [\#4844](https://github.com/tendermint/tendermint/pull/4844) Do not lock consensus state in `/validators`, `/consensus_params` and `/status` (@melekes) + +### BUG FIXES: + +- [blockchain/v2] [\#4761](https://github.com/tendermint/tendermint/pull/4761) Fix excessive CPU usage caused by spinning on closed channels (@erikgrinaker) +- [blockchain/v2] Respect `fast_sync` option (@erikgrinaker) +- [light] [\#4741](https://github.com/tendermint/tendermint/pull/4741) Correctly return `ErrSignedHeaderNotFound` and `ErrValidatorSetNotFound` on corresponding RPC errors (@erikgrinaker) +- [rpc] [\#4805](https://github.com/tendermint/tendermint/issues/4805) Attempt to handle panics during panic recovery (@erikgrinaker) +- [types] [\#4764](https://github.com/tendermint/tendermint/pull/4764) Return an error if voting power overflows in `VerifyCommitTrusting` (@melekes) +- [privval] [\#4812](https://github.com/tendermint/tendermint/pull/4812) Retry `GetPubKey/SignVote/SignProposal` a few times before returning an error (@melekes) +- [p2p] [\#4847](https://github.com/tendermint/tendermint/pull/4847) Return masked IP (not the actual IP) in addrbook#groupKey (@melekes) + +## v0.33.4 + +- Nodes are no longer guaranteed to contain all blocks up to the latest height. The ABCI app can now control which blocks to retain through the ABCI field `ResponseCommit.retain_height`, all blocks and associated data below this height will be removed. + +*April 21, 2020* + +Special thanks to external contributors on this release: @whylee259, @greg-szabo + +### BREAKING CHANGES: + +- Go API + + - [lite2] [\#4616](https://github.com/tendermint/tendermint/pull/4616) Make `maxClockDrift` an option `Verify/VerifyAdjacent/VerifyNonAdjacent` now accept `maxClockDrift time.Duration` (@melekes). + - [rpc/client] [\#4628](https://github.com/tendermint/tendermint/pull/4628) Split out HTTP and local clients into `http` and `local` packages (@erikgrinaker). + +### FEATURES: + +- [abci] [\#4588](https://github.com/tendermint/tendermint/issues/4588) Add `ResponseCommit.retain_height` field, which will automatically remove blocks below this height. This bumps the ABCI version to 0.16.2 (@erikgrinaker). +- [cmd] [\#4665](https://github.com/tendermint/tendermint/pull/4665) New `tendermint completion` command to generate Bash/Zsh completion scripts (@alessio). +- [rpc] [\#4588](https://github.com/tendermint/tendermint/issues/4588) Add `/status` response fields for the earliest block available on the node (@erikgrinaker). +- [rpc] [\#4611](https://github.com/tendermint/tendermint/pull/4611) Add `codespace` to `ResultBroadcastTx` (@whylee259). + +### IMPROVEMENTS: + +- [all] [\#4608](https://github.com/tendermint/tendermint/pull/4608) Give reactors descriptive names when they're initialized (@tessr). +- [blockchain] [\#4588](https://github.com/tendermint/tendermint/issues/4588) Add `Base` to blockchain reactor P2P messages `StatusRequest` and `StatusResponse` (@erikgrinaker). +- [Docker] [\#4569](https://github.com/tendermint/tendermint/issues/4569) Default configuration added to docker image (you can still mount your own config the same way) (@greg-szabo). +- [example/kvstore] [\#4588](https://github.com/tendermint/tendermint/issues/4588) Add `RetainBlocks` option to control block retention (@erikgrinaker). +- [evidence] [\#4632](https://github.com/tendermint/tendermint/pull/4632) Inbound evidence checked if already existing (@cmwaters). +- [lite2] [\#4575](https://github.com/tendermint/tendermint/pull/4575) Use bisection for within-range verification (@cmwaters). +- [lite2] [\#4562](https://github.com/tendermint/tendermint/pull/4562) Cache headers when using bisection (@cmwaters). +- [p2p] [\#4548](https://github.com/tendermint/tendermint/pull/4548) Add ban list to address book (@cmwaters). +- [privval] [\#4534](https://github.com/tendermint/tendermint/issues/4534) Add `error` as a return value on`GetPubKey()` (@marbar3778). +- [p2p] [\#4621](https://github.com/tendermint/tendermint/issues/4621) Ban peers when messages are unsolicited or too frequent (@cmwaters). +- [rpc] [\#4703](https://github.com/tendermint/tendermint/pull/4703) Add `count` and `total` to `/validators` response (@melekes). +- [tools] [\#4615](https://github.com/tendermint/tendermint/issues/4615) Allow developers to use Docker to generate proto stubs, via `make proto-gen-docker` (@erikgrinaker). + +### BUG FIXES: + +- [rpc] [\#4568](https://github.com/tendermint/tendermint/issues/4568) Fix panic when `Subscribe` is called, but HTTP client is not running. `Subscribe`, `Unsubscribe(All)` methods return an error now (@melekes). + +## v0.33.3 + +*April 6, 2020* + +This security release fixes: + +### Denial of service 1 + +Tendermint 0.33.2 and earlier does not limit P2P connection requests number. +For each p2p connection, Tendermint allocates ~0.5MB. Even though this +memory is garbage collected once the connection is terminated (due to duplicate +IP or reaching a maximum number of inbound peers), temporary memory spikes can +lead to OOM (Out-Of-Memory) exceptions. + +Tendermint 0.33.3 (and 0.32.10) limits the total number of P2P incoming +connection requests to to `p2p.max_num_inbound_peers + +len(p2p.unconditional_peer_ids)`. + +Notes: + +- Tendermint does not rate limit P2P connection requests per IP (an attacker + can saturate all the inbound slots); +- Tendermint does not rate limit HTTP(S) requests. If you expose any RPC + endpoints to the public, please make sure to put in place some protection + (https://www.nginx.com/blog/rate-limiting-nginx/). We may implement this in + the future ([\#1696](https://github.com/tendermint/tendermint/issues/1696)). + +### Denial of service 2 + +Tendermint 0.33.2 and earlier does not reclaim `activeID` of a peer after it's +removed in `Mempool` reactor. This does not happen all the time. It only +happens when a connection fails (for any reason) before the Peer is created and +added to all reactors. `RemovePeer` is therefore called before `AddPeer`, which +leads to always growing memory (`activeIDs` map). The `activeIDs` map has a +maximum size of 65535 and the node will panic if this map reaches the maximum. +An attacker can create a lot of connection attempts (exploiting Denial of +service 1), which ultimately will lead to the node panicking. + +Tendermint 0.33.3 (and 0.32.10) claims `activeID` for a peer in `InitPeer`, +which is executed before `MConnection` is started. + +Notes: + +- `InitPeer` function was added to all reactors to combat a similar issue - + [\#3338](https://github.com/tendermint/tendermint/issues/3338); +- Denial of service 2 is independent of Denial of service 1 and can be executed + without it. + +**All clients are recommended to upgrade** + +Special thanks to [fudongbai](https://hackerone.com/fudongbai) for finding +and reporting this. + +### SECURITY: + +- [mempool] Reserve IDs in InitPeer instead of AddPeer (@tessr) +- [p2p] Limit the number of incoming connections (@melekes) + +## v0.33.2 + +*March 11, 2020* + +Special thanks to external contributors on this release: +@antho1404, @michaelfig, @gterzian, @tau3, @Shivani912 + +### BREAKING CHANGES: + +- CLI/RPC/Config + - [cli] [\#4505](https://github.com/tendermint/tendermint/pull/4505) `tendermint lite` sub-command new syntax (@melekes): + `lite cosmoshub-3 -p 52.57.29.196:26657 -w public-seed-node.cosmoshub.certus.one:26657 + --height 962118 --hash 28B97BE9F6DE51AC69F70E0B7BFD7E5C9CD1A595B7DC31AFF27C50D4948` + +- Go API + - [lite2] [\#4535](https://github.com/tendermint/tendermint/pull/4535) Remove `Start/Stop` (@melekes) + - [lite2] [\#4469](https://github.com/tendermint/tendermint/issues/4469) Remove `RemoveNoLongerTrustedHeaders` and `RemoveNoLongerTrustedHeadersPeriod` option (@cmwaters) + - [lite2] [\#4473](https://github.com/tendermint/tendermint/issues/4473) Return height as a 2nd param in `TrustedValidatorSet` (@melekes) + - [lite2] [\#4536](https://github.com/tendermint/tendermint/pull/4536) `Update` returns a signed header (1st param) (@melekes) + + +### IMPROVEMENTS: + +- [blockchain/v2] [\#4361](https://github.com/tendermint/tendermint/pull/4361) Add reactor (@brapse) +- [cmd] [\#4515](https://github.com/tendermint/tendermint/issues/4515) Change `tendermint debug dump` sub-command archives filename's format (@melekes) +- [consensus] [\#3583](https://github.com/tendermint/tendermint/issues/3583) Reduce `non-deterministic signature` log noise (@tau3) +- [examples/kvstore] [\#4507](https://github.com/tendermint/tendermint/issues/4507) ABCI query now returns the proper height (@erikgrinaker) +- [lite2] [\#4462](https://github.com/tendermint/tendermint/issues/4462) Add `NewHTTPClient` and `NewHTTPClientFromTrustedStore` (@cmwaters) +- [lite2] [\#4329](https://github.com/tendermint/tendermint/issues/4329) modified bisection to loop (@cmwaters) +- [lite2] [\#4385](https://github.com/tendermint/tendermint/issues/4385) Disconnect from bad nodes (@melekes) +- [lite2] [\#4398](https://github.com/tendermint/tendermint/issues/4398) Add `VerifyAdjacent` and `VerifyNonAdjacent` funcs (@cmwaters) +- [lite2] [\#4426](https://github.com/tendermint/tendermint/issues/4426) Don't save intermediate headers (@cmwaters) +- [lite2] [\#4464](https://github.com/tendermint/tendermint/issues/4464) Cross-check first header (@cmwaters) +- [lite2] [\#4470](https://github.com/tendermint/tendermint/issues/4470) Fix inconsistent header-validatorset pairing (@melekes) +- [lite2] [\#4488](https://github.com/tendermint/tendermint/issues/4488) Allow local clock drift -10 sec. (@melekes) +- [p2p] [\#4449](https://github.com/tendermint/tendermint/pull/4449) Use `curve25519.X25519()` instead of `ScalarMult` (@erikgrinaker) +- [types] [\#4417](https://github.com/tendermint/tendermint/issues/4417) **VerifyCommitX() functions should return as soon as +2/3 threshold is reached** (@alessio). +- [libs/kv] [\#4542](https://github.com/tendermint/tendermint/pull/4542) remove unused type KI64Pair (@tessr) + +### BUG FIXES: + +- [cmd] [\#4303](https://github.com/tendermint/tendermint/issues/4303) Show useful error when Tendermint is not initialized (@melekes) +- [cmd] [\#4515](https://github.com/tendermint/tendermint/issues/4515) **Fix `tendermint debug kill` sub-command** (@melekes) +- [rpc] [\#3935](https://github.com/tendermint/tendermint/issues/3935) **Create buffered subscriptions on `/subscribe`** (@melekes) +- [rpc] [\#4375](https://github.com/tendermint/tendermint/issues/4375) Stop searching for txs in `/tx_search` upon client timeout (@gterzian) +- [rpc] [\#4406](https://github.com/tendermint/tendermint/pull/4406) Fix issue with multiple subscriptions on the websocket (@antho1404) +- [rpc] [\#4432](https://github.com/tendermint/tendermint/issues/4432) Fix `/tx_search` pagination with ordered results (@erikgrinaker) +- [rpc] [\#4492](https://github.com/tendermint/tendermint/issues/4492) Keep the original subscription "id" field when new RPCs come in (@michaelfig) + + +## v0.33.1 + +*Feburary 13, 2020* + +Special thanks to external contributors on this release: +@princesinha19 + +### FEATURES: + +- [rpc] [\#3333](https://github.com/tendermint/tendermint/issues/3333) Add `order_by` to `/tx_search` endpoint, allowing to change default ordering from asc to desc (@princesinha19) + +### IMPROVEMENTS: + +- [proto] [\#4369](https://github.com/tendermint/tendermint/issues/4369) Add [buf](https://buf.build/) for usage with linting and checking if there are breaking changes with the master branch. +- [proto] [\#4369](https://github.com/tendermint/tendermint/issues/4369) Add `make proto-gen` cmd to generate proto stubs outside of GOPATH. + +### BUG FIXES: + +- [node] [\#4311](https://github.com/tendermint/tendermint/issues/4311) Use `GRPCMaxOpenConnections` when creating the gRPC server, not `MaxOpenConnections` +- [rpc] [\#4319](https://github.com/tendermint/tendermint/issues/4319) Check `BlockMeta` is not nil in `/block` & `/block_by_hash` + +## v0.33 + +Special thanks to external contributors on this release: @mrekucci, @PSalant726, @princesinha19, @greg-szabo, @dongsam, @cuonglm, @jgimeno, @yenkhoon + +*January 14, 2020* + +This release contains breaking changes to the `Block#Header`, specifically +`NumTxs` and `TotalTxs` were removed (\#2521). Here's how this change affects +different modules: + +- apps: it breaks the ABCI header field numbering +- state: it breaks the format of `State` on disk +- RPC: all RPC requests which expose the header broke +- Go API: the `Header` broke +- P2P: since blocks go over the wire, technically the P2P protocol broke + +Also, blocks are significantly smaller 🔥 because we got rid of the redundant +information in `Block#LastCommit`. `Commit` now mainly consists of a signature +and a validator address plus a timestamp. Note we may remove the validator +address & timestamp fields in the future (see ADR-25). + +`lite2` package has been added to solve `lite` issues and introduce weak +subjectivity interface. Refer to the [spec](./spec/consensus/light-client/) for complete details. +`lite` package is now deprecated and will be removed in v0.34 release. + +### BREAKING CHANGES: + +- CLI/RPC/Config + + - [rpc] [\#3471](https://github.com/tendermint/tendermint/issues/3471) Paginate `/validators` response (default: 30 vals per page) + - [rpc] [\#3188](https://github.com/tendermint/tendermint/issues/3188) Remove `BlockMeta` in `ResultBlock` in favor of `BlockId` for `/block` + - [rpc] `/block_results` response format updated (see RPC docs for details) + ``` + { + "jsonrpc": "2.0", + "id": "", + "result": { + "height": "2109", + "txs_results": null, + "begin_block_events": null, + "end_block_events": null, + "validator_updates": null, + "consensus_param_updates": null + } + } + ``` + - [rpc] [\#4141](https://github.com/tendermint/tendermint/pull/4141) Remove `#event` suffix from the ID in event responses. + `{"jsonrpc": "2.0", "id": 0, "result": ...}` + - [rpc] [\#4141](https://github.com/tendermint/tendermint/pull/4141) Switch to integer IDs instead of `json-client-XYZ` + ``` + id=0 method=/subscribe + id=0 result=... + id=1 method=/abci_query + id=1 result=... + ``` + - ID is unique for each request; + - Request.ID is now optional. Notification is a Request without an ID. Previously ID="" or ID=0 were considered as notifications. + + - [config] [\#4046](https://github.com/tendermint/tendermint/issues/4046) Rename tag(s) to CompositeKey & places where tag is still present it was renamed to event or events. Find how a compositeKey is constructed [here](https://github.com/tendermint/tendermint/blob/6d05c531f7efef6f0619155cf10ae8557dd7832f/docs/app-dev/indexing-transactions.md) + - You will have to generate a new config for your Tendermint node(s) + - [genesis] [\#2565](https://github.com/tendermint/tendermint/issues/2565) Add `consensus_params.evidence.max_age_duration`. Rename + `consensus_params.evidence.max_age` to `max_age_num_blocks`. + - [cli] [\#1771](https://github.com/tendermint/tendermint/issues/1771) `tendermint lite` now uses new light client package (`lite2`) + and has 3 more flags: `--trusting-period`, `--trusted-height` and + `--trusted-hash` + +- Apps + + - [tm-bench] Removed tm-bench in favor of [tm-load-test](https://github.com/informalsystems/tm-load-test) + +- Go API + + - [rpc] [\#3953](https://github.com/tendermint/tendermint/issues/3953) Modify NewHTTP, NewXXXClient functions to return an error on invalid remote instead of panicking (@mrekucci) + - [rpc/client] [\#3471](https://github.com/tendermint/tendermint/issues/3471) `Validators` now requires two more args: `page` and `perPage` + - [libs/common] [\#3262](https://github.com/tendermint/tendermint/issues/3262) Make error the last parameter of `Task` (@PSalant726) + - [cs/types] [\#3262](https://github.com/tendermint/tendermint/issues/3262) Rename `GotVoteFromUnwantedRoundError` to `ErrGotVoteFromUnwantedRound` (@PSalant726) + - [libs/common] [\#3862](https://github.com/tendermint/tendermint/issues/3862) Remove `errors.go` from `libs/common` + - [libs/common] [\#4230](https://github.com/tendermint/tendermint/issues/4230) Move `KV` out of common to its own pkg + - [libs/common] [\#4230](https://github.com/tendermint/tendermint/issues/4230) Rename `cmn.KVPair(s)` to `kv.Pair(s)`s + - [libs/common] [\#4232](https://github.com/tendermint/tendermint/issues/4232) Move `Service` & `BaseService` from `libs/common` to `libs/service` + - [libs/common] [\#4232](https://github.com/tendermint/tendermint/issues/4232) Move `common/nil.go` to `types/utils.go` & make the functions private + - [libs/common] [\#4231](https://github.com/tendermint/tendermint/issues/4231) Move random functions from `libs/common` into pkg `rand` + - [libs/common] [\#4237](https://github.com/tendermint/tendermint/issues/4237) Move byte functions from `libs/common` into pkg `bytes` + - [libs/common] [\#4237](https://github.com/tendermint/tendermint/issues/4237) Move throttletimer functions from `libs/common` into pkg `timer` + - [libs/common] [\#4237](https://github.com/tendermint/tendermint/issues/4237) Move tempfile functions from `libs/common` into pkg `tempfile` + - [libs/common] [\#4240](https://github.com/tendermint/tendermint/issues/4240) Move os functions from `libs/common` into pkg `os` + - [libs/common] [\#4240](https://github.com/tendermint/tendermint/issues/4240) Move net functions from `libs/common` into pkg `net` + - [libs/common] [\#4240](https://github.com/tendermint/tendermint/issues/4240) Move mathematical functions and types out of `libs/common` to `math` pkg + - [libs/common] [\#4240](https://github.com/tendermint/tendermint/issues/4240) Move string functions out of `libs/common` to `strings` pkg + - [libs/common] [\#4240](https://github.com/tendermint/tendermint/issues/4240) Move async functions out of `libs/common` to `async` pkg + - [libs/common] [\#4240](https://github.com/tendermint/tendermint/issues/4240) Move bit functions out of `libs/common` to `bits` pkg + - [libs/common] [\#4240](https://github.com/tendermint/tendermint/issues/4240) Move cmap functions out of `libs/common` to `cmap` pkg + - [libs/common] [\#4258](https://github.com/tendermint/tendermint/issues/4258) Remove `Rand` from all `rand` pkg functions + - [types] [\#2565](https://github.com/tendermint/tendermint/issues/2565) Remove `MockBadEvidence` & `MockGoodEvidence` in favor of `MockEvidence` + +- Blockchain Protocol + + - [abci] [\#2521](https://github.com/tendermint/tendermint/issues/2521) Remove `TotalTxs` and `NumTxs` from `Header` + - [types] [\#4151](https://github.com/tendermint/tendermint/pull/4151) Enforce ordering of votes in DuplicateVoteEvidence to be lexicographically sorted on BlockID + - [types] [\#1648](https://github.com/tendermint/tendermint/issues/1648) Change `Commit` to consist of just signatures + +- P2P Protocol + + - [p2p] [\#3668](https://github.com/tendermint/tendermint/pull/3668) Make `SecretConnection` non-malleable + +- [proto] [\#3986](https://github.com/tendermint/tendermint/pull/3986) Prefix protobuf types to avoid name conflicts. + - ABCI becomes `tendermint.abci.types` with the new API endpoint `/tendermint.abci.types.ABCIApplication/` + - core_grpc becomes `tendermint.rpc.grpc` with the new API endpoint `/tendermint.rpc.grpc.BroadcastAPI/` + - merkle becomes `tendermint.crypto.merkle` + - libs.common becomes `tendermint.libs.common` + - proto3 becomes `tendermint.types.proto3` + +### FEATURES: + +- [p2p] [\#4053](https://github.com/tendermint/tendermint/issues/4053) Add `unconditional_peer_ids` and `persistent_peers_max_dial_period` config variables (see ADR-050) (@dongsam) +- [tools] [\#4227](https://github.com/tendermint/tendermint/pull/4227) Implement `tendermint debug kill` and + `tendermint debug dump` commands for Tendermint node debugging functionality. See `--help` in both + commands for further documentation and usage. +- [cli] [\#4234](https://github.com/tendermint/tendermint/issues/4234) Add `--db_backend and --db_dir` flags (@princesinha19) +- [cli] [\#4113](https://github.com/tendermint/tendermint/issues/4113) Add optional `--genesis_hash` flag to check genesis hash upon startup +- [config] [\#3831](https://github.com/tendermint/tendermint/issues/3831) Add support for [RocksDB](https://rocksdb.org/) (@Stumble) +- [rpc] [\#3985](https://github.com/tendermint/tendermint/issues/3985) Add new `/block_by_hash` endpoint, which allows to fetch a block by its hash (@princesinha19) +- [metrics] [\#4263](https://github.com/tendermint/tendermint/issues/4263) Add + - `consensus_validator_power`: track your validators power + - `consensus_validator_last_signed_height`: track at which height the validator last signed + - `consensus_validator_missed_blocks`: total amount of missed blocks for a validator + as gauges in prometheus for validator specific metrics +- [rpc/lib] [\#4248](https://github.com/tendermint/tendermint/issues/4248) RPC client basic authentication support (@greg-szabo) +- [lite2] [\#1771](https://github.com/tendermint/tendermint/issues/1771) Light client with weak subjectivity + +### IMPROVEMENTS: + +- [rpc] [\#3188](https://github.com/tendermint/tendermint/issues/3188) Added `block_size` to `BlockMeta` this is reflected in `/blockchain` +- [types] [\#2521](https://github.com/tendermint/tendermint/issues/2521) Add `NumTxs` to `BlockMeta` and `EventDataNewBlockHeader` +- [p2p] [\#4185](https://github.com/tendermint/tendermint/pull/4185) Simplify `SecretConnection` handshake with merlin +- [cli] [\#4065](https://github.com/tendermint/tendermint/issues/4065) Add `--consensus.create_empty_blocks_interval` flag (@jgimeno) +- [docs] [\#4065](https://github.com/tendermint/tendermint/issues/4065) Document `--consensus.create_empty_blocks_interval` flag (@jgimeno) +- [crypto] [\#4190](https://github.com/tendermint/tendermint/pull/4190) Added SR25519 signature scheme +- [abci] [\#4177] kvstore: Return `LastBlockHeight` and `LastBlockAppHash` in `Info` (@princesinha19) +- [rpc] [\#2741](https://github.com/tendermint/tendermint/issues/2741) Add `proposer` to `/consensus_state` response (@princesinha19) +- [deps] [\#4289](https://github.com/tendermint/tendermint/pull/4289) Update tm-db to 0.4.0, this includes major breaking changes in the dep that change how errors are handled. + +### BUG FIXES: + +- [rpc/lib][\#4051](https://github.com/tendermint/tendermint/pull/4131) Fix RPC client, which was previously resolving https protocol to http (@yenkhoon) +- [rpc] [\#4141](https://github.com/tendermint/tendermint/pull/4141) JSONRPCClient: validate that Response.ID matches Request.ID +- [rpc] [\#4141](https://github.com/tendermint/tendermint/pull/4141) WSClient: check for unsolicited responses +- [types] [\4164](https://github.com/tendermint/tendermint/pull/4164) Prevent temporary power overflows on validator updates +- [cs] [\#4069](https://github.com/tendermint/tendermint/issues/4069) Don't panic when block meta is not found in store (@gregzaitsev) +- [types] [\#4164](https://github.com/tendermint/tendermint/issues/4164) Prevent temporary power overflows on validator updates (joint + efforts of @gchaincl and @ancazamfir) +- [p2p] [\#4140](https://github.com/tendermint/tendermint/issues/4140) `SecretConnection`: use the transcript solely for authentication (i.e. MAC) +- [consensus/types] [\#4243](https://github.com/tendermint/tendermint/issues/4243) fix BenchmarkRoundStateDeepCopy panics (@cuonglm) +- [rpc] [\#4256](https://github.com/tendermint/tendermint/issues/4256) Pass `outCapacity` to `eventBus#Subscribe` when subscribing using a local client + +## v0.32.13 + +*August 5, 2020* + + ### BUG FIXES + + - [privval] [\#5112](https://github.com/tendermint/tendermint/issues/5112) If remote signer errors, don't retry (@melekes) + +## v0.32.12 + +*May 19, 2020* + +### BUG FIXES + +- [p2p] [\#4847](https://github.com/tendermint/tendermint/pull/4847) Return masked IP (not the actual IP) in addrbook#groupKey (@melekes) + +## v0.32.11 + +*April 29, 2020* + +### BUG FIXES: + +- [privval] [\#4275](https://github.com/tendermint/tendermint/issues/4275) Fix consensus failure when remote signer drops (@melekes) + +## v0.32.10 + +*April 6, 2020* + +This security release fixes: + +### Denial of Service 1 + +Tendermint 0.33.2 and earlier does not limit the number of P2P connection +requests. For each p2p connection, Tendermint allocates ~0.5MB. Even though +this memory is garbage collected once the connection is terminated (due to +duplicate IP or reaching a maximum number of inbound peers), temporary memory +spikes can lead to OOM (Out-Of-Memory) exceptions. + +Tendermint 0.33.3 (and 0.32.10) limits the total number of P2P incoming +connection requests to to `p2p.max_num_inbound_peers + +len(p2p.unconditional_peer_ids)`. + +Notes: + +- Tendermint does not rate limit P2P connection requests per IP (an attacker + can saturate all the inbound slots); +- Tendermint does not rate limit HTTP(S) requests. If you expose any RPC + endpoints to the public, please make sure to put in place some protection + (https://www.nginx.com/blog/rate-limiting-nginx/). We may implement this in + the future ([\#1696](https://github.com/tendermint/tendermint/issues/1696)). + +### Denial of Service 2 + +Tendermint 0.33.2 and earlier does not reclaim `activeID` of a peer after it's +removed in `Mempool` reactor. This does not happen all the time. It only +happens when a connection fails (for any reason) before the Peer is created and +added to all reactors. `RemovePeer` is therefore called before `AddPeer`, which +leads to always growing memory (`activeIDs` map). The `activeIDs` map has a +maximum size of 65535 and the node will panic if this map reaches the maximum. +An attacker can create a lot of connection attempts (exploiting Denial of +Service 1), which ultimately will lead to the node panicking. + +Tendermint 0.33.3 (and 0.32.10) claims `activeID` for a peer in `InitPeer`, +which is executed before `MConnection` is started. + +Notes: + +- `InitPeer` function was added to all reactors to combat a similar issue - + [\#3338](https://github.com/tendermint/tendermint/issues/3338); +- Denial of Service 2 is independent of Denial of Service 1 and can be executed + without it. + +**All clients are recommended to upgrade** + +Special thanks to [fudongbai](https://hackerone.com/fudongbai) for finding +and reporting this. + +### SECURITY: + +- [mempool] Reserve IDs in InitPeer instead of AddPeer (@tessr) +- [p2p] Limit the number of incoming connections (@melekes) + +## v0.32.9 + +_January, 9, 2020_ + +Special thanks to external contributors on this release: @greg-szabo, @gregzaitsev, @yenkhoon + +### FEATURES: + +- [rpc/lib] [\#4248](https://github.com/tendermint/tendermint/issues/4248) RPC client basic authentication support (@greg-szabo) + +- [metrics] [\#4294](https://github.com/tendermint/tendermint/pull/4294) Add + - `consensus_validator_power`: track your validators power + - `consensus_validator_last_signed_height`: track at which height the validator last signed + - `consensus_validator_missed_blocks`: total amount of missed blocks for a validator + as gauges in prometheus for validator specific metrics + +### BUG FIXES: + +- [rpc/lib] [\#4131](https://github.com/tendermint/tendermint/pull/4131) Fix RPC client, which was previously resolving https protocol to http (@yenkhoon) +- [cs] [\#4069](https://github.com/tendermint/tendermint/issues/4069) Don't panic when block meta is not found in store (@gregzaitsev) + +## v0.32.8 + +*November 19, 2019* + +Special thanks to external contributors on this release: @erikgrinaker, @guagualvcha, @hsyis, @cosmostuba, @whunmr, @austinabell + + +### BREAKING CHANGES: + +- Go API + + - [libs/pubsub] [\#4070](https://github.com/tendermint/tendermint/pull/4070) `Query#(Matches|Conditions)` returns an error. + +### IMPROVEMENTS: + +- [mempool] [\#4083](https://github.com/tendermint/tendermint/pull/4083) Added TxInfo parameter to CheckTx(), and removed CheckTxWithInfo() (@erikgrinaker) +- [mempool] [\#4057](https://github.com/tendermint/tendermint/issues/4057) Include peer ID when logging rejected txns (@erikgrinaker) +- [tools] [\#4023](https://github.com/tendermint/tendermint/issues/4023) Improved `tm-monitor` formatting of start time and avg tx throughput (@erikgrinaker) +- [p2p] [\#3991](https://github.com/tendermint/tendermint/issues/3991) Log "has been established or dialed" as debug log instead of Error for connected peers (@whunmr) +- [rpc] [\#4077](https://github.com/tendermint/tendermint/pull/4077) Added support for `EXISTS` clause to the Websocket query interface. +- [privval] Add `SignerDialerEndpointRetryWaitInterval` option (@cosmostuba) +- [crypto] Add `RegisterKeyType` to amino to allow external key types registration (@austinabell) + +### BUG FIXES: + +- [libs/pubsub] [\#4070](https://github.com/tendermint/tendermint/pull/4070) Strip out non-numeric characters when attempting to match numeric values. +- [libs/pubsub] [\#4070](https://github.com/tendermint/tendermint/pull/4070) No longer panic in Query#(Matches|Conditions) preferring to return an error instead. +- [tools] [\#4023](https://github.com/tendermint/tendermint/issues/4023) Refresh `tm-monitor` health when validator count is updated (@erikgrinaker) +- [state] [\#4104](https://github.com/tendermint/tendermint/pull/4104) txindex/kv: Fsync data to disk immediately after receiving it (@guagualvcha) +- [state] [\#4095](https://github.com/tendermint/tendermint/pull/4095) txindex/kv: Return an error if there's one when the user searches for a tx (hash=X) (@hsyis) + +## v0.32.7 + +*October 18, 2019* + +This security release fixes a vulnerability found in the `consensus` package, +where an attacker could construct a `BlockPartMessage` message in such a way +that it will lead to consensus failure. A few similar issues have been +identified and fixed here. + +**All clients are recommended to upgrade** + +Special thanks to [elvishacker](https://hackerone.com/elvishacker) for finding +and reporting this. + +### BREAKING CHANGES: + +- Go API + - [consensus] Modify `WAL#Write` and `WAL#WriteSync` to return an error if + they fail to write a message + +### SECURITY: + +- [consensus] Validate incoming messages more throughly + +## v0.32.6 + +*October 8, 2019* + +The previous patch was insufficient because the attacker could still find a way +to submit a `nil` pubkey by constructing a `PubKeyMultisigThreshold` pubkey +with `nil` subpubkeys for example. + +This release provides multiple fixes, which include recovering from panics when +accepting new peers and only allowing `ed25519` pubkeys. + +**All clients are recommended to upgrade** + +Special thanks to [fudongbai](https://hackerone.com/fudongbai) for pointing +this out. + +### SECURITY: + +- [p2p] [\#4030](https://github.com/tendermint/tendermint/issues/4030) Only allow ed25519 pubkeys when connecting + +## v0.32.5 + +*October 1, 2019* + +This release fixes a major security vulnerability found in the `p2p` package. +All clients are recommended to upgrade. See +[\#4030](https://github.com/tendermint/tendermint/issues/4030) for details. + +Special thanks to [fudongbai](https://hackerone.com/fudongbai) for discovering +and reporting this issue. + +### SECURITY: + +- [p2p] [\#4030](https://github.com/tendermint/tendermint/issues/4030) Fix for panic on nil public key send to a peer + +## v0.32.4 + +*September 19, 2019* + +Special thanks to external contributors on this release: @jon-certik, @gracenoah, @PSalant726, @gchaincl + +### BREAKING CHANGES: + +- CLI/RPC/Config + - [rpc] [\#3984](https://github.com/tendermint/tendermint/issues/3984) Add `MempoolClient` interface to `Client` interface + +### IMPROVEMENTS: + +- [rpc] [\#2010](https://github.com/tendermint/tendermint/issues/2010) Add NewHTTPWithClient and NewJSONRPCClientWithHTTPClient (note these and NewHTTP, NewJSONRPCClient functions panic if remote is invalid) (@gracenoah) +- [rpc] [\#3882](https://github.com/tendermint/tendermint/issues/3882) Add custom marshalers to proto messages to disable `omitempty` +- [deps] [\#3952](https://github.com/tendermint/tendermint/pull/3952) bump github.com/go-kit/kit from 0.6.0 to 0.9.0 +- [deps] [\#3951](https://github.com/tendermint/tendermint/pull/3951) bump github.com/stretchr/testify from 1.3.0 to 1.4.0 +- [deps] [\#3945](https://github.com/tendermint/tendermint/pull/3945) bump github.com/gorilla/websocket from 1.2.0 to 1.4.1 +- [deps] [\#3948](https://github.com/tendermint/tendermint/pull/3948) bump github.com/libp2p/go-buffer-pool from 0.0.1 to 0.0.2 +- [deps] [\#3943](https://github.com/tendermint/tendermint/pull/3943) bump github.com/fortytw2/leaktest from 1.2.0 to 1.3.0 +- [deps] [\#3939](https://github.com/tendermint/tendermint/pull/3939) bump github.com/rs/cors from 1.6.0 to 1.7.0 +- [deps] [\#3937](https://github.com/tendermint/tendermint/pull/3937) bump github.com/magiconair/properties from 1.8.0 to 1.8.1 +- [deps] [\#3947](https://github.com/tendermint/tendermint/pull/3947) update gogo/protobuf version from v1.2.1 to v1.3.0 +- [deps] [\#4001](https://github.com/tendermint/tendermint/pull/4001) bump github.com/tendermint/tm-db from 0.1.1 to 0.2.0 + +### BUG FIXES: + +- [consensus] [\#3908](https://github.com/tendermint/tendermint/issues/3908) Wait `timeout_commit` to pass even if `create_empty_blocks` is `false` +- [mempool] [\#3968](https://github.com/tendermint/tendermint/issues/3968) Fix memory loading error on 32-bit machines (@jon-certik) + +## v0.32.3 + +*August 28, 2019* + +@climber73 wrote the [Writing a Tendermint Core application in Java +(gRPC)](https://github.com/tendermint/tendermint/blob/master/docs/guides/java.md) +guide. + +Special thanks to external contributors on this release: +@gchaincl, @bluele, @climber73 + +### IMPROVEMENTS: + +- [consensus] [\#3839](https://github.com/tendermint/tendermint/issues/3839) Reduce "Error attempting to add vote" message severity (Error -> Info) +- [mempool] [\#3877](https://github.com/tendermint/tendermint/pull/3877) Make `max_tx_bytes` configurable instead of `max_msg_bytes` (@bluele) +- [privval] [\#3370](https://github.com/tendermint/tendermint/issues/3370) Refactor and simplify validator/kms connection handling. Please refer to [this comment](https://github.com/tendermint/tendermint/pull/3370#issue-257360971) for details +- [rpc] [\#3880](https://github.com/tendermint/tendermint/issues/3880) Document endpoints with `swagger`, introduce contract tests of implementation against documentation + +### BUG FIXES: + +- [config] [\#3868](https://github.com/tendermint/tendermint/issues/3868) Move misplaced `max_msg_bytes` into mempool section (@bluele) +- [rpc] [\#3910](https://github.com/tendermint/tendermint/pull/3910) Fix DATA RACE in HTTP client (@gchaincl) +- [store] [\#3893](https://github.com/tendermint/tendermint/issues/3893) Fix "Unregistered interface types.Evidence" panic + +## v0.32.2 + +*July 31, 2019* + +Special thanks to external contributors on this release: +@ruseinov, @bluele, @guagualvcha + +### BREAKING CHANGES: + +- Go API + - [libs] [\#3811](https://github.com/tendermint/tendermint/issues/3811) Remove `db` from libs in favor of `https://github.com/tendermint/tm-db` + +### FEATURES: + +- [blockchain] [\#3561](https://github.com/tendermint/tendermint/issues/3561) Add early version of the new blockchain reactor, which is supposed to be more modular and testable compared to the old version. To try it, you'll have to change `version` in the config file, [here](https://github.com/tendermint/tendermint/blob/master/config/toml.go#L303) NOTE: It's not ready for a production yet. For further information, see [ADR-40](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-040-blockchain-reactor-refactor.md) & [ADR-43](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-043-blockchain-riri-org.md) +- [mempool] [\#3826](https://github.com/tendermint/tendermint/issues/3826) Make `max_msg_bytes` configurable(@bluele) +- [node] [\#3846](https://github.com/tendermint/tendermint/pull/3846) Allow replacing existing p2p.Reactor(s) using [`CustomReactors` + option](https://godoc.org/github.com/tendermint/tendermint/node#CustomReactors). + Warning: beware of accidental name clashes. Here is the list of existing + reactors: MEMPOOL, BLOCKCHAIN, CONSENSUS, EVIDENCE, PEX. +- [rpc] [\#3818](https://github.com/tendermint/tendermint/issues/3818) Make `max_body_bytes` and `max_header_bytes` configurable(@bluele) +- [rpc] [\#2252](https://github.com/tendermint/tendermint/issues/2252) Add `/broadcast_evidence` endpoint to submit double signing and other types of evidence + +### IMPROVEMENTS: + +- [abci] [\#3809](https://github.com/tendermint/tendermint/issues/3809) Recover from application panics in `server/socket_server.go` to allow socket cleanup (@ruseinov) +- [p2p] [\#3664](https://github.com/tendermint/tendermint/issues/3664) p2p/conn: reuse buffer when write/read from secret connection(@guagualvcha) +- [p2p] [\#3834](https://github.com/tendermint/tendermint/issues/3834) Do not write 'Couldn't connect to any seeds' error log if there are no seeds in config file +- [rpc] [\#3076](https://github.com/tendermint/tendermint/issues/3076) Improve transaction search performance + +### BUG FIXES: + +- [p2p] [\#3644](https://github.com/tendermint/tendermint/issues/3644) Fix error logging for connection stop (@defunctzombie) +- [rpc] [\#3813](https://github.com/tendermint/tendermint/issues/3813) Return err if page is incorrect (less than 0 or greater than total pages) + +## v0.32.1 + +*July 15, 2019* + +Special thanks to external contributors on this release: +@ParthDesai, @climber73, @jim380, @ashleyvega + +This release contains a minor enhancement to the ABCI and some breaking changes to our libs folder, namely: +- CheckTx requests include a `CheckTxType` enum that can be set to `Recheck` to indicate to the application that this transaction was already checked/validated and certain expensive operations (like checking signatures) can be skipped +- Removed various functions from `libs` pkgs + +### BREAKING CHANGES: + +- Go API + + - [abci] [\#2127](https://github.com/tendermint/tendermint/issues/2127) The CheckTx and DeliverTx methods in the ABCI `Application` interface now take structs as arguments (RequestCheckTx and RequestDeliverTx, respectively), instead of just the raw tx bytes. This allows more information to be passed to these methods, for instance, indicating whether a tx has already been checked. + - [libs] Remove unused `db/debugDB` and `common/colors.go` & `errors/errors.go` files (@marbar3778) + - [libs] [\#2432](https://github.com/tendermint/tendermint/issues/2432) Remove unused `common/heap.go` file (@marbar3778) + - [libs] Remove unused `date.go`, `io.go`. Remove `GoPath()`, `Prompt()` and `IsDirEmpty()` functions from `os.go` (@marbar3778) + - [libs] Remove unused `FailRand()` func and minor clean up to `fail.go`(@marbar3778) + +### FEATURES: + +- [node] Add variadic argument to `NewNode` to support functional options, allowing the Node to be more easily customized. +- [node][\#3730](https://github.com/tendermint/tendermint/pull/3730) Add `CustomReactors` option to `NewNode` allowing caller to pass + custom reactors to run inside Tendermint node (@ParthDesai) +- [abci] [\#2127](https://github.com/tendermint/tendermint/issues/2127)RequestCheckTx has a new field, `CheckTxType`, which can take values of `CheckTxType_New` and `CheckTxType_Recheck`, indicating whether this is a new tx being checked for the first time or whether this tx is being rechecked after a block commit. This allows applications to skip certain expensive operations, like signature checking, if they've already been done once. see [docs](https://github.com/tendermint/tendermint/blob/eddb433d7c082efbeaf8974413a36641519ee895/docs/spec/abci/apps.md#mempool-connection) + +### IMPROVEMENTS: + +- [rpc] [\#3700](https://github.com/tendermint/tendermint/issues/3700) Make possible to set absolute paths for TLS cert and key (@climber73) +- [abci] [\#3513](https://github.com/tendermint/tendermint/issues/3513) Call the reqRes callback after the resCb so they always happen in the same order + +### BUG FIXES: + +- [p2p] [\#3338](https://github.com/tendermint/tendermint/issues/3338) Prevent "sent next PEX request too soon" errors by not calling + ensurePeers outside of ensurePeersRoutine +- [behaviour] [\3772](https://github.com/tendermint/tendermint/pull/3772) Return correct reason in MessageOutOfOrder (@jim380) +- [config] [\#3723](https://github.com/tendermint/tendermint/issues/3723) Add consensus_params to testnet config generation; document time_iota_ms (@ashleyvega) + + +## v0.32.0 + +*June 25, 2019* + +Special thanks to external contributors on this release: +@needkane, @SebastianElvis, @andynog, @Yawning, @wooparadog + +This release contains breaking changes to our build and release processes, ABCI, +and the RPC, namely: +- Use Go modules instead of dep +- Bring active development to the `master` Github branch +- ABCI Tags are now Events - see + [docs](https://github.com/tendermint/tendermint/blob/60827f75623b92eff132dc0eff5b49d2025c591e/docs/spec/abci/abci.md#events) +- Bind RPC to localhost by default, not to the public interface [UPGRADING/RPC_Changes](./UPGRADING.md#rpc_changes) + +### BREAKING CHANGES: + +* CLI/RPC/Config + - [cli] [\#3613](https://github.com/tendermint/tendermint/issues/3613) Switch from golang/dep to Go Modules to resolve dependencies: + It is recommended to switch to Go Modules if your project has tendermint as + a dependency. Read more on Modules here: + https://github.com/golang/go/wiki/Modules + - [config] [\#3632](https://github.com/tendermint/tendermint/pull/3632) Removed `leveldb` as generic + option for `db_backend`. Must be `goleveldb` or `cleveldb`. + - [rpc] [\#3616](https://github.com/tendermint/tendermint/issues/3616) Fix field names for `/block_results` response (eg. `results.DeliverTx` + -> `results.deliver_tx`). See docs for details. + - [rpc] [\#3724](https://github.com/tendermint/tendermint/issues/3724) RPC now binds to `127.0.0.1` by default instead of `0.0.0.0` + +* Apps + - [abci] [\#1859](https://github.com/tendermint/tendermint/issues/1859) `ResponseCheckTx`, `ResponseDeliverTx`, `ResponseBeginBlock`, + and `ResponseEndBlock` now include `Events` instead of `Tags`. Each `Event` + contains a `type` and a list of `attributes` (list of key-value pairs) + allowing for inclusion of multiple distinct events in each response. + +* Go API + - [abci] [\#3193](https://github.com/tendermint/tendermint/issues/3193) Use RequestDeliverTx and RequestCheckTx in the ABCI + Application interface + - [libs/db] [\#3632](https://github.com/tendermint/tendermint/pull/3632) Removed deprecated `LevelDBBackend` const + If you have `db_backend` set to `leveldb` in your config file, please + change it to `goleveldb` or `cleveldb`. + - [p2p] [\#3521](https://github.com/tendermint/tendermint/issues/3521) Remove NewNetAddressStringWithOptionalID + +* Blockchain Protocol + +* P2P Protocol + +### FEATURES: + +### IMPROVEMENTS: +- [abci/examples] [\#3659](https://github.com/tendermint/tendermint/issues/3659) Change validator update tx format in the `persistent_kvstore` to use base64 for pubkeys instead of hex (@needkane) +- [consensus] [\#3656](https://github.com/tendermint/tendermint/issues/3656) Exit if SwitchToConsensus fails +- [p2p] [\#3666](https://github.com/tendermint/tendermint/issues/3666) Add per channel telemetry to improve reactor observability +- [rpc] [\#3686](https://github.com/tendermint/tendermint/pull/3686) `HTTPClient#Call` returns wrapped errors, so a caller could use `errors.Cause` to retrieve an error code. (@wooparadog) + +### BUG FIXES: +- [libs/db] [\#3717](https://github.com/tendermint/tendermint/issues/3717) Fixed the BoltDB backend's Batch.Delete implementation (@Yawning) +- [libs/db] [\#3718](https://github.com/tendermint/tendermint/issues/3718) Fixed the BoltDB backend's Get and Iterator implementation (@Yawning) +- [node] [\#3716](https://github.com/tendermint/tendermint/issues/3716) Fix a bug where `nil` is recorded as node's address +- [node] [\#3741](https://github.com/tendermint/tendermint/issues/3741) Fix profiler blocking the entire node + +*Tendermint 0.31 release series has reached End-Of-Life and is no longer supported.* + +## v0.31.12 + +*April 6, 2020* + +This security release fixes: + +### Denial of Service 1 + +Tendermint 0.33.2 and earlier does not limit the number of P2P connection requests. +For each p2p connection, Tendermint allocates ~0.5MB. Even though this +memory is garbage collected once the connection is terminated (due to duplicate +IP or reaching a maximum number of inbound peers), temporary memory spikes can +lead to OOM (Out-Of-Memory) exceptions. + +Tendermint 0.33.3, 0.32.10, and 0.31.12 limit the total number of P2P incoming +connection requests to to `p2p.max_num_inbound_peers + +len(p2p.unconditional_peer_ids)`. + +Notes: + +- Tendermint does not rate limit P2P connection requests per IP (an attacker + can saturate all the inbound slots); +- Tendermint does not rate limit HTTP(S) requests. If you expose any RPC + endpoints to the public, please make sure to put in place some protection + (https://www.nginx.com/blog/rate-limiting-nginx/). We may implement this in + the future ([\#1696](https://github.com/tendermint/tendermint/issues/1696)). + +### Denial of Service 2 + +Tendermint 0.33.2 and earlier does not reclaim `activeID` of a peer after it's +removed in `Mempool` reactor. This does not happen all the time. It only +happens when a connection fails (for any reason) before the Peer is created and +added to all reactors. `RemovePeer` is therefore called before `AddPeer`, which +leads to always growing memory (`activeIDs` map). The `activeIDs` map has a +maximum size of 65535 and the node will panic if this map reaches the maximum. +An attacker can create a lot of connection attempts (exploiting Denial of +Service 1), which ultimately will lead to the node panicking. + +Tendermint 0.33.3, 0.32.10, and 0.31.12 claim `activeID` for a peer in `InitPeer`, +which is executed before `MConnection` is started. + +Notes: + +- `InitPeer` function was added to all reactors to combat a similar issue - + [\#3338](https://github.com/tendermint/tendermint/issues/3338); +- Denial of Service 2 is independent of Denial of Service 1 and can be executed + without it. + +**All clients are recommended to upgrade** + +Special thanks to [fudongbai](https://hackerone.com/fudongbai) for finding +and reporting this. + + +### SECURITY: + +- [mempool] Reserve IDs in InitPeer instead of AddPeer (@tessr) +- [p2p] Limit the number of incoming connections (@melekes) + +## v0.31.11 + +*October 18, 2019* + +This security release fixes a vulnerability found in the `consensus` package, +where an attacker could construct a `BlockPartMessage` message in such a way +that it will lead to consensus failure. A few similar issues have been +identified and fixed here. + +**All clients are recommended to upgrade** + +Special thanks to [elvishacker](https://hackerone.com/elvishacker) for finding +and reporting this. + + +### BREAKING CHANGES: + +- Go API + - [consensus] Modify `WAL#Write` and `WAL#WriteSync` to return an error if + they fail to write a message + +### SECURITY: + +- [consensus] Validate incoming messages more throughly + +## v0.31.10 + +*October 8, 2019* + +The previous patch was insufficient because the attacker could still find a way +to submit a `nil` pubkey by constructing a `PubKeyMultisigThreshold` pubkey +with `nil` subpubkeys for example. + +This release provides multiple fixes, which include recovering from panics when +accepting new peers and only allowing `ed25519` pubkeys. + +**All clients are recommended to upgrade** + +Special thanks to [fudongbai](https://hackerone.com/fudongbai) for pointing +this out. + + +### SECURITY: + +- [p2p] [\#4030](https://github.com/tendermint/tendermint/issues/4030) Only allow ed25519 pubkeys when connecting + +## v0.31.9 + +*October 1, 2019* + +This release fixes a major security vulnerability found in the `p2p` package. +All clients are recommended to upgrade. See +[\#4030](https://github.com/tendermint/tendermint/issues/4030) for details. + +Special thanks to [fudongbai](https://hackerone.com/fudongbai) for discovering +and reporting this issue. + + +### SECURITY: + +- [p2p] [\#4030](https://github.com/tendermint/tendermint/issues/4030) Fix for panic on nil public key send to a peer + +### BUG FIXES: + +- [node] [\#3716](https://github.com/tendermint/tendermint/issues/3716) Fix a bug where `nil` is recorded as node's address +- [node] [\#3741](https://github.com/tendermint/tendermint/issues/3741) Fix profiler blocking the entire node + +## v0.31.8 + +*July 29, 2019* + +This releases fixes one bug in the PEX reactor and adds a `recover` to the Go's +ABCI server, which allows it to properly cleanup. + +### IMPROVEMENTS: +- [abci] [\#3809](https://github.com/tendermint/tendermint/issues/3809) Recover from application panics in `server/socket_server.go` to allow socket cleanup (@ruseinov) + +### BUG FIXES: +- [p2p] [\#3338](https://github.com/tendermint/tendermint/issues/3338) Prevent "sent next PEX request too soon" errors by not calling + ensurePeers outside of ensurePeersRoutine + +## v0.31.7 + +*June 3, 2019* + +This releases fixes a regression in the mempool introduced in v0.31.6. +The regression caused the invalid committed txs to be proposed in blocks over and +over again. + +### BUG FIXES: +- [mempool] [\#3699](https://github.com/tendermint/tendermint/issues/3699) Remove all committed txs from the mempool. + This reverts the change from v0.31.6 where we only remove valid txs from the mempool. + Note this means malicious proposals can cause txs to be dropped from the + mempools of other nodes by including them in blocks before they are valid. + See [\#3322](https://github.com/tendermint/tendermint/issues/3322). + +## v0.31.6 + +*May 31st, 2019* + +This release contains many fixes and improvements, primarily for p2p functionality. +It also fixes a security issue in the mempool package. + +With this release, Tendermint now supports [boltdb](https://github.com/etcd-io/bbolt), although +in experimental mode. Feel free to try and report to us any findings/issues. +Note also that the build tags for compiling CLevelDB have changed. + +Special thanks to external contributors on this release: +@guagualvcha, @james-ray, @gregdhill, @climber73, @yutianwu, +@carlosflrs, @defunctzombie, @leoluk, @needkane, @CrocdileChan + +### BREAKING CHANGES: + +* Go API + - [libs/common] Removed deprecated `PanicSanity`, `PanicCrisis`, + `PanicConsensus` and `PanicQ` + - [mempool, state] [\#2659](https://github.com/tendermint/tendermint/issues/2659) `Mempool` now an interface that lives in the mempool package. + See issue and PR for more details. + - [p2p] [\#3346](https://github.com/tendermint/tendermint/issues/3346) `Reactor#InitPeer` method is added to `Reactor` interface + - [types] [\#1648](https://github.com/tendermint/tendermint/issues/1648) `Commit#VoteSignBytes` signature was changed + +### FEATURES: +- [node] [\#2659](https://github.com/tendermint/tendermint/issues/2659) Add `node.Mempool()` method, which allows you to access mempool +- [libs/db] [\#3604](https://github.com/tendermint/tendermint/pull/3604) Add experimental support for bolt db (etcd's fork of bolt) (@CrocdileChan) + +### IMPROVEMENTS: +- [cli] [\#3585](https://github.com/tendermint/tendermint/issues/3585) Add `--keep-addr-book` option to `unsafe_reset_all` cmd to not + clear the address book (@climber73) +- [cli] [\#3160](https://github.com/tendermint/tendermint/issues/3160) Add + `--config=` option to `testnet` cmd (@gregdhill) +- [cli] [\#3661](https://github.com/tendermint/tendermint/pull/3661) Add + `--hostname-suffix`, `--hostname` and `--random-monikers` options to `testnet` + cmd for greater peer address/identity generation flexibility. +- [crypto] [\#3672](https://github.com/tendermint/tendermint/issues/3672) Return more info in the `AddSignatureFromPubKey` error +- [cs/replay] [\#3460](https://github.com/tendermint/tendermint/issues/3460) Check appHash for each block +- [libs/db] [\#3611](https://github.com/tendermint/tendermint/issues/3611) Conditional compilation + * Use `cleveldb` tag instead of `gcc` to compile Tendermint with CLevelDB or + use `make build_c` / `make install_c` (full instructions can be found at + https://docs.tendermint.com/master/introduction/install.html#compile-with-cleveldb-support) + * Use `boltdb` tag to compile Tendermint with bolt db +- [node] [\#3362](https://github.com/tendermint/tendermint/issues/3362) Return an error if `persistent_peers` list is invalid (except + when IP lookup fails) +- [p2p] [\#3463](https://github.com/tendermint/tendermint/pull/3463) Do not log "Can't add peer's address to addrbook" error for a private peer (@guagualvcha) +- [p2p] [\#3531](https://github.com/tendermint/tendermint/issues/3531) Terminate session on nonce wrapping (@climber73) +- [pex] [\#3647](https://github.com/tendermint/tendermint/pull/3647) Dial seeds, if any, instead of crawling peers first (@defunctzombie) +- [rpc] [\#3534](https://github.com/tendermint/tendermint/pull/3534) Add support for batched requests/responses in JSON RPC +- [rpc] [\#3362](https://github.com/tendermint/tendermint/issues/3362) `/dial_seeds` & `/dial_peers` return errors if addresses are + incorrect (except when IP lookup fails) + +### BUG FIXES: +- [consensus] [\#3067](https://github.com/tendermint/tendermint/issues/3067) Fix replay from appHeight==0 with validator set changes (@james-ray) +- [consensus] [\#3304](https://github.com/tendermint/tendermint/issues/3304) Create a peer state in consensus reactor before the peer + is started (@guagualvcha) +- [lite] [\#3669](https://github.com/tendermint/tendermint/issues/3669) Add context parameter to RPC Handlers in proxy routes (@yutianwu) +- [mempool] [\#3322](https://github.com/tendermint/tendermint/issues/3322) When a block is committed, only remove committed txs from the mempool +that were valid (ie. `ResponseDeliverTx.Code == 0`) +- [p2p] [\#3338](https://github.com/tendermint/tendermint/issues/3338) Ensure `RemovePeer` is always called before `InitPeer` (upon a peer + reconnecting to our node) +- [p2p] [\#3532](https://github.com/tendermint/tendermint/issues/3532) Limit the number of attempts to connect to a peer in seed mode + to 16 (as a result, the node will stop retrying after a 35 hours time window) +- [p2p] [\#3362](https://github.com/tendermint/tendermint/issues/3362) Allow inbound peers to be persistent, including for seed nodes. +- [pex] [\#3603](https://github.com/tendermint/tendermint/pull/3603) Dial seeds when addrbook needs more addresses (@defunctzombie) + +### OTHERS: +- [networks] fixes ansible integration script (@carlosflrs) + +## v0.31.5 + +*April 16th, 2019* + +This release fixes a regression from v0.31.4 where, in existing chains that +were upgraded, `/validators` could return an empty validator set. This is true +for almost all heights, given the validator set remains the same. + +Special thanks to external contributors on this release: +@brapse, @guagualvcha, @dongsam, @phucc + +### IMPROVEMENTS: + +- [libs/common] `CMap`: slight optimization in `Keys()` and `Values()` (@phucc) +- [gitignore] gitignore: add .vendor-new (@dongsam) + +### BUG FIXES: + +- [state] [\#3537](https://github.com/tendermint/tendermint/pull/3537#issuecomment-482711833) + `LoadValidators`: do not return an empty validator set +- [blockchain] [\#3457](https://github.com/tendermint/tendermint/issues/3457) + Fix "peer did not send us anything" in `fast_sync` mode when under high pressure + +## v0.31.4 + +*April 12th, 2019* + +This release fixes a regression from v0.31.3 which used the peer's `SocketAddr` to add the peer to +the address book. This swallowed the peer's self-reported port which is important in case of reconnect. +It brings back `NetAddress()` to `NodeInfo` and uses it instead of `SocketAddr` for adding peers. +Additionally, it improves response time on the `/validators` or `/status` RPC endpoints. +As a side-effect it makes these RPC endpoint more difficult to DoS and fixes a performance degradation in `ExecCommitBlock`. +Also, it contains an [ADR](https://github.com/tendermint/tendermint/pull/3539) that proposes decoupling the +responsibility for peer behaviour from the `p2p.Switch` (by @brapse). + +Special thanks to external contributors on this release: +@brapse, @guagualvcha, @mydring + +### IMPROVEMENTS: + +- [p2p] [\#3463](https://github.com/tendermint/tendermint/pull/3463) Do not log "Can't add peer's address to addrbook" error for a private peer +- [p2p] [\#3547](https://github.com/tendermint/tendermint/pull/3547) Fix a couple of annoying typos (@mdyring) + +### BUG FIXES: + +- [docs] [\#3514](https://github.com/tendermint/tendermint/issues/3514) Fix block.Header.Time description (@melekes) +- [p2p] [\#2716](https://github.com/tendermint/tendermint/issues/2716) Check if we're already connected to peer right before dialing it (@melekes) +- [p2p] [\#3545](https://github.com/tendermint/tendermint/issues/3545) Add back `NetAddress()` to `NodeInfo` and use it instead of peer's `SocketAddr()` when adding a peer to the `PEXReactor` (potential fix for [\#3532](https://github.com/tendermint/tendermint/issues/3532)) +- [state] [\#3438](https://github.com/tendermint/tendermint/pull/3438) + Persist validators every 100000 blocks even if no changes to the set + occurred (@guagualvcha). This + 1) Prevents possible DoS attack using `/validators` or `/status` RPC + endpoints. Before response time was growing linearly with height if no + changes were made to the validator set. + 2) Fixes performance degradation in `ExecCommitBlock` where we call + `LoadValidators` for each `Evidence` in the block. + +## v0.31.3 + +*April 1st, 2019* + +This release includes two security sensitive fixes: it ensures generated private +keys are valid, and it prevents certain DNS lookups that would cause the node to +panic if the lookup failed. + +### BREAKING CHANGES: +* Go API + - [crypto/secp256k1] [\#3439](https://github.com/tendermint/tendermint/issues/3439) + The `secp256k1.GenPrivKeySecp256k1` function has changed to guarantee that it returns a valid key, which means it + will return a different private key than in previous versions for the same secret. + +### BUG FIXES: + +- [crypto/secp256k1] [\#3439](https://github.com/tendermint/tendermint/issues/3439) + Ensure generated private keys are valid by randomly sampling until a valid key is found. + Previously, it was possible (though rare!) to generate keys that exceeded the curve order. + Such keys would lead to invalid signatures. +- [p2p] [\#3522](https://github.com/tendermint/tendermint/issues/3522) Memoize + socket address in peer connections to avoid DNS lookups. Previously, failed + DNS lookups could cause the node to panic. + +## v0.31.2 + +*March 30th, 2019* + +This release fixes a regression from v0.31.1 where Tendermint panics under +mempool load for external ABCI apps. + +Special thanks to external contributors on this release: +@guagualvcha + +### BREAKING CHANGES: + +* CLI/RPC/Config + +* Apps + +* Go API + - [libs/autofile] [\#3504](https://github.com/tendermint/tendermint/issues/3504) Remove unused code in autofile package. Deleted functions: `Group.Search`, `Group.FindLast`, `GroupReader.ReadLine`, `GroupReader.PushLine`, `MakeSimpleSearchFunc` (@guagualvcha) + +* Blockchain Protocol + +* P2P Protocol + +### FEATURES: + +### IMPROVEMENTS: + +- [circle] [\#3497](https://github.com/tendermint/tendermint/issues/3497) Move release management to CircleCI + +### BUG FIXES: + +- [mempool] [\#3512](https://github.com/tendermint/tendermint/issues/3512) Fix panic from concurrent access to txsMap, a regression for external ABCI apps introduced in v0.31.1 + +## v0.31.1 + +*March 27th, 2019* + +This release contains a major improvement for the mempool that reduce the amount of sent data by about 30% +(see some numbers below). +It also fixes a memory leak in the mempool and adds TLS support to the RPC server by providing a certificate and key in the config. + +Special thanks to external contributors on this release: +@brapse, @guagualvcha, @HaoyangLiu, @needkane, @TraceBundy + +### BREAKING CHANGES: + +* CLI/RPC/Config + +* Apps + +* Go API + - [crypto] [\#3426](https://github.com/tendermint/tendermint/pull/3426) Remove `Ripemd160` helper method (@needkane) + - [libs/common] [\#3429](https://github.com/tendermint/tendermint/pull/3429) Remove `RepeatTimer` (also `TimerMaker` and `Ticker` interface) + - [rpc/client] [\#3458](https://github.com/tendermint/tendermint/issues/3458) Include `NetworkClient` interface into `Client` interface + - [types] [\#3448](https://github.com/tendermint/tendermint/issues/3448) Remove method `PB2TM.ConsensusParams` + +* Blockchain Protocol + +* P2P Protocol + +### FEATURES: + + - [rpc] [\#3419](https://github.com/tendermint/tendermint/issues/3419) Start HTTPS server if `rpc.tls_cert_file` and `rpc.tls_key_file` are provided in the config (@guagualvcha) + +### IMPROVEMENTS: + +- [docs] [\#3140](https://github.com/tendermint/tendermint/issues/3140) Formalize proposer election algorithm properties +- [docs] [\#3482](https://github.com/tendermint/tendermint/issues/3482) Fix broken links (@brapse) +- [mempool] [\#2778](https://github.com/tendermint/tendermint/issues/2778) No longer send txs back to peers who sent it to you. +Also, limit to 65536 active peers. +This vastly improves the bandwidth consumption of nodes. +For instance, for a 4 node localnet, in a test sending 250byte txs for 120 sec. at 500 txs/sec (total of 15MB): + - total bytes received from 1st node: + - before: 42793967 (43MB) + - after: 30003256 (30MB) + - total bytes sent to 1st node: + - before: 30569339 (30MB) + - after: 19304964 (19MB) +- [p2p] [\#3475](https://github.com/tendermint/tendermint/issues/3475) Simplify `GetSelectionWithBias` for addressbook (@guagualvcha) +- [rpc/lib/client] [\#3430](https://github.com/tendermint/tendermint/issues/3430) Disable compression for HTTP client to prevent GZIP-bomb DoS attacks (@guagualvcha) + +### BUG FIXES: + +- [blockchain] [\#2699](https://github.com/tendermint/tendermint/issues/2699) Update the maxHeight when a peer is removed +- [mempool] [\#3478](https://github.com/tendermint/tendermint/issues/3478) Fix memory-leak related to `broadcastTxRoutine` (@HaoyangLiu) + + +## v0.31.0 + +*March 16th, 2019* + +Special thanks to external contributors on this release: +@danil-lashin, @guagualvcha, @siburu, @silasdavis, @srmo, @Stumble, @svenstaro + +This release is primarily about the new pubsub implementation, dubbed `pubsub 2.0`, and related changes, +like configurable limits on the number of active RPC subscriptions at a time (`max_subscription_clients`). +Pubsub 2.0 is an improved version of the older pubsub that is non-blocking and has a nicer API. +Note the improved pubsub API also resulted in some improvements to the HTTPClient interface and the API for WebSocket subscriptions. +This release also adds a configurable limit to the mempool size (`max_txs_bytes`, default 1GB) +and a configurable timeout for the `/broadcast_tx_commit` endpoint. + +See the [v0.31.0 +Milestone](https://github.com/tendermint/tendermint/milestone/19?closed=1) for +more details. + + +### BREAKING CHANGES: + +* CLI/RPC/Config + - [config] [\#2920](https://github.com/tendermint/tendermint/issues/2920) Remove `consensus.blocktime_iota` parameter + - [rpc] [\#3227](https://github.com/tendermint/tendermint/issues/3227) New PubSub design does not block on clients when publishing + messages. Slow clients may miss messages and receive an error, terminating + the subscription. + - [rpc] [\#3269](https://github.com/tendermint/tendermint/issues/2826) Limit number of unique clientIDs with open subscriptions. Configurable via `rpc.max_subscription_clients` + - [rpc] [\#3269](https://github.com/tendermint/tendermint/issues/2826) Limit number of unique queries a given client can subscribe to at once. Configurable via `rpc.max_subscriptions_per_client`. + - [rpc] [\#3435](https://github.com/tendermint/tendermint/issues/3435) Default ReadTimeout and WriteTimeout changed to 10s. WriteTimeout can increased by setting `rpc.timeout_broadcast_tx_commit` in the config. + - [rpc/client] [\#3269](https://github.com/tendermint/tendermint/issues/3269) Update `EventsClient` interface to reflect new pubsub/eventBus API [ADR-33](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-033-pubsub.md). This includes `Subscribe`, `Unsubscribe`, and `UnsubscribeAll` methods. + +* Apps + - [abci] [\#3403](https://github.com/tendermint/tendermint/issues/3403) Remove `time_iota_ms` from BlockParams. This is a + ConsensusParam but need not be exposed to the app for now. + - [abci] [\#2920](https://github.com/tendermint/tendermint/issues/2920) Rename `consensus_params.block_size` to `consensus_params.block` in ABCI ConsensusParams + +* Go API + - [libs/common] TrapSignal accepts logger as a first parameter and does not block anymore + * previously it was dumping "captured ..." msg to os.Stdout + * TrapSignal should not be responsible for blocking thread of execution + - [libs/db] [\#3397](https://github.com/tendermint/tendermint/pull/3397) Add possibility to `Close()` `Batch` to prevent memory leak when using ClevelDB. (@Stumble) + - [types] [\#3354](https://github.com/tendermint/tendermint/issues/3354) Remove RoundState from EventDataRoundState + - [rpc] [\#3435](https://github.com/tendermint/tendermint/issues/3435) `StartHTTPServer` / `StartHTTPAndTLSServer` now require a Config (use `rpcserver.DefaultConfig`) + +* Blockchain Protocol + +* P2P Protocol + +### FEATURES: +- [config] [\#3269](https://github.com/tendermint/tendermint/issues/2826) New configuration values for controlling RPC subscriptions: + - `rpc.max_subscription_clients` sets the maximum number of unique clients + with open subscriptions + - `rpc.max_subscriptions_per_client`sets the maximum number of unique + subscriptions from a given client + - `rpc.timeout_broadcast_tx_commit` sets the time to wait for a tx to be committed during `/broadcast_tx_commit` +- [types] [\#2920](https://github.com/tendermint/tendermint/issues/2920) Add `time_iota_ms` to block's consensus parameters (not exposed to the application) +- [lite] [\#3269](https://github.com/tendermint/tendermint/issues/3269) Add `/unsubscribe_all` endpoint to unsubscribe from all events +- [mempool] [\#3079](https://github.com/tendermint/tendermint/issues/3079) Bound mempool memory usage via the `mempool.max_txs_bytes` configuration value. Set to 1GB by default. The mempool's current `txs_total_bytes` is exposed via `total_bytes` field in + `/num_unconfirmed_txs` and `/unconfirmed_txs` RPC endpoints. + +### IMPROVEMENTS: +- [all] [\#3385](https://github.com/tendermint/tendermint/issues/3385), [\#3386](https://github.com/tendermint/tendermint/issues/3386) Various linting improvements +- [crypto] [\#3371](https://github.com/tendermint/tendermint/issues/3371) Copy in secp256k1 package from go-ethereum instead of importing + go-ethereum (@silasdavis) +- [deps] [\#3382](https://github.com/tendermint/tendermint/issues/3382) Don't pin repos without releases +- [deps] [\#3357](https://github.com/tendermint/tendermint/issues/3357), [\#3389](https://github.com/tendermint/tendermint/issues/3389), [\#3392](https://github.com/tendermint/tendermint/issues/3392) Update gogo/protobuf, golang/protobuf, levigo, golang.org/x/crypto +- [libs/common] [\#3238](https://github.com/tendermint/tendermint/issues/3238) exit with zero (0) code upon receiving SIGTERM/SIGINT +- [libs/db] [\#3378](https://github.com/tendermint/tendermint/issues/3378) CLevelDB#Stats now returns the following properties: + - leveldb.num-files-at-level{n} + - leveldb.stats + - leveldb.sstables + - leveldb.blockpool + - leveldb.cachedblock + - leveldb.openedtables + - leveldb.alivesnaps + - leveldb.aliveiters +- [privval] [\#3351](https://github.com/tendermint/tendermint/pull/3351) First part of larger refactoring that clarifies and separates concerns in the privval package. + +### BUG FIXES: +- [blockchain] [\#3358](https://github.com/tendermint/tendermint/pull/3358) Fix timer leak in `BlockPool` (@guagualvcha) +- [cmd] [\#3408](https://github.com/tendermint/tendermint/issues/3408) Fix `testnet` command's panic when creating non-validator configs (using `--n` flag) (@srmo) +- [libs/db/remotedb/grpcdb] [\#3402](https://github.com/tendermint/tendermint/issues/3402) Close Iterator/ReverseIterator after use +- [libs/pubsub] [\#951](https://github.com/tendermint/tendermint/issues/951), [\#1880](https://github.com/tendermint/tendermint/issues/1880) Use non-blocking send when dispatching messages [ADR-33](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-033-pubsub.md) +- [lite] [\#3364](https://github.com/tendermint/tendermint/issues/3364) Fix `/validators` and `/abci_query` proxy endpoints + (@guagualvcha) +- [p2p/conn] [\#3347](https://github.com/tendermint/tendermint/issues/3347) Reject all-zero shared secrets in the Diffie-Hellman step of secret-connection +- [p2p] [\#3369](https://github.com/tendermint/tendermint/issues/3369) Do not panic when filter times out +- [p2p] [\#3359](https://github.com/tendermint/tendermint/pull/3359) Fix reconnecting report duplicate ID error due to race condition between adding peer to peerSet and starting it (@guagualvcha) + +## v0.30.2 + +*March 10th, 2019* + +This release fixes a CLevelDB memory leak. It was happening because we were not +closing the WriteBatch object after use. See [levigo's +godoc](https://godoc.org/github.com/jmhodges/levigo#WriteBatch.Close) for the +Close method. Special thanks goes to @Stumble who both reported an issue in +[cosmos-sdk](https://github.com/cosmos/cosmos-sdk/issues/3842) and provided a +fix here. + +### BREAKING CHANGES: + +* Go API + - [libs/db] [\#3842](https://github.com/cosmos/cosmos-sdk/issues/3842) Add Close() method to Batch interface (@Stumble) + +### BUG FIXES: +- [libs/db] [\#3842](https://github.com/cosmos/cosmos-sdk/issues/3842) Fix CLevelDB memory leak (@Stumble) + +## v0.30.1 + +*February 20th, 2019* + +This release fixes a consensus halt and a DataCorruptionError after restart +discovered in `game_of_stakes_6`. It also fixes a security issue in the p2p +handshake by authenticating the NetAddress.ID of the peer we're dialing. + +### IMPROVEMENTS: + +* [config] [\#3291](https://github.com/tendermint/tendermint/issues/3291) Make + config.ResetTestRootWithChainID() create concurrency-safe test directories. + +### BUG FIXES: + +* [consensus] [\#3295](https://github.com/tendermint/tendermint/issues/3295) + Flush WAL on stop to prevent data corruption during graceful shutdown. +* [consensus] [\#3302](https://github.com/tendermint/tendermint/issues/3302) + Fix possible halt by resetting TriggeredTimeoutPrecommit before starting next height. +* [rpc] [\#3251](https://github.com/tendermint/tendermint/issues/3251) Fix + `/net_info#peers#remote_ip` format. New format spec: + * dotted decimal ("192.0.2.1"), if ip is an IPv4 or IP4-mapped IPv6 address + * IPv6 ("2001:db8::1"), if ip is a valid IPv6 address +* [cmd] [\#3314](https://github.com/tendermint/tendermint/issues/3314) Return + an error on `show_validator` when the private validator file does not exist. +* [p2p] [\#3010](https://github.com/tendermint/tendermint/issues/3010#issuecomment-464287627) + Authenticate a peer against its NetAddress.ID when dialing. + +## v0.30.0 + +*February 8th, 2019* + +This release fixes yet another issue with the proposer selection algorithm. +We hope it's the last one, but we won't be surprised if it's not. +We plan to one day expose the selection algorithm more directly to +the application ([\#3285](https://github.com/tendermint/tendermint/issues/3285)), and even to support randomness ([\#763](https://github.com/tendermint/tendermint/issues/763)). +For more, see issues marked +[proposer-selection](https://github.com/tendermint/tendermint/labels/proposer-selection). + +This release also includes a fix to prevent Tendermint from including the same +piece of evidence in more than one block. This issue was reported by @chengwenxi in our +[bug bounty program](https://hackerone.com/cosmos). + +### BREAKING CHANGES: + +* Apps + - [state] [\#3222](https://github.com/tendermint/tendermint/issues/3222) + Duplicate updates for the same validator are forbidden. Apps must ensure + that a given `ResponseEndBlock.ValidatorUpdates` contains only one entry per pubkey. + +* Go API + - [types] [\#3222](https://github.com/tendermint/tendermint/issues/3222) + Remove `Add` and `Update` methods from `ValidatorSet` in favor of new + `UpdateWithChangeSet`. This allows updates to be applied as a set, instead of + one at a time. + +* Block Protocol + - [state] [\#3286](https://github.com/tendermint/tendermint/issues/3286) Blocks that include already committed evidence are invalid. + +* P2P Protocol + - [consensus] [\#3222](https://github.com/tendermint/tendermint/issues/3222) + Validator updates are applied as a set, instead of one at a time, thus + impacting the proposer priority calculation. This ensures that the proposer + selection algorithm does not depend on the order of updates in + `ResponseEndBlock.ValidatorUpdates`. + +### IMPROVEMENTS: +- [crypto] [\#3279](https://github.com/tendermint/tendermint/issues/3279) Use `btcec.S256().N` directly instead of hard coding a copy. + +### BUG FIXES: +- [state] [\#3222](https://github.com/tendermint/tendermint/issues/3222) Fix validator set updates so they are applied as a set, rather + than one at a time. This makes the proposer selection algorithm independent of + the order of updates in `ResponseEndBlock.ValidatorUpdates`. +- [evidence] [\#3286](https://github.com/tendermint/tendermint/issues/3286) Don't add committed evidence to evidence pool. + +## v0.29.2 + +*February 7th, 2019* + +Special thanks to external contributors on this release: +@ackratos, @rickyyangz + +**Note**: This release contains security sensitive patches in the `p2p` and +`crypto` packages: +- p2p: + - Partial fix for MITM attacks on the p2p connection. MITM conditions may + still exist. See [\#3010](https://github.com/tendermint/tendermint/issues/3010). +- crypto: + - Eliminate our fork of `btcd` and use the `btcd/btcec` library directly for + native secp256k1 signing. Note we still modify the signature encoding to + prevent malleability. + - Support the libsecp256k1 library via CGo through the `go-ethereum/crypto/secp256k1` package. + - Eliminate MixEntropy functions + +### BREAKING CHANGES: + +* Go API + - [crypto] [\#3278](https://github.com/tendermint/tendermint/issues/3278) Remove + MixEntropy functions + - [types] [\#3245](https://github.com/tendermint/tendermint/issues/3245) Commit uses `type CommitSig Vote` instead of `Vote` directly. + In preparation for removing redundant fields from the commit [\#1648](https://github.com/tendermint/tendermint/issues/1648) + +### IMPROVEMENTS: +- [consensus] [\#3246](https://github.com/tendermint/tendermint/issues/3246) Better logging and notes on recovery for corrupted WAL file +- [crypto] [\#3163](https://github.com/tendermint/tendermint/issues/3163) Use ethereum's libsecp256k1 go-wrapper for signatures when cgo is available +- [crypto] [\#3162](https://github.com/tendermint/tendermint/issues/3162) Wrap btcd instead of forking it to keep up with fixes (used if cgo is not available) +- [makefile] [\#3233](https://github.com/tendermint/tendermint/issues/3233) Use golangci-lint instead of go-metalinter +- [tools] [\#3218](https://github.com/tendermint/tendermint/issues/3218) Add go-deadlock tool to help detect deadlocks +- [tools] [\#3106](https://github.com/tendermint/tendermint/issues/3106) Add tm-signer-harness test harness for remote signers +- [tests] [\#3258](https://github.com/tendermint/tendermint/issues/3258) Fixed a bunch of non-deterministic test failures + +### BUG FIXES: +- [node] [\#3186](https://github.com/tendermint/tendermint/issues/3186) EventBus and indexerService should be started before first block (for replay last block on handshake) execution (@ackratos) +- [p2p] [\#3232](https://github.com/tendermint/tendermint/issues/3232) Fix infinite loop leading to addrbook deadlock for seed nodes +- [p2p] [\#3247](https://github.com/tendermint/tendermint/issues/3247) Fix panic in SeedMode when calling FlushStop and OnStop + concurrently +- [p2p] [\#3040](https://github.com/tendermint/tendermint/issues/3040) Fix MITM on secret connection by checking low-order points +- [privval] [\#3258](https://github.com/tendermint/tendermint/issues/3258) Fix race between sign requests and ping requests in socket that was causing messages to be corrupted + +## v0.29.1 + +*January 24, 2019* + +Special thanks to external contributors on this release: +@infinytum, @gauthamzz + +This release contains two important fixes: one for p2p layer where we sometimes +were not closing connections and one for consensus layer where consensus with +no empty blocks (`create_empty_blocks = false`) could halt. + + +### IMPROVEMENTS: +- [pex] [\#3037](https://github.com/tendermint/tendermint/issues/3037) Only log "Reached max attempts to dial" once +- [rpc] [\#3159](https://github.com/tendermint/tendermint/issues/3159) Expose + `triggered_timeout_commit` in the `/dump_consensus_state` + +### BUG FIXES: +- [consensus] [\#3199](https://github.com/tendermint/tendermint/issues/3199) Fix consensus halt with no empty blocks from not resetting triggeredTimeoutCommit +- [p2p] [\#2967](https://github.com/tendermint/tendermint/issues/2967) Fix file descriptor leak + +## v0.29.0 + +*January 21, 2019* + +Special thanks to external contributors on this release: +@bradyjoestar, @kunaldhariwal, @gauthamzz, @hrharder + +This release is primarily about making some breaking changes to +the Block protocol version before Cosmos launch, and to fixing more issues +in the proposer selection algorithm discovered on Cosmos testnets. + +The Block protocol changes include using a standard Merkle tree format (RFC 6962), +fixing some inconsistencies between field orders in Vote and Proposal structs, +and constraining the hash of the ConsensusParams to include only a few fields. + +The proposer selection algorithm saw significant progress, +including a [formal proof by @cwgoes for the base-case in Idris](https://github.com/cwgoes/tm-proposer-idris) +and a [much more detailed specification (still in progress) by +@ancazamfir](https://github.com/tendermint/tendermint/pull/3140). + +Fixes to the proposer selection algorithm include normalizing the proposer +priorities to mitigate the effects of large changes to the validator set. +That said, we just discovered [another bug](https://github.com/tendermint/tendermint/issues/3181), +which will be fixed in the next breaking release. + +While we are trying to stabilize the Block protocol to preserve compatibility +with old chains, there may be some final changes yet to come before Cosmos +launch as we continue to audit and test the software. + + +### BREAKING CHANGES: + +* CLI/RPC/Config + +* Apps + - [state] [\#3049](https://github.com/tendermint/tendermint/issues/3049) Total voting power of the validator set is upper bounded by + `MaxInt64 / 8`. Apps must ensure they do not return changes to the validator + set that cause this maximum to be exceeded. + +* Go API + - [node] [\#3082](https://github.com/tendermint/tendermint/issues/3082) MetricsProvider now requires you to pass a chain ID + - [types] [\#2713](https://github.com/tendermint/tendermint/issues/2713) Rename `TxProof.LeafHash` to `TxProof.Leaf` + - [crypto/merkle] [\#2713](https://github.com/tendermint/tendermint/issues/2713) `SimpleProof.Verify` takes a `leaf` instead of a + `leafHash` and performs the hashing itself + +* Blockchain Protocol + * [crypto/merkle] [\#2713](https://github.com/tendermint/tendermint/issues/2713) Merkle trees now match the RFC 6962 specification + * [types] [\#3078](https://github.com/tendermint/tendermint/issues/3078) Re-order Timestamp and BlockID in CanonicalVote so it's + consistent with CanonicalProposal (BlockID comes + first) + * [types] [\#3165](https://github.com/tendermint/tendermint/issues/3165) Hash of ConsensusParams only includes BlockSize.MaxBytes and + BlockSize.MaxGas + +* P2P Protocol + - [consensus] [\#3049](https://github.com/tendermint/tendermint/issues/3049) Normalize priorities to not exceed `2*TotalVotingPower` to mitigate unfair proposer selection + heavily preferring earlier joined validators in the case of an early bonded large validator unbonding + +### FEATURES: + +### IMPROVEMENTS: +- [rpc] [\#3065](https://github.com/tendermint/tendermint/issues/3065) Return maxPerPage (100), not defaultPerPage (30) if `per_page` is greater than the max 100. +- [instrumentation] [\#3082](https://github.com/tendermint/tendermint/issues/3082) Add `chain_id` label for all metrics + +### BUG FIXES: +- [crypto] [\#3164](https://github.com/tendermint/tendermint/issues/3164) Update `btcd` fork for rare signRFC6979 bug +- [lite] [\#3171](https://github.com/tendermint/tendermint/issues/3171) Fix verifying large validator set changes +- [log] [\#3125](https://github.com/tendermint/tendermint/issues/3125) Fix year format +- [mempool] [\#3168](https://github.com/tendermint/tendermint/issues/3168) Limit tx size to fit in the max reactor msg size +- [scripts] [\#3147](https://github.com/tendermint/tendermint/issues/3147) Fix json2wal for large block parts (@bradyjoestar) + +## v0.28.1 + +*January 18th, 2019* + +Special thanks to external contributors on this release: +@HaoyangLiu + + +### BUG FIXES: +- [consensus] Fix consensus halt from proposing blocks with too much evidence + +## v0.28.0 + +*January 16th, 2019* + +Special thanks to external contributors on this release: +@fmauricios, @gianfelipe93, @husio, @needkane, @srmo, @yutianwu + +This release is primarily about upgrades to the `privval` system - +separating the `priv_validator.json` into distinct config and data files, and +refactoring the socket validator to support reconnections. + +**Note:** Please backup your existing `priv_validator.json` before using this +version. + +See [UPGRADING.md](UPGRADING.md) for more details. + +### BREAKING CHANGES: + +* CLI/RPC/Config + - [cli] Removed `--proxy_app=dummy` option. Use `kvstore` (`persistent_kvstore`) instead. + - [cli] Renamed `--proxy_app=nilapp` to `--proxy_app=noop`. + - [config] [\#2992](https://github.com/tendermint/tendermint/issues/2992) `allow_duplicate_ip` is now set to false + - [privval] [\#1181](https://github.com/tendermint/tendermint/issues/1181) Split `priv_validator.json` into immutable (`config/priv_validator_key.json`) and mutable (`data/priv_validator_state.json`) parts (@yutianwu) + - [privval] [\#2926](https://github.com/tendermint/tendermint/issues/2926) Split up `PubKeyMsg` into `PubKeyRequest` and `PubKeyResponse` to be consistent with other message types + - [privval] [\#2923](https://github.com/tendermint/tendermint/issues/2923) Listen for unix socket connections instead of dialing them + +* Apps + +* Go API + - [types] [\#2981](https://github.com/tendermint/tendermint/issues/2981) Remove `PrivValidator.GetAddress()` + +* Blockchain Protocol + +* P2P Protocol + +### FEATURES: +- [rpc] [\#3052](https://github.com/tendermint/tendermint/issues/3052) Include peer's remote IP in `/net_info` + +### IMPROVEMENTS: +- [consensus] [\#3086](https://github.com/tendermint/tendermint/issues/3086) Log peerID on ignored votes (@srmo) +- [docs] [\#3061](https://github.com/tendermint/tendermint/issues/3061) Added specification for signing consensus msgs at + ./docs/spec/consensus/signing.md +- [privval] [\#2948](https://github.com/tendermint/tendermint/issues/2948) Memoize pubkey so it's only requested once on startup +- [privval] [\#2923](https://github.com/tendermint/tendermint/issues/2923) Retry RemoteSigner connections on error + +### BUG FIXES: + +- [build] [\#3085](https://github.com/tendermint/tendermint/issues/3085) Fix `Version` field in build scripts (@husio) +- [crypto/multisig] [\#3102](https://github.com/tendermint/tendermint/issues/3102) Fix multisig keys address length +- [crypto/encoding] [\#3101](https://github.com/tendermint/tendermint/issues/3101) Fix `PubKeyMultisigThreshold` unmarshaling into `crypto.PubKey` interface +- [p2p/conn] [\#3111](https://github.com/tendermint/tendermint/issues/3111) Make SecretConnection thread safe +- [rpc] [\#3053](https://github.com/tendermint/tendermint/issues/3053) Fix internal error in `/tx_search` when results are empty + (@gianfelipe93) +- [types] [\#2926](https://github.com/tendermint/tendermint/issues/2926) Do not panic if retrieving the privval's public key fails + +## v0.27.4 + +*December 21st, 2018* + +### BUG FIXES: + +- [mempool] [\#3036](https://github.com/tendermint/tendermint/issues/3036) Fix + LRU cache by popping the least recently used item when the cache is full, + not the most recently used one! + +## v0.27.3 + +*December 16th, 2018* + +### BREAKING CHANGES: + +* Go API + - [dep] [\#3027](https://github.com/tendermint/tendermint/issues/3027) Revert to mainline Go crypto library, eliminating the modified + `bcrypt.GenerateFromPassword` + +## v0.27.2 + +*December 16th, 2018* + +### IMPROVEMENTS: + +- [node] [\#3025](https://github.com/tendermint/tendermint/issues/3025) Validate NodeInfo addresses on startup. + +### BUG FIXES: + +- [p2p] [\#3025](https://github.com/tendermint/tendermint/pull/3025) Revert to using defers in addrbook. Fixes deadlocks in pex and consensus upon invalid ExternalAddr/ListenAddr configuration. + +## v0.27.1 + +*December 15th, 2018* + +Special thanks to external contributors on this release: +@danil-lashin, @hleb-albau, @james-ray, @leo-xinwang + +### FEATURES: +- [rpc] [\#2964](https://github.com/tendermint/tendermint/issues/2964) Add `UnconfirmedTxs(limit)` and `NumUnconfirmedTxs()` methods to HTTP/Local clients (@danil-lashin) +- [docs] [\#3004](https://github.com/tendermint/tendermint/issues/3004) Enable full-text search on docs pages + +### IMPROVEMENTS: +- [consensus] [\#2971](https://github.com/tendermint/tendermint/issues/2971) Return error if ValidatorSet is empty after InitChain + (@leo-xinwang) +- [ci/cd] [\#3005](https://github.com/tendermint/tendermint/issues/3005) Updated CircleCI job to trigger website build when docs are updated +- [docs] Various updates + +### BUG FIXES: +- [cmd] [\#2983](https://github.com/tendermint/tendermint/issues/2983) `testnet` command always sets `addr_book_strict = false` +- [config] [\#2980](https://github.com/tendermint/tendermint/issues/2980) Fix CORS options formatting +- [kv indexer] [\#2912](https://github.com/tendermint/tendermint/issues/2912) Don't ignore key when executing CONTAINS +- [mempool] [\#2961](https://github.com/tendermint/tendermint/issues/2961) Call `notifyTxsAvailable` if there're txs left after committing a block, but recheck=false +- [mempool] [\#2994](https://github.com/tendermint/tendermint/issues/2994) Reject txs with negative GasWanted +- [p2p] [\#2990](https://github.com/tendermint/tendermint/issues/2990) Fix a bug where seeds don't disconnect from a peer after 3h +- [consensus] [\#3006](https://github.com/tendermint/tendermint/issues/3006) Save state after InitChain only when stateHeight is also 0 (@james-ray) + +## v0.27.0 + +*December 5th, 2018* + +Special thanks to external contributors on this release: +@danil-lashin, @srmo + +Special thanks to @dlguddus for discovering a [major +issue](https://github.com/tendermint/tendermint/issues/2718#issuecomment-440888677) +in the proposer selection algorithm. + + +This release is primarily about fixes to the proposer selection algorithm +in preparation for the [Cosmos Game of +Stakes](https://blog.cosmos.network/the-game-of-stakes-is-open-for-registration-83a404746ee6). +It also makes use of the `ConsensusParams.Validator.PubKeyTypes` to restrict the +key types that can be used by validators, and removes the `Heartbeat` consensus +message. + +### BREAKING CHANGES: + +* CLI/RPC/Config + - [rpc] [\#2932](https://github.com/tendermint/tendermint/issues/2932) Rename `accum` to `proposer_priority` + +* Go API + - [db] [\#2913](https://github.com/tendermint/tendermint/pull/2913) + ReverseIterator API change: start < end, and end is exclusive. + - [types] [\#2932](https://github.com/tendermint/tendermint/issues/2932) Rename `Validator.Accum` to `Validator.ProposerPriority` + +* Blockchain Protocol + - [state] [\#2714](https://github.com/tendermint/tendermint/issues/2714) Validators can now only use pubkeys allowed within + ConsensusParams.Validator.PubKeyTypes + +* P2P Protocol + - [consensus] [\#2871](https://github.com/tendermint/tendermint/issues/2871) + Remove *ProposalHeartbeat* message as it serves no real purpose (@srmo) + - [state] Fixes for proposer selection: + - [\#2785](https://github.com/tendermint/tendermint/issues/2785) Accum for new validators is `-1.125*totalVotingPower` instead of 0 + - [\#2941](https://github.com/tendermint/tendermint/issues/2941) val.Accum is preserved during ValidatorSet.Update to avoid being + reset to 0 + +### IMPROVEMENTS: + +- [state] [\#2929](https://github.com/tendermint/tendermint/issues/2929) Minor refactor of updateState logic (@danil-lashin) +- [node] [\#2959](https://github.com/tendermint/tendermint/issues/2959) Allow node to start even if software's BlockProtocol is + different from state's BlockProtocol +- [pex] [\#2959](https://github.com/tendermint/tendermint/issues/2959) Pex reactor logger uses `module=pex` + +### BUG FIXES: + +- [p2p] [\#2968](https://github.com/tendermint/tendermint/issues/2968) Panic on transport error rather than continuing to run but not + accept new connections +- [p2p] [\#2969](https://github.com/tendermint/tendermint/issues/2969) Fix mismatch in peer count between `/net_info` and the prometheus + metrics +- [rpc] [\#2408](https://github.com/tendermint/tendermint/issues/2408) `/broadcast_tx_commit`: Fix "interface conversion: interface {} in nil, not EventDataTx" panic (could happen if somebody sent a tx using `/broadcast_tx_commit` while Tendermint was being stopped) +- [state] [\#2785](https://github.com/tendermint/tendermint/issues/2785) Fix accum for new validators to be `-1.125*totalVotingPower` + instead of 0, forcing them to wait before becoming the proposer. Also: + - do not batch clip + - keep accums averaged near 0 +- [txindex/kv] [\#2925](https://github.com/tendermint/tendermint/issues/2925) Don't return false positives when range searching for a prefix of a tag value +- [types] [\#2938](https://github.com/tendermint/tendermint/issues/2938) Fix regression in v0.26.4 where we panic on empty + genDoc.Validators +- [types] [\#2941](https://github.com/tendermint/tendermint/issues/2941) Preserve val.Accum during ValidatorSet.Update to avoid it being + reset to 0 every time a validator is updated + +## v0.26.4 + +*November 27th, 2018* + +Special thanks to external contributors on this release: +@ackratos, @goolAdapter, @james-ray, @joe-bowman, @kostko, +@nagarajmanjunath, @tomtau + + +### FEATURES: + +- [rpc] [\#2747](https://github.com/tendermint/tendermint/issues/2747) Enable subscription to tags emitted from `BeginBlock`/`EndBlock` (@kostko) +- [types] [\#2747](https://github.com/tendermint/tendermint/issues/2747) Add `ResultBeginBlock` and `ResultEndBlock` fields to `EventDataNewBlock` + and `EventDataNewBlockHeader` to support subscriptions (@kostko) +- [types] [\#2918](https://github.com/tendermint/tendermint/issues/2918) Add Marshal, MarshalTo, Unmarshal methods to various structs + to support Protobuf compatibility (@nagarajmanjunath) + +### IMPROVEMENTS: + +- [config] [\#2877](https://github.com/tendermint/tendermint/issues/2877) Add `blocktime_iota` to the config.toml (@ackratos) + - NOTE: this should be a ConsensusParam, not part of the config, and will be + removed from the config at a later date + ([\#2920](https://github.com/tendermint/tendermint/issues/2920). +- [mempool] [\#2882](https://github.com/tendermint/tendermint/issues/2882) Add txs from Update to cache +- [mempool] [\#2891](https://github.com/tendermint/tendermint/issues/2891) Remove local int64 counter from being stored in every tx +- [node] [\#2866](https://github.com/tendermint/tendermint/issues/2866) Add ability to instantiate IPCVal (@joe-bowman) + +### BUG FIXES: + +- [blockchain] [\#2731](https://github.com/tendermint/tendermint/issues/2731) Retry both blocks if either is bad to avoid getting stuck during fast sync (@goolAdapter) +- [consensus] [\#2893](https://github.com/tendermint/tendermint/issues/2893) Use genDoc.Validators instead of state.NextValidators on replay when appHeight==0 (@james-ray) +- [log] [\#2868](https://github.com/tendermint/tendermint/issues/2868) Fix `module=main` setting overriding all others + - NOTE: this changes the default logging behaviour to be much less verbose. + Set `log_level="info"` to restore the previous behaviour. +- [rpc] [\#2808](https://github.com/tendermint/tendermint/issues/2808) Fix `accum` field in `/validators` by calling `IncrementAccum` if necessary +- [rpc] [\#2811](https://github.com/tendermint/tendermint/issues/2811) Allow integer IDs in JSON-RPC requests (@tomtau) +- [txindex/kv] [\#2759](https://github.com/tendermint/tendermint/issues/2759) Fix tx.height range queries +- [txindex/kv] [\#2775](https://github.com/tendermint/tendermint/issues/2775) Order tx results by index if height is the same +- [txindex/kv] [\#2908](https://github.com/tendermint/tendermint/issues/2908) Don't return false positives when searching for a prefix of a tag value + +## v0.26.3 + +*November 17th, 2018* + +Special thanks to external contributors on this release: +@danil-lashin, @kevlubkcm, @krhubert, @srmo + + +### BREAKING CHANGES: + +* Go API + - [rpc] [\#2791](https://github.com/tendermint/tendermint/issues/2791) Functions that start HTTP servers are now blocking: + - Impacts `StartHTTPServer`, `StartHTTPAndTLSServer`, and `StartGRPCServer` + - These functions now take a `net.Listener` instead of an address + - [rpc] [\#2767](https://github.com/tendermint/tendermint/issues/2767) Subscribing to events + `NewRound` and `CompleteProposal` return new types `EventDataNewRound` and + `EventDataCompleteProposal`, respectively, instead of the generic `EventDataRoundState`. (@kevlubkcm) + +### FEATURES: + +- [log] [\#2843](https://github.com/tendermint/tendermint/issues/2843) New `log_format` config option, which can be set to 'plain' for colored + text or 'json' for JSON output +- [types] [\#2767](https://github.com/tendermint/tendermint/issues/2767) New event types EventDataNewRound (with ProposerInfo) and EventDataCompleteProposal (with BlockID). (@kevlubkcm) + +### IMPROVEMENTS: + +- [dep] [\#2844](https://github.com/tendermint/tendermint/issues/2844) Dependencies are no longer pinned to an exact version in the + Gopkg.toml: + - Serialization libs are allowed to vary by patch release + - Other libs are allowed to vary by minor release +- [p2p] [\#2857](https://github.com/tendermint/tendermint/issues/2857) "Send failed" is logged at debug level instead of error. +- [rpc] [\#2780](https://github.com/tendermint/tendermint/issues/2780) Add read and write timeouts to HTTP servers +- [state] [\#2848](https://github.com/tendermint/tendermint/issues/2848) Make "Update to validators" msg value pretty (@danil-lashin) + +### BUG FIXES: +- [consensus] [\#2819](https://github.com/tendermint/tendermint/issues/2819) Don't send proposalHearbeat if not a validator +- [docs] [\#2859](https://github.com/tendermint/tendermint/issues/2859) Fix ConsensusParams details in spec +- [libs/autofile] [\#2760](https://github.com/tendermint/tendermint/issues/2760) Comment out autofile permissions check - should fix + running Tendermint on Windows +- [p2p] [\#2869](https://github.com/tendermint/tendermint/issues/2869) Set connection config properly instead of always using default +- [p2p/pex] [\#2802](https://github.com/tendermint/tendermint/issues/2802) Seed mode fixes: + - Only disconnect from inbound peers + - Use FlushStop instead of Sleep to ensure all messages are sent before + disconnecting + +## v0.26.2 + +*November 15th, 2018* + +Special thanks to external contributors on this release: @hleb-albau, @zhuzeyu + +### FEATURES: + +- [rpc] [\#2582](https://github.com/tendermint/tendermint/issues/2582) Enable CORS on RPC API (@hleb-albau) + +### BUG FIXES: + +- [abci] [\#2748](https://github.com/tendermint/tendermint/issues/2748) Unlock mutex in localClient so even when app panics (e.g. during CheckTx), consensus continue working +- [abci] [\#2748](https://github.com/tendermint/tendermint/issues/2748) Fix DATA RACE in localClient +- [amino] [\#2822](https://github.com/tendermint/tendermint/issues/2822) Update to v0.14.1 to support compiling on 32-bit platforms +- [rpc] [\#2748](https://github.com/tendermint/tendermint/issues/2748) Drain channel before calling Unsubscribe(All) in `/broadcast_tx_commit` + +## v0.26.1 + +*November 11, 2018* + +Special thanks to external contributors on this release: @katakonst + +### IMPROVEMENTS: + +- [consensus] [\#2704](https://github.com/tendermint/tendermint/issues/2704) Simplify valid POL round logic +- [docs] [\#2749](https://github.com/tendermint/tendermint/issues/2749) Deduplicate some ABCI docs +- [mempool] More detailed log messages + - [\#2724](https://github.com/tendermint/tendermint/issues/2724) + - [\#2762](https://github.com/tendermint/tendermint/issues/2762) + +### BUG FIXES: + +- [autofile] [\#2703](https://github.com/tendermint/tendermint/issues/2703) Do not panic when checking Head size +- [crypto/merkle] [\#2756](https://github.com/tendermint/tendermint/issues/2756) Fix crypto/merkle ProofOperators.Verify to check bounds on keypath parts. +- [mempool] fix a bug where we create a WAL despite `wal_dir` being empty +- [p2p] [\#2771](https://github.com/tendermint/tendermint/issues/2771) Fix `peer-id` label name to `peer_id` in prometheus metrics +- [p2p] [\#2797](https://github.com/tendermint/tendermint/pull/2797) Fix IDs in peer NodeInfo and require them for addresses + in AddressBook +- [p2p] [\#2797](https://github.com/tendermint/tendermint/pull/2797) Do not close conn immediately after sending pex addrs in seed mode. Partial fix for [\#2092](https://github.com/tendermint/tendermint/issues/2092). + +## v0.26.0 + +*November 2, 2018* + +Special thanks to external contributors on this release: +@bradyjoestar, @connorwstein, @goolAdapter, @HaoyangLiu, +@james-ray, @overbool, @phymbert, @Slamper, @Uzair1995, @yutianwu. + +Special thanks to @Slamper for a series of bug reports in our [bug bounty +program](https://hackerone.com/cosmos) which are fixed in this release. + +This release is primarily about adding Version fields to various data structures, +optimizing consensus messages for signing and verification in +restricted environments (like HSMs and the Ethereum Virtual Machine), and +aligning the consensus code with the [specification](https://arxiv.org/abs/1807.04938). +It also includes our first take at a generalized merkle proof system, and +changes the length of hashes used for hashing data structures from 20 to 32 +bytes. + +See the [UPGRADING.md](UPGRADING.md#v0.26.0) for details on upgrading to the new +version. + +Please note that we are still making breaking changes to the protocols. +While the new Version fields should help us to keep the software backwards compatible +even while upgrading the protocols, we cannot guarantee that new releases will +be compatible with old chains just yet. We expect there will be another breaking +release or two before the Cosmos Hub launch, but we will otherwise be paying +increasing attention to backwards compatibility. Thanks for bearing with us! + +### BREAKING CHANGES: + +* CLI/RPC/Config + * [config] [\#2232](https://github.com/tendermint/tendermint/issues/2232) Timeouts are now strings like "3s" and "100ms", not ints + * [config] [\#2505](https://github.com/tendermint/tendermint/issues/2505) Remove Mempool.RecheckEmpty (it was effectively useless anyways) + * [config] [\#2490](https://github.com/tendermint/tendermint/issues/2490) `mempool.wal` is disabled by default + * [privval] [\#2459](https://github.com/tendermint/tendermint/issues/2459) Split `SocketPVMsg`s implementations into Request and Response, where the Response may contain a error message (returned by the remote signer) + * [state] [\#2644](https://github.com/tendermint/tendermint/issues/2644) Add Version field to State, breaking the format of State as + encoded on disk. + * [rpc] [\#2298](https://github.com/tendermint/tendermint/issues/2298) `/abci_query` takes `prove` argument instead of `trusted` and switches the default + behaviour to `prove=false` + * [rpc] [\#2654](https://github.com/tendermint/tendermint/issues/2654) Remove all `node_info.other.*_version` fields in `/status` and + `/net_info` + * [rpc] [\#2636](https://github.com/tendermint/tendermint/issues/2636) Remove + `_params` suffix from fields in `consensus_params`. + +* Apps + * [abci] [\#2298](https://github.com/tendermint/tendermint/issues/2298) ResponseQuery.Proof is now a structured merkle.Proof, not just + arbitrary bytes + * [abci] [\#2644](https://github.com/tendermint/tendermint/issues/2644) Add Version to Header and shift all fields by one + * [abci] [\#2662](https://github.com/tendermint/tendermint/issues/2662) Bump the field numbers for some `ResponseInfo` fields to make room for + `AppVersion` + * [abci] [\#2636](https://github.com/tendermint/tendermint/issues/2636) Updates to ConsensusParams + * Remove `Params` suffix from field names + * Add `Params` suffix to message types + * Add new field and type, `Validator ValidatorParams`, to control what types of validator keys are allowed. + +* Go API + * [config] [\#2232](https://github.com/tendermint/tendermint/issues/2232) Timeouts are time.Duration, not ints + * [crypto/merkle & lite] [\#2298](https://github.com/tendermint/tendermint/issues/2298) Various changes to accomodate General Merkle trees + * [crypto/merkle] [\#2595](https://github.com/tendermint/tendermint/issues/2595) Remove all Hasher objects in favor of byte slices + * [crypto/merkle] [\#2635](https://github.com/tendermint/tendermint/issues/2635) merkle.SimpleHashFromTwoHashes is no longer exported + * [node] [\#2479](https://github.com/tendermint/tendermint/issues/2479) Remove node.RunForever + * [rpc/client] [\#2298](https://github.com/tendermint/tendermint/issues/2298) `ABCIQueryOptions.Trusted` -> `ABCIQueryOptions.Prove` + * [types] [\#2298](https://github.com/tendermint/tendermint/issues/2298) Remove `Index` and `Total` fields from `TxProof`. + * [types] [\#2598](https://github.com/tendermint/tendermint/issues/2598) + `VoteTypeXxx` are now of type `SignedMsgType byte` and named `XxxType`, eg. + `PrevoteType`, `PrecommitType`. + * [types] [\#2636](https://github.com/tendermint/tendermint/issues/2636) Rename fields in ConsensusParams to remove `Params` suffixes + * [types] [\#2735](https://github.com/tendermint/tendermint/issues/2735) Simplify Proposal message to align with spec + +* Blockchain Protocol + * [crypto/tmhash] [\#2732](https://github.com/tendermint/tendermint/issues/2732) TMHASH is now full 32-byte SHA256 + * All hashes in the block header and Merkle trees are now 32-bytes + * PubKey Addresses are still only 20-bytes + * [state] [\#2587](https://github.com/tendermint/tendermint/issues/2587) Require block.Time of the fist block to be genesis time + * [state] [\#2644](https://github.com/tendermint/tendermint/issues/2644) Require block.Version to match state.Version + * [types] Update SignBytes for `Vote`/`Proposal`/`Heartbeat`: + * [\#2459](https://github.com/tendermint/tendermint/issues/2459) Use amino encoding instead of JSON in `SignBytes`. + * [\#2598](https://github.com/tendermint/tendermint/issues/2598) Reorder fields and use fixed sized encoding. + * [\#2598](https://github.com/tendermint/tendermint/issues/2598) Change `Type` field from `string` to `byte` and use new + `SignedMsgType` to enumerate. + * [types] [\#2730](https://github.com/tendermint/tendermint/issues/2730) Use + same order for fields in `Vote` as in the SignBytes + * [types] [\#2732](https://github.com/tendermint/tendermint/issues/2732) Remove the address field from the validator hash + * [types] [\#2644](https://github.com/tendermint/tendermint/issues/2644) Add Version struct to Header + * [types] [\#2609](https://github.com/tendermint/tendermint/issues/2609) ConsensusParams.Hash() is the hash of the amino encoded + struct instead of the Merkle tree of the fields + * [types] [\#2670](https://github.com/tendermint/tendermint/issues/2670) Header.Hash() builds Merkle tree out of fields in the same + order they appear in the header, instead of sorting by field name + * [types] [\#2682](https://github.com/tendermint/tendermint/issues/2682) Use proto3 `varint` encoding for ints that are usually unsigned (instead of zigzag encoding). + * [types] [\#2636](https://github.com/tendermint/tendermint/issues/2636) Add Validator field to ConsensusParams + (Used to control which pubkey types validators can use, by abci type). + +* P2P Protocol + * [consensus] [\#2652](https://github.com/tendermint/tendermint/issues/2652) + Replace `CommitStepMessage` with `NewValidBlockMessage` + * [consensus] [\#2735](https://github.com/tendermint/tendermint/issues/2735) Simplify `Proposal` message to align with spec + * [consensus] [\#2730](https://github.com/tendermint/tendermint/issues/2730) + Add `Type` field to `Proposal` and use same order of fields as in the + SignBytes for both `Proposal` and `Vote` + * [p2p] [\#2654](https://github.com/tendermint/tendermint/issues/2654) Add `ProtocolVersion` struct with protocol versions to top of + DefaultNodeInfo and require `ProtocolVersion.Block` to match during peer handshake + + +### FEATURES: +- [abci] [\#2557](https://github.com/tendermint/tendermint/issues/2557) Add `Codespace` field to `Response{CheckTx, DeliverTx, Query}` +- [abci] [\#2662](https://github.com/tendermint/tendermint/issues/2662) Add `BlockVersion` and `P2PVersion` to `RequestInfo` +- [crypto/merkle] [\#2298](https://github.com/tendermint/tendermint/issues/2298) General Merkle Proof scheme for chaining various types of Merkle trees together +- [docs/architecture] [\#1181](https://github.com/tendermint/tendermint/issues/1181) S +plit immutable and mutable parts of priv_validator.json + +### IMPROVEMENTS: +- Additional Metrics + - [consensus] [\#2169](https://github.com/cosmos/cosmos-sdk/issues/2169) + - [p2p] [\#2169](https://github.com/cosmos/cosmos-sdk/issues/2169) +- [config] [\#2232](https://github.com/tendermint/tendermint/issues/2232) Added ValidateBasic method, which performs basic checks +- [crypto/ed25519] [\#2558](https://github.com/tendermint/tendermint/issues/2558) Switch to use latest `golang.org/x/crypto` through our fork at + github.com/tendermint/crypto +- [libs/log] [\#2707](https://github.com/tendermint/tendermint/issues/2707) Add year to log format (@yutianwu) +- [tools] [\#2238](https://github.com/tendermint/tendermint/issues/2238) Binary dependencies are now locked to a specific git commit + +### BUG FIXES: +- [\#2711](https://github.com/tendermint/tendermint/issues/2711) Validate all incoming reactor messages. Fixes various bugs due to negative ints. +- [autofile] [\#2428](https://github.com/tendermint/tendermint/issues/2428) Group.RotateFile need call Flush() before rename (@goolAdapter) +- [common] [\#2533](https://github.com/tendermint/tendermint/issues/2533) Fixed a bug in the `BitArray.Or` method +- [common] [\#2506](https://github.com/tendermint/tendermint/issues/2506) Fixed a bug in the `BitArray.Sub` method (@james-ray) +- [common] [\#2534](https://github.com/tendermint/tendermint/issues/2534) Fix `BitArray.PickRandom` to choose uniformly from true bits +- [consensus] [\#1690](https://github.com/tendermint/tendermint/issues/1690) Wait for + timeoutPrecommit before starting next round +- [consensus] [\#1745](https://github.com/tendermint/tendermint/issues/1745) Wait for + Proposal or timeoutProposal before entering prevote +- [consensus] [\#2642](https://github.com/tendermint/tendermint/issues/2642) Only propose ValidBlock, not LockedBlock +- [consensus] [\#2642](https://github.com/tendermint/tendermint/issues/2642) Initialized ValidRound and LockedRound to -1 +- [consensus] [\#1637](https://github.com/tendermint/tendermint/issues/1637) Limit the amount of evidence that can be included in a + block +- [consensus] [\#2652](https://github.com/tendermint/tendermint/issues/2652) Ensure valid block property with faulty proposer +- [evidence] [\#2515](https://github.com/tendermint/tendermint/issues/2515) Fix db iter leak (@goolAdapter) +- [libs/event] [\#2518](https://github.com/tendermint/tendermint/issues/2518) Fix event concurrency flaw (@goolAdapter) +- [node] [\#2434](https://github.com/tendermint/tendermint/issues/2434) Make node respond to signal interrupts while sleeping for genesis time +- [state] [\#2616](https://github.com/tendermint/tendermint/issues/2616) Pass nil to NewValidatorSet() when genesis file's Validators field is nil +- [p2p] [\#2555](https://github.com/tendermint/tendermint/issues/2555) Fix p2p switch FlushThrottle value (@goolAdapter) +- [p2p] [\#2668](https://github.com/tendermint/tendermint/issues/2668) Reconnect to originally dialed address (not self-reported address) for persistent peers + +## v0.25.0 + +*September 22, 2018* + +Special thanks to external contributors on this release: +@scriptionist, @bradyjoestar, @WALL-E + +This release is mostly about the ConsensusParams - removing fields and enforcing MaxGas. +It also addresses some issues found via security audit, removes various unused +functions from `libs/common`, and implements +[ADR-012](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-012-peer-transport.md). + +BREAKING CHANGES: + +* CLI/RPC/Config + * [rpc] [\#2391](https://github.com/tendermint/tendermint/issues/2391) /status `result.node_info.other` became a map + * [types] [\#2364](https://github.com/tendermint/tendermint/issues/2364) Remove `TxSize` and `BlockGossip` from `ConsensusParams` + * Maximum tx size is now set implicitly via the `BlockSize.MaxBytes` + * The size of block parts in the consensus is now fixed to 64kB + +* Apps + * [mempool] [\#2360](https://github.com/tendermint/tendermint/issues/2360) Mempool tracks the `ResponseCheckTx.GasWanted` and + `ConsensusParams.BlockSize.MaxGas` and enforces: + - `GasWanted <= MaxGas` for every tx + - `(sum of GasWanted in block) <= MaxGas` for block proposal + +* Go API + * [libs/common] [\#2431](https://github.com/tendermint/tendermint/issues/2431) Remove Word256 due to lack of use + * [libs/common] [\#2452](https://github.com/tendermint/tendermint/issues/2452) Remove the following functions due to lack of use: + * byteslice.go: cmn.IsZeros, cmn.RightPadBytes, cmn.LeftPadBytes, cmn.PrefixEndBytes + * strings.go: cmn.IsHex, cmn.StripHex + * int.go: Uint64Slice, all put/get int64 methods + +FEATURES: +- [rpc] [\#2415](https://github.com/tendermint/tendermint/issues/2415) New `/consensus_params?height=X` endpoint to query the consensus + params at any height (@scriptonist) +- [types] [\#1714](https://github.com/tendermint/tendermint/issues/1714) Add Address to GenesisValidator +- [metrics] [\#2337](https://github.com/tendermint/tendermint/issues/2337) `consensus.block_interval_metrics` is now gauge, not histogram (you will be able to see spikes, if any) +- [libs] [\#2286](https://github.com/tendermint/tendermint/issues/2286) Panic if `autofile` or `db/fsdb` permissions change from 0600. + +IMPROVEMENTS: +- [libs/db] [\#2371](https://github.com/tendermint/tendermint/issues/2371) Output error instead of panic when the given `db_backend` is not initialized (@bradyjoestar) +- [mempool] [\#2399](https://github.com/tendermint/tendermint/issues/2399) Make mempool cache a proper LRU (@bradyjoestar) +- [p2p] [\#2126](https://github.com/tendermint/tendermint/issues/2126) Introduce PeerTransport interface to improve isolation of concerns +- [libs/common] [\#2326](https://github.com/tendermint/tendermint/issues/2326) Service returns ErrNotStarted + +BUG FIXES: +- [node] [\#2294](https://github.com/tendermint/tendermint/issues/2294) Delay starting node until Genesis time +- [consensus] [\#2048](https://github.com/tendermint/tendermint/issues/2048) Correct peer statistics for marking peer as good +- [rpc] [\#2460](https://github.com/tendermint/tendermint/issues/2460) StartHTTPAndTLSServer() now passes StartTLS() errors back to the caller rather than hanging forever. +- [p2p] [\#2047](https://github.com/tendermint/tendermint/issues/2047) Accept new connections asynchronously +- [tm-bench] [\#2410](https://github.com/tendermint/tendermint/issues/2410) Enforce minimum transaction size (@WALL-E) + +## 0.24.0 + +*September 6th, 2018* + +Special thanks to external contributors with PRs included in this release: ackratos, james-ray, bradyjoestar, +peerlink, Ahmah2009, bluele, b00f. + +This release includes breaking upgrades in the block header, +including the long awaited changes for delaying validator set updates by one +block to better support light clients. +It also fixes enforcement on the maximum size of blocks, and includes a BFT +timestamp in each block that can be safely used by applications. +There are also some minor breaking changes to the rpc, config, and ABCI. + +See the [UPGRADING.md](UPGRADING.md#v0.24.0) for details on upgrading to the new +version. + +From here on, breaking changes will be broken down to better reflect how users +are affected by a change. + +A few more breaking changes are in the works - each will come with a clear +Architecture Decision Record (ADR) explaining the change. You can review ADRs +[here](https://github.com/tendermint/tendermint/tree/master/docs/architecture) +or in the [open Pull Requests](https://github.com/tendermint/tendermint/pulls). +You can also check in on the [issues marked as +breaking](https://github.com/tendermint/tendermint/issues?q=is%3Aopen+is%3Aissue+label%3Abreaking). + +BREAKING CHANGES: + +* CLI/RPC/Config + - [config] [\#2169](https://github.com/tendermint/tendermint/issues/2169) Replace MaxNumPeers with MaxNumInboundPeers and MaxNumOutboundPeers + - [config] [\#2300](https://github.com/tendermint/tendermint/issues/2300) Reduce default mempool size from 100k to 5k, until ABCI rechecking is implemented. + - [rpc] [\#1815](https://github.com/tendermint/tendermint/issues/1815) `/commit` returns a `signed_header` field instead of everything being top-level + +* Apps + - [abci] Added address of the original proposer of the block to Header + - [abci] Change ABCI Header to match Tendermint exactly + - [abci] [\#2159](https://github.com/tendermint/tendermint/issues/2159) Update use of `Validator` (see + [ADR-018](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-018-ABCI-Validators.md)): + - Remove PubKey from `Validator` (so it's just Address and Power) + - Introduce `ValidatorUpdate` (with just PubKey and Power) + - InitChain and EndBlock use ValidatorUpdate + - Update field names and types in BeginBlock + - [state] [\#1815](https://github.com/tendermint/tendermint/issues/1815) Validator set changes are now delayed by one block + - updates returned in ResponseEndBlock for block H will be included in RequestBeginBlock for block H+2 + +* Go API + - [lite] [\#1815](https://github.com/tendermint/tendermint/issues/1815) Complete refactor of the package + - [node] [\#2212](https://github.com/tendermint/tendermint/issues/2212) NewNode now accepts a `*p2p.NodeKey` (@bradyjoestar) + - [libs/common] [\#2199](https://github.com/tendermint/tendermint/issues/2199) Remove Fmt, in favor of fmt.Sprintf + - [libs/common] SplitAndTrim was deleted + - [libs/common] [\#2274](https://github.com/tendermint/tendermint/issues/2274) Remove unused Math functions like MaxInt, MaxInt64, + MinInt, MinInt64 (@Ahmah2009) + - [libs/clist] Panics if list extends beyond MaxLength + - [crypto] [\#2205](https://github.com/tendermint/tendermint/issues/2205) Rename AminoRoute variables to no longer be prefixed by signature type. + +* Blockchain Protocol + - [state] [\#1815](https://github.com/tendermint/tendermint/issues/1815) Validator set changes are now delayed by one block (!) + - Add NextValidatorSet to State, changes on-disk representation of state + - [state] [\#2184](https://github.com/tendermint/tendermint/issues/2184) Enforce ConsensusParams.BlockSize.MaxBytes (See + [ADR-020](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-020-block-size.md)). + - Remove ConsensusParams.BlockSize.MaxTxs + - Introduce maximum sizes for all components of a block, including ChainID + - [types] Updates to the block Header: + - [\#1815](https://github.com/tendermint/tendermint/issues/1815) NextValidatorsHash - hash of the validator set for the next block, + so the current validators actually sign over the hash for the new + validators + - [\#2106](https://github.com/tendermint/tendermint/issues/2106) ProposerAddress - address of the block's original proposer + - [consensus] [\#2203](https://github.com/tendermint/tendermint/issues/2203) Implement BFT time + - Timestamp in block must be monotonic and equal the median of timestamps in block's LastCommit + - [crypto] [\#2239](https://github.com/tendermint/tendermint/issues/2239) Secp256k1 signature changes (See + [ADR-014](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-014-secp-malleability.md)): + - format changed from DER to `r || s`, both little endian encoded as 32 bytes. + - malleability removed by requiring `s` to be in canonical form. + +* P2P Protocol + - [p2p] [\#2263](https://github.com/tendermint/tendermint/issues/2263) Update secret connection to use a little endian encoded nonce + - [blockchain] [\#2213](https://github.com/tendermint/tendermint/issues/2213) Fix Amino routes for blockchain reactor messages + (@peerlink) + + +FEATURES: +- [types] [\#2015](https://github.com/tendermint/tendermint/issues/2015) Allow genesis file to have 0 validators (@b00f) + - Initial validator set can be determined by the app in ResponseInitChain +- [rpc] [\#2161](https://github.com/tendermint/tendermint/issues/2161) New event `ValidatorSetUpdates` for when the validator set changes +- [crypto/multisig] [\#2164](https://github.com/tendermint/tendermint/issues/2164) Introduce multisig pubkey and signature format +- [libs/db] [\#2293](https://github.com/tendermint/tendermint/issues/2293) Allow passing options through when creating instances of leveldb dbs + +IMPROVEMENTS: +- [docs] Lint documentation with `write-good` and `stop-words`. +- [docs] [\#2249](https://github.com/tendermint/tendermint/issues/2249) Refactor, deduplicate, and improve the ABCI docs and spec (with thanks to @ttmc). +- [scripts] [\#2196](https://github.com/tendermint/tendermint/issues/2196) Added json2wal tool, which is supposed to help our users restore (@bradyjoestar) + corrupted WAL files and compose test WAL files (@bradyjoestar) +- [mempool] [\#2234](https://github.com/tendermint/tendermint/issues/2234) Now stores txs by hash inside of the cache, to mitigate memory leakage +- [mempool] [\#2166](https://github.com/tendermint/tendermint/issues/2166) Set explicit capacity for map when updating txs (@bluele) + +BUG FIXES: +- [config] [\#2284](https://github.com/tendermint/tendermint/issues/2284) Replace `db_path` with `db_dir` from automatically generated configuration files. +- [mempool] [\#2188](https://github.com/tendermint/tendermint/issues/2188) Fix OOM issue from cache map and list getting out of sync +- [state] [\#2051](https://github.com/tendermint/tendermint/issues/2051) KV store index supports searching by `tx.height` (@ackratos) +- [rpc] [\#2327](https://github.com/tendermint/tendermint/issues/2327) `/dial_peers` does not try to dial existing peers +- [node] [\#2323](https://github.com/tendermint/tendermint/issues/2323) Filter empty strings from config lists (@james-ray) +- [abci/client] [\#2236](https://github.com/tendermint/tendermint/issues/2236) Fix closing GRPC connection (@bradyjoestar) + +## 0.23.1 + +*August 22nd, 2018* + +BUG FIXES: +- [libs/autofile] [\#2261](https://github.com/tendermint/tendermint/issues/2261) Fix log rotation so it actually happens. + - Fixes issues with consensus WAL growing unbounded ala [\#2259](https://github.com/tendermint/tendermint/issues/2259) + +## 0.23.0 + +*August 5th, 2018* + +This release includes breaking upgrades in our P2P encryption, +some ABCI messages, and how we encode time and signatures. + +A few more changes are still coming to the Header, ABCI, +and validator set handling to better support light clients, BFT time, and +upgrades. Most notably, validator set changes will be delayed by one block (see +[#1815][i1815]). + +We also removed `make ensure_deps` in favour of `make get_vendor_deps`. + +BREAKING CHANGES: +- [abci] Changed time format from int64 to google.protobuf.Timestamp +- [abci] Changed Validators to LastCommitInfo in RequestBeginBlock +- [abci] Removed Fee from ResponseDeliverTx and ResponseCheckTx +- [crypto] Switch crypto.Signature from interface to []byte for space efficiency + [#2128](https://github.com/tendermint/tendermint/pull/2128) + - NOTE: this means signatures no longer have the prefix bytes in Amino + binary nor the `type` field in Amino JSON. They're just bytes. +- [p2p] Remove salsa and ripemd primitives, in favor of using chacha as a stream cipher, and hkdf [#2054](https://github.com/tendermint/tendermint/pull/2054) +- [tools] Removed `make ensure_deps` in favor of `make get_vendor_deps` +- [types] CanonicalTime uses nanoseconds instead of clipping to ms + - breaks serialization/signing of all messages with a timestamp + +FEATURES: +- [tools] Added `make check_dep` + - ensures gopkg.lock is synced with gopkg.toml + - ensures no branches are used in the gopkg.toml + +IMPROVEMENTS: +- [blockchain] Improve fast-sync logic + [#1805](https://github.com/tendermint/tendermint/pull/1805) + - tweak params + - only process one block at a time to avoid starving +- [common] bit array functions which take in another parameter are now thread safe +- [crypto] Switch hkdfchachapoly1305 to xchachapoly1305 +- [p2p] begin connecting to peers as soon a seed node provides them to you ([#2093](https://github.com/tendermint/tendermint/issues/2093)) + +BUG FIXES: +- [common] Safely handle cases where atomic write files already exist [#2109](https://github.com/tendermint/tendermint/issues/2109) +- [privval] fix a deadline for accepting new connections in socket private + validator. +- [p2p] Allow startup if a configured seed node's IP can't be resolved ([#1716](https://github.com/tendermint/tendermint/issues/1716)) +- [node] Fully exit when CTRL-C is pressed even if consensus state panics [#2072](https://github.com/tendermint/tendermint/issues/2072) + +[i1815]: https://github.com/tendermint/tendermint/pull/1815 + +## 0.22.8 + +*July 26th, 2018* + +BUG FIXES + +- [consensus, blockchain] Fix 0.22.7 below. + +## 0.22.7 + +*July 26th, 2018* + +BUG FIXES + +- [consensus, blockchain] Register the Evidence interface so it can be + marshalled/unmarshalled by the blockchain and consensus reactors + +## 0.22.6 + +*July 24th, 2018* + +BUG FIXES + +- [rpc] Fix `/blockchain` endpoint + - (#2049) Fix OOM attack by returning error on negative input + - Fix result length to have max 20 (instead of 21) block metas +- [rpc] Validate height is non-negative in `/abci_query` +- [consensus] (#2050) Include evidence in proposal block parts (previously evidence was + not being included in blocks!) +- [p2p] (#2046) Close rejected inbound connections so file descriptor doesn't + leak +- [Gopkg] (#2053) Fix versions in the toml + +## 0.22.5 + +*July 23th, 2018* + +BREAKING CHANGES: +- [crypto] Refactor `tendermint/crypto` into many subpackages +- [libs/common] remove exponentially distributed random numbers + +IMPROVEMENTS: +- [abci, libs/common] Generated gogoproto static marshaller methods +- [config] Increase default send/recv rates to 5 mB/s +- [p2p] reject addresses coming from private peers +- [p2p] allow persistent peers to be private + +BUG FIXES: +- [mempool] fixed a race condition when `create_empty_blocks=false` where a + transaction is published at an old height. +- [p2p] dial external IP setup by `persistent_peers`, not internal NAT IP +- [rpc] make `/status` RPC endpoint resistant to consensus halt + +## 0.22.4 + +*July 14th, 2018* + +BREAKING CHANGES: +- [genesis] removed deprecated `app_options` field. +- [types] Genesis.AppStateJSON -> Genesis.AppState + +FEATURES: +- [tools] Merged in from github.com/tendermint/tools + +BUG FIXES: +- [tools/tm-bench] Various fixes +- [consensus] Wait for WAL to stop on shutdown +- [abci] Fix #1891, pending requests cannot hang when abci server dies. + Previously a crash in BeginBlock could leave tendermint in broken state. + +## 0.22.3 + +*July 10th, 2018* + +IMPROVEMENTS +- Update dependencies + * pin all values in Gopkg.toml to version or commit + * update golang/protobuf to v1.1.0 + +## 0.22.2 + +*July 10th, 2018* + +IMPROVEMENTS +- More cleanup post repo merge! +- [docs] Include `ecosystem.json` and `tendermint-bft.md` from deprecated `aib-data` repository. +- [config] Add `instrumentation.max_open_connections`, which limits the number + of requests in flight to Prometheus server (if enabled). Default: 3. + + +BUG FIXES +- [rpc] Allow unquoted integers in requests + - NOTE: this is only for URI requests. JSONRPC requests and all responses + will use quoted integers (the proto3 JSON standard). +- [consensus] Fix halt on shutdown + +## 0.22.1 + +*July 5th, 2018* + +IMPROVEMENTS + +* Cleanup post repo-merge. +* [docs] Various improvements. + +BUG FIXES + +* [state] Return error when EndBlock returns a 0-power validator that isn't + already in the validator set. +* [consensus] Shut down WAL properly. + + +## 0.22.0 + +*July 2nd, 2018* + +BREAKING CHANGES: +- [config] + * Remove `max_block_size_txs` and `max_block_size_bytes` in favor of + consensus params from the genesis file. + * Rename `skip_upnp` to `upnp`, and turn it off by default. + * Change `max_packet_msg_size` back to `max_packet_msg_payload_size` +- [rpc] + * All integers are encoded as strings (part of the update for Amino v0.10.1) + * `syncing` is now called `catching_up` +- [types] Update Amino to v0.10.1 + * Amino is now fully proto3 compatible for the basic types + * JSON-encoded types now use the type name instead of the prefix bytes + * Integers are encoded as strings +- [crypto] Update go-crypto to v0.10.0 and merge into `crypto` + * privKey.Sign returns error. + * ed25519 address changed to the first 20-bytes of the SHA256 of the raw pubkey bytes + * `tmlibs/merkle` -> `crypto/merkle`. Uses SHA256 instead of RIPEMD160 +- [tmlibs] Update to v0.9.0 and merge into `libs` + * remove `merkle` package (moved to `crypto/merkle`) + +FEATURES +- [cmd] Added metrics (served under `/metrics` using a Prometheus client; + disabled by default). See the new `instrumentation` section in the config and + [metrics](https://github.com/tendermint/tendermint/blob/master/docs/nodes/metrics.md) + guide. +- [p2p] Add IPv6 support to peering. +- [p2p] Add `external_address` to config to allow specifying the address for + peers to dial + +IMPROVEMENT +- [rpc/client] Supports https and wss now. +- [crypto] Make public key size into public constants +- [mempool] Log tx hash, not entire tx +- [abci] Merged in github.com/tendermint/abci +- [crypto] Merged in github.com/tendermint/go-crypto +- [libs] Merged in github.com/tendermint/tmlibs +- [docs] Move from .rst to .md + +BUG FIXES: +- [rpc] Limit maximum number of HTTP/WebSocket connections + (`rpc.max_open_connections`) and gRPC connections + (`rpc.grpc_max_open_connections`). Check out "Running In Production" guide if + you want to increase them. +- [rpc] Limit maximum request body size to 1MB (header is limited to 1MB). +- [consensus] Fix a halting bug where `create_empty_blocks=false` +- [p2p] Fix panic in seed mode + +## 0.21.0 + +*June 21th, 2018* + +BREAKING CHANGES + +- [config] Change default ports from 4665X to 2665X. Ports over 32768 are + ephemeral and reserved for use by the kernel. +- [cmd] `unsafe_reset_all` removes the addrbook.json + +IMPROVEMENT + +- [pubsub] Set default capacity to 0 +- [docs] Various improvements + +BUG FIXES + +- [consensus] Fix an issue where we don't make blocks after `fast_sync` when `create_empty_blocks=false` +- [mempool] Fix #1761 where we don't process txs if `cache_size=0` +- [rpc] Fix memory leak in Websocket (when using `/subscribe` method) +- [config] Escape paths in config - fixes config paths on Windows + +## 0.20.0 + +*June 6th, 2018* + +This is the first in a series of breaking releases coming to Tendermint after +soliciting developer feedback and conducting security audits. + +This release does not break any blockchain data structures or +protocols other than the ABCI messages between Tendermint and the application. + +Applications that upgrade for ABCI v0.11.0 should be able to continue running Tendermint +v0.20.0 on blockchains created with v0.19.X + +BREAKING CHANGES + +- [abci] Upgrade to + [v0.11.0](https://github.com/tendermint/abci/blob/master/CHANGELOG.md#0110) +- [abci] Change Query path for filtering peers by node ID from + `p2p/filter/pubkey/` to `p2p/filter/id/` + +## 0.19.9 + +*June 5th, 2018* + +BREAKING CHANGES + +- [types/priv_validator] Moved to top level `privval` package + +FEATURES + +- [config] Collapse PeerConfig into P2PConfig +- [docs] Add quick-install script +- [docs/spec] Add table of Amino prefixes + +BUG FIXES + +- [rpc] Return 404 for unknown endpoints +- [consensus] Flush WAL on stop +- [evidence] Don't send evidence to peers that are behind +- [p2p] Fix memory leak on peer disconnects +- [rpc] Fix panic when `per_page=0` + +## 0.19.8 + +*June 4th, 2018* + +BREAKING: + +- [p2p] Remove `auth_enc` config option, peer connections are always auth + encrypted. Technically a breaking change but seems no one was using it and + arguably a bug fix :) + +BUG FIXES + +- [mempool] Fix deadlock under high load when `skip_timeout_commit=true` and + `create_empty_blocks=false` + +## 0.19.7 + +*May 31st, 2018* + +BREAKING: + +- [libs/pubsub] TagMap#Get returns a string value +- [libs/pubsub] NewTagMap accepts a map of strings + +FEATURES + +- [rpc] the RPC documentation is now published to `https://tendermint.github.io/slate` +- [p2p] AllowDuplicateIP config option to refuse connections from same IP. + - true by default for now, false by default in next breaking release +- [docs] Add docs for query, tx indexing, events, pubsub +- [docs] Add some notes about running Tendermint in production + +IMPROVEMENTS: + +- [consensus] Consensus reactor now receives events from a separate synchronous event bus, + which is not dependant on external RPC load +- [consensus/wal] do not look for height in older files if we've seen height - 1 +- [docs] Various cleanup and link fixes + +## 0.19.6 + +*May 29th, 2018* + +BUG FIXES + +- [blockchain] Fix fast-sync deadlock during high peer turnover + +BUG FIX: + +- [evidence] Dont send peers evidence from heights they haven't synced to yet +- [p2p] Refuse connections to more than one peer with the same IP +- [docs] Various fixes + +## 0.19.5 + +*May 20th, 2018* + +BREAKING CHANGES + +- [rpc/client] TxSearch and UnconfirmedTxs have new arguments (see below) +- [rpc/client] TxSearch returns ResultTxSearch +- [version] Breaking changes to Go APIs will not be reflected in breaking + version change, but will be included in changelog. + +FEATURES + +- [rpc] `/tx_search` takes `page` (starts at 1) and `per_page` (max 100, default 30) args to paginate results +- [rpc] `/unconfirmed_txs` takes `limit` (max 100, default 30) arg to limit the output +- [config] `mempool.size` and `mempool.cache_size` options + +IMPROVEMENTS + +- [docs] Lots of updates +- [consensus] Only Fsync() the WAL before executing msgs from ourselves + +BUG FIXES + +- [mempool] Enforce upper bound on number of transactions + +## 0.19.4 (May 17th, 2018) + +IMPROVEMENTS + +- [state] Improve tx indexing by using batches +- [consensus, state] Improve logging (more consensus logs, fewer tx logs) +- [spec] Moved to `docs/spec` (TODO cleanup the rest of the docs ...) + +BUG FIXES + +- [consensus] Fix issue #1575 where a late proposer can get stuck + +## 0.19.3 (May 14th, 2018) + +FEATURES + +- [rpc] New `/consensus_state` returns just the votes seen at the current height + +IMPROVEMENTS + +- [rpc] Add stringified votes and fraction of power voted to `/dump_consensus_state` +- [rpc] Add PeerStateStats to `/dump_consensus_state` + +BUG FIXES + +- [cmd] Set GenesisTime during `tendermint init` +- [consensus] fix ValidBlock rules + +## 0.19.2 (April 30th, 2018) + +FEATURES: + +- [p2p] Allow peers with different Minor versions to connect +- [rpc] `/net_info` includes `n_peers` + +IMPROVEMENTS: + +- [p2p] Various code comments, cleanup, error types +- [p2p] Change some Error logs to Debug + +BUG FIXES: + +- [p2p] Fix reconnect to persistent peer when first dial fails +- [p2p] Validate NodeInfo.ListenAddr +- [p2p] Only allow (MaxNumPeers - MaxNumOutboundPeers) inbound peers +- [p2p/pex] Limit max msg size to 64kB +- [p2p] Fix panic when pex=false +- [p2p] Allow multiple IPs per ID in AddrBook +- [p2p] Fix before/after bugs in addrbook isBad() + +## 0.19.1 (April 27th, 2018) + +Note this release includes some small breaking changes in the RPC and one in the +config that are really bug fixes. v0.19.1 will work with existing chains, and make Tendermint +easier to use and debug. With <3 + +BREAKING (MINOR) + +- [config] Removed `wal_light` setting. If you really needed this, let us know + +FEATURES: + +- [networks] moved in tooling from devops repo: terraform and ansible scripts for deploying testnets ! +- [cmd] Added `gen_node_key` command + +BUG FIXES + +Some of these are breaking in the RPC response, but they're really bugs! + +- [spec] Document address format and pubkey encoding pre and post Amino +- [rpc] Lower case JSON field names +- [rpc] Fix missing entries, improve, and lower case the fields in `/dump_consensus_state` +- [rpc] Fix NodeInfo.Channels format to hex +- [rpc] Add Validator address to `/status` +- [rpc] Fix `prove` in ABCIQuery +- [cmd] MarshalJSONIndent on init + +## 0.19.0 (April 13th, 2018) + +BREAKING: +- [cmd] improved `testnet` command; now it can fill in `persistent_peers` for you in the config file and much more (see `tendermint testnet --help` for details) +- [cmd] `show_node_id` now returns an error if there is no node key +- [rpc]: changed the output format for the `/status` endpoint (see https://godoc.org/github.com/tendermint/tendermint/rpc/core#Status) + +Upgrade from go-wire to go-amino. This is a sweeping change that breaks everything that is +serialized to disk or over the network. + +See github.com/tendermint/go-amino for details on the new format. + +See `scripts/wire2amino.go` for a tool to upgrade +genesis/priv_validator/node_key JSON files. + +FEATURES + +- [test] docker-compose for local testnet setup (thanks Greg!) + +## 0.18.0 (April 6th, 2018) + +BREAKING: + +- [types] Merkle tree uses different encoding for varints (see tmlibs v0.8.0) +- [types] ValidtorSet.GetByAddress returns -1 if no validator found +- [p2p] require all addresses come with an ID no matter what +- [rpc] Listening address must contain tcp:// or unix:// prefix + +FEATURES: + +- [rpc] StartHTTPAndTLSServer (not used yet) +- [rpc] Include validator's voting power in `/status` +- [rpc] `/tx` and `/tx_search` responses now include the transaction hash +- [rpc] Include peer NodeIDs in `/net_info` + +IMPROVEMENTS: +- [config] trim whitespace from elements of lists (like `persistent_peers`) +- [rpc] `/tx_search` results are sorted by height +- [p2p] do not try to connect to ourselves (ok, maybe only once) +- [p2p] seeds respond with a bias towards good peers + +BUG FIXES: +- [rpc] fix subscribing using an abci.ResponseDeliverTx tag +- [rpc] fix tx_indexers matchRange +- [rpc] fix unsubscribing (see tmlibs v0.8.0) + +## 0.17.1 (March 27th, 2018) + +BUG FIXES: +- [types] Actually support `app_state` in genesis as `AppStateJSON` + +## 0.17.0 (March 27th, 2018) + +BREAKING: +- [types] WriteSignBytes -> SignBytes + +IMPROVEMENTS: +- [all] renamed `dummy` (`persistent_dummy`) to `kvstore` (`persistent_kvstore`) (name "dummy" is deprecated and will not work in the next breaking release) +- [docs] note on determinism (docs/determinism.rst) +- [genesis] `app_options` field is deprecated. please rename it to `app_state` in your genesis file(s). `app_options` will not work in the next breaking release +- [p2p] dial seeds directly without potential peers +- [p2p] exponential backoff for addrs in the address book +- [p2p] mark peer as good if it contributed enough votes or block parts +- [p2p] stop peer if it sends incorrect data, msg to unknown channel, msg we did not expect +- [p2p] when `auth_enc` is true, all dialed peers must have a node ID in their address +- [spec] various improvements +- switched from glide to dep internally for package management +- [wire] prep work for upgrading to new go-wire (which is now called go-amino) + +FEATURES: +- [config] exposed `auth_enc` flag to enable/disable encryption +- [config] added the `--p2p.private_peer_ids` flag and `PrivatePeerIDs` config variable (see config for description) +- [rpc] added `/health` endpoint, which returns empty result for now +- [types/priv_validator] new format and socket client, allowing for remote signing + +BUG FIXES: +- [consensus] fix liveness bug by introducing ValidBlock mechanism + +## 0.16.0 (February 20th, 2018) + +BREAKING CHANGES: +- [config] use $TMHOME/config for all config and json files +- [p2p] old `--p2p.seeds` is now `--p2p.persistent_peers` (persistent peers to which TM will always connect to) +- [p2p] now `--p2p.seeds` only used for getting addresses (if addrbook is empty; not persistent) +- [p2p] NodeInfo: remove RemoteAddr and add Channels + - we must have at least one overlapping channel with peer + - we only send msgs for channels the peer advertised +- [p2p/conn] pong timeout +- [lite] comment out IAVL related code + +FEATURES: +- [p2p] added new `/dial_peers&persistent=_` **unsafe** endpoint +- [p2p] persistent node key in `$THMHOME/config/node_key.json` +- [p2p] introduce peer ID and authenticate peers by ID using addresses like `ID@IP:PORT` +- [p2p/pex] new seed mode crawls the network and serves as a seed. +- [config] MempoolConfig.CacheSize +- [config] P2P.SeedMode (`--p2p.seed_mode`) + +IMPROVEMENT: +- [p2p/pex] stricter rules in the PEX reactor for better handling of abuse +- [p2p] various improvements to code structure including subpackages for `pex` and `conn` +- [docs] new spec! +- [all] speed up the tests! + +BUG FIX: +- [blockchain] StopPeerForError on timeout +- [consensus] StopPeerForError on a bad Maj23 message +- [state] flush mempool conn before calling commit +- [types] fix priv val signing things that only differ by timestamp +- [mempool] fix memory leak causing zombie peers +- [p2p/conn] fix potential deadlock + +## 0.15.0 (December 29, 2017) + +BREAKING CHANGES: +- [p2p] enable the Peer Exchange reactor by default +- [types] add Timestamp field to Proposal/Vote +- [types] add new fields to Header: TotalTxs, ConsensusParamsHash, LastResultsHash, EvidenceHash +- [types] add Evidence to Block +- [types] simplify ValidateBasic +- [state] updates to support changes to the header +- [state] Enforce <1/3 of validator set can change at a time + +FEATURES: +- [state] Send indices of absent validators and addresses of byzantine validators in BeginBlock +- [state] Historical ConsensusParams and ABCIResponses +- [docs] Specification for the base Tendermint data structures. +- [evidence] New evidence reactor for gossiping and managing evidence +- [rpc] `/block_results?height=X` returns the DeliverTx results for a given height. + +IMPROVEMENTS: +- [consensus] Better handling of corrupt WAL file + +BUG FIXES: +- [lite] fix race +- [state] validate block.Header.ValidatorsHash +- [p2p] allow seed addresses to be prefixed with eg. `tcp://` +- [p2p] use consistent key to refer to peers so we dont try to connect to existing peers +- [cmd] fix `tendermint init` to ignore files that are there and generate files that aren't. + +## 0.14.0 (December 11, 2017) + +BREAKING CHANGES: +- consensus/wal: removed separator +- rpc/client: changed Subscribe/Unsubscribe/UnsubscribeAll funcs signatures to be identical to event bus. + +FEATURES: +- new `tendermint lite` command (and `lite/proxy` pkg) for running a light-client RPC proxy. + NOTE it is currently insecure and its APIs are not yet covered by semver + +IMPROVEMENTS: +- rpc/client: can act as event bus subscriber (See https://github.com/tendermint/tendermint/issues/945). +- p2p: use exponential backoff from seconds to hours when attempting to reconnect to persistent peer +- config: moniker defaults to the machine's hostname instead of "anonymous" + +BUG FIXES: +- p2p: no longer exit if one of the seed addresses is incorrect + +## 0.13.0 (December 6, 2017) + +BREAKING CHANGES: +- abci: update to v0.8 using gogo/protobuf; includes tx tags, vote info in RequestBeginBlock, data.Bytes everywhere, use int64, etc. +- types: block heights are now `int64` everywhere +- types & node: EventSwitch and EventCache have been replaced by EventBus and EventBuffer; event types have been overhauled +- node: EventSwitch methods now refer to EventBus +- rpc/lib/types: RPCResponse is no longer a pointer; WSRPCConnection interface has been modified +- rpc/client: WaitForOneEvent takes an EventsClient instead of types.EventSwitch +- rpc/client: Add/RemoveListenerForEvent are now Subscribe/Unsubscribe +- rpc/core/types: ResultABCIQuery wraps an abci.ResponseQuery +- rpc: `/subscribe` and `/unsubscribe` take `query` arg instead of `event` +- rpc: `/status` returns the LatestBlockTime in human readable form instead of in nanoseconds +- mempool: cached transactions return an error instead of an ABCI response with BadNonce + +FEATURES: +- rpc: new `/unsubscribe_all` WebSocket RPC endpoint +- rpc: new `/tx_search` endpoint for filtering transactions by more complex queries +- p2p/trust: new trust metric for tracking peers. See ADR-006 +- config: TxIndexConfig allows to set what DeliverTx tags to index + +IMPROVEMENTS: +- New asynchronous events system using `tmlibs/pubsub` +- logging: Various small improvements +- consensus: Graceful shutdown when app crashes +- tests: Fix various non-deterministic errors +- p2p: more defensive programming + +BUG FIXES: +- consensus: fix panic where prs.ProposalBlockParts is not initialized +- p2p: fix panic on bad channel + +## 0.12.1 (November 27, 2017) + +BUG FIXES: +- upgrade tmlibs dependency to enable Windows builds for Tendermint + +## 0.12.0 (October 27, 2017) + +BREAKING CHANGES: + - rpc/client: websocket ResultsCh and ErrorsCh unified in ResponsesCh. + - rpc/client: ABCIQuery no longer takes `prove` + - state: remove GenesisDoc from state. + - consensus: new binary WAL format provides efficiency and uses checksums to detect corruption + - use scripts/wal2json to convert to json for debugging + +FEATURES: + - new `Verifiers` pkg contains the tendermint light-client library (name subject to change)! + - rpc: `/genesis` includes the `app_options` . + - rpc: `/abci_query` takes an additional `height` parameter to support historical queries. + - rpc/client: new ABCIQueryWithOptions supports options like `trusted` (set false to get a proof) and `height` to query a historical height. + +IMPROVEMENTS: + - rpc: `/genesis` result includes `app_options` + - rpc/lib/client: add jitter to reconnects. + - rpc/lib/types: `RPCError` satisfies the `error` interface. + +BUG FIXES: + - rpc/client: fix ws deadlock after stopping + - blockchain: fix panic on AddBlock when peer is nil + - mempool: fix sending on TxsAvailable when a tx has been invalidated + - consensus: dont run WAL catchup if we fast synced + +## 0.11.1 (October 10, 2017) + +IMPROVEMENTS: + - blockchain/reactor: respondWithNoResponseMessage for missing height + +BUG FIXES: + - rpc: fixed client WebSocket timeout + - rpc: client now resubscribes on reconnection + - rpc: fix panics on missing params + - rpc: fix `/dump_consensus_state` to have normal json output (NOTE: technically breaking, but worth a bug fix label) + - types: fixed out of range error in VoteSet.addVote + - consensus: fix wal autofile via https://github.com/tendermint/tmlibs/blob/master/CHANGELOG.md#032-october-2-2017 + +## 0.11.0 (September 22, 2017) + +BREAKING: + - genesis file: validator `amount` is now `power` + - abci: Info, BeginBlock, InitChain all take structs + - rpc: various changes to match JSONRPC spec (http://www.jsonrpc.org/specification), including breaking ones: + - requests that previously returned HTTP code 4XX now return 200 with an error code in the JSONRPC. + - `rpctypes.RPCResponse` uses new `RPCError` type instead of `string`. + + - cmd: if there is no genesis, exit immediately instead of waiting around for one to show. + - types: `Signer.Sign` returns an error. + - state: every validator set change is persisted to disk, which required some changes to the `State` structure. + - p2p: new `p2p.Peer` interface used for all reactor methods (instead of `*p2p.Peer` struct). + +FEATURES: + - rpc: `/validators?height=X` allows querying of validators at previous heights. + - rpc: Leaving the `height` param empty for `/block`, `/validators`, and `/commit` will return the value for the latest height. + +IMPROVEMENTS: + - docs: Moved all docs from the website and tools repo in, converted to `.rst`, and cleaned up for presentation on `tendermint.readthedocs.io` + +BUG FIXES: + - fix WAL openning issue on Windows + +## 0.10.4 (September 5, 2017) + +IMPROVEMENTS: +- docs: Added Slate docs to each rpc function (see rpc/core) +- docs: Ported all website docs to Read The Docs +- config: expose some p2p params to tweak performance: RecvRate, SendRate, and MaxMsgPacketPayloadSize +- rpc: Upgrade the websocket client and server, including improved auto reconnect, and proper ping/pong + +BUG FIXES: +- consensus: fix panic on getVoteBitArray +- consensus: hang instead of panicking on byzantine consensus failures +- cmd: dont load config for version command + +## 0.10.3 (August 10, 2017) + +FEATURES: +- control over empty block production: + - new flag, `--consensus.create_empty_blocks`; when set to false, blocks are only created when there are txs or when the AppHash changes. + - new config option, `consensus.create_empty_blocks_interval`; an empty block is created after this many seconds. + - in normal operation, `create_empty_blocks = true` and `create_empty_blocks_interval = 0`, so blocks are being created all the time (as in all previous versions of tendermint). The number of empty blocks can be reduced by increasing `create_empty_blocks_interval` or by setting `create_empty_blocks = false`. + - new `TxsAvailable()` method added to Mempool that returns a channel which fires when txs are available. + - new heartbeat message added to consensus reactor to notify peers that a node is waiting for txs before entering propose step. +- rpc: Add `syncing` field to response returned by `/status`. Is `true` while in fast-sync mode. + +IMPROVEMENTS: +- various improvements to documentation and code comments + +BUG FIXES: +- mempool: pass height into constructor so it doesn't always start at 0 + +## 0.10.2 (July 10, 2017) + +FEATURES: +- Enable lower latency block commits by adding consensus reactor sleep durations and p2p flush throttle timeout to the config + +IMPROVEMENTS: +- More detailed logging in the consensus reactor and state machine +- More in-code documentation for many exposed functions, especially in consensus/reactor.go and p2p/switch.go +- Improved readability for some function definitions and code blocks with long lines + +## 0.10.1 (June 28, 2017) + +FEATURES: +- Use `--trace` to get stack traces for logged errors +- types: GenesisDoc.ValidatorHash returns the hash of the genesis validator set +- types: GenesisDocFromFile parses a GenesiDoc from a JSON file + +IMPROVEMENTS: +- Add a Code of Conduct +- Variety of improvements as suggested by `megacheck` tool +- rpc: deduplicate tests between rpc/client and rpc/tests +- rpc: addresses without a protocol prefix default to `tcp://`. `http://` is also accepted as an alias for `tcp://` +- cmd: commands are more easily reuseable from other tools +- DOCKER: automate build/push + +BUG FIXES: +- Fix log statements using keys with spaces (logger does not currently support spaces) +- rpc: set logger on websocket connection +- rpc: fix ws connection stability by setting write deadline on pings + +## 0.10.0 (June 2, 2017) + +Includes major updates to configuration, logging, and json serialization. +Also includes the Grand Repo-Merge of 2017. + +BREAKING CHANGES: + +- Config and Flags: + - The `config` map is replaced with a [`Config` struct](https://github.com/tendermint/tendermint/blob/master/config/config.go#L11), +containing substructs: `BaseConfig`, `P2PConfig`, `MempoolConfig`, `ConsensusConfig`, `RPCConfig` + - This affects the following flags: + - `--seeds` is now `--p2p.seeds` + - `--node_laddr` is now `--p2p.laddr` + - `--pex` is now `--p2p.pex` + - `--skip_upnp` is now `--p2p.skip_upnp` + - `--rpc_laddr` is now `--rpc.laddr` + - `--grpc_laddr` is now `--rpc.grpc_laddr` + - Any configuration option now within a substract must come under that heading in the `config.toml`, for instance: + ``` + [p2p] + laddr="tcp://1.2.3.4:46656" + + [consensus] + timeout_propose=1000 + ``` + - Use viper and `DefaultConfig() / TestConfig()` functions to handle defaults, and remove `config/tendermint` and `config/tendermint_test` + - Change some function and method signatures to + - Change some [function and method signatures](https://gist.github.com/ebuchman/640d5fc6c2605f73497992fe107ebe0b) accomodate new config + +- Logger + - Replace static `log15` logger with a simple interface, and provide a new implementation using `go-kit`. +See our new [logging library](https://github.com/tendermint/tmlibs/log) and [blog post](https://tendermint.com/blog/abstracting-the-logger-interface-in-go) for more details + - Levels `warn` and `notice` are removed (you may need to change them in your `config.toml`!) + - Change some [function and method signatures](https://gist.github.com/ebuchman/640d5fc6c2605f73497992fe107ebe0b) to accept a logger + +- JSON serialization: + - Replace `[TypeByte, Xxx]` with `{"type": "some-type", "data": Xxx}` in RPC and all `.json` files by using `go-wire/data`. For instance, a public key is now: + ``` + "pub_key": { + "type": "ed25519", + "data": "83DDF8775937A4A12A2704269E2729FCFCD491B933C4B0A7FFE37FE41D7760D0" + } + ``` + - Remove type information about RPC responses, so `[TypeByte, {"jsonrpc": "2.0", ... }]` is now just `{"jsonrpc": "2.0", ... }` + - Change `[]byte` to `data.Bytes` in all serialized types (for hex encoding) + - Lowercase the JSON tags in `ValidatorSet` fields + - Introduce `EventDataInner` for serializing events + +- Other: + - Send InitChain message in handshake if `appBlockHeight == 0` + - Do not include the `Accum` field when computing the validator hash. This makes the ValidatorSetHash unique for a given validator set, rather than changing with every block (as the Accum changes) + - Unsafe RPC calls are not enabled by default. This includes `/dial_seeds`, and all calls prefixed with `unsafe`. Use the `--rpc.unsafe` flag to enable. + + +FEATURES: + +- Per-module log levels. For instance, the new default is `state:info,*:error`, which means the `state` package logs at `info` level, and everything else logs at `error` level +- Log if a node is validator or not in every consensus round +- Use ldflags to set git hash as part of the version +- Ignore `address` and `pub_key` fields in `priv_validator.json` and overwrite them with the values derrived from the `priv_key` + +IMPROVEMENTS: + +- Merge `tendermint/go-p2p -> tendermint/tendermint/p2p` and `tendermint/go-rpc -> tendermint/tendermint/rpc/lib` +- Update paths for grand repo merge: + - `go-common -> tmlibs/common` + - `go-data -> go-wire/data` + - All other `go-` libs, except `go-crypto` and `go-wire`, are merged under `tmlibs` +- No global loggers (loggers are passed into constructors, or preferably set with a SetLogger method) +- Return HTTP status codes with errors for RPC responses +- Limit `/blockchain_info` call to return a maximum of 20 blocks +- Use `.Wrap()` and `.Unwrap()` instead of eg. `PubKeyS` for `go-crypto` types +- RPC JSON responses use pretty printing (via `json.MarshalIndent`) +- Color code different instances of the consensus for tests +- Isolate viper to `cmd/tendermint/commands` and do not read config from file for tests + + +## 0.9.2 (April 26, 2017) + +BUG FIXES: + +- Fix bug in `ResetPrivValidator` where we were using the global config and log (causing external consumers, eg. basecoin, to fail). + +## 0.9.1 (April 21, 2017) + +FEATURES: + +- Transaction indexing - txs are indexed by their hash using a simple key-value store; easily extended to more advanced indexers +- New `/tx?hash=X` endpoint to query for transactions and their DeliverTx result by hash. Optionally returns a proof of the tx's inclusion in the block +- `tendermint testnet` command initializes files for a testnet + +IMPROVEMENTS: + +- CLI now uses Cobra framework +- TMROOT is now TMHOME (TMROOT will stop working in 0.10.0) +- `/broadcast_tx_XXX` also returns the Hash (can be used to query for the tx) +- `/broadcast_tx_commit` also returns the height the block was committed in +- ABCIResponses struct persisted to disk before calling Commit; makes handshake replay much cleaner +- WAL uses #ENDHEIGHT instead of #HEIGHT (#HEIGHT will stop working in 0.10.0) +- Peers included via `--seeds`, under `seeds` in the config, or in `/dial_seeds` are now persistent, and will be reconnected to if the connection breaks + +BUG FIXES: + +- Fix bug in fast-sync where we stop syncing after a peer is removed, even if they're re-added later +- Fix handshake replay to handle validator set changes and results of DeliverTx when we crash after app.Commit but before state.Save() + +## 0.9.0 (March 6, 2017) + +BREAKING CHANGES: + +- Update ABCI to v0.4.0, where Query is now `Query(RequestQuery) ResponseQuery`, enabling precise proofs at particular heights: + +``` +message RequestQuery{ + bytes data = 1; + string path = 2; + uint64 height = 3; + bool prove = 4; +} + +message ResponseQuery{ + CodeType code = 1; + int64 index = 2; + bytes key = 3; + bytes value = 4; + bytes proof = 5; + uint64 height = 6; + string log = 7; +} +``` + + +- `BlockMeta` data type unifies its Hash and PartSetHash under a `BlockID`: + +``` +type BlockMeta struct { + BlockID BlockID `json:"block_id"` // the block hash and partsethash + Header *Header `json:"header"` // The block's Header +} +``` + +- `ValidatorSet.Proposer` is exposed as a field and persisted with the `State`. Use `GetProposer()` to initialize or update after validator-set changes. + +- `tendermint gen_validator` command output is now pure JSON + +FEATURES: + +- New RPC endpoint `/commit?height=X` returns header and commit for block at height `X` +- Client API for each endpoint, including mocks for testing + +IMPROVEMENTS: + +- `Node` is now a `BaseService` +- Simplified starting Tendermint in-process from another application +- Better organized Makefile +- Scripts for auto-building binaries across platforms +- Docker image improved, slimmed down (using Alpine), and changed from tendermint/tmbase to tendermint/tendermint +- New repo files: `CONTRIBUTING.md`, Github `ISSUE_TEMPLATE`, `CHANGELOG.md` +- Improvements on CircleCI for managing build/test artifacts +- Handshake replay is doen through the consensus package, possibly using a mockApp +- Graceful shutdown of RPC listeners +- Tests for the PEX reactor and DialSeeds + +BUG FIXES: + +- Check peer.Send for failure before updating PeerState in consensus +- Fix panic in `/dial_seeds` with invalid addresses +- Fix proposer selection logic in ValidatorSet by taking the address into account in the `accumComparable` +- Fix inconcistencies with `ValidatorSet.Proposer` across restarts by persisting it in the `State` + + +## 0.8.0 (January 13, 2017) + +BREAKING CHANGES: + +- New data type `BlockID` to represent blocks: + +``` +type BlockID struct { + Hash []byte `json:"hash"` + PartsHeader PartSetHeader `json:"parts"` +} +``` + +- `Vote` data type now includes validator address and index: + +``` +type Vote struct { + ValidatorAddress []byte `json:"validator_address"` + ValidatorIndex int `json:"validator_index"` + Height int `json:"height"` + Round int `json:"round"` + Type byte `json:"type"` + BlockID BlockID `json:"block_id"` // zero if vote is nil. + Signature crypto.Signature `json:"signature"` +} +``` + +- Update TMSP to v0.3.0, where it is now called ABCI and AppendTx is DeliverTx +- Hex strings in the RPC are now "0x" prefixed + + +FEATURES: + +- New message type on the ConsensusReactor, `Maj23Msg`, for peers to alert others they've seen a Maj23, +in order to track and handle conflicting votes intelligently to prevent Byzantine faults from causing halts: + +``` +type VoteSetMaj23Message struct { + Height int + Round int + Type byte + BlockID types.BlockID +} +``` + +- Configurable block part set size +- Validator set changes +- Optionally skip TimeoutCommit if we have all the votes +- Handshake between Tendermint and App on startup to sync latest state and ensure consistent recovery from crashes +- GRPC server for BroadcastTx endpoint + +IMPROVEMENTS: + +- Less verbose logging +- Better test coverage (37% -> 49%) +- Canonical SignBytes for signable types +- Write-Ahead Log for Mempool and Consensus via tmlibs/autofile +- Better in-process testing for the consensus reactor and byzantine faults +- Better crash/restart testing for individual nodes at preset failure points, and of networks at arbitrary points +- Better abstraction over timeout mechanics + +BUG FIXES: + +- Fix memory leak in mempool peer +- Fix panic on POLRound=-1 +- Actually set the CommitTime +- Actually send BeginBlock message +- Fix a liveness issues caused by Byzantine proposals/votes. Uses the new `Maj23Msg`. + + +## 0.7.4 (December 14, 2016) + +FEATURES: + +- Enable the Peer Exchange reactor with the `--pex` flag for more resilient gossip network (feature still in development, beware dragons) + +IMPROVEMENTS: + +- Remove restrictions on RPC endpoint `/dial_seeds` to enable manual network configuration + +## 0.7.3 (October 20, 2016) + +IMPROVEMENTS: + +- Type safe FireEvent +- More WAL/replay tests +- Cleanup some docs + +BUG FIXES: + +- Fix deadlock in mempool for synchronous apps +- Replay handles non-empty blocks +- Fix race condition in HeightVoteSet + +## 0.7.2 (September 11, 2016) + +BUG FIXES: + +- Set mustConnect=false so tendermint will retry connecting to the app + +## 0.7.1 (September 10, 2016) + +FEATURES: + +- New TMSP connection for Query/Info +- New RPC endpoints: + - `tmsp_query` + - `tmsp_info` +- Allow application to filter peers through Query (off by default) + +IMPROVEMENTS: + +- TMSP connection type enforced at compile time +- All listen/client urls use a "tcp://" or "unix://" prefix + +BUG FIXES: + +- Save LastSignature/LastSignBytes to `priv_validator.json` for recovery +- Fix event unsubscribe +- Fix fastsync/blockchain reactor + +## 0.7.0 (August 7, 2016) + +BREAKING CHANGES: + +- Strict SemVer starting now! +- Update to ABCI v0.2.0 +- Validation types now called Commit +- NewBlock event only returns the block header + + +FEATURES: + +- TMSP and RPC support TCP and UNIX sockets +- Addition config options including block size and consensus parameters +- New WAL mode `cswal_light`; logs only the validator's own votes +- New RPC endpoints: + - for starting/stopping profilers, and for updating config + - `/broadcast_tx_commit`, returns when tx is included in a block, else an error + - `/unsafe_flush_mempool`, empties the mempool + + +IMPROVEMENTS: + +- Various optimizations +- Remove bad or invalidated transactions from the mempool cache (allows later duplicates) +- More elaborate testing using CircleCI including benchmarking throughput on 4 digitalocean droplets + +BUG FIXES: + +- Various fixes to WAL and replay logic +- Various race conditions + +## PreHistory + +Strict versioning only began with the release of v0.7.0, in late summer 2016. +The project itself began in early summer 2014 and was workable decentralized cryptocurrency software by the end of that year. +Through the course of 2015, in collaboration with Eris Industries (now Monax Industries), +many additional features were integrated, including an implementation from scratch of the Ethereum Virtual Machine. +That implementation now forms the heart of [Burrow](https://github.com/hyperledger/burrow). +In the later half of 2015, the consensus algorithm was upgraded with a more asynchronous design and a more deterministic and robust implementation. + +By late 2015, frustration with the difficulty of forking a large monolithic stack to create alternative cryptocurrency designs led to the +invention of the Application Blockchain Interface (ABCI), then called the Tendermint Socket Protocol (TMSP). +The Ethereum Virtual Machine and various other transaction features were removed, and Tendermint was whittled down to a core consensus engine +driving an application running in another process. +The ABCI interface and implementation were iterated on and improved over the course of 2016, +until versioned history kicked in with v0.7.0. diff --git a/sei-tendermint/CHANGELOG_PENDING.md b/sei-tendermint/CHANGELOG_PENDING.md new file mode 100644 index 0000000000..c3e191e7e2 --- /dev/null +++ b/sei-tendermint/CHANGELOG_PENDING.md @@ -0,0 +1,96 @@ +# Unreleased Changes + +Friendly reminder: We have a [bug bounty program](https://hackerone.com/cosmos). + +## vX.X + +Month, DD, YYYY + +Special thanks to external contributors on this release: + +### BREAKING CHANGES + +- CLI/RPC/Config + + - [rpc] \#7121 Remove the deprecated gRPC interface to the RPC service. (@creachadair) + - [blocksync] \#7159 Remove support for disabling blocksync in any circumstance. (@tychoish) + - [mempool] \#7171 Remove legacy mempool implementation. (@tychoish) + - [rpc] \#7575 Rework how RPC responses are written back via HTTP. (@creachadair) + - [rpc] \#7713 Remove unused options for websocket clients. (@creachadair) + - [config] \#7930 Add new event subscription options and defaults. (@creachadair) + - [rpc] \#7982 Add new Events interface and deprecate Subscribe. (@creachadair) + - [cli] \#8081 make the reset command safe to use by intoducing `reset-state` command. Fixed by \#8259. (@marbar3778, @cmwaters) + - [config] \#8222 default indexer configuration to null. (@creachadair) + - [rpc] \#8570 rework timeouts to be per-method instead of global. (@creachadair) + - [rpc] \#8624 deprecate `broadcast_tx_commit` and `braodcast_tx_sync` and `broadcast_tx_async` in favor of `braodcast_tx`. (@tychoish) + - [config] \#8654 remove deprecated `seeds` field from config. Users should switch to `bootstrap-peers` instead. (@cmwaters) + +- Apps + + - [tendermint/spec] \#7804 Migrate spec from [spec repo](https://github.com/tendermint/spec). + - [abci] \#7984 Remove the locks preventing concurrent use of ABCI applications by Tendermint. (@tychoish) + - [abci] \#8605 Remove info, log, events, gasUsed and mempoolError fields from ResponseCheckTx as they are not used by Tendermint. (@jmalicevic) + - [abci] \#8664 Move `app_hash` parameter from `Commit` to `FinalizeBlock`. (@sergio-mena) + +- P2P Protocol + + - [p2p] \#7035 Remove legacy P2P routing implementation and associated configuration options. (@tychoish) + - [p2p] \#7265 Peer manager reduces peer score for each failed dial attempts for peers that have not successfully dialed. (@tychoish) + - [p2p] [\#7594](https://github.com/tendermint/tendermint/pull/7594) always advertise self, to enable mutual address discovery. (@altergui) + +- Go API + + - [rpc] \#7474 Remove the "URI" RPC client. (@creachadair) + - [libs/pubsub] \#7451 Internalize the pubsub packages. (@creachadair) + - [libs/sync] \#7450 Internalize and remove the library. (@creachadair) + - [libs/async] \#7449 Move library to internal. (@creachadair) + - [pubsub] \#7231 Remove unbuffered subscriptions and rework the Subscription interface. (@creachadair) + - [eventbus] \#7231 Move the EventBus type to the internal/eventbus package. (@creachadair) + - [blocksync] \#7046 Remove v2 implementation of the blocksync service and recactor, which was disabled in the previous release. (@tychoish) + - [p2p] \#7064 Remove WDRR queue implementation. (@tychoish) + - [config] \#7169 `WriteConfigFile` now returns an error. (@tychoish) + - [libs/service] \#7288 Remove SetLogger method on `service.Service` interface. (@tychoish) + - [abci/client] \#7607 Simplify client interface (removes most "async" methods). (@creachadair) + - [libs/json] \#7673 Remove the libs/json (tmjson) library. (@creachadair) + - [crypto] \#8412 \#8432 Remove `crypto/tmhash` package in favor of small functions in `crypto` package and cleanup of unused functions. (@tychoish) + +- Blockchain Protocol + +### FEATURES + +- [rpc] [\#7270](https://github.com/tendermint/tendermint/pull/7270) Add `header` and `header_by_hash` RPC Client queries. (@fedekunze) +- [rpc] [\#7701] Add `ApplicationInfo` to `status` rpc call which contains the application version. (@jonasbostoen) +- [cli] [#7033](https://github.com/tendermint/tendermint/pull/7033) Add a `rollback` command to rollback to the previous tendermint state in the event of non-determinstic app hash or reverting an upgrade. +- [mempool, rpc] \#7041 Add removeTx operation to the RPC layer. (@tychoish) +- [consensus] \#7354 add a new `synchrony` field to the `ConsensusParams` struct for controlling the parameters of the proposer-based timestamp algorithm. (@williambanfield) +- [consensus] \#7376 Update the proposal logic per the Propose-based timestamps specification so that the proposer will wait for the previous block time to occur before proposing the next block. (@williambanfield) +- [consensus] \#7391 Use the proposed block timestamp as the proposal timestamp. Update the block validation logic to ensure that the proposed block's timestamp matches the timestamp in the proposal message. (@williambanfield) +- [consensus] \#7415 Update proposal validation logic to Prevote nil if a proposal does not meet the conditions for Timelyness per the proposer-based timestamp specification. (@anca) +- [consensus] \#7382 Update block validation to no longer require the block timestamp to be the median of the timestamps of the previous commit. (@anca) +- [consensus] \#7711 Use the proposer timestamp for the first height instead of the genesis time. Chains will still start consensus at the genesis time. (@anca) +- [cli] \#8281 Add a tool to update old config files to the latest version. (@creachadair) +- [consenus] \#8514 move `RecheckTx` from the local node mempool config to a global `ConsensusParams` field in `BlockParams` (@cmwaters) +- [abci] ABCI++ [specified](https://github.com/tendermint/tendermint/tree/master/spec/abci%2B%2B). (@sergio-mena, @cmwaters, @josef-widder) +- [abci] ABCI++ [implemented](https://github.com/orgs/tendermint/projects/9). (@williambanfield, @thanethomson, @sergio-mena) + +### IMPROVEMENTS + +- [internal/protoio] \#7325 Optimized `MarshalDelimited` by inlining the common case and using a `sync.Pool` in the worst case. (@odeke-em) +- [consensus] \#6969 remove logic to 'unlock' a locked block. +- [evidence] \#7700 Evidence messages contain single Evidence instead of EvidenceList (@jmalicevic) +- [evidence] \#7802 Evidence pool emits events when evidence is validated and updates a metric when the number of evidence in the evidence pool changes. (@jmalicevic) +- [pubsub] \#7319 Performance improvements for the event query API (@creachadair) +- [node] \#7521 Define concrete type for seed node implementation (@spacech1mp) +- [rpc] \#7612 paginate mempool /unconfirmed_txs rpc endpoint (@spacech1mp) +- [light] [\#7536](https://github.com/tendermint/tendermint/pull/7536) rpc /status call returns info about the light client (@jmalicevic) +- [types] \#7765 Replace EvidenceData with EvidenceList to avoid unnecessary nesting of evidence fields within a block. (@jmalicevic) + +### BUG FIXES + +- fix: assignment copies lock value in `BitArray.UnmarshalJSON()` (@lklimek) +- [light] \#7640 Light Client: fix absence proof verification (@ashcherbakov) +- [light] \#7641 Light Client: fix querying against the latest height (@ashcherbakov) +- [cli] [#7837](https://github.com/tendermint/tendermint/pull/7837) fix app hash in state rollback. (@yihuang) +- [cli] \#8276 scmigrate: ensure target key is correctly renamed. (@creachadair) +- [cli] \#8294 keymigrate: ensure block hash keys are correctly translated. (@creachadair) +- [cli] \#8352 keymigrate: ensure transaction hash keys are correctly translated. (@creachadair) diff --git a/sei-tendermint/CODE_OF_CONDUCT.md b/sei-tendermint/CODE_OF_CONDUCT.md new file mode 100644 index 0000000000..ec1477adcc --- /dev/null +++ b/sei-tendermint/CODE_OF_CONDUCT.md @@ -0,0 +1,59 @@ +# The Tendermint Code of Conduct + +This code of conduct applies to all projects run by the Tendermint/COSMOS team and hence to tendermint. + + +---- + + +# Conduct + +## Contact: conduct@tendermint.com + +* We are committed to providing a friendly, safe and welcoming environment for all, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality, or other similar characteristic. + +* On Slack, please avoid using overtly sexual nicknames or other nicknames that might detract from a friendly, safe and welcoming environment for all. + +* Please be kind and courteous. There’s no need to be mean or rude. + +* Respect that people have differences of opinion and that every design or implementation choice carries a trade-off and numerous costs. There is seldom a right answer. + +* Please keep unstructured critique to a minimum. If you have solid ideas you want to experiment with, make a fork and see how it works. + +* We will exclude you from interaction if you insult, demean or harass anyone. That is not welcome behaviour. We interpret the term “harassment” as including the definition in the [Citizen Code of Conduct](https://github.com/stumpsyn/policies/blob/master/citizen_code_of_conduct.md); if you have any lack of clarity about what might be included in that concept, please read their definition. In particular, we don’t tolerate behavior that excludes people in socially marginalized groups. + +* Private harassment is also unacceptable. No matter who you are, if you feel you have been or are being harassed or made uncomfortable by a community member, please contact one of the channel admins or the person mentioned above immediately. Whether you’re a regular contributor or a newcomer, we care about making this community a safe place for you and we’ve got your back. + +* Likewise any spamming, trolling, flaming, baiting or other attention-stealing behaviour is not welcome. + + +---- + + +# Moderation + +These are the policies for upholding our community’s standards of conduct. If you feel that a thread needs moderation, please contact the above mentioned person. + +1. Remarks that violate the Tendermint/COSMOS standards of conduct, including hateful, hurtful, oppressive, or exclusionary remarks, are not allowed. (Cursing is allowed, but never targeting another user, and never in a hateful manner.) + +2. Remarks that moderators find inappropriate, whether listed in the code of conduct or not, are also not allowed. + +3. Moderators will first respond to such remarks with a warning. + +4. If the warning is unheeded, the user will be “kicked,” i.e., kicked out of the communication channel to cool off. + +5. If the user comes back and continues to make trouble, they will be banned, i.e., indefinitely excluded. + +6. Moderators may choose at their discretion to un-ban the user if it was a first offense and they offer the offended party a genuine apology. + +7. If a moderator bans someone and you think it was unjustified, please take it up with that moderator, or with a different moderator, in private. Complaints about bans in-channel are not allowed. + +8. Moderators are held to a higher standard than other community members. If a moderator creates an inappropriate situation, they should expect less leeway than others. + +In the Tendermint/COSMOS community we strive to go the extra step to look out for each other. Don’t just aim to be technically unimpeachable, try to be your best self. In particular, avoid flirting with offensive or sensitive issues, particularly if they’re off-topic; this all too often leads to unnecessary fights, hurt feelings, and damaged trust; worse, it can drive people away from the community entirely. + +And if someone takes issue with something you said or did, resist the urge to be defensive. Just stop doing what it was they complained about and apologize. Even if you feel you were misinterpreted or unfairly accused, chances are good there was something you could’ve communicated better — remember that it’s your responsibility to make your fellow Cosmonauts comfortable. Everyone wants to get along and we are all here first and foremost because we want to talk about cool technology. You will find that people will be eager to assume good intent and forgive as long as you earn their trust. + +The enforcement policies listed above apply to all official Tendermint/COSMOS venues.For other projects adopting the Tendermint/COSMOS Code of Conduct, please contact the maintainers of those projects for enforcement. If you wish to use this code of conduct for your own project, consider explicitly mentioning your moderation policy or making a copy with your own moderation policy so as to avoid confusion. + +*Adapted from the [Node.js Policy on Trolling](http://blog.izs.me/post/30036893703/policy-on-trolling), the [Contributor Covenant v1.3.0](http://contributor-covenant.org/version/1/3/0/) and the [Rust Code of Conduct](https://www.rust-lang.org/en-US/conduct.html). diff --git a/sei-tendermint/CONTRIBUTING.md b/sei-tendermint/CONTRIBUTING.md new file mode 100644 index 0000000000..bfa56bea64 --- /dev/null +++ b/sei-tendermint/CONTRIBUTING.md @@ -0,0 +1,343 @@ +# Contributing + +Thank you for your interest in contributing to Tendermint! Before +contributing, it may be helpful to understand the goal of the project. The goal +of Tendermint is to develop a BFT consensus engine robust enough to +support permissionless value-carrying networks. While all contributions are +welcome, contributors should bear this goal in mind in deciding if they should +target the main Tendermint project or a potential fork. When targeting the +main Tendermint project, the following process leads to the best chance of +landing changes in master. + +All work on the code base should be motivated by a [Github +Issue](https://github.com/tendermint/tendermint/issues). +[Search](https://github.com/tendermint/tendermint/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) +is a good place start when looking for places to contribute. If you +would like to work on an issue which already exists, please indicate so +by leaving a comment. + +All new contributions should start with a [Github +Issue](https://github.com/tendermint/tendermint/issues/new/choose). The +issue helps capture the problem you're trying to solve and allows for +early feedback. Once the issue is created the process can proceed in different +directions depending on how well defined the problem and potential +solution are. If the change is simple and well understood, maintainers +will indicate their support with a heartfelt emoji. + +If the issue would benefit from thorough discussion, maintainers may +request that you create a [Request For +Comment](https://github.com/tendermint/spec/tree/master/rfc) +in the Tendermint spec repo. Discussion +at the RFC stage will build collective understanding of the dimensions +of the problems and help structure conversations around trade-offs. + +When the problem is well understood but the solution leads to large structural +changes to the code base, these changes should be proposed in the form of an +[Architectural Decision Record (ADR)](./docs/architecture/). The ADR will help +build consensus on an overall strategy to ensure the code base maintains +coherence in the larger context. If you are not comfortable with writing an +ADR, you can open a less-formal issue and the maintainers will help you turn it +into an ADR. + +> How to pick a number for the ADR? + +Find the largest existing ADR number and bump it by 1. + +When the problem as well as proposed solution are well understood, +changes should start with a [draft +pull request](https://github.blog/2019-02-14-introducing-draft-pull-requests/) +against master. The draft signals that work is underway. When the work +is ready for feedback, hitting "Ready for Review" will signal to the +maintainers to take a look. + +![Contributing flow](./docs/imgs/contributing.png) + +Each stage of the process is aimed at creating feedback cycles which align contributors and maintainers to make sure: + +- Contributors don’t waste their time implementing/proposing features which won’t land in master. +- Maintainers have the necessary context in order to support and review contributions. + +## Forking + +Please note that Go requires code to live under absolute paths, which complicates forking. +While my fork lives at `https://github.com/ebuchman/tendermint`, +the code should never exist at `$GOPATH/src/github.com/ebuchman/tendermint`. +Instead, we use `git remote` to add the fork as a new remote for the original repo, +`$GOPATH/src/github.com/tendermint/tendermint`, and do all the work there. + +For instance, to create a fork and work on a branch of it, I would: + +- Create the fork on GitHub, using the fork button. +- Go to the original repo checked out locally (i.e. `$GOPATH/src/github.com/tendermint/tendermint`) +- `git remote rename origin upstream` +- `git remote add origin git@github.com:ebuchman/basecoin.git` + +Now `origin` refers to my fork and `upstream` refers to the Tendermint version. +So I can `git push -u origin master` to update my fork, and make pull requests to tendermint from there. +Of course, replace `ebuchman` with your git handle. + +To pull in updates from the origin repo, run + +- `git fetch upstream` +- `git rebase upstream/master` (or whatever branch you want) + +## Dependencies + +We use [go modules](https://github.com/golang/go/wiki/Modules) to manage dependencies. + +That said, the master branch of every Tendermint repository should just build +with `go get`, which means they should be kept up-to-date with their +dependencies so we can get away with telling people they can just `go get` our +software. + +Since some dependencies are not under our control, a third party may break our +build, in which case we can fall back on `go mod tidy`. Even for dependencies under our control, go helps us to +keep multiple repos in sync as they evolve. Anything with an executable, such +as apps, tools, and the core, should use dep. + +Run `go list -u -m all` to get a list of dependencies that may not be +up-to-date. + +When updating dependencies, please only update the particular dependencies you +need. Instead of running `go get -u=patch`, which will update anything, +specify exactly the dependency you want to update, eg. +`GO111MODULE=on go get -u github.com/tendermint/go-amino@master`. + +## Protobuf + +We use [Protocol Buffers](https://developers.google.com/protocol-buffers) along +with [`gogoproto`](https://github.com/gogo/protobuf) to generate code for use +across Tendermint Core. + +To generate proto stubs, lint, and check protos for breaking changes, you will +need to install [buf](https://buf.build/) and `gogoproto`. Then, from the root +of the repository, run: + +```bash +# Lint all of the .proto files in proto/tendermint +make proto-lint + +# Check if any of your local changes (prior to committing to the Git repository) +# are breaking +make proto-check-breaking + +# Generate Go code from the .proto files in proto/tendermint +make proto-gen +``` + +To automatically format `.proto` files, you will need +[`clang-format`](https://clang.llvm.org/docs/ClangFormat.html) installed. Once +installed, you can run: + +```bash +make proto-format +``` + +### Visual Studio Code + +If you are a VS Code user, you may want to add the following to your `.vscode/settings.json`: + +```json +{ + "protoc": { + "options": [ + "--proto_path=${workspaceRoot}/proto", + "--proto_path=${workspaceRoot}/third_party/proto" + ] + } +} +``` + +## Changelog + +Every fix, improvement, feature, or breaking change should be made in a +pull-request that includes an update to the `CHANGELOG_PENDING.md` file. + +Changelog entries should be formatted as follows: + +```md +- [module] \#xxx Some description about the change (@contributor) +``` + +Here, `module` is the part of the code that changed (typically a +top-level Go package), `xxx` is the pull-request number, and `contributor` +is the author/s of the change. + +It's also acceptable for `xxx` to refer to the relevant issue number, but pull-request +numbers are preferred. +Note this means pull-requests should be opened first so the changelog can then +be updated with the pull-request's number. +There is no need to include the full link, as this will be added +automatically during release. But please include the backslash and pound, eg. `\#2313`. + +Changelog entries should be ordered alphabetically according to the +`module`, and numerically according to the pull-request number. + +Changes with multiple classifications should be doubly included (eg. a bug fix +that is also a breaking change should be recorded under both). + +Breaking changes are further subdivided according to the APIs/users they impact. +Any change that effects multiple APIs/users should be recorded multiply - for +instance, a change to the `Blockchain Protocol` that removes a field from the +header should also be recorded under `CLI/RPC/Config` since the field will be +removed from the header in RPC responses as well. + +## Branching Model and Release + +The main development branch is master. + +Every release is maintained in a release branch named `vX.Y.Z`. + +Pending minor releases have long-lived release candidate ("RC") branches. Minor release changes should be merged to these long-lived RC branches at the same time that the changes are merged to master. + +Note all pull requests should be squash merged except for merging to a release branch (named `vX.Y`). This keeps the commit history clean and makes it +easy to reference the pull request where a change was introduced. + +### Development Procedure + +The latest state of development is on `master`, which must never fail `make test`. _Never_ force push `master`, unless fixing broken git history (which we rarely do anyways). + +To begin contributing, create a development branch either on `github.com/tendermint/tendermint`, or your fork (using `git remote add origin`). + +Make changes, and before submitting a pull request, update the `CHANGELOG_PENDING.md` to record your change. Also, run either `git rebase` or `git merge` on top of the latest `master`. (Since pull requests are squash-merged, either is fine!) + +Update the `UPGRADING.md` if the change you've made is breaking and the +instructions should be in place for a user on how he/she can upgrade it's +software (ABCI application, Tendermint-based blockchain, light client, wallet). + +Once you have submitted a pull request label the pull request with either `R:minor`, if the change should be included in the next minor release, or `R:major`, if the change is meant for a major release. + +Sometimes (often!) pull requests get out-of-date with master, as other people merge different pull requests to master. It is our convention that pull request authors are responsible for updating their branches with master. (This also means that you shouldn't update someone else's branch for them; even if it seems like you're doing them a favor, you may be interfering with their git flow in some way!) + +#### Merging Pull Requests + +It is also our convention that authors merge their own pull requests, when possible. External contributors may not have the necessary permissions to do this, in which case, a member of the core team will merge the pull request once it's been approved. + +Before merging a pull request: + +- Ensure pull branch is up-to-date with a recent `master` (GitHub won't let you merge without this!) +- Run `make test` to ensure that all tests pass +- [Squash](https://stackoverflow.com/questions/5189560/squash-my-last-x-commits-together-using-git) merge pull request + +#### Pull Requests for Minor Releases + +If your change should be included in a minor release, please also open a PR against the long-lived minor release candidate branch (e.g., `rc1/v0.33.5`) _immediately after your change has been merged to master_. + +You can do this by cherry-picking your commit off master: + +```sh +$ git checkout rc1/v0.33.5 +$ git checkout -b {new branch name} +$ git cherry-pick {commit SHA from master} +# may need to fix conflicts, and then use git add and git cherry-pick --continue +$ git push origin {new branch name} +``` + +After this, you can open a PR. Please note in the PR body if there were merge conflicts so that reviewers can be sure to take a thorough look. + +### Git Commit Style + +We follow the [Go style guide on commit messages](https://tip.golang.org/doc/contribute.html#commit_messages). Write concise commits that start with the package name and have a description that finishes the sentence "This change modifies Tendermint to...". For example, + +```sh +cmd/debug: execute p.Signal only when p is not nil + +[potentially longer description in the body] + +Fixes #nnnn +``` + +Each PR should have one commit once it lands on `master`; this can be accomplished by using the "squash and merge" button on Github. Be sure to edit your commit message, though! + +## Testing + +### Unit tests + +Unit tests are located in `_test.go` files as directed by [the Go testing +package](https://golang.org/pkg/testing/). If you're adding or removing a +function, please check there's a `TestType_Method` test for it. + +Run: `make test` + +### Integration tests + +Integration tests are also located in `_test.go` files. What differentiates +them is a more complicated setup, which usually involves setting up two or more +components. + +Run: `make test_integrations` + +### End-to-end tests + +End-to-end tests are used to verify a fully integrated Tendermint network. + +See [README](./test/e2e/README.md) for details. + +Run: + +```sh +cd test/e2e && \ + make && \ + ./build/runner -f networks/ci.toml +``` + +### Model-based tests (ADVANCED) + +*NOTE: if you're just submitting your first PR, you won't need to touch these +most probably (99.9%)*. + +For components, that have been [formally +verified](https://en.wikipedia.org/wiki/Formal_verification) using +[TLA+](https://en.wikipedia.org/wiki/TLA%2B), it may be possible to generate +tests using a combination of the [Apalache Model +Checker](https://apalache.informal.systems/) and [tendermint-rs testgen +util](https://github.com/informalsystems/tendermint-rs/tree/master/testgen). + +Now, I know there's a lot to take in. If you want to learn more, check out [ +this video](https://www.youtube.com/watch?v=aveoIMphzW8) by Andrey Kupriyanov +& Igor Konnov. + +At the moment, we have model-based tests for the light client, located in the +`./light/mbt` directory. + +Run: `cd light/mbt && go test` + +### Fuzz tests (ADVANCED) + +*NOTE: if you're just submitting your first PR, you won't need to touch these +most probably (99.9%)*. + +[Fuzz tests](https://en.wikipedia.org/wiki/Fuzzing) can be found inside the +`./test/fuzz` directory. See [README.md](./test/fuzz/README.md) for details. + +Run: `cd test/fuzz && make fuzz-{PACKAGE-COMPONENT}` + +### Jepsen tests (ADVANCED) + +*NOTE: if you're just submitting your first PR, you won't need to touch these +most probably (99.9%)*. + +[Jepsen](http://jepsen.io/) tests are used to verify the +[linearizability](https://jepsen.io/consistency/models/linearizable) property +of the Tendermint consensus. They are located in a separate repository +-> . Please refer to its README for more +information. + +### RPC Testing + +**If you contribute to the RPC endpoints it's important to document your +changes in the [Openapi file](./rpc/openapi/openapi.yaml)**. + +To test your changes you must install `nodejs` and run: + +```bash +npm i -g dredd +make build-linux build-contract-tests-hooks +make contract-tests +``` + +**WARNING: these are currently broken due to +not supporting complete OpenAPI 3**. + +This command will popup a network and check every endpoint against what has +been documented. diff --git a/sei-tendermint/DOCKER/Dockerfile b/sei-tendermint/DOCKER/Dockerfile new file mode 100644 index 0000000000..a4792981dd --- /dev/null +++ b/sei-tendermint/DOCKER/Dockerfile @@ -0,0 +1,55 @@ +# stage 1 Generate Tendermint Binary +FROM golang:1.17-alpine as builder +RUN apk update && \ + apk upgrade && \ + apk --no-cache add make git +COPY / /tendermint +WORKDIR /tendermint +RUN make build-linux + +# stage 2 +FROM golang:1.17-alpine +LABEL maintainer="hello@tendermint.com" + +# Tendermint will be looking for the genesis file in /tendermint/config/genesis.json +# (unless you change `genesis_file` in config.toml). You can put your config.toml and +# private validator file into /tendermint/config. +# +# The /tendermint/data dir is used by tendermint to store state. +ENV TMHOME /tendermint + +# OS environment setup +# Set user right away for determinism, create directory for persistence and give our user ownership +# jq and curl used for extracting `pub_key` from private validator while +# deploying tendermint with Kubernetes. It is nice to have bash so the users +# could execute bash commands. +RUN apk update && \ + apk upgrade && \ + apk --no-cache add curl jq bash && \ + addgroup tmuser && \ + adduser -S -G tmuser tmuser -h "$TMHOME" + +# Run the container with tmuser by default. (UID=100, GID=1000) +USER tmuser + +WORKDIR $TMHOME + +# p2p, rpc and prometheus port +EXPOSE 26656 26657 26660 + +STOPSIGNAL SIGTERM + +COPY --from=builder /tendermint/build/tendermint /usr/bin/tendermint + +# You can overwrite these before the first run to influence +# config.json and genesis.json. Additionally, you can override +# CMD to add parameters to `tendermint node`. +ENV PROXY_APP=kvstore MONIKER=dockernode CHAIN_ID=dockerchain + +COPY ./DOCKER/docker-entrypoint.sh /usr/local/bin/ + +ENTRYPOINT ["docker-entrypoint.sh"] +CMD ["start"] + +# Expose the data directory as a volume since there's mutable state in there +VOLUME [ "$TMHOME" ] diff --git a/sei-tendermint/DOCKER/README.md b/sei-tendermint/DOCKER/README.md new file mode 100644 index 0000000000..4aa868e7af --- /dev/null +++ b/sei-tendermint/DOCKER/README.md @@ -0,0 +1,56 @@ +# Docker + +## Supported tags and respective `Dockerfile` links + +DockerHub tags for official releases are [here](https://hub.docker.com/r/tendermint/tendermint/tags/). The "latest" tag will always point to the highest version number. + +Official releases can be found [here](https://github.com/tendermint/tendermint/releases). + +The Dockerfile for tendermint is not expected to change in the near future. The master file used for all builds can be found [here](https://raw.githubusercontent.com/tendermint/tendermint/master/DOCKER/Dockerfile). + +Respective versioned files can be found at `https://raw.githubusercontent.com/tendermint/tendermint/vX.XX.XX/DOCKER/Dockerfile` (replace the Xs with the version number). + +## Quick reference + +- **Where to get help:** +- **Where to file issues:** +- **Supported Docker versions:** [the latest release](https://github.com/moby/moby/releases) (down to 1.6 on a best-effort basis) + +## Tendermint + +Tendermint Core is Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine, written in any programming language, and securely replicates it on many machines. + +For more background, see the [the docs](https://docs.tendermint.com/master/introduction/#quick-start). + +To get started developing applications, see the [application developers guide](https://docs.tendermint.com/master/introduction/quick-start.html). + +## How to use this image + +### Start one instance of the Tendermint core with the `kvstore` app + +A quick example of a built-in app and Tendermint core in one container. + +```sh +docker run -it --rm -v "/tmp:/tendermint" tendermint/tendermint init validator +docker run -it --rm -v "/tmp:/tendermint" tendermint/tendermint start --proxy-app=kvstore +``` + +## Local cluster + +To run a 4-node network, see the `Makefile` in the root of [the repo](https://github.com/tendermint/tendermint/blob/master/Makefile) and run: + +```sh +make build-linux +make build-docker-localnode +make localnet-start +``` + +Note that this will build and use a different image than the ones provided here. + +## License + +- Tendermint's license is [Apache 2.0](https://github.com/tendermint/tendermint/blob/master/LICENSE). + +## Contributing + +Contributions are most welcome! See the [contributing file](https://github.com/tendermint/tendermint/blob/master/CONTRIBUTING.md) for more information. diff --git a/sei-tendermint/DOCKER/docker-entrypoint.sh b/sei-tendermint/DOCKER/docker-entrypoint.sh new file mode 100755 index 0000000000..e6442b4855 --- /dev/null +++ b/sei-tendermint/DOCKER/docker-entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/bash +set -e + +if [ ! -d "$TMHOME/config" ]; then + echo "Running tendermint init to create (default) configuration for docker run." + tendermint init validator + + sed -i \ + -e "s/^proxy-app\s*=.*/proxy-app = \"$PROXY_APP\"/" \ + -e "s/^moniker\s*=.*/moniker = \"$MONIKER\"/" \ + -e 's/^addr-book-strict\s*=.*/addr-book-strict = false/' \ + -e 's/^timeout-commit\s*=.*/timeout-commit = "500ms"/' \ + -e 's/^index-all-tags\s*=.*/index-all-tags = true/' \ + -e 's,^laddr = "tcp://127.0.0.1:26657",laddr = "tcp://0.0.0.0:26657",' \ + -e 's/^prometheus\s*=.*/prometheus = true/' \ + "$TMHOME/config/config.toml" + + jq ".chain_id = \"$CHAIN_ID\" | .consensus_params.block.time_iota_ms = \"500\"" \ + "$TMHOME/config/genesis.json" > "$TMHOME/config/genesis.json.new" + mv "$TMHOME/config/genesis.json.new" "$TMHOME/config/genesis.json" +fi + +exec tendermint "$@" diff --git a/sei-tendermint/LICENSE b/sei-tendermint/LICENSE new file mode 100644 index 0000000000..bb66bb3507 --- /dev/null +++ b/sei-tendermint/LICENSE @@ -0,0 +1,204 @@ +Tendermint Core +License: Apache2.0 + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2016 All in Bits, Inc + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/sei-tendermint/Makefile b/sei-tendermint/Makefile new file mode 100644 index 0000000000..1c2b8f7dd4 --- /dev/null +++ b/sei-tendermint/Makefile @@ -0,0 +1,350 @@ +#!/usr/bin/make -f + +BUILDDIR ?= $(CURDIR)/build + +BUILD_TAGS?=tendermint + +# If building a release, please checkout the version tag to get the correct version setting +ifneq ($(shell git symbolic-ref -q --short HEAD),) +VERSION := unreleased-$(shell git symbolic-ref -q --short HEAD)-$(shell git rev-parse HEAD) +else +VERSION := $(shell git describe) +endif + +LD_FLAGS = -X github.com/tendermint/tendermint/version.TMVersion=$(VERSION) +BUILD_FLAGS = -mod=readonly -ldflags "$(LD_FLAGS)" +CGO_ENABLED ?= 0 + +# handle nostrip +ifeq (,$(findstring nostrip,$(TENDERMINT_BUILD_OPTIONS))) + BUILD_FLAGS += -trimpath + LD_FLAGS += -s -w +endif + +# handle race +ifeq (race,$(findstring race,$(TENDERMINT_BUILD_OPTIONS))) + CGO_ENABLED=1 + BUILD_FLAGS += -race +endif + +# handle cleveldb +ifeq (cleveldb,$(findstring cleveldb,$(TENDERMINT_BUILD_OPTIONS))) + CGO_ENABLED=1 + BUILD_TAGS += cleveldb +endif + +# handle badgerdb +ifeq (badgerdb,$(findstring badgerdb,$(TENDERMINT_BUILD_OPTIONS))) + BUILD_TAGS += badgerdb +endif + +# handle rocksdb +ifeq (rocksdb,$(findstring rocksdb,$(TENDERMINT_BUILD_OPTIONS))) + CGO_ENABLED=1 + BUILD_TAGS += rocksdb +endif + +# handle boltdb +ifeq (boltdb,$(findstring boltdb,$(TENDERMINT_BUILD_OPTIONS))) + BUILD_TAGS += boltdb +endif + +# allow users to pass additional flags via the conventional LDFLAGS variable +LD_FLAGS += $(LDFLAGS) + +all: check build test install +.PHONY: all + +include test/Makefile + +############################################################################### +### Build Tendermint ### +############################################################################### + +build: $(BUILDDIR)/ + CGO_ENABLED=$(CGO_ENABLED) go build $(BUILD_FLAGS) -tags '$(BUILD_TAGS)' -o $(BUILDDIR)/ ./cmd/tendermint/ +.PHONY: build + +install: + CGO_ENABLED=$(CGO_ENABLED) go install $(BUILD_FLAGS) -tags $(BUILD_TAGS) ./cmd/tendermint +.PHONY: install + +$(BUILDDIR)/: + mkdir -p $@ + +############################################################################### +### Protobuf ### +############################################################################### + +check-proto-deps: +ifeq (,$(shell which protoc-gen-gogofaster)) + $(error "gogofaster plugin for protoc is required. Run 'go install github.com/gogo/protobuf/protoc-gen-gogofaster@latest' to install") +endif +.PHONY: check-proto-deps + +check-proto-format-deps: +ifeq (,$(shell which clang-format)) + $(error "clang-format is required for Protobuf formatting. See instructions for your platform on how to install it.") +endif +.PHONY: check-proto-format-deps + +proto-gen: check-proto-deps + @echo "Generating Protobuf files" + @go run github.com/bufbuild/buf/cmd/buf generate + @mv ./proto/tendermint/abci/types.pb.go ./abci/types/ +.PHONY: proto-gen + +# These targets are provided for convenience and are intended for local +# execution only. +proto-lint: check-proto-deps + @echo "Linting Protobuf files" + @go run github.com/bufbuild/buf/cmd/buf lint +.PHONY: proto-lint + +proto-format: check-proto-format-deps + @echo "Formatting Protobuf files" + @find . -name '*.proto' -path "./proto/*" -exec clang-format -i {} \; +.PHONY: proto-format + +proto-check-breaking: check-proto-deps + @echo "Checking for breaking changes in Protobuf files against local branch" + @echo "Note: This is only useful if your changes have not yet been committed." + @echo " Otherwise read up on buf's \"breaking\" command usage:" + @echo " https://docs.buf.build/breaking/usage" + @go run github.com/bufbuild/buf/cmd/buf breaking --against ".git" +.PHONY: proto-check-breaking + +############################################################################### +### Build ABCI ### +############################################################################### + +build_abci: + @go build -mod=readonly -i ./abci/cmd/... +.PHONY: build_abci + +install_abci: + @go install -mod=readonly ./abci/cmd/... +.PHONY: install_abci + +############################################################################### +### Privval Server ### +############################################################################### + +build_privval_server: + @go build -mod=readonly -o $(BUILDDIR)/ -i ./cmd/priv_val_server/... +.PHONY: build_privval_server + +generate_test_cert: + # generate self signing ceritificate authority + @certstrap init --common-name "root CA" --expires "20 years" + # generate server cerificate + @certstrap request-cert -cn server -ip 127.0.0.1 + # self-sign server cerificate with rootCA + @certstrap sign server --CA "root CA" + # generate client cerificate + @certstrap request-cert -cn client -ip 127.0.0.1 + # self-sign client cerificate with rootCA + @certstrap sign client --CA "root CA" +.PHONY: generate_test_cert + +############################################################################### +### Distribution ### +############################################################################### + +# dist builds binaries for all platforms and packages them for distribution +# TODO add abci to these scripts +dist: + @BUILD_TAGS=$(BUILD_TAGS) sh -c "'$(CURDIR)/scripts/dist.sh'" +.PHONY: dist + +go-mod-cache: go.sum + @echo "--> Download go modules to local cache" + @go mod download +.PHONY: go-mod-cache + +go.sum: go.mod + @echo "--> Ensure dependencies have not been modified" + @go mod verify + @go mod tidy + +draw_deps: + @# requires brew install graphviz or apt-get install graphviz + go install github.com/RobotsAndPencils/goviz@latest + @goviz -i github.com/tendermint/tendermint/cmd/tendermint -d 3 | dot -Tpng -o dependency-graph.png +.PHONY: draw_deps + +get_deps_bin_size: + @# Copy of build recipe with additional flags to perform binary size analysis + $(eval $(shell go build -work -a $(BUILD_FLAGS) -tags $(BUILD_TAGS) -o $(BUILDDIR)/ ./cmd/tendermint/ 2>&1)) + @find $(WORK) -type f -name "*.a" | xargs -I{} du -hxs "{}" | sort -rh | sed -e s:${WORK}/::g > deps_bin_size.log + @echo "Results can be found here: $(CURDIR)/deps_bin_size.log" +.PHONY: get_deps_bin_size + +############################################################################### +### Libs ### +############################################################################### + +# generates certificates for TLS testing in remotedb and RPC server +gen_certs: clean_certs + certstrap init --common-name "tendermint.com" --passphrase "" + certstrap request-cert --common-name "server" -ip "127.0.0.1" --passphrase "" + certstrap sign "server" --CA "tendermint.com" --passphrase "" + mv out/server.crt rpc/jsonrpc/server/test.crt + mv out/server.key rpc/jsonrpc/server/test.key + rm -rf out +.PHONY: gen_certs + +# deletes generated certificates +clean_certs: + rm -f rpc/jsonrpc/server/test.crt + rm -f rpc/jsonrpc/server/test.key +.PHONY: clean_certs + +############################################################################### +### Formatting, linting, and vetting ### +############################################################################### + +format: + find . -name '*.go' -type f -not -path "*.git*" -not -name '*.pb.go' -not -name '*pb_test.go' | xargs gofmt -w -s + find . -name '*.go' -type f -not -path "*.git*" -not -name '*.pb.go' -not -name '*pb_test.go' | xargs goimports -w -local github.com/tendermint/tendermint +.PHONY: format + +lint: + @echo "--> Running linter" + go run github.com/golangci/golangci-lint/cmd/golangci-lint run +.PHONY: lint + +DESTINATION = ./index.html.md + +############################################################################### +### Documentation ### +############################################################################### +# todo remove once tendermint.com DNS is solved +build-docs: + @cd docs && \ + while read -r branch path_prefix; do \ + ( git checkout $${branch} && npm ci --quiet && \ + VUEPRESS_BASE="/$${path_prefix}/" npm run build --quiet ) ; \ + mkdir -p ~/output/$${path_prefix} ; \ + cp -r .vuepress/dist/* ~/output/$${path_prefix}/ ; \ + cp ~/output/$${path_prefix}/index.html ~/output ; \ + done < versions ; +.PHONY: build-docs + +############################################################################### +### Docker image ### +############################################################################### + +build-docker: + docker build --label=tendermint --tag="tendermint/tendermint" -f DOCKER/Dockerfile . +.PHONY: build-docker + + +############################################################################### +### Mocks ### +############################################################################### + +mockery: + go generate -run="./scripts/mockery_generate.sh" ./... +.PHONY: mockery + +############################################################################### +### Metrics ### +############################################################################### + +metrics: testdata-metrics + go generate -run="scripts/metricsgen" ./... +.PHONY: metrics + + # By convention, the go tool ignores subdirectories of directories named + # 'testdata'. This command invokes the generate command on the folder directly + # to avoid this. +testdata-metrics: + ls ./scripts/metricsgen/testdata | xargs -I{} go generate -run="scripts/metricsgen" ./scripts/metricsgen/testdata/{} +.PHONY: testdata-metrics + +############################################################################### +### Local testnet using docker ### +############################################################################### + +# Build linux binary on other platforms +build-linux: + GOOS=linux GOARCH=amd64 $(MAKE) build +.PHONY: build-linux + +build-docker-localnode: + @cd networks/local && make +.PHONY: build-docker-localnode + +# Runs `make build TENDERMINT_BUILD_OPTIONS=cleveldb` from within an Amazon +# Linux (v2)-based Docker build container in order to build an Amazon +# Linux-compatible binary. Produces a compatible binary at ./build/tendermint +build_c-amazonlinux: + $(MAKE) -C ./DOCKER build_amazonlinux_buildimage + docker run --rm -it -v `pwd`:/tendermint tendermint/tendermint:build_c-amazonlinux +.PHONY: build_c-amazonlinux + +# Run a 4-node testnet locally +localnet-start: localnet-stop build-docker-localnode + @if ! [ -f build/node0/config/genesis.json ]; then docker run --rm -v $(CURDIR)/build:/tendermint:Z tendermint/localnode testnet --config /etc/tendermint/config-template.toml --o . --starting-ip-address 192.167.10.2; fi + docker-compose up +.PHONY: localnet-start + +# Stop testnet +localnet-stop: + docker-compose down +.PHONY: localnet-stop + +# Build hooks for dredd, to skip or add information on some steps +build-contract-tests-hooks: +ifeq ($(OS),Windows_NT) + go build -mod=readonly $(BUILD_FLAGS) -o build/contract_tests.exe ./cmd/contract_tests +else + go build -mod=readonly $(BUILD_FLAGS) -o build/contract_tests ./cmd/contract_tests +endif +.PHONY: build-contract-tests-hooks + +# Run a nodejs tool to test endpoints against a localnet +# The command takes care of starting and stopping the network +# prerequisits: build-contract-tests-hooks build-linux +# the two build commands were not added to let this command run from generic containers or machines. +# The binaries should be built beforehand +contract-tests: + dredd +.PHONY: contract-tests + +clean: + rm -rf $(CURDIR)/artifacts/ $(BUILDDIR)/ + +build-reproducible: + docker rm latest-build || true + docker run --volume=$(CURDIR):/sources:ro \ + --env TARGET_PLATFORMS='linux/amd64 linux/arm64 darwin/amd64 windows/amd64' \ + --env APP=tendermint \ + --env COMMIT=$(shell git rev-parse --short=8 HEAD) \ + --env VERSION=$(shell git describe --tags) \ + --name latest-build cosmossdk/rbuilder:latest + docker cp -a latest-build:/home/builder/artifacts/ $(CURDIR)/ +.PHONY: build-reproducible + +# Implements test splitting and running. This is pulled directly from +# the github action workflows for better local reproducibility. + +GO_TEST_FILES != find $(CURDIR) -name "*_test.go" + +# default to four splits by default +NUM_SPLIT ?= 4 + +$(BUILDDIR): + mkdir -p $@ + +# The format statement filters out all packages that don't have tests. +# Note we need to check for both in-package tests (.TestGoFiles) and +# out-of-package tests (.XTestGoFiles). +$(BUILDDIR)/packages.txt:$(GO_TEST_FILES) $(BUILDDIR) + go list -f "{{ if (or .TestGoFiles .XTestGoFiles) }}{{ .ImportPath }}{{ end }}" ./... | sort > $@ + +split-test-packages:$(BUILDDIR)/packages.txt + split -d -n l/$(NUM_SPLIT) $< $<. +test-group-%:split-test-packages + cat $(BUILDDIR)/packages.txt.$* | xargs go test -mod=readonly -timeout=5m -race -coverprofile=$(BUILDDIR)/$*.profile.out diff --git a/sei-tendermint/README.md b/sei-tendermint/README.md new file mode 100644 index 0000000000..3e375791f9 --- /dev/null +++ b/sei-tendermint/README.md @@ -0,0 +1,147 @@ +# Tendermint + +![banner](docs/tendermint-core-image.jpg) + +[Byzantine-Fault Tolerant](https://en.wikipedia.org/wiki/Byzantine_fault_tolerance) +[State Machine Replication](https://en.wikipedia.org/wiki/State_machine_replication). +Or [Blockchain](), for short. + +[![version](https://img.shields.io/github/tag/tendermint/tendermint.svg)](https://github.com/tendermint/tendermint/releases/latest) +[![API Reference](https://camo.githubusercontent.com/915b7be44ada53c290eb157634330494ebe3e30a/68747470733a2f2f676f646f632e6f72672f6769746875622e636f6d2f676f6c616e672f6764646f3f7374617475732e737667)](https://pkg.go.dev/github.com/tendermint/tendermint) +[![Go version](https://img.shields.io/badge/go-1.16-blue.svg)](https://github.com/moovweb/gvm) +[![Discord chat](https://img.shields.io/discord/669268347736686612.svg)](https://discord.gg/cosmosnetwork) +[![license](https://img.shields.io/github/license/tendermint/tendermint.svg)](https://github.com/tendermint/tendermint/blob/master/LICENSE) +[![tendermint/tendermint](https://tokei.rs/b1/github/tendermint/tendermint?category=lines)](https://github.com/tendermint/tendermint) +[![Sourcegraph](https://sourcegraph.com/github.com/tendermint/tendermint/-/badge.svg)](https://sourcegraph.com/github.com/tendermint/tendermint?badge) + +| Branch | Tests | Coverage | Linting | +|--------|--------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------| +| master | ![Tests](https://github.com/tendermint/tendermint/workflows/Tests/badge.svg?branch=master) | [![codecov](https://codecov.io/gh/tendermint/tendermint/branch/master/graph/badge.svg)](https://codecov.io/gh/tendermint/tendermint) | ![Lint](https://github.com/tendermint/tendermint/workflows/Lint/badge.svg) | + +Tendermint Core is a Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine - written in any programming language - and securely replicates it on many machines. + +For protocol details, refer to the [Tendermint Specification](./spec/README.md). + +For detailed analysis of the consensus protocol, including safety and liveness proofs, +read our paper, "[The latest gossip on BFT consensus](https://arxiv.org/abs/1807.04938)". + +## Documentation + +Complete documentation can be found on the [website](https://docs.tendermint.com/). + +## Releases + +Please do not depend on master as your production branch. Use [releases](https://github.com/tendermint/tendermint/releases) instead. + +Tendermint has been in the production of private and public environments, most notably the blockchains of the Cosmos Network. we haven't released v1.0 yet since we are making breaking changes to the protocol and the APIs. +See below for more details about [versioning](#versioning). + +In any case, if you intend to run Tendermint in production, we're happy to help. You can +contact us [over email](mailto:hello@interchain.io) or [join the chat](https://discord.gg/cosmosnetwork). + +More on how releases are conducted can be found [here](./RELEASES.md). + +## Security + +To report a security vulnerability, see our [bug bounty +program](https://hackerone.com/cosmos). +For examples of the kinds of bugs we're looking for, see [our security policy](SECURITY.md). + +We also maintain a dedicated mailing list for security updates. We will only ever use this mailing list +to notify you of vulnerabilities and fixes in Tendermint Core. You can subscribe [here](http://eepurl.com/gZ5hQD). + +## Minimum requirements + +| Requirement | Notes | +|-------------|------------------| +| Go version | Go1.17 or higher | + +### Install + +See the [install instructions](./docs/introduction/install.md). + +### Quick Start + +- [Single node](./docs/introduction/quick-start.md) +- [Local cluster using docker-compose](./docs/tools/docker-compose.md) +- [Remote cluster using Terraform and Ansible](./docs/tools/terraform-and-ansible.md) + +## Contributing + +Please abide by the [Code of Conduct](CODE_OF_CONDUCT.md) in all interactions. + +Before contributing to the project, please take a look at the [contributing guidelines](CONTRIBUTING.md) +and the [style guide](STYLE_GUIDE.md). You may also find it helpful to read the +[specifications](./spec/README.md), +and familiarize yourself with our +[Architectural Decision Records (ADRs)](./docs/architecture/README.md) and [Request For Comments (RFCs)](./docs/rfc/README.md). + +## Versioning + +### Semantic Versioning + +Tendermint uses [Semantic Versioning](http://semver.org/) to determine when and how the version changes. +According to SemVer, anything in the public API can change at any time before version 1.0.0 + +To provide some stability to users of 0.X.X versions of Tendermint, the MINOR version is used +to signal breaking changes across Tendermint's API. This API includes all +publicly exposed types, functions, and methods in non-internal Go packages as well as +the types and methods accessible via the Tendermint RPC interface. + +Breaking changes to these public APIs will be documented in the CHANGELOG. + +### Upgrades + +In an effort to avoid accumulating technical debt prior to 1.0.0, +we do not guarantee that breaking changes (ie. bumps in the MINOR version) +will work with existing Tendermint blockchains. In these cases you will +have to start a new blockchain, or write something custom to get the old +data into the new chain. However, any bump in the PATCH version should be +compatible with existing blockchain histories. + + +For more information on upgrading, see [UPGRADING.md](./UPGRADING.md). + +### Supported Versions + +Because we are a small core team, we only ship patch updates, including security updates, +to the most recent minor release and the second-most recent minor release. Consequently, +we strongly recommend keeping Tendermint up-to-date. Upgrading instructions can be found +in [UPGRADING.md](./UPGRADING.md). + +## Resources + +### Roadmap + +We keep a public up-to-date version of our roadmap [here](./docs/roadmap/roadmap.md) + +### Libraries + +- [Cosmos SDK](http://github.com/cosmos/cosmos-sdk); A framework for building applications in Golang +- [Tendermint in Rust](https://github.com/informalsystems/tendermint-rs) +- [ABCI Tower](https://github.com/penumbra-zone/tower-abci) + +### Applications + +- [Cosmos Hub](https://hub.cosmos.network/) +- [Terra](https://www.terra.money/) +- [Celestia](https://celestia.org/) +- [Anoma](https://anoma.network/) +- [Vocdoni](https://docs.vocdoni.io/) + +### Research + +- [The latest gossip on BFT consensus](https://arxiv.org/abs/1807.04938) +- [Master's Thesis on Tendermint](https://atrium.lib.uoguelph.ca/xmlui/handle/10214/9769) +- [Original Whitepaper: "Tendermint: Consensus Without Mining"](https://tendermint.com/static/docs/tendermint.pdf) +- [Tendermint Core Blog](https://medium.com/tendermint/tagged/tendermint-core) +- [Cosmos Blog](https://blog.cosmos.network/tendermint/home) + +## Join us! + +Tendermint Core is maintained by [Interchain GmbH](https://interchain.berlin). +If you'd like to work full-time on Tendermint Core, [we're hiring](https://interchain-gmbh.breezy.hr/)! + +Funding for Tendermint Core development comes primarily from the [Interchain Foundation](https://interchain.io), +a Swiss non-profit. The Tendermint trademark is owned by [Tendermint Inc.](https://tendermint.com), the for-profit entity + that also maintains [tendermint.com](https://tendermint.com). diff --git a/sei-tendermint/RELEASES.md b/sei-tendermint/RELEASES.md new file mode 100644 index 0000000000..f3bfd20d5c --- /dev/null +++ b/sei-tendermint/RELEASES.md @@ -0,0 +1,207 @@ +# Releases + +Tendermint uses [semantic versioning](https://semver.org/) with each release following +a `vX.Y.Z` format. The `master` branch is used for active development and thus it's +advisable not to build against it. + +The latest changes are always initially merged into `master`. +Releases are specified using tags and are built from long-lived "backport" branches +that are cut from `master` when the release process begins. +Each release "line" (e.g. 0.34 or 0.33) has its own long-lived backport branch, +and the backport branches have names like `v0.34.x` or `v0.33.x` +(literally, `x`; it is not a placeholder in this case). Tendermint only +maintains the last two releases at a time (the oldest release is predominantly +just security patches). + +## Backporting + +As non-breaking changes land on `master`, they should also be backported +to these backport branches. + +We use Mergify's [backport feature](https://mergify.io/features/backports) to automatically backport +to the needed branch. There should be a label for any backport branch that you'll be targeting. +To notify the bot to backport a pull request, mark the pull request with the label corresponding +to the correct backport branch. For example, to backport to v0.35.x, add the label `S:backport-to-v0.35.x`. +Once the original pull request is merged, the bot will try to cherry-pick the pull request +to the backport branch. If the bot fails to backport, it will open a pull request. +The author of the original pull request is responsible for solving the conflicts and +merging the pull request. + +### Creating a backport branch + +If this is the first release candidate for a major release, you get to have the +honor of creating the backport branch! + +Note that, after creating the backport branch, you'll also need to update the +tags on `master` so that `go mod` is able to order the branches correctly. You +should tag `master` with a "dev" tag that is "greater than" the backport +branches tags. See [#6072](https://github.com/tendermint/tendermint/pull/6072) +for more context. + +In the following example, we'll assume that we're making a backport branch for +the 0.35.x line. + +1. Start on `master` + +2. Create and push the backport branch: + ```sh + git checkout -b v0.35.x + git push origin v0.35.x + ``` + +3. Create a PR to update the documentation directory for the backport branch. + + We only maintain RFC and ADR documents on master, to avoid confusion. + In addition, we rewrite Markdown URLs pointing to master to point to the + backport branch, so that generated documentation will link to the correct + versions of files elsewhere in the repository. For context on the latter, + see https://github.com/tendermint/tendermint/issues/7675. + + To prepare the PR: + ```sh + # Remove the RFC and ADR documents from the backport. + # We only maintain these on master to avoid confusion. + git rm -r docs/rfc docs/architecture + + # Update absolute links to point to the backport. + go run ./scripts/linkpatch -recur -target v0.35.x -skip-path docs/DOCS_README.md,docs/README.md docs + + # Create and push the PR. + git checkout -b update-docs-v035x + git commit -m "Update docs for v0.35.x backport branch." docs + git push -u origin update-docs-v035x + ``` + + Be sure to merge this PR before making other changes on the newly-created + backport branch. + +After doing these steps, go back to `master` and do the following: + +1. Tag `master` as the dev branch for the _next_ major release and push it up to GitHub. + For example: + ```sh + git tag -a v0.36.0-dev -m "Development base for Tendermint v0.36." + git push origin v0.36.0-dev + ``` + +2. Create a new workflow to run e2e nightlies for the new backport branch. + (See [e2e-nightly-master.yml][e2e] for an example.) + +3. Add a new section to the Mergify config (`.github/mergify.yml`) to enable the + backport bot to work on this branch, and add a corresponding `S:backport-to-v0.35.x` + [label](https://github.com/tendermint/tendermint/labels) so the bot can be triggered. + +4. Add a new section to the Dependabot config (`.github/dependabot.yml`) to + enable automatic update of Go dependencies on this branch. Copy and edit one + of the existing branch configurations to set the correct `target-branch`. + +[e2e]: https://github.com/tendermint/tendermint/blob/master/.github/workflows/e2e-nightly-master.yml + +## Release candidates + +Before creating an official release, especially a major release, we may want to create a +release candidate (RC) for our friends and partners to test out. We use git tags to +create RCs, and we build them off of backport branches. + +Tags for RCs should follow the "standard" release naming conventions, with `-rcX` at the end +(for example, `v0.35.0-rc0`). + +(Note that branches and tags _cannot_ have the same names, so it's important that these branches +have distinct names from the tags/release names.) + +If this is the first RC for a major release, you'll have to make a new backport branch (see above). +Otherwise: + +1. Start from the backport branch (e.g. `v0.35.x`). +2. Run the integration tests and the e2e nightlies + (which can be triggered from the Github UI; + e.g., https://github.com/tendermint/tendermint/actions/workflows/e2e-nightly-34x.yml). +3. Prepare the changelog: + - Move the changes included in `CHANGELOG_PENDING.md` into `CHANGELOG.md`. Each RC should have + it's own changelog section. These will be squashed when the final candidate is released. + - Run `python ./scripts/linkify_changelog.py CHANGELOG.md` to add links for + all PRs + - Ensure that `UPGRADING.md` is up-to-date and includes notes on any breaking changes + or other upgrading flows. + - Bump TMVersionDefault version in `version.go` + - Bump P2P and block protocol versions in `version.go`, if necessary. + Check the changelog for breaking changes in these components. + - Bump ABCI protocol version in `version.go`, if necessary +4. Open a PR with these changes against the backport branch. +5. Once these changes have landed on the backport branch, be sure to pull them back down locally. +6. Once you have the changes locally, create the new tag, specifying a name and a tag "message": + `git tag -a v0.35.0-rc0 -m "Release Candidate v0.35.0-rc0` +7. Push the tag back up to origin: + `git push origin v0.35.0-rc0` + Now the tag should be available on the repo's releases page. +8. Future RCs will continue to be built off of this branch. + +Note that this process should only be used for "true" RCs-- +release candidates that, if successful, will be the next release. +For more experimental "RCs," create a new, short-lived branch and tag that instead. + +## Major release + +This major release process assumes that this release was preceded by release candidates. +If there were no release candidates, begin by creating a backport branch, as described above. + +1. Start on the backport branch (e.g. `v0.35.x`) +2. Run integration tests (`make test_integrations`) and the e2e nightlies. +3. Prepare the release: + - "Squash" changes from the changelog entries for the RCs into a single entry, + and add all changes included in `CHANGELOG_PENDING.md`. + (Squashing includes both combining all entries, as well as removing or simplifying + any intra-RC changes. It may also help to alphabetize the entries by package name.) + - Run `python ./scripts/linkify_changelog.py CHANGELOG.md` to add links for + all PRs + - Ensure that `UPGRADING.md` is up-to-date and includes notes on any breaking changes + or other upgrading flows. + - Bump TMVersionDefault version in `version.go` + - Bump P2P and block protocol versions in `version.go`, if necessary + - Bump ABCI protocol version in `version.go`, if necessary +4. Open a PR with these changes against the backport branch. +5. Once these changes are on the backport branch, push a tag with prepared release details. + This will trigger the actual release `v0.35.0`. + - `git tag -a v0.35.0 -m 'Release v0.35.0'` + - `git push origin v0.35.0` +6. Make sure that `master` is updated with the latest `CHANGELOG.md`, `CHANGELOG_PENDING.md`, and `UPGRADING.md`. +7. Add the release to the documentation site generator config (see + [DOCS_README.md](./docs/DOCS_README.md) for more details). In summary: + - Start on branch `master`. + - Add a new line at the bottom of [`docs/versions`](./docs/versions) to + ensure the newest release is the default for the landing page. + - Add a new entry to `themeConfig.versions` in + [`docs/.vuepress/config.js`](./docs/.vuepress/config.js) to include the + release in the dropdown versions menu. + - Commit these changes to `master` and backport them into the backport + branch for this release. + +## Minor release (point releases) + +Minor releases are done differently from major releases: They are built off of +long-lived backport branches, rather than from master. As non-breaking changes +land on `master`, they should also be backported into these backport branches. + +Minor releases don't have release candidates by default, although any tricky +changes may merit a release candidate. + +To create a minor release: + +1. Checkout the long-lived backport branch: `git checkout v0.35.x` +2. Run integration tests (`make test_integrations`) and the nightlies. +3. Check out a new branch and prepare the release: + - Copy `CHANGELOG_PENDING.md` to top of `CHANGELOG.md` + - Run `python ./scripts/linkify_changelog.py CHANGELOG.md` to add links for all issues + - Run `bash ./scripts/authors.sh` to get a list of authors since the latest release, and add the GitHub aliases of external contributors to the top of the CHANGELOG. To lookup an alias from an email, try `bash ./scripts/authors.sh ` + - Reset the `CHANGELOG_PENDING.md` + - Bump the TMDefaultVersion in `version.go` + - Bump the ABCI version number, if necessary. + (Note that ABCI follows semver, and that ABCI versions are the only versions + which can change during minor releases, and only field additions are valid minor changes.) +4. Open a PR with these changes that will land them back on `v0.35.x` +5. Once this change has landed on the backport branch, make sure to pull it locally, then push a tag. + - `git tag -a v0.35.1 -m 'Release v0.35.1'` + - `git push origin v0.35.1` +6. Create a pull request back to master with the CHANGELOG & version changes from the latest release. + - Remove all `R:minor` labels from the pull requests that were included in the release. + - Do not merge the backport branch into master. diff --git a/sei-tendermint/SECURITY.md b/sei-tendermint/SECURITY.md new file mode 100644 index 0000000000..133e993c41 --- /dev/null +++ b/sei-tendermint/SECURITY.md @@ -0,0 +1,158 @@ +# Security + +## Reporting a Bug + +As part of our [Coordinated Vulnerability Disclosure +Policy](https://tendermint.com/security), we operate a [bug +bounty](https://hackerone.com/cosmos). +See the policy for more details on submissions and rewards, and see "Example Vulnerabilities" (below) for examples of the kinds of bugs we're most interested in. + +### Guidelines + +We require that all researchers: + +* Use the bug bounty to disclose all vulnerabilities, and avoid posting vulnerability information in public places, including Github Issues, Discord channels, and Telegram groups +* Make every effort to avoid privacy violations, degradation of user experience, disruption to production systems (including but not limited to the Cosmos Hub), and destruction of data +* Keep any information about vulnerabilities that you’ve discovered confidential between yourself and the Tendermint Core engineering team until the issue has been resolved and disclosed +* Avoid posting personally identifiable information, privately or publicly + +If you follow these guidelines when reporting an issue to us, we commit to: + +* Not pursue or support any legal action related to your research on this vulnerability +* Work with you to understand, resolve and ultimately disclose the issue in a timely fashion + +## Disclosure Process + +Tendermint Core uses the following disclosure process: + +1. Once a security report is received, the Tendermint Core team works to verify the issue and confirm its severity level using CVSS. +2. The Tendermint Core team collaborates with the Gaia team to determine the vulnerability’s potential impact on the Cosmos Hub. +3. Patches are prepared for eligible releases of Tendermint in private repositories. See “Supported Releases” below for more information on which releases are considered eligible. +4. If it is determined that a CVE-ID is required, we request a CVE through a CVE Numbering Authority. +5. We notify the community that a security release is coming, to give users time to prepare their systems for the update. Notifications can include forum posts, tweets, and emails to partners and validators, including emails sent to the [Tendermint Security Mailing List](https://berlin.us4.list-manage.com/subscribe?u=431b35421ff7edcc77df5df10&id=3fe93307bc). +6. 24 hours following this notification, the fixes are applied publicly and new releases are issued. +7. Cosmos SDK and Gaia update their Tendermint Core dependencies to use these releases, and then themselves issue new releases. +8. Once releases are available for Tendermint Core, Cosmos SDK and Gaia, we notify the community, again, through the same channels as above. We also publish a Security Advisory on Github and publish the CVE, as long as neither the Security Advisory nor the CVE include any information on how to exploit these vulnerabilities beyond what information is already available in the patch itself. +9. Once the community is notified, we will pay out any relevant bug bounties to submitters. +10. One week after the releases go out, we will publish a post with further details on the vulnerability as well as our response to it. + +This process can take some time. Every effort will be made to handle the bug in as timely a manner as possible, however it's important that we follow the process described above to ensure that disclosures are handled consistently and to keep Tendermint Core and its downstream dependent projects--including but not limited to Gaia and the Cosmos Hub--as secure as possible. + +### Example Timeline + +The following is an example timeline for the triage and response. The required roles and team members are described in parentheses after each task; however, multiple people can play each role and each person may play multiple roles. + +#### 24+ Hours Before Release Time + +1. Request CVE number (ADMIN) +2. Gather emails and other contact info for validators (COMMS LEAD) +3. Create patches in a private security repo, and ensure that PRs are open targeting all relevant release branches (TENDERMINT ENG, TENDERMINT LEAD) +4. Test fixes on a testnet (TENDERMINT ENG, COSMOS SDK ENG) +5. Write “Security Advisory” for forum (TENDERMINT LEAD) + +#### 24 Hours Before Release Time + +1. Post “Security Advisory” pre-notification on forum (TENDERMINT LEAD) +2. Post Tweet linking to forum post (COMMS LEAD) +3. Announce security advisory/link to post in various other social channels (Telegram, Discord) (COMMS LEAD) +4. Send emails to validators or other users (PARTNERSHIPS LEAD) + +#### Release Time + +1. Cut Tendermint releases for eligible versions (TENDERMINT ENG, TENDERMINT LEAD) +2. Cut Cosmos SDK release for eligible versions (COSMOS ENG) +3. Cut Gaia release for eligible versions (GAIA ENG) +4. Post “Security releases” on forum (TENDERMINT LEAD) +5. Post new Tweet linking to forum post (COMMS LEAD) +6. Remind everyone via social channels (Telegram, Discord) that the release is out (COMMS LEAD) +7. Send emails to validators or other users (COMMS LEAD) +8. Publish Security Advisory and CVE, if CVE has no sensitive information (ADMIN) + +#### After Release Time + +1. Write forum post with exploit details (TENDERMINT LEAD) +2. Approve pay-out on HackerOne for submitter (ADMIN) + +#### 7 Days After Release Time + +1. Publish CVE if it has not yet been published (ADMIN) +2. Publish forum post with exploit details (TENDERMINT ENG, TENDERMINT LEAD) + +## Supported Releases + +The Tendermint Core team commits to releasing security patch releases for both the latest minor release as well for the major/minor release that the Cosmos Hub is running. + +If you are running older versions of Tendermint Core, we encourage you to upgrade at your earliest opportunity so that you can receive security patches directly from the Tendermint repo. While you are welcome to backport security patches to older versions for your own use, we will not publish or promote these backports. + +## Scope + +The full scope of our bug bounty program is outlined on our [Hacker One program page](https://hackerone.com/cosmos). Please also note that, in the interest of the safety of our users and staff, a few things are explicitly excluded from scope: + +* Any third-party services +* Findings from physical testing, such as office access +* Findings derived from social engineering (e.g., phishing) + +## Example Vulnerabilities + +The following is a list of examples of the kinds of vulnerabilities that we’re most interested in. It is not exhaustive: there are other kinds of issues we may also be interested in! + +### Specification + +* Conceptual flaws +* Ambiguities, inconsistencies, or incorrect statements +* Mis-match between specification and implementation of any component + +### Consensus + +Assuming less than 1/3 of the voting power is Byzantine (malicious): + +* Validation of blockchain data structures, including blocks, block parts, votes, and so on +* Execution of blocks +* Validator set changes +* Proposer round robin +* Two nodes committing conflicting blocks for the same height (safety failure) +* A correct node signing conflicting votes +* A node halting (liveness failure) +* Syncing new and old nodes + +Assuming more than 1/3 the voting power is Byzantine: + +* Attacks that go unpunished (unhandled evidence) + +### Networking + +* Authenticated encryption (MITM, information leakage) +* Eclipse attacks +* Sybil attacks +* Long-range attacks +* Denial-of-Service + +### RPC + +* Write-access to anything besides sending transactions +* Denial-of-Service +* Leakage of secrets + +### Denial-of-Service + +Attacks may come through the P2P network or the RPC layer: + +* Amplification attacks +* Resource abuse +* Deadlocks and race conditions + +### Libraries + +* Serialization +* Reading/Writing files and databases + +### Cryptography + +* Elliptic curves for validator signatures +* Hash algorithms and Merkle trees for block validation +* Authenticated encryption for P2P connections + +### Light Client + +* Core verification +* Bisection/sequential algorithms diff --git a/sei-tendermint/STYLE_GUIDE.md b/sei-tendermint/STYLE_GUIDE.md new file mode 100644 index 0000000000..98e81d7235 --- /dev/null +++ b/sei-tendermint/STYLE_GUIDE.md @@ -0,0 +1,162 @@ +# Go Coding Style Guide + +In order to keep our code looking good with lots of programmers working on it, it helps to have a "style guide", so all +the code generally looks quite similar. This doesn't mean there is only one "right way" to write code, or even that this +standard is better than your style. But if we agree to a number of stylistic practices, it makes it much easier to read +and modify new code. Please feel free to make suggestions if there's something you would like to add or modify. + +We expect all contributors to be familiar with [Effective Go](https://golang.org/doc/effective_go.html) +(and it's recommended reading for all Go programmers anyways). Additionally, we generally agree with the suggestions + in [Uber's style guide](https://github.com/uber-go/guide/blob/master/style.md) and use that as a starting point. + + +## Code Structure + +Perhaps more key for code readability than good commenting is having the right structure. As a rule of thumb, try to write +in a logical order of importance, taking a little time to think how to order and divide the code such that someone could +scroll down and understand the functionality of it just as well as you do. A loose example of such order would be: + +* Constants, global and package-level variables +* Main Struct +* Options (only if they are seen as critical to the struct else they should be placed in another file) +* Initialization / Start and stop of the service +* Msgs/Events +* Public Functions (In order of most important) +* Private/helper functions +* Auxiliary structs and function (can also be above private functions or in a separate file) + +## General + +* Use `gofmt` (or `goimport`) to format all code upon saving it. (If you use VIM, check out vim-go). +* Use a linter (see below) and generally try to keep the linter happy (where it makes sense). +* Think about documentation, and try to leave godoc comments, when it will help new developers. +* Every package should have a high level doc.go file to describe the purpose of that package, its main functions, and any other relevant information. +* `TODO` should not be used. If important enough should be recorded as an issue. +* `BUG` / `FIXME` should be used sparingly to guide future developers on some of the vulnerabilities of the code. +* `XXX` can be used in work-in-progress (prefixed with "WIP:" on github) branches but they must be removed before approving a PR. +* Applications (e.g. clis/servers) *should* panic on unexpected unrecoverable errors and print a stack trace. + +## Comments + +* Use a space after comment deliminter (ex. `// your comment`). +* Many comments are not sentences. These should begin with a lower case letter and end without a period. +* Conversely, sentences in comments should be sentenced-cased and end with a period. + +## Linters + +These must be applied to all (Go) repos. + +* [shellcheck](https://github.com/koalaman/shellcheck) +* [golangci-lint](https://github.com/golangci/golangci-lint) (covers all important linters) + * See the `.golangci.yml` file in each repo for linter configuration. + +## Various + +* Reserve "Save" and "Load" for long-running persistence operations. When parsing bytes, use "Encode" or "Decode". +* Maintain consistency across the codebase. +* Functions that return functions should have the suffix `Fn` +* Names should not [stutter](https://blog.golang.org/package-names). For example, a struct generally shouldn’t have + a field named after itself; e.g., this shouldn't occur: + +``` golang +type middleware struct { + middleware Middleware +} +``` + +* In comments, use "iff" to mean, "if and only if". +* Product names are capitalized, like "Tendermint", "Basecoin", "Protobuf", etc except in command lines: `tendermint --help` +* Acronyms are all capitalized, like "RPC", "gRPC", "API". "MyID", rather than "MyId". +* Prefer errors.New() instead of fmt.Errorf() unless you're actually using the format feature with arguments. + +## Importing Libraries + +Sometimes it's necessary to rename libraries to avoid naming collisions or ambiguity. + +* Use [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) +* Separate imports into blocks - one for the standard lib, one for external libs and one for application libs. +* Here are some common library labels for consistency: + * dbm "github.com/tendermint/tm-db" + * tmcmd "github.com/tendermint/tendermint/cmd/tendermint/commands" + * tmcfg "github.com/tendermint/tendermint/config/tendermint" + * tmtypes "github.com/tendermint/tendermint/types" +* Never use anonymous imports (the `.`), for example, `tmlibs/common` or anything else. +* When importing a pkg from the `tendermint/libs` directory, prefix the pkg alias with tm. + * tmbits "github.com/tendermint/tendermint/libs/bits" +* tip: Use the `_` library import to import a library for initialization effects (side effects) + +## Dependencies + +* Dependencies should be pinned by a release tag, or specific commit, to avoid breaking `go get` when external dependencies are updated. +* Refer to the [contributing](CONTRIBUTING.md) document for more details + +## Testing + +* The first rule of testing is: we add tests to our code +* The second rule of testing is: we add tests to our code +* For Golang testing: + * Make use of table driven testing where possible and not-cumbersome + * [Inspiration](https://dave.cheney.net/2013/06/09/writing-table-driven-tests-in-go) + * Make use of [assert](https://godoc.org/github.com/stretchr/testify/assert) and [require](https://godoc.org/github.com/stretchr/testify/require) +* When using mocks, it is recommended to use Testify [mock] ( + ) along with [Mockery](https://github.com/vektra/mockery) for autogeneration + +## Errors + +* Ensure that errors are concise, clear and traceable. +* Use stdlib errors package. +* For wrapping errors, use `fmt.Errorf()` with `%w`. +* Panic is appropriate when an internal invariant of a system is broken, while all other cases (in particular, + incorrect or invalid usage) should return errors. + +## Config + +* Currently the TOML filetype is being used for config files +* A good practice is to store per-user config files under `~/.[yourAppName]/config.toml` + +## CLI + +* When implementing a CLI use [Cobra](https://github.com/spf13/cobra) and [Viper](https://github.com/spf13/viper). +* Helper messages for commands and flags must be all lowercase. +* Instead of using pointer flags (eg. `FlagSet().StringVar`) use Viper to retrieve flag values (eg. `viper.GetString`) + * The flag key used when setting and getting the flag should always be stored in a + variable taking the form `FlagXxx` or `flagXxx`. + * Flag short variable descriptions should always start with a lower case character as to remain consistent with + the description provided in the default `--help` flag. + +## Version + +* Every repo should have a version/version.go file that mimics the Tendermint Core repo +* We read the value of the constant version in our build scripts and hence it has to be a string + +## Non-Go Code + +* All non-Go code (`*.proto`, `Makefile`, `*.sh`), where there is no common + agreement on style, should be formatted according to + [EditorConfig](http://editorconfig.org/) config: + + ```toml + # top-most EditorConfig file + root = true + + # Unix-style newlines with a newline ending every file + [*] + charset = utf-8 + end_of_line = lf + insert_final_newline = true + trim_trailing_whitespace = true + + [Makefile] + indent_style = tab + + [*.sh] + indent_style = tab + + [*.proto] + indent_style = space + indent_size = 2 + ``` + + Make sure the file above (`.editorconfig`) are in the root directory of your + repo and you have a [plugin for your + editor](http://editorconfig.org/#download) installed. diff --git a/sei-tendermint/UPGRADING.md b/sei-tendermint/UPGRADING.md new file mode 100644 index 0000000000..13582e75b4 --- /dev/null +++ b/sei-tendermint/UPGRADING.md @@ -0,0 +1,1162 @@ +# Upgrading Tendermint Core + +This guide provides instructions for upgrading to specific versions of Tendermint Core. + +## v0.36 + +### ABCI Changes + +### ResponseCheckTx Parameter Change + +`ResponseCheckTx` had fields that are not used by Tendermint, they are now removed. +In 0.36, we removed the following fields, from `ResponseCheckTx`: `Log`, `Info`, `Events`, + `GasUsed` and `MempoolError`. +`MempoolError` was used to signal to operators that a transaction was rejected from the mempool +by Tendermint itself. Right now, we return a regular error when this happens. + +#### ABCI++ + +For information on how ABCI++ works, see the +[Specification](https://github.com/tendermint/tendermint/blob/master/spec/abci%2B%2B/README.md). +In particular, the simplest way to upgrade your application is described +[here](https://github.com/tendermint/tendermint/blob/master/spec/abci%2B%2B/abci++_tmint_expected_behavior_002_draft.md#adapting-existing-applications-that-use-abci). + +#### Moving the `app_hash` parameter + +The Application's hash (or any data representing the Application's current +state) is known by the time `FinalizeBlock` finishes its execution. +Accordingly, the `app_hash` parameter has been moved from `ResponseCommit` to +`ResponseFinalizeBlock`, since it makes sense for the Application to return +this value as soon as is it known. + +#### ABCI Mutex + +In previous versions of ABCI, Tendermint was prevented from making +concurrent calls to ABCI implementations by virtue of mutexes in the +implementation of Tendermint's ABCI infrastructure. These mutexes have +been removed from the current implementation and applications will now +be responsible for managing their own concurrency control. + +To replicate the prior semantics, ensure that ABCI applications have a +single mutex that protects all ABCI method calls from concurrent +access. You can relax these requirements if your application can +provide safe concurrent access via other means. This safety is an +application concern so be very sure to test the application thoroughly +using realistic workloads and the race detector to ensure your +applications remains correct. + +### Config Changes + +- We have added a new, experimental tool to help operators migrate + configuration files created by previous versions of Tendermint. + To try this tool, run: + + ```shell + # Install the tool. + go install github.com/tendermint/tendermint/scripts/confix@latest + + # Run the tool with the old configuration file as input. + # Replace the -config argument with your path. + confix -config ~/.tendermint/config/config.toml -out updated.toml + ``` + + This tool should be able to update configurations from v0.34 and v0.35. We + plan to extend it to handle older configuration files in the future. For now, + it will report an error (without making any changes) if it does not recognize + the version that created the file. + +- The default configuration for a newly-created node now disables indexing for + ABCI event metadata. Existing node configurations that already have indexing + turned on are not affected. Operators who wish to enable indexing for a new + node, however, must now edit the `config.toml` explicitly. + +- The function of seed nodes was modified in the past release. Now, seed nodes + are treated identically to any other peer, however they only run the PEX + reactor. Because of this `seeds` has been removed from the config. Users + should add any seed nodes in the list of `bootstrap-peers`. + +### RPC Changes + +Tendermint v0.36 adds a new RPC event subscription API. The existing event +subscription API based on websockets is now deprecated. It will continue to +work throughout the v0.36 release, but the `subscribe`, `unsubscribe`, and +`unsubscribe_all` methods, along with websocket support, will be removed in +Tendermint v0.37. Callers currently using these features should migrate as +soon as is practical to the new API. + +To enable the new API, node operators set a new `event-log-window-size` +parameter in the `[rpc]` section of the `config.toml` file. This defines a +duration of time during which the node will log all events published to the +event bus for use by RPC consumers. + +Consumers use the new `events` JSON-RPC method to poll for events matching +their query in the log. Unlike the streaming API, events are not discarded if +the caller is slow, loses its connection, or crashes. As long as the client +recovers before its events expire from the log window, it will be able to +replay and catch up after recovering. Also unlike the streaming API, the client +can tell if it has truly missed events because they have expired from the log. + +The `events` method is a normal JSON-RPC method, and does not require any +non-standard response processing (in contrast with the old `subscribe`). +Clients can modify their query at any time, and no longer need to coordinate +subscribe and unsubscribe calls to handle multiple queries. + +The Go client implementations in the Tendermint Core repository have all been +updated to add a new `Events` method, including the light client proxy. + +A new `rpc/client/eventstream` package has also been added to make it easier +for users to update existing use of the streaming API to use the polling API +The `eventstream` package handles polling and delivers matching events to a +callback. + +For more detailed information, see [ADR 075](https://tinyurl.com/adr075) which +defines and describes the new API in detail. + +#### BroadcastTx Methods + +All callers should use the new `broadcast_tx` method, which has the +same semantics as the legacy `broadcast_tx_sync` method. The +`broadcast_tx_sync` and `broadcast_tx_async` methods are now +deprecated and will be removed in 0.37. + +Additionally the `broadcast_tx_commit` method is *also* deprecated, +and will be removed in 0.37. Client code that submits a transaction +and needs to wait for it to be committed to the chain, should poll +the tendermint to observe the transaction in the committed state. + +### Timeout Parameter Changes + +Tendermint v0.36 updates how the Tendermint consensus timing parameters are +configured. These parameters, `timeout-propose`, `timeout-propose-delta`, +`timeout-prevote`, `timeout-prevote-delta`, `timeout-precommit`, +`timeout-precommit-delta`, `timeout-commit`, and `skip-timeout-commit`, were +previously configured in `config.toml`. These timing parameters have moved and +are no longer configured in the `config.toml` file. These parameters have been +migrated into the `ConsensusParameters`. Nodes with these parameters set in the +local configuration file will see a warning logged on startup indicating that +these parameters are no longer used. + +These parameters have also been pared-down. There are no longer separate +parameters for both the `prevote` and `precommit` phases of Tendermint. The +separate `timeout-prevote` and `timeout-precommit` parameters have been merged +into a single `timeout-vote` parameter that configures both of these similar +phases of the consensus protocol. + +A set of reasonable defaults have been put in place for these new parameters +that will take effect when the node starts up in version v0.36. New chains +created using v0.36 and beyond will be able to configure these parameters in the +chain's `genesis.json` file. Chains that upgrade to v0.36 from a previous +compatible version of Tendermint will begin running with the default values. +Upgrading applications that wish to use different values from the defaults for +these parameters may do so by setting the `ConsensusParams.Timeout` field of the +`FinalizeBlock` `ABCI` response. + +As a safety measure in case of unusual timing issues during the upgrade to +v0.36, an operator may override the consensus timeout values for a single node. +Note, however, that these overrides will be removed in Tendermint v0.37. See +[configuration](https://github.com/tendermint/tendermint/blob/master/docs/nodes/configuration.md) +for more information about these overrides. + +For more discussion of this, see [ADR 074](https://tinyurl.com/adr074), which +lays out the reasoning for the changes as well as [RFC +009](https://tinyurl.com/rfc009) for a discussion of the complexities of +upgrading consensus parameters. + +### RecheckTx Parameter Change + +`RecheckTx` was previously enabled by the `recheck` parameter in the mempool +section of the `config.toml`. +Setting it to true made Tendermint invoke another `CheckTx` ABCI call on +each transaction remaining in the mempool following the execution of a block. +Similar to the timeout parameter changes, this parameter makes more sense as a +network-wide coordinated variable so that applications can be written knowing +either all nodes agree on whether to run `RecheckTx`. + +Applications can turn on `RecheckTx` by altering the `ConsensusParams` in the +`FinalizeBlock` ABCI response. + +### CLI Changes + +The functionality around resetting a node has been extended to make it safer. The +`unsafe-reset-all` command has been replaced by a `reset` command with four +subcommands: `blockchain`, `peers`, `unsafe-signer` and `unsafe-all`. + +- `tendermint reset blockchain`: Clears a node of all blocks, consensus state, evidence, + and indexed transactions. NOTE: This command does not reset application state. + If you need to rollback the last application state (to recover from application + nondeterminism), see instead the `tendermint rollback` command. +- `tendermint reset peers`: Clears the peer store, which persists information on peers used + by the networking layer. This can be used to get rid of stale addresses or to switch + to a predefined set of static peers. +- `tendermint reset unsafe-signer`: Resets the watermark level of the PrivVal File signer + allowing it to sign votes from the genesis height. This should only be used in testing as + it can lead to the node double signing. +- `tendermint reset unsafe-all`: A summation of the other three commands. This will delete + the entire `data` directory which may include application data as well. + +### Go API Changes + +#### `crypto` Package Cleanup + +The `github.com/tendermint/tendermint/crypto/tmhash` package was removed +to improve clarity. Users are encouraged to use the standard library +`crypto/sha256` package directly. However, as a convenience, some constants +and one function have moved to the Tendermint `crypto` package: + +- The `crypto.Checksum` function returns the sha256 checksum of a + byteslice. This is a wrapper around `sha256.Sum265` from the + standard libary, but provided as a function to ease type + requirements (the library function returns a `[32]byte` rather than + a `[]byte`). +- `tmhash.TruncatedSize` is now `crypto.AddressSize` which was + previously an alias for the same value. +- `tmhash.Size` and `tmhash.BlockSize` are now `crypto.HashSize` and + `crypto.HashSize`. +- `tmhash.SumTruncated` is now available via `crypto.AddressHash` or by + `crypto.Checksum(<...>)[:crypto.AddressSize]` + +## v0.35 + +### ABCI Changes + +* Added `AbciVersion` to `RequestInfo`. Applications should check that the ABCI version they expect is being used in order to avoid unimplemented changes errors. +* The method `SetOption` has been removed from the ABCI.Client interface. This feature was used in the early ABCI implementation's. +* Messages are written to a byte stream using uin64 length delimiters instead of int64. +* When mempool `v1` is enabled, transactions broadcasted via `sync` mode may return a successful + response with a transaction hash indicating that the transaction was successfully inserted into + the mempool. While this is true for `v0`, the `v1` mempool reactor may at a later point in time + evict or even drop this transaction after a hash has been returned. Thus, the user or client must + query for that transaction to check if it is still in the mempool. + +### Config Changes + +* The configuration file field `[fastsync]` has been renamed to `[blocksync]`. + +* The top level configuration file field `fast-sync` has moved under the new `[blocksync]` + field as `blocksync.enable`. + +* `blocksync.version = "v1"` and `blocksync.version = "v2"` (previously `fastsync`) + are no longer supported. Please use `v0` instead. During the v0.35 release cycle, `v0` was + determined to suit the existing needs and the cost of maintaining the `v1` and `v2` modules + was determined to be greater than necessary. + + +* All config parameters are now hyphen-case (also known as kebab-case) instead of snake_case. Before restarting the node make sure + you have updated all the variables in your `config.toml` file. + +* Added `--mode` flag and `mode` config variable on `config.toml` for setting Mode of the Node: `full` | `validator` | `seed` (default: `full`) + [ADR-52](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-052-tendermint-mode.md) + +* `BootstrapPeers` has been added as part of the new p2p stack. This will eventually replace + `Seeds`. Bootstrap peers are connected with on startup if needed for peer discovery. Unlike + persistent peers, there's no gaurantee that the node will remain connected with these peers. + +* configuration values starting with `priv-validator-` have moved to the new + `priv-validator` section, without the `priv-validator-` prefix. + +* The fast sync process as well as the blockchain package and service has all + been renamed to block sync + +### Database Key Format Changes + +The format of all tendermint on-disk database keys changes in +0.35. Upgrading nodes must either re-sync all data or run a migration +script provided in this release. + +The script located in +`github.com/tendermint/tendermint/scripts/keymigrate/migrate.go` provides the +function `Migrate(context.Context, db.DB)` which you can operationalize as +makes sense for your deployment. + +For ease of use the `tendermint` command includes a CLI version of the +migration script, which you can invoke, as in: + + tendermint key-migrate + +This reads the configuration file as normal and allows the `--db-backend` and +`--db-dir` flags to override the database location as needed. + +The migration operation is intended to be idempotent, and should be safe to +rerun on the same database multiple times. As a safety measure, however, we +recommend that operators test out the migration on a copy of the database +first, if it is practical to do so, before applying it to the production data. + +### CLI Changes + +* You must now specify the node mode (validator|full|seed) in `tendermint init [mode]` + +* The `--fast-sync` command line option has been renamed to `--blocksync.enable` + +* If you had previously used `tendermint gen_node_key` to generate a new node + key, keep in mind that it no longer saves the output to a file. You can use + `tendermint init validator` or pipe the output of `tendermint gen_node_key` to + `$TMHOME/config/node_key.json`: + + ``` + $ tendermint gen_node_key > $TMHOME/config/node_key.json + ``` + +* CLI commands and flags are all now hyphen-case instead of snake_case. + Make sure to adjust any scripts that calls a cli command with snake_casing + +### API Changes + +The p2p layer was reimplemented as part of the 0.35 release cycle and +all reactors were refactored to accomodate the change. As part of that work these +implementations moved into the `internal` package and are no longer +considered part of the public Go API of tendermint. These packages +are: + +- `p2p` +- `mempool` +- `consensus` +- `statesync` +- `blockchain` +- `evidence` + +Accordingly, the `node` package changed to reduce access to +tendermint internals: applications that use tendermint as a library +will need to change to accommodate these changes. Most notably: + +- The `Node` type has become internal, and all constructors return a + `service.Service` implementation. + +- The `node.DefaultNewNode` and `node.NewNode` constructors are no + longer exported and have been replaced with `node.New` and + `node.NewDefault` which provide more functional interfaces. + +To access any of the functionality previously available via the +`node.Node` type, use the `*local.Local` "RPC" client, that exposes +the full RPC interface provided as direct function calls. Import the +`github.com/tendermint/tendermint/rpc/client/local` package and pass +the node service as in the following: + +```go +logger := log.NewNopLogger() + +// Construct and start up a node with default settings. +node := node.NewDefault(logger) + +// Construct a local (in-memory) RPC client to the node. +client := local.New(logger, node.(local.NodeService)) +``` + +### gRPC Support + +Mark gRPC in the RPC layer as deprecated and to be removed in 0.36. + +### Peer Management Interface + +When running with the new P2P Layer, the methods `UnsafeDialSeeds` and +`UnsafeDialPeers` RPC methods will always return an error. They are +deprecated and will be removed in 0.36 when the legacy peer stack is +removed. + +Additionally the format of the Peer list returned in the `NetInfo` +method changes in this release to accommodate the different way that +the new stack tracks data about peers. This change affects users of +both stacks. + +### Using the updated p2p library + +The P2P library was reimplemented in this release. The new implementation is +enabled by default in this version of Tendermint. The legacy implementation is still +included in this version of Tendermint as a backstop to work around unforeseen +production issues. The new and legacy version are interoperable. If necessary, +you can enable the legacy implementation in the server configuration file. + +To make use of the legacy P2P implemementation add or update the following field of +your server's configuration file under the `[p2p]` section: + +```toml +[p2p] +... +use-legacy = true +... +``` + +If you need to do this, please consider filing an issue in the Tendermint repository +to let us know why. We plan to remove the legacy P2P code in the next (v0.36) release. + +#### New p2p queue types + +The new p2p implementation enables selection of the queue type to be used for +passing messages between peers. + +The following values may be used when selecting which queue type to use: + +* `fifo`: (**default**) An unbuffered and lossless queue that passes messages through +in the order in which they were received. + +* `priority`: A priority queue of messages. + +* `wdrr`: A queue implementing the Weighted Deficit Round Robin algorithm. A +weighted deficit round robin queue is created per peer. Each queue contains a +separate 'flow' for each of the channels of communication that exist between any two +peers. Tendermint maintains a channel per message type between peers. Each WDRR +queue maintains a shared buffered with a fixed capacity through which messages on different +flows are passed. +For more information on WDRR scheduling, see: https://en.wikipedia.org/wiki/Deficit_round_robin + +To select a queue type, add or update the following field under the `[p2p]` +section of your server's configuration file. + +```toml +[p2p] +... +queue-type = wdrr +... +``` + + +### Support for Custom Reactor and Mempool Implementations + +The changes to p2p layer removed existing support for custom +reactors. Based on our understanding of how this functionality was +used, the introduction of the prioritized mempool covers nearly all of +the use cases for custom reactors. If you are currently running custom +reactors and mempools and are having trouble seeing the migration path +for your project please feel free to reach out to the Tendermint Core +development team directly. + +## v0.34.0 + +**Upgrading to Tendermint 0.34 requires a blockchain restart.** +This release is not compatible with previous blockchains due to changes to +the encoding format (see "Protocol Buffers," below) and the block header (see "Blockchain Protocol"). + +Note also that Tendermint 0.34 also requires Go 1.16 or higher. + +### ABCI Changes + +* The `ABCIVersion` is now `0.17.0`. + +* New ABCI methods (`ListSnapshots`, `LoadSnapshotChunk`, `OfferSnapshot`, and `ApplySnapshotChunk`) + were added to support the new State Sync feature. + Previously, syncing a new node to a preexisting network could take days; but with State Sync, + new nodes are able to join a network in a matter of seconds. + Read [the spec](https://github.com/tendermint/tendermint/blob/master/spec/abci/apps.md) + if you want to learn more about State Sync, or if you'd like your application to use it. + (If you don't want to support State Sync in your application, you can just implement these new + ABCI methods as no-ops, leaving them empty.) + +* `KV.Pair` has been replaced with `abci.EventAttribute`. The `EventAttribute.Index` field + allows ABCI applications to dictate which events should be indexed. + +* The blockchain can now start from an arbitrary initial height, + provided to the application via `RequestInitChain.InitialHeight`. + +* ABCI evidence type is now an enum with two recognized types of evidence: + `DUPLICATE_VOTE` and `LIGHT_CLIENT_ATTACK`. + Applications should be able to handle these evidence types + (i.e., through slashing or other accountability measures). + +* The [`PublicKey` type](https://github.com/tendermint/tendermint/blob/master/proto/tendermint/crypto/keys.proto#L13-L15) + (used in ABCI as part of `ValidatorUpdate`) now uses a `oneof` protobuf type. + Note that since Tendermint only supports ed25519 validator keys, there's only one + option in the `oneof`. For more, see "Protocol Buffers," below. + +* The field `Proof`, on the ABCI type `ResponseQuery`, is now named `ProofOps`. + For more, see "Crypto," below. + +* The method `SetOption` has been removed from the ABCI.Client interface. This feature was used in the early ABCI implementation's. + +### P2P Protocol + +The default codec is now proto3, not amino. The schema files can be found in the `/proto` +directory. For more, see "Protobuf," below. + +### Blockchain Protocol + +* `Header#LastResultsHash`, which is the root hash of a Merkle tree built from +`ResponseDeliverTx(Code, Data)` as of v0.34 also includes `GasWanted` and `GasUsed` +fields. + +* Merkle hashes of empty trees previously returned nothing, but now return the hash of an empty input, + to conform with [RFC-6962](https://tools.ietf.org/html/rfc6962). + This mainly affects `Header#DataHash`, `Header#LastResultsHash`, and + `Header#EvidenceHash`, which are often empty. Non-empty hashes can also be affected, e.g. if their + inputs depend on other (empty) Merkle hashes, giving different results. + +### Transaction Indexing + +Tendermint now relies on the application to tell it which transactions to index. This means that +in the `config.toml`, generated by Tendermint, there is no longer a way to specify which +transactions to index. `tx.height` and `tx.hash` will always be indexed when using the `kv` indexer. + +Applications must now choose to either a) enable indexing for all transactions, or +b) allow node operators to decide which transactions to index. +Applications can notify Tendermint to index a specific transaction by setting +`Index: bool` to `true` in the Event Attribute: + +```go +[]types.Event{ + { + Type: "app", + Attributes: []types.EventAttribute{ + {Key: []byte("creator"), Value: []byte("Cosmoshi Netowoko"), Index: true}, + }, + }, +} +``` + +### Protocol Buffers + +Tendermint 0.34 replaces Amino with Protocol Buffers for encoding. +This migration is extensive and results in a number of changes, however, +Tendermint only uses the types generated from Protocol Buffers for disk and +wire serialization. +**This means that these changes should not affect you as a Tendermint user.** + +However, Tendermint users and contributors may note the following changes: + +* Directory layout changes: All proto files have been moved under one directory, `/proto`. + This is in line with the recommended file layout by [Buf](https://buf.build). + For more, see the [Buf documentation](https://buf.build/docs/lint-checkers#file_layout). +* ABCI Changes: As noted in the "ABCI Changes" section above, the `PublicKey` type now uses + a `oneof` type. + +For more on the Protobuf changes, please see our [blog post on this migration](https://medium.com/tendermint/tendermint-0-34-protocol-buffers-and-you-8c40558939ae). + +### Consensus Parameters + +Tendermint 0.34 includes new and updated consensus parameters. + +#### Version Parameters (New) + +* `AppVersion`, which is the version of the ABCI application. + +#### Evidence Parameters + +* `MaxBytes`, which caps the total amount of evidence. The default is 1048576 (1 MB). + +### Crypto + +#### Keys + +* Keys no longer include a type prefix. For example, ed25519 pubkeys have been renamed from + `PubKeyEd25519` to `PubKey`. This reduces stutter (e.g., `ed25519.PubKey`). +* Keys are now byte slices (`[]byte`) instead of byte arrays (`[]byte`). +* The multisig functionality that was previously in Tendermint now has + a new home within the Cosmos SDK: + [`cosmos/cosmos-sdk/types/multisig`](https://github.com/cosmos/cosmos-sdk/blob/master/crypto/types/multisig/multisignature.go). + +#### `merkle` Package + +* `SimpleHashFromMap()` and `SimpleProofsFromMap()` were removed. +* The prefix `Simple` has been removed. (For example, `SimpleProof` is now called `Proof`.) +* All protobuf messages have been moved to the `/proto` directory. +* The protobuf message `Proof` that contained multiple ProofOp's has been renamed to `ProofOps`. + As noted above, this affects the ABCI type `ResponseQuery`: + The field that was named Proof is now named `ProofOps`. +* `HashFromByteSlices` and `ProofsFromByteSlices` now return a hash for empty inputs, to conform with + [RFC-6962](https://tools.ietf.org/html/rfc6962). + +### `libs` Package + +The `bech32` package has moved to the Cosmos SDK: +[`cosmos/cosmos-sdk/types/bech32`](https://github.com/cosmos/cosmos-sdk/tree/4173ea5ebad906dd9b45325bed69b9c655504867/types/bech32). + +### CLI + +The `tendermint lite` command has been renamed to `tendermint light` and has a slightly different API. + +### Light Client + +We have a new, rewritten light client! You can +[read more](https://medium.com/tendermint/everything-you-need-to-know-about-the-tendermint-light-client-f80d03856f98) +about the justifications and details behind this change. + +Other user-relevant changes include: + +* The old `lite` package was removed; the new light client uses the `light` package. +* The `Verifier` was broken up into two pieces: + * Core verification logic (pure `VerifyX` functions) + * `Client` object, which represents the complete light client +* The new light clients stores headers & validator sets as `LightBlock`s +* The RPC client can be found in the `/rpc` directory. +* The HTTP(S) proxy is located in the `/proxy` directory. + +### `state` Package + +* A new field `State.InitialHeight` has been added to record the initial chain height, which must be `1` + (not `0`) if starting from height `1`. This can be configured via the genesis field `initial_height`. +* The `state` package now has a `Store` interface. All functions in + [state/store.go](https://github.com/tendermint/tendermint/blob/56911ee35298191c95ef1c7d3d5ec508237aaff4/state/store.go#L42-L42) + are now part of the interface. The interface returns errors on all methods and can be used by calling `state.NewStore(dbm.DB)`. + +### `privval` Package + +All requests are now accompanied by the chain ID from the network. +This is a optional field and can be ignored by key management systems; +however, if you are using the same key management system for multiple different +blockchains, we recommend that you check the chain ID. + + +### RPC + +* `/unsafe_start_cpu_profiler`, `/unsafe_stop_cpu_profiler` and + `/unsafe_write_heap_profile` were removed. + For profiling, please use the pprof server, which can + be enabled through `--rpc.pprof_laddr=X` flag or `pprof_laddr=X` config setting + in the rpc section. +* The `Content-Type` header returned on RPC calls is now (correctly) set as `application/json`. + +### Version + +Version is now set through Go linker flags `ld_flags`. Applications that are using tendermint as a library should set this at compile time. + +Example: + +```sh +go install -mod=readonly -ldflags "-X github.com/tendermint/tendermint/version.TMCoreSemVer=$(go list -m github.com/tendermint/tendermint | sed 's/ /\@/g') -s -w " -trimpath ./cmd +``` + +Additionally, the exported constant `version.Version` is now `version.TMCoreSemVer`. + +## v0.33.4 + +### Go API + +* `rpc/client` HTTP and local clients have been moved into `http` and `local` + subpackages, and their constructors have been renamed to `New()`. + +### Protobuf Changes + +When upgrading to version 0.33.4 you will have to fetch the `third_party` +directory along with the updated proto files. + +### Block Retention + +ResponseCommit added a field for block retention. The application can provide information to Tendermint on how to prune blocks. +If an application would like to not prune any blocks pass a `0` in this field. + +```proto +message ResponseCommit { + // reserve 1 + bytes data = 2; // the Merkle root hash + ++ uint64 retain_height = 3; // the oldest block height to retain ++ +} +``` + +## v0.33.0 + +This release is not compatible with previous blockchains due to commit becoming +signatures only and fields in the header have been removed. + +### Blockchain Protocol + +`TotalTxs` and `NumTxs` were removed from the header. `Commit` now consists +mostly of just signatures. + +```go +type Commit struct { + Height int64 + Round int + BlockID BlockID + Signatures []CommitSig +} +``` + +```go +type BlockIDFlag byte + +const ( + // BlockIDFlagAbsent - no vote was received from a validator. + BlockIDFlagAbsent BlockIDFlag = 0x01 + // BlockIDFlagCommit - voted for the Commit.BlockID. + BlockIDFlagCommit = 0x02 + // BlockIDFlagNil - voted for nil. + BlockIDFlagNil = 0x03 +) + +type CommitSig struct { + BlockIDFlag BlockIDFlag + ValidatorAddress Address + Timestamp time.Time + Signature []byte +} +``` + +See [\#63](https://github.com/tendermint/spec/pull/63) for the complete spec +change. + +### P2P Protocol + +The secret connection now includes a transcript hashing. If you want to +implement a handshake (or otherwise have an existing implementation), you'll +need to make the same changes that were made +[here](https://github.com/tendermint/tendermint/pull/3668). + +### Config Changes + +You will need to generate a new config if you have used a prior version of tendermint. + +Tags have been entirely renamed throughout the codebase to events and there +keys are called +[compositeKeys](https://github.com/tendermint/tendermint/blob/6d05c531f7efef6f0619155cf10ae8557dd7832f/docs/app-dev/indexing-transactions.md). + +Evidence Params has been changed to include duration. + +* `consensus_params.evidence.max_age_duration`. +* Renamed `consensus_params.evidence.max_age` to `max_age_num_blocks`. + +### Go API + +* `libs/common` has been removed in favor of specific pkgs. + * `async` + * `service` + * `rand` + * `net` + * `strings` + * `cmap` +* removal of `errors` pkg + +### RPC Changes + +* `/validators` is now paginated (default: 30 vals per page) +* `/block_results` response format updated [see RPC docs for details](https://docs.tendermint.com/master/rpc/#/Info/block_results) +* Event suffix has been removed from the ID in event responses +* IDs are now integers not `json-client-XYZ` + +## v0.32.0 + +This release is compatible with previous blockchains, +however the new ABCI Events mechanism may create some complexity +for nodes wishing to continue operation with v0.32 from a previous version. +There are some minor breaking changes to the RPC. + +### Config Changes + +If you have `db_backend` set to `leveldb` in your config file, please change it +to `goleveldb` or `cleveldb`. + +### RPC Changes + +The default listen address for the RPC is now `127.0.0.1`. If you want to expose +it publicly, you have to explicitly configure it. Note exposing the RPC to the +public internet may not be safe - endpoints which return a lot of data may +enable resource exhaustion attacks on your node, causing the process to crash. + +Any consumers of `/block_results` need to be mindful of the change in all field +names from CamelCase to Snake case, eg. `results.DeliverTx` is now `results.deliver_tx`. +This is a fix, but it's breaking. + +### ABCI Changes + +ABCI responses which previously had a `Tags` field now have an `Events` field +instead. The original `Tags` field was simply a list of key-value pairs, where +each key effectively represented some attribute of an event occuring in the +blockchain, like `sender`, `receiver`, or `amount`. However, it was difficult to +represent the occurence of multiple events (for instance, multiple transfers) in a single list. +The new `Events` field contains a list of `Event`, where each `Event` is itself a list +of key-value pairs, allowing for more natural expression of multiple events in +eg. a single DeliverTx or EndBlock. Note each `Event` also includes a `Type`, which is meant to categorize the +event. + +For transaction indexing, the index key is +prefixed with the event type: `{eventType}.{attributeKey}`. +If the same event type and attribute key appear multiple times, the values are +appended in a list. + +To make queries, include the event type as a prefix. For instance if you +previously queried for `recipient = 'XYZ'`, and after the upgrade you name your event `transfer`, +the new query would be for `transfer.recipient = 'XYZ'`. + +Note that transactions indexed on a node before upgrading to v0.32 will still be indexed +using the old scheme. For instance, if a node upgraded at height 100, +transactions before 100 would be queried with `recipient = 'XYZ'` and +transactions after 100 would be queried with `transfer.recipient = 'XYZ'`. +While this presents additional complexity to clients, it avoids the need to +reindex. Of course, you can reset the node and sync from scratch to re-index +entirely using the new scheme. + +We illustrate further with a more complete example. + +Prior to the update, suppose your `ResponseDeliverTx` look like: + +```go +abci.ResponseDeliverTx{ + Tags: []kv.Pair{ + {Key: []byte("sender"), Value: []byte("foo")}, + {Key: []byte("recipient"), Value: []byte("bar")}, + {Key: []byte("amount"), Value: []byte("35")}, + } +} +``` + +The following queries would match this transaction: + +```go +query.MustParse("tm.event = 'Tx' AND sender = 'foo'") +query.MustParse("tm.event = 'Tx' AND recipient = 'bar'") +query.MustParse("tm.event = 'Tx' AND sender = 'foo' AND recipient = 'bar'") +``` + +Following the upgrade, your `ResponseDeliverTx` would look something like: +the following `Events`: + +```go +abci.ResponseDeliverTx{ + Events: []abci.Event{ + { + Type: "transfer", + Attributes: kv.Pairs{ + {Key: []byte("sender"), Value: []byte("foo")}, + {Key: []byte("recipient"), Value: []byte("bar")}, + {Key: []byte("amount"), Value: []byte("35")}, + }, + } +} +``` + +Now the following queries would match this transaction: + +```go +query.MustParse("tm.event = 'Tx' AND transfer.sender = 'foo'") +query.MustParse("tm.event = 'Tx' AND transfer.recipient = 'bar'") +query.MustParse("tm.event = 'Tx' AND transfer.sender = 'foo' AND transfer.recipient = 'bar'") +``` + +For further documentation on `Events`, see the [docs](https://github.com/tendermint/tendermint/blob/60827f75623b92eff132dc0eff5b49d2025c591e/docs/spec/abci/abci.md#events). + +### Go Applications + +The ABCI Application interface changed slightly so the CheckTx and DeliverTx +methods now take Request structs. The contents of these structs are just the raw +tx bytes, which were previously passed in as the argument. + +## v0.31.6 + +There are no breaking changes in this release except Go API of p2p and +mempool packages. Hovewer, if you're using cleveldb, you'll need to change +the compilation tag: + +Use `cleveldb` tag instead of `gcc` to compile Tendermint with CLevelDB or +use `make build_c` / `make install_c` (full instructions can be found at + +``` + +### External validator signers + +The Unix and TCP implementations of the remote signing validator +have been consolidated into a single implementation. +Thus in both cases, the external process is expected to dial +Tendermint. This is different from how Unix sockets used to work, where +Tendermint dialed the external process. + +The `PubKeyMsg` was also split into separate `Request` and `Response` types +for consistency with other messages. + +Note that the TCP sockets don't yet use a persistent key, +so while they're encrypted, they can't yet be properly authenticated. +See [#3105](https://github.com/tendermint/tendermint/issues/3105). +Note the Unix socket has neither encryption nor authentication, but will +add a shared-secret in [#3099](https://github.com/tendermint/tendermint/issues/3099). + +## v0.27.0 + +This release contains some breaking changes to the block and p2p protocols, +but does not change any core data structures, so it should be compatible with +existing blockchains from the v0.26 series that only used Ed25519 validator keys. +Blockchains using Secp256k1 for validators will not be compatible. This is due +to the fact that we now enforce which key types validators can use as a +consensus param. The default is Ed25519, and Secp256k1 must be activated +explicitly. + +It is recommended to upgrade all nodes at once to avoid incompatibilities at the +peer layer - namely, the heartbeat consensus message has been removed (only +relevant if `create_empty_blocks=false` or `create_empty_blocks_interval > 0`), +and the proposer selection algorithm has changed. Since proposer information is +never included in the blockchain, this change only affects the peer layer. + +### Go API Changes + +#### libs/db + +The ReverseIterator API has changed the meaning of `start` and `end`. +Before, iteration was from `start` to `end`, where +`start > end`. Now, iteration is from `end` to `start`, where `start < end`. +The iterator also excludes `end`. This change allows a simplified and more +intuitive logic, aligning the semantic meaning of `start` and `end` in the +`Iterator` and `ReverseIterator`. + +### Applications + +This release enforces a new consensus parameter, the +ValidatorParams.PubKeyTypes. Applications must ensure that they only return +validator updates with the allowed PubKeyTypes. If a validator update includes a +pubkey type that is not included in the ConsensusParams.Validator.PubKeyTypes, +block execution will fail and the consensus will halt. + +By default, only Ed25519 pubkeys may be used for validators. Enabling +Secp256k1 requires explicit modification of the ConsensusParams. +Please update your application accordingly (ie. restrict validators to only be +able to use Ed25519 keys, or explicitly add additional key types to the genesis +file). + +## v0.26.0 + +This release contains a lot of changes to core data types and protocols. It is not +compatible to the old versions and there is no straight forward way to update +old data to be compatible with the new version. + +To reset the state do: + +```sh +tendermint unsafe_reset_all +``` + +Here we summarize some other notable changes to be mindful of. + +### Config Changes + +All timeouts must be changed from integers to strings with their duration, for +instance `flush_throttle_timeout = 100` would be changed to +`flush_throttle_timeout = "100ms"` and `timeout_propose = 3000` would be changed +to `timeout_propose = "3s"`. + +### RPC Changes + +The default behaviour of `/abci_query` has been changed to not return a proof, +and the name of the parameter that controls this has been changed from `trusted` +to `prove`. To get proofs with your queries, ensure you set `prove=true`. + +Various version fields like `amino_version`, `p2p_version`, `consensus_version`, +and `rpc_version` have been removed from the `node_info.other` and are +consolidated under the tendermint semantic version (ie. `node_info.version`) and +the new `block` and `p2p` protocol versions under `node_info.protocol_version`. + +### ABCI Changes + +Field numbers were bumped in the `Header` and `ResponseInfo` messages to make +room for new `version` fields. It should be straight forward to recompile the +protobuf file for these changes. + +#### Proofs + +The `ResponseQuery.Proof` field is now structured as a `[]ProofOp` to support +generalized Merkle tree constructions where the leaves of one Merkle tree are +the root of another. If you don't need this functionality, and you used to +return `` here, you should instead return a single `ProofOp` with +just the `Data` field set: + +```go +[]ProofOp{ + ProofOp{ + Data: , + } +} +``` + +For more information, see: + +* [ADR-026](https://github.com/tendermint/tendermint/blob/30519e8361c19f4bf320ef4d26288ebc621ad725/docs/architecture/adr-026-general-merkle-proof.md) +* [Relevant ABCI + documentation](https://github.com/tendermint/tendermint/blob/30519e8361c19f4bf320ef4d26288ebc621ad725/docs/spec/abci/apps.md#query-proofs) +* [Description of + keys](https://github.com/tendermint/tendermint/blob/30519e8361c19f4bf320ef4d26288ebc621ad725/crypto/merkle/proof_key_path.go#L14) + +### Go API Changes + +#### crypto/merkle + +The `merkle.Hasher` interface was removed. Functions which used to take `Hasher` +now simply take `[]byte`. This means that any objects being Merklized should be +serialized before they are passed in. + +#### node + +The `node.RunForever` function was removed. Signal handling and running forever +should instead be explicitly configured by the caller. See how we do it +[here](https://github.com/tendermint/tendermint/blob/30519e8361c19f4bf320ef4d26288ebc621ad725/cmd/tendermint/commands/run_node.go#L60). + +### Other + +All hashes, except for public key addresses, are now 32-bytes. + +## v0.25.0 + +This release has minimal impact. + +If you use GasWanted in ABCI and want to enforce it, set the MaxGas in the genesis file (default is no max). + +## v0.24.0 + +New 0.24.0 release contains a lot of changes to the state and types. It's not +compatible to the old versions and there is no straight forward way to update +old data to be compatible with the new version. + +To reset the state do: + +```sh +tendermint unsafe_reset_all +``` + +Here we summarize some other notable changes to be mindful of. + +### Config changes + +`p2p.max_num_peers` was removed in favor of `p2p.max_num_inbound_peers` and +`p2p.max_num_outbound_peers`. + +```toml +# Maximum number of inbound peers +max_num_inbound_peers = 40 + +# Maximum number of outbound peers to connect to, excluding persistent peers +max_num_outbound_peers = 10 +``` + +As you can see, the default ratio of inbound/outbound peers is 4/1. The reason +is we want it to be easier for new nodes to connect to the network. You can +tweak these parameters to alter the network topology. + +### RPC Changes + +The result of `/commit` used to contain `header` and `commit` fields at the top level. These are now contained under the `signed_header` field. + +### ABCI Changes + +The header has been upgraded and contains new fields, but none of the existing +fields were changed, except their order. + +The `Validator` type was split into two, one containing an `Address` and one +containing a `PubKey`. When processing `RequestBeginBlock`, use the `Validator` +type, which contains just the `Address`. When returning `ResponseEndBlock`, use +the `ValidatorUpdate` type, which contains just the `PubKey`. + +### Validator Set Updates + +Validator set updates returned in ResponseEndBlock for height `H` used to take +effect immediately at height `H+1`. Now they will be delayed one block, to take +effect at height `H+2`. Note this means that the change will be seen by the ABCI +app in the `RequestBeginBlock.LastCommitInfo` at block `H+3`. Apps were already +required to maintain a map from validator addresses to pubkeys since v0.23 (when +pubkeys were removed from RequestBeginBlock), but now they may need to track +multiple validator sets at once to accomodate this delay. + +### Block Size + +The `ConsensusParams.BlockSize.MaxTxs` was removed in favour of +`ConsensusParams.BlockSize.MaxBytes`, which is now enforced. This means blocks +are limitted only by byte-size, not by number of transactions. diff --git a/sei-tendermint/abci/README.md b/sei-tendermint/abci/README.md new file mode 100644 index 0000000000..f79251bbc1 --- /dev/null +++ b/sei-tendermint/abci/README.md @@ -0,0 +1,36 @@ +# Application BlockChain Interface (ABCI) + +Blockchains are systems for multi-master state machine replication. +**ABCI** is an interface that defines the boundary between the replication engine (the blockchain), +and the state machine (the application). +Using a socket protocol, a consensus engine running in one process +can manage an application state running in another. + +Previously, the ABCI was referred to as TMSP. + +The community has provided a number of additional implementations, see the [Tendermint Ecosystem](https://github.com/tendermint/awesome#ecosystem) + + +## Installation & Usage + +To get up and running quickly, see the [getting started guide](../docs/app-dev/getting-started.md) along with the [abci-cli documentation](../docs/app-dev/abci-cli.md) which will go through the examples found in the [examples](./example/) directory. + +## Specification + +A detailed description of the ABCI methods and message types is contained in: + +- [The main spec](../spec/abci/abci.md) +- [A protobuf file](../proto/tendermint/abci/types.proto) +- [A Go interface](./types/application.go) + +## Protocol Buffers + +To compile the protobuf file, run (from the root of the repo): + +```sh +make protoc_abci +``` + +See `protoc --help` and [the Protocol Buffers site](https://developers.google.com/protocol-buffers) +for details on compiling for other languages. Note we also include a [GRPC](https://www.grpc.io/docs) +service definition. diff --git a/sei-tendermint/abci/client/client.go b/sei-tendermint/abci/client/client.go new file mode 100644 index 0000000000..4508dcbc8a --- /dev/null +++ b/sei-tendermint/abci/client/client.go @@ -0,0 +1,71 @@ +package abciclient + +import ( + "context" + "fmt" + "sync" + + "github.com/tendermint/tendermint/abci/types" + "github.com/tendermint/tendermint/libs/log" + "github.com/tendermint/tendermint/libs/service" +) + +const ( + dialRetryIntervalSeconds = 3 + echoRetryIntervalSeconds = 1 +) + +//go:generate ../../scripts/mockery_generate.sh Client + +// Client defines the interface for an ABCI client. +// +// NOTE these are client errors, eg. ABCI socket connectivity issues. +// Application-related errors are reflected in response via ABCI error codes +// and (potentially) error response. +type Client interface { + service.Service + types.Application + + Error() error + Flush(context.Context) error + Echo(context.Context, string) (*types.ResponseEcho, error) +} + +//---------------------------------------- + +// NewClient returns a new ABCI client of the specified transport type. +// It returns an error if the transport is not "socket" or "grpc" +func NewClient(logger log.Logger, addr, transport string, mustConnect bool) (Client, error) { + switch transport { + case "socket": + return NewSocketClient(logger, addr, mustConnect), nil + case "grpc": + return NewGRPCClient(logger, addr, mustConnect), nil + default: + return nil, fmt.Errorf("unknown abci transport %s", transport) + } +} + +type requestAndResponse struct { + *types.Request + *types.Response + + mtx sync.Mutex + signal chan struct{} +} + +func makeReqRes(req *types.Request) *requestAndResponse { + return &requestAndResponse{ + Request: req, + Response: nil, + signal: make(chan struct{}), + } +} + +// markDone marks the ReqRes object as done. +func (r *requestAndResponse) markDone() { + r.mtx.Lock() + defer r.mtx.Unlock() + + close(r.signal) +} diff --git a/sei-tendermint/abci/client/doc.go b/sei-tendermint/abci/client/doc.go new file mode 100644 index 0000000000..5bb3bf58a9 --- /dev/null +++ b/sei-tendermint/abci/client/doc.go @@ -0,0 +1,20 @@ +// Package abciclient provides an ABCI implementation in Go. +// +// There are 3 clients available: +// 1. socket (unix or TCP) +// 2. local (in memory) +// 3. gRPC +// +// ## Socket client +// +// The client blocks for enqueuing the request, for enqueuing the +// Flush to send the request, and for the Flush response to return. +// +// ## Local client +// +// The global mutex is locked during each call +// +// ## gRPC client +// +// The client waits for all calls to complete. +package abciclient diff --git a/sei-tendermint/abci/client/grpc_client.go b/sei-tendermint/abci/client/grpc_client.go new file mode 100644 index 0000000000..1e163056d3 --- /dev/null +++ b/sei-tendermint/abci/client/grpc_client.go @@ -0,0 +1,185 @@ +package abciclient + +import ( + "context" + "errors" + "fmt" + "net" + "sync" + "time" + + "google.golang.org/grpc" + "google.golang.org/grpc/credentials/insecure" + + "github.com/tendermint/tendermint/abci/types" + "github.com/tendermint/tendermint/libs/log" + tmnet "github.com/tendermint/tendermint/libs/net" + "github.com/tendermint/tendermint/libs/service" +) + +// A gRPC client. +type grpcClient struct { + service.BaseService + logger log.Logger + + mustConnect bool + + client types.ABCIApplicationClient + conn *grpc.ClientConn + + mtx sync.Mutex + addr string + err error +} + +var _ Client = (*grpcClient)(nil) + +// NewGRPCClient creates a gRPC client, which will connect to addr upon the +// start. Note Client#Start returns an error if connection is unsuccessful and +// mustConnect is true. +func NewGRPCClient(logger log.Logger, addr string, mustConnect bool) Client { + cli := &grpcClient{ + logger: logger, + addr: addr, + mustConnect: mustConnect, + } + cli.BaseService = *service.NewBaseService(logger, "grpcClient", cli) + return cli +} + +func dialerFunc(ctx context.Context, addr string) (net.Conn, error) { + return tmnet.Connect(addr) +} + +func (cli *grpcClient) OnStart(ctx context.Context) error { + timer := time.NewTimer(0) + defer timer.Stop() + +RETRY_LOOP: + for { + conn, err := grpc.Dial(cli.addr, + grpc.WithTransportCredentials(insecure.NewCredentials()), + grpc.WithContextDialer(dialerFunc), + ) + if err != nil { + if cli.mustConnect { + return err + } + cli.logger.Error(fmt.Sprintf("abci.grpcClient failed to connect to %v. Retrying...\n", cli.addr), "err", err) + timer.Reset(time.Second * dialRetryIntervalSeconds) + select { + case <-ctx.Done(): + return ctx.Err() + case <-timer.C: + continue RETRY_LOOP + } + } + + cli.logger.Info("Dialed server. Waiting for echo.", "addr", cli.addr) + client := types.NewABCIApplicationClient(conn) + cli.conn = conn + + ENSURE_CONNECTED: + for { + _, err := client.Echo(ctx, &types.RequestEcho{Message: "hello"}, grpc.WaitForReady(true)) + if err == nil { + break ENSURE_CONNECTED + } + if errors.Is(err, context.Canceled) || errors.Is(err, context.DeadlineExceeded) { + return err + } + + cli.logger.Error("Echo failed", "err", err) + timer.Reset(time.Second * echoRetryIntervalSeconds) + select { + case <-ctx.Done(): + return ctx.Err() + case <-timer.C: + continue ENSURE_CONNECTED + } + } + + cli.client = client + return nil + } +} + +func (cli *grpcClient) OnStop() { + cli.mtx.Lock() + defer cli.mtx.Unlock() + + if cli.conn != nil { + cli.err = cli.conn.Close() + } +} + +func (cli *grpcClient) Error() error { + cli.mtx.Lock() + defer cli.mtx.Unlock() + + return cli.err +} + +//---------------------------------------- + +func (cli *grpcClient) Flush(ctx context.Context) error { return nil } + +func (cli *grpcClient) Echo(ctx context.Context, msg string) (*types.ResponseEcho, error) { + return cli.client.Echo(ctx, types.ToRequestEcho(msg).GetEcho(), grpc.WaitForReady(true)) +} + +func (cli *grpcClient) Info(ctx context.Context, params *types.RequestInfo) (*types.ResponseInfo, error) { + return cli.client.Info(ctx, types.ToRequestInfo(params).GetInfo(), grpc.WaitForReady(true)) +} + +func (cli *grpcClient) CheckTx(ctx context.Context, params *types.RequestCheckTx) (*types.ResponseCheckTx, error) { + return cli.client.CheckTx(ctx, types.ToRequestCheckTx(params).GetCheckTx(), grpc.WaitForReady(true)) +} + +func (cli *grpcClient) Query(ctx context.Context, params *types.RequestQuery) (*types.ResponseQuery, error) { + return cli.client.Query(ctx, types.ToRequestQuery(params).GetQuery(), grpc.WaitForReady(true)) +} + +func (cli *grpcClient) Commit(ctx context.Context) (*types.ResponseCommit, error) { + return cli.client.Commit(ctx, types.ToRequestCommit().GetCommit(), grpc.WaitForReady(true)) +} + +func (cli *grpcClient) InitChain(ctx context.Context, params *types.RequestInitChain) (*types.ResponseInitChain, error) { + return cli.client.InitChain(ctx, types.ToRequestInitChain(params).GetInitChain(), grpc.WaitForReady(true)) +} + +func (cli *grpcClient) ListSnapshots(ctx context.Context, params *types.RequestListSnapshots) (*types.ResponseListSnapshots, error) { + return cli.client.ListSnapshots(ctx, types.ToRequestListSnapshots(params).GetListSnapshots(), grpc.WaitForReady(true)) +} + +func (cli *grpcClient) OfferSnapshot(ctx context.Context, params *types.RequestOfferSnapshot) (*types.ResponseOfferSnapshot, error) { + return cli.client.OfferSnapshot(ctx, types.ToRequestOfferSnapshot(params).GetOfferSnapshot(), grpc.WaitForReady(true)) +} + +func (cli *grpcClient) LoadSnapshotChunk(ctx context.Context, params *types.RequestLoadSnapshotChunk) (*types.ResponseLoadSnapshotChunk, error) { + return cli.client.LoadSnapshotChunk(ctx, types.ToRequestLoadSnapshotChunk(params).GetLoadSnapshotChunk(), grpc.WaitForReady(true)) +} + +func (cli *grpcClient) ApplySnapshotChunk(ctx context.Context, params *types.RequestApplySnapshotChunk) (*types.ResponseApplySnapshotChunk, error) { + return cli.client.ApplySnapshotChunk(ctx, types.ToRequestApplySnapshotChunk(params).GetApplySnapshotChunk(), grpc.WaitForReady(true)) +} + +func (cli *grpcClient) PrepareProposal(ctx context.Context, params *types.RequestPrepareProposal) (*types.ResponsePrepareProposal, error) { + return cli.client.PrepareProposal(ctx, types.ToRequestPrepareProposal(params).GetPrepareProposal(), grpc.WaitForReady(true)) +} + +func (cli *grpcClient) ProcessProposal(ctx context.Context, params *types.RequestProcessProposal) (*types.ResponseProcessProposal, error) { + return cli.client.ProcessProposal(ctx, types.ToRequestProcessProposal(params).GetProcessProposal(), grpc.WaitForReady(true)) +} + +func (cli *grpcClient) ExtendVote(ctx context.Context, params *types.RequestExtendVote) (*types.ResponseExtendVote, error) { + return cli.client.ExtendVote(ctx, types.ToRequestExtendVote(params).GetExtendVote(), grpc.WaitForReady(true)) +} + +func (cli *grpcClient) VerifyVoteExtension(ctx context.Context, params *types.RequestVerifyVoteExtension) (*types.ResponseVerifyVoteExtension, error) { + return cli.client.VerifyVoteExtension(ctx, types.ToRequestVerifyVoteExtension(params).GetVerifyVoteExtension(), grpc.WaitForReady(true)) +} + +func (cli *grpcClient) FinalizeBlock(ctx context.Context, params *types.RequestFinalizeBlock) (*types.ResponseFinalizeBlock, error) { + return cli.client.FinalizeBlock(ctx, types.ToRequestFinalizeBlock(params).GetFinalizeBlock(), grpc.WaitForReady(true)) +} diff --git a/sei-tendermint/abci/client/local_client.go b/sei-tendermint/abci/client/local_client.go new file mode 100644 index 0000000000..1002c64e81 --- /dev/null +++ b/sei-tendermint/abci/client/local_client.go @@ -0,0 +1,40 @@ +package abciclient + +import ( + "context" + + types "github.com/tendermint/tendermint/abci/types" + "github.com/tendermint/tendermint/libs/log" + "github.com/tendermint/tendermint/libs/service" +) + +// NOTE: use defer to unlock mutex because Application might panic (e.g., in +// case of malicious tx or query). It only makes sense for publicly exposed +// methods like CheckTx (/broadcast_tx_* RPC endpoint) or Query (/abci_query +// RPC endpoint), but defers are used everywhere for the sake of consistency. +type localClient struct { + service.BaseService + types.Application +} + +var _ Client = (*localClient)(nil) + +// NewLocalClient creates a local client, which will be directly calling the +// methods of the given app. +// +// The client methods ignore their context argument. +func NewLocalClient(logger log.Logger, app types.Application) Client { + cli := &localClient{ + Application: app, + } + cli.BaseService = *service.NewBaseService(logger, "localClient", cli) + return cli +} + +func (*localClient) OnStart(context.Context) error { return nil } +func (*localClient) OnStop() {} +func (*localClient) Error() error { return nil } +func (*localClient) Flush(context.Context) error { return nil } +func (*localClient) Echo(_ context.Context, msg string) (*types.ResponseEcho, error) { + return &types.ResponseEcho{Message: msg}, nil +} diff --git a/sei-tendermint/abci/client/mocks/client.go b/sei-tendermint/abci/client/mocks/client.go new file mode 100644 index 0000000000..add3c2ae9d --- /dev/null +++ b/sei-tendermint/abci/client/mocks/client.go @@ -0,0 +1,436 @@ +// Code generated by mockery. DO NOT EDIT. + +package mocks + +import ( + context "context" + + mock "github.com/stretchr/testify/mock" + types "github.com/tendermint/tendermint/abci/types" +) + +// Client is an autogenerated mock type for the Client type +type Client struct { + mock.Mock +} + +// ApplySnapshotChunk provides a mock function with given fields: _a0, _a1 +func (_m *Client) ApplySnapshotChunk(_a0 context.Context, _a1 *types.RequestApplySnapshotChunk) (*types.ResponseApplySnapshotChunk, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseApplySnapshotChunk + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestApplySnapshotChunk) *types.ResponseApplySnapshotChunk); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseApplySnapshotChunk) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestApplySnapshotChunk) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// CheckTx provides a mock function with given fields: _a0, _a1 +func (_m *Client) CheckTx(_a0 context.Context, _a1 *types.RequestCheckTx) (*types.ResponseCheckTx, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseCheckTx + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestCheckTx) *types.ResponseCheckTx); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseCheckTx) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestCheckTx) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// Commit provides a mock function with given fields: _a0 +func (_m *Client) Commit(_a0 context.Context) (*types.ResponseCommit, error) { + ret := _m.Called(_a0) + + var r0 *types.ResponseCommit + if rf, ok := ret.Get(0).(func(context.Context) *types.ResponseCommit); ok { + r0 = rf(_a0) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseCommit) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context) error); ok { + r1 = rf(_a0) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// Echo provides a mock function with given fields: _a0, _a1 +func (_m *Client) Echo(_a0 context.Context, _a1 string) (*types.ResponseEcho, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseEcho + if rf, ok := ret.Get(0).(func(context.Context, string) *types.ResponseEcho); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseEcho) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, string) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// Error provides a mock function with given fields: +func (_m *Client) Error() error { + ret := _m.Called() + + var r0 error + if rf, ok := ret.Get(0).(func() error); ok { + r0 = rf() + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// ExtendVote provides a mock function with given fields: _a0, _a1 +func (_m *Client) ExtendVote(_a0 context.Context, _a1 *types.RequestExtendVote) (*types.ResponseExtendVote, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseExtendVote + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestExtendVote) *types.ResponseExtendVote); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseExtendVote) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestExtendVote) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// FinalizeBlock provides a mock function with given fields: _a0, _a1 +func (_m *Client) FinalizeBlock(_a0 context.Context, _a1 *types.RequestFinalizeBlock) (*types.ResponseFinalizeBlock, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseFinalizeBlock + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestFinalizeBlock) *types.ResponseFinalizeBlock); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseFinalizeBlock) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestFinalizeBlock) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// Flush provides a mock function with given fields: _a0 +func (_m *Client) Flush(_a0 context.Context) error { + ret := _m.Called(_a0) + + var r0 error + if rf, ok := ret.Get(0).(func(context.Context) error); ok { + r0 = rf(_a0) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// Info provides a mock function with given fields: _a0, _a1 +func (_m *Client) Info(_a0 context.Context, _a1 *types.RequestInfo) (*types.ResponseInfo, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseInfo + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestInfo) *types.ResponseInfo); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseInfo) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestInfo) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// InitChain provides a mock function with given fields: _a0, _a1 +func (_m *Client) InitChain(_a0 context.Context, _a1 *types.RequestInitChain) (*types.ResponseInitChain, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseInitChain + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestInitChain) *types.ResponseInitChain); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseInitChain) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestInitChain) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// IsRunning provides a mock function with given fields: +func (_m *Client) IsRunning() bool { + ret := _m.Called() + + var r0 bool + if rf, ok := ret.Get(0).(func() bool); ok { + r0 = rf() + } else { + r0 = ret.Get(0).(bool) + } + + return r0 +} + +// ListSnapshots provides a mock function with given fields: _a0, _a1 +func (_m *Client) ListSnapshots(_a0 context.Context, _a1 *types.RequestListSnapshots) (*types.ResponseListSnapshots, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseListSnapshots + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestListSnapshots) *types.ResponseListSnapshots); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseListSnapshots) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestListSnapshots) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// LoadSnapshotChunk provides a mock function with given fields: _a0, _a1 +func (_m *Client) LoadSnapshotChunk(_a0 context.Context, _a1 *types.RequestLoadSnapshotChunk) (*types.ResponseLoadSnapshotChunk, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseLoadSnapshotChunk + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestLoadSnapshotChunk) *types.ResponseLoadSnapshotChunk); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseLoadSnapshotChunk) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestLoadSnapshotChunk) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// OfferSnapshot provides a mock function with given fields: _a0, _a1 +func (_m *Client) OfferSnapshot(_a0 context.Context, _a1 *types.RequestOfferSnapshot) (*types.ResponseOfferSnapshot, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseOfferSnapshot + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestOfferSnapshot) *types.ResponseOfferSnapshot); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseOfferSnapshot) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestOfferSnapshot) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// PrepareProposal provides a mock function with given fields: _a0, _a1 +func (_m *Client) PrepareProposal(_a0 context.Context, _a1 *types.RequestPrepareProposal) (*types.ResponsePrepareProposal, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponsePrepareProposal + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestPrepareProposal) *types.ResponsePrepareProposal); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponsePrepareProposal) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestPrepareProposal) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// ProcessProposal provides a mock function with given fields: _a0, _a1 +func (_m *Client) ProcessProposal(_a0 context.Context, _a1 *types.RequestProcessProposal) (*types.ResponseProcessProposal, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseProcessProposal + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestProcessProposal) *types.ResponseProcessProposal); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseProcessProposal) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestProcessProposal) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// Query provides a mock function with given fields: _a0, _a1 +func (_m *Client) Query(_a0 context.Context, _a1 *types.RequestQuery) (*types.ResponseQuery, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseQuery + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestQuery) *types.ResponseQuery); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseQuery) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestQuery) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// Start provides a mock function with given fields: _a0 +func (_m *Client) Start(_a0 context.Context) error { + ret := _m.Called(_a0) + + var r0 error + if rf, ok := ret.Get(0).(func(context.Context) error); ok { + r0 = rf(_a0) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// VerifyVoteExtension provides a mock function with given fields: _a0, _a1 +func (_m *Client) VerifyVoteExtension(_a0 context.Context, _a1 *types.RequestVerifyVoteExtension) (*types.ResponseVerifyVoteExtension, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseVerifyVoteExtension + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestVerifyVoteExtension) *types.ResponseVerifyVoteExtension); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseVerifyVoteExtension) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestVerifyVoteExtension) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// Wait provides a mock function with given fields: +func (_m *Client) Wait() { + _m.Called() +} + +type NewClientT interface { + mock.TestingT + Cleanup(func()) +} + +// NewClient creates a new instance of Client. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +func NewClient(t NewClientT) *Client { + mock := &Client{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/sei-tendermint/abci/client/socket_client.go b/sei-tendermint/abci/client/socket_client.go new file mode 100644 index 0000000000..7dfcf76cc3 --- /dev/null +++ b/sei-tendermint/abci/client/socket_client.go @@ -0,0 +1,415 @@ +package abciclient + +import ( + "bufio" + "container/list" + "context" + "errors" + "fmt" + "io" + "net" + "sync" + "time" + + "github.com/tendermint/tendermint/abci/types" + "github.com/tendermint/tendermint/libs/log" + tmnet "github.com/tendermint/tendermint/libs/net" + "github.com/tendermint/tendermint/libs/service" +) + +// This is goroutine-safe, but users should beware that the application in +// general is not meant to be interfaced with concurrent callers. +type socketClient struct { + service.BaseService + logger log.Logger + + addr string + mustConnect bool + conn net.Conn + + reqQueue chan *requestAndResponse + + mtx sync.Mutex + err error + reqSent *list.List // list of requests sent, waiting for response +} + +var _ Client = (*socketClient)(nil) + +// NewSocketClient creates a new socket client, which connects to a given +// address. If mustConnect is true, the client will return an error upon start +// if it fails to connect. +func NewSocketClient(logger log.Logger, addr string, mustConnect bool) Client { + cli := &socketClient{ + logger: logger, + reqQueue: make(chan *requestAndResponse), + mustConnect: mustConnect, + addr: addr, + reqSent: list.New(), + } + cli.BaseService = *service.NewBaseService(logger, "socketClient", cli) + return cli +} + +// OnStart implements Service by connecting to the server and spawning reading +// and writing goroutines. +func (cli *socketClient) OnStart(ctx context.Context) error { + var ( + err error + conn net.Conn + ) + timer := time.NewTimer(0) + defer timer.Stop() + + for { + conn, err = tmnet.Connect(cli.addr) + if err != nil { + if cli.mustConnect { + return err + } + cli.logger.Error(fmt.Sprintf("abci.socketClient failed to connect to %v. Retrying after %vs...", + cli.addr, dialRetryIntervalSeconds), "err", err) + + timer.Reset(time.Second * dialRetryIntervalSeconds) + select { + case <-ctx.Done(): + return ctx.Err() + case <-timer.C: + continue + } + + } + cli.conn = conn + + go cli.sendRequestsRoutine(ctx, conn) + go cli.recvResponseRoutine(ctx, conn) + + return nil + } +} + +// OnStop implements Service by closing connection and flushing all queues. +func (cli *socketClient) OnStop() { + if cli.conn != nil { + cli.conn.Close() + } + cli.drainQueue() +} + +// Error returns an error if the client was stopped abruptly. +func (cli *socketClient) Error() error { + cli.mtx.Lock() + defer cli.mtx.Unlock() + return cli.err +} + +//---------------------------------------- + +func (cli *socketClient) sendRequestsRoutine(ctx context.Context, conn io.Writer) { + bw := bufio.NewWriter(conn) + for { + select { + case <-ctx.Done(): + return + case reqres := <-cli.reqQueue: + // N.B. We must enqueue before sending out the request, otherwise the + // server may reply before we do it, and the receiver will fail for an + // unsolicited reply. + cli.trackRequest(reqres) + + if err := types.WriteMessage(reqres.Request, bw); err != nil { + cli.stopForError(fmt.Errorf("write to buffer: %w", err)) + return + } + + if err := bw.Flush(); err != nil { + cli.stopForError(fmt.Errorf("flush buffer: %w", err)) + return + } + } + } +} + +func (cli *socketClient) recvResponseRoutine(ctx context.Context, conn io.Reader) { + r := bufio.NewReader(conn) + for { + if ctx.Err() != nil { + return + } + res := &types.Response{} + + if err := types.ReadMessage(r, res); err != nil { + cli.stopForError(fmt.Errorf("read message: %w", err)) + return + } + + switch r := res.Value.(type) { + case *types.Response_Exception: // app responded with error + // XXX After setting cli.err, release waiters (e.g. reqres.Done()) + cli.stopForError(errors.New(r.Exception.Error)) + return + default: + if err := cli.didRecvResponse(res); err != nil { + cli.stopForError(err) + return + } + } + } +} + +func (cli *socketClient) trackRequest(reqres *requestAndResponse) { + // N.B. We must NOT hold the client state lock while checking this, or we + // may deadlock with shutdown. + if !cli.IsRunning() { + return + } + + cli.mtx.Lock() + defer cli.mtx.Unlock() + cli.reqSent.PushBack(reqres) +} + +func (cli *socketClient) didRecvResponse(res *types.Response) error { + cli.mtx.Lock() + defer cli.mtx.Unlock() + + // Get the first ReqRes. + next := cli.reqSent.Front() + if next == nil { + return fmt.Errorf("unexpected %T when nothing expected", res.Value) + } + + reqres := next.Value.(*requestAndResponse) + if !resMatchesReq(reqres.Request, res) { + return fmt.Errorf("unexpected %T when response to %T expected", res.Value, reqres.Request.Value) + } + + reqres.Response = res + reqres.markDone() // release waiters + cli.reqSent.Remove(next) // pop first item from linked list + + return nil +} + +//---------------------------------------- + +func (cli *socketClient) doRequest(ctx context.Context, req *types.Request) (*types.Response, error) { + if !cli.IsRunning() { + return nil, errors.New("client has stopped") + } + + reqres := makeReqRes(req) + + select { + case cli.reqQueue <- reqres: + case <-ctx.Done(): + return nil, fmt.Errorf("can't queue req: %w", ctx.Err()) + } + + select { + case <-reqres.signal: + if err := cli.Error(); err != nil { + return nil, err + } + + return reqres.Response, nil + case <-ctx.Done(): + return nil, ctx.Err() + } +} + +// drainQueue marks as complete and discards all remaining pending requests +// from the queue. +func (cli *socketClient) drainQueue() { + cli.mtx.Lock() + defer cli.mtx.Unlock() + + // mark all in-flight messages as resolved (they will get cli.Error()) + for req := cli.reqSent.Front(); req != nil; req = req.Next() { + reqres := req.Value.(*requestAndResponse) + reqres.markDone() + } +} + +//---------------------------------------- + +func (cli *socketClient) Flush(ctx context.Context) error { + _, err := cli.doRequest(ctx, types.ToRequestFlush()) + if err != nil { + return err + } + return nil +} + +func (cli *socketClient) Echo(ctx context.Context, msg string) (*types.ResponseEcho, error) { + res, err := cli.doRequest(ctx, types.ToRequestEcho(msg)) + if err != nil { + return nil, err + } + return res.GetEcho(), nil +} + +func (cli *socketClient) Info(ctx context.Context, req *types.RequestInfo) (*types.ResponseInfo, error) { + res, err := cli.doRequest(ctx, types.ToRequestInfo(req)) + if err != nil { + return nil, err + } + return res.GetInfo(), nil +} + +func (cli *socketClient) CheckTx(ctx context.Context, req *types.RequestCheckTx) (*types.ResponseCheckTx, error) { + res, err := cli.doRequest(ctx, types.ToRequestCheckTx(req)) + if err != nil { + return nil, err + } + return res.GetCheckTx(), nil +} + +func (cli *socketClient) Query(ctx context.Context, req *types.RequestQuery) (*types.ResponseQuery, error) { + res, err := cli.doRequest(ctx, types.ToRequestQuery(req)) + if err != nil { + return nil, err + } + return res.GetQuery(), nil +} + +func (cli *socketClient) Commit(ctx context.Context) (*types.ResponseCommit, error) { + res, err := cli.doRequest(ctx, types.ToRequestCommit()) + if err != nil { + return nil, err + } + return res.GetCommit(), nil +} + +func (cli *socketClient) InitChain(ctx context.Context, req *types.RequestInitChain) (*types.ResponseInitChain, error) { + res, err := cli.doRequest(ctx, types.ToRequestInitChain(req)) + if err != nil { + return nil, err + } + return res.GetInitChain(), nil +} + +func (cli *socketClient) ListSnapshots(ctx context.Context, req *types.RequestListSnapshots) (*types.ResponseListSnapshots, error) { + res, err := cli.doRequest(ctx, types.ToRequestListSnapshots(req)) + if err != nil { + return nil, err + } + return res.GetListSnapshots(), nil +} + +func (cli *socketClient) OfferSnapshot(ctx context.Context, req *types.RequestOfferSnapshot) (*types.ResponseOfferSnapshot, error) { + res, err := cli.doRequest(ctx, types.ToRequestOfferSnapshot(req)) + if err != nil { + return nil, err + } + return res.GetOfferSnapshot(), nil +} + +func (cli *socketClient) LoadSnapshotChunk(ctx context.Context, req *types.RequestLoadSnapshotChunk) (*types.ResponseLoadSnapshotChunk, error) { + res, err := cli.doRequest(ctx, types.ToRequestLoadSnapshotChunk(req)) + if err != nil { + return nil, err + } + return res.GetLoadSnapshotChunk(), nil +} + +func (cli *socketClient) ApplySnapshotChunk(ctx context.Context, req *types.RequestApplySnapshotChunk) (*types.ResponseApplySnapshotChunk, error) { + res, err := cli.doRequest(ctx, types.ToRequestApplySnapshotChunk(req)) + if err != nil { + return nil, err + } + return res.GetApplySnapshotChunk(), nil +} + +func (cli *socketClient) PrepareProposal(ctx context.Context, req *types.RequestPrepareProposal) (*types.ResponsePrepareProposal, error) { + res, err := cli.doRequest(ctx, types.ToRequestPrepareProposal(req)) + if err != nil { + return nil, err + } + return res.GetPrepareProposal(), nil +} + +func (cli *socketClient) ProcessProposal(ctx context.Context, req *types.RequestProcessProposal) (*types.ResponseProcessProposal, error) { + res, err := cli.doRequest(ctx, types.ToRequestProcessProposal(req)) + if err != nil { + return nil, err + } + return res.GetProcessProposal(), nil +} + +func (cli *socketClient) ExtendVote(ctx context.Context, req *types.RequestExtendVote) (*types.ResponseExtendVote, error) { + res, err := cli.doRequest(ctx, types.ToRequestExtendVote(req)) + if err != nil { + return nil, err + } + return res.GetExtendVote(), nil +} + +func (cli *socketClient) VerifyVoteExtension(ctx context.Context, req *types.RequestVerifyVoteExtension) (*types.ResponseVerifyVoteExtension, error) { + res, err := cli.doRequest(ctx, types.ToRequestVerifyVoteExtension(req)) + if err != nil { + return nil, err + } + return res.GetVerifyVoteExtension(), nil +} + +func (cli *socketClient) FinalizeBlock(ctx context.Context, req *types.RequestFinalizeBlock) (*types.ResponseFinalizeBlock, error) { + res, err := cli.doRequest(ctx, types.ToRequestFinalizeBlock(req)) + if err != nil { + return nil, err + } + return res.GetFinalizeBlock(), nil +} + +//---------------------------------------- + +func resMatchesReq(req *types.Request, res *types.Response) (ok bool) { + switch req.Value.(type) { + case *types.Request_Echo: + _, ok = res.Value.(*types.Response_Echo) + case *types.Request_Flush: + _, ok = res.Value.(*types.Response_Flush) + case *types.Request_Info: + _, ok = res.Value.(*types.Response_Info) + case *types.Request_CheckTx: + _, ok = res.Value.(*types.Response_CheckTx) + case *types.Request_Commit: + _, ok = res.Value.(*types.Response_Commit) + case *types.Request_Query: + _, ok = res.Value.(*types.Response_Query) + case *types.Request_InitChain: + _, ok = res.Value.(*types.Response_InitChain) + case *types.Request_ProcessProposal: + _, ok = res.Value.(*types.Response_ProcessProposal) + case *types.Request_PrepareProposal: + _, ok = res.Value.(*types.Response_PrepareProposal) + case *types.Request_ExtendVote: + _, ok = res.Value.(*types.Response_ExtendVote) + case *types.Request_VerifyVoteExtension: + _, ok = res.Value.(*types.Response_VerifyVoteExtension) + case *types.Request_ApplySnapshotChunk: + _, ok = res.Value.(*types.Response_ApplySnapshotChunk) + case *types.Request_LoadSnapshotChunk: + _, ok = res.Value.(*types.Response_LoadSnapshotChunk) + case *types.Request_ListSnapshots: + _, ok = res.Value.(*types.Response_ListSnapshots) + case *types.Request_OfferSnapshot: + _, ok = res.Value.(*types.Response_OfferSnapshot) + case *types.Request_FinalizeBlock: + _, ok = res.Value.(*types.Response_FinalizeBlock) + } + return ok +} + +func (cli *socketClient) stopForError(err error) { + if !cli.IsRunning() { + return + } + + cli.mtx.Lock() + cli.err = err + cli.mtx.Unlock() + + cli.logger.Info("Stopping abci.socketClient", "reason", err) + cli.Stop() +} diff --git a/sei-tendermint/abci/cmd/abci-cli/abci-cli.go b/sei-tendermint/abci/cmd/abci-cli/abci-cli.go new file mode 100644 index 0000000000..b09f3c9a7b --- /dev/null +++ b/sei-tendermint/abci/cmd/abci-cli/abci-cli.go @@ -0,0 +1,701 @@ +package main + +import ( + "bufio" + "encoding/hex" + "errors" + "fmt" + "io" + "os" + "os/signal" + "strings" + "syscall" + + "github.com/spf13/cobra" + + "github.com/tendermint/tendermint/libs/log" + "github.com/tendermint/tendermint/version" + + abciclient "github.com/tendermint/tendermint/abci/client" + "github.com/tendermint/tendermint/abci/example/code" + "github.com/tendermint/tendermint/abci/example/kvstore" + "github.com/tendermint/tendermint/abci/server" + servertest "github.com/tendermint/tendermint/abci/tests/server" + "github.com/tendermint/tendermint/abci/types" + "github.com/tendermint/tendermint/proto/tendermint/crypto" +) + +// client is a global variable so it can be reused by the console +var ( + client abciclient.Client +) + +// flags +var ( + // global + flagAddress string + flagAbci string + flagVerbose bool // for the println output + flagLogLevel string // for the logger + + // query + flagPath string + flagHeight int + flagProve bool + + // kvstore + flagPersist string +) + +func RootCmmand(logger log.Logger) *cobra.Command { + return &cobra.Command{ + Use: "abci-cli", + Short: "the ABCI CLI tool wraps an ABCI client", + Long: "the ABCI CLI tool wraps an ABCI client and is used for testing ABCI servers", + PersistentPreRunE: func(cmd *cobra.Command, args []string) (err error) { + + switch cmd.Use { + case "kvstore", "version": + return nil + } + + if client == nil { + var err error + client, err = abciclient.NewClient(logger.With("module", "abci-client"), flagAddress, flagAbci, false) + if err != nil { + return err + } + + if err := client.Start(cmd.Context()); err != nil { + return err + } + } + return nil + }, + } +} + +// Structure for data passed to print response. +type response struct { + // generic abci response + Data []byte + Code uint32 + Info string + Log string + + Query *queryResponse +} + +type queryResponse struct { + Key []byte + Value []byte + Height int64 + ProofOps *crypto.ProofOps +} + +func Execute() error { + logger, err := log.NewDefaultLogger(log.LogFormatPlain, log.LogLevelInfo) + if err != nil { + return err + } + + cmd := RootCmmand(logger) + addGlobalFlags(cmd) + addCommands(cmd, logger) + return cmd.Execute() +} + +func addGlobalFlags(cmd *cobra.Command) { + cmd.PersistentFlags().StringVarP(&flagAddress, + "address", + "", + "tcp://0.0.0.0:26658", + "address of application socket") + cmd.PersistentFlags().StringVarP(&flagAbci, "abci", "", "socket", "either socket or grpc") + cmd.PersistentFlags().BoolVarP(&flagVerbose, + "verbose", + "v", + false, + "print the command and results as if it were a console session") + cmd.PersistentFlags().StringVarP(&flagLogLevel, "log_level", "", "debug", "set the logger level") +} + +func addCommands(cmd *cobra.Command, logger log.Logger) { + cmd.AddCommand(batchCmd) + cmd.AddCommand(consoleCmd) + cmd.AddCommand(echoCmd) + cmd.AddCommand(infoCmd) + cmd.AddCommand(finalizeBlockCmd) + cmd.AddCommand(checkTxCmd) + cmd.AddCommand(commitCmd) + cmd.AddCommand(versionCmd) + cmd.AddCommand(testCmd) + cmd.AddCommand(getQueryCmd()) + + // examples + cmd.AddCommand(getKVStoreCmd(logger)) +} + +var batchCmd = &cobra.Command{ + Use: "batch", + Short: "run a batch of abci commands against an application", + Long: `run a batch of abci commands against an application + +This command is run by piping in a file containing a series of commands +you'd like to run: + + abci-cli batch < example.file + +where example.file looks something like: + + check_tx 0x00 + check_tx 0xff + finalize_block 0x00 + commit + check_tx 0x00 + finalize_block 0x01 0x04 0xff + commit + info +`, + Args: cobra.ExactArgs(0), + RunE: cmdBatch, +} + +var consoleCmd = &cobra.Command{ + Use: "console", + Short: "start an interactive ABCI console for multiple commands", + Long: `start an interactive ABCI console for multiple commands + +This command opens an interactive console for running any of the other commands +without opening a new connection each time +`, + Args: cobra.ExactArgs(0), + ValidArgs: []string{"echo", "info", "finalize_block", "check_tx", "commit", "query"}, + RunE: cmdConsole, +} + +var echoCmd = &cobra.Command{ + Use: "echo", + Short: "have the application echo a message", + Long: "have the application echo a message", + Args: cobra.ExactArgs(1), + RunE: cmdEcho, +} +var infoCmd = &cobra.Command{ + Use: "info", + Short: "get some info about the application", + Long: "get some info about the application", + Args: cobra.ExactArgs(0), + RunE: cmdInfo, +} + +var finalizeBlockCmd = &cobra.Command{ + Use: "finalize_block", + Short: "deliver a block of transactions to the application", + Long: "deliver a block of transactions to the application", + Args: cobra.MinimumNArgs(1), + RunE: cmdFinalizeBlock, +} + +var checkTxCmd = &cobra.Command{ + Use: "check_tx", + Short: "validate a transaction", + Long: "validate a transaction", + Args: cobra.ExactArgs(1), + RunE: cmdCheckTx, +} + +var commitCmd = &cobra.Command{ + Use: "commit", + Short: "commit the application state and return the Merkle root hash", + Long: "commit the application state and return the Merkle root hash", + Args: cobra.ExactArgs(0), + RunE: cmdCommit, +} + +var versionCmd = &cobra.Command{ + Use: "version", + Short: "print ABCI console version", + Long: "print ABCI console version", + Args: cobra.ExactArgs(0), + RunE: func(cmd *cobra.Command, args []string) error { + fmt.Println(version.ABCIVersion) + return nil + }, +} + +func getQueryCmd() *cobra.Command { + cmd := &cobra.Command{ + Use: "query", + Short: "query the application state", + Long: "query the application state", + Args: cobra.ExactArgs(1), + RunE: cmdQuery, + } + + cmd.PersistentFlags().StringVarP(&flagPath, "path", "", "/store", "path to prefix query with") + cmd.PersistentFlags().IntVarP(&flagHeight, "height", "", 0, "height to query the blockchain at") + cmd.PersistentFlags().BoolVarP(&flagProve, + "prove", + "", + false, + "whether or not to return a merkle proof of the query result") + + return cmd +} + +func getKVStoreCmd(logger log.Logger) *cobra.Command { + cmd := &cobra.Command{ + Use: "kvstore", + Short: "ABCI demo example", + Long: "ABCI demo example", + Args: cobra.ExactArgs(0), + RunE: makeKVStoreCmd(logger), + } + + cmd.PersistentFlags().StringVarP(&flagPersist, "persist", "", "", "directory to use for a database") + return cmd + +} + +var testCmd = &cobra.Command{ + Use: "test", + Short: "run integration tests", + Long: "run integration tests", + Args: cobra.ExactArgs(0), + RunE: cmdTest, +} + +// Generates new Args array based off of previous call args to maintain flag persistence +func persistentArgs(line []byte) []string { + + // generate the arguments to run from original os.Args + // to maintain flag arguments + args := os.Args + args = args[:len(args)-1] // remove the previous command argument + + if len(line) > 0 { // prevents introduction of extra space leading to argument parse errors + args = append(args, strings.Split(string(line), " ")...) + } + return args +} + +//-------------------------------------------------------------------------------- + +func compose(fs []func() error) error { + if len(fs) == 0 { + return nil + } + + err := fs[0]() + if err == nil { + return compose(fs[1:]) + } + + return err +} + +func cmdTest(cmd *cobra.Command, args []string) error { + ctx := cmd.Context() + return compose( + []func() error{ + func() error { return servertest.InitChain(ctx, client) }, + func() error { return servertest.Commit(ctx, client) }, + func() error { + return servertest.FinalizeBlock(ctx, client, [][]byte{ + []byte("abc"), + }, []uint32{ + code.CodeTypeBadNonce, + }, nil, nil) + }, + func() error { return servertest.Commit(ctx, client) }, + func() error { + return servertest.FinalizeBlock(ctx, client, [][]byte{ + {0x00}, + }, []uint32{ + code.CodeTypeOK, + }, nil, []byte{0, 0, 0, 0, 0, 0, 0, 1}) + }, + func() error { return servertest.Commit(ctx, client) }, + func() error { + return servertest.FinalizeBlock(ctx, client, [][]byte{ + {0x00}, + {0x01}, + {0x00, 0x02}, + {0x00, 0x03}, + {0x00, 0x00, 0x04}, + {0x00, 0x00, 0x06}, + }, []uint32{ + code.CodeTypeBadNonce, + code.CodeTypeOK, + code.CodeTypeOK, + code.CodeTypeOK, + code.CodeTypeOK, + code.CodeTypeBadNonce, + }, nil, []byte{0, 0, 0, 0, 0, 0, 0, 5}) + }, + func() error { return servertest.Commit(ctx, client) }, + }) +} + +func cmdBatch(cmd *cobra.Command, args []string) error { + bufReader := bufio.NewReader(os.Stdin) +LOOP: + for { + + line, more, err := bufReader.ReadLine() + switch { + case more: + return errors.New("input line is too long") + case err == io.EOF: + break LOOP + case len(line) == 0: + continue + case err != nil: + return err + } + + cmdArgs := persistentArgs(line) + if err := muxOnCommands(cmd, cmdArgs); err != nil { + return err + } + fmt.Println() + } + return nil +} + +func cmdConsole(cmd *cobra.Command, args []string) error { + for { + fmt.Printf("> ") + bufReader := bufio.NewReader(os.Stdin) + line, more, err := bufReader.ReadLine() + if more { + return errors.New("input is too long") + } else if err != nil { + return err + } + + pArgs := persistentArgs(line) + if err := muxOnCommands(cmd, pArgs); err != nil { + return err + } + } +} + +func muxOnCommands(cmd *cobra.Command, pArgs []string) error { + if len(pArgs) < 2 { + return errors.New("expecting persistent args of the form: abci-cli [command] <...>") + } + + // TODO: this parsing is fragile + args := []string{} + for i := 0; i < len(pArgs); i++ { + arg := pArgs[i] + + // check for flags + if strings.HasPrefix(arg, "-") { + // if it has an equal, we can just skip + if strings.Contains(arg, "=") { + continue + } + // if its a boolean, we can just skip + _, err := cmd.Flags().GetBool(strings.TrimLeft(arg, "-")) + if err == nil { + continue + } + + // otherwise, we need to skip the next one too + i++ + continue + } + + // append the actual arg + args = append(args, arg) + } + var subCommand string + var actualArgs []string + if len(args) > 1 { + subCommand = args[1] + } + if len(args) > 2 { + actualArgs = args[2:] + } + cmd.Use = subCommand // for later print statements ... + + switch strings.ToLower(subCommand) { + case "check_tx": + return cmdCheckTx(cmd, actualArgs) + case "commit": + return cmdCommit(cmd, actualArgs) + case "finalize_block": + return cmdFinalizeBlock(cmd, actualArgs) + case "echo": + return cmdEcho(cmd, actualArgs) + case "info": + return cmdInfo(cmd, actualArgs) + case "query": + return cmdQuery(cmd, actualArgs) + default: + return cmdUnimplemented(cmd, pArgs) + } +} + +func cmdUnimplemented(cmd *cobra.Command, args []string) error { + msg := "unimplemented command" + + if len(args) > 0 { + msg += fmt.Sprintf(" args: [%s]", strings.Join(args, " ")) + } + printResponse(cmd, args, response{ + Code: codeBad, + Log: msg, + }) + + fmt.Println("Available commands:") + for _, cmd := range cmd.Commands() { + fmt.Printf("%s: %s\n", cmd.Use, cmd.Short) + } + fmt.Println("Use \"[command] --help\" for more information about a command.") + + return nil +} + +// Have the application echo a message +func cmdEcho(cmd *cobra.Command, args []string) error { + msg := "" + if len(args) > 0 { + msg = args[0] + } + res, err := client.Echo(cmd.Context(), msg) + if err != nil { + return err + } + + printResponse(cmd, args, response{ + Data: []byte(res.Message), + }) + + return nil +} + +// Get some info from the application +func cmdInfo(cmd *cobra.Command, args []string) error { + var version string + if len(args) == 1 { + version = args[0] + } + res, err := client.Info(cmd.Context(), &types.RequestInfo{Version: version}) + if err != nil { + return err + } + printResponse(cmd, args, response{ + Data: []byte(res.Data), + }) + return nil +} + +const codeBad uint32 = 10 + +// Append new txs to application +func cmdFinalizeBlock(cmd *cobra.Command, args []string) error { + if len(args) == 0 { + printResponse(cmd, args, response{ + Code: codeBad, + Log: "Must provide at least one transaction", + }) + return nil + } + txs := make([][]byte, len(args)) + for i, arg := range args { + txBytes, err := stringOrHexToBytes(arg) + if err != nil { + return err + } + txs[i] = txBytes + } + res, err := client.FinalizeBlock(cmd.Context(), &types.RequestFinalizeBlock{Txs: txs}) + if err != nil { + return err + } + resps := make([]response, 0, len(res.TxResults)+1) + for _, tx := range res.TxResults { + resps = append(resps, response{ + Code: tx.Code, + Data: tx.Data, + Info: tx.Info, + Log: tx.Log, + }) + } + resps = append(resps, response{ + Data: res.AppHash, + }) + printResponse(cmd, args, resps...) + return nil +} + +// Validate a tx +func cmdCheckTx(cmd *cobra.Command, args []string) error { + if len(args) == 0 { + printResponse(cmd, args, response{ + Code: codeBad, + Info: "want the tx", + }) + return nil + } + txBytes, err := stringOrHexToBytes(args[0]) + if err != nil { + return err + } + res, err := client.CheckTx(cmd.Context(), &types.RequestCheckTx{Tx: txBytes}) + if err != nil { + return err + } + printResponse(cmd, args, response{ + Code: res.Code, + Data: res.Data, + }) + return nil +} + +// Get application Merkle root hash +func cmdCommit(cmd *cobra.Command, args []string) error { + _, err := client.Commit(cmd.Context()) + if err != nil { + return err + } + printResponse(cmd, args, response{}) + return nil +} + +// Query application state +func cmdQuery(cmd *cobra.Command, args []string) error { + if len(args) == 0 { + printResponse(cmd, args, response{ + Code: codeBad, + Info: "want the query", + Log: "", + }) + return nil + } + queryBytes, err := stringOrHexToBytes(args[0]) + if err != nil { + return err + } + + resQuery, err := client.Query(cmd.Context(), &types.RequestQuery{ + Data: queryBytes, + Path: flagPath, + Height: int64(flagHeight), + Prove: flagProve, + }) + if err != nil { + return err + } + printResponse(cmd, args, response{ + Code: resQuery.Code, + Info: resQuery.Info, + Log: resQuery.Log, + Query: &queryResponse{ + Key: resQuery.Key, + Value: resQuery.Value, + Height: resQuery.Height, + ProofOps: resQuery.ProofOps, + }, + }) + return nil +} + +func makeKVStoreCmd(logger log.Logger) func(*cobra.Command, []string) error { + return func(cmd *cobra.Command, args []string) error { + // Create the application - in memory or persisted to disk + var app types.Application + if flagPersist == "" { + app = kvstore.NewApplication() + } else { + app = kvstore.NewPersistentKVStoreApplication(logger, flagPersist) + } + + // Start the listener + srv, err := server.NewServer(logger.With("module", "abci-server"), flagAddress, flagAbci, app) + if err != nil { + return err + } + + ctx, cancel := signal.NotifyContext(cmd.Context(), syscall.SIGTERM) + defer cancel() + + if err := srv.Start(ctx); err != nil { + return err + } + + // Run forever. + <-ctx.Done() + return nil + } + +} + +//-------------------------------------------------------------------------------- + +func printResponse(cmd *cobra.Command, args []string, rsps ...response) { + + if flagVerbose { + fmt.Println(">", cmd.Use, strings.Join(args, " ")) + } + + for _, rsp := range rsps { + // Always print the status code. + if rsp.Code == types.CodeTypeOK { + fmt.Printf("-> code: OK\n") + } else { + fmt.Printf("-> code: %d\n", rsp.Code) + + } + + if len(rsp.Data) != 0 { + // Do no print this line when using the finalize_block command + // because the string comes out as gibberish + if cmd.Use != "finalize_block" { + fmt.Printf("-> data: %s\n", rsp.Data) + } + fmt.Printf("-> data.hex: 0x%X\n", rsp.Data) + } + if rsp.Log != "" { + fmt.Printf("-> log: %s\n", rsp.Log) + } + + if rsp.Query != nil { + fmt.Printf("-> height: %d\n", rsp.Query.Height) + if rsp.Query.Key != nil { + fmt.Printf("-> key: %s\n", rsp.Query.Key) + fmt.Printf("-> key.hex: %X\n", rsp.Query.Key) + } + if rsp.Query.Value != nil { + fmt.Printf("-> value: %s\n", rsp.Query.Value) + fmt.Printf("-> value.hex: %X\n", rsp.Query.Value) + } + if rsp.Query.ProofOps != nil { + fmt.Printf("-> proof: %#v\n", rsp.Query.ProofOps) + } + } + } +} + +// NOTE: s is interpreted as a string unless prefixed with 0x +func stringOrHexToBytes(s string) ([]byte, error) { + if len(s) > 2 && strings.ToLower(s[:2]) == "0x" { + b, err := hex.DecodeString(s[2:]) + if err != nil { + err = fmt.Errorf("error decoding hex argument: %s", err.Error()) + return nil, err + } + return b, nil + } + + if !strings.HasPrefix(s, "\"") || !strings.HasSuffix(s, "\"") { + err := fmt.Errorf("invalid string arg: \"%s\". Must be quoted or a \"0x\"-prefixed hex string", s) + return nil, err + } + + return []byte(s[1 : len(s)-1]), nil +} diff --git a/sei-tendermint/abci/cmd/abci-cli/main.go b/sei-tendermint/abci/cmd/abci-cli/main.go new file mode 100644 index 0000000000..a927e7ed8a --- /dev/null +++ b/sei-tendermint/abci/cmd/abci-cli/main.go @@ -0,0 +1,14 @@ +package main + +import ( + "fmt" + "os" +) + +func main() { + err := Execute() + if err != nil { + fmt.Print(err) + os.Exit(1) + } +} diff --git a/sei-tendermint/abci/example/code/code.go b/sei-tendermint/abci/example/code/code.go new file mode 100644 index 0000000000..988b2a93ea --- /dev/null +++ b/sei-tendermint/abci/example/code/code.go @@ -0,0 +1,10 @@ +package code + +// Return codes for the examples +const ( + CodeTypeOK uint32 = 0 + CodeTypeEncodingError uint32 = 1 + CodeTypeBadNonce uint32 = 2 + CodeTypeUnauthorized uint32 = 3 + CodeTypeUnknownError uint32 = 4 +) diff --git a/sei-tendermint/abci/example/example.go b/sei-tendermint/abci/example/example.go new file mode 100644 index 0000000000..ee491c1b56 --- /dev/null +++ b/sei-tendermint/abci/example/example.go @@ -0,0 +1,3 @@ +package example + +// so the go tool doesn't return errors about no buildable go files ... diff --git a/sei-tendermint/abci/example/example_test.go b/sei-tendermint/abci/example/example_test.go new file mode 100644 index 0000000000..066d4071d7 --- /dev/null +++ b/sei-tendermint/abci/example/example_test.go @@ -0,0 +1,145 @@ +package example + +import ( + "context" + "fmt" + "math/rand" + "net" + "os" + "testing" + "time" + + "github.com/stretchr/testify/require" + + "google.golang.org/grpc" + "google.golang.org/grpc/credentials/insecure" + + "github.com/tendermint/tendermint/libs/log" + tmnet "github.com/tendermint/tendermint/libs/net" + + abciclient "github.com/tendermint/tendermint/abci/client" + "github.com/tendermint/tendermint/abci/example/code" + "github.com/tendermint/tendermint/abci/example/kvstore" + abciserver "github.com/tendermint/tendermint/abci/server" + "github.com/tendermint/tendermint/abci/types" +) + +func init() { + rand.Seed(time.Now().UnixNano()) +} + +func TestKVStore(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + logger := log.NewNopLogger() + + t.Log("### Testing KVStore") + testBulk(ctx, t, logger, kvstore.NewApplication()) +} + +func TestBaseApp(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + logger := log.NewNopLogger() + + t.Log("### Testing BaseApp") + testBulk(ctx, t, logger, types.NewBaseApplication()) +} + +func TestGRPC(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + logger := log.NewNopLogger() + + t.Log("### Testing GRPC") + testGRPCSync(ctx, t, logger, types.NewBaseApplication()) +} + +func testBulk(ctx context.Context, t *testing.T, logger log.Logger, app types.Application) { + t.Helper() + + const numDeliverTxs = 700000 + socketFile := fmt.Sprintf("test-%08x.sock", rand.Int31n(1<<30)) + defer os.Remove(socketFile) + socket := fmt.Sprintf("unix://%v", socketFile) + // Start the listener + server := abciserver.NewSocketServer(logger.With("module", "abci-server"), socket, app) + t.Cleanup(server.Wait) + err := server.Start(ctx) + require.NoError(t, err) + + // Connect to the socket + client := abciclient.NewSocketClient(logger.With("module", "abci-client"), socket, false) + t.Cleanup(client.Wait) + + err = client.Start(ctx) + require.NoError(t, err) + + // Construct request + rfb := &types.RequestFinalizeBlock{Txs: make([][]byte, numDeliverTxs)} + for counter := 0; counter < numDeliverTxs; counter++ { + rfb.Txs[counter] = []byte("test") + } + // Send bulk request + res, err := client.FinalizeBlock(ctx, rfb) + require.NoError(t, err) + require.Equal(t, numDeliverTxs, len(res.TxResults), "Number of txs doesn't match") + for _, tx := range res.TxResults { + require.Equal(t, tx.Code, code.CodeTypeOK, "Tx failed") + } + + // Send final flush message + err = client.Flush(ctx) + require.NoError(t, err) +} + +//------------------------- +// test grpc + +func dialerFunc(ctx context.Context, addr string) (net.Conn, error) { + return tmnet.Connect(addr) +} + +func testGRPCSync(ctx context.Context, t *testing.T, logger log.Logger, app types.Application) { + t.Helper() + numDeliverTxs := 680000 + socketFile := fmt.Sprintf("/tmp/test-%08x.sock", rand.Int31n(1<<30)) + defer os.Remove(socketFile) + socket := fmt.Sprintf("unix://%v", socketFile) + + // Start the listener + server := abciserver.NewGRPCServer(logger.With("module", "abci-server"), socket, app) + + require.NoError(t, server.Start(ctx)) + t.Cleanup(server.Wait) + + // Connect to the socket + conn, err := grpc.Dial(socket, + grpc.WithTransportCredentials(insecure.NewCredentials()), + grpc.WithContextDialer(dialerFunc), + ) + require.NoError(t, err, "Error dialing GRPC server") + + t.Cleanup(func() { + if err := conn.Close(); err != nil { + t.Error(err) + } + }) + + client := types.NewABCIApplicationClient(conn) + + // Construct request + rfb := types.RequestFinalizeBlock{Txs: make([][]byte, numDeliverTxs)} + for counter := 0; counter < numDeliverTxs; counter++ { + rfb.Txs[counter] = []byte("test") + } + + // Send request + response, err := client.FinalizeBlock(ctx, &rfb) + require.NoError(t, err, "Error in GRPC FinalizeBlock") + require.Equal(t, numDeliverTxs, len(response.TxResults), "Number of txs returned via GRPC doesn't match") + for _, tx := range response.TxResults { + require.Equal(t, tx.Code, code.CodeTypeOK, "Tx failed") + } +} diff --git a/sei-tendermint/abci/example/kvstore/README.md b/sei-tendermint/abci/example/kvstore/README.md new file mode 100644 index 0000000000..a768342f8b --- /dev/null +++ b/sei-tendermint/abci/example/kvstore/README.md @@ -0,0 +1,30 @@ +# KVStore + +There are two app's here: the KVStoreApplication and the PersistentKVStoreApplication. + +## KVStoreApplication + +The KVStoreApplication is a simple merkle key-value store. +Transactions of the form `key=value` are stored as key-value pairs in the tree. +Transactions without an `=` sign set the value to the key. +The app has no replay protection (other than what the mempool provides). + +## PersistentKVStoreApplication + +The PersistentKVStoreApplication wraps the KVStoreApplication +and provides three additional features: + +1) persistence of state across app restarts (using Tendermint's ABCI-Handshake mechanism) +2) validator set changes + +The state is persisted in leveldb along with the last block committed, +and the Handshake allows any necessary blocks to be replayed. +Validator set changes are effected using the following transaction format: + +```md +"val:pubkey1!power1,pubkey2!power2,pubkey3!power3" +``` + +where `pubkeyN` is a base64-encoded 32-byte ed25519 key and `powerN` is a new voting power for the validator with `pubkeyN` (possibly a new one). +To remove a validator from the validator set, set power to `0`. +There is no sybil protection against new validators joining. diff --git a/sei-tendermint/abci/example/kvstore/helpers.go b/sei-tendermint/abci/example/kvstore/helpers.go new file mode 100644 index 0000000000..8a2a8a35b1 --- /dev/null +++ b/sei-tendermint/abci/example/kvstore/helpers.go @@ -0,0 +1,41 @@ +package kvstore + +import ( + "context" + mrand "math/rand" + + "github.com/tendermint/tendermint/abci/types" + tmrand "github.com/tendermint/tendermint/libs/rand" +) + +// RandVal creates one random validator, with a key derived +// from the input value +func RandVal(i int) types.ValidatorUpdate { + pubkey := tmrand.Bytes(32) + // Random value between [0, 2^16 - 1] + power := mrand.Uint32() & (1<<16 - 1) // nolint:gosec // G404: Use of weak random number generator + v := types.UpdateValidator(pubkey, int64(power), "") + return v +} + +// RandVals returns a list of cnt validators for initializing +// the application. Note that the keys are deterministically +// derived from the index in the array, while the power is +// random (Change this if not desired) +func RandVals(cnt int) []types.ValidatorUpdate { + res := make([]types.ValidatorUpdate, cnt) + for i := 0; i < cnt; i++ { + res[i] = RandVal(i) + } + return res +} + +// InitKVStore initializes the kvstore app with some data, +// which allows tests to pass and is fine as long as you +// don't make any tx that modify the validator state +func InitKVStore(ctx context.Context, app *PersistentKVStoreApplication) error { + _, err := app.InitChain(ctx, &types.RequestInitChain{ + Validators: RandVals(1), + }) + return err +} diff --git a/sei-tendermint/abci/example/kvstore/kvstore.go b/sei-tendermint/abci/example/kvstore/kvstore.go new file mode 100644 index 0000000000..bbb2fbe346 --- /dev/null +++ b/sei-tendermint/abci/example/kvstore/kvstore.go @@ -0,0 +1,467 @@ +package kvstore + +import ( + "bytes" + "context" + "encoding/base64" + "encoding/binary" + "encoding/json" + "fmt" + "strconv" + "strings" + "sync" + + dbm "github.com/tendermint/tm-db" + + "github.com/tendermint/tendermint/abci/example/code" + "github.com/tendermint/tendermint/abci/types" + "github.com/tendermint/tendermint/crypto/encoding" + "github.com/tendermint/tendermint/libs/log" + cryptoproto "github.com/tendermint/tendermint/proto/tendermint/crypto" + "github.com/tendermint/tendermint/version" +) + +var ( + stateKey = []byte("stateKey") + kvPairPrefixKey = []byte("kvPairKey:") + + ProtocolVersion uint64 = 0x1 +) + +type State struct { + db dbm.DB + Size int64 `json:"size"` + Height int64 `json:"height"` + AppHash []byte `json:"app_hash"` +} + +func loadState(db dbm.DB) State { + var state State + state.db = db + stateBytes, err := db.Get(stateKey) + if err != nil { + panic(err) + } + if len(stateBytes) == 0 { + return state + } + err = json.Unmarshal(stateBytes, &state) + if err != nil { + panic(err) + } + return state +} + +func saveState(state State) { + stateBytes, err := json.Marshal(state) + if err != nil { + panic(err) + } + err = state.db.Set(stateKey, stateBytes) + if err != nil { + panic(err) + } +} + +func prefixKey(key []byte) []byte { + return append(kvPairPrefixKey, key...) +} + +//--------------------------------------------------- + +var _ types.Application = (*Application)(nil) + +type Application struct { + types.BaseApplication + mu sync.Mutex + state State + RetainBlocks int64 // blocks to retain after commit (via ResponseCommit.RetainHeight) + logger log.Logger + + // validator set + ValUpdates []types.ValidatorUpdate + valAddrToPubKeyMap map[string]cryptoproto.PublicKey +} + +func NewApplication() *Application { + return &Application{ + logger: log.NewNopLogger(), + state: loadState(dbm.NewMemDB()), + valAddrToPubKeyMap: make(map[string]cryptoproto.PublicKey), + } +} + +func (app *Application) InitChain(_ context.Context, req *types.RequestInitChain) (*types.ResponseInitChain, error) { + app.mu.Lock() + defer app.mu.Unlock() + + for _, v := range req.Validators { + r := app.updateValidator(v) + if r.IsErr() { + app.logger.Error("error updating validators", "r", r) + panic("problem updating validators") + } + } + return &types.ResponseInitChain{}, nil +} + +func (app *Application) Info(_ context.Context, req *types.RequestInfo) (*types.ResponseInfo, error) { + app.mu.Lock() + defer app.mu.Unlock() + return &types.ResponseInfo{ + Data: fmt.Sprintf("{\"size\":%v}", app.state.Size), + Version: version.ABCIVersion, + AppVersion: ProtocolVersion, + LastBlockHeight: app.state.Height, + LastBlockAppHash: app.state.AppHash, + }, nil +} + +// tx is either "val:pubkey!power" or "key=value" or just arbitrary bytes +func (app *Application) handleTx(tx []byte) *types.ExecTxResult { + // if it starts with "val:", update the validator set + // format is "val:pubkey!power" + if isValidatorTx(tx) { + // update validators in the merkle tree + // and in app.ValUpdates + return app.execValidatorTx(tx) + } + + if isPrepareTx(tx) { + return app.execPrepareTx(tx) + } + + var key, value string + parts := bytes.Split(tx, []byte("=")) + if len(parts) == 2 { + key, value = string(parts[0]), string(parts[1]) + } else { + key, value = string(tx), string(tx) + } + + err := app.state.db.Set(prefixKey([]byte(key)), []byte(value)) + if err != nil { + panic(err) + } + app.state.Size++ + + events := []types.Event{ + { + Type: "app", + Attributes: []types.EventAttribute{ + {Key: "creator", Value: "Cosmoshi Netowoko", Index: true}, + {Key: "key", Value: key, Index: true}, + {Key: "index_key", Value: "index is working", Index: true}, + {Key: "noindex_key", Value: "index is working", Index: false}, + }, + }, + } + + return &types.ExecTxResult{Code: code.CodeTypeOK, Events: events} +} + +func (app *Application) Close() error { + app.mu.Lock() + defer app.mu.Unlock() + + return app.state.db.Close() +} + +func (app *Application) FinalizeBlock(_ context.Context, req *types.RequestFinalizeBlock) (*types.ResponseFinalizeBlock, error) { + app.mu.Lock() + defer app.mu.Unlock() + + // reset valset changes + app.ValUpdates = make([]types.ValidatorUpdate, 0) + + // Punish validators who committed equivocation. + for _, ev := range req.ByzantineValidators { + if ev.Type == types.MisbehaviorType_DUPLICATE_VOTE { + addr := string(ev.Validator.Address) + if pubKey, ok := app.valAddrToPubKeyMap[addr]; ok { + app.updateValidator(types.ValidatorUpdate{ + PubKey: pubKey, + Power: ev.Validator.Power - 1, + }) + app.logger.Info("Decreased val power by 1 because of the equivocation", + "val", addr) + } else { + panic(fmt.Errorf("wanted to punish val %q but can't find it", addr)) + } + } + } + + respTxs := make([]*types.ExecTxResult, len(req.Txs)) + for i, tx := range req.Txs { + respTxs[i] = app.handleTx(tx) + } + + // Using a memdb - just return the big endian size of the db + appHash := make([]byte, 8) + binary.PutVarint(appHash, app.state.Size) + app.state.AppHash = appHash + app.state.Height++ + + return &types.ResponseFinalizeBlock{TxResults: respTxs, ValidatorUpdates: app.ValUpdates, AppHash: appHash}, nil +} + +func (*Application) CheckTx(_ context.Context, req *types.RequestCheckTx) (*types.ResponseCheckTx, error) { + return &types.ResponseCheckTx{Code: code.CodeTypeOK, GasWanted: 1}, nil +} + +func (app *Application) Commit(_ context.Context) (*types.ResponseCommit, error) { + app.mu.Lock() + defer app.mu.Unlock() + + saveState(app.state) + + resp := &types.ResponseCommit{} + if app.RetainBlocks > 0 && app.state.Height >= app.RetainBlocks { + resp.RetainHeight = app.state.Height - app.RetainBlocks + 1 + } + return resp, nil +} + +// Returns an associated value or nil if missing. +func (app *Application) Query(_ context.Context, reqQuery *types.RequestQuery) (*types.ResponseQuery, error) { + app.mu.Lock() + defer app.mu.Unlock() + + if reqQuery.Path == "/val" { + key := []byte("val:" + string(reqQuery.Data)) + value, err := app.state.db.Get(key) + if err != nil { + panic(err) + } + + return &types.ResponseQuery{ + Key: reqQuery.Data, + Value: value, + }, nil + } + + if reqQuery.Prove { + value, err := app.state.db.Get(prefixKey(reqQuery.Data)) + if err != nil { + panic(err) + } + + resQuery := types.ResponseQuery{ + Index: -1, + Key: reqQuery.Data, + Value: value, + Height: app.state.Height, + } + + if value == nil { + resQuery.Log = "does not exist" + } else { + resQuery.Log = "exists" + } + + return &resQuery, nil + } + + value, err := app.state.db.Get(prefixKey(reqQuery.Data)) + if err != nil { + panic(err) + } + + resQuery := types.ResponseQuery{ + Key: reqQuery.Data, + Value: value, + Height: app.state.Height, + } + + if value == nil { + resQuery.Log = "does not exist" + } else { + resQuery.Log = "exists" + } + + return &resQuery, nil +} + +func (app *Application) PrepareProposal(_ context.Context, req *types.RequestPrepareProposal) (*types.ResponsePrepareProposal, error) { + app.mu.Lock() + defer app.mu.Unlock() + + return &types.ResponsePrepareProposal{ + TxRecords: app.substPrepareTx(req.Txs, req.MaxTxBytes), + }, nil +} + +func (*Application) ProcessProposal(_ context.Context, req *types.RequestProcessProposal) (*types.ResponseProcessProposal, error) { + for _, tx := range req.Txs { + if len(tx) == 0 { + return &types.ResponseProcessProposal{Status: types.ResponseProcessProposal_REJECT}, nil + } + } + return &types.ResponseProcessProposal{Status: types.ResponseProcessProposal_ACCEPT}, nil +} + +//--------------------------------------------- +// update validators + +func (app *Application) Validators() (validators []types.ValidatorUpdate) { + app.mu.Lock() + defer app.mu.Unlock() + + itr, err := app.state.db.Iterator(nil, nil) + if err != nil { + panic(err) + } + for ; itr.Valid(); itr.Next() { + if isValidatorTx(itr.Key()) { + validator := new(types.ValidatorUpdate) + err := types.ReadMessage(bytes.NewBuffer(itr.Value()), validator) + if err != nil { + panic(err) + } + validators = append(validators, *validator) + } + } + if err = itr.Error(); err != nil { + panic(err) + } + return +} + +func MakeValSetChangeTx(pubkey cryptoproto.PublicKey, power int64) []byte { + pk, err := encoding.PubKeyFromProto(pubkey) + if err != nil { + panic(err) + } + pubStr := base64.StdEncoding.EncodeToString(pk.Bytes()) + return []byte(fmt.Sprintf("val:%s!%d", pubStr, power)) +} + +func isValidatorTx(tx []byte) bool { + return strings.HasPrefix(string(tx), ValidatorSetChangePrefix) +} + +// format is "val:pubkey!power" +// pubkey is a base64-encoded 32-byte ed25519 key +func (app *Application) execValidatorTx(tx []byte) *types.ExecTxResult { + tx = tx[len(ValidatorSetChangePrefix):] + + // get the pubkey and power + pubKeyAndPower := strings.Split(string(tx), "!") + if len(pubKeyAndPower) != 2 { + return &types.ExecTxResult{ + Code: code.CodeTypeEncodingError, + Log: fmt.Sprintf("Expected 'pubkey!power'. Got %v", pubKeyAndPower)} + } + pubkeyS, powerS := pubKeyAndPower[0], pubKeyAndPower[1] + + // decode the pubkey + pubkey, err := base64.StdEncoding.DecodeString(pubkeyS) + if err != nil { + return &types.ExecTxResult{ + Code: code.CodeTypeEncodingError, + Log: fmt.Sprintf("Pubkey (%s) is invalid base64", pubkeyS)} + } + + // decode the power + power, err := strconv.ParseInt(powerS, 10, 64) + if err != nil { + return &types.ExecTxResult{ + Code: code.CodeTypeEncodingError, + Log: fmt.Sprintf("Power (%s) is not an int", powerS)} + } + + // update + return app.updateValidator(types.UpdateValidator(pubkey, power, "")) +} + +// add, update, or remove a validator +func (app *Application) updateValidator(v types.ValidatorUpdate) *types.ExecTxResult { + pubkey, err := encoding.PubKeyFromProto(v.PubKey) + if err != nil { + panic(fmt.Errorf("can't decode public key: %w", err)) + } + key := []byte("val:" + string(pubkey.Bytes())) + + if v.Power == 0 { + // remove validator + hasKey, err := app.state.db.Has(key) + if err != nil { + panic(err) + } + if !hasKey { + pubStr := base64.StdEncoding.EncodeToString(pubkey.Bytes()) + return &types.ExecTxResult{ + Code: code.CodeTypeUnauthorized, + Log: fmt.Sprintf("Cannot remove non-existent validator %s", pubStr)} + } + if err = app.state.db.Delete(key); err != nil { + panic(err) + } + delete(app.valAddrToPubKeyMap, string(pubkey.Address())) + } else { + // add or update validator + value := bytes.NewBuffer(make([]byte, 0)) + if err := types.WriteMessage(&v, value); err != nil { + return &types.ExecTxResult{ + Code: code.CodeTypeEncodingError, + Log: fmt.Sprintf("error encoding validator: %v", err)} + } + if err = app.state.db.Set(key, value.Bytes()); err != nil { + panic(err) + } + app.valAddrToPubKeyMap[string(pubkey.Address())] = v.PubKey + } + + // we only update the changes array if we successfully updated the tree + app.ValUpdates = append(app.ValUpdates, v) + + return &types.ExecTxResult{Code: code.CodeTypeOK} +} + +// ----------------------------- +// prepare proposal machinery + +const PreparePrefix = "prepare" + +func isPrepareTx(tx []byte) bool { + return bytes.HasPrefix(tx, []byte(PreparePrefix)) +} + +// execPrepareTx is noop. tx data is considered as placeholder +// and is substitute at the PrepareProposal. +func (app *Application) execPrepareTx(tx []byte) *types.ExecTxResult { + // noop + return &types.ExecTxResult{} +} + +// substPrepareTx substitutes all the transactions prefixed with 'prepare' in the +// proposal for transactions with the prefix stripped. +// It marks all of the original transactions as 'REMOVED' so that +// Tendermint will remove them from its mempool. +func (app *Application) substPrepareTx(blockData [][]byte, maxTxBytes int64) []*types.TxRecord { + trs := make([]*types.TxRecord, 0, len(blockData)) + var removed []*types.TxRecord + var totalBytes int64 + for _, tx := range blockData { + txMod := tx + action := types.TxRecord_UNMODIFIED + if isPrepareTx(tx) { + removed = append(removed, &types.TxRecord{ + Tx: tx, + Action: types.TxRecord_REMOVED, + }) + txMod = bytes.TrimPrefix(tx, []byte(PreparePrefix)) + action = types.TxRecord_ADDED + } + totalBytes += int64(len(txMod)) + if totalBytes > maxTxBytes { + break + } + trs = append(trs, &types.TxRecord{ + Tx: txMod, + Action: action, + }) + } + + return append(trs, removed...) +} diff --git a/sei-tendermint/abci/example/kvstore/kvstore_test.go b/sei-tendermint/abci/example/kvstore/kvstore_test.go new file mode 100644 index 0000000000..9631bc1ab4 --- /dev/null +++ b/sei-tendermint/abci/example/kvstore/kvstore_test.go @@ -0,0 +1,392 @@ +package kvstore + +import ( + "context" + "fmt" + "sort" + "testing" + + "github.com/fortytw2/leaktest" + "github.com/stretchr/testify/require" + + "github.com/tendermint/tendermint/libs/log" + "github.com/tendermint/tendermint/libs/service" + + abciclient "github.com/tendermint/tendermint/abci/client" + "github.com/tendermint/tendermint/abci/example/code" + abciserver "github.com/tendermint/tendermint/abci/server" + "github.com/tendermint/tendermint/abci/types" +) + +const ( + testKey = "abc" + testValue = "def" +) + +func testKVStore(ctx context.Context, t *testing.T, app types.Application, tx []byte, key, value string) { + req := &types.RequestFinalizeBlock{Txs: [][]byte{tx}} + ar, err := app.FinalizeBlock(ctx, req) + require.NoError(t, err) + require.Equal(t, 1, len(ar.TxResults)) + require.False(t, ar.TxResults[0].IsErr()) + // repeating tx doesn't raise error + ar, err = app.FinalizeBlock(ctx, req) + require.NoError(t, err) + require.Equal(t, 1, len(ar.TxResults)) + require.False(t, ar.TxResults[0].IsErr()) + // commit + _, err = app.Commit(ctx) + require.NoError(t, err) + + info, err := app.Info(ctx, &types.RequestInfo{}) + require.NoError(t, err) + require.NotZero(t, info.LastBlockHeight) + + // make sure query is fine + resQuery, err := app.Query(ctx, &types.RequestQuery{ + Path: "/store", + Data: []byte(key), + }) + require.NoError(t, err) + require.Equal(t, code.CodeTypeOK, resQuery.Code) + require.Equal(t, key, string(resQuery.Key)) + require.Equal(t, value, string(resQuery.Value)) + require.EqualValues(t, info.LastBlockHeight, resQuery.Height) + + // make sure proof is fine + resQuery, err = app.Query(ctx, &types.RequestQuery{ + Path: "/store", + Data: []byte(key), + Prove: true, + }) + require.NoError(t, err) + require.EqualValues(t, code.CodeTypeOK, resQuery.Code) + require.Equal(t, key, string(resQuery.Key)) + require.Equal(t, value, string(resQuery.Value)) + require.EqualValues(t, info.LastBlockHeight, resQuery.Height) +} + +func TestKVStoreKV(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + kvstore := NewApplication() + key := testKey + value := key + tx := []byte(key) + testKVStore(ctx, t, kvstore, tx, key, value) + + value = testValue + tx = []byte(key + "=" + value) + testKVStore(ctx, t, kvstore, tx, key, value) +} + +func TestPersistentKVStoreKV(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + dir := t.TempDir() + logger := log.NewNopLogger() + + kvstore := NewPersistentKVStoreApplication(logger, dir) + key := testKey + value := key + tx := []byte(key) + testKVStore(ctx, t, kvstore, tx, key, value) + + value = testValue + tx = []byte(key + "=" + value) + testKVStore(ctx, t, kvstore, tx, key, value) +} + +func TestPersistentKVStoreInfo(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + dir := t.TempDir() + logger := log.NewNopLogger() + + kvstore := NewPersistentKVStoreApplication(logger, dir) + if err := InitKVStore(ctx, kvstore); err != nil { + t.Fatal(err) + } + height := int64(0) + + resInfo, err := kvstore.Info(ctx, &types.RequestInfo{}) + if err != nil { + t.Fatal(err) + } + + if resInfo.LastBlockHeight != height { + t.Fatalf("expected height of %d, got %d", height, resInfo.LastBlockHeight) + } + + // make and apply block + height = int64(1) + hash := []byte("foo") + if _, err := kvstore.FinalizeBlock(ctx, &types.RequestFinalizeBlock{Hash: hash, Height: height}); err != nil { + t.Fatal(err) + } + + if _, err := kvstore.Commit(ctx); err != nil { + t.Fatal(err) + + } + + resInfo, err = kvstore.Info(ctx, &types.RequestInfo{}) + if err != nil { + t.Fatal(err) + } + if resInfo.LastBlockHeight != height { + t.Fatalf("expected height of %d, got %d", height, resInfo.LastBlockHeight) + } + +} + +// add a validator, remove a validator, update a validator +func TestValUpdates(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + kvstore := NewApplication() + + // init with some validators + total := 10 + nInit := 5 + vals := RandVals(total) + // initialize with the first nInit + _, err := kvstore.InitChain(ctx, &types.RequestInitChain{ + Validators: vals[:nInit], + }) + if err != nil { + t.Fatal(err) + } + + vals1, vals2 := vals[:nInit], kvstore.Validators() + valsEqual(t, vals1, vals2) + + var v1, v2, v3 types.ValidatorUpdate + + // add some validators + v1, v2 = vals[nInit], vals[nInit+1] + diff := []types.ValidatorUpdate{v1, v2} + tx1 := MakeValSetChangeTx(v1.PubKey, v1.Power) + tx2 := MakeValSetChangeTx(v2.PubKey, v2.Power) + + makeApplyBlock(ctx, t, kvstore, 1, diff, tx1, tx2) + + vals1, vals2 = vals[:nInit+2], kvstore.Validators() + valsEqual(t, vals1, vals2) + + // remove some validators + v1, v2, v3 = vals[nInit-2], vals[nInit-1], vals[nInit] + v1.Power = 0 + v2.Power = 0 + v3.Power = 0 + diff = []types.ValidatorUpdate{v1, v2, v3} + tx1 = MakeValSetChangeTx(v1.PubKey, v1.Power) + tx2 = MakeValSetChangeTx(v2.PubKey, v2.Power) + tx3 := MakeValSetChangeTx(v3.PubKey, v3.Power) + + makeApplyBlock(ctx, t, kvstore, 2, diff, tx1, tx2, tx3) + + vals1 = append(vals[:nInit-2], vals[nInit+1]) // nolint: gocritic + vals2 = kvstore.Validators() + valsEqual(t, vals1, vals2) + + // update some validators + v1 = vals[0] + if v1.Power == 5 { + v1.Power = 6 + } else { + v1.Power = 5 + } + diff = []types.ValidatorUpdate{v1} + tx1 = MakeValSetChangeTx(v1.PubKey, v1.Power) + + makeApplyBlock(ctx, t, kvstore, 3, diff, tx1) + + vals1 = append([]types.ValidatorUpdate{v1}, vals1[1:]...) + vals2 = kvstore.Validators() + valsEqual(t, vals1, vals2) + +} + +func makeApplyBlock(ctx context.Context, t *testing.T, kvstore types.Application, heightInt int, diff []types.ValidatorUpdate, txs ...[]byte) { + // make and apply block + height := int64(heightInt) + hash := []byte("foo") + resFinalizeBlock, err := kvstore.FinalizeBlock(ctx, &types.RequestFinalizeBlock{ + Hash: hash, + Height: height, + Txs: txs, + }) + if err != nil { + t.Fatal(err) + } + + _, err = kvstore.Commit(ctx) + if err != nil { + t.Fatal(err) + } + + valsEqual(t, diff, resFinalizeBlock.ValidatorUpdates) + +} + +// order doesn't matter +func valsEqual(t *testing.T, vals1, vals2 []types.ValidatorUpdate) { + t.Helper() + if len(vals1) != len(vals2) { + t.Fatalf("vals dont match in len. got %d, expected %d", len(vals2), len(vals1)) + } + sort.Sort(types.ValidatorUpdates(vals1)) + sort.Sort(types.ValidatorUpdates(vals2)) + for i, v1 := range vals1 { + v2 := vals2[i] + if !v1.PubKey.Equal(v2.PubKey) || + v1.Power != v2.Power { + t.Fatalf("vals dont match at index %d. got %X/%d , expected %X/%d", i, v2.PubKey, v2.Power, v1.PubKey, v1.Power) + } + } +} + +func makeSocketClientServer( + ctx context.Context, + t *testing.T, + logger log.Logger, + app types.Application, + name string, +) (abciclient.Client, service.Service, error) { + t.Helper() + + ctx, cancel := context.WithCancel(ctx) + t.Cleanup(cancel) + t.Cleanup(leaktest.Check(t)) + + // Start the listener + socket := fmt.Sprintf("unix://%s.sock", name) + + server := abciserver.NewSocketServer(logger.With("module", "abci-server"), socket, app) + if err := server.Start(ctx); err != nil { + cancel() + return nil, nil, err + } + + // Connect to the socket + client := abciclient.NewSocketClient(logger.With("module", "abci-client"), socket, false) + if err := client.Start(ctx); err != nil { + cancel() + return nil, nil, err + } + + return client, server, nil +} + +func makeGRPCClientServer( + ctx context.Context, + t *testing.T, + logger log.Logger, + app types.Application, + name string, +) (abciclient.Client, service.Service, error) { + ctx, cancel := context.WithCancel(ctx) + t.Cleanup(cancel) + t.Cleanup(leaktest.Check(t)) + + // Start the listener + socket := fmt.Sprintf("unix://%s.sock", name) + + server := abciserver.NewGRPCServer(logger.With("module", "abci-server"), socket, app) + + if err := server.Start(ctx); err != nil { + cancel() + return nil, nil, err + } + + client := abciclient.NewGRPCClient(logger.With("module", "abci-client"), socket, true) + + if err := client.Start(ctx); err != nil { + cancel() + return nil, nil, err + } + return client, server, nil +} + +func TestClientServer(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + logger := log.NewNopLogger() + + // set up socket app + kvstore := NewApplication() + client, server, err := makeSocketClientServer(ctx, t, logger, kvstore, "kvstore-socket") + require.NoError(t, err) + t.Cleanup(func() { cancel(); server.Wait() }) + t.Cleanup(func() { cancel(); client.Wait() }) + + runClientTests(ctx, t, client) + + // set up grpc app + kvstore = NewApplication() + gclient, gserver, err := makeGRPCClientServer(ctx, t, logger, kvstore, "/tmp/kvstore-grpc") + require.NoError(t, err) + + t.Cleanup(func() { cancel(); gserver.Wait() }) + t.Cleanup(func() { cancel(); gclient.Wait() }) + + runClientTests(ctx, t, gclient) +} + +func runClientTests(ctx context.Context, t *testing.T, client abciclient.Client) { + // run some tests.... + key := testKey + value := key + tx := []byte(key) + testClient(ctx, t, client, tx, key, value) + + value = testValue + tx = []byte(key + "=" + value) + testClient(ctx, t, client, tx, key, value) +} + +func testClient(ctx context.Context, t *testing.T, app abciclient.Client, tx []byte, key, value string) { + ar, err := app.FinalizeBlock(ctx, &types.RequestFinalizeBlock{Txs: [][]byte{tx}}) + require.NoError(t, err) + require.Equal(t, 1, len(ar.TxResults)) + require.False(t, ar.TxResults[0].IsErr()) + // repeating FinalizeBlock doesn't raise error + ar, err = app.FinalizeBlock(ctx, &types.RequestFinalizeBlock{Txs: [][]byte{tx}}) + require.NoError(t, err) + require.Equal(t, 1, len(ar.TxResults)) + require.False(t, ar.TxResults[0].IsErr()) + // commit + _, err = app.Commit(ctx) + require.NoError(t, err) + + info, err := app.Info(ctx, &types.RequestInfo{}) + require.NoError(t, err) + require.NotZero(t, info.LastBlockHeight) + + // make sure query is fine + resQuery, err := app.Query(ctx, &types.RequestQuery{ + Path: "/store", + Data: []byte(key), + }) + require.NoError(t, err) + require.Equal(t, code.CodeTypeOK, resQuery.Code) + require.Equal(t, key, string(resQuery.Key)) + require.Equal(t, value, string(resQuery.Value)) + require.EqualValues(t, info.LastBlockHeight, resQuery.Height) + + // make sure proof is fine + resQuery, err = app.Query(ctx, &types.RequestQuery{ + Path: "/store", + Data: []byte(key), + Prove: true, + }) + require.NoError(t, err) + require.Equal(t, code.CodeTypeOK, resQuery.Code) + require.Equal(t, key, string(resQuery.Key)) + require.Equal(t, value, string(resQuery.Value)) + require.EqualValues(t, info.LastBlockHeight, resQuery.Height) +} diff --git a/sei-tendermint/abci/example/kvstore/persistent_kvstore.go b/sei-tendermint/abci/example/kvstore/persistent_kvstore.go new file mode 100644 index 0000000000..bede5d5173 --- /dev/null +++ b/sei-tendermint/abci/example/kvstore/persistent_kvstore.go @@ -0,0 +1,46 @@ +package kvstore + +import ( + "context" + + dbm "github.com/tendermint/tm-db" + + "github.com/tendermint/tendermint/abci/types" + "github.com/tendermint/tendermint/libs/log" + cryptoproto "github.com/tendermint/tendermint/proto/tendermint/crypto" +) + +const ( + ValidatorSetChangePrefix string = "val:" +) + +//----------------------------------------- + +var _ types.Application = (*PersistentKVStoreApplication)(nil) + +type PersistentKVStoreApplication struct { + *Application +} + +func NewPersistentKVStoreApplication(logger log.Logger, dbDir string) *PersistentKVStoreApplication { + db, err := dbm.NewGoLevelDB("kvstore", dbDir) + if err != nil { + panic(err) + } + + return &PersistentKVStoreApplication{ + Application: &Application{ + valAddrToPubKeyMap: make(map[string]cryptoproto.PublicKey), + state: loadState(db), + logger: logger, + }, + } +} + +func (app *PersistentKVStoreApplication) OfferSnapshot(_ context.Context, req *types.RequestOfferSnapshot) (*types.ResponseOfferSnapshot, error) { + return &types.ResponseOfferSnapshot{Result: types.ResponseOfferSnapshot_ABORT}, nil +} + +func (app *PersistentKVStoreApplication) ApplySnapshotChunk(_ context.Context, req *types.RequestApplySnapshotChunk) (*types.ResponseApplySnapshotChunk, error) { + return &types.ResponseApplySnapshotChunk{Result: types.ResponseApplySnapshotChunk_ABORT}, nil +} diff --git a/sei-tendermint/abci/server/grpc_server.go b/sei-tendermint/abci/server/grpc_server.go new file mode 100644 index 0000000000..0dfee8169d --- /dev/null +++ b/sei-tendermint/abci/server/grpc_server.go @@ -0,0 +1,83 @@ +package server + +import ( + "context" + "net" + + "google.golang.org/grpc" + + "github.com/tendermint/tendermint/abci/types" + "github.com/tendermint/tendermint/libs/log" + tmnet "github.com/tendermint/tendermint/libs/net" + "github.com/tendermint/tendermint/libs/service" +) + +type GRPCServer struct { + service.BaseService + logger log.Logger + + proto string + addr string + server *grpc.Server + + app types.Application +} + +// NewGRPCServer returns a new gRPC ABCI server +func NewGRPCServer(logger log.Logger, protoAddr string, app types.Application) service.Service { + proto, addr := tmnet.ProtocolAndAddress(protoAddr) + s := &GRPCServer{ + logger: logger, + proto: proto, + addr: addr, + app: app, + } + s.BaseService = *service.NewBaseService(logger, "ABCIServer", s) + return s +} + +// OnStart starts the gRPC service. +func (s *GRPCServer) OnStart(ctx context.Context) error { + ln, err := net.Listen(s.proto, s.addr) + if err != nil { + return err + } + + s.server = grpc.NewServer() + types.RegisterABCIApplicationServer(s.server, &gRPCApplication{Application: s.app}) + + s.logger.Info("Listening", "proto", s.proto, "addr", s.addr) + go func() { + go func() { + <-ctx.Done() + s.server.GracefulStop() + }() + + if err := s.server.Serve(ln); err != nil { + s.logger.Error("error serving gRPC server", "err", err) + } + }() + return nil +} + +// OnStop stops the gRPC server. +func (s *GRPCServer) OnStop() { s.server.Stop() } + +//------------------------------------------------------- + +// gRPCApplication is a gRPC shim for Application +type gRPCApplication struct { + types.Application +} + +func (app *gRPCApplication) Echo(_ context.Context, req *types.RequestEcho) (*types.ResponseEcho, error) { + return &types.ResponseEcho{Message: req.Message}, nil +} + +func (app *gRPCApplication) Flush(_ context.Context, req *types.RequestFlush) (*types.ResponseFlush, error) { + return &types.ResponseFlush{}, nil +} + +func (app *gRPCApplication) Commit(ctx context.Context, req *types.RequestCommit) (*types.ResponseCommit, error) { + return app.Application.Commit(ctx) +} diff --git a/sei-tendermint/abci/server/server.go b/sei-tendermint/abci/server/server.go new file mode 100644 index 0000000000..0e0173ca65 --- /dev/null +++ b/sei-tendermint/abci/server/server.go @@ -0,0 +1,31 @@ +/* +Package server is used to start a new ABCI server. + +It contains two server implementation: + * gRPC server + * socket server + +*/ +package server + +import ( + "fmt" + + "github.com/tendermint/tendermint/abci/types" + "github.com/tendermint/tendermint/libs/log" + "github.com/tendermint/tendermint/libs/service" +) + +func NewServer(logger log.Logger, protoAddr, transport string, app types.Application) (service.Service, error) { + var s service.Service + var err error + switch transport { + case "socket": + s = NewSocketServer(logger, protoAddr, app) + case "grpc": + s = NewGRPCServer(logger, protoAddr, app) + default: + err = fmt.Errorf("unknown server type %s", transport) + } + return s, err +} diff --git a/sei-tendermint/abci/server/socket_server.go b/sei-tendermint/abci/server/socket_server.go new file mode 100644 index 0000000000..570ecfb4e7 --- /dev/null +++ b/sei-tendermint/abci/server/socket_server.go @@ -0,0 +1,317 @@ +package server + +import ( + "bufio" + "context" + "errors" + "fmt" + "io" + "net" + "runtime" + "sync" + + "github.com/tendermint/tendermint/abci/types" + "github.com/tendermint/tendermint/libs/log" + tmnet "github.com/tendermint/tendermint/libs/net" + "github.com/tendermint/tendermint/libs/service" +) + +// var maxNumberConnections = 2 + +type SocketServer struct { + service.BaseService + logger log.Logger + + proto string + addr string + listener net.Listener + + connsMtx sync.Mutex + connsClose map[int]func() + nextConnID int + + app types.Application +} + +func NewSocketServer(logger log.Logger, protoAddr string, app types.Application) service.Service { + proto, addr := tmnet.ProtocolAndAddress(protoAddr) + s := &SocketServer{ + logger: logger, + proto: proto, + addr: addr, + listener: nil, + app: app, + connsClose: make(map[int]func()), + } + s.BaseService = *service.NewBaseService(logger, "ABCIServer", s) + return s +} + +func (s *SocketServer) OnStart(ctx context.Context) error { + ln, err := net.Listen(s.proto, s.addr) + if err != nil { + return err + } + + s.listener = ln + go s.acceptConnectionsRoutine(ctx) + + return nil +} + +func (s *SocketServer) OnStop() { + if err := s.listener.Close(); err != nil { + s.logger.Error("error closing listener", "err", err) + } + + s.connsMtx.Lock() + defer s.connsMtx.Unlock() + + for _, closer := range s.connsClose { + closer() + } +} + +func (s *SocketServer) addConn(closer func()) int { + s.connsMtx.Lock() + defer s.connsMtx.Unlock() + + connID := s.nextConnID + s.nextConnID++ + s.connsClose[connID] = closer + return connID +} + +// deletes conn even if close errs +func (s *SocketServer) rmConn(connID int) { + s.connsMtx.Lock() + defer s.connsMtx.Unlock() + if closer, ok := s.connsClose[connID]; ok { + closer() + delete(s.connsClose, connID) + } +} + +func (s *SocketServer) acceptConnectionsRoutine(ctx context.Context) { + for { + if ctx.Err() != nil { + return + } + + // Accept a connection + s.logger.Info("Waiting for new connection...") + conn, err := s.listener.Accept() + if err != nil { + if !s.IsRunning() { + return // Ignore error from listener closing. + } + s.logger.Error("Failed to accept connection", "err", err) + continue + } + + cctx, ccancel := context.WithCancel(ctx) + connID := s.addConn(ccancel) + + s.logger.Info("Accepted a new connection", "id", connID) + + responses := make(chan *types.Response, 1000) // A channel to buffer responses + + once := &sync.Once{} + closer := func(err error) { + ccancel() + once.Do(func() { + if cerr := conn.Close(); err != nil { + s.logger.Error("error closing connection", + "id", connID, + "close_err", cerr, + "err", err) + } + s.rmConn(connID) + + switch { + case errors.Is(err, context.Canceled): + s.logger.Error("Connection terminated", + "id", connID, + "err", err) + case errors.Is(err, context.DeadlineExceeded): + s.logger.Error("Connection encountered timeout", + "id", connID, + "err", err) + case errors.Is(err, io.EOF): + s.logger.Error("Connection was closed by client", + "id", connID) + case err != nil: + s.logger.Error("Connection error", + "id", connID, + "err", err) + default: + s.logger.Error("Connection was closed", + "id", connID) + } + }) + } + + // Read requests from conn and deal with them + go s.handleRequests(cctx, closer, conn, responses) + // Pull responses from 'responses' and write them to conn. + go s.handleResponses(cctx, closer, conn, responses) + } +} + +// Read requests from conn and deal with them +func (s *SocketServer) handleRequests(ctx context.Context, closer func(error), conn io.Reader, responses chan<- *types.Response) { + var bufReader = bufio.NewReader(conn) + + defer func() { + // make sure to recover from any app-related panics to allow proper socket cleanup + if r := recover(); r != nil { + const size = 64 << 10 + buf := make([]byte, size) + buf = buf[:runtime.Stack(buf, false)] + closer(fmt.Errorf("recovered from panic: %v\n%s", r, buf)) + } + }() + + for { + req := &types.Request{} + if err := types.ReadMessage(bufReader, req); err != nil { + closer(fmt.Errorf("error reading message: %w", err)) + return + } + + resp, err := s.processRequest(ctx, req) + if err != nil { + closer(err) + return + } + + select { + case <-ctx.Done(): + closer(ctx.Err()) + return + case responses <- resp: + } + } +} + +func (s *SocketServer) processRequest(ctx context.Context, req *types.Request) (*types.Response, error) { + switch r := req.Value.(type) { + case *types.Request_Echo: + return types.ToResponseEcho(r.Echo.Message), nil + case *types.Request_Flush: + return types.ToResponseFlush(), nil + case *types.Request_Info: + res, err := s.app.Info(ctx, r.Info) + if err != nil { + return nil, err + } + + return types.ToResponseInfo(res), nil + case *types.Request_CheckTx: + res, err := s.app.CheckTx(ctx, r.CheckTx) + if err != nil { + return nil, err + } + return types.ToResponseCheckTx(res), nil + case *types.Request_Commit: + res, err := s.app.Commit(ctx) + if err != nil { + return nil, err + } + return types.ToResponseCommit(res), nil + case *types.Request_Query: + res, err := s.app.Query(ctx, r.Query) + if err != nil { + return nil, err + } + return types.ToResponseQuery(res), nil + case *types.Request_InitChain: + res, err := s.app.InitChain(ctx, r.InitChain) + if err != nil { + return nil, err + } + return types.ToResponseInitChain(res), nil + case *types.Request_ListSnapshots: + res, err := s.app.ListSnapshots(ctx, r.ListSnapshots) + if err != nil { + return nil, err + } + return types.ToResponseListSnapshots(res), nil + case *types.Request_OfferSnapshot: + res, err := s.app.OfferSnapshot(ctx, r.OfferSnapshot) + if err != nil { + return nil, err + } + return types.ToResponseOfferSnapshot(res), nil + case *types.Request_PrepareProposal: + res, err := s.app.PrepareProposal(ctx, r.PrepareProposal) + if err != nil { + return nil, err + } + return types.ToResponsePrepareProposal(res), nil + case *types.Request_ProcessProposal: + res, err := s.app.ProcessProposal(ctx, r.ProcessProposal) + if err != nil { + return nil, err + } + return types.ToResponseProcessProposal(res), nil + case *types.Request_LoadSnapshotChunk: + res, err := s.app.LoadSnapshotChunk(ctx, r.LoadSnapshotChunk) + if err != nil { + return nil, err + } + return types.ToResponseLoadSnapshotChunk(res), nil + case *types.Request_ApplySnapshotChunk: + res, err := s.app.ApplySnapshotChunk(ctx, r.ApplySnapshotChunk) + if err != nil { + return nil, err + } + return types.ToResponseApplySnapshotChunk(res), nil + case *types.Request_ExtendVote: + res, err := s.app.ExtendVote(ctx, r.ExtendVote) + if err != nil { + return nil, err + } + return types.ToResponseExtendVote(res), nil + case *types.Request_VerifyVoteExtension: + res, err := s.app.VerifyVoteExtension(ctx, r.VerifyVoteExtension) + if err != nil { + return nil, err + } + return types.ToResponseVerifyVoteExtension(res), nil + case *types.Request_FinalizeBlock: + res, err := s.app.FinalizeBlock(ctx, r.FinalizeBlock) + if err != nil { + return nil, err + } + return types.ToResponseFinalizeBlock(res), nil + default: + return types.ToResponseException("Unknown request"), errors.New("unknown request type") + } +} + +// Pull responses from 'responses' and write them to conn. +func (s *SocketServer) handleResponses( + ctx context.Context, + closer func(error), + conn io.Writer, + responses <-chan *types.Response, +) { + bw := bufio.NewWriter(conn) + for { + select { + case <-ctx.Done(): + closer(ctx.Err()) + return + case res := <-responses: + if err := types.WriteMessage(res, bw); err != nil { + closer(fmt.Errorf("error writing message: %w", err)) + return + } + if err := bw.Flush(); err != nil { + closer(fmt.Errorf("error writing message: %w", err)) + return + } + } + } +} diff --git a/sei-tendermint/abci/tests/benchmarks/blank.go b/sei-tendermint/abci/tests/benchmarks/blank.go new file mode 100644 index 0000000000..20f08f14b4 --- /dev/null +++ b/sei-tendermint/abci/tests/benchmarks/blank.go @@ -0,0 +1 @@ +package benchmarks diff --git a/sei-tendermint/abci/tests/benchmarks/parallel/parallel.go b/sei-tendermint/abci/tests/benchmarks/parallel/parallel.go new file mode 100644 index 0000000000..fe213313d4 --- /dev/null +++ b/sei-tendermint/abci/tests/benchmarks/parallel/parallel.go @@ -0,0 +1,55 @@ +package main + +import ( + "bufio" + "fmt" + "log" + + "github.com/tendermint/tendermint/abci/types" + tmnet "github.com/tendermint/tendermint/libs/net" +) + +func main() { + + conn, err := tmnet.Connect("unix://test.sock") + if err != nil { + log.Fatal(err.Error()) + } + + // Read a bunch of responses + go func() { + counter := 0 + for { + var res = &types.Response{} + err := types.ReadMessage(conn, res) + if err != nil { + log.Fatal(err.Error()) + } + counter++ + if counter%1000 == 0 { + fmt.Println("Read", counter) + } + } + }() + + // Write a bunch of requests + counter := 0 + for i := 0; ; i++ { + var bufWriter = bufio.NewWriter(conn) + var req = types.ToRequestEcho("foobar") + + err := types.WriteMessage(req, bufWriter) + if err != nil { + log.Fatal(err.Error()) + } + err = bufWriter.Flush() + if err != nil { + log.Fatal(err.Error()) + } + + counter++ + if counter%1000 == 0 { + fmt.Println("Write", counter) + } + } +} diff --git a/sei-tendermint/abci/tests/benchmarks/simple/simple.go b/sei-tendermint/abci/tests/benchmarks/simple/simple.go new file mode 100644 index 0000000000..b18eaa580b --- /dev/null +++ b/sei-tendermint/abci/tests/benchmarks/simple/simple.go @@ -0,0 +1,69 @@ +package main + +import ( + "bufio" + "fmt" + "io" + "log" + "reflect" + + "github.com/tendermint/tendermint/abci/types" + tmnet "github.com/tendermint/tendermint/libs/net" +) + +func main() { + + conn, err := tmnet.Connect("unix://test.sock") + if err != nil { + log.Fatal(err.Error()) + } + + // Make a bunch of requests + counter := 0 + for i := 0; ; i++ { + req := types.ToRequestEcho("foobar") + _, err := makeRequest(conn, req) + if err != nil { + log.Fatal(err.Error()) + } + counter++ + if counter%1000 == 0 { + fmt.Println(counter) + } + } +} + +func makeRequest(conn io.ReadWriter, req *types.Request) (*types.Response, error) { + var bufWriter = bufio.NewWriter(conn) + + // Write desired request + err := types.WriteMessage(req, bufWriter) + if err != nil { + return nil, err + } + err = types.WriteMessage(types.ToRequestFlush(), bufWriter) + if err != nil { + return nil, err + } + err = bufWriter.Flush() + if err != nil { + return nil, err + } + + // Read desired response + var res = &types.Response{} + err = types.ReadMessage(conn, res) + if err != nil { + return nil, err + } + var resFlush = &types.Response{} + err = types.ReadMessage(conn, resFlush) + if err != nil { + return nil, err + } + if _, ok := resFlush.Value.(*types.Response_Flush); !ok { + return nil, fmt.Errorf("expected flush response but got something else: %v", reflect.TypeOf(resFlush)) + } + + return res, nil +} diff --git a/sei-tendermint/abci/tests/client_server_test.go b/sei-tendermint/abci/tests/client_server_test.go new file mode 100644 index 0000000000..a97c0c7c4c --- /dev/null +++ b/sei-tendermint/abci/tests/client_server_test.go @@ -0,0 +1,40 @@ +package tests + +import ( + "context" + "testing" + + "github.com/fortytw2/leaktest" + "github.com/stretchr/testify/assert" + + abciclientent "github.com/tendermint/tendermint/abci/client" + "github.com/tendermint/tendermint/abci/example/kvstore" + abciserver "github.com/tendermint/tendermint/abci/server" + "github.com/tendermint/tendermint/libs/log" +) + +func TestClientServerNoAddrPrefix(t *testing.T) { + t.Cleanup(leaktest.Check(t)) + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + const ( + addr = "localhost:26658" + transport = "socket" + ) + app := kvstore.NewApplication() + logger := log.NewTestingLogger(t) + + server, err := abciserver.NewServer(logger, addr, transport, app) + assert.NoError(t, err, "expected no error on NewServer") + err = server.Start(ctx) + assert.NoError(t, err, "expected no error on server.Start") + t.Cleanup(server.Wait) + + client, err := abciclientent.NewClient(logger, addr, transport, true) + assert.NoError(t, err, "expected no error on NewClient") + err = client.Start(ctx) + assert.NoError(t, err, "expected no error on client.Start") + t.Cleanup(client.Wait) +} diff --git a/sei-tendermint/abci/tests/server/client.go b/sei-tendermint/abci/tests/server/client.go new file mode 100644 index 0000000000..cddb42ec0a --- /dev/null +++ b/sei-tendermint/abci/tests/server/client.go @@ -0,0 +1,90 @@ +package testsuite + +import ( + "bytes" + "context" + "errors" + "fmt" + mrand "math/rand" + + abciclient "github.com/tendermint/tendermint/abci/client" + "github.com/tendermint/tendermint/abci/types" + tmrand "github.com/tendermint/tendermint/libs/rand" +) + +func InitChain(ctx context.Context, client abciclient.Client) error { + total := 10 + vals := make([]types.ValidatorUpdate, total) + for i := 0; i < total; i++ { + pubkey := tmrand.Bytes(33) + // nolint:gosec // G404: Use of weak random number generator + power := mrand.Int() + vals[i] = types.UpdateValidator(pubkey, int64(power), "") + } + _, err := client.InitChain(ctx, &types.RequestInitChain{ + Validators: vals, + }) + if err != nil { + fmt.Printf("Failed test: InitChain - %v\n", err) + return err + } + fmt.Println("Passed test: InitChain") + return nil +} + +func Commit(ctx context.Context, client abciclient.Client) error { + _, err := client.Commit(ctx) + if err != nil { + fmt.Println("Failed test: Commit") + fmt.Printf("error while committing: %v\n", err) + return err + } + fmt.Println("Passed test: Commit") + return nil +} + +func FinalizeBlock(ctx context.Context, client abciclient.Client, txBytes [][]byte, codeExp []uint32, dataExp []byte, hashExp []byte) error { + res, _ := client.FinalizeBlock(ctx, &types.RequestFinalizeBlock{Txs: txBytes}) + appHash := res.AppHash + for i, tx := range res.TxResults { + code, data, log := tx.Code, tx.Data, tx.Log + if code != codeExp[i] { + fmt.Println("Failed test: FinalizeBlock") + fmt.Printf("FinalizeBlock response code was unexpected. Got %v expected %v. Log: %v\n", + code, codeExp, log) + return errors.New("FinalizeBlock error") + } + if !bytes.Equal(data, dataExp) { + fmt.Println("Failed test: FinalizeBlock") + fmt.Printf("FinalizeBlock response data was unexpected. Got %X expected %X\n", + data, dataExp) + return errors.New("FinalizeBlock error") + } + } + if !bytes.Equal(appHash, hashExp) { + fmt.Println("Failed test: FinalizeBlock") + fmt.Printf("Application hash was unexpected. Got %X expected %X\n", appHash, hashExp) + return errors.New("FinalizeBlock error") + } + fmt.Println("Passed test: FinalizeBlock") + return nil +} + +func CheckTx(ctx context.Context, client abciclient.Client, txBytes []byte, codeExp uint32, dataExp []byte) error { + res, _ := client.CheckTx(ctx, &types.RequestCheckTx{Tx: txBytes}) + code, data := res.Code, res.Data + if code != codeExp { + fmt.Println("Failed test: CheckTx") + fmt.Printf("CheckTx response code was unexpected. Got %v expected %v.,", + code, codeExp) + return errors.New("checkTx") + } + if !bytes.Equal(data, dataExp) { + fmt.Println("Failed test: CheckTx") + fmt.Printf("CheckTx response data was unexpected. Got %X expected %X\n", + data, dataExp) + return errors.New("checkTx") + } + fmt.Println("Passed test: CheckTx") + return nil +} diff --git a/sei-tendermint/abci/tests/test_cli/ex1.abci b/sei-tendermint/abci/tests/test_cli/ex1.abci new file mode 100644 index 0000000000..56355dc945 --- /dev/null +++ b/sei-tendermint/abci/tests/test_cli/ex1.abci @@ -0,0 +1,9 @@ +echo hello +info +finalize_block "abc" +commit +info +query "abc" +finalize_block "def=xyz" "ghi=123" +commit +query "def" diff --git a/sei-tendermint/abci/tests/test_cli/ex1.abci.out b/sei-tendermint/abci/tests/test_cli/ex1.abci.out new file mode 100644 index 0000000000..9a35290b01 --- /dev/null +++ b/sei-tendermint/abci/tests/test_cli/ex1.abci.out @@ -0,0 +1,50 @@ +> echo hello +-> code: OK +-> data: hello +-> data.hex: 0x68656C6C6F + +> info +-> code: OK +-> data: {"size":0} +-> data.hex: 0x7B2273697A65223A307D + +> finalize_block "abc" +-> code: OK +-> code: OK +-> data.hex: 0x0200000000000000 + +> commit +-> code: OK + +> info +-> code: OK +-> data: {"size":1} +-> data.hex: 0x7B2273697A65223A317D + +> query "abc" +-> code: OK +-> log: exists +-> height: 1 +-> key: abc +-> key.hex: 616263 +-> value: abc +-> value.hex: 616263 + +> finalize_block "def=xyz" "ghi=123" +-> code: OK +-> code: OK +-> code: OK +-> data.hex: 0x0600000000000000 + +> commit +-> code: OK + +> query "def" +-> code: OK +-> log: exists +-> height: 2 +-> key: def +-> key.hex: 646566 +-> value: xyz +-> value.hex: 78797A + diff --git a/sei-tendermint/abci/tests/test_cli/ex2.abci b/sei-tendermint/abci/tests/test_cli/ex2.abci new file mode 100644 index 0000000000..1cabba1512 --- /dev/null +++ b/sei-tendermint/abci/tests/test_cli/ex2.abci @@ -0,0 +1,10 @@ +check_tx 0x00 +check_tx 0xff +finalize_block 0x00 +commit +check_tx 0x00 +finalize_block 0x01 +commit +finalize_block 0x04 +commit +info diff --git a/sei-tendermint/abci/tests/test_cli/ex2.abci.out b/sei-tendermint/abci/tests/test_cli/ex2.abci.out new file mode 100644 index 0000000000..e29a353682 --- /dev/null +++ b/sei-tendermint/abci/tests/test_cli/ex2.abci.out @@ -0,0 +1,38 @@ +> check_tx 0x00 +-> code: OK + +> check_tx 0xff +-> code: OK + +> finalize_block 0x00 +-> code: OK +-> code: OK +-> data.hex: 0x0200000000000000 + +> commit +-> code: OK + +> check_tx 0x00 +-> code: OK + +> finalize_block 0x01 +-> code: OK +-> code: OK +-> data.hex: 0x0400000000000000 + +> commit +-> code: OK + +> finalize_block 0x04 +-> code: OK +-> code: OK +-> data.hex: 0x0600000000000000 + +> commit +-> code: OK + +> info +-> code: OK +-> data: {"size":3} +-> data.hex: 0x7B2273697A65223A337D + diff --git a/sei-tendermint/abci/tests/test_cli/test.sh b/sei-tendermint/abci/tests/test_cli/test.sh new file mode 100755 index 0000000000..9c02ce6f54 --- /dev/null +++ b/sei-tendermint/abci/tests/test_cli/test.sh @@ -0,0 +1,42 @@ +#! /bin/bash +set -e + +# Get the root directory. +export PATH="$GOBIN:$PATH" +SOURCE="${BASH_SOURCE[0]}" +while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done +DIR="$( cd -P "$( dirname "$SOURCE" )/../.." && pwd )" + +# Change into that dir because we expect that. +cd "$DIR" || exit + +function testExample() { + N=$1 + INPUT=$2 + APP="$3 $4" + + echo "Example $N: $APP" + $APP &> /dev/null & + sleep 2 + abci-cli --log_level=error --verbose batch < "$INPUT" > "${INPUT}.out.new" + killall "$3" + + pre=$(shasum < "${INPUT}.out") + post=$(shasum < "${INPUT}.out.new") + + if [[ "$pre" != "$post" ]]; then + echo "You broke the tutorial" + echo "Got:" + cat "${INPUT}.out.new" + echo "Expected:" + cat "${INPUT}.out" + exit 1 + fi + + rm "${INPUT}".out.new +} + +testExample 1 tests/test_cli/ex1.abci abci-cli kvstore + +echo "" +echo "PASS" diff --git a/sei-tendermint/abci/tests/tests.go b/sei-tendermint/abci/tests/tests.go new file mode 100644 index 0000000000..ca8701d290 --- /dev/null +++ b/sei-tendermint/abci/tests/tests.go @@ -0,0 +1 @@ +package tests diff --git a/sei-tendermint/abci/types/application.go b/sei-tendermint/abci/types/application.go new file mode 100644 index 0000000000..e74b877438 --- /dev/null +++ b/sei-tendermint/abci/types/application.go @@ -0,0 +1,121 @@ +package types + +import "context" + +//go:generate ../../scripts/mockery_generate.sh Application +// Application is an interface that enables any finite, deterministic state machine +// to be driven by a blockchain-based replication engine via the ABCI. +type Application interface { + // Info/Query Connection + Info(context.Context, *RequestInfo) (*ResponseInfo, error) // Return application info + Query(context.Context, *RequestQuery) (*ResponseQuery, error) // Query for state + + // Mempool Connection + CheckTx(context.Context, *RequestCheckTx) (*ResponseCheckTx, error) // Validate a tx for the mempool + + // Consensus Connection + InitChain(context.Context, *RequestInitChain) (*ResponseInitChain, error) // Initialize blockchain w validators/other info from TendermintCore + PrepareProposal(context.Context, *RequestPrepareProposal) (*ResponsePrepareProposal, error) + ProcessProposal(context.Context, *RequestProcessProposal) (*ResponseProcessProposal, error) + // Commit the state and return the application Merkle root hash + Commit(context.Context) (*ResponseCommit, error) + // Create application specific vote extension + ExtendVote(context.Context, *RequestExtendVote) (*ResponseExtendVote, error) + // Verify application's vote extension data + VerifyVoteExtension(context.Context, *RequestVerifyVoteExtension) (*ResponseVerifyVoteExtension, error) + // Deliver the decided block with its txs to the Application + FinalizeBlock(context.Context, *RequestFinalizeBlock) (*ResponseFinalizeBlock, error) + + // State Sync Connection + ListSnapshots(context.Context, *RequestListSnapshots) (*ResponseListSnapshots, error) // List available snapshots + OfferSnapshot(context.Context, *RequestOfferSnapshot) (*ResponseOfferSnapshot, error) // Offer a snapshot to the application + LoadSnapshotChunk(context.Context, *RequestLoadSnapshotChunk) (*ResponseLoadSnapshotChunk, error) // Load a snapshot chunk + ApplySnapshotChunk(context.Context, *RequestApplySnapshotChunk) (*ResponseApplySnapshotChunk, error) // Apply a shapshot chunk +} + +//------------------------------------------------------- +// BaseApplication is a base form of Application + +var _ Application = (*BaseApplication)(nil) + +type BaseApplication struct{} + +func NewBaseApplication() *BaseApplication { + return &BaseApplication{} +} + +func (BaseApplication) Info(_ context.Context, req *RequestInfo) (*ResponseInfo, error) { + return &ResponseInfo{}, nil +} + +func (BaseApplication) CheckTx(_ context.Context, req *RequestCheckTx) (*ResponseCheckTx, error) { + return &ResponseCheckTx{Code: CodeTypeOK}, nil +} + +func (BaseApplication) Commit(_ context.Context) (*ResponseCommit, error) { + return &ResponseCommit{}, nil +} + +func (BaseApplication) ExtendVote(_ context.Context, req *RequestExtendVote) (*ResponseExtendVote, error) { + return &ResponseExtendVote{}, nil +} + +func (BaseApplication) VerifyVoteExtension(_ context.Context, req *RequestVerifyVoteExtension) (*ResponseVerifyVoteExtension, error) { + return &ResponseVerifyVoteExtension{ + Status: ResponseVerifyVoteExtension_ACCEPT, + }, nil +} + +func (BaseApplication) Query(_ context.Context, req *RequestQuery) (*ResponseQuery, error) { + return &ResponseQuery{Code: CodeTypeOK}, nil +} + +func (BaseApplication) InitChain(_ context.Context, req *RequestInitChain) (*ResponseInitChain, error) { + return &ResponseInitChain{}, nil +} + +func (BaseApplication) ListSnapshots(_ context.Context, req *RequestListSnapshots) (*ResponseListSnapshots, error) { + return &ResponseListSnapshots{}, nil +} + +func (BaseApplication) OfferSnapshot(_ context.Context, req *RequestOfferSnapshot) (*ResponseOfferSnapshot, error) { + return &ResponseOfferSnapshot{}, nil +} + +func (BaseApplication) LoadSnapshotChunk(_ context.Context, _ *RequestLoadSnapshotChunk) (*ResponseLoadSnapshotChunk, error) { + return &ResponseLoadSnapshotChunk{}, nil +} + +func (BaseApplication) ApplySnapshotChunk(_ context.Context, req *RequestApplySnapshotChunk) (*ResponseApplySnapshotChunk, error) { + return &ResponseApplySnapshotChunk{}, nil +} + +func (BaseApplication) PrepareProposal(_ context.Context, req *RequestPrepareProposal) (*ResponsePrepareProposal, error) { + trs := make([]*TxRecord, 0, len(req.Txs)) + var totalBytes int64 + for _, tx := range req.Txs { + totalBytes += int64(len(tx)) + if totalBytes > req.MaxTxBytes { + break + } + trs = append(trs, &TxRecord{ + Action: TxRecord_UNMODIFIED, + Tx: tx, + }) + } + return &ResponsePrepareProposal{TxRecords: trs}, nil +} + +func (BaseApplication) ProcessProposal(_ context.Context, req *RequestProcessProposal) (*ResponseProcessProposal, error) { + return &ResponseProcessProposal{Status: ResponseProcessProposal_ACCEPT}, nil +} + +func (BaseApplication) FinalizeBlock(_ context.Context, req *RequestFinalizeBlock) (*ResponseFinalizeBlock, error) { + txs := make([]*ExecTxResult, len(req.Txs)) + for i := range req.Txs { + txs[i] = &ExecTxResult{Code: CodeTypeOK} + } + return &ResponseFinalizeBlock{ + TxResults: txs, + }, nil +} diff --git a/sei-tendermint/abci/types/client.go b/sei-tendermint/abci/types/client.go new file mode 100644 index 0000000000..ab1254f4c2 --- /dev/null +++ b/sei-tendermint/abci/types/client.go @@ -0,0 +1 @@ +package types diff --git a/sei-tendermint/abci/types/messages.go b/sei-tendermint/abci/types/messages.go new file mode 100644 index 0000000000..80ab195259 --- /dev/null +++ b/sei-tendermint/abci/types/messages.go @@ -0,0 +1,228 @@ +package types + +import ( + "io" + + "github.com/gogo/protobuf/proto" + + "github.com/tendermint/tendermint/internal/libs/protoio" +) + +const ( + maxMsgSize = 104857600 // 100MB +) + +// WriteMessage writes a varint length-delimited protobuf message. +func WriteMessage(msg proto.Message, w io.Writer) error { + protoWriter := protoio.NewDelimitedWriter(w) + _, err := protoWriter.WriteMsg(msg) + return err +} + +// ReadMessage reads a varint length-delimited protobuf message. +func ReadMessage(r io.Reader, msg proto.Message) error { + _, err := protoio.NewDelimitedReader(r, maxMsgSize).ReadMsg(msg) + return err +} + +//---------------------------------------- + +func ToRequestEcho(message string) *Request { + return &Request{ + Value: &Request_Echo{&RequestEcho{Message: message}}, + } +} + +func ToRequestFlush() *Request { + return &Request{ + Value: &Request_Flush{&RequestFlush{}}, + } +} + +func ToRequestInfo(req *RequestInfo) *Request { + return &Request{ + Value: &Request_Info{req}, + } +} + +func ToRequestCheckTx(req *RequestCheckTx) *Request { + return &Request{ + Value: &Request_CheckTx{req}, + } +} + +func ToRequestCommit() *Request { + return &Request{ + Value: &Request_Commit{&RequestCommit{}}, + } +} + +func ToRequestQuery(req *RequestQuery) *Request { + return &Request{ + Value: &Request_Query{req}, + } +} + +func ToRequestInitChain(req *RequestInitChain) *Request { + return &Request{ + Value: &Request_InitChain{req}, + } +} + +func ToRequestListSnapshots(req *RequestListSnapshots) *Request { + return &Request{ + Value: &Request_ListSnapshots{req}, + } +} + +func ToRequestOfferSnapshot(req *RequestOfferSnapshot) *Request { + return &Request{ + Value: &Request_OfferSnapshot{req}, + } +} + +func ToRequestLoadSnapshotChunk(req *RequestLoadSnapshotChunk) *Request { + return &Request{ + Value: &Request_LoadSnapshotChunk{req}, + } +} + +func ToRequestApplySnapshotChunk(req *RequestApplySnapshotChunk) *Request { + return &Request{ + Value: &Request_ApplySnapshotChunk{req}, + } +} + +func ToRequestExtendVote(req *RequestExtendVote) *Request { + return &Request{ + Value: &Request_ExtendVote{req}, + } +} + +func ToRequestVerifyVoteExtension(req *RequestVerifyVoteExtension) *Request { + return &Request{ + Value: &Request_VerifyVoteExtension{req}, + } +} + +func ToRequestPrepareProposal(req *RequestPrepareProposal) *Request { + return &Request{ + Value: &Request_PrepareProposal{req}, + } +} + +func ToRequestProcessProposal(req *RequestProcessProposal) *Request { + return &Request{ + Value: &Request_ProcessProposal{req}, + } +} + +func ToRequestFinalizeBlock(req *RequestFinalizeBlock) *Request { + return &Request{ + Value: &Request_FinalizeBlock{req}, + } +} + +//---------------------------------------- + +func ToResponseException(errStr string) *Response { + return &Response{ + Value: &Response_Exception{&ResponseException{Error: errStr}}, + } +} + +func ToResponseEcho(message string) *Response { + return &Response{ + Value: &Response_Echo{&ResponseEcho{Message: message}}, + } +} + +func ToResponseFlush() *Response { + return &Response{ + Value: &Response_Flush{&ResponseFlush{}}, + } +} + +func ToResponseInfo(res *ResponseInfo) *Response { + return &Response{ + Value: &Response_Info{res}, + } +} + +func ToResponseCheckTx(res *ResponseCheckTx) *Response { + return &Response{ + Value: &Response_CheckTx{res}, + } +} + +func ToResponseCommit(res *ResponseCommit) *Response { + return &Response{ + Value: &Response_Commit{res}, + } +} + +func ToResponseQuery(res *ResponseQuery) *Response { + return &Response{ + Value: &Response_Query{res}, + } +} + +func ToResponseInitChain(res *ResponseInitChain) *Response { + return &Response{ + Value: &Response_InitChain{res}, + } +} + +func ToResponseListSnapshots(res *ResponseListSnapshots) *Response { + return &Response{ + Value: &Response_ListSnapshots{res}, + } +} + +func ToResponseOfferSnapshot(res *ResponseOfferSnapshot) *Response { + return &Response{ + Value: &Response_OfferSnapshot{res}, + } +} + +func ToResponseLoadSnapshotChunk(res *ResponseLoadSnapshotChunk) *Response { + return &Response{ + Value: &Response_LoadSnapshotChunk{res}, + } +} + +func ToResponseApplySnapshotChunk(res *ResponseApplySnapshotChunk) *Response { + return &Response{ + Value: &Response_ApplySnapshotChunk{res}, + } +} + +func ToResponseExtendVote(res *ResponseExtendVote) *Response { + return &Response{ + Value: &Response_ExtendVote{res}, + } +} + +func ToResponseVerifyVoteExtension(res *ResponseVerifyVoteExtension) *Response { + return &Response{ + Value: &Response_VerifyVoteExtension{res}, + } +} + +func ToResponsePrepareProposal(res *ResponsePrepareProposal) *Response { + return &Response{ + Value: &Response_PrepareProposal{res}, + } +} + +func ToResponseProcessProposal(res *ResponseProcessProposal) *Response { + return &Response{ + Value: &Response_ProcessProposal{res}, + } +} + +func ToResponseFinalizeBlock(res *ResponseFinalizeBlock) *Response { + return &Response{ + Value: &Response_FinalizeBlock{res}, + } +} diff --git a/sei-tendermint/abci/types/messages_test.go b/sei-tendermint/abci/types/messages_test.go new file mode 100644 index 0000000000..404d552225 --- /dev/null +++ b/sei-tendermint/abci/types/messages_test.go @@ -0,0 +1,97 @@ +package types + +import ( + "bytes" + "encoding/json" + "strings" + "testing" + + "github.com/gogo/protobuf/proto" + "github.com/stretchr/testify/assert" + + tmproto "github.com/tendermint/tendermint/proto/tendermint/types" +) + +func TestMarshalJSON(t *testing.T) { + b, err := json.Marshal(&ExecTxResult{Code: 1}) + assert.NoError(t, err) + // include empty fields. + assert.True(t, strings.Contains(string(b), "code")) + r1 := ResponseCheckTx{ + Code: 1, + Data: []byte("hello"), + GasWanted: 43, + } + b, err = json.Marshal(&r1) + assert.NoError(t, err) + + var r2 ResponseCheckTx + err = json.Unmarshal(b, &r2) + assert.NoError(t, err) + assert.Equal(t, r1, r2) +} + +func TestWriteReadMessageSimple(t *testing.T) { + cases := []proto.Message{ + &RequestEcho{ + Message: "Hello", + }, + } + + for _, c := range cases { + buf := new(bytes.Buffer) + err := WriteMessage(c, buf) + assert.NoError(t, err) + + msg := new(RequestEcho) + err = ReadMessage(buf, msg) + assert.NoError(t, err) + + assert.True(t, proto.Equal(c, msg)) + } +} + +func TestWriteReadMessage(t *testing.T) { + cases := []proto.Message{ + &tmproto.Header{ + Height: 4, + ChainID: "test", + }, + // TODO: add the rest + } + + for _, c := range cases { + buf := new(bytes.Buffer) + err := WriteMessage(c, buf) + assert.NoError(t, err) + + msg := new(tmproto.Header) + err = ReadMessage(buf, msg) + assert.NoError(t, err) + + assert.True(t, proto.Equal(c, msg)) + } +} + +func TestWriteReadMessage2(t *testing.T) { + phrase := "hello-world" + cases := []proto.Message{ + &ResponseCheckTx{ + Data: []byte(phrase), + GasWanted: 10, + }, + // TODO: add the rest + } + + for _, c := range cases { + buf := new(bytes.Buffer) + err := WriteMessage(c, buf) + assert.NoError(t, err) + + msg := new(ResponseCheckTx) + err = ReadMessage(buf, msg) + assert.NoError(t, err) + + assert.True(t, proto.Equal(c, msg)) + } +} diff --git a/sei-tendermint/abci/types/mocks/application.go b/sei-tendermint/abci/types/mocks/application.go new file mode 100644 index 0000000000..62cf929057 --- /dev/null +++ b/sei-tendermint/abci/types/mocks/application.go @@ -0,0 +1,352 @@ +// Code generated by mockery. DO NOT EDIT. + +package mocks + +import ( + context "context" + + mock "github.com/stretchr/testify/mock" + types "github.com/tendermint/tendermint/abci/types" +) + +// Application is an autogenerated mock type for the Application type +type Application struct { + mock.Mock +} + +// ApplySnapshotChunk provides a mock function with given fields: _a0, _a1 +func (_m *Application) ApplySnapshotChunk(_a0 context.Context, _a1 *types.RequestApplySnapshotChunk) (*types.ResponseApplySnapshotChunk, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseApplySnapshotChunk + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestApplySnapshotChunk) *types.ResponseApplySnapshotChunk); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseApplySnapshotChunk) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestApplySnapshotChunk) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// CheckTx provides a mock function with given fields: _a0, _a1 +func (_m *Application) CheckTx(_a0 context.Context, _a1 *types.RequestCheckTx) (*types.ResponseCheckTx, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseCheckTx + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestCheckTx) *types.ResponseCheckTx); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseCheckTx) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestCheckTx) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// Commit provides a mock function with given fields: _a0 +func (_m *Application) Commit(_a0 context.Context) (*types.ResponseCommit, error) { + ret := _m.Called(_a0) + + var r0 *types.ResponseCommit + if rf, ok := ret.Get(0).(func(context.Context) *types.ResponseCommit); ok { + r0 = rf(_a0) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseCommit) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context) error); ok { + r1 = rf(_a0) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// ExtendVote provides a mock function with given fields: _a0, _a1 +func (_m *Application) ExtendVote(_a0 context.Context, _a1 *types.RequestExtendVote) (*types.ResponseExtendVote, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseExtendVote + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestExtendVote) *types.ResponseExtendVote); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseExtendVote) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestExtendVote) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// FinalizeBlock provides a mock function with given fields: _a0, _a1 +func (_m *Application) FinalizeBlock(_a0 context.Context, _a1 *types.RequestFinalizeBlock) (*types.ResponseFinalizeBlock, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseFinalizeBlock + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestFinalizeBlock) *types.ResponseFinalizeBlock); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseFinalizeBlock) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestFinalizeBlock) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// Info provides a mock function with given fields: _a0, _a1 +func (_m *Application) Info(_a0 context.Context, _a1 *types.RequestInfo) (*types.ResponseInfo, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseInfo + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestInfo) *types.ResponseInfo); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseInfo) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestInfo) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// InitChain provides a mock function with given fields: _a0, _a1 +func (_m *Application) InitChain(_a0 context.Context, _a1 *types.RequestInitChain) (*types.ResponseInitChain, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseInitChain + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestInitChain) *types.ResponseInitChain); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseInitChain) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestInitChain) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// ListSnapshots provides a mock function with given fields: _a0, _a1 +func (_m *Application) ListSnapshots(_a0 context.Context, _a1 *types.RequestListSnapshots) (*types.ResponseListSnapshots, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseListSnapshots + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestListSnapshots) *types.ResponseListSnapshots); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseListSnapshots) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestListSnapshots) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// LoadSnapshotChunk provides a mock function with given fields: _a0, _a1 +func (_m *Application) LoadSnapshotChunk(_a0 context.Context, _a1 *types.RequestLoadSnapshotChunk) (*types.ResponseLoadSnapshotChunk, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseLoadSnapshotChunk + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestLoadSnapshotChunk) *types.ResponseLoadSnapshotChunk); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseLoadSnapshotChunk) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestLoadSnapshotChunk) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// OfferSnapshot provides a mock function with given fields: _a0, _a1 +func (_m *Application) OfferSnapshot(_a0 context.Context, _a1 *types.RequestOfferSnapshot) (*types.ResponseOfferSnapshot, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseOfferSnapshot + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestOfferSnapshot) *types.ResponseOfferSnapshot); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseOfferSnapshot) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestOfferSnapshot) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// PrepareProposal provides a mock function with given fields: _a0, _a1 +func (_m *Application) PrepareProposal(_a0 context.Context, _a1 *types.RequestPrepareProposal) (*types.ResponsePrepareProposal, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponsePrepareProposal + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestPrepareProposal) *types.ResponsePrepareProposal); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponsePrepareProposal) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestPrepareProposal) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// ProcessProposal provides a mock function with given fields: _a0, _a1 +func (_m *Application) ProcessProposal(_a0 context.Context, _a1 *types.RequestProcessProposal) (*types.ResponseProcessProposal, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseProcessProposal + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestProcessProposal) *types.ResponseProcessProposal); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseProcessProposal) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestProcessProposal) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// Query provides a mock function with given fields: _a0, _a1 +func (_m *Application) Query(_a0 context.Context, _a1 *types.RequestQuery) (*types.ResponseQuery, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseQuery + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestQuery) *types.ResponseQuery); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseQuery) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestQuery) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// VerifyVoteExtension provides a mock function with given fields: _a0, _a1 +func (_m *Application) VerifyVoteExtension(_a0 context.Context, _a1 *types.RequestVerifyVoteExtension) (*types.ResponseVerifyVoteExtension, error) { + ret := _m.Called(_a0, _a1) + + var r0 *types.ResponseVerifyVoteExtension + if rf, ok := ret.Get(0).(func(context.Context, *types.RequestVerifyVoteExtension) *types.ResponseVerifyVoteExtension); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*types.ResponseVerifyVoteExtension) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *types.RequestVerifyVoteExtension) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +type NewApplicationT interface { + mock.TestingT + Cleanup(func()) +} + +// NewApplication creates a new instance of Application. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +func NewApplication(t NewApplicationT) *Application { + mock := &Application{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/sei-tendermint/abci/types/pubkey.go b/sei-tendermint/abci/types/pubkey.go new file mode 100644 index 0000000000..c188fc8f5e --- /dev/null +++ b/sei-tendermint/abci/types/pubkey.go @@ -0,0 +1,53 @@ +package types + +import ( + fmt "fmt" + + "github.com/tendermint/tendermint/crypto/ed25519" + "github.com/tendermint/tendermint/crypto/encoding" + "github.com/tendermint/tendermint/crypto/secp256k1" + "github.com/tendermint/tendermint/crypto/sr25519" +) + +func Ed25519ValidatorUpdate(pk []byte, power int64) ValidatorUpdate { + pke := ed25519.PubKey(pk) + + pkp, err := encoding.PubKeyToProto(pke) + if err != nil { + panic(err) + } + + return ValidatorUpdate{ + PubKey: pkp, + Power: power, + } +} + +func UpdateValidator(pk []byte, power int64, keyType string) ValidatorUpdate { + switch keyType { + case "", ed25519.KeyType: + return Ed25519ValidatorUpdate(pk, power) + case secp256k1.KeyType: + pke := secp256k1.PubKey(pk) + pkp, err := encoding.PubKeyToProto(pke) + if err != nil { + panic(err) + } + return ValidatorUpdate{ + PubKey: pkp, + Power: power, + } + case sr25519.KeyType: + pke := sr25519.PubKey(pk) + pkp, err := encoding.PubKeyToProto(pke) + if err != nil { + panic(err) + } + return ValidatorUpdate{ + PubKey: pkp, + Power: power, + } + default: + panic(fmt.Sprintf("key type %s not supported", keyType)) + } +} diff --git a/sei-tendermint/abci/types/types.go b/sei-tendermint/abci/types/types.go new file mode 100644 index 0000000000..121e721592 --- /dev/null +++ b/sei-tendermint/abci/types/types.go @@ -0,0 +1,239 @@ +package types + +import ( + "bytes" + "encoding/json" + + "github.com/gogo/protobuf/jsonpb" + "github.com/tendermint/tendermint/crypto" + "github.com/tendermint/tendermint/crypto/encoding" + "github.com/tendermint/tendermint/internal/jsontypes" +) + +const ( + CodeTypeOK uint32 = 0 +) + +// IsOK returns true if Code is OK. +func (r ResponseCheckTx) IsOK() bool { + return r.Code == CodeTypeOK +} + +// IsErr returns true if Code is something other than OK. +func (r ResponseCheckTx) IsErr() bool { + return r.Code != CodeTypeOK +} + +// IsOK returns true if Code is OK. +func (r ResponseDeliverTx) IsOK() bool { + return r.Code == CodeTypeOK +} + +// IsErr returns true if Code is something other than OK. +func (r ResponseDeliverTx) IsErr() bool { + return r.Code != CodeTypeOK +} + +// IsOK returns true if Code is OK. +func (r ExecTxResult) IsOK() bool { + return r.Code == CodeTypeOK +} + +// IsErr returns true if Code is something other than OK. +func (r ExecTxResult) IsErr() bool { + return r.Code != CodeTypeOK +} + +// IsOK returns true if Code is OK. +func (r ResponseQuery) IsOK() bool { + return r.Code == CodeTypeOK +} + +// IsErr returns true if Code is something other than OK. +func (r ResponseQuery) IsErr() bool { + return r.Code != CodeTypeOK +} + +func (r ResponseProcessProposal) IsAccepted() bool { + return r.Status == ResponseProcessProposal_ACCEPT +} + +func (r ResponseProcessProposal) IsStatusUnknown() bool { + return r.Status == ResponseProcessProposal_UNKNOWN +} + +// IsStatusUnknown returns true if Code is Unknown +func (r ResponseVerifyVoteExtension) IsStatusUnknown() bool { + return r.Status == ResponseVerifyVoteExtension_UNKNOWN +} + +// IsOK returns true if Code is OK +func (r ResponseVerifyVoteExtension) IsOK() bool { + return r.Status == ResponseVerifyVoteExtension_ACCEPT +} + +// IsErr returns true if Code is something other than OK. +func (r ResponseVerifyVoteExtension) IsErr() bool { + return r.Status != ResponseVerifyVoteExtension_ACCEPT +} + +//--------------------------------------------------------------------------- +// override JSON marshaling so we emit defaults (ie. disable omitempty) + +var ( + jsonpbMarshaller = jsonpb.Marshaler{ + EnumsAsInts: true, + EmitDefaults: true, + } + jsonpbUnmarshaller = jsonpb.Unmarshaler{} +) + +func (r *ResponseCheckTx) MarshalJSON() ([]byte, error) { + s, err := jsonpbMarshaller.MarshalToString(r) + return []byte(s), err +} + +func (r *ResponseCheckTx) UnmarshalJSON(b []byte) error { + reader := bytes.NewBuffer(b) + return jsonpbUnmarshaller.Unmarshal(reader, r) +} + +func (r *ResponseDeliverTx) MarshalJSON() ([]byte, error) { + s, err := jsonpbMarshaller.MarshalToString(r) + return []byte(s), err +} + +func (r *ResponseDeliverTx) UnmarshalJSON(b []byte) error { + reader := bytes.NewBuffer(b) + return jsonpbUnmarshaller.Unmarshal(reader, r) +} + +func (r *ResponseQuery) MarshalJSON() ([]byte, error) { + s, err := jsonpbMarshaller.MarshalToString(r) + return []byte(s), err +} + +func (r *ResponseQuery) UnmarshalJSON(b []byte) error { + reader := bytes.NewBuffer(b) + return jsonpbUnmarshaller.Unmarshal(reader, r) +} + +func (r *ResponseCommit) MarshalJSON() ([]byte, error) { + s, err := jsonpbMarshaller.MarshalToString(r) + return []byte(s), err +} + +func (r *ResponseCommit) UnmarshalJSON(b []byte) error { + reader := bytes.NewBuffer(b) + return jsonpbUnmarshaller.Unmarshal(reader, r) +} + +func (r *EventAttribute) MarshalJSON() ([]byte, error) { + s, err := jsonpbMarshaller.MarshalToString(r) + return []byte(s), err +} + +func (r *EventAttribute) UnmarshalJSON(b []byte) error { + reader := bytes.NewBuffer(b) + return jsonpbUnmarshaller.Unmarshal(reader, r) +} + +// validatorUpdateJSON is the JSON encoding of a validator update. +// +// It handles translation of public keys from the protobuf representation to +// the legacy Amino-compatible format expected by RPC clients. +type validatorUpdateJSON struct { + PubKey json.RawMessage `json:"pub_key,omitempty"` + Power int64 `json:"power,string"` +} + +func (v *ValidatorUpdate) MarshalJSON() ([]byte, error) { + key, err := encoding.PubKeyFromProto(v.PubKey) + if err != nil { + return nil, err + } + jkey, err := jsontypes.Marshal(key) + if err != nil { + return nil, err + } + return json.Marshal(validatorUpdateJSON{ + PubKey: jkey, + Power: v.GetPower(), + }) +} + +func (v *ValidatorUpdate) UnmarshalJSON(data []byte) error { + var vu validatorUpdateJSON + if err := json.Unmarshal(data, &vu); err != nil { + return err + } + var key crypto.PubKey + if err := jsontypes.Unmarshal(vu.PubKey, &key); err != nil { + return err + } + pkey, err := encoding.PubKeyToProto(key) + if err != nil { + return err + } + v.PubKey = pkey + v.Power = vu.Power + return nil +} + +// Some compile time assertions to ensure we don't +// have accidental runtime surprises later on. + +// jsonEncodingRoundTripper ensures that asserted +// interfaces implement both MarshalJSON and UnmarshalJSON +type jsonRoundTripper interface { + json.Marshaler + json.Unmarshaler +} + +var _ jsonRoundTripper = (*ResponseCommit)(nil) +var _ jsonRoundTripper = (*ResponseQuery)(nil) +var _ jsonRoundTripper = (*ResponseDeliverTx)(nil) +var _ jsonRoundTripper = (*ResponseCheckTx)(nil) + +var _ jsonRoundTripper = (*EventAttribute)(nil) + +// ----------------------------------------------- +// construct Result data + +func RespondVerifyVoteExtension(ok bool) ResponseVerifyVoteExtension { + status := ResponseVerifyVoteExtension_REJECT + if ok { + status = ResponseVerifyVoteExtension_ACCEPT + } + return ResponseVerifyVoteExtension{ + Status: status, + } +} + +// deterministicExecTxResult constructs a copy of response that omits +// non-deterministic fields. The input response is not modified. +func deterministicExecTxResult(response *ExecTxResult) *ExecTxResult { + return &ExecTxResult{ + Code: response.Code, + Data: response.Data, + GasWanted: response.GasWanted, + GasUsed: response.GasUsed, + } +} + +// MarshalTxResults encodes the the TxResults as a list of byte +// slices. It strips off the non-deterministic pieces of the TxResults +// so that the resulting data can be used for hash comparisons and used +// in Merkle proofs. +func MarshalTxResults(r []*ExecTxResult) ([][]byte, error) { + s := make([][]byte, len(r)) + for i, e := range r { + d := deterministicExecTxResult(e) + b, err := d.Marshal() + if err != nil { + return nil, err + } + s[i] = b + } + return s, nil +} diff --git a/sei-tendermint/abci/types/types.pb.go b/sei-tendermint/abci/types/types.pb.go new file mode 100644 index 0000000000..946cfa6af5 --- /dev/null +++ b/sei-tendermint/abci/types/types.pb.go @@ -0,0 +1,17325 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: tendermint/abci/types.proto + +package types + +import ( + context "context" + fmt "fmt" + _ "github.com/gogo/protobuf/gogoproto" + proto "github.com/gogo/protobuf/proto" + _ "github.com/gogo/protobuf/types" + github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" + crypto "github.com/tendermint/tendermint/proto/tendermint/crypto" + types1 "github.com/tendermint/tendermint/proto/tendermint/types" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + io "io" + math "math" + math_bits "math/bits" + time "time" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf +var _ = time.Kitchen + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type CheckTxType int32 + +const ( + CheckTxType_New CheckTxType = 0 + CheckTxType_Recheck CheckTxType = 1 +) + +var CheckTxType_name = map[int32]string{ + 0: "NEW", + 1: "RECHECK", +} + +var CheckTxType_value = map[string]int32{ + "NEW": 0, + "RECHECK": 1, +} + +func (x CheckTxType) String() string { + return proto.EnumName(CheckTxType_name, int32(x)) +} + +func (CheckTxType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{0} +} + +type MisbehaviorType int32 + +const ( + MisbehaviorType_UNKNOWN MisbehaviorType = 0 + MisbehaviorType_DUPLICATE_VOTE MisbehaviorType = 1 + MisbehaviorType_LIGHT_CLIENT_ATTACK MisbehaviorType = 2 +) + +var MisbehaviorType_name = map[int32]string{ + 0: "UNKNOWN", + 1: "DUPLICATE_VOTE", + 2: "LIGHT_CLIENT_ATTACK", +} + +var MisbehaviorType_value = map[string]int32{ + "UNKNOWN": 0, + "DUPLICATE_VOTE": 1, + "LIGHT_CLIENT_ATTACK": 2, +} + +func (x MisbehaviorType) String() string { + return proto.EnumName(MisbehaviorType_name, int32(x)) +} + +func (MisbehaviorType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{1} +} + +type ResponseOfferSnapshot_Result int32 + +const ( + ResponseOfferSnapshot_UNKNOWN ResponseOfferSnapshot_Result = 0 + ResponseOfferSnapshot_ACCEPT ResponseOfferSnapshot_Result = 1 + ResponseOfferSnapshot_ABORT ResponseOfferSnapshot_Result = 2 + ResponseOfferSnapshot_REJECT ResponseOfferSnapshot_Result = 3 + ResponseOfferSnapshot_REJECT_FORMAT ResponseOfferSnapshot_Result = 4 + ResponseOfferSnapshot_REJECT_SENDER ResponseOfferSnapshot_Result = 5 +) + +var ResponseOfferSnapshot_Result_name = map[int32]string{ + 0: "UNKNOWN", + 1: "ACCEPT", + 2: "ABORT", + 3: "REJECT", + 4: "REJECT_FORMAT", + 5: "REJECT_SENDER", +} + +var ResponseOfferSnapshot_Result_value = map[string]int32{ + "UNKNOWN": 0, + "ACCEPT": 1, + "ABORT": 2, + "REJECT": 3, + "REJECT_FORMAT": 4, + "REJECT_SENDER": 5, +} + +func (x ResponseOfferSnapshot_Result) String() string { + return proto.EnumName(ResponseOfferSnapshot_Result_name, int32(x)) +} + +func (ResponseOfferSnapshot_Result) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{28, 0} +} + +type ResponseApplySnapshotChunk_Result int32 + +const ( + ResponseApplySnapshotChunk_UNKNOWN ResponseApplySnapshotChunk_Result = 0 + ResponseApplySnapshotChunk_ACCEPT ResponseApplySnapshotChunk_Result = 1 + ResponseApplySnapshotChunk_ABORT ResponseApplySnapshotChunk_Result = 2 + ResponseApplySnapshotChunk_RETRY ResponseApplySnapshotChunk_Result = 3 + ResponseApplySnapshotChunk_RETRY_SNAPSHOT ResponseApplySnapshotChunk_Result = 4 + ResponseApplySnapshotChunk_REJECT_SNAPSHOT ResponseApplySnapshotChunk_Result = 5 +) + +var ResponseApplySnapshotChunk_Result_name = map[int32]string{ + 0: "UNKNOWN", + 1: "ACCEPT", + 2: "ABORT", + 3: "RETRY", + 4: "RETRY_SNAPSHOT", + 5: "REJECT_SNAPSHOT", +} + +var ResponseApplySnapshotChunk_Result_value = map[string]int32{ + "UNKNOWN": 0, + "ACCEPT": 1, + "ABORT": 2, + "RETRY": 3, + "RETRY_SNAPSHOT": 4, + "REJECT_SNAPSHOT": 5, +} + +func (x ResponseApplySnapshotChunk_Result) String() string { + return proto.EnumName(ResponseApplySnapshotChunk_Result_name, int32(x)) +} + +func (ResponseApplySnapshotChunk_Result) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{30, 0} +} + +type ResponseProcessProposal_ProposalStatus int32 + +const ( + ResponseProcessProposal_UNKNOWN ResponseProcessProposal_ProposalStatus = 0 + ResponseProcessProposal_ACCEPT ResponseProcessProposal_ProposalStatus = 1 + ResponseProcessProposal_REJECT ResponseProcessProposal_ProposalStatus = 2 +) + +var ResponseProcessProposal_ProposalStatus_name = map[int32]string{ + 0: "UNKNOWN", + 1: "ACCEPT", + 2: "REJECT", +} + +var ResponseProcessProposal_ProposalStatus_value = map[string]int32{ + "UNKNOWN": 0, + "ACCEPT": 1, + "REJECT": 2, +} + +func (x ResponseProcessProposal_ProposalStatus) String() string { + return proto.EnumName(ResponseProcessProposal_ProposalStatus_name, int32(x)) +} + +func (ResponseProcessProposal_ProposalStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{32, 0} +} + +type ResponseVerifyVoteExtension_VerifyStatus int32 + +const ( + ResponseVerifyVoteExtension_UNKNOWN ResponseVerifyVoteExtension_VerifyStatus = 0 + ResponseVerifyVoteExtension_ACCEPT ResponseVerifyVoteExtension_VerifyStatus = 1 + ResponseVerifyVoteExtension_REJECT ResponseVerifyVoteExtension_VerifyStatus = 2 +) + +var ResponseVerifyVoteExtension_VerifyStatus_name = map[int32]string{ + 0: "UNKNOWN", + 1: "ACCEPT", + 2: "REJECT", +} + +var ResponseVerifyVoteExtension_VerifyStatus_value = map[string]int32{ + "UNKNOWN": 0, + "ACCEPT": 1, + "REJECT": 2, +} + +func (x ResponseVerifyVoteExtension_VerifyStatus) String() string { + return proto.EnumName(ResponseVerifyVoteExtension_VerifyStatus_name, int32(x)) +} + +func (ResponseVerifyVoteExtension_VerifyStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{34, 0} +} + +// TxAction contains App-provided information on what to do with a transaction that is part of a raw proposal +type TxRecord_TxAction int32 + +const ( + TxRecord_UNKNOWN TxRecord_TxAction = 0 + TxRecord_UNMODIFIED TxRecord_TxAction = 1 + TxRecord_ADDED TxRecord_TxAction = 2 + TxRecord_REMOVED TxRecord_TxAction = 3 +) + +var TxRecord_TxAction_name = map[int32]string{ + 0: "UNKNOWN", + 1: "UNMODIFIED", + 2: "ADDED", + 3: "REMOVED", +} + +var TxRecord_TxAction_value = map[string]int32{ + "UNKNOWN": 0, + "UNMODIFIED": 1, + "ADDED": 2, + "REMOVED": 3, +} + +func (x TxRecord_TxAction) String() string { + return proto.EnumName(TxRecord_TxAction_name, int32(x)) +} + +func (TxRecord_TxAction) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{42, 0} +} + +type Request struct { + // Types that are valid to be assigned to Value: + // *Request_Echo + // *Request_Flush + // *Request_Info + // *Request_InitChain + // *Request_Query + // *Request_CheckTx + // *Request_Commit + // *Request_ListSnapshots + // *Request_OfferSnapshot + // *Request_LoadSnapshotChunk + // *Request_ApplySnapshotChunk + // *Request_PrepareProposal + // *Request_ProcessProposal + // *Request_ExtendVote + // *Request_VerifyVoteExtension + // *Request_FinalizeBlock + Value isRequest_Value `protobuf_oneof:"value"` +} + +func (m *Request) Reset() { *m = Request{} } +func (m *Request) String() string { return proto.CompactTextString(m) } +func (*Request) ProtoMessage() {} +func (*Request) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{0} +} +func (m *Request) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Request.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Request) XXX_Merge(src proto.Message) { + xxx_messageInfo_Request.Merge(m, src) +} +func (m *Request) XXX_Size() int { + return m.Size() +} +func (m *Request) XXX_DiscardUnknown() { + xxx_messageInfo_Request.DiscardUnknown(m) +} + +var xxx_messageInfo_Request proto.InternalMessageInfo + +type isRequest_Value interface { + isRequest_Value() + MarshalTo([]byte) (int, error) + Size() int +} + +type Request_Echo struct { + Echo *RequestEcho `protobuf:"bytes,1,opt,name=echo,proto3,oneof" json:"echo,omitempty"` +} +type Request_Flush struct { + Flush *RequestFlush `protobuf:"bytes,2,opt,name=flush,proto3,oneof" json:"flush,omitempty"` +} +type Request_Info struct { + Info *RequestInfo `protobuf:"bytes,3,opt,name=info,proto3,oneof" json:"info,omitempty"` +} +type Request_InitChain struct { + InitChain *RequestInitChain `protobuf:"bytes,4,opt,name=init_chain,json=initChain,proto3,oneof" json:"init_chain,omitempty"` +} +type Request_Query struct { + Query *RequestQuery `protobuf:"bytes,5,opt,name=query,proto3,oneof" json:"query,omitempty"` +} +type Request_CheckTx struct { + CheckTx *RequestCheckTx `protobuf:"bytes,7,opt,name=check_tx,json=checkTx,proto3,oneof" json:"check_tx,omitempty"` +} +type Request_Commit struct { + Commit *RequestCommit `protobuf:"bytes,10,opt,name=commit,proto3,oneof" json:"commit,omitempty"` +} +type Request_ListSnapshots struct { + ListSnapshots *RequestListSnapshots `protobuf:"bytes,11,opt,name=list_snapshots,json=listSnapshots,proto3,oneof" json:"list_snapshots,omitempty"` +} +type Request_OfferSnapshot struct { + OfferSnapshot *RequestOfferSnapshot `protobuf:"bytes,12,opt,name=offer_snapshot,json=offerSnapshot,proto3,oneof" json:"offer_snapshot,omitempty"` +} +type Request_LoadSnapshotChunk struct { + LoadSnapshotChunk *RequestLoadSnapshotChunk `protobuf:"bytes,13,opt,name=load_snapshot_chunk,json=loadSnapshotChunk,proto3,oneof" json:"load_snapshot_chunk,omitempty"` +} +type Request_ApplySnapshotChunk struct { + ApplySnapshotChunk *RequestApplySnapshotChunk `protobuf:"bytes,14,opt,name=apply_snapshot_chunk,json=applySnapshotChunk,proto3,oneof" json:"apply_snapshot_chunk,omitempty"` +} +type Request_PrepareProposal struct { + PrepareProposal *RequestPrepareProposal `protobuf:"bytes,15,opt,name=prepare_proposal,json=prepareProposal,proto3,oneof" json:"prepare_proposal,omitempty"` +} +type Request_ProcessProposal struct { + ProcessProposal *RequestProcessProposal `protobuf:"bytes,16,opt,name=process_proposal,json=processProposal,proto3,oneof" json:"process_proposal,omitempty"` +} +type Request_ExtendVote struct { + ExtendVote *RequestExtendVote `protobuf:"bytes,17,opt,name=extend_vote,json=extendVote,proto3,oneof" json:"extend_vote,omitempty"` +} +type Request_VerifyVoteExtension struct { + VerifyVoteExtension *RequestVerifyVoteExtension `protobuf:"bytes,18,opt,name=verify_vote_extension,json=verifyVoteExtension,proto3,oneof" json:"verify_vote_extension,omitempty"` +} +type Request_FinalizeBlock struct { + FinalizeBlock *RequestFinalizeBlock `protobuf:"bytes,19,opt,name=finalize_block,json=finalizeBlock,proto3,oneof" json:"finalize_block,omitempty"` +} + +func (*Request_Echo) isRequest_Value() {} +func (*Request_Flush) isRequest_Value() {} +func (*Request_Info) isRequest_Value() {} +func (*Request_InitChain) isRequest_Value() {} +func (*Request_Query) isRequest_Value() {} +func (*Request_CheckTx) isRequest_Value() {} +func (*Request_Commit) isRequest_Value() {} +func (*Request_ListSnapshots) isRequest_Value() {} +func (*Request_OfferSnapshot) isRequest_Value() {} +func (*Request_LoadSnapshotChunk) isRequest_Value() {} +func (*Request_ApplySnapshotChunk) isRequest_Value() {} +func (*Request_PrepareProposal) isRequest_Value() {} +func (*Request_ProcessProposal) isRequest_Value() {} +func (*Request_ExtendVote) isRequest_Value() {} +func (*Request_VerifyVoteExtension) isRequest_Value() {} +func (*Request_FinalizeBlock) isRequest_Value() {} + +func (m *Request) GetValue() isRequest_Value { + if m != nil { + return m.Value + } + return nil +} + +func (m *Request) GetEcho() *RequestEcho { + if x, ok := m.GetValue().(*Request_Echo); ok { + return x.Echo + } + return nil +} + +func (m *Request) GetFlush() *RequestFlush { + if x, ok := m.GetValue().(*Request_Flush); ok { + return x.Flush + } + return nil +} + +func (m *Request) GetInfo() *RequestInfo { + if x, ok := m.GetValue().(*Request_Info); ok { + return x.Info + } + return nil +} + +func (m *Request) GetInitChain() *RequestInitChain { + if x, ok := m.GetValue().(*Request_InitChain); ok { + return x.InitChain + } + return nil +} + +func (m *Request) GetQuery() *RequestQuery { + if x, ok := m.GetValue().(*Request_Query); ok { + return x.Query + } + return nil +} + +func (m *Request) GetCheckTx() *RequestCheckTx { + if x, ok := m.GetValue().(*Request_CheckTx); ok { + return x.CheckTx + } + return nil +} + +func (m *Request) GetCommit() *RequestCommit { + if x, ok := m.GetValue().(*Request_Commit); ok { + return x.Commit + } + return nil +} + +func (m *Request) GetListSnapshots() *RequestListSnapshots { + if x, ok := m.GetValue().(*Request_ListSnapshots); ok { + return x.ListSnapshots + } + return nil +} + +func (m *Request) GetOfferSnapshot() *RequestOfferSnapshot { + if x, ok := m.GetValue().(*Request_OfferSnapshot); ok { + return x.OfferSnapshot + } + return nil +} + +func (m *Request) GetLoadSnapshotChunk() *RequestLoadSnapshotChunk { + if x, ok := m.GetValue().(*Request_LoadSnapshotChunk); ok { + return x.LoadSnapshotChunk + } + return nil +} + +func (m *Request) GetApplySnapshotChunk() *RequestApplySnapshotChunk { + if x, ok := m.GetValue().(*Request_ApplySnapshotChunk); ok { + return x.ApplySnapshotChunk + } + return nil +} + +func (m *Request) GetPrepareProposal() *RequestPrepareProposal { + if x, ok := m.GetValue().(*Request_PrepareProposal); ok { + return x.PrepareProposal + } + return nil +} + +func (m *Request) GetProcessProposal() *RequestProcessProposal { + if x, ok := m.GetValue().(*Request_ProcessProposal); ok { + return x.ProcessProposal + } + return nil +} + +func (m *Request) GetExtendVote() *RequestExtendVote { + if x, ok := m.GetValue().(*Request_ExtendVote); ok { + return x.ExtendVote + } + return nil +} + +func (m *Request) GetVerifyVoteExtension() *RequestVerifyVoteExtension { + if x, ok := m.GetValue().(*Request_VerifyVoteExtension); ok { + return x.VerifyVoteExtension + } + return nil +} + +func (m *Request) GetFinalizeBlock() *RequestFinalizeBlock { + if x, ok := m.GetValue().(*Request_FinalizeBlock); ok { + return x.FinalizeBlock + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*Request) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*Request_Echo)(nil), + (*Request_Flush)(nil), + (*Request_Info)(nil), + (*Request_InitChain)(nil), + (*Request_Query)(nil), + (*Request_CheckTx)(nil), + (*Request_Commit)(nil), + (*Request_ListSnapshots)(nil), + (*Request_OfferSnapshot)(nil), + (*Request_LoadSnapshotChunk)(nil), + (*Request_ApplySnapshotChunk)(nil), + (*Request_PrepareProposal)(nil), + (*Request_ProcessProposal)(nil), + (*Request_ExtendVote)(nil), + (*Request_VerifyVoteExtension)(nil), + (*Request_FinalizeBlock)(nil), + } +} + +type RequestEcho struct { + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` +} + +func (m *RequestEcho) Reset() { *m = RequestEcho{} } +func (m *RequestEcho) String() string { return proto.CompactTextString(m) } +func (*RequestEcho) ProtoMessage() {} +func (*RequestEcho) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{1} +} +func (m *RequestEcho) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestEcho) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestEcho.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RequestEcho) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestEcho.Merge(m, src) +} +func (m *RequestEcho) XXX_Size() int { + return m.Size() +} +func (m *RequestEcho) XXX_DiscardUnknown() { + xxx_messageInfo_RequestEcho.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestEcho proto.InternalMessageInfo + +func (m *RequestEcho) GetMessage() string { + if m != nil { + return m.Message + } + return "" +} + +type RequestFlush struct { +} + +func (m *RequestFlush) Reset() { *m = RequestFlush{} } +func (m *RequestFlush) String() string { return proto.CompactTextString(m) } +func (*RequestFlush) ProtoMessage() {} +func (*RequestFlush) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{2} +} +func (m *RequestFlush) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestFlush) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestFlush.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RequestFlush) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestFlush.Merge(m, src) +} +func (m *RequestFlush) XXX_Size() int { + return m.Size() +} +func (m *RequestFlush) XXX_DiscardUnknown() { + xxx_messageInfo_RequestFlush.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestFlush proto.InternalMessageInfo + +type RequestInfo struct { + Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + BlockVersion uint64 `protobuf:"varint,2,opt,name=block_version,json=blockVersion,proto3" json:"block_version,omitempty"` + P2PVersion uint64 `protobuf:"varint,3,opt,name=p2p_version,json=p2pVersion,proto3" json:"p2p_version,omitempty"` + AbciVersion string `protobuf:"bytes,4,opt,name=abci_version,json=abciVersion,proto3" json:"abci_version,omitempty"` +} + +func (m *RequestInfo) Reset() { *m = RequestInfo{} } +func (m *RequestInfo) String() string { return proto.CompactTextString(m) } +func (*RequestInfo) ProtoMessage() {} +func (*RequestInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{3} +} +func (m *RequestInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestInfo.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RequestInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestInfo.Merge(m, src) +} +func (m *RequestInfo) XXX_Size() int { + return m.Size() +} +func (m *RequestInfo) XXX_DiscardUnknown() { + xxx_messageInfo_RequestInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestInfo proto.InternalMessageInfo + +func (m *RequestInfo) GetVersion() string { + if m != nil { + return m.Version + } + return "" +} + +func (m *RequestInfo) GetBlockVersion() uint64 { + if m != nil { + return m.BlockVersion + } + return 0 +} + +func (m *RequestInfo) GetP2PVersion() uint64 { + if m != nil { + return m.P2PVersion + } + return 0 +} + +func (m *RequestInfo) GetAbciVersion() string { + if m != nil { + return m.AbciVersion + } + return "" +} + +type RequestInitChain struct { + Time time.Time `protobuf:"bytes,1,opt,name=time,proto3,stdtime" json:"time"` + ChainId string `protobuf:"bytes,2,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + ConsensusParams *types1.ConsensusParams `protobuf:"bytes,3,opt,name=consensus_params,json=consensusParams,proto3" json:"consensus_params,omitempty"` + Validators []ValidatorUpdate `protobuf:"bytes,4,rep,name=validators,proto3" json:"validators"` + AppStateBytes []byte `protobuf:"bytes,5,opt,name=app_state_bytes,json=appStateBytes,proto3" json:"app_state_bytes,omitempty"` + InitialHeight int64 `protobuf:"varint,6,opt,name=initial_height,json=initialHeight,proto3" json:"initial_height,omitempty"` +} + +func (m *RequestInitChain) Reset() { *m = RequestInitChain{} } +func (m *RequestInitChain) String() string { return proto.CompactTextString(m) } +func (*RequestInitChain) ProtoMessage() {} +func (*RequestInitChain) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{4} +} +func (m *RequestInitChain) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestInitChain) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestInitChain.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RequestInitChain) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestInitChain.Merge(m, src) +} +func (m *RequestInitChain) XXX_Size() int { + return m.Size() +} +func (m *RequestInitChain) XXX_DiscardUnknown() { + xxx_messageInfo_RequestInitChain.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestInitChain proto.InternalMessageInfo + +func (m *RequestInitChain) GetTime() time.Time { + if m != nil { + return m.Time + } + return time.Time{} +} + +func (m *RequestInitChain) GetChainId() string { + if m != nil { + return m.ChainId + } + return "" +} + +func (m *RequestInitChain) GetConsensusParams() *types1.ConsensusParams { + if m != nil { + return m.ConsensusParams + } + return nil +} + +func (m *RequestInitChain) GetValidators() []ValidatorUpdate { + if m != nil { + return m.Validators + } + return nil +} + +func (m *RequestInitChain) GetAppStateBytes() []byte { + if m != nil { + return m.AppStateBytes + } + return nil +} + +func (m *RequestInitChain) GetInitialHeight() int64 { + if m != nil { + return m.InitialHeight + } + return 0 +} + +type RequestQuery struct { + Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` + Height int64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"` + Prove bool `protobuf:"varint,4,opt,name=prove,proto3" json:"prove,omitempty"` +} + +func (m *RequestQuery) Reset() { *m = RequestQuery{} } +func (m *RequestQuery) String() string { return proto.CompactTextString(m) } +func (*RequestQuery) ProtoMessage() {} +func (*RequestQuery) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{5} +} +func (m *RequestQuery) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestQuery.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RequestQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestQuery.Merge(m, src) +} +func (m *RequestQuery) XXX_Size() int { + return m.Size() +} +func (m *RequestQuery) XXX_DiscardUnknown() { + xxx_messageInfo_RequestQuery.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestQuery proto.InternalMessageInfo + +func (m *RequestQuery) GetData() []byte { + if m != nil { + return m.Data + } + return nil +} + +func (m *RequestQuery) GetPath() string { + if m != nil { + return m.Path + } + return "" +} + +func (m *RequestQuery) GetHeight() int64 { + if m != nil { + return m.Height + } + return 0 +} + +func (m *RequestQuery) GetProve() bool { + if m != nil { + return m.Prove + } + return false +} + +type RequestCheckTx struct { + Tx []byte `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"` + Type CheckTxType `protobuf:"varint,2,opt,name=type,proto3,enum=tendermint.abci.CheckTxType" json:"type,omitempty"` +} + +func (m *RequestCheckTx) Reset() { *m = RequestCheckTx{} } +func (m *RequestCheckTx) String() string { return proto.CompactTextString(m) } +func (*RequestCheckTx) ProtoMessage() {} +func (*RequestCheckTx) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{6} +} +func (m *RequestCheckTx) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestCheckTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestCheckTx.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RequestCheckTx) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestCheckTx.Merge(m, src) +} +func (m *RequestCheckTx) XXX_Size() int { + return m.Size() +} +func (m *RequestCheckTx) XXX_DiscardUnknown() { + xxx_messageInfo_RequestCheckTx.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestCheckTx proto.InternalMessageInfo + +func (m *RequestCheckTx) GetTx() []byte { + if m != nil { + return m.Tx + } + return nil +} + +func (m *RequestCheckTx) GetType() CheckTxType { + if m != nil { + return m.Type + } + return CheckTxType_New +} + +type RequestCommit struct { +} + +func (m *RequestCommit) Reset() { *m = RequestCommit{} } +func (m *RequestCommit) String() string { return proto.CompactTextString(m) } +func (*RequestCommit) ProtoMessage() {} +func (*RequestCommit) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{7} +} +func (m *RequestCommit) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestCommit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestCommit.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RequestCommit) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestCommit.Merge(m, src) +} +func (m *RequestCommit) XXX_Size() int { + return m.Size() +} +func (m *RequestCommit) XXX_DiscardUnknown() { + xxx_messageInfo_RequestCommit.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestCommit proto.InternalMessageInfo + +// lists available snapshots +type RequestListSnapshots struct { +} + +func (m *RequestListSnapshots) Reset() { *m = RequestListSnapshots{} } +func (m *RequestListSnapshots) String() string { return proto.CompactTextString(m) } +func (*RequestListSnapshots) ProtoMessage() {} +func (*RequestListSnapshots) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{8} +} +func (m *RequestListSnapshots) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestListSnapshots) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestListSnapshots.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RequestListSnapshots) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestListSnapshots.Merge(m, src) +} +func (m *RequestListSnapshots) XXX_Size() int { + return m.Size() +} +func (m *RequestListSnapshots) XXX_DiscardUnknown() { + xxx_messageInfo_RequestListSnapshots.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestListSnapshots proto.InternalMessageInfo + +// offers a snapshot to the application +type RequestOfferSnapshot struct { + Snapshot *Snapshot `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + AppHash []byte `protobuf:"bytes,2,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"` +} + +func (m *RequestOfferSnapshot) Reset() { *m = RequestOfferSnapshot{} } +func (m *RequestOfferSnapshot) String() string { return proto.CompactTextString(m) } +func (*RequestOfferSnapshot) ProtoMessage() {} +func (*RequestOfferSnapshot) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{9} +} +func (m *RequestOfferSnapshot) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestOfferSnapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestOfferSnapshot.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RequestOfferSnapshot) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestOfferSnapshot.Merge(m, src) +} +func (m *RequestOfferSnapshot) XXX_Size() int { + return m.Size() +} +func (m *RequestOfferSnapshot) XXX_DiscardUnknown() { + xxx_messageInfo_RequestOfferSnapshot.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestOfferSnapshot proto.InternalMessageInfo + +func (m *RequestOfferSnapshot) GetSnapshot() *Snapshot { + if m != nil { + return m.Snapshot + } + return nil +} + +func (m *RequestOfferSnapshot) GetAppHash() []byte { + if m != nil { + return m.AppHash + } + return nil +} + +// loads a snapshot chunk +type RequestLoadSnapshotChunk struct { + Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` + Format uint32 `protobuf:"varint,2,opt,name=format,proto3" json:"format,omitempty"` + Chunk uint32 `protobuf:"varint,3,opt,name=chunk,proto3" json:"chunk,omitempty"` +} + +func (m *RequestLoadSnapshotChunk) Reset() { *m = RequestLoadSnapshotChunk{} } +func (m *RequestLoadSnapshotChunk) String() string { return proto.CompactTextString(m) } +func (*RequestLoadSnapshotChunk) ProtoMessage() {} +func (*RequestLoadSnapshotChunk) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{10} +} +func (m *RequestLoadSnapshotChunk) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestLoadSnapshotChunk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestLoadSnapshotChunk.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RequestLoadSnapshotChunk) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestLoadSnapshotChunk.Merge(m, src) +} +func (m *RequestLoadSnapshotChunk) XXX_Size() int { + return m.Size() +} +func (m *RequestLoadSnapshotChunk) XXX_DiscardUnknown() { + xxx_messageInfo_RequestLoadSnapshotChunk.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestLoadSnapshotChunk proto.InternalMessageInfo + +func (m *RequestLoadSnapshotChunk) GetHeight() uint64 { + if m != nil { + return m.Height + } + return 0 +} + +func (m *RequestLoadSnapshotChunk) GetFormat() uint32 { + if m != nil { + return m.Format + } + return 0 +} + +func (m *RequestLoadSnapshotChunk) GetChunk() uint32 { + if m != nil { + return m.Chunk + } + return 0 +} + +// Applies a snapshot chunk +type RequestApplySnapshotChunk struct { + Index uint32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` + Chunk []byte `protobuf:"bytes,2,opt,name=chunk,proto3" json:"chunk,omitempty"` + Sender string `protobuf:"bytes,3,opt,name=sender,proto3" json:"sender,omitempty"` +} + +func (m *RequestApplySnapshotChunk) Reset() { *m = RequestApplySnapshotChunk{} } +func (m *RequestApplySnapshotChunk) String() string { return proto.CompactTextString(m) } +func (*RequestApplySnapshotChunk) ProtoMessage() {} +func (*RequestApplySnapshotChunk) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{11} +} +func (m *RequestApplySnapshotChunk) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestApplySnapshotChunk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestApplySnapshotChunk.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RequestApplySnapshotChunk) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestApplySnapshotChunk.Merge(m, src) +} +func (m *RequestApplySnapshotChunk) XXX_Size() int { + return m.Size() +} +func (m *RequestApplySnapshotChunk) XXX_DiscardUnknown() { + xxx_messageInfo_RequestApplySnapshotChunk.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestApplySnapshotChunk proto.InternalMessageInfo + +func (m *RequestApplySnapshotChunk) GetIndex() uint32 { + if m != nil { + return m.Index + } + return 0 +} + +func (m *RequestApplySnapshotChunk) GetChunk() []byte { + if m != nil { + return m.Chunk + } + return nil +} + +func (m *RequestApplySnapshotChunk) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +type RequestPrepareProposal struct { + // the modified transactions cannot exceed this size. + MaxTxBytes int64 `protobuf:"varint,1,opt,name=max_tx_bytes,json=maxTxBytes,proto3" json:"max_tx_bytes,omitempty"` + // txs is an array of transactions that will be included in a block, + // sent to the app for possible modifications. + Txs [][]byte `protobuf:"bytes,2,rep,name=txs,proto3" json:"txs,omitempty"` + LocalLastCommit ExtendedCommitInfo `protobuf:"bytes,3,opt,name=local_last_commit,json=localLastCommit,proto3" json:"local_last_commit"` + ByzantineValidators []Misbehavior `protobuf:"bytes,4,rep,name=byzantine_validators,json=byzantineValidators,proto3" json:"byzantine_validators"` + Height int64 `protobuf:"varint,5,opt,name=height,proto3" json:"height,omitempty"` + Time time.Time `protobuf:"bytes,6,opt,name=time,proto3,stdtime" json:"time"` + NextValidatorsHash []byte `protobuf:"bytes,7,opt,name=next_validators_hash,json=nextValidatorsHash,proto3" json:"next_validators_hash,omitempty"` + // address of the public key of the validator proposing the block. + ProposerAddress []byte `protobuf:"bytes,8,opt,name=proposer_address,json=proposerAddress,proto3" json:"proposer_address,omitempty"` +} + +func (m *RequestPrepareProposal) Reset() { *m = RequestPrepareProposal{} } +func (m *RequestPrepareProposal) String() string { return proto.CompactTextString(m) } +func (*RequestPrepareProposal) ProtoMessage() {} +func (*RequestPrepareProposal) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{12} +} +func (m *RequestPrepareProposal) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestPrepareProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestPrepareProposal.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RequestPrepareProposal) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestPrepareProposal.Merge(m, src) +} +func (m *RequestPrepareProposal) XXX_Size() int { + return m.Size() +} +func (m *RequestPrepareProposal) XXX_DiscardUnknown() { + xxx_messageInfo_RequestPrepareProposal.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestPrepareProposal proto.InternalMessageInfo + +func (m *RequestPrepareProposal) GetMaxTxBytes() int64 { + if m != nil { + return m.MaxTxBytes + } + return 0 +} + +func (m *RequestPrepareProposal) GetTxs() [][]byte { + if m != nil { + return m.Txs + } + return nil +} + +func (m *RequestPrepareProposal) GetLocalLastCommit() ExtendedCommitInfo { + if m != nil { + return m.LocalLastCommit + } + return ExtendedCommitInfo{} +} + +func (m *RequestPrepareProposal) GetByzantineValidators() []Misbehavior { + if m != nil { + return m.ByzantineValidators + } + return nil +} + +func (m *RequestPrepareProposal) GetHeight() int64 { + if m != nil { + return m.Height + } + return 0 +} + +func (m *RequestPrepareProposal) GetTime() time.Time { + if m != nil { + return m.Time + } + return time.Time{} +} + +func (m *RequestPrepareProposal) GetNextValidatorsHash() []byte { + if m != nil { + return m.NextValidatorsHash + } + return nil +} + +func (m *RequestPrepareProposal) GetProposerAddress() []byte { + if m != nil { + return m.ProposerAddress + } + return nil +} + +type RequestProcessProposal struct { + Txs [][]byte `protobuf:"bytes,1,rep,name=txs,proto3" json:"txs,omitempty"` + ProposedLastCommit CommitInfo `protobuf:"bytes,2,opt,name=proposed_last_commit,json=proposedLastCommit,proto3" json:"proposed_last_commit"` + ByzantineValidators []Misbehavior `protobuf:"bytes,3,rep,name=byzantine_validators,json=byzantineValidators,proto3" json:"byzantine_validators"` + // hash is the merkle root hash of the fields of the proposed block. + Hash []byte `protobuf:"bytes,4,opt,name=hash,proto3" json:"hash,omitempty"` + Height int64 `protobuf:"varint,5,opt,name=height,proto3" json:"height,omitempty"` + Time time.Time `protobuf:"bytes,6,opt,name=time,proto3,stdtime" json:"time"` + NextValidatorsHash []byte `protobuf:"bytes,7,opt,name=next_validators_hash,json=nextValidatorsHash,proto3" json:"next_validators_hash,omitempty"` + // address of the public key of the original proposer of the block. + ProposerAddress []byte `protobuf:"bytes,8,opt,name=proposer_address,json=proposerAddress,proto3" json:"proposer_address,omitempty"` +} + +func (m *RequestProcessProposal) Reset() { *m = RequestProcessProposal{} } +func (m *RequestProcessProposal) String() string { return proto.CompactTextString(m) } +func (*RequestProcessProposal) ProtoMessage() {} +func (*RequestProcessProposal) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{13} +} +func (m *RequestProcessProposal) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestProcessProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestProcessProposal.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RequestProcessProposal) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestProcessProposal.Merge(m, src) +} +func (m *RequestProcessProposal) XXX_Size() int { + return m.Size() +} +func (m *RequestProcessProposal) XXX_DiscardUnknown() { + xxx_messageInfo_RequestProcessProposal.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestProcessProposal proto.InternalMessageInfo + +func (m *RequestProcessProposal) GetTxs() [][]byte { + if m != nil { + return m.Txs + } + return nil +} + +func (m *RequestProcessProposal) GetProposedLastCommit() CommitInfo { + if m != nil { + return m.ProposedLastCommit + } + return CommitInfo{} +} + +func (m *RequestProcessProposal) GetByzantineValidators() []Misbehavior { + if m != nil { + return m.ByzantineValidators + } + return nil +} + +func (m *RequestProcessProposal) GetHash() []byte { + if m != nil { + return m.Hash + } + return nil +} + +func (m *RequestProcessProposal) GetHeight() int64 { + if m != nil { + return m.Height + } + return 0 +} + +func (m *RequestProcessProposal) GetTime() time.Time { + if m != nil { + return m.Time + } + return time.Time{} +} + +func (m *RequestProcessProposal) GetNextValidatorsHash() []byte { + if m != nil { + return m.NextValidatorsHash + } + return nil +} + +func (m *RequestProcessProposal) GetProposerAddress() []byte { + if m != nil { + return m.ProposerAddress + } + return nil +} + +// Extends a vote with application-side injection +type RequestExtendVote struct { + Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` + Height int64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` +} + +func (m *RequestExtendVote) Reset() { *m = RequestExtendVote{} } +func (m *RequestExtendVote) String() string { return proto.CompactTextString(m) } +func (*RequestExtendVote) ProtoMessage() {} +func (*RequestExtendVote) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{14} +} +func (m *RequestExtendVote) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestExtendVote) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestExtendVote.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RequestExtendVote) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestExtendVote.Merge(m, src) +} +func (m *RequestExtendVote) XXX_Size() int { + return m.Size() +} +func (m *RequestExtendVote) XXX_DiscardUnknown() { + xxx_messageInfo_RequestExtendVote.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestExtendVote proto.InternalMessageInfo + +func (m *RequestExtendVote) GetHash() []byte { + if m != nil { + return m.Hash + } + return nil +} + +func (m *RequestExtendVote) GetHeight() int64 { + if m != nil { + return m.Height + } + return 0 +} + +// Verify the vote extension +type RequestVerifyVoteExtension struct { + Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` + ValidatorAddress []byte `protobuf:"bytes,2,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"` + Height int64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"` + VoteExtension []byte `protobuf:"bytes,4,opt,name=vote_extension,json=voteExtension,proto3" json:"vote_extension,omitempty"` +} + +func (m *RequestVerifyVoteExtension) Reset() { *m = RequestVerifyVoteExtension{} } +func (m *RequestVerifyVoteExtension) String() string { return proto.CompactTextString(m) } +func (*RequestVerifyVoteExtension) ProtoMessage() {} +func (*RequestVerifyVoteExtension) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{15} +} +func (m *RequestVerifyVoteExtension) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestVerifyVoteExtension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestVerifyVoteExtension.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RequestVerifyVoteExtension) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestVerifyVoteExtension.Merge(m, src) +} +func (m *RequestVerifyVoteExtension) XXX_Size() int { + return m.Size() +} +func (m *RequestVerifyVoteExtension) XXX_DiscardUnknown() { + xxx_messageInfo_RequestVerifyVoteExtension.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestVerifyVoteExtension proto.InternalMessageInfo + +func (m *RequestVerifyVoteExtension) GetHash() []byte { + if m != nil { + return m.Hash + } + return nil +} + +func (m *RequestVerifyVoteExtension) GetValidatorAddress() []byte { + if m != nil { + return m.ValidatorAddress + } + return nil +} + +func (m *RequestVerifyVoteExtension) GetHeight() int64 { + if m != nil { + return m.Height + } + return 0 +} + +func (m *RequestVerifyVoteExtension) GetVoteExtension() []byte { + if m != nil { + return m.VoteExtension + } + return nil +} + +type RequestFinalizeBlock struct { + Txs [][]byte `protobuf:"bytes,1,rep,name=txs,proto3" json:"txs,omitempty"` + DecidedLastCommit CommitInfo `protobuf:"bytes,2,opt,name=decided_last_commit,json=decidedLastCommit,proto3" json:"decided_last_commit"` + ByzantineValidators []Misbehavior `protobuf:"bytes,3,rep,name=byzantine_validators,json=byzantineValidators,proto3" json:"byzantine_validators"` + // hash is the merkle root hash of the fields of the proposed block. + Hash []byte `protobuf:"bytes,4,opt,name=hash,proto3" json:"hash,omitempty"` + Height int64 `protobuf:"varint,5,opt,name=height,proto3" json:"height,omitempty"` + Time time.Time `protobuf:"bytes,6,opt,name=time,proto3,stdtime" json:"time"` + NextValidatorsHash []byte `protobuf:"bytes,7,opt,name=next_validators_hash,json=nextValidatorsHash,proto3" json:"next_validators_hash,omitempty"` + // proposer_address is the address of the public key of the original proposer of the block. + ProposerAddress []byte `protobuf:"bytes,8,opt,name=proposer_address,json=proposerAddress,proto3" json:"proposer_address,omitempty"` +} + +func (m *RequestFinalizeBlock) Reset() { *m = RequestFinalizeBlock{} } +func (m *RequestFinalizeBlock) String() string { return proto.CompactTextString(m) } +func (*RequestFinalizeBlock) ProtoMessage() {} +func (*RequestFinalizeBlock) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{16} +} +func (m *RequestFinalizeBlock) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestFinalizeBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestFinalizeBlock.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RequestFinalizeBlock) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestFinalizeBlock.Merge(m, src) +} +func (m *RequestFinalizeBlock) XXX_Size() int { + return m.Size() +} +func (m *RequestFinalizeBlock) XXX_DiscardUnknown() { + xxx_messageInfo_RequestFinalizeBlock.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestFinalizeBlock proto.InternalMessageInfo + +func (m *RequestFinalizeBlock) GetTxs() [][]byte { + if m != nil { + return m.Txs + } + return nil +} + +func (m *RequestFinalizeBlock) GetDecidedLastCommit() CommitInfo { + if m != nil { + return m.DecidedLastCommit + } + return CommitInfo{} +} + +func (m *RequestFinalizeBlock) GetByzantineValidators() []Misbehavior { + if m != nil { + return m.ByzantineValidators + } + return nil +} + +func (m *RequestFinalizeBlock) GetHash() []byte { + if m != nil { + return m.Hash + } + return nil +} + +func (m *RequestFinalizeBlock) GetHeight() int64 { + if m != nil { + return m.Height + } + return 0 +} + +func (m *RequestFinalizeBlock) GetTime() time.Time { + if m != nil { + return m.Time + } + return time.Time{} +} + +func (m *RequestFinalizeBlock) GetNextValidatorsHash() []byte { + if m != nil { + return m.NextValidatorsHash + } + return nil +} + +func (m *RequestFinalizeBlock) GetProposerAddress() []byte { + if m != nil { + return m.ProposerAddress + } + return nil +} + +type Response struct { + // Types that are valid to be assigned to Value: + // *Response_Exception + // *Response_Echo + // *Response_Flush + // *Response_Info + // *Response_InitChain + // *Response_Query + // *Response_CheckTx + // *Response_Commit + // *Response_ListSnapshots + // *Response_OfferSnapshot + // *Response_LoadSnapshotChunk + // *Response_ApplySnapshotChunk + // *Response_PrepareProposal + // *Response_ProcessProposal + // *Response_ExtendVote + // *Response_VerifyVoteExtension + // *Response_FinalizeBlock + Value isResponse_Value `protobuf_oneof:"value"` +} + +func (m *Response) Reset() { *m = Response{} } +func (m *Response) String() string { return proto.CompactTextString(m) } +func (*Response) ProtoMessage() {} +func (*Response) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{17} +} +func (m *Response) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Response) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Response.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Response) XXX_Merge(src proto.Message) { + xxx_messageInfo_Response.Merge(m, src) +} +func (m *Response) XXX_Size() int { + return m.Size() +} +func (m *Response) XXX_DiscardUnknown() { + xxx_messageInfo_Response.DiscardUnknown(m) +} + +var xxx_messageInfo_Response proto.InternalMessageInfo + +type isResponse_Value interface { + isResponse_Value() + MarshalTo([]byte) (int, error) + Size() int +} + +type Response_Exception struct { + Exception *ResponseException `protobuf:"bytes,1,opt,name=exception,proto3,oneof" json:"exception,omitempty"` +} +type Response_Echo struct { + Echo *ResponseEcho `protobuf:"bytes,2,opt,name=echo,proto3,oneof" json:"echo,omitempty"` +} +type Response_Flush struct { + Flush *ResponseFlush `protobuf:"bytes,3,opt,name=flush,proto3,oneof" json:"flush,omitempty"` +} +type Response_Info struct { + Info *ResponseInfo `protobuf:"bytes,4,opt,name=info,proto3,oneof" json:"info,omitempty"` +} +type Response_InitChain struct { + InitChain *ResponseInitChain `protobuf:"bytes,5,opt,name=init_chain,json=initChain,proto3,oneof" json:"init_chain,omitempty"` +} +type Response_Query struct { + Query *ResponseQuery `protobuf:"bytes,6,opt,name=query,proto3,oneof" json:"query,omitempty"` +} +type Response_CheckTx struct { + CheckTx *ResponseCheckTx `protobuf:"bytes,8,opt,name=check_tx,json=checkTx,proto3,oneof" json:"check_tx,omitempty"` +} +type Response_Commit struct { + Commit *ResponseCommit `protobuf:"bytes,11,opt,name=commit,proto3,oneof" json:"commit,omitempty"` +} +type Response_ListSnapshots struct { + ListSnapshots *ResponseListSnapshots `protobuf:"bytes,12,opt,name=list_snapshots,json=listSnapshots,proto3,oneof" json:"list_snapshots,omitempty"` +} +type Response_OfferSnapshot struct { + OfferSnapshot *ResponseOfferSnapshot `protobuf:"bytes,13,opt,name=offer_snapshot,json=offerSnapshot,proto3,oneof" json:"offer_snapshot,omitempty"` +} +type Response_LoadSnapshotChunk struct { + LoadSnapshotChunk *ResponseLoadSnapshotChunk `protobuf:"bytes,14,opt,name=load_snapshot_chunk,json=loadSnapshotChunk,proto3,oneof" json:"load_snapshot_chunk,omitempty"` +} +type Response_ApplySnapshotChunk struct { + ApplySnapshotChunk *ResponseApplySnapshotChunk `protobuf:"bytes,15,opt,name=apply_snapshot_chunk,json=applySnapshotChunk,proto3,oneof" json:"apply_snapshot_chunk,omitempty"` +} +type Response_PrepareProposal struct { + PrepareProposal *ResponsePrepareProposal `protobuf:"bytes,16,opt,name=prepare_proposal,json=prepareProposal,proto3,oneof" json:"prepare_proposal,omitempty"` +} +type Response_ProcessProposal struct { + ProcessProposal *ResponseProcessProposal `protobuf:"bytes,17,opt,name=process_proposal,json=processProposal,proto3,oneof" json:"process_proposal,omitempty"` +} +type Response_ExtendVote struct { + ExtendVote *ResponseExtendVote `protobuf:"bytes,18,opt,name=extend_vote,json=extendVote,proto3,oneof" json:"extend_vote,omitempty"` +} +type Response_VerifyVoteExtension struct { + VerifyVoteExtension *ResponseVerifyVoteExtension `protobuf:"bytes,19,opt,name=verify_vote_extension,json=verifyVoteExtension,proto3,oneof" json:"verify_vote_extension,omitempty"` +} +type Response_FinalizeBlock struct { + FinalizeBlock *ResponseFinalizeBlock `protobuf:"bytes,20,opt,name=finalize_block,json=finalizeBlock,proto3,oneof" json:"finalize_block,omitempty"` +} + +func (*Response_Exception) isResponse_Value() {} +func (*Response_Echo) isResponse_Value() {} +func (*Response_Flush) isResponse_Value() {} +func (*Response_Info) isResponse_Value() {} +func (*Response_InitChain) isResponse_Value() {} +func (*Response_Query) isResponse_Value() {} +func (*Response_CheckTx) isResponse_Value() {} +func (*Response_Commit) isResponse_Value() {} +func (*Response_ListSnapshots) isResponse_Value() {} +func (*Response_OfferSnapshot) isResponse_Value() {} +func (*Response_LoadSnapshotChunk) isResponse_Value() {} +func (*Response_ApplySnapshotChunk) isResponse_Value() {} +func (*Response_PrepareProposal) isResponse_Value() {} +func (*Response_ProcessProposal) isResponse_Value() {} +func (*Response_ExtendVote) isResponse_Value() {} +func (*Response_VerifyVoteExtension) isResponse_Value() {} +func (*Response_FinalizeBlock) isResponse_Value() {} + +func (m *Response) GetValue() isResponse_Value { + if m != nil { + return m.Value + } + return nil +} + +func (m *Response) GetException() *ResponseException { + if x, ok := m.GetValue().(*Response_Exception); ok { + return x.Exception + } + return nil +} + +func (m *Response) GetEcho() *ResponseEcho { + if x, ok := m.GetValue().(*Response_Echo); ok { + return x.Echo + } + return nil +} + +func (m *Response) GetFlush() *ResponseFlush { + if x, ok := m.GetValue().(*Response_Flush); ok { + return x.Flush + } + return nil +} + +func (m *Response) GetInfo() *ResponseInfo { + if x, ok := m.GetValue().(*Response_Info); ok { + return x.Info + } + return nil +} + +func (m *Response) GetInitChain() *ResponseInitChain { + if x, ok := m.GetValue().(*Response_InitChain); ok { + return x.InitChain + } + return nil +} + +func (m *Response) GetQuery() *ResponseQuery { + if x, ok := m.GetValue().(*Response_Query); ok { + return x.Query + } + return nil +} + +func (m *Response) GetCheckTx() *ResponseCheckTx { + if x, ok := m.GetValue().(*Response_CheckTx); ok { + return x.CheckTx + } + return nil +} + +func (m *Response) GetCommit() *ResponseCommit { + if x, ok := m.GetValue().(*Response_Commit); ok { + return x.Commit + } + return nil +} + +func (m *Response) GetListSnapshots() *ResponseListSnapshots { + if x, ok := m.GetValue().(*Response_ListSnapshots); ok { + return x.ListSnapshots + } + return nil +} + +func (m *Response) GetOfferSnapshot() *ResponseOfferSnapshot { + if x, ok := m.GetValue().(*Response_OfferSnapshot); ok { + return x.OfferSnapshot + } + return nil +} + +func (m *Response) GetLoadSnapshotChunk() *ResponseLoadSnapshotChunk { + if x, ok := m.GetValue().(*Response_LoadSnapshotChunk); ok { + return x.LoadSnapshotChunk + } + return nil +} + +func (m *Response) GetApplySnapshotChunk() *ResponseApplySnapshotChunk { + if x, ok := m.GetValue().(*Response_ApplySnapshotChunk); ok { + return x.ApplySnapshotChunk + } + return nil +} + +func (m *Response) GetPrepareProposal() *ResponsePrepareProposal { + if x, ok := m.GetValue().(*Response_PrepareProposal); ok { + return x.PrepareProposal + } + return nil +} + +func (m *Response) GetProcessProposal() *ResponseProcessProposal { + if x, ok := m.GetValue().(*Response_ProcessProposal); ok { + return x.ProcessProposal + } + return nil +} + +func (m *Response) GetExtendVote() *ResponseExtendVote { + if x, ok := m.GetValue().(*Response_ExtendVote); ok { + return x.ExtendVote + } + return nil +} + +func (m *Response) GetVerifyVoteExtension() *ResponseVerifyVoteExtension { + if x, ok := m.GetValue().(*Response_VerifyVoteExtension); ok { + return x.VerifyVoteExtension + } + return nil +} + +func (m *Response) GetFinalizeBlock() *ResponseFinalizeBlock { + if x, ok := m.GetValue().(*Response_FinalizeBlock); ok { + return x.FinalizeBlock + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*Response) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*Response_Exception)(nil), + (*Response_Echo)(nil), + (*Response_Flush)(nil), + (*Response_Info)(nil), + (*Response_InitChain)(nil), + (*Response_Query)(nil), + (*Response_CheckTx)(nil), + (*Response_Commit)(nil), + (*Response_ListSnapshots)(nil), + (*Response_OfferSnapshot)(nil), + (*Response_LoadSnapshotChunk)(nil), + (*Response_ApplySnapshotChunk)(nil), + (*Response_PrepareProposal)(nil), + (*Response_ProcessProposal)(nil), + (*Response_ExtendVote)(nil), + (*Response_VerifyVoteExtension)(nil), + (*Response_FinalizeBlock)(nil), + } +} + +// nondeterministic +type ResponseException struct { + Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` +} + +func (m *ResponseException) Reset() { *m = ResponseException{} } +func (m *ResponseException) String() string { return proto.CompactTextString(m) } +func (*ResponseException) ProtoMessage() {} +func (*ResponseException) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{18} +} +func (m *ResponseException) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseException) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseException.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResponseException) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseException.Merge(m, src) +} +func (m *ResponseException) XXX_Size() int { + return m.Size() +} +func (m *ResponseException) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseException.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseException proto.InternalMessageInfo + +func (m *ResponseException) GetError() string { + if m != nil { + return m.Error + } + return "" +} + +type ResponseEcho struct { + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` +} + +func (m *ResponseEcho) Reset() { *m = ResponseEcho{} } +func (m *ResponseEcho) String() string { return proto.CompactTextString(m) } +func (*ResponseEcho) ProtoMessage() {} +func (*ResponseEcho) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{19} +} +func (m *ResponseEcho) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseEcho) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseEcho.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResponseEcho) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseEcho.Merge(m, src) +} +func (m *ResponseEcho) XXX_Size() int { + return m.Size() +} +func (m *ResponseEcho) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseEcho.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseEcho proto.InternalMessageInfo + +func (m *ResponseEcho) GetMessage() string { + if m != nil { + return m.Message + } + return "" +} + +type ResponseFlush struct { +} + +func (m *ResponseFlush) Reset() { *m = ResponseFlush{} } +func (m *ResponseFlush) String() string { return proto.CompactTextString(m) } +func (*ResponseFlush) ProtoMessage() {} +func (*ResponseFlush) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{20} +} +func (m *ResponseFlush) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseFlush) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseFlush.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResponseFlush) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseFlush.Merge(m, src) +} +func (m *ResponseFlush) XXX_Size() int { + return m.Size() +} +func (m *ResponseFlush) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseFlush.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseFlush proto.InternalMessageInfo + +type ResponseInfo struct { + Data string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + // this is the software version of the application. TODO: remove? + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + AppVersion uint64 `protobuf:"varint,3,opt,name=app_version,json=appVersion,proto3" json:"app_version,omitempty"` + LastBlockHeight int64 `protobuf:"varint,4,opt,name=last_block_height,json=lastBlockHeight,proto3" json:"last_block_height,omitempty"` + LastBlockAppHash []byte `protobuf:"bytes,5,opt,name=last_block_app_hash,json=lastBlockAppHash,proto3" json:"last_block_app_hash,omitempty"` +} + +func (m *ResponseInfo) Reset() { *m = ResponseInfo{} } +func (m *ResponseInfo) String() string { return proto.CompactTextString(m) } +func (*ResponseInfo) ProtoMessage() {} +func (*ResponseInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{21} +} +func (m *ResponseInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseInfo.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResponseInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseInfo.Merge(m, src) +} +func (m *ResponseInfo) XXX_Size() int { + return m.Size() +} +func (m *ResponseInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseInfo proto.InternalMessageInfo + +func (m *ResponseInfo) GetData() string { + if m != nil { + return m.Data + } + return "" +} + +func (m *ResponseInfo) GetVersion() string { + if m != nil { + return m.Version + } + return "" +} + +func (m *ResponseInfo) GetAppVersion() uint64 { + if m != nil { + return m.AppVersion + } + return 0 +} + +func (m *ResponseInfo) GetLastBlockHeight() int64 { + if m != nil { + return m.LastBlockHeight + } + return 0 +} + +func (m *ResponseInfo) GetLastBlockAppHash() []byte { + if m != nil { + return m.LastBlockAppHash + } + return nil +} + +type ResponseInitChain struct { + ConsensusParams *types1.ConsensusParams `protobuf:"bytes,1,opt,name=consensus_params,json=consensusParams,proto3" json:"consensus_params,omitempty"` + Validators []ValidatorUpdate `protobuf:"bytes,2,rep,name=validators,proto3" json:"validators"` + AppHash []byte `protobuf:"bytes,3,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"` +} + +func (m *ResponseInitChain) Reset() { *m = ResponseInitChain{} } +func (m *ResponseInitChain) String() string { return proto.CompactTextString(m) } +func (*ResponseInitChain) ProtoMessage() {} +func (*ResponseInitChain) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{22} +} +func (m *ResponseInitChain) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseInitChain) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseInitChain.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResponseInitChain) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseInitChain.Merge(m, src) +} +func (m *ResponseInitChain) XXX_Size() int { + return m.Size() +} +func (m *ResponseInitChain) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseInitChain.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseInitChain proto.InternalMessageInfo + +func (m *ResponseInitChain) GetConsensusParams() *types1.ConsensusParams { + if m != nil { + return m.ConsensusParams + } + return nil +} + +func (m *ResponseInitChain) GetValidators() []ValidatorUpdate { + if m != nil { + return m.Validators + } + return nil +} + +func (m *ResponseInitChain) GetAppHash() []byte { + if m != nil { + return m.AppHash + } + return nil +} + +type ResponseQuery struct { + Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + // bytes data = 2; // use "value" instead. + Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"` + Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"` + Index int64 `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"` + Key []byte `protobuf:"bytes,6,opt,name=key,proto3" json:"key,omitempty"` + Value []byte `protobuf:"bytes,7,opt,name=value,proto3" json:"value,omitempty"` + ProofOps *crypto.ProofOps `protobuf:"bytes,8,opt,name=proof_ops,json=proofOps,proto3" json:"proof_ops,omitempty"` + Height int64 `protobuf:"varint,9,opt,name=height,proto3" json:"height,omitempty"` + Codespace string `protobuf:"bytes,10,opt,name=codespace,proto3" json:"codespace,omitempty"` +} + +func (m *ResponseQuery) Reset() { *m = ResponseQuery{} } +func (m *ResponseQuery) String() string { return proto.CompactTextString(m) } +func (*ResponseQuery) ProtoMessage() {} +func (*ResponseQuery) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{23} +} +func (m *ResponseQuery) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseQuery.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResponseQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseQuery.Merge(m, src) +} +func (m *ResponseQuery) XXX_Size() int { + return m.Size() +} +func (m *ResponseQuery) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseQuery.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseQuery proto.InternalMessageInfo + +func (m *ResponseQuery) GetCode() uint32 { + if m != nil { + return m.Code + } + return 0 +} + +func (m *ResponseQuery) GetLog() string { + if m != nil { + return m.Log + } + return "" +} + +func (m *ResponseQuery) GetInfo() string { + if m != nil { + return m.Info + } + return "" +} + +func (m *ResponseQuery) GetIndex() int64 { + if m != nil { + return m.Index + } + return 0 +} + +func (m *ResponseQuery) GetKey() []byte { + if m != nil { + return m.Key + } + return nil +} + +func (m *ResponseQuery) GetValue() []byte { + if m != nil { + return m.Value + } + return nil +} + +func (m *ResponseQuery) GetProofOps() *crypto.ProofOps { + if m != nil { + return m.ProofOps + } + return nil +} + +func (m *ResponseQuery) GetHeight() int64 { + if m != nil { + return m.Height + } + return 0 +} + +func (m *ResponseQuery) GetCodespace() string { + if m != nil { + return m.Codespace + } + return "" +} + +type ResponseCheckTx struct { + Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + GasWanted int64 `protobuf:"varint,5,opt,name=gas_wanted,json=gasWanted,proto3" json:"gas_wanted,omitempty"` + Codespace string `protobuf:"bytes,8,opt,name=codespace,proto3" json:"codespace,omitempty"` + Sender string `protobuf:"bytes,9,opt,name=sender,proto3" json:"sender,omitempty"` + Priority int64 `protobuf:"varint,10,opt,name=priority,proto3" json:"priority,omitempty"` +} + +func (m *ResponseCheckTx) Reset() { *m = ResponseCheckTx{} } +func (m *ResponseCheckTx) String() string { return proto.CompactTextString(m) } +func (*ResponseCheckTx) ProtoMessage() {} +func (*ResponseCheckTx) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{24} +} +func (m *ResponseCheckTx) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseCheckTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseCheckTx.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResponseCheckTx) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseCheckTx.Merge(m, src) +} +func (m *ResponseCheckTx) XXX_Size() int { + return m.Size() +} +func (m *ResponseCheckTx) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseCheckTx.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseCheckTx proto.InternalMessageInfo + +func (m *ResponseCheckTx) GetCode() uint32 { + if m != nil { + return m.Code + } + return 0 +} + +func (m *ResponseCheckTx) GetData() []byte { + if m != nil { + return m.Data + } + return nil +} + +func (m *ResponseCheckTx) GetGasWanted() int64 { + if m != nil { + return m.GasWanted + } + return 0 +} + +func (m *ResponseCheckTx) GetCodespace() string { + if m != nil { + return m.Codespace + } + return "" +} + +func (m *ResponseCheckTx) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *ResponseCheckTx) GetPriority() int64 { + if m != nil { + return m.Priority + } + return 0 +} + +type ResponseDeliverTx struct { + Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"` + Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"` + GasWanted int64 `protobuf:"varint,5,opt,name=gas_wanted,proto3" json:"gas_wanted,omitempty"` + GasUsed int64 `protobuf:"varint,6,opt,name=gas_used,proto3" json:"gas_used,omitempty"` + Events []Event `protobuf:"bytes,7,rep,name=events,proto3" json:"events,omitempty"` + Codespace string `protobuf:"bytes,8,opt,name=codespace,proto3" json:"codespace,omitempty"` +} + +func (m *ResponseDeliverTx) Reset() { *m = ResponseDeliverTx{} } +func (m *ResponseDeliverTx) String() string { return proto.CompactTextString(m) } +func (*ResponseDeliverTx) ProtoMessage() {} +func (*ResponseDeliverTx) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{25} +} +func (m *ResponseDeliverTx) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseDeliverTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseDeliverTx.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResponseDeliverTx) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseDeliverTx.Merge(m, src) +} +func (m *ResponseDeliverTx) XXX_Size() int { + return m.Size() +} +func (m *ResponseDeliverTx) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseDeliverTx.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseDeliverTx proto.InternalMessageInfo + +func (m *ResponseDeliverTx) GetCode() uint32 { + if m != nil { + return m.Code + } + return 0 +} + +func (m *ResponseDeliverTx) GetData() []byte { + if m != nil { + return m.Data + } + return nil +} + +func (m *ResponseDeliverTx) GetLog() string { + if m != nil { + return m.Log + } + return "" +} + +func (m *ResponseDeliverTx) GetInfo() string { + if m != nil { + return m.Info + } + return "" +} + +func (m *ResponseDeliverTx) GetGasWanted() int64 { + if m != nil { + return m.GasWanted + } + return 0 +} + +func (m *ResponseDeliverTx) GetGasUsed() int64 { + if m != nil { + return m.GasUsed + } + return 0 +} + +func (m *ResponseDeliverTx) GetEvents() []Event { + if m != nil { + return m.Events + } + return nil +} + +func (m *ResponseDeliverTx) GetCodespace() string { + if m != nil { + return m.Codespace + } + return "" +} + +type ResponseCommit struct { + // reserve 1 + RetainHeight int64 `protobuf:"varint,3,opt,name=retain_height,json=retainHeight,proto3" json:"retain_height,omitempty"` +} + +func (m *ResponseCommit) Reset() { *m = ResponseCommit{} } +func (m *ResponseCommit) String() string { return proto.CompactTextString(m) } +func (*ResponseCommit) ProtoMessage() {} +func (*ResponseCommit) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{26} +} +func (m *ResponseCommit) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseCommit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseCommit.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResponseCommit) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseCommit.Merge(m, src) +} +func (m *ResponseCommit) XXX_Size() int { + return m.Size() +} +func (m *ResponseCommit) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseCommit.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseCommit proto.InternalMessageInfo + +func (m *ResponseCommit) GetRetainHeight() int64 { + if m != nil { + return m.RetainHeight + } + return 0 +} + +type ResponseListSnapshots struct { + Snapshots []*Snapshot `protobuf:"bytes,1,rep,name=snapshots,proto3" json:"snapshots,omitempty"` +} + +func (m *ResponseListSnapshots) Reset() { *m = ResponseListSnapshots{} } +func (m *ResponseListSnapshots) String() string { return proto.CompactTextString(m) } +func (*ResponseListSnapshots) ProtoMessage() {} +func (*ResponseListSnapshots) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{27} +} +func (m *ResponseListSnapshots) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseListSnapshots) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseListSnapshots.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResponseListSnapshots) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseListSnapshots.Merge(m, src) +} +func (m *ResponseListSnapshots) XXX_Size() int { + return m.Size() +} +func (m *ResponseListSnapshots) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseListSnapshots.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseListSnapshots proto.InternalMessageInfo + +func (m *ResponseListSnapshots) GetSnapshots() []*Snapshot { + if m != nil { + return m.Snapshots + } + return nil +} + +type ResponseOfferSnapshot struct { + Result ResponseOfferSnapshot_Result `protobuf:"varint,1,opt,name=result,proto3,enum=tendermint.abci.ResponseOfferSnapshot_Result" json:"result,omitempty"` +} + +func (m *ResponseOfferSnapshot) Reset() { *m = ResponseOfferSnapshot{} } +func (m *ResponseOfferSnapshot) String() string { return proto.CompactTextString(m) } +func (*ResponseOfferSnapshot) ProtoMessage() {} +func (*ResponseOfferSnapshot) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{28} +} +func (m *ResponseOfferSnapshot) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseOfferSnapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseOfferSnapshot.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResponseOfferSnapshot) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseOfferSnapshot.Merge(m, src) +} +func (m *ResponseOfferSnapshot) XXX_Size() int { + return m.Size() +} +func (m *ResponseOfferSnapshot) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseOfferSnapshot.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseOfferSnapshot proto.InternalMessageInfo + +func (m *ResponseOfferSnapshot) GetResult() ResponseOfferSnapshot_Result { + if m != nil { + return m.Result + } + return ResponseOfferSnapshot_UNKNOWN +} + +type ResponseLoadSnapshotChunk struct { + Chunk []byte `protobuf:"bytes,1,opt,name=chunk,proto3" json:"chunk,omitempty"` +} + +func (m *ResponseLoadSnapshotChunk) Reset() { *m = ResponseLoadSnapshotChunk{} } +func (m *ResponseLoadSnapshotChunk) String() string { return proto.CompactTextString(m) } +func (*ResponseLoadSnapshotChunk) ProtoMessage() {} +func (*ResponseLoadSnapshotChunk) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{29} +} +func (m *ResponseLoadSnapshotChunk) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseLoadSnapshotChunk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseLoadSnapshotChunk.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResponseLoadSnapshotChunk) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseLoadSnapshotChunk.Merge(m, src) +} +func (m *ResponseLoadSnapshotChunk) XXX_Size() int { + return m.Size() +} +func (m *ResponseLoadSnapshotChunk) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseLoadSnapshotChunk.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseLoadSnapshotChunk proto.InternalMessageInfo + +func (m *ResponseLoadSnapshotChunk) GetChunk() []byte { + if m != nil { + return m.Chunk + } + return nil +} + +type ResponseApplySnapshotChunk struct { + Result ResponseApplySnapshotChunk_Result `protobuf:"varint,1,opt,name=result,proto3,enum=tendermint.abci.ResponseApplySnapshotChunk_Result" json:"result,omitempty"` + RefetchChunks []uint32 `protobuf:"varint,2,rep,packed,name=refetch_chunks,json=refetchChunks,proto3" json:"refetch_chunks,omitempty"` + RejectSenders []string `protobuf:"bytes,3,rep,name=reject_senders,json=rejectSenders,proto3" json:"reject_senders,omitempty"` +} + +func (m *ResponseApplySnapshotChunk) Reset() { *m = ResponseApplySnapshotChunk{} } +func (m *ResponseApplySnapshotChunk) String() string { return proto.CompactTextString(m) } +func (*ResponseApplySnapshotChunk) ProtoMessage() {} +func (*ResponseApplySnapshotChunk) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{30} +} +func (m *ResponseApplySnapshotChunk) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseApplySnapshotChunk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseApplySnapshotChunk.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResponseApplySnapshotChunk) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseApplySnapshotChunk.Merge(m, src) +} +func (m *ResponseApplySnapshotChunk) XXX_Size() int { + return m.Size() +} +func (m *ResponseApplySnapshotChunk) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseApplySnapshotChunk.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseApplySnapshotChunk proto.InternalMessageInfo + +func (m *ResponseApplySnapshotChunk) GetResult() ResponseApplySnapshotChunk_Result { + if m != nil { + return m.Result + } + return ResponseApplySnapshotChunk_UNKNOWN +} + +func (m *ResponseApplySnapshotChunk) GetRefetchChunks() []uint32 { + if m != nil { + return m.RefetchChunks + } + return nil +} + +func (m *ResponseApplySnapshotChunk) GetRejectSenders() []string { + if m != nil { + return m.RejectSenders + } + return nil +} + +type ResponsePrepareProposal struct { + TxRecords []*TxRecord `protobuf:"bytes,1,rep,name=tx_records,json=txRecords,proto3" json:"tx_records,omitempty"` + AppHash []byte `protobuf:"bytes,2,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"` + TxResults []*ExecTxResult `protobuf:"bytes,3,rep,name=tx_results,json=txResults,proto3" json:"tx_results,omitempty"` + ValidatorUpdates []*ValidatorUpdate `protobuf:"bytes,4,rep,name=validator_updates,json=validatorUpdates,proto3" json:"validator_updates,omitempty"` + ConsensusParamUpdates *types1.ConsensusParams `protobuf:"bytes,5,opt,name=consensus_param_updates,json=consensusParamUpdates,proto3" json:"consensus_param_updates,omitempty"` +} + +func (m *ResponsePrepareProposal) Reset() { *m = ResponsePrepareProposal{} } +func (m *ResponsePrepareProposal) String() string { return proto.CompactTextString(m) } +func (*ResponsePrepareProposal) ProtoMessage() {} +func (*ResponsePrepareProposal) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{31} +} +func (m *ResponsePrepareProposal) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponsePrepareProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponsePrepareProposal.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResponsePrepareProposal) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponsePrepareProposal.Merge(m, src) +} +func (m *ResponsePrepareProposal) XXX_Size() int { + return m.Size() +} +func (m *ResponsePrepareProposal) XXX_DiscardUnknown() { + xxx_messageInfo_ResponsePrepareProposal.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponsePrepareProposal proto.InternalMessageInfo + +func (m *ResponsePrepareProposal) GetTxRecords() []*TxRecord { + if m != nil { + return m.TxRecords + } + return nil +} + +func (m *ResponsePrepareProposal) GetAppHash() []byte { + if m != nil { + return m.AppHash + } + return nil +} + +func (m *ResponsePrepareProposal) GetTxResults() []*ExecTxResult { + if m != nil { + return m.TxResults + } + return nil +} + +func (m *ResponsePrepareProposal) GetValidatorUpdates() []*ValidatorUpdate { + if m != nil { + return m.ValidatorUpdates + } + return nil +} + +func (m *ResponsePrepareProposal) GetConsensusParamUpdates() *types1.ConsensusParams { + if m != nil { + return m.ConsensusParamUpdates + } + return nil +} + +type ResponseProcessProposal struct { + Status ResponseProcessProposal_ProposalStatus `protobuf:"varint,1,opt,name=status,proto3,enum=tendermint.abci.ResponseProcessProposal_ProposalStatus" json:"status,omitempty"` + AppHash []byte `protobuf:"bytes,2,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"` + TxResults []*ExecTxResult `protobuf:"bytes,3,rep,name=tx_results,json=txResults,proto3" json:"tx_results,omitempty"` + ValidatorUpdates []*ValidatorUpdate `protobuf:"bytes,4,rep,name=validator_updates,json=validatorUpdates,proto3" json:"validator_updates,omitempty"` + ConsensusParamUpdates *types1.ConsensusParams `protobuf:"bytes,5,opt,name=consensus_param_updates,json=consensusParamUpdates,proto3" json:"consensus_param_updates,omitempty"` +} + +func (m *ResponseProcessProposal) Reset() { *m = ResponseProcessProposal{} } +func (m *ResponseProcessProposal) String() string { return proto.CompactTextString(m) } +func (*ResponseProcessProposal) ProtoMessage() {} +func (*ResponseProcessProposal) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{32} +} +func (m *ResponseProcessProposal) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseProcessProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseProcessProposal.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResponseProcessProposal) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseProcessProposal.Merge(m, src) +} +func (m *ResponseProcessProposal) XXX_Size() int { + return m.Size() +} +func (m *ResponseProcessProposal) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseProcessProposal.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseProcessProposal proto.InternalMessageInfo + +func (m *ResponseProcessProposal) GetStatus() ResponseProcessProposal_ProposalStatus { + if m != nil { + return m.Status + } + return ResponseProcessProposal_UNKNOWN +} + +func (m *ResponseProcessProposal) GetAppHash() []byte { + if m != nil { + return m.AppHash + } + return nil +} + +func (m *ResponseProcessProposal) GetTxResults() []*ExecTxResult { + if m != nil { + return m.TxResults + } + return nil +} + +func (m *ResponseProcessProposal) GetValidatorUpdates() []*ValidatorUpdate { + if m != nil { + return m.ValidatorUpdates + } + return nil +} + +func (m *ResponseProcessProposal) GetConsensusParamUpdates() *types1.ConsensusParams { + if m != nil { + return m.ConsensusParamUpdates + } + return nil +} + +type ResponseExtendVote struct { + VoteExtension []byte `protobuf:"bytes,1,opt,name=vote_extension,json=voteExtension,proto3" json:"vote_extension,omitempty"` +} + +func (m *ResponseExtendVote) Reset() { *m = ResponseExtendVote{} } +func (m *ResponseExtendVote) String() string { return proto.CompactTextString(m) } +func (*ResponseExtendVote) ProtoMessage() {} +func (*ResponseExtendVote) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{33} +} +func (m *ResponseExtendVote) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseExtendVote) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseExtendVote.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResponseExtendVote) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseExtendVote.Merge(m, src) +} +func (m *ResponseExtendVote) XXX_Size() int { + return m.Size() +} +func (m *ResponseExtendVote) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseExtendVote.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseExtendVote proto.InternalMessageInfo + +func (m *ResponseExtendVote) GetVoteExtension() []byte { + if m != nil { + return m.VoteExtension + } + return nil +} + +type ResponseVerifyVoteExtension struct { + Status ResponseVerifyVoteExtension_VerifyStatus `protobuf:"varint,1,opt,name=status,proto3,enum=tendermint.abci.ResponseVerifyVoteExtension_VerifyStatus" json:"status,omitempty"` +} + +func (m *ResponseVerifyVoteExtension) Reset() { *m = ResponseVerifyVoteExtension{} } +func (m *ResponseVerifyVoteExtension) String() string { return proto.CompactTextString(m) } +func (*ResponseVerifyVoteExtension) ProtoMessage() {} +func (*ResponseVerifyVoteExtension) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{34} +} +func (m *ResponseVerifyVoteExtension) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseVerifyVoteExtension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseVerifyVoteExtension.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResponseVerifyVoteExtension) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseVerifyVoteExtension.Merge(m, src) +} +func (m *ResponseVerifyVoteExtension) XXX_Size() int { + return m.Size() +} +func (m *ResponseVerifyVoteExtension) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseVerifyVoteExtension.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseVerifyVoteExtension proto.InternalMessageInfo + +func (m *ResponseVerifyVoteExtension) GetStatus() ResponseVerifyVoteExtension_VerifyStatus { + if m != nil { + return m.Status + } + return ResponseVerifyVoteExtension_UNKNOWN +} + +type ResponseFinalizeBlock struct { + Events []Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` + TxResults []*ExecTxResult `protobuf:"bytes,2,rep,name=tx_results,json=txResults,proto3" json:"tx_results,omitempty"` + ValidatorUpdates []ValidatorUpdate `protobuf:"bytes,3,rep,name=validator_updates,json=validatorUpdates,proto3" json:"validator_updates"` + ConsensusParamUpdates *types1.ConsensusParams `protobuf:"bytes,4,opt,name=consensus_param_updates,json=consensusParamUpdates,proto3" json:"consensus_param_updates,omitempty"` + AppHash []byte `protobuf:"bytes,5,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"` +} + +func (m *ResponseFinalizeBlock) Reset() { *m = ResponseFinalizeBlock{} } +func (m *ResponseFinalizeBlock) String() string { return proto.CompactTextString(m) } +func (*ResponseFinalizeBlock) ProtoMessage() {} +func (*ResponseFinalizeBlock) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{35} +} +func (m *ResponseFinalizeBlock) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseFinalizeBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseFinalizeBlock.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ResponseFinalizeBlock) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseFinalizeBlock.Merge(m, src) +} +func (m *ResponseFinalizeBlock) XXX_Size() int { + return m.Size() +} +func (m *ResponseFinalizeBlock) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseFinalizeBlock.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseFinalizeBlock proto.InternalMessageInfo + +func (m *ResponseFinalizeBlock) GetEvents() []Event { + if m != nil { + return m.Events + } + return nil +} + +func (m *ResponseFinalizeBlock) GetTxResults() []*ExecTxResult { + if m != nil { + return m.TxResults + } + return nil +} + +func (m *ResponseFinalizeBlock) GetValidatorUpdates() []ValidatorUpdate { + if m != nil { + return m.ValidatorUpdates + } + return nil +} + +func (m *ResponseFinalizeBlock) GetConsensusParamUpdates() *types1.ConsensusParams { + if m != nil { + return m.ConsensusParamUpdates + } + return nil +} + +func (m *ResponseFinalizeBlock) GetAppHash() []byte { + if m != nil { + return m.AppHash + } + return nil +} + +type CommitInfo struct { + Round int32 `protobuf:"varint,1,opt,name=round,proto3" json:"round,omitempty"` + Votes []VoteInfo `protobuf:"bytes,2,rep,name=votes,proto3" json:"votes"` +} + +func (m *CommitInfo) Reset() { *m = CommitInfo{} } +func (m *CommitInfo) String() string { return proto.CompactTextString(m) } +func (*CommitInfo) ProtoMessage() {} +func (*CommitInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{36} +} +func (m *CommitInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CommitInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_CommitInfo.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *CommitInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_CommitInfo.Merge(m, src) +} +func (m *CommitInfo) XXX_Size() int { + return m.Size() +} +func (m *CommitInfo) XXX_DiscardUnknown() { + xxx_messageInfo_CommitInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_CommitInfo proto.InternalMessageInfo + +func (m *CommitInfo) GetRound() int32 { + if m != nil { + return m.Round + } + return 0 +} + +func (m *CommitInfo) GetVotes() []VoteInfo { + if m != nil { + return m.Votes + } + return nil +} + +// ExtendedCommitInfo is similar to CommitInfo except that it is only used in +// the PrepareProposal request such that Tendermint can provide vote extensions +// to the application. +type ExtendedCommitInfo struct { + // The round at which the block proposer decided in the previous height. + Round int32 `protobuf:"varint,1,opt,name=round,proto3" json:"round,omitempty"` + // List of validators' addresses in the last validator set with their voting + // information, including vote extensions. + Votes []ExtendedVoteInfo `protobuf:"bytes,2,rep,name=votes,proto3" json:"votes"` +} + +func (m *ExtendedCommitInfo) Reset() { *m = ExtendedCommitInfo{} } +func (m *ExtendedCommitInfo) String() string { return proto.CompactTextString(m) } +func (*ExtendedCommitInfo) ProtoMessage() {} +func (*ExtendedCommitInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{37} +} +func (m *ExtendedCommitInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ExtendedCommitInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ExtendedCommitInfo.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ExtendedCommitInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExtendedCommitInfo.Merge(m, src) +} +func (m *ExtendedCommitInfo) XXX_Size() int { + return m.Size() +} +func (m *ExtendedCommitInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ExtendedCommitInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ExtendedCommitInfo proto.InternalMessageInfo + +func (m *ExtendedCommitInfo) GetRound() int32 { + if m != nil { + return m.Round + } + return 0 +} + +func (m *ExtendedCommitInfo) GetVotes() []ExtendedVoteInfo { + if m != nil { + return m.Votes + } + return nil +} + +// Event allows application developers to attach additional information to +// ResponseFinalizeBlock, ResponseDeliverTx, ExecTxResult +// Later, transactions may be queried using these events. +type Event struct { + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + Attributes []EventAttribute `protobuf:"bytes,2,rep,name=attributes,proto3" json:"attributes,omitempty"` +} + +func (m *Event) Reset() { *m = Event{} } +func (m *Event) String() string { return proto.CompactTextString(m) } +func (*Event) ProtoMessage() {} +func (*Event) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{38} +} +func (m *Event) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Event.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Event) XXX_Merge(src proto.Message) { + xxx_messageInfo_Event.Merge(m, src) +} +func (m *Event) XXX_Size() int { + return m.Size() +} +func (m *Event) XXX_DiscardUnknown() { + xxx_messageInfo_Event.DiscardUnknown(m) +} + +var xxx_messageInfo_Event proto.InternalMessageInfo + +func (m *Event) GetType() string { + if m != nil { + return m.Type + } + return "" +} + +func (m *Event) GetAttributes() []EventAttribute { + if m != nil { + return m.Attributes + } + return nil +} + +// EventAttribute is a single key-value pair, associated with an event. +type EventAttribute struct { + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + Index bool `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"` +} + +func (m *EventAttribute) Reset() { *m = EventAttribute{} } +func (m *EventAttribute) String() string { return proto.CompactTextString(m) } +func (*EventAttribute) ProtoMessage() {} +func (*EventAttribute) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{39} +} +func (m *EventAttribute) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventAttribute) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventAttribute.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EventAttribute) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventAttribute.Merge(m, src) +} +func (m *EventAttribute) XXX_Size() int { + return m.Size() +} +func (m *EventAttribute) XXX_DiscardUnknown() { + xxx_messageInfo_EventAttribute.DiscardUnknown(m) +} + +var xxx_messageInfo_EventAttribute proto.InternalMessageInfo + +func (m *EventAttribute) GetKey() string { + if m != nil { + return m.Key + } + return "" +} + +func (m *EventAttribute) GetValue() string { + if m != nil { + return m.Value + } + return "" +} + +func (m *EventAttribute) GetIndex() bool { + if m != nil { + return m.Index + } + return false +} + +// ExecTxResult contains results of executing one individual transaction. +// +// * Its structure is equivalent to #ResponseDeliverTx which will be deprecated/deleted +type ExecTxResult struct { + Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"` + Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"` + GasWanted int64 `protobuf:"varint,5,opt,name=gas_wanted,json=gasWanted,proto3" json:"gas_wanted,omitempty"` + GasUsed int64 `protobuf:"varint,6,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"` + Events []Event `protobuf:"bytes,7,rep,name=events,proto3" json:"events,omitempty"` + Codespace string `protobuf:"bytes,8,opt,name=codespace,proto3" json:"codespace,omitempty"` +} + +func (m *ExecTxResult) Reset() { *m = ExecTxResult{} } +func (m *ExecTxResult) String() string { return proto.CompactTextString(m) } +func (*ExecTxResult) ProtoMessage() {} +func (*ExecTxResult) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{40} +} +func (m *ExecTxResult) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ExecTxResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ExecTxResult.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ExecTxResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExecTxResult.Merge(m, src) +} +func (m *ExecTxResult) XXX_Size() int { + return m.Size() +} +func (m *ExecTxResult) XXX_DiscardUnknown() { + xxx_messageInfo_ExecTxResult.DiscardUnknown(m) +} + +var xxx_messageInfo_ExecTxResult proto.InternalMessageInfo + +func (m *ExecTxResult) GetCode() uint32 { + if m != nil { + return m.Code + } + return 0 +} + +func (m *ExecTxResult) GetData() []byte { + if m != nil { + return m.Data + } + return nil +} + +func (m *ExecTxResult) GetLog() string { + if m != nil { + return m.Log + } + return "" +} + +func (m *ExecTxResult) GetInfo() string { + if m != nil { + return m.Info + } + return "" +} + +func (m *ExecTxResult) GetGasWanted() int64 { + if m != nil { + return m.GasWanted + } + return 0 +} + +func (m *ExecTxResult) GetGasUsed() int64 { + if m != nil { + return m.GasUsed + } + return 0 +} + +func (m *ExecTxResult) GetEvents() []Event { + if m != nil { + return m.Events + } + return nil +} + +func (m *ExecTxResult) GetCodespace() string { + if m != nil { + return m.Codespace + } + return "" +} + +// TxResult contains results of executing the transaction. +// +// One usage is indexing transaction results. +type TxResult struct { + Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` + Index uint32 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"` + Tx []byte `protobuf:"bytes,3,opt,name=tx,proto3" json:"tx,omitempty"` + Result ExecTxResult `protobuf:"bytes,4,opt,name=result,proto3" json:"result"` +} + +func (m *TxResult) Reset() { *m = TxResult{} } +func (m *TxResult) String() string { return proto.CompactTextString(m) } +func (*TxResult) ProtoMessage() {} +func (*TxResult) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{41} +} +func (m *TxResult) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TxResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TxResult.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TxResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_TxResult.Merge(m, src) +} +func (m *TxResult) XXX_Size() int { + return m.Size() +} +func (m *TxResult) XXX_DiscardUnknown() { + xxx_messageInfo_TxResult.DiscardUnknown(m) +} + +var xxx_messageInfo_TxResult proto.InternalMessageInfo + +func (m *TxResult) GetHeight() int64 { + if m != nil { + return m.Height + } + return 0 +} + +func (m *TxResult) GetIndex() uint32 { + if m != nil { + return m.Index + } + return 0 +} + +func (m *TxResult) GetTx() []byte { + if m != nil { + return m.Tx + } + return nil +} + +func (m *TxResult) GetResult() ExecTxResult { + if m != nil { + return m.Result + } + return ExecTxResult{} +} + +type TxRecord struct { + Action TxRecord_TxAction `protobuf:"varint,1,opt,name=action,proto3,enum=tendermint.abci.TxRecord_TxAction" json:"action,omitempty"` + Tx []byte `protobuf:"bytes,2,opt,name=tx,proto3" json:"tx,omitempty"` +} + +func (m *TxRecord) Reset() { *m = TxRecord{} } +func (m *TxRecord) String() string { return proto.CompactTextString(m) } +func (*TxRecord) ProtoMessage() {} +func (*TxRecord) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{42} +} +func (m *TxRecord) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TxRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TxRecord.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TxRecord) XXX_Merge(src proto.Message) { + xxx_messageInfo_TxRecord.Merge(m, src) +} +func (m *TxRecord) XXX_Size() int { + return m.Size() +} +func (m *TxRecord) XXX_DiscardUnknown() { + xxx_messageInfo_TxRecord.DiscardUnknown(m) +} + +var xxx_messageInfo_TxRecord proto.InternalMessageInfo + +func (m *TxRecord) GetAction() TxRecord_TxAction { + if m != nil { + return m.Action + } + return TxRecord_UNKNOWN +} + +func (m *TxRecord) GetTx() []byte { + if m != nil { + return m.Tx + } + return nil +} + +// Validator +type Validator struct { + Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + // PubKey pub_key = 2 [(gogoproto.nullable)=false]; + Power int64 `protobuf:"varint,3,opt,name=power,proto3" json:"power,omitempty"` +} + +func (m *Validator) Reset() { *m = Validator{} } +func (m *Validator) String() string { return proto.CompactTextString(m) } +func (*Validator) ProtoMessage() {} +func (*Validator) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{43} +} +func (m *Validator) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Validator) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Validator.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Validator) XXX_Merge(src proto.Message) { + xxx_messageInfo_Validator.Merge(m, src) +} +func (m *Validator) XXX_Size() int { + return m.Size() +} +func (m *Validator) XXX_DiscardUnknown() { + xxx_messageInfo_Validator.DiscardUnknown(m) +} + +var xxx_messageInfo_Validator proto.InternalMessageInfo + +func (m *Validator) GetAddress() []byte { + if m != nil { + return m.Address + } + return nil +} + +func (m *Validator) GetPower() int64 { + if m != nil { + return m.Power + } + return 0 +} + +// ValidatorUpdate +type ValidatorUpdate struct { + PubKey crypto.PublicKey `protobuf:"bytes,1,opt,name=pub_key,json=pubKey,proto3" json:"pub_key"` + Power int64 `protobuf:"varint,2,opt,name=power,proto3" json:"power,omitempty"` +} + +func (m *ValidatorUpdate) Reset() { *m = ValidatorUpdate{} } +func (m *ValidatorUpdate) String() string { return proto.CompactTextString(m) } +func (*ValidatorUpdate) ProtoMessage() {} +func (*ValidatorUpdate) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{44} +} +func (m *ValidatorUpdate) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ValidatorUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ValidatorUpdate.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ValidatorUpdate) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValidatorUpdate.Merge(m, src) +} +func (m *ValidatorUpdate) XXX_Size() int { + return m.Size() +} +func (m *ValidatorUpdate) XXX_DiscardUnknown() { + xxx_messageInfo_ValidatorUpdate.DiscardUnknown(m) +} + +var xxx_messageInfo_ValidatorUpdate proto.InternalMessageInfo + +func (m *ValidatorUpdate) GetPubKey() crypto.PublicKey { + if m != nil { + return m.PubKey + } + return crypto.PublicKey{} +} + +func (m *ValidatorUpdate) GetPower() int64 { + if m != nil { + return m.Power + } + return 0 +} + +// VoteInfo +type VoteInfo struct { + Validator Validator `protobuf:"bytes,1,opt,name=validator,proto3" json:"validator"` + SignedLastBlock bool `protobuf:"varint,2,opt,name=signed_last_block,json=signedLastBlock,proto3" json:"signed_last_block,omitempty"` +} + +func (m *VoteInfo) Reset() { *m = VoteInfo{} } +func (m *VoteInfo) String() string { return proto.CompactTextString(m) } +func (*VoteInfo) ProtoMessage() {} +func (*VoteInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{45} +} +func (m *VoteInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *VoteInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_VoteInfo.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *VoteInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_VoteInfo.Merge(m, src) +} +func (m *VoteInfo) XXX_Size() int { + return m.Size() +} +func (m *VoteInfo) XXX_DiscardUnknown() { + xxx_messageInfo_VoteInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_VoteInfo proto.InternalMessageInfo + +func (m *VoteInfo) GetValidator() Validator { + if m != nil { + return m.Validator + } + return Validator{} +} + +func (m *VoteInfo) GetSignedLastBlock() bool { + if m != nil { + return m.SignedLastBlock + } + return false +} + +// ExtendedVoteInfo +type ExtendedVoteInfo struct { + // The validator that sent the vote. + Validator Validator `protobuf:"bytes,1,opt,name=validator,proto3" json:"validator"` + // Indicates whether the validator signed the last block, allowing for rewards based on validator availability. + SignedLastBlock bool `protobuf:"varint,2,opt,name=signed_last_block,json=signedLastBlock,proto3" json:"signed_last_block,omitempty"` + // Non-deterministic extension provided by the sending validator's application. + VoteExtension []byte `protobuf:"bytes,3,opt,name=vote_extension,json=voteExtension,proto3" json:"vote_extension,omitempty"` +} + +func (m *ExtendedVoteInfo) Reset() { *m = ExtendedVoteInfo{} } +func (m *ExtendedVoteInfo) String() string { return proto.CompactTextString(m) } +func (*ExtendedVoteInfo) ProtoMessage() {} +func (*ExtendedVoteInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{46} +} +func (m *ExtendedVoteInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ExtendedVoteInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ExtendedVoteInfo.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ExtendedVoteInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExtendedVoteInfo.Merge(m, src) +} +func (m *ExtendedVoteInfo) XXX_Size() int { + return m.Size() +} +func (m *ExtendedVoteInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ExtendedVoteInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ExtendedVoteInfo proto.InternalMessageInfo + +func (m *ExtendedVoteInfo) GetValidator() Validator { + if m != nil { + return m.Validator + } + return Validator{} +} + +func (m *ExtendedVoteInfo) GetSignedLastBlock() bool { + if m != nil { + return m.SignedLastBlock + } + return false +} + +func (m *ExtendedVoteInfo) GetVoteExtension() []byte { + if m != nil { + return m.VoteExtension + } + return nil +} + +type Misbehavior struct { + Type MisbehaviorType `protobuf:"varint,1,opt,name=type,proto3,enum=tendermint.abci.MisbehaviorType" json:"type,omitempty"` + // The offending validator + Validator Validator `protobuf:"bytes,2,opt,name=validator,proto3" json:"validator"` + // The height when the offense occurred + Height int64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"` + // The corresponding time where the offense occurred + Time time.Time `protobuf:"bytes,4,opt,name=time,proto3,stdtime" json:"time"` + // Total voting power of the validator set in case the ABCI application does + // not store historical validators. + // https://github.com/tendermint/tendermint/issues/4581 + TotalVotingPower int64 `protobuf:"varint,5,opt,name=total_voting_power,json=totalVotingPower,proto3" json:"total_voting_power,omitempty"` +} + +func (m *Misbehavior) Reset() { *m = Misbehavior{} } +func (m *Misbehavior) String() string { return proto.CompactTextString(m) } +func (*Misbehavior) ProtoMessage() {} +func (*Misbehavior) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{47} +} +func (m *Misbehavior) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Misbehavior) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Misbehavior.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Misbehavior) XXX_Merge(src proto.Message) { + xxx_messageInfo_Misbehavior.Merge(m, src) +} +func (m *Misbehavior) XXX_Size() int { + return m.Size() +} +func (m *Misbehavior) XXX_DiscardUnknown() { + xxx_messageInfo_Misbehavior.DiscardUnknown(m) +} + +var xxx_messageInfo_Misbehavior proto.InternalMessageInfo + +func (m *Misbehavior) GetType() MisbehaviorType { + if m != nil { + return m.Type + } + return MisbehaviorType_UNKNOWN +} + +func (m *Misbehavior) GetValidator() Validator { + if m != nil { + return m.Validator + } + return Validator{} +} + +func (m *Misbehavior) GetHeight() int64 { + if m != nil { + return m.Height + } + return 0 +} + +func (m *Misbehavior) GetTime() time.Time { + if m != nil { + return m.Time + } + return time.Time{} +} + +func (m *Misbehavior) GetTotalVotingPower() int64 { + if m != nil { + return m.TotalVotingPower + } + return 0 +} + +type Snapshot struct { + Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` + Format uint32 `protobuf:"varint,2,opt,name=format,proto3" json:"format,omitempty"` + Chunks uint32 `protobuf:"varint,3,opt,name=chunks,proto3" json:"chunks,omitempty"` + Hash []byte `protobuf:"bytes,4,opt,name=hash,proto3" json:"hash,omitempty"` + Metadata []byte `protobuf:"bytes,5,opt,name=metadata,proto3" json:"metadata,omitempty"` +} + +func (m *Snapshot) Reset() { *m = Snapshot{} } +func (m *Snapshot) String() string { return proto.CompactTextString(m) } +func (*Snapshot) ProtoMessage() {} +func (*Snapshot) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{48} +} +func (m *Snapshot) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Snapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Snapshot.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Snapshot) XXX_Merge(src proto.Message) { + xxx_messageInfo_Snapshot.Merge(m, src) +} +func (m *Snapshot) XXX_Size() int { + return m.Size() +} +func (m *Snapshot) XXX_DiscardUnknown() { + xxx_messageInfo_Snapshot.DiscardUnknown(m) +} + +var xxx_messageInfo_Snapshot proto.InternalMessageInfo + +func (m *Snapshot) GetHeight() uint64 { + if m != nil { + return m.Height + } + return 0 +} + +func (m *Snapshot) GetFormat() uint32 { + if m != nil { + return m.Format + } + return 0 +} + +func (m *Snapshot) GetChunks() uint32 { + if m != nil { + return m.Chunks + } + return 0 +} + +func (m *Snapshot) GetHash() []byte { + if m != nil { + return m.Hash + } + return nil +} + +func (m *Snapshot) GetMetadata() []byte { + if m != nil { + return m.Metadata + } + return nil +} + +func init() { + proto.RegisterEnum("tendermint.abci.CheckTxType", CheckTxType_name, CheckTxType_value) + proto.RegisterEnum("tendermint.abci.MisbehaviorType", MisbehaviorType_name, MisbehaviorType_value) + proto.RegisterEnum("tendermint.abci.ResponseOfferSnapshot_Result", ResponseOfferSnapshot_Result_name, ResponseOfferSnapshot_Result_value) + proto.RegisterEnum("tendermint.abci.ResponseApplySnapshotChunk_Result", ResponseApplySnapshotChunk_Result_name, ResponseApplySnapshotChunk_Result_value) + proto.RegisterEnum("tendermint.abci.ResponseProcessProposal_ProposalStatus", ResponseProcessProposal_ProposalStatus_name, ResponseProcessProposal_ProposalStatus_value) + proto.RegisterEnum("tendermint.abci.ResponseVerifyVoteExtension_VerifyStatus", ResponseVerifyVoteExtension_VerifyStatus_name, ResponseVerifyVoteExtension_VerifyStatus_value) + proto.RegisterEnum("tendermint.abci.TxRecord_TxAction", TxRecord_TxAction_name, TxRecord_TxAction_value) + proto.RegisterType((*Request)(nil), "tendermint.abci.Request") + proto.RegisterType((*RequestEcho)(nil), "tendermint.abci.RequestEcho") + proto.RegisterType((*RequestFlush)(nil), "tendermint.abci.RequestFlush") + proto.RegisterType((*RequestInfo)(nil), "tendermint.abci.RequestInfo") + proto.RegisterType((*RequestInitChain)(nil), "tendermint.abci.RequestInitChain") + proto.RegisterType((*RequestQuery)(nil), "tendermint.abci.RequestQuery") + proto.RegisterType((*RequestCheckTx)(nil), "tendermint.abci.RequestCheckTx") + proto.RegisterType((*RequestCommit)(nil), "tendermint.abci.RequestCommit") + proto.RegisterType((*RequestListSnapshots)(nil), "tendermint.abci.RequestListSnapshots") + proto.RegisterType((*RequestOfferSnapshot)(nil), "tendermint.abci.RequestOfferSnapshot") + proto.RegisterType((*RequestLoadSnapshotChunk)(nil), "tendermint.abci.RequestLoadSnapshotChunk") + proto.RegisterType((*RequestApplySnapshotChunk)(nil), "tendermint.abci.RequestApplySnapshotChunk") + proto.RegisterType((*RequestPrepareProposal)(nil), "tendermint.abci.RequestPrepareProposal") + proto.RegisterType((*RequestProcessProposal)(nil), "tendermint.abci.RequestProcessProposal") + proto.RegisterType((*RequestExtendVote)(nil), "tendermint.abci.RequestExtendVote") + proto.RegisterType((*RequestVerifyVoteExtension)(nil), "tendermint.abci.RequestVerifyVoteExtension") + proto.RegisterType((*RequestFinalizeBlock)(nil), "tendermint.abci.RequestFinalizeBlock") + proto.RegisterType((*Response)(nil), "tendermint.abci.Response") + proto.RegisterType((*ResponseException)(nil), "tendermint.abci.ResponseException") + proto.RegisterType((*ResponseEcho)(nil), "tendermint.abci.ResponseEcho") + proto.RegisterType((*ResponseFlush)(nil), "tendermint.abci.ResponseFlush") + proto.RegisterType((*ResponseInfo)(nil), "tendermint.abci.ResponseInfo") + proto.RegisterType((*ResponseInitChain)(nil), "tendermint.abci.ResponseInitChain") + proto.RegisterType((*ResponseQuery)(nil), "tendermint.abci.ResponseQuery") + proto.RegisterType((*ResponseCheckTx)(nil), "tendermint.abci.ResponseCheckTx") + proto.RegisterType((*ResponseDeliverTx)(nil), "tendermint.abci.ResponseDeliverTx") + proto.RegisterType((*ResponseCommit)(nil), "tendermint.abci.ResponseCommit") + proto.RegisterType((*ResponseListSnapshots)(nil), "tendermint.abci.ResponseListSnapshots") + proto.RegisterType((*ResponseOfferSnapshot)(nil), "tendermint.abci.ResponseOfferSnapshot") + proto.RegisterType((*ResponseLoadSnapshotChunk)(nil), "tendermint.abci.ResponseLoadSnapshotChunk") + proto.RegisterType((*ResponseApplySnapshotChunk)(nil), "tendermint.abci.ResponseApplySnapshotChunk") + proto.RegisterType((*ResponsePrepareProposal)(nil), "tendermint.abci.ResponsePrepareProposal") + proto.RegisterType((*ResponseProcessProposal)(nil), "tendermint.abci.ResponseProcessProposal") + proto.RegisterType((*ResponseExtendVote)(nil), "tendermint.abci.ResponseExtendVote") + proto.RegisterType((*ResponseVerifyVoteExtension)(nil), "tendermint.abci.ResponseVerifyVoteExtension") + proto.RegisterType((*ResponseFinalizeBlock)(nil), "tendermint.abci.ResponseFinalizeBlock") + proto.RegisterType((*CommitInfo)(nil), "tendermint.abci.CommitInfo") + proto.RegisterType((*ExtendedCommitInfo)(nil), "tendermint.abci.ExtendedCommitInfo") + proto.RegisterType((*Event)(nil), "tendermint.abci.Event") + proto.RegisterType((*EventAttribute)(nil), "tendermint.abci.EventAttribute") + proto.RegisterType((*ExecTxResult)(nil), "tendermint.abci.ExecTxResult") + proto.RegisterType((*TxResult)(nil), "tendermint.abci.TxResult") + proto.RegisterType((*TxRecord)(nil), "tendermint.abci.TxRecord") + proto.RegisterType((*Validator)(nil), "tendermint.abci.Validator") + proto.RegisterType((*ValidatorUpdate)(nil), "tendermint.abci.ValidatorUpdate") + proto.RegisterType((*VoteInfo)(nil), "tendermint.abci.VoteInfo") + proto.RegisterType((*ExtendedVoteInfo)(nil), "tendermint.abci.ExtendedVoteInfo") + proto.RegisterType((*Misbehavior)(nil), "tendermint.abci.Misbehavior") + proto.RegisterType((*Snapshot)(nil), "tendermint.abci.Snapshot") +} + +func init() { proto.RegisterFile("tendermint/abci/types.proto", fileDescriptor_252557cfdd89a31a) } + +var fileDescriptor_252557cfdd89a31a = []byte{ + // 3253 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x73, 0x23, 0xd5, + 0x11, 0xd7, 0xe8, 0x5b, 0xad, 0xaf, 0xf1, 0xb3, 0x59, 0xb4, 0x62, 0xd7, 0x36, 0x43, 0x01, 0xcb, + 0x02, 0x36, 0xf1, 0x66, 0x61, 0xc9, 0x42, 0x28, 0x5b, 0xd6, 0x46, 0xf6, 0x7a, 0x6d, 0x33, 0x96, + 0x4d, 0x91, 0x0f, 0x86, 0xb1, 0xf4, 0x6c, 0x0d, 0x2b, 0x69, 0x86, 0x99, 0x91, 0x91, 0x39, 0x26, + 0xc5, 0x85, 0x43, 0x8a, 0x4b, 0x2a, 0x49, 0x55, 0xb8, 0x25, 0x55, 0xc9, 0x7f, 0x90, 0x5c, 0x72, + 0xca, 0x81, 0x43, 0x0e, 0x9c, 0x52, 0x39, 0x91, 0x14, 0xdc, 0xf8, 0x07, 0x72, 0x4b, 0xa5, 0xde, + 0xc7, 0x7c, 0x49, 0x33, 0xfa, 0x00, 0x8a, 0xaa, 0x54, 0x71, 0x9b, 0xd7, 0xd3, 0xdd, 0xef, 0xab, + 0x5f, 0x77, 0xff, 0xfa, 0x3d, 0x78, 0xcc, 0xc6, 0xfd, 0x36, 0x36, 0x7b, 0x5a, 0xdf, 0x5e, 0x57, + 0x4f, 0x5b, 0xda, 0xba, 0x7d, 0x69, 0x60, 0x6b, 0xcd, 0x30, 0x75, 0x5b, 0x47, 0x65, 0xef, 0xe7, + 0x1a, 0xf9, 0x59, 0xbd, 0xee, 0xe3, 0x6e, 0x99, 0x97, 0x86, 0xad, 0xaf, 0x1b, 0xa6, 0xae, 0x9f, + 0x31, 0xfe, 0xea, 0xb5, 0xf1, 0xdf, 0x0f, 0xf1, 0x25, 0xd7, 0x16, 0x10, 0xa6, 0xbd, 0xac, 0x1b, + 0xaa, 0xa9, 0xf6, 0x9c, 0xdf, 0x2b, 0xe7, 0xba, 0x7e, 0xde, 0xc5, 0xeb, 0xb4, 0x75, 0x3a, 0x38, + 0x5b, 0xb7, 0xb5, 0x1e, 0xb6, 0x6c, 0xb5, 0x67, 0x70, 0x86, 0xa5, 0x73, 0xfd, 0x5c, 0xa7, 0x9f, + 0xeb, 0xe4, 0x8b, 0x51, 0xa5, 0xbf, 0xe4, 0x20, 0x23, 0xe3, 0x77, 0x07, 0xd8, 0xb2, 0xd1, 0x06, + 0x24, 0x71, 0xab, 0xa3, 0x57, 0x84, 0x55, 0xe1, 0x46, 0x7e, 0xe3, 0xda, 0xda, 0xc8, 0xf0, 0xd7, + 0x38, 0x5f, 0xbd, 0xd5, 0xd1, 0x1b, 0x31, 0x99, 0xf2, 0xa2, 0xdb, 0x90, 0x3a, 0xeb, 0x0e, 0xac, + 0x4e, 0x25, 0x4e, 0x85, 0xae, 0x47, 0x09, 0xdd, 0x23, 0x4c, 0x8d, 0x98, 0xcc, 0xb8, 0x49, 0x57, + 0x5a, 0xff, 0x4c, 0xaf, 0x24, 0x26, 0x77, 0xb5, 0xd3, 0x3f, 0xa3, 0x5d, 0x11, 0x5e, 0xb4, 0x05, + 0xa0, 0xf5, 0x35, 0x5b, 0x69, 0x75, 0x54, 0xad, 0x5f, 0x49, 0x52, 0xc9, 0xc7, 0xa3, 0x25, 0x35, + 0xbb, 0x46, 0x18, 0x1b, 0x31, 0x39, 0xa7, 0x39, 0x0d, 0x32, 0xdc, 0x77, 0x07, 0xd8, 0xbc, 0xac, + 0xa4, 0x26, 0x0f, 0xf7, 0x75, 0xc2, 0x44, 0x86, 0x4b, 0xb9, 0xd1, 0x2b, 0x90, 0x6d, 0x75, 0x70, + 0xeb, 0xa1, 0x62, 0x0f, 0x2b, 0x19, 0x2a, 0xb9, 0x12, 0x25, 0x59, 0x23, 0x7c, 0xcd, 0x61, 0x23, + 0x26, 0x67, 0x5a, 0xec, 0x13, 0xdd, 0x81, 0x74, 0x4b, 0xef, 0xf5, 0x34, 0xbb, 0x02, 0x54, 0x76, + 0x39, 0x52, 0x96, 0x72, 0x35, 0x62, 0x32, 0xe7, 0x47, 0xfb, 0x50, 0xea, 0x6a, 0x96, 0xad, 0x58, + 0x7d, 0xd5, 0xb0, 0x3a, 0xba, 0x6d, 0x55, 0xf2, 0x54, 0xc3, 0x93, 0x51, 0x1a, 0xf6, 0x34, 0xcb, + 0x3e, 0x72, 0x98, 0x1b, 0x31, 0xb9, 0xd8, 0xf5, 0x13, 0x88, 0x3e, 0xfd, 0xec, 0x0c, 0x9b, 0xae, + 0xc2, 0x4a, 0x61, 0xb2, 0xbe, 0x03, 0xc2, 0xed, 0xc8, 0x13, 0x7d, 0xba, 0x9f, 0x80, 0x7e, 0x02, + 0x8b, 0x5d, 0x5d, 0x6d, 0xbb, 0xea, 0x94, 0x56, 0x67, 0xd0, 0x7f, 0x58, 0x29, 0x52, 0xa5, 0xcf, + 0x44, 0x0e, 0x52, 0x57, 0xdb, 0x8e, 0x8a, 0x1a, 0x11, 0x68, 0xc4, 0xe4, 0x85, 0xee, 0x28, 0x11, + 0xbd, 0x05, 0x4b, 0xaa, 0x61, 0x74, 0x2f, 0x47, 0xb5, 0x97, 0xa8, 0xf6, 0x9b, 0x51, 0xda, 0x37, + 0x89, 0xcc, 0xa8, 0x7a, 0xa4, 0x8e, 0x51, 0x51, 0x13, 0x44, 0xc3, 0xc4, 0x86, 0x6a, 0x62, 0xc5, + 0x30, 0x75, 0x43, 0xb7, 0xd4, 0x6e, 0xa5, 0x4c, 0x75, 0x3f, 0x1d, 0xa5, 0xfb, 0x90, 0xf1, 0x1f, + 0x72, 0xf6, 0x46, 0x4c, 0x2e, 0x1b, 0x41, 0x12, 0xd3, 0xaa, 0xb7, 0xb0, 0x65, 0x79, 0x5a, 0xc5, + 0x69, 0x5a, 0x29, 0x7f, 0x50, 0x6b, 0x80, 0x84, 0xea, 0x90, 0xc7, 0x43, 0x22, 0xae, 0x5c, 0xe8, + 0x36, 0xae, 0x2c, 0x50, 0x85, 0x52, 0xe4, 0x09, 0xa5, 0xac, 0x27, 0xba, 0x8d, 0x1b, 0x31, 0x19, + 0xb0, 0xdb, 0x42, 0x2a, 0x3c, 0x72, 0x81, 0x4d, 0xed, 0xec, 0x92, 0xaa, 0x51, 0xe8, 0x1f, 0x4b, + 0xd3, 0xfb, 0x15, 0x44, 0x15, 0x3e, 0x1b, 0xa5, 0xf0, 0x84, 0x0a, 0x11, 0x15, 0x75, 0x47, 0xa4, + 0x11, 0x93, 0x17, 0x2f, 0xc6, 0xc9, 0xc4, 0xc4, 0xce, 0xb4, 0xbe, 0xda, 0xd5, 0xde, 0xc7, 0xca, + 0x69, 0x57, 0x6f, 0x3d, 0xac, 0x2c, 0x4e, 0x36, 0xb1, 0x7b, 0x9c, 0x7b, 0x8b, 0x30, 0x13, 0x13, + 0x3b, 0xf3, 0x13, 0xb6, 0x32, 0x90, 0xba, 0x50, 0xbb, 0x03, 0xbc, 0x9b, 0xcc, 0xa6, 0xc5, 0xcc, + 0x6e, 0x32, 0x9b, 0x15, 0x73, 0xbb, 0xc9, 0x6c, 0x4e, 0x04, 0xe9, 0x69, 0xc8, 0xfb, 0x5c, 0x12, + 0xaa, 0x40, 0xa6, 0x87, 0x2d, 0x4b, 0x3d, 0xc7, 0xd4, 0x83, 0xe5, 0x64, 0xa7, 0x29, 0x95, 0xa0, + 0xe0, 0x77, 0x43, 0xd2, 0x47, 0x82, 0x2b, 0x49, 0x3c, 0x0c, 0x91, 0xbc, 0xc0, 0x26, 0x5d, 0x08, + 0x2e, 0xc9, 0x9b, 0xe8, 0x09, 0x28, 0xd2, 0x49, 0x28, 0xce, 0x7f, 0xe2, 0xe6, 0x92, 0x72, 0x81, + 0x12, 0x4f, 0x38, 0xd3, 0x0a, 0xe4, 0x8d, 0x0d, 0xc3, 0x65, 0x49, 0x50, 0x16, 0x30, 0x36, 0x0c, + 0x87, 0xe1, 0x71, 0x28, 0x90, 0x19, 0xbb, 0x1c, 0x49, 0xda, 0x49, 0x9e, 0xd0, 0x38, 0x8b, 0xf4, + 0xf7, 0x38, 0x88, 0xa3, 0xae, 0x0b, 0xdd, 0x81, 0x24, 0xf1, 0xe2, 0xdc, 0x21, 0x57, 0xd7, 0x98, + 0x8b, 0x5f, 0x73, 0x5c, 0xfc, 0x5a, 0xd3, 0x71, 0xf1, 0x5b, 0xd9, 0x4f, 0x3e, 0x5b, 0x89, 0x7d, + 0xf4, 0xaf, 0x15, 0x41, 0xa6, 0x12, 0xe8, 0x2a, 0x71, 0x58, 0xaa, 0xd6, 0x57, 0xb4, 0x36, 0x1d, + 0x72, 0x8e, 0x78, 0x23, 0x55, 0xeb, 0xef, 0xb4, 0xd1, 0x1e, 0x88, 0x2d, 0xbd, 0x6f, 0xe1, 0xbe, + 0x35, 0xb0, 0x14, 0x16, 0x42, 0xb8, 0x1b, 0x0e, 0x38, 0x53, 0x16, 0xc8, 0x6a, 0x0e, 0xe7, 0x21, + 0x65, 0x94, 0xcb, 0xad, 0x20, 0x01, 0xdd, 0x03, 0xb8, 0x50, 0xbb, 0x5a, 0x5b, 0xb5, 0x75, 0xd3, + 0xaa, 0x24, 0x57, 0x13, 0x37, 0xf2, 0x1b, 0xab, 0x63, 0x5b, 0x7d, 0xe2, 0xb0, 0x1c, 0x1b, 0x6d, + 0xd5, 0xc6, 0x5b, 0x49, 0x32, 0x5c, 0xd9, 0x27, 0x89, 0x9e, 0x82, 0xb2, 0x6a, 0x18, 0x8a, 0x65, + 0xab, 0x36, 0x56, 0x4e, 0x2f, 0x6d, 0x6c, 0x51, 0x17, 0x5d, 0x90, 0x8b, 0xaa, 0x61, 0x1c, 0x11, + 0xea, 0x16, 0x21, 0xa2, 0x27, 0xa1, 0x44, 0xbc, 0xb9, 0xa6, 0x76, 0x95, 0x0e, 0xd6, 0xce, 0x3b, + 0x76, 0x25, 0xbd, 0x2a, 0xdc, 0x48, 0xc8, 0x45, 0x4e, 0x6d, 0x50, 0xa2, 0xd4, 0x76, 0x77, 0x9c, + 0x7a, 0x72, 0x84, 0x20, 0xd9, 0x56, 0x6d, 0x95, 0xae, 0x64, 0x41, 0xa6, 0xdf, 0x84, 0x66, 0xa8, + 0x76, 0x87, 0xaf, 0x0f, 0xfd, 0x46, 0x57, 0x20, 0xcd, 0xd5, 0x26, 0xa8, 0x5a, 0xde, 0x42, 0x4b, + 0x90, 0x32, 0x4c, 0xfd, 0x02, 0xd3, 0xad, 0xcb, 0xca, 0xac, 0x21, 0xc9, 0x50, 0x0a, 0x7a, 0x7d, + 0x54, 0x82, 0xb8, 0x3d, 0xe4, 0xbd, 0xc4, 0xed, 0x21, 0x7a, 0x01, 0x92, 0x64, 0x21, 0x69, 0x1f, + 0xa5, 0x90, 0x38, 0xc7, 0xe5, 0x9a, 0x97, 0x06, 0x96, 0x29, 0xa7, 0x54, 0x86, 0x62, 0x20, 0x1a, + 0x48, 0x57, 0x60, 0x29, 0xcc, 0xb9, 0x4b, 0x1d, 0x97, 0x1e, 0x70, 0xd2, 0xe8, 0x36, 0x64, 0x5d, + 0xef, 0xce, 0x0c, 0xe7, 0xea, 0x58, 0xb7, 0x0e, 0xb3, 0xec, 0xb2, 0x12, 0x8b, 0x21, 0x1b, 0xd0, + 0x51, 0x79, 0x2c, 0x2f, 0xc8, 0x19, 0xd5, 0x30, 0x1a, 0xaa, 0xd5, 0x91, 0xde, 0x86, 0x4a, 0x94, + 0xe7, 0xf6, 0x2d, 0x98, 0x40, 0xcd, 0xde, 0x59, 0xb0, 0x2b, 0x90, 0x3e, 0xd3, 0xcd, 0x9e, 0x6a, + 0x53, 0x65, 0x45, 0x99, 0xb7, 0xc8, 0x42, 0x32, 0x2f, 0x9e, 0xa0, 0x64, 0xd6, 0x90, 0x14, 0xb8, + 0x1a, 0xe9, 0xbd, 0x89, 0x88, 0xd6, 0x6f, 0x63, 0xb6, 0xac, 0x45, 0x99, 0x35, 0x3c, 0x45, 0x6c, + 0xb0, 0xac, 0x41, 0xba, 0xb5, 0xe8, 0x5c, 0xa9, 0xfe, 0x9c, 0xcc, 0x5b, 0xd2, 0x9f, 0x12, 0x70, + 0x25, 0xdc, 0x87, 0xa3, 0x55, 0x28, 0xf4, 0xd4, 0xa1, 0x62, 0x0f, 0xb9, 0xd9, 0x09, 0x74, 0xe3, + 0xa1, 0xa7, 0x0e, 0x9b, 0x43, 0x66, 0x73, 0x22, 0x24, 0xec, 0xa1, 0x55, 0x89, 0xaf, 0x26, 0x6e, + 0x14, 0x64, 0xf2, 0x89, 0x8e, 0x61, 0xa1, 0xab, 0xb7, 0xd4, 0xae, 0xd2, 0x55, 0x2d, 0x5b, 0xe1, + 0xc1, 0x9d, 0x1d, 0xa2, 0x27, 0xc6, 0x16, 0x9b, 0x79, 0x63, 0xdc, 0x66, 0xfb, 0x49, 0x1c, 0x0e, + 0xb7, 0xff, 0x32, 0xd5, 0xb1, 0xa7, 0x3a, 0x5b, 0x8d, 0x8e, 0x61, 0xe9, 0xf4, 0xf2, 0x7d, 0xb5, + 0x6f, 0x6b, 0x7d, 0xac, 0x8c, 0x1d, 0xab, 0x71, 0xeb, 0x79, 0xa0, 0x59, 0xa7, 0xb8, 0xa3, 0x5e, + 0x68, 0xba, 0xc9, 0x55, 0x2e, 0xba, 0xf2, 0x27, 0xde, 0xd9, 0xf2, 0xf6, 0x28, 0x15, 0x30, 0x6a, + 0xc7, 0xbd, 0xa4, 0xe7, 0x76, 0x2f, 0x2f, 0xc0, 0x52, 0x1f, 0x0f, 0x6d, 0xdf, 0x18, 0x99, 0xe1, + 0x64, 0xe8, 0x5e, 0x20, 0xf2, 0xcf, 0xeb, 0x9f, 0xd8, 0x10, 0x7a, 0x86, 0x86, 0x45, 0x43, 0xb7, + 0xb0, 0xa9, 0xa8, 0xed, 0xb6, 0x89, 0x2d, 0xab, 0x92, 0xa5, 0xdc, 0x65, 0x87, 0xbe, 0xc9, 0xc8, + 0xd2, 0x6f, 0xfd, 0x7b, 0x15, 0x0c, 0x83, 0x7c, 0x27, 0x04, 0x6f, 0x27, 0x8e, 0x60, 0x89, 0xcb, + 0xb7, 0x03, 0x9b, 0xc1, 0xd2, 0xd1, 0xc7, 0xc6, 0x0f, 0xdc, 0xe8, 0x26, 0x20, 0x47, 0x7c, 0x86, + 0x7d, 0x48, 0x7c, 0xbd, 0x7d, 0x40, 0x90, 0xa4, 0xab, 0x94, 0x64, 0x4e, 0x88, 0x7c, 0xff, 0xbf, + 0xed, 0xcd, 0x6b, 0xb0, 0x30, 0x96, 0x63, 0xb8, 0xf3, 0x12, 0x42, 0xe7, 0x15, 0xf7, 0xcf, 0x4b, + 0xfa, 0x9d, 0x00, 0xd5, 0xe8, 0xa4, 0x22, 0x54, 0xd5, 0xb3, 0xb0, 0xe0, 0xce, 0xc5, 0x1d, 0x1f, + 0x3b, 0xf5, 0xa2, 0xfb, 0x83, 0x0f, 0x30, 0xd2, 0x81, 0x3f, 0x09, 0xa5, 0x91, 0x94, 0x87, 0xed, + 0x42, 0xf1, 0xc2, 0xdf, 0xbf, 0xf4, 0xab, 0x84, 0xeb, 0x55, 0x03, 0x79, 0x49, 0x88, 0xe5, 0xbd, + 0x0e, 0x8b, 0x6d, 0xdc, 0xd2, 0xda, 0x5f, 0xd5, 0xf0, 0x16, 0xb8, 0xf4, 0x77, 0x76, 0x37, 0x83, + 0xdd, 0xfd, 0x12, 0x20, 0x2b, 0x63, 0xcb, 0x20, 0xd9, 0x07, 0xda, 0x82, 0x1c, 0x1e, 0xb6, 0xb0, + 0x61, 0x3b, 0x09, 0x5b, 0x78, 0x2a, 0xcc, 0xb8, 0xeb, 0x0e, 0x27, 0x01, 0x82, 0xae, 0x18, 0xba, + 0xc5, 0xb1, 0x6e, 0x34, 0x6c, 0xe5, 0xe2, 0x7e, 0xb0, 0xfb, 0xa2, 0x03, 0x76, 0x13, 0x91, 0x38, + 0x8e, 0x49, 0x8d, 0xa0, 0xdd, 0x5b, 0x1c, 0xed, 0x26, 0xa7, 0x74, 0x16, 0x80, 0xbb, 0xb5, 0x00, + 0xdc, 0x4d, 0x4d, 0x99, 0x66, 0x04, 0xde, 0x7d, 0xd1, 0xc1, 0xbb, 0xe9, 0x29, 0x23, 0x1e, 0x01, + 0xbc, 0xaf, 0xfa, 0x00, 0x6f, 0x96, 0x8a, 0xae, 0x46, 0x8a, 0x86, 0x20, 0xde, 0x97, 0x5d, 0xc4, + 0x9b, 0x8f, 0x44, 0xcb, 0x5c, 0x78, 0x14, 0xf2, 0x1e, 0x8c, 0x41, 0x5e, 0x06, 0x51, 0x9f, 0x8a, + 0x54, 0x31, 0x05, 0xf3, 0x1e, 0x8c, 0x61, 0xde, 0xe2, 0x14, 0x85, 0x53, 0x40, 0xef, 0x4f, 0xc3, + 0x41, 0x6f, 0x34, 0x2c, 0xe5, 0xc3, 0x9c, 0x0d, 0xf5, 0x2a, 0x11, 0xa8, 0xb7, 0x1c, 0x89, 0xd0, + 0x98, 0xfa, 0x99, 0x61, 0xef, 0x71, 0x08, 0xec, 0x65, 0x00, 0xf5, 0x46, 0xa4, 0xf2, 0x19, 0x70, + 0xef, 0x71, 0x08, 0xee, 0x5d, 0x98, 0xaa, 0x76, 0x2a, 0xf0, 0xbd, 0x17, 0x04, 0xbe, 0x28, 0x22, + 0xc7, 0xf2, 0x4e, 0x7b, 0x04, 0xf2, 0x3d, 0x8d, 0x42, 0xbe, 0x0c, 0x9d, 0x3e, 0x17, 0xa9, 0x71, + 0x0e, 0xe8, 0x7b, 0x30, 0x06, 0x7d, 0x97, 0xa6, 0x58, 0xda, 0xec, 0xd8, 0x37, 0x23, 0x66, 0x19, + 0xea, 0xdd, 0x4d, 0x66, 0x41, 0xcc, 0x4b, 0xcf, 0x90, 0x40, 0x3c, 0xe2, 0xe1, 0x48, 0x4e, 0x8c, + 0x4d, 0x53, 0x37, 0x39, 0x8a, 0x65, 0x0d, 0xe9, 0x06, 0xc1, 0x42, 0x9e, 0x37, 0x9b, 0x80, 0x93, + 0x29, 0xf6, 0xf0, 0x79, 0x30, 0xe9, 0xcf, 0x82, 0x27, 0x4b, 0x91, 0xb2, 0x1f, 0x47, 0xe5, 0x38, + 0x8e, 0xf2, 0xa1, 0xe7, 0x78, 0x10, 0x3d, 0xaf, 0x40, 0x9e, 0x60, 0x8a, 0x11, 0x60, 0xac, 0x1a, + 0x2e, 0x30, 0xbe, 0x09, 0x0b, 0x34, 0x76, 0x32, 0x8c, 0xcd, 0x03, 0x52, 0x92, 0x06, 0xa4, 0x32, + 0xf9, 0xc1, 0xd6, 0x85, 0x45, 0xa6, 0xe7, 0x61, 0xd1, 0xc7, 0xeb, 0x62, 0x15, 0x86, 0x12, 0x45, + 0x97, 0x7b, 0x93, 0x83, 0x96, 0xbf, 0x09, 0xde, 0x0a, 0x79, 0x88, 0x3a, 0x0c, 0xfc, 0x0a, 0xdf, + 0x10, 0xf8, 0x8d, 0x7f, 0x65, 0xf0, 0xeb, 0xc7, 0x5e, 0x89, 0x20, 0xf6, 0xfa, 0x8f, 0xe0, 0xed, + 0x89, 0x0b, 0x65, 0x5b, 0x7a, 0x1b, 0x73, 0x34, 0x44, 0xbf, 0x49, 0x76, 0xd2, 0xd5, 0xcf, 0x39, + 0xe6, 0x21, 0x9f, 0x84, 0xcb, 0x0d, 0x39, 0x39, 0x1e, 0x51, 0x5c, 0x20, 0xc5, 0x42, 0x3e, 0x07, + 0x52, 0x22, 0x24, 0x1e, 0x62, 0x16, 0x20, 0x0a, 0x32, 0xf9, 0x24, 0x7c, 0xd4, 0xec, 0x78, 0xe8, + 0x66, 0x0d, 0x74, 0x07, 0x72, 0xb4, 0x58, 0xad, 0xe8, 0x86, 0xc5, 0x63, 0x42, 0x20, 0xcb, 0x61, + 0x15, 0xeb, 0xb5, 0x43, 0xc2, 0x73, 0x60, 0x58, 0x72, 0xd6, 0xe0, 0x5f, 0xbe, 0x5c, 0x23, 0x17, + 0xc8, 0x35, 0xae, 0x41, 0x8e, 0x8c, 0xde, 0x32, 0xd4, 0x16, 0xa6, 0xa5, 0xd1, 0x9c, 0xec, 0x11, + 0xa4, 0x4f, 0x04, 0x28, 0x8f, 0x84, 0x98, 0xd0, 0xb9, 0x3b, 0x26, 0x19, 0xf7, 0x41, 0xfb, 0xeb, + 0x00, 0xe7, 0xaa, 0xa5, 0xbc, 0xa7, 0xf6, 0x6d, 0xdc, 0xe6, 0xd3, 0xcd, 0x9d, 0xab, 0xd6, 0x1b, + 0x94, 0x10, 0xec, 0x38, 0x3b, 0xd2, 0xb1, 0x0f, 0x43, 0xe6, 0xfc, 0x18, 0x12, 0x55, 0x21, 0x6b, + 0x98, 0x9a, 0x6e, 0x6a, 0xf6, 0x25, 0x1d, 0x6d, 0x42, 0x76, 0xdb, 0xbb, 0xc9, 0x6c, 0x42, 0x4c, + 0xee, 0x26, 0xb3, 0x49, 0x31, 0xe5, 0x16, 0xaa, 0xd8, 0x91, 0xcd, 0x8b, 0x05, 0xe9, 0x83, 0xb8, + 0x67, 0x8b, 0xdb, 0xb8, 0xab, 0x5d, 0x60, 0x73, 0x8e, 0xc9, 0xcc, 0xb6, 0xb9, 0xcb, 0x21, 0x53, + 0xf6, 0x51, 0xc8, 0xe8, 0x49, 0x6b, 0x60, 0xe1, 0x36, 0x2f, 0x99, 0xb8, 0x6d, 0xd4, 0x80, 0x34, + 0xbe, 0xc0, 0x7d, 0xdb, 0xaa, 0x64, 0xa8, 0x0d, 0x5f, 0x19, 0xc7, 0xb0, 0xe4, 0xf7, 0x56, 0x85, + 0x58, 0xee, 0x97, 0x9f, 0xad, 0x88, 0x8c, 0xfb, 0x39, 0xbd, 0xa7, 0xd9, 0xb8, 0x67, 0xd8, 0x97, + 0x32, 0x97, 0x9f, 0xbc, 0xb2, 0xd2, 0x6d, 0x28, 0x05, 0xe3, 0x3e, 0x7a, 0x02, 0x8a, 0x26, 0xb6, + 0x55, 0xad, 0xaf, 0x04, 0xb2, 0xf6, 0x02, 0x23, 0xf2, 0x62, 0xce, 0x21, 0x3c, 0x12, 0x1a, 0xeb, + 0xd1, 0x4b, 0x90, 0xf3, 0xd2, 0x04, 0x81, 0x0e, 0x7d, 0x42, 0xad, 0xc3, 0xe3, 0x95, 0xfe, 0x2a, + 0x78, 0x2a, 0x83, 0xd5, 0x93, 0x3a, 0xa4, 0x4d, 0x6c, 0x0d, 0xba, 0xac, 0x9e, 0x51, 0xda, 0x78, + 0x7e, 0xb6, 0x2c, 0x81, 0x50, 0x07, 0x5d, 0x5b, 0xe6, 0xc2, 0xd2, 0x5b, 0x90, 0x66, 0x14, 0x94, + 0x87, 0xcc, 0xf1, 0xfe, 0xfd, 0xfd, 0x83, 0x37, 0xf6, 0xc5, 0x18, 0x02, 0x48, 0x6f, 0xd6, 0x6a, + 0xf5, 0xc3, 0xa6, 0x28, 0xa0, 0x1c, 0xa4, 0x36, 0xb7, 0x0e, 0xe4, 0xa6, 0x18, 0x27, 0x64, 0xb9, + 0xbe, 0x5b, 0xaf, 0x35, 0xc5, 0x04, 0x5a, 0x80, 0x22, 0xfb, 0x56, 0xee, 0x1d, 0xc8, 0x0f, 0x36, + 0x9b, 0x62, 0xd2, 0x47, 0x3a, 0xaa, 0xef, 0x6f, 0xd7, 0x65, 0x31, 0x25, 0x7d, 0x0f, 0xae, 0x46, + 0xe6, 0x15, 0x5e, 0x69, 0x44, 0xf0, 0x95, 0x46, 0xa4, 0xdf, 0xc4, 0x09, 0xf2, 0x8a, 0x4a, 0x16, + 0xd0, 0xee, 0xc8, 0xc4, 0x37, 0xe6, 0xc8, 0x34, 0x46, 0x66, 0x4f, 0xc0, 0x96, 0x89, 0xcf, 0xb0, + 0xdd, 0xea, 0xb0, 0xe4, 0x85, 0xf9, 0xc6, 0xa2, 0x5c, 0xe4, 0x54, 0x2a, 0x64, 0x31, 0xb6, 0x77, + 0x70, 0xcb, 0x56, 0xd8, 0x09, 0x63, 0x40, 0x27, 0x47, 0xd8, 0x08, 0xf5, 0x88, 0x11, 0xa5, 0xb7, + 0xe7, 0x5a, 0xcb, 0x1c, 0xa4, 0xe4, 0x7a, 0x53, 0x7e, 0x53, 0x4c, 0x20, 0x04, 0x25, 0xfa, 0xa9, + 0x1c, 0xed, 0x6f, 0x1e, 0x1e, 0x35, 0x0e, 0xc8, 0x5a, 0x2e, 0x42, 0xd9, 0x59, 0x4b, 0x87, 0x98, + 0x92, 0xfe, 0x11, 0x87, 0x47, 0x23, 0x52, 0x1d, 0x74, 0x07, 0xc0, 0x1e, 0x2a, 0x26, 0x6e, 0xe9, + 0x66, 0x3b, 0xda, 0xc8, 0x9a, 0x43, 0x99, 0x72, 0xc8, 0x39, 0x9b, 0x7f, 0x59, 0x13, 0x2a, 0x6a, + 0xe8, 0x15, 0xae, 0x94, 0xcc, 0xca, 0x81, 0x77, 0xd7, 0x43, 0x0a, 0x47, 0xb8, 0x45, 0x14, 0xd3, + 0xb5, 0xa5, 0x8a, 0x29, 0x3f, 0x7a, 0xe0, 0x07, 0xc4, 0x03, 0x1a, 0x54, 0x66, 0x2e, 0xbd, 0xfa, + 0x20, 0x33, 0x23, 0x58, 0xe8, 0x4d, 0x78, 0x74, 0x24, 0x26, 0xba, 0x4a, 0x53, 0xb3, 0x86, 0xc6, + 0x47, 0x82, 0xa1, 0x91, 0xab, 0x96, 0x7e, 0x9f, 0xf0, 0x2f, 0x6c, 0x30, 0xb3, 0x3b, 0x80, 0xb4, + 0x65, 0xab, 0xf6, 0xc0, 0xe2, 0x06, 0xf7, 0xd2, 0xac, 0x69, 0xe2, 0x9a, 0xf3, 0x71, 0x44, 0xc5, + 0x65, 0xae, 0xe6, 0xbb, 0xf5, 0xb6, 0x88, 0x83, 0x0d, 0x2e, 0x4e, 0xf4, 0x91, 0xf1, 0x7c, 0x4e, + 0x5c, 0xba, 0x0b, 0x68, 0x3c, 0x81, 0x0e, 0x29, 0x99, 0x08, 0x61, 0x25, 0x93, 0x3f, 0x08, 0xf0, + 0xd8, 0x84, 0x64, 0x19, 0xbd, 0x3e, 0xb2, 0xcf, 0x2f, 0xcf, 0x93, 0x6a, 0xaf, 0x31, 0x5a, 0x70, + 0xa7, 0xa5, 0x5b, 0x50, 0xf0, 0xd3, 0x67, 0x9b, 0xe4, 0x97, 0x71, 0xcf, 0xe7, 0x07, 0x6b, 0x3b, + 0x5e, 0xf8, 0x13, 0xbe, 0x66, 0xf8, 0x0b, 0xda, 0x59, 0x7c, 0x4e, 0x3b, 0x3b, 0x0a, 0xb3, 0xb3, + 0xc4, 0x5c, 0x59, 0xe5, 0x5c, 0xd6, 0x96, 0xfc, 0x7a, 0xd6, 0x16, 0x38, 0x70, 0xa9, 0x60, 0xda, + 0xfa, 0x26, 0x80, 0x57, 0xf0, 0x22, 0x01, 0xc9, 0xd4, 0x07, 0xfd, 0x36, 0xb5, 0x80, 0x94, 0xcc, + 0x1a, 0xe8, 0x36, 0xa4, 0x88, 0x25, 0x39, 0xeb, 0x34, 0xee, 0x54, 0x89, 0x25, 0xf8, 0x0a, 0x66, + 0x8c, 0x5b, 0xd2, 0x00, 0x8d, 0x57, 0xd4, 0x23, 0xba, 0x78, 0x35, 0xd8, 0xc5, 0xe3, 0x91, 0xb5, + 0xf9, 0xf0, 0xae, 0xde, 0x87, 0x14, 0xdd, 0x79, 0x92, 0x70, 0xd1, 0x6b, 0x1c, 0x0e, 0x7b, 0xc8, + 0x37, 0xfa, 0x19, 0x80, 0x6a, 0xdb, 0xa6, 0x76, 0x3a, 0xf0, 0x3a, 0x58, 0x09, 0xb7, 0x9c, 0x4d, + 0x87, 0x6f, 0xeb, 0x1a, 0x37, 0xa1, 0x25, 0x4f, 0xd4, 0x67, 0x46, 0x3e, 0x85, 0xd2, 0x3e, 0x94, + 0x82, 0xb2, 0x4e, 0xa2, 0xce, 0xc6, 0x10, 0x4c, 0xd4, 0x19, 0xee, 0xe2, 0x89, 0xba, 0x9b, 0xe6, + 0x27, 0xd8, 0x5d, 0x15, 0x6d, 0x48, 0xff, 0x15, 0xa0, 0xe0, 0x37, 0xbc, 0x6f, 0x38, 0xfd, 0x9c, + 0x92, 0x71, 0x5f, 0x1d, 0xcb, 0x3e, 0x33, 0xe7, 0xaa, 0x75, 0xfc, 0x6d, 0x26, 0x9f, 0x1f, 0x08, + 0x90, 0x75, 0x27, 0x1f, 0xbc, 0xb6, 0x0a, 0xdc, 0xf3, 0xb1, 0xb5, 0x8b, 0xfb, 0xef, 0x9a, 0xd8, + 0xad, 0x5e, 0xc2, 0xbd, 0xd5, 0xbb, 0xeb, 0xe6, 0x4a, 0x51, 0x15, 0x3d, 0xff, 0x4a, 0x73, 0x9b, + 0x72, 0x52, 0xc3, 0x5f, 0xf3, 0x71, 0x90, 0x24, 0x01, 0xfd, 0x00, 0xd2, 0x6a, 0xcb, 0xad, 0x63, + 0x96, 0x42, 0x0a, 0x7c, 0x0e, 0xeb, 0x5a, 0x73, 0xb8, 0x49, 0x39, 0x65, 0x2e, 0xc1, 0x47, 0x15, + 0x77, 0x46, 0x25, 0xbd, 0x46, 0xf4, 0x32, 0x9e, 0xa0, 0x47, 0x2c, 0x01, 0x1c, 0xef, 0x3f, 0x38, + 0xd8, 0xde, 0xb9, 0xb7, 0x53, 0xdf, 0xe6, 0xd9, 0xd2, 0xf6, 0x76, 0x7d, 0x5b, 0x8c, 0x13, 0x3e, + 0xb9, 0xfe, 0xe0, 0xe0, 0xa4, 0xbe, 0x2d, 0x26, 0xa4, 0xbb, 0x90, 0x73, 0xbd, 0x0a, 0x41, 0xf5, + 0x4e, 0x4d, 0x56, 0xe0, 0x67, 0x9b, 0x97, 0xd8, 0x97, 0x20, 0x65, 0xe8, 0xef, 0xf1, 0x2b, 0xb6, + 0x84, 0xcc, 0x1a, 0x52, 0x1b, 0xca, 0x23, 0x2e, 0x09, 0xdd, 0x85, 0x8c, 0x31, 0x38, 0x55, 0x1c, + 0xa3, 0x1d, 0xa9, 0x60, 0x3b, 0x78, 0x71, 0x70, 0xda, 0xd5, 0x5a, 0xf7, 0xf1, 0xa5, 0xb3, 0x4c, + 0xc6, 0xe0, 0xf4, 0x3e, 0xb3, 0x6d, 0xd6, 0x4b, 0xdc, 0xdf, 0xcb, 0x05, 0x64, 0x9d, 0xa3, 0x8a, + 0x7e, 0x08, 0x39, 0xd7, 0xdb, 0xb9, 0x57, 0xe4, 0x91, 0x6e, 0x92, 0xab, 0xf7, 0x44, 0xd0, 0x4d, + 0x58, 0xb0, 0xb4, 0xf3, 0xbe, 0x53, 0xbf, 0x67, 0x15, 0x9b, 0x38, 0x3d, 0x33, 0x65, 0xf6, 0x63, + 0xcf, 0x29, 0x2a, 0x90, 0x20, 0x27, 0x8e, 0xfa, 0x8a, 0x6f, 0x73, 0x00, 0x21, 0xc1, 0x38, 0x11, + 0x16, 0x8c, 0x7f, 0x11, 0x87, 0xbc, 0xef, 0x56, 0x00, 0x7d, 0xdf, 0xe7, 0xb8, 0x4a, 0x21, 0x51, + 0xc4, 0xc7, 0xeb, 0xdd, 0x41, 0x07, 0x27, 0x16, 0x9f, 0x7f, 0x62, 0x51, 0x97, 0x30, 0xce, 0xe5, + 0x42, 0x72, 0xee, 0xcb, 0x85, 0xe7, 0x00, 0xd9, 0xba, 0xad, 0x76, 0x95, 0x0b, 0xdd, 0xd6, 0xfa, + 0xe7, 0x0a, 0x33, 0x0d, 0xe6, 0x66, 0x44, 0xfa, 0xe7, 0x84, 0xfe, 0x38, 0xa4, 0x56, 0xf2, 0x73, + 0x01, 0xb2, 0x2e, 0xa2, 0x9b, 0xf7, 0x86, 0xfa, 0x0a, 0xa4, 0x39, 0x68, 0x61, 0x57, 0xd4, 0xbc, + 0x15, 0x7a, 0x8b, 0x52, 0x85, 0x6c, 0x0f, 0xdb, 0x2a, 0xf5, 0x99, 0x2c, 0x02, 0xba, 0xed, 0x9b, + 0x2f, 0x43, 0xde, 0x77, 0xbb, 0x4f, 0xdc, 0xe8, 0x7e, 0xfd, 0x0d, 0x31, 0x56, 0xcd, 0x7c, 0xf8, + 0xf1, 0x6a, 0x62, 0x1f, 0xbf, 0x47, 0x4e, 0x98, 0x5c, 0xaf, 0x35, 0xea, 0xb5, 0xfb, 0xa2, 0x50, + 0xcd, 0x7f, 0xf8, 0xf1, 0x6a, 0x46, 0xc6, 0xb4, 0x80, 0x7e, 0xf3, 0x3e, 0x94, 0x47, 0x36, 0x26, + 0x78, 0xa0, 0x11, 0x94, 0xb6, 0x8f, 0x0f, 0xf7, 0x76, 0x6a, 0x9b, 0xcd, 0xba, 0x72, 0x72, 0xd0, + 0xac, 0x8b, 0x02, 0x7a, 0x14, 0x16, 0xf7, 0x76, 0x7e, 0xd4, 0x68, 0x2a, 0xb5, 0xbd, 0x9d, 0xfa, + 0x7e, 0x53, 0xd9, 0x6c, 0x36, 0x37, 0x6b, 0xf7, 0xc5, 0xf8, 0xc6, 0x1f, 0xf3, 0x50, 0xde, 0xdc, + 0xaa, 0xed, 0x10, 0xd8, 0xa6, 0xb5, 0x54, 0xea, 0x1e, 0x6a, 0x90, 0xa4, 0xa5, 0xc0, 0x89, 0x6f, + 0xfc, 0xaa, 0x93, 0x6f, 0x45, 0xd0, 0x3d, 0x48, 0xd1, 0x2a, 0x21, 0x9a, 0xfc, 0xe8, 0xaf, 0x3a, + 0xe5, 0x9a, 0x84, 0x0c, 0x86, 0x1e, 0xa7, 0x89, 0xaf, 0x00, 0xab, 0x93, 0x6f, 0x4d, 0xd0, 0x1e, + 0x64, 0x9c, 0x22, 0xd1, 0xb4, 0xa7, 0x79, 0xd5, 0xa9, 0x57, 0x19, 0x64, 0x6a, 0xac, 0xd8, 0x36, + 0xf9, 0x81, 0x60, 0x75, 0xca, 0x7d, 0x0a, 0xda, 0x81, 0x34, 0x2f, 0x74, 0x4c, 0x79, 0xf3, 0x57, + 0x9d, 0x76, 0x43, 0x82, 0x64, 0xc8, 0x79, 0x65, 0xcc, 0xe9, 0xcf, 0x1e, 0xab, 0x33, 0x5c, 0x15, + 0xa1, 0xb7, 0xa0, 0x18, 0x2c, 0xa8, 0xcc, 0xf6, 0xae, 0xb0, 0x3a, 0xe3, 0x5d, 0x0c, 0xd1, 0x1f, + 0xac, 0xae, 0xcc, 0xf6, 0xce, 0xb0, 0x3a, 0xe3, 0xd5, 0x0c, 0x7a, 0x07, 0x16, 0xc6, 0xab, 0x1f, + 0xb3, 0x3f, 0x3b, 0xac, 0xce, 0x71, 0x59, 0x83, 0x7a, 0x80, 0x42, 0xaa, 0x26, 0x73, 0xbc, 0x42, + 0xac, 0xce, 0x73, 0x77, 0x83, 0xda, 0x50, 0x1e, 0xad, 0x44, 0xcc, 0xfa, 0x2a, 0xb1, 0x3a, 0xf3, + 0x3d, 0x0e, 0xeb, 0x25, 0x08, 0xcb, 0x67, 0x7d, 0xa5, 0x58, 0x9d, 0xf9, 0x5a, 0x07, 0x1d, 0x03, + 0xf8, 0x60, 0xe5, 0x0c, 0xaf, 0x16, 0xab, 0xb3, 0x5c, 0xf0, 0x20, 0x03, 0x16, 0xc3, 0xf0, 0xe6, + 0x3c, 0x8f, 0x18, 0xab, 0x73, 0xdd, 0xfb, 0x10, 0x7b, 0x0e, 0x22, 0xc7, 0xd9, 0x1e, 0x35, 0x56, + 0x67, 0xbc, 0x00, 0xda, 0xaa, 0x7f, 0xf2, 0xf9, 0xb2, 0xf0, 0xe9, 0xe7, 0xcb, 0xc2, 0xbf, 0x3f, + 0x5f, 0x16, 0x3e, 0xfa, 0x62, 0x39, 0xf6, 0xe9, 0x17, 0xcb, 0xb1, 0x7f, 0x7e, 0xb1, 0x1c, 0xfb, + 0xf1, 0xb3, 0xe7, 0x9a, 0xdd, 0x19, 0x9c, 0xae, 0xb5, 0xf4, 0xde, 0xba, 0xff, 0x1d, 0x78, 0xd8, + 0xeb, 0xf3, 0xd3, 0x34, 0x0d, 0xa8, 0xb7, 0xfe, 0x17, 0x00, 0x00, 0xff, 0xff, 0x4c, 0xb4, 0x7f, + 0x53, 0x9d, 0x2e, 0x00, 0x00, +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// ABCIApplicationClient is the client API for ABCIApplication service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type ABCIApplicationClient interface { + Echo(ctx context.Context, in *RequestEcho, opts ...grpc.CallOption) (*ResponseEcho, error) + Flush(ctx context.Context, in *RequestFlush, opts ...grpc.CallOption) (*ResponseFlush, error) + Info(ctx context.Context, in *RequestInfo, opts ...grpc.CallOption) (*ResponseInfo, error) + CheckTx(ctx context.Context, in *RequestCheckTx, opts ...grpc.CallOption) (*ResponseCheckTx, error) + Query(ctx context.Context, in *RequestQuery, opts ...grpc.CallOption) (*ResponseQuery, error) + Commit(ctx context.Context, in *RequestCommit, opts ...grpc.CallOption) (*ResponseCommit, error) + InitChain(ctx context.Context, in *RequestInitChain, opts ...grpc.CallOption) (*ResponseInitChain, error) + ListSnapshots(ctx context.Context, in *RequestListSnapshots, opts ...grpc.CallOption) (*ResponseListSnapshots, error) + OfferSnapshot(ctx context.Context, in *RequestOfferSnapshot, opts ...grpc.CallOption) (*ResponseOfferSnapshot, error) + LoadSnapshotChunk(ctx context.Context, in *RequestLoadSnapshotChunk, opts ...grpc.CallOption) (*ResponseLoadSnapshotChunk, error) + ApplySnapshotChunk(ctx context.Context, in *RequestApplySnapshotChunk, opts ...grpc.CallOption) (*ResponseApplySnapshotChunk, error) + PrepareProposal(ctx context.Context, in *RequestPrepareProposal, opts ...grpc.CallOption) (*ResponsePrepareProposal, error) + ProcessProposal(ctx context.Context, in *RequestProcessProposal, opts ...grpc.CallOption) (*ResponseProcessProposal, error) + ExtendVote(ctx context.Context, in *RequestExtendVote, opts ...grpc.CallOption) (*ResponseExtendVote, error) + VerifyVoteExtension(ctx context.Context, in *RequestVerifyVoteExtension, opts ...grpc.CallOption) (*ResponseVerifyVoteExtension, error) + FinalizeBlock(ctx context.Context, in *RequestFinalizeBlock, opts ...grpc.CallOption) (*ResponseFinalizeBlock, error) +} + +type aBCIApplicationClient struct { + cc *grpc.ClientConn +} + +func NewABCIApplicationClient(cc *grpc.ClientConn) ABCIApplicationClient { + return &aBCIApplicationClient{cc} +} + +func (c *aBCIApplicationClient) Echo(ctx context.Context, in *RequestEcho, opts ...grpc.CallOption) (*ResponseEcho, error) { + out := new(ResponseEcho) + err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/Echo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aBCIApplicationClient) Flush(ctx context.Context, in *RequestFlush, opts ...grpc.CallOption) (*ResponseFlush, error) { + out := new(ResponseFlush) + err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/Flush", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aBCIApplicationClient) Info(ctx context.Context, in *RequestInfo, opts ...grpc.CallOption) (*ResponseInfo, error) { + out := new(ResponseInfo) + err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/Info", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aBCIApplicationClient) CheckTx(ctx context.Context, in *RequestCheckTx, opts ...grpc.CallOption) (*ResponseCheckTx, error) { + out := new(ResponseCheckTx) + err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/CheckTx", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aBCIApplicationClient) Query(ctx context.Context, in *RequestQuery, opts ...grpc.CallOption) (*ResponseQuery, error) { + out := new(ResponseQuery) + err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/Query", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aBCIApplicationClient) Commit(ctx context.Context, in *RequestCommit, opts ...grpc.CallOption) (*ResponseCommit, error) { + out := new(ResponseCommit) + err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/Commit", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aBCIApplicationClient) InitChain(ctx context.Context, in *RequestInitChain, opts ...grpc.CallOption) (*ResponseInitChain, error) { + out := new(ResponseInitChain) + err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/InitChain", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aBCIApplicationClient) ListSnapshots(ctx context.Context, in *RequestListSnapshots, opts ...grpc.CallOption) (*ResponseListSnapshots, error) { + out := new(ResponseListSnapshots) + err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/ListSnapshots", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aBCIApplicationClient) OfferSnapshot(ctx context.Context, in *RequestOfferSnapshot, opts ...grpc.CallOption) (*ResponseOfferSnapshot, error) { + out := new(ResponseOfferSnapshot) + err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/OfferSnapshot", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aBCIApplicationClient) LoadSnapshotChunk(ctx context.Context, in *RequestLoadSnapshotChunk, opts ...grpc.CallOption) (*ResponseLoadSnapshotChunk, error) { + out := new(ResponseLoadSnapshotChunk) + err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/LoadSnapshotChunk", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aBCIApplicationClient) ApplySnapshotChunk(ctx context.Context, in *RequestApplySnapshotChunk, opts ...grpc.CallOption) (*ResponseApplySnapshotChunk, error) { + out := new(ResponseApplySnapshotChunk) + err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/ApplySnapshotChunk", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aBCIApplicationClient) PrepareProposal(ctx context.Context, in *RequestPrepareProposal, opts ...grpc.CallOption) (*ResponsePrepareProposal, error) { + out := new(ResponsePrepareProposal) + err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/PrepareProposal", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aBCIApplicationClient) ProcessProposal(ctx context.Context, in *RequestProcessProposal, opts ...grpc.CallOption) (*ResponseProcessProposal, error) { + out := new(ResponseProcessProposal) + err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/ProcessProposal", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aBCIApplicationClient) ExtendVote(ctx context.Context, in *RequestExtendVote, opts ...grpc.CallOption) (*ResponseExtendVote, error) { + out := new(ResponseExtendVote) + err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/ExtendVote", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aBCIApplicationClient) VerifyVoteExtension(ctx context.Context, in *RequestVerifyVoteExtension, opts ...grpc.CallOption) (*ResponseVerifyVoteExtension, error) { + out := new(ResponseVerifyVoteExtension) + err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/VerifyVoteExtension", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *aBCIApplicationClient) FinalizeBlock(ctx context.Context, in *RequestFinalizeBlock, opts ...grpc.CallOption) (*ResponseFinalizeBlock, error) { + out := new(ResponseFinalizeBlock) + err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/FinalizeBlock", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ABCIApplicationServer is the server API for ABCIApplication service. +type ABCIApplicationServer interface { + Echo(context.Context, *RequestEcho) (*ResponseEcho, error) + Flush(context.Context, *RequestFlush) (*ResponseFlush, error) + Info(context.Context, *RequestInfo) (*ResponseInfo, error) + CheckTx(context.Context, *RequestCheckTx) (*ResponseCheckTx, error) + Query(context.Context, *RequestQuery) (*ResponseQuery, error) + Commit(context.Context, *RequestCommit) (*ResponseCommit, error) + InitChain(context.Context, *RequestInitChain) (*ResponseInitChain, error) + ListSnapshots(context.Context, *RequestListSnapshots) (*ResponseListSnapshots, error) + OfferSnapshot(context.Context, *RequestOfferSnapshot) (*ResponseOfferSnapshot, error) + LoadSnapshotChunk(context.Context, *RequestLoadSnapshotChunk) (*ResponseLoadSnapshotChunk, error) + ApplySnapshotChunk(context.Context, *RequestApplySnapshotChunk) (*ResponseApplySnapshotChunk, error) + PrepareProposal(context.Context, *RequestPrepareProposal) (*ResponsePrepareProposal, error) + ProcessProposal(context.Context, *RequestProcessProposal) (*ResponseProcessProposal, error) + ExtendVote(context.Context, *RequestExtendVote) (*ResponseExtendVote, error) + VerifyVoteExtension(context.Context, *RequestVerifyVoteExtension) (*ResponseVerifyVoteExtension, error) + FinalizeBlock(context.Context, *RequestFinalizeBlock) (*ResponseFinalizeBlock, error) +} + +// UnimplementedABCIApplicationServer can be embedded to have forward compatible implementations. +type UnimplementedABCIApplicationServer struct { +} + +func (*UnimplementedABCIApplicationServer) Echo(ctx context.Context, req *RequestEcho) (*ResponseEcho, error) { + return nil, status.Errorf(codes.Unimplemented, "method Echo not implemented") +} +func (*UnimplementedABCIApplicationServer) Flush(ctx context.Context, req *RequestFlush) (*ResponseFlush, error) { + return nil, status.Errorf(codes.Unimplemented, "method Flush not implemented") +} +func (*UnimplementedABCIApplicationServer) Info(ctx context.Context, req *RequestInfo) (*ResponseInfo, error) { + return nil, status.Errorf(codes.Unimplemented, "method Info not implemented") +} +func (*UnimplementedABCIApplicationServer) CheckTx(ctx context.Context, req *RequestCheckTx) (*ResponseCheckTx, error) { + return nil, status.Errorf(codes.Unimplemented, "method CheckTx not implemented") +} +func (*UnimplementedABCIApplicationServer) Query(ctx context.Context, req *RequestQuery) (*ResponseQuery, error) { + return nil, status.Errorf(codes.Unimplemented, "method Query not implemented") +} +func (*UnimplementedABCIApplicationServer) Commit(ctx context.Context, req *RequestCommit) (*ResponseCommit, error) { + return nil, status.Errorf(codes.Unimplemented, "method Commit not implemented") +} +func (*UnimplementedABCIApplicationServer) InitChain(ctx context.Context, req *RequestInitChain) (*ResponseInitChain, error) { + return nil, status.Errorf(codes.Unimplemented, "method InitChain not implemented") +} +func (*UnimplementedABCIApplicationServer) ListSnapshots(ctx context.Context, req *RequestListSnapshots) (*ResponseListSnapshots, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSnapshots not implemented") +} +func (*UnimplementedABCIApplicationServer) OfferSnapshot(ctx context.Context, req *RequestOfferSnapshot) (*ResponseOfferSnapshot, error) { + return nil, status.Errorf(codes.Unimplemented, "method OfferSnapshot not implemented") +} +func (*UnimplementedABCIApplicationServer) LoadSnapshotChunk(ctx context.Context, req *RequestLoadSnapshotChunk) (*ResponseLoadSnapshotChunk, error) { + return nil, status.Errorf(codes.Unimplemented, "method LoadSnapshotChunk not implemented") +} +func (*UnimplementedABCIApplicationServer) ApplySnapshotChunk(ctx context.Context, req *RequestApplySnapshotChunk) (*ResponseApplySnapshotChunk, error) { + return nil, status.Errorf(codes.Unimplemented, "method ApplySnapshotChunk not implemented") +} +func (*UnimplementedABCIApplicationServer) PrepareProposal(ctx context.Context, req *RequestPrepareProposal) (*ResponsePrepareProposal, error) { + return nil, status.Errorf(codes.Unimplemented, "method PrepareProposal not implemented") +} +func (*UnimplementedABCIApplicationServer) ProcessProposal(ctx context.Context, req *RequestProcessProposal) (*ResponseProcessProposal, error) { + return nil, status.Errorf(codes.Unimplemented, "method ProcessProposal not implemented") +} +func (*UnimplementedABCIApplicationServer) ExtendVote(ctx context.Context, req *RequestExtendVote) (*ResponseExtendVote, error) { + return nil, status.Errorf(codes.Unimplemented, "method ExtendVote not implemented") +} +func (*UnimplementedABCIApplicationServer) VerifyVoteExtension(ctx context.Context, req *RequestVerifyVoteExtension) (*ResponseVerifyVoteExtension, error) { + return nil, status.Errorf(codes.Unimplemented, "method VerifyVoteExtension not implemented") +} +func (*UnimplementedABCIApplicationServer) FinalizeBlock(ctx context.Context, req *RequestFinalizeBlock) (*ResponseFinalizeBlock, error) { + return nil, status.Errorf(codes.Unimplemented, "method FinalizeBlock not implemented") +} + +func RegisterABCIApplicationServer(s *grpc.Server, srv ABCIApplicationServer) { + s.RegisterService(&_ABCIApplication_serviceDesc, srv) +} + +func _ABCIApplication_Echo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequestEcho) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ABCIApplicationServer).Echo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tendermint.abci.ABCIApplication/Echo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ABCIApplicationServer).Echo(ctx, req.(*RequestEcho)) + } + return interceptor(ctx, in, info, handler) +} + +func _ABCIApplication_Flush_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequestFlush) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ABCIApplicationServer).Flush(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tendermint.abci.ABCIApplication/Flush", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ABCIApplicationServer).Flush(ctx, req.(*RequestFlush)) + } + return interceptor(ctx, in, info, handler) +} + +func _ABCIApplication_Info_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequestInfo) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ABCIApplicationServer).Info(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tendermint.abci.ABCIApplication/Info", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ABCIApplicationServer).Info(ctx, req.(*RequestInfo)) + } + return interceptor(ctx, in, info, handler) +} + +func _ABCIApplication_CheckTx_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequestCheckTx) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ABCIApplicationServer).CheckTx(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tendermint.abci.ABCIApplication/CheckTx", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ABCIApplicationServer).CheckTx(ctx, req.(*RequestCheckTx)) + } + return interceptor(ctx, in, info, handler) +} + +func _ABCIApplication_Query_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequestQuery) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ABCIApplicationServer).Query(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tendermint.abci.ABCIApplication/Query", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ABCIApplicationServer).Query(ctx, req.(*RequestQuery)) + } + return interceptor(ctx, in, info, handler) +} + +func _ABCIApplication_Commit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequestCommit) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ABCIApplicationServer).Commit(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tendermint.abci.ABCIApplication/Commit", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ABCIApplicationServer).Commit(ctx, req.(*RequestCommit)) + } + return interceptor(ctx, in, info, handler) +} + +func _ABCIApplication_InitChain_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequestInitChain) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ABCIApplicationServer).InitChain(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tendermint.abci.ABCIApplication/InitChain", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ABCIApplicationServer).InitChain(ctx, req.(*RequestInitChain)) + } + return interceptor(ctx, in, info, handler) +} + +func _ABCIApplication_ListSnapshots_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequestListSnapshots) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ABCIApplicationServer).ListSnapshots(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tendermint.abci.ABCIApplication/ListSnapshots", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ABCIApplicationServer).ListSnapshots(ctx, req.(*RequestListSnapshots)) + } + return interceptor(ctx, in, info, handler) +} + +func _ABCIApplication_OfferSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequestOfferSnapshot) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ABCIApplicationServer).OfferSnapshot(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tendermint.abci.ABCIApplication/OfferSnapshot", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ABCIApplicationServer).OfferSnapshot(ctx, req.(*RequestOfferSnapshot)) + } + return interceptor(ctx, in, info, handler) +} + +func _ABCIApplication_LoadSnapshotChunk_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequestLoadSnapshotChunk) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ABCIApplicationServer).LoadSnapshotChunk(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tendermint.abci.ABCIApplication/LoadSnapshotChunk", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ABCIApplicationServer).LoadSnapshotChunk(ctx, req.(*RequestLoadSnapshotChunk)) + } + return interceptor(ctx, in, info, handler) +} + +func _ABCIApplication_ApplySnapshotChunk_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequestApplySnapshotChunk) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ABCIApplicationServer).ApplySnapshotChunk(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tendermint.abci.ABCIApplication/ApplySnapshotChunk", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ABCIApplicationServer).ApplySnapshotChunk(ctx, req.(*RequestApplySnapshotChunk)) + } + return interceptor(ctx, in, info, handler) +} + +func _ABCIApplication_PrepareProposal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequestPrepareProposal) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ABCIApplicationServer).PrepareProposal(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tendermint.abci.ABCIApplication/PrepareProposal", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ABCIApplicationServer).PrepareProposal(ctx, req.(*RequestPrepareProposal)) + } + return interceptor(ctx, in, info, handler) +} + +func _ABCIApplication_ProcessProposal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequestProcessProposal) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ABCIApplicationServer).ProcessProposal(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tendermint.abci.ABCIApplication/ProcessProposal", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ABCIApplicationServer).ProcessProposal(ctx, req.(*RequestProcessProposal)) + } + return interceptor(ctx, in, info, handler) +} + +func _ABCIApplication_ExtendVote_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequestExtendVote) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ABCIApplicationServer).ExtendVote(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tendermint.abci.ABCIApplication/ExtendVote", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ABCIApplicationServer).ExtendVote(ctx, req.(*RequestExtendVote)) + } + return interceptor(ctx, in, info, handler) +} + +func _ABCIApplication_VerifyVoteExtension_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequestVerifyVoteExtension) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ABCIApplicationServer).VerifyVoteExtension(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tendermint.abci.ABCIApplication/VerifyVoteExtension", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ABCIApplicationServer).VerifyVoteExtension(ctx, req.(*RequestVerifyVoteExtension)) + } + return interceptor(ctx, in, info, handler) +} + +func _ABCIApplication_FinalizeBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequestFinalizeBlock) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ABCIApplicationServer).FinalizeBlock(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/tendermint.abci.ABCIApplication/FinalizeBlock", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ABCIApplicationServer).FinalizeBlock(ctx, req.(*RequestFinalizeBlock)) + } + return interceptor(ctx, in, info, handler) +} + +var _ABCIApplication_serviceDesc = grpc.ServiceDesc{ + ServiceName: "tendermint.abci.ABCIApplication", + HandlerType: (*ABCIApplicationServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Echo", + Handler: _ABCIApplication_Echo_Handler, + }, + { + MethodName: "Flush", + Handler: _ABCIApplication_Flush_Handler, + }, + { + MethodName: "Info", + Handler: _ABCIApplication_Info_Handler, + }, + { + MethodName: "CheckTx", + Handler: _ABCIApplication_CheckTx_Handler, + }, + { + MethodName: "Query", + Handler: _ABCIApplication_Query_Handler, + }, + { + MethodName: "Commit", + Handler: _ABCIApplication_Commit_Handler, + }, + { + MethodName: "InitChain", + Handler: _ABCIApplication_InitChain_Handler, + }, + { + MethodName: "ListSnapshots", + Handler: _ABCIApplication_ListSnapshots_Handler, + }, + { + MethodName: "OfferSnapshot", + Handler: _ABCIApplication_OfferSnapshot_Handler, + }, + { + MethodName: "LoadSnapshotChunk", + Handler: _ABCIApplication_LoadSnapshotChunk_Handler, + }, + { + MethodName: "ApplySnapshotChunk", + Handler: _ABCIApplication_ApplySnapshotChunk_Handler, + }, + { + MethodName: "PrepareProposal", + Handler: _ABCIApplication_PrepareProposal_Handler, + }, + { + MethodName: "ProcessProposal", + Handler: _ABCIApplication_ProcessProposal_Handler, + }, + { + MethodName: "ExtendVote", + Handler: _ABCIApplication_ExtendVote_Handler, + }, + { + MethodName: "VerifyVoteExtension", + Handler: _ABCIApplication_VerifyVoteExtension_Handler, + }, + { + MethodName: "FinalizeBlock", + Handler: _ABCIApplication_FinalizeBlock_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "tendermint/abci/types.proto", +} + +func (m *Request) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Request) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Request) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Value != nil { + { + size := m.Value.Size() + i -= size + if _, err := m.Value.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *Request_Echo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Request_Echo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Echo != nil { + { + size, err := m.Echo.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *Request_Flush) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Request_Flush) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Flush != nil { + { + size, err := m.Flush.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *Request_Info) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Request_Info) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Info != nil { + { + size, err := m.Info.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *Request_InitChain) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Request_InitChain) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.InitChain != nil { + { + size, err := m.InitChain.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *Request_Query) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Request_Query) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Query != nil { + { + size, err := m.Query.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + return len(dAtA) - i, nil +} +func (m *Request_CheckTx) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Request_CheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.CheckTx != nil { + { + size, err := m.CheckTx.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + return len(dAtA) - i, nil +} +func (m *Request_Commit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Request_Commit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Commit != nil { + { + size, err := m.Commit.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x52 + } + return len(dAtA) - i, nil +} +func (m *Request_ListSnapshots) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Request_ListSnapshots) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ListSnapshots != nil { + { + size, err := m.ListSnapshots.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x5a + } + return len(dAtA) - i, nil +} +func (m *Request_OfferSnapshot) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Request_OfferSnapshot) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.OfferSnapshot != nil { + { + size, err := m.OfferSnapshot.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x62 + } + return len(dAtA) - i, nil +} +func (m *Request_LoadSnapshotChunk) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Request_LoadSnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.LoadSnapshotChunk != nil { + { + size, err := m.LoadSnapshotChunk.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x6a + } + return len(dAtA) - i, nil +} +func (m *Request_ApplySnapshotChunk) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Request_ApplySnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ApplySnapshotChunk != nil { + { + size, err := m.ApplySnapshotChunk.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 + } + return len(dAtA) - i, nil +} +func (m *Request_PrepareProposal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Request_PrepareProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.PrepareProposal != nil { + { + size, err := m.PrepareProposal.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a + } + return len(dAtA) - i, nil +} +func (m *Request_ProcessProposal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Request_ProcessProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ProcessProposal != nil { + { + size, err := m.ProcessProposal.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + return len(dAtA) - i, nil +} +func (m *Request_ExtendVote) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Request_ExtendVote) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ExtendVote != nil { + { + size, err := m.ExtendVote.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } + return len(dAtA) - i, nil +} +func (m *Request_VerifyVoteExtension) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Request_VerifyVoteExtension) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.VerifyVoteExtension != nil { + { + size, err := m.VerifyVoteExtension.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 + } + return len(dAtA) - i, nil +} +func (m *Request_FinalizeBlock) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Request_FinalizeBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.FinalizeBlock != nil { + { + size, err := m.FinalizeBlock.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x9a + } + return len(dAtA) - i, nil +} +func (m *RequestEcho) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RequestEcho) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestEcho) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Message) > 0 { + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RequestFlush) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RequestFlush) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestFlush) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *RequestInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RequestInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.AbciVersion) > 0 { + i -= len(m.AbciVersion) + copy(dAtA[i:], m.AbciVersion) + i = encodeVarintTypes(dAtA, i, uint64(len(m.AbciVersion))) + i-- + dAtA[i] = 0x22 + } + if m.P2PVersion != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.P2PVersion)) + i-- + dAtA[i] = 0x18 + } + if m.BlockVersion != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.BlockVersion)) + i-- + dAtA[i] = 0x10 + } + if len(m.Version) > 0 { + i -= len(m.Version) + copy(dAtA[i:], m.Version) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Version))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RequestInitChain) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RequestInitChain) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestInitChain) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.InitialHeight != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.InitialHeight)) + i-- + dAtA[i] = 0x30 + } + if len(m.AppStateBytes) > 0 { + i -= len(m.AppStateBytes) + copy(dAtA[i:], m.AppStateBytes) + i = encodeVarintTypes(dAtA, i, uint64(len(m.AppStateBytes))) + i-- + dAtA[i] = 0x2a + } + if len(m.Validators) > 0 { + for iNdEx := len(m.Validators) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Validators[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + if m.ConsensusParams != nil { + { + size, err := m.ConsensusParams.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if len(m.ChainId) > 0 { + i -= len(m.ChainId) + copy(dAtA[i:], m.ChainId) + i = encodeVarintTypes(dAtA, i, uint64(len(m.ChainId))) + i-- + dAtA[i] = 0x12 + } + n18, err18 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):]) + if err18 != nil { + return 0, err18 + } + i -= n18 + i = encodeVarintTypes(dAtA, i, uint64(n18)) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *RequestQuery) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RequestQuery) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Prove { + i-- + if m.Prove { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } + if m.Height != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Height)) + i-- + dAtA[i] = 0x18 + } + if len(m.Path) > 0 { + i -= len(m.Path) + copy(dAtA[i:], m.Path) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Path))) + i-- + dAtA[i] = 0x12 + } + if len(m.Data) > 0 { + i -= len(m.Data) + copy(dAtA[i:], m.Data) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Data))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RequestCheckTx) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RequestCheckTx) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestCheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Type != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Type)) + i-- + dAtA[i] = 0x10 + } + if len(m.Tx) > 0 { + i -= len(m.Tx) + copy(dAtA[i:], m.Tx) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Tx))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RequestCommit) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RequestCommit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestCommit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *RequestListSnapshots) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RequestListSnapshots) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestListSnapshots) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *RequestOfferSnapshot) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RequestOfferSnapshot) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestOfferSnapshot) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.AppHash) > 0 { + i -= len(m.AppHash) + copy(dAtA[i:], m.AppHash) + i = encodeVarintTypes(dAtA, i, uint64(len(m.AppHash))) + i-- + dAtA[i] = 0x12 + } + if m.Snapshot != nil { + { + size, err := m.Snapshot.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RequestLoadSnapshotChunk) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RequestLoadSnapshotChunk) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestLoadSnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Chunk != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Chunk)) + i-- + dAtA[i] = 0x18 + } + if m.Format != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Format)) + i-- + dAtA[i] = 0x10 + } + if m.Height != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Height)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *RequestApplySnapshotChunk) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RequestApplySnapshotChunk) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestApplySnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0x1a + } + if len(m.Chunk) > 0 { + i -= len(m.Chunk) + copy(dAtA[i:], m.Chunk) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Chunk))) + i-- + dAtA[i] = 0x12 + } + if m.Index != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Index)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *RequestPrepareProposal) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RequestPrepareProposal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestPrepareProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.ProposerAddress) > 0 { + i -= len(m.ProposerAddress) + copy(dAtA[i:], m.ProposerAddress) + i = encodeVarintTypes(dAtA, i, uint64(len(m.ProposerAddress))) + i-- + dAtA[i] = 0x42 + } + if len(m.NextValidatorsHash) > 0 { + i -= len(m.NextValidatorsHash) + copy(dAtA[i:], m.NextValidatorsHash) + i = encodeVarintTypes(dAtA, i, uint64(len(m.NextValidatorsHash))) + i-- + dAtA[i] = 0x3a + } + n20, err20 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):]) + if err20 != nil { + return 0, err20 + } + i -= n20 + i = encodeVarintTypes(dAtA, i, uint64(n20)) + i-- + dAtA[i] = 0x32 + if m.Height != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Height)) + i-- + dAtA[i] = 0x28 + } + if len(m.ByzantineValidators) > 0 { + for iNdEx := len(m.ByzantineValidators) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ByzantineValidators[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + { + size, err := m.LocalLastCommit.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if len(m.Txs) > 0 { + for iNdEx := len(m.Txs) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Txs[iNdEx]) + copy(dAtA[i:], m.Txs[iNdEx]) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Txs[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if m.MaxTxBytes != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.MaxTxBytes)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *RequestProcessProposal) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RequestProcessProposal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestProcessProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.ProposerAddress) > 0 { + i -= len(m.ProposerAddress) + copy(dAtA[i:], m.ProposerAddress) + i = encodeVarintTypes(dAtA, i, uint64(len(m.ProposerAddress))) + i-- + dAtA[i] = 0x42 + } + if len(m.NextValidatorsHash) > 0 { + i -= len(m.NextValidatorsHash) + copy(dAtA[i:], m.NextValidatorsHash) + i = encodeVarintTypes(dAtA, i, uint64(len(m.NextValidatorsHash))) + i-- + dAtA[i] = 0x3a + } + n22, err22 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):]) + if err22 != nil { + return 0, err22 + } + i -= n22 + i = encodeVarintTypes(dAtA, i, uint64(n22)) + i-- + dAtA[i] = 0x32 + if m.Height != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Height)) + i-- + dAtA[i] = 0x28 + } + if len(m.Hash) > 0 { + i -= len(m.Hash) + copy(dAtA[i:], m.Hash) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash))) + i-- + dAtA[i] = 0x22 + } + if len(m.ByzantineValidators) > 0 { + for iNdEx := len(m.ByzantineValidators) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ByzantineValidators[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + { + size, err := m.ProposedLastCommit.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.Txs) > 0 { + for iNdEx := len(m.Txs) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Txs[iNdEx]) + copy(dAtA[i:], m.Txs[iNdEx]) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Txs[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *RequestExtendVote) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RequestExtendVote) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestExtendVote) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Height != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Height)) + i-- + dAtA[i] = 0x10 + } + if len(m.Hash) > 0 { + i -= len(m.Hash) + copy(dAtA[i:], m.Hash) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RequestVerifyVoteExtension) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RequestVerifyVoteExtension) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestVerifyVoteExtension) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.VoteExtension) > 0 { + i -= len(m.VoteExtension) + copy(dAtA[i:], m.VoteExtension) + i = encodeVarintTypes(dAtA, i, uint64(len(m.VoteExtension))) + i-- + dAtA[i] = 0x22 + } + if m.Height != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Height)) + i-- + dAtA[i] = 0x18 + } + if len(m.ValidatorAddress) > 0 { + i -= len(m.ValidatorAddress) + copy(dAtA[i:], m.ValidatorAddress) + i = encodeVarintTypes(dAtA, i, uint64(len(m.ValidatorAddress))) + i-- + dAtA[i] = 0x12 + } + if len(m.Hash) > 0 { + i -= len(m.Hash) + copy(dAtA[i:], m.Hash) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RequestFinalizeBlock) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RequestFinalizeBlock) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestFinalizeBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.ProposerAddress) > 0 { + i -= len(m.ProposerAddress) + copy(dAtA[i:], m.ProposerAddress) + i = encodeVarintTypes(dAtA, i, uint64(len(m.ProposerAddress))) + i-- + dAtA[i] = 0x42 + } + if len(m.NextValidatorsHash) > 0 { + i -= len(m.NextValidatorsHash) + copy(dAtA[i:], m.NextValidatorsHash) + i = encodeVarintTypes(dAtA, i, uint64(len(m.NextValidatorsHash))) + i-- + dAtA[i] = 0x3a + } + n24, err24 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):]) + if err24 != nil { + return 0, err24 + } + i -= n24 + i = encodeVarintTypes(dAtA, i, uint64(n24)) + i-- + dAtA[i] = 0x32 + if m.Height != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Height)) + i-- + dAtA[i] = 0x28 + } + if len(m.Hash) > 0 { + i -= len(m.Hash) + copy(dAtA[i:], m.Hash) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash))) + i-- + dAtA[i] = 0x22 + } + if len(m.ByzantineValidators) > 0 { + for iNdEx := len(m.ByzantineValidators) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ByzantineValidators[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + { + size, err := m.DecidedLastCommit.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.Txs) > 0 { + for iNdEx := len(m.Txs) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Txs[iNdEx]) + copy(dAtA[i:], m.Txs[iNdEx]) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Txs[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *Response) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Response) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Value != nil { + { + size := m.Value.Size() + i -= size + if _, err := m.Value.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *Response_Exception) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response_Exception) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Exception != nil { + { + size, err := m.Exception.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *Response_Echo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response_Echo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Echo != nil { + { + size, err := m.Echo.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *Response_Flush) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response_Flush) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Flush != nil { + { + size, err := m.Flush.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *Response_Info) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response_Info) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Info != nil { + { + size, err := m.Info.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *Response_InitChain) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response_InitChain) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.InitChain != nil { + { + size, err := m.InitChain.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + return len(dAtA) - i, nil +} +func (m *Response_Query) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response_Query) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Query != nil { + { + size, err := m.Query.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + return len(dAtA) - i, nil +} +func (m *Response_CheckTx) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response_CheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.CheckTx != nil { + { + size, err := m.CheckTx.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + return len(dAtA) - i, nil +} +func (m *Response_Commit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response_Commit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Commit != nil { + { + size, err := m.Commit.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x5a + } + return len(dAtA) - i, nil +} +func (m *Response_ListSnapshots) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response_ListSnapshots) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ListSnapshots != nil { + { + size, err := m.ListSnapshots.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x62 + } + return len(dAtA) - i, nil +} +func (m *Response_OfferSnapshot) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response_OfferSnapshot) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.OfferSnapshot != nil { + { + size, err := m.OfferSnapshot.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x6a + } + return len(dAtA) - i, nil +} +func (m *Response_LoadSnapshotChunk) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response_LoadSnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.LoadSnapshotChunk != nil { + { + size, err := m.LoadSnapshotChunk.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 + } + return len(dAtA) - i, nil +} +func (m *Response_ApplySnapshotChunk) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response_ApplySnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ApplySnapshotChunk != nil { + { + size, err := m.ApplySnapshotChunk.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a + } + return len(dAtA) - i, nil +} +func (m *Response_PrepareProposal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response_PrepareProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.PrepareProposal != nil { + { + size, err := m.PrepareProposal.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + return len(dAtA) - i, nil +} +func (m *Response_ProcessProposal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response_ProcessProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ProcessProposal != nil { + { + size, err := m.ProcessProposal.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } + return len(dAtA) - i, nil +} +func (m *Response_ExtendVote) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response_ExtendVote) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ExtendVote != nil { + { + size, err := m.ExtendVote.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 + } + return len(dAtA) - i, nil +} +func (m *Response_VerifyVoteExtension) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response_VerifyVoteExtension) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.VerifyVoteExtension != nil { + { + size, err := m.VerifyVoteExtension.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x9a + } + return len(dAtA) - i, nil +} +func (m *Response_FinalizeBlock) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response_FinalizeBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.FinalizeBlock != nil { + { + size, err := m.FinalizeBlock.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa2 + } + return len(dAtA) - i, nil +} +func (m *ResponseException) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResponseException) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseException) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Error) > 0 { + i -= len(m.Error) + copy(dAtA[i:], m.Error) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Error))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ResponseEcho) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResponseEcho) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseEcho) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Message) > 0 { + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ResponseFlush) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResponseFlush) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseFlush) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *ResponseInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResponseInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.LastBlockAppHash) > 0 { + i -= len(m.LastBlockAppHash) + copy(dAtA[i:], m.LastBlockAppHash) + i = encodeVarintTypes(dAtA, i, uint64(len(m.LastBlockAppHash))) + i-- + dAtA[i] = 0x2a + } + if m.LastBlockHeight != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.LastBlockHeight)) + i-- + dAtA[i] = 0x20 + } + if m.AppVersion != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.AppVersion)) + i-- + dAtA[i] = 0x18 + } + if len(m.Version) > 0 { + i -= len(m.Version) + copy(dAtA[i:], m.Version) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Version))) + i-- + dAtA[i] = 0x12 + } + if len(m.Data) > 0 { + i -= len(m.Data) + copy(dAtA[i:], m.Data) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Data))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ResponseInitChain) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResponseInitChain) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseInitChain) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.AppHash) > 0 { + i -= len(m.AppHash) + copy(dAtA[i:], m.AppHash) + i = encodeVarintTypes(dAtA, i, uint64(len(m.AppHash))) + i-- + dAtA[i] = 0x1a + } + if len(m.Validators) > 0 { + for iNdEx := len(m.Validators) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Validators[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if m.ConsensusParams != nil { + { + size, err := m.ConsensusParams.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ResponseQuery) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResponseQuery) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Codespace) > 0 { + i -= len(m.Codespace) + copy(dAtA[i:], m.Codespace) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Codespace))) + i-- + dAtA[i] = 0x52 + } + if m.Height != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Height)) + i-- + dAtA[i] = 0x48 + } + if m.ProofOps != nil { + { + size, err := m.ProofOps.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + if len(m.Value) > 0 { + i -= len(m.Value) + copy(dAtA[i:], m.Value) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Value))) + i-- + dAtA[i] = 0x3a + } + if len(m.Key) > 0 { + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0x32 + } + if m.Index != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Index)) + i-- + dAtA[i] = 0x28 + } + if len(m.Info) > 0 { + i -= len(m.Info) + copy(dAtA[i:], m.Info) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Info))) + i-- + dAtA[i] = 0x22 + } + if len(m.Log) > 0 { + i -= len(m.Log) + copy(dAtA[i:], m.Log) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Log))) + i-- + dAtA[i] = 0x1a + } + if m.Code != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Code)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ResponseCheckTx) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResponseCheckTx) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseCheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Priority != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Priority)) + i-- + dAtA[i] = 0x50 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0x4a + } + if len(m.Codespace) > 0 { + i -= len(m.Codespace) + copy(dAtA[i:], m.Codespace) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Codespace))) + i-- + dAtA[i] = 0x42 + } + if m.GasWanted != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.GasWanted)) + i-- + dAtA[i] = 0x28 + } + if len(m.Data) > 0 { + i -= len(m.Data) + copy(dAtA[i:], m.Data) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Data))) + i-- + dAtA[i] = 0x12 + } + if m.Code != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Code)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ResponseDeliverTx) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResponseDeliverTx) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseDeliverTx) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Codespace) > 0 { + i -= len(m.Codespace) + copy(dAtA[i:], m.Codespace) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Codespace))) + i-- + dAtA[i] = 0x42 + } + if len(m.Events) > 0 { + for iNdEx := len(m.Events) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Events[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + } + if m.GasUsed != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.GasUsed)) + i-- + dAtA[i] = 0x30 + } + if m.GasWanted != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.GasWanted)) + i-- + dAtA[i] = 0x28 + } + if len(m.Info) > 0 { + i -= len(m.Info) + copy(dAtA[i:], m.Info) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Info))) + i-- + dAtA[i] = 0x22 + } + if len(m.Log) > 0 { + i -= len(m.Log) + copy(dAtA[i:], m.Log) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Log))) + i-- + dAtA[i] = 0x1a + } + if len(m.Data) > 0 { + i -= len(m.Data) + copy(dAtA[i:], m.Data) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Data))) + i-- + dAtA[i] = 0x12 + } + if m.Code != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Code)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ResponseCommit) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResponseCommit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseCommit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.RetainHeight != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.RetainHeight)) + i-- + dAtA[i] = 0x18 + } + return len(dAtA) - i, nil +} + +func (m *ResponseListSnapshots) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResponseListSnapshots) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseListSnapshots) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Snapshots) > 0 { + for iNdEx := len(m.Snapshots) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Snapshots[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ResponseOfferSnapshot) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResponseOfferSnapshot) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseOfferSnapshot) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Result != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Result)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ResponseLoadSnapshotChunk) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResponseLoadSnapshotChunk) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseLoadSnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Chunk) > 0 { + i -= len(m.Chunk) + copy(dAtA[i:], m.Chunk) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Chunk))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ResponseApplySnapshotChunk) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResponseApplySnapshotChunk) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseApplySnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.RejectSenders) > 0 { + for iNdEx := len(m.RejectSenders) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RejectSenders[iNdEx]) + copy(dAtA[i:], m.RejectSenders[iNdEx]) + i = encodeVarintTypes(dAtA, i, uint64(len(m.RejectSenders[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if len(m.RefetchChunks) > 0 { + dAtA46 := make([]byte, len(m.RefetchChunks)*10) + var j45 int + for _, num := range m.RefetchChunks { + for num >= 1<<7 { + dAtA46[j45] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j45++ + } + dAtA46[j45] = uint8(num) + j45++ + } + i -= j45 + copy(dAtA[i:], dAtA46[:j45]) + i = encodeVarintTypes(dAtA, i, uint64(j45)) + i-- + dAtA[i] = 0x12 + } + if m.Result != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Result)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ResponsePrepareProposal) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResponsePrepareProposal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponsePrepareProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ConsensusParamUpdates != nil { + { + size, err := m.ConsensusParamUpdates.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if len(m.ValidatorUpdates) > 0 { + for iNdEx := len(m.ValidatorUpdates) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ValidatorUpdates[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + if len(m.TxResults) > 0 { + for iNdEx := len(m.TxResults) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.TxResults[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.AppHash) > 0 { + i -= len(m.AppHash) + copy(dAtA[i:], m.AppHash) + i = encodeVarintTypes(dAtA, i, uint64(len(m.AppHash))) + i-- + dAtA[i] = 0x12 + } + if len(m.TxRecords) > 0 { + for iNdEx := len(m.TxRecords) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.TxRecords[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ResponseProcessProposal) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResponseProcessProposal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseProcessProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ConsensusParamUpdates != nil { + { + size, err := m.ConsensusParamUpdates.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if len(m.ValidatorUpdates) > 0 { + for iNdEx := len(m.ValidatorUpdates) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ValidatorUpdates[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + if len(m.TxResults) > 0 { + for iNdEx := len(m.TxResults) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.TxResults[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.AppHash) > 0 { + i -= len(m.AppHash) + copy(dAtA[i:], m.AppHash) + i = encodeVarintTypes(dAtA, i, uint64(len(m.AppHash))) + i-- + dAtA[i] = 0x12 + } + if m.Status != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Status)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ResponseExtendVote) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResponseExtendVote) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseExtendVote) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.VoteExtension) > 0 { + i -= len(m.VoteExtension) + copy(dAtA[i:], m.VoteExtension) + i = encodeVarintTypes(dAtA, i, uint64(len(m.VoteExtension))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ResponseVerifyVoteExtension) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResponseVerifyVoteExtension) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseVerifyVoteExtension) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Status != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Status)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ResponseFinalizeBlock) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResponseFinalizeBlock) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseFinalizeBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.AppHash) > 0 { + i -= len(m.AppHash) + copy(dAtA[i:], m.AppHash) + i = encodeVarintTypes(dAtA, i, uint64(len(m.AppHash))) + i-- + dAtA[i] = 0x2a + } + if m.ConsensusParamUpdates != nil { + { + size, err := m.ConsensusParamUpdates.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if len(m.ValidatorUpdates) > 0 { + for iNdEx := len(m.ValidatorUpdates) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ValidatorUpdates[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.TxResults) > 0 { + for iNdEx := len(m.TxResults) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.TxResults[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if len(m.Events) > 0 { + for iNdEx := len(m.Events) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Events[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *CommitInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CommitInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CommitInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Votes) > 0 { + for iNdEx := len(m.Votes) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Votes[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if m.Round != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Round)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ExtendedCommitInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExtendedCommitInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ExtendedCommitInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Votes) > 0 { + for iNdEx := len(m.Votes) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Votes[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if m.Round != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Round)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Event) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Event) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Event) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Attributes) > 0 { + for iNdEx := len(m.Attributes) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Attributes[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if len(m.Type) > 0 { + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventAttribute) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EventAttribute) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventAttribute) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Index { + i-- + if m.Index { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if len(m.Value) > 0 { + i -= len(m.Value) + copy(dAtA[i:], m.Value) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Value))) + i-- + dAtA[i] = 0x12 + } + if len(m.Key) > 0 { + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ExecTxResult) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExecTxResult) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ExecTxResult) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Codespace) > 0 { + i -= len(m.Codespace) + copy(dAtA[i:], m.Codespace) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Codespace))) + i-- + dAtA[i] = 0x42 + } + if len(m.Events) > 0 { + for iNdEx := len(m.Events) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Events[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + } + if m.GasUsed != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.GasUsed)) + i-- + dAtA[i] = 0x30 + } + if m.GasWanted != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.GasWanted)) + i-- + dAtA[i] = 0x28 + } + if len(m.Info) > 0 { + i -= len(m.Info) + copy(dAtA[i:], m.Info) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Info))) + i-- + dAtA[i] = 0x22 + } + if len(m.Log) > 0 { + i -= len(m.Log) + copy(dAtA[i:], m.Log) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Log))) + i-- + dAtA[i] = 0x1a + } + if len(m.Data) > 0 { + i -= len(m.Data) + copy(dAtA[i:], m.Data) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Data))) + i-- + dAtA[i] = 0x12 + } + if m.Code != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Code)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *TxResult) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TxResult) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TxResult) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Result.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + if len(m.Tx) > 0 { + i -= len(m.Tx) + copy(dAtA[i:], m.Tx) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Tx))) + i-- + dAtA[i] = 0x1a + } + if m.Index != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Index)) + i-- + dAtA[i] = 0x10 + } + if m.Height != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Height)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *TxRecord) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TxRecord) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TxRecord) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Tx) > 0 { + i -= len(m.Tx) + copy(dAtA[i:], m.Tx) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Tx))) + i-- + dAtA[i] = 0x12 + } + if m.Action != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Action)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Validator) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Validator) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Validator) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Power != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Power)) + i-- + dAtA[i] = 0x18 + } + if len(m.Address) > 0 { + i -= len(m.Address) + copy(dAtA[i:], m.Address) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Address))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ValidatorUpdate) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ValidatorUpdate) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ValidatorUpdate) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Power != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Power)) + i-- + dAtA[i] = 0x10 + } + { + size, err := m.PubKey.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *VoteInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *VoteInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *VoteInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.SignedLastBlock { + i-- + if m.SignedLastBlock { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + { + size, err := m.Validator.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ExtendedVoteInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExtendedVoteInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ExtendedVoteInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.VoteExtension) > 0 { + i -= len(m.VoteExtension) + copy(dAtA[i:], m.VoteExtension) + i = encodeVarintTypes(dAtA, i, uint64(len(m.VoteExtension))) + i-- + dAtA[i] = 0x1a + } + if m.SignedLastBlock { + i-- + if m.SignedLastBlock { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + { + size, err := m.Validator.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Misbehavior) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Misbehavior) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Misbehavior) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.TotalVotingPower != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.TotalVotingPower)) + i-- + dAtA[i] = 0x28 + } + n54, err54 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):]) + if err54 != nil { + return 0, err54 + } + i -= n54 + i = encodeVarintTypes(dAtA, i, uint64(n54)) + i-- + dAtA[i] = 0x22 + if m.Height != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Height)) + i-- + dAtA[i] = 0x18 + } + { + size, err := m.Validator.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if m.Type != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Type)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Snapshot) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Snapshot) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Snapshot) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Metadata) > 0 { + i -= len(m.Metadata) + copy(dAtA[i:], m.Metadata) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Metadata))) + i-- + dAtA[i] = 0x2a + } + if len(m.Hash) > 0 { + i -= len(m.Hash) + copy(dAtA[i:], m.Hash) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash))) + i-- + dAtA[i] = 0x22 + } + if m.Chunks != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Chunks)) + i-- + dAtA[i] = 0x18 + } + if m.Format != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Format)) + i-- + dAtA[i] = 0x10 + } + if m.Height != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Height)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func encodeVarintTypes(dAtA []byte, offset int, v uint64) int { + offset -= sovTypes(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Request) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Value != nil { + n += m.Value.Size() + } + return n +} + +func (m *Request_Echo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Echo != nil { + l = m.Echo.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Request_Flush) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Flush != nil { + l = m.Flush.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Request_Info) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Info != nil { + l = m.Info.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Request_InitChain) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.InitChain != nil { + l = m.InitChain.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Request_Query) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Query != nil { + l = m.Query.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Request_CheckTx) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.CheckTx != nil { + l = m.CheckTx.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Request_Commit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Commit != nil { + l = m.Commit.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Request_ListSnapshots) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ListSnapshots != nil { + l = m.ListSnapshots.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Request_OfferSnapshot) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.OfferSnapshot != nil { + l = m.OfferSnapshot.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Request_LoadSnapshotChunk) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.LoadSnapshotChunk != nil { + l = m.LoadSnapshotChunk.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Request_ApplySnapshotChunk) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ApplySnapshotChunk != nil { + l = m.ApplySnapshotChunk.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Request_PrepareProposal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PrepareProposal != nil { + l = m.PrepareProposal.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Request_ProcessProposal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ProcessProposal != nil { + l = m.ProcessProposal.Size() + n += 2 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Request_ExtendVote) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ExtendVote != nil { + l = m.ExtendVote.Size() + n += 2 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Request_VerifyVoteExtension) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.VerifyVoteExtension != nil { + l = m.VerifyVoteExtension.Size() + n += 2 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Request_FinalizeBlock) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.FinalizeBlock != nil { + l = m.FinalizeBlock.Size() + n += 2 + l + sovTypes(uint64(l)) + } + return n +} +func (m *RequestEcho) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Message) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *RequestFlush) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *RequestInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Version) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.BlockVersion != 0 { + n += 1 + sovTypes(uint64(m.BlockVersion)) + } + if m.P2PVersion != 0 { + n += 1 + sovTypes(uint64(m.P2PVersion)) + } + l = len(m.AbciVersion) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *RequestInitChain) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Time) + n += 1 + l + sovTypes(uint64(l)) + l = len(m.ChainId) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.ConsensusParams != nil { + l = m.ConsensusParams.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if len(m.Validators) > 0 { + for _, e := range m.Validators { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + l = len(m.AppStateBytes) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.InitialHeight != 0 { + n += 1 + sovTypes(uint64(m.InitialHeight)) + } + return n +} + +func (m *RequestQuery) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Data) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.Path) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.Height != 0 { + n += 1 + sovTypes(uint64(m.Height)) + } + if m.Prove { + n += 2 + } + return n +} + +func (m *RequestCheckTx) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Tx) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.Type != 0 { + n += 1 + sovTypes(uint64(m.Type)) + } + return n +} + +func (m *RequestCommit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *RequestListSnapshots) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *RequestOfferSnapshot) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Snapshot != nil { + l = m.Snapshot.Size() + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.AppHash) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *RequestLoadSnapshotChunk) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Height != 0 { + n += 1 + sovTypes(uint64(m.Height)) + } + if m.Format != 0 { + n += 1 + sovTypes(uint64(m.Format)) + } + if m.Chunk != 0 { + n += 1 + sovTypes(uint64(m.Chunk)) + } + return n +} + +func (m *RequestApplySnapshotChunk) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Index != 0 { + n += 1 + sovTypes(uint64(m.Index)) + } + l = len(m.Chunk) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *RequestPrepareProposal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.MaxTxBytes != 0 { + n += 1 + sovTypes(uint64(m.MaxTxBytes)) + } + if len(m.Txs) > 0 { + for _, b := range m.Txs { + l = len(b) + n += 1 + l + sovTypes(uint64(l)) + } + } + l = m.LocalLastCommit.Size() + n += 1 + l + sovTypes(uint64(l)) + if len(m.ByzantineValidators) > 0 { + for _, e := range m.ByzantineValidators { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if m.Height != 0 { + n += 1 + sovTypes(uint64(m.Height)) + } + l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Time) + n += 1 + l + sovTypes(uint64(l)) + l = len(m.NextValidatorsHash) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.ProposerAddress) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *RequestProcessProposal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Txs) > 0 { + for _, b := range m.Txs { + l = len(b) + n += 1 + l + sovTypes(uint64(l)) + } + } + l = m.ProposedLastCommit.Size() + n += 1 + l + sovTypes(uint64(l)) + if len(m.ByzantineValidators) > 0 { + for _, e := range m.ByzantineValidators { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + l = len(m.Hash) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.Height != 0 { + n += 1 + sovTypes(uint64(m.Height)) + } + l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Time) + n += 1 + l + sovTypes(uint64(l)) + l = len(m.NextValidatorsHash) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.ProposerAddress) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *RequestExtendVote) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Hash) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.Height != 0 { + n += 1 + sovTypes(uint64(m.Height)) + } + return n +} + +func (m *RequestVerifyVoteExtension) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Hash) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.ValidatorAddress) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.Height != 0 { + n += 1 + sovTypes(uint64(m.Height)) + } + l = len(m.VoteExtension) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *RequestFinalizeBlock) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Txs) > 0 { + for _, b := range m.Txs { + l = len(b) + n += 1 + l + sovTypes(uint64(l)) + } + } + l = m.DecidedLastCommit.Size() + n += 1 + l + sovTypes(uint64(l)) + if len(m.ByzantineValidators) > 0 { + for _, e := range m.ByzantineValidators { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + l = len(m.Hash) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.Height != 0 { + n += 1 + sovTypes(uint64(m.Height)) + } + l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Time) + n += 1 + l + sovTypes(uint64(l)) + l = len(m.NextValidatorsHash) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.ProposerAddress) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *Response) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Value != nil { + n += m.Value.Size() + } + return n +} + +func (m *Response_Exception) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Exception != nil { + l = m.Exception.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Response_Echo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Echo != nil { + l = m.Echo.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Response_Flush) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Flush != nil { + l = m.Flush.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Response_Info) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Info != nil { + l = m.Info.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Response_InitChain) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.InitChain != nil { + l = m.InitChain.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Response_Query) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Query != nil { + l = m.Query.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Response_CheckTx) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.CheckTx != nil { + l = m.CheckTx.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Response_Commit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Commit != nil { + l = m.Commit.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Response_ListSnapshots) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ListSnapshots != nil { + l = m.ListSnapshots.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Response_OfferSnapshot) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.OfferSnapshot != nil { + l = m.OfferSnapshot.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Response_LoadSnapshotChunk) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.LoadSnapshotChunk != nil { + l = m.LoadSnapshotChunk.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Response_ApplySnapshotChunk) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ApplySnapshotChunk != nil { + l = m.ApplySnapshotChunk.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Response_PrepareProposal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PrepareProposal != nil { + l = m.PrepareProposal.Size() + n += 2 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Response_ProcessProposal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ProcessProposal != nil { + l = m.ProcessProposal.Size() + n += 2 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Response_ExtendVote) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ExtendVote != nil { + l = m.ExtendVote.Size() + n += 2 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Response_VerifyVoteExtension) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.VerifyVoteExtension != nil { + l = m.VerifyVoteExtension.Size() + n += 2 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Response_FinalizeBlock) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.FinalizeBlock != nil { + l = m.FinalizeBlock.Size() + n += 2 + l + sovTypes(uint64(l)) + } + return n +} +func (m *ResponseException) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Error) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *ResponseEcho) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Message) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *ResponseFlush) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *ResponseInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Data) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.Version) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.AppVersion != 0 { + n += 1 + sovTypes(uint64(m.AppVersion)) + } + if m.LastBlockHeight != 0 { + n += 1 + sovTypes(uint64(m.LastBlockHeight)) + } + l = len(m.LastBlockAppHash) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *ResponseInitChain) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ConsensusParams != nil { + l = m.ConsensusParams.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if len(m.Validators) > 0 { + for _, e := range m.Validators { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + l = len(m.AppHash) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *ResponseQuery) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Code != 0 { + n += 1 + sovTypes(uint64(m.Code)) + } + l = len(m.Log) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.Info) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.Index != 0 { + n += 1 + sovTypes(uint64(m.Index)) + } + l = len(m.Key) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.Value) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.ProofOps != nil { + l = m.ProofOps.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if m.Height != 0 { + n += 1 + sovTypes(uint64(m.Height)) + } + l = len(m.Codespace) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *ResponseCheckTx) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Code != 0 { + n += 1 + sovTypes(uint64(m.Code)) + } + l = len(m.Data) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.GasWanted != 0 { + n += 1 + sovTypes(uint64(m.GasWanted)) + } + l = len(m.Codespace) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.Priority != 0 { + n += 1 + sovTypes(uint64(m.Priority)) + } + return n +} + +func (m *ResponseDeliverTx) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Code != 0 { + n += 1 + sovTypes(uint64(m.Code)) + } + l = len(m.Data) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.Log) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.Info) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.GasWanted != 0 { + n += 1 + sovTypes(uint64(m.GasWanted)) + } + if m.GasUsed != 0 { + n += 1 + sovTypes(uint64(m.GasUsed)) + } + if len(m.Events) > 0 { + for _, e := range m.Events { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + l = len(m.Codespace) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *ResponseCommit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.RetainHeight != 0 { + n += 1 + sovTypes(uint64(m.RetainHeight)) + } + return n +} + +func (m *ResponseListSnapshots) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Snapshots) > 0 { + for _, e := range m.Snapshots { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *ResponseOfferSnapshot) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Result != 0 { + n += 1 + sovTypes(uint64(m.Result)) + } + return n +} + +func (m *ResponseLoadSnapshotChunk) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Chunk) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *ResponseApplySnapshotChunk) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Result != 0 { + n += 1 + sovTypes(uint64(m.Result)) + } + if len(m.RefetchChunks) > 0 { + l = 0 + for _, e := range m.RefetchChunks { + l += sovTypes(uint64(e)) + } + n += 1 + sovTypes(uint64(l)) + l + } + if len(m.RejectSenders) > 0 { + for _, s := range m.RejectSenders { + l = len(s) + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *ResponsePrepareProposal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.TxRecords) > 0 { + for _, e := range m.TxRecords { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + l = len(m.AppHash) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if len(m.TxResults) > 0 { + for _, e := range m.TxResults { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.ValidatorUpdates) > 0 { + for _, e := range m.ValidatorUpdates { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if m.ConsensusParamUpdates != nil { + l = m.ConsensusParamUpdates.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *ResponseProcessProposal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Status != 0 { + n += 1 + sovTypes(uint64(m.Status)) + } + l = len(m.AppHash) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if len(m.TxResults) > 0 { + for _, e := range m.TxResults { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.ValidatorUpdates) > 0 { + for _, e := range m.ValidatorUpdates { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if m.ConsensusParamUpdates != nil { + l = m.ConsensusParamUpdates.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *ResponseExtendVote) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.VoteExtension) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *ResponseVerifyVoteExtension) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Status != 0 { + n += 1 + sovTypes(uint64(m.Status)) + } + return n +} + +func (m *ResponseFinalizeBlock) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Events) > 0 { + for _, e := range m.Events { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.TxResults) > 0 { + for _, e := range m.TxResults { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.ValidatorUpdates) > 0 { + for _, e := range m.ValidatorUpdates { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if m.ConsensusParamUpdates != nil { + l = m.ConsensusParamUpdates.Size() + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.AppHash) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *CommitInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Round != 0 { + n += 1 + sovTypes(uint64(m.Round)) + } + if len(m.Votes) > 0 { + for _, e := range m.Votes { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *ExtendedCommitInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Round != 0 { + n += 1 + sovTypes(uint64(m.Round)) + } + if len(m.Votes) > 0 { + for _, e := range m.Votes { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *Event) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if len(m.Attributes) > 0 { + for _, e := range m.Attributes { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *EventAttribute) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Key) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.Value) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.Index { + n += 2 + } + return n +} + +func (m *ExecTxResult) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Code != 0 { + n += 1 + sovTypes(uint64(m.Code)) + } + l = len(m.Data) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.Log) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.Info) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.GasWanted != 0 { + n += 1 + sovTypes(uint64(m.GasWanted)) + } + if m.GasUsed != 0 { + n += 1 + sovTypes(uint64(m.GasUsed)) + } + if len(m.Events) > 0 { + for _, e := range m.Events { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + l = len(m.Codespace) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *TxResult) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Height != 0 { + n += 1 + sovTypes(uint64(m.Height)) + } + if m.Index != 0 { + n += 1 + sovTypes(uint64(m.Index)) + } + l = len(m.Tx) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = m.Result.Size() + n += 1 + l + sovTypes(uint64(l)) + return n +} + +func (m *TxRecord) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Action != 0 { + n += 1 + sovTypes(uint64(m.Action)) + } + l = len(m.Tx) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *Validator) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Address) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.Power != 0 { + n += 1 + sovTypes(uint64(m.Power)) + } + return n +} + +func (m *ValidatorUpdate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.PubKey.Size() + n += 1 + l + sovTypes(uint64(l)) + if m.Power != 0 { + n += 1 + sovTypes(uint64(m.Power)) + } + return n +} + +func (m *VoteInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Validator.Size() + n += 1 + l + sovTypes(uint64(l)) + if m.SignedLastBlock { + n += 2 + } + return n +} + +func (m *ExtendedVoteInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Validator.Size() + n += 1 + l + sovTypes(uint64(l)) + if m.SignedLastBlock { + n += 2 + } + l = len(m.VoteExtension) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *Misbehavior) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Type != 0 { + n += 1 + sovTypes(uint64(m.Type)) + } + l = m.Validator.Size() + n += 1 + l + sovTypes(uint64(l)) + if m.Height != 0 { + n += 1 + sovTypes(uint64(m.Height)) + } + l = github_com_gogo_protobuf_types.SizeOfStdTime(m.Time) + n += 1 + l + sovTypes(uint64(l)) + if m.TotalVotingPower != 0 { + n += 1 + sovTypes(uint64(m.TotalVotingPower)) + } + return n +} + +func (m *Snapshot) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Height != 0 { + n += 1 + sovTypes(uint64(m.Height)) + } + if m.Format != 0 { + n += 1 + sovTypes(uint64(m.Format)) + } + if m.Chunks != 0 { + n += 1 + sovTypes(uint64(m.Chunks)) + } + l = len(m.Hash) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.Metadata) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func sovTypes(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozTypes(x uint64) (n int) { + return sovTypes(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Request) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Request: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Echo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &RequestEcho{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Request_Echo{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Flush", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &RequestFlush{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Request_Flush{v} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &RequestInfo{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Request_Info{v} + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InitChain", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &RequestInitChain{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Request_InitChain{v} + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &RequestQuery{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Request_Query{v} + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CheckTx", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &RequestCheckTx{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Request_CheckTx{v} + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Commit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &RequestCommit{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Request_Commit{v} + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListSnapshots", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &RequestListSnapshots{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Request_ListSnapshots{v} + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OfferSnapshot", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &RequestOfferSnapshot{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Request_OfferSnapshot{v} + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LoadSnapshotChunk", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &RequestLoadSnapshotChunk{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Request_LoadSnapshotChunk{v} + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ApplySnapshotChunk", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &RequestApplySnapshotChunk{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Request_ApplySnapshotChunk{v} + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PrepareProposal", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &RequestPrepareProposal{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Request_PrepareProposal{v} + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProcessProposal", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &RequestProcessProposal{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Request_ProcessProposal{v} + iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExtendVote", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &RequestExtendVote{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Request_ExtendVote{v} + iNdEx = postIndex + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VerifyVoteExtension", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &RequestVerifyVoteExtension{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Request_VerifyVoteExtension{v} + iNdEx = postIndex + case 19: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FinalizeBlock", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &RequestFinalizeBlock{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Request_FinalizeBlock{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RequestEcho) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RequestEcho: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestEcho: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RequestFlush) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RequestFlush: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestFlush: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RequestInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RequestInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Version = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BlockVersion", wireType) + } + m.BlockVersion = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BlockVersion |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field P2PVersion", wireType) + } + m.P2PVersion = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.P2PVersion |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AbciVersion", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AbciVersion = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RequestInitChain) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RequestInitChain: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestInitChain: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Time, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChainId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChainId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParams", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ConsensusParams == nil { + m.ConsensusParams = &types1.ConsensusParams{} + } + if err := m.ConsensusParams.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Validators", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Validators = append(m.Validators, ValidatorUpdate{}) + if err := m.Validators[len(m.Validators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AppStateBytes", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AppStateBytes = append(m.AppStateBytes[:0], dAtA[iNdEx:postIndex]...) + if m.AppStateBytes == nil { + m.AppStateBytes = []byte{} + } + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field InitialHeight", wireType) + } + m.InitialHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.InitialHeight |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RequestQuery) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RequestQuery: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestQuery: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) + if m.Data == nil { + m.Data = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Path = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + m.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Height |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Prove", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Prove = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RequestCheckTx) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RequestCheckTx: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestCheckTx: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Tx = append(m.Tx[:0], dAtA[iNdEx:postIndex]...) + if m.Tx == nil { + m.Tx = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + m.Type = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Type |= CheckTxType(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RequestCommit) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RequestCommit: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestCommit: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RequestListSnapshots) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RequestListSnapshots: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestListSnapshots: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RequestOfferSnapshot) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RequestOfferSnapshot: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestOfferSnapshot: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Snapshot", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Snapshot == nil { + m.Snapshot = &Snapshot{} + } + if err := m.Snapshot.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AppHash = append(m.AppHash[:0], dAtA[iNdEx:postIndex]...) + if m.AppHash == nil { + m.AppHash = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RequestLoadSnapshotChunk) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RequestLoadSnapshotChunk: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestLoadSnapshotChunk: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + m.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Height |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Format", wireType) + } + m.Format = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Format |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Chunk", wireType) + } + m.Chunk = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Chunk |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RequestApplySnapshotChunk) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RequestApplySnapshotChunk: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestApplySnapshotChunk: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType) + } + m.Index = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Index |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Chunk", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Chunk = append(m.Chunk[:0], dAtA[iNdEx:postIndex]...) + if m.Chunk == nil { + m.Chunk = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RequestPrepareProposal) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RequestPrepareProposal: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestPrepareProposal: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxTxBytes", wireType) + } + m.MaxTxBytes = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MaxTxBytes |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Txs", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Txs = append(m.Txs, make([]byte, postIndex-iNdEx)) + copy(m.Txs[len(m.Txs)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LocalLastCommit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LocalLastCommit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ByzantineValidators", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ByzantineValidators = append(m.ByzantineValidators, Misbehavior{}) + if err := m.ByzantineValidators[len(m.ByzantineValidators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + m.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Height |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Time, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextValidatorsHash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextValidatorsHash = append(m.NextValidatorsHash[:0], dAtA[iNdEx:postIndex]...) + if m.NextValidatorsHash == nil { + m.NextValidatorsHash = []byte{} + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposerAddress", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProposerAddress = append(m.ProposerAddress[:0], dAtA[iNdEx:postIndex]...) + if m.ProposerAddress == nil { + m.ProposerAddress = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RequestProcessProposal) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RequestProcessProposal: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestProcessProposal: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Txs", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Txs = append(m.Txs, make([]byte, postIndex-iNdEx)) + copy(m.Txs[len(m.Txs)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposedLastCommit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ProposedLastCommit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ByzantineValidators", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ByzantineValidators = append(m.ByzantineValidators, Misbehavior{}) + if err := m.ByzantineValidators[len(m.ByzantineValidators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...) + if m.Hash == nil { + m.Hash = []byte{} + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + m.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Height |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Time, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextValidatorsHash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextValidatorsHash = append(m.NextValidatorsHash[:0], dAtA[iNdEx:postIndex]...) + if m.NextValidatorsHash == nil { + m.NextValidatorsHash = []byte{} + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposerAddress", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProposerAddress = append(m.ProposerAddress[:0], dAtA[iNdEx:postIndex]...) + if m.ProposerAddress == nil { + m.ProposerAddress = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RequestExtendVote) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RequestExtendVote: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestExtendVote: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...) + if m.Hash == nil { + m.Hash = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + m.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Height |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RequestVerifyVoteExtension) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RequestVerifyVoteExtension: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestVerifyVoteExtension: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...) + if m.Hash == nil { + m.Hash = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorAddress", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ValidatorAddress = append(m.ValidatorAddress[:0], dAtA[iNdEx:postIndex]...) + if m.ValidatorAddress == nil { + m.ValidatorAddress = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + m.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Height |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VoteExtension", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.VoteExtension = append(m.VoteExtension[:0], dAtA[iNdEx:postIndex]...) + if m.VoteExtension == nil { + m.VoteExtension = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RequestFinalizeBlock) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RequestFinalizeBlock: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestFinalizeBlock: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Txs", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Txs = append(m.Txs, make([]byte, postIndex-iNdEx)) + copy(m.Txs[len(m.Txs)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DecidedLastCommit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.DecidedLastCommit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ByzantineValidators", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ByzantineValidators = append(m.ByzantineValidators, Misbehavior{}) + if err := m.ByzantineValidators[len(m.ByzantineValidators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...) + if m.Hash == nil { + m.Hash = []byte{} + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + m.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Height |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Time, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextValidatorsHash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextValidatorsHash = append(m.NextValidatorsHash[:0], dAtA[iNdEx:postIndex]...) + if m.NextValidatorsHash == nil { + m.NextValidatorsHash = []byte{} + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProposerAddress", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ProposerAddress = append(m.ProposerAddress[:0], dAtA[iNdEx:postIndex]...) + if m.ProposerAddress == nil { + m.ProposerAddress = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Response) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Response: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Exception", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ResponseException{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Response_Exception{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Echo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ResponseEcho{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Response_Echo{v} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Flush", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ResponseFlush{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Response_Flush{v} + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ResponseInfo{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Response_Info{v} + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InitChain", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ResponseInitChain{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Response_InitChain{v} + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ResponseQuery{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Response_Query{v} + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CheckTx", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ResponseCheckTx{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Response_CheckTx{v} + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Commit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ResponseCommit{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Response_Commit{v} + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListSnapshots", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ResponseListSnapshots{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Response_ListSnapshots{v} + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OfferSnapshot", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ResponseOfferSnapshot{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Response_OfferSnapshot{v} + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LoadSnapshotChunk", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ResponseLoadSnapshotChunk{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Response_LoadSnapshotChunk{v} + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ApplySnapshotChunk", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ResponseApplySnapshotChunk{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Response_ApplySnapshotChunk{v} + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PrepareProposal", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ResponsePrepareProposal{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Response_PrepareProposal{v} + iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProcessProposal", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ResponseProcessProposal{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Response_ProcessProposal{v} + iNdEx = postIndex + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExtendVote", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ResponseExtendVote{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Response_ExtendVote{v} + iNdEx = postIndex + case 19: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VerifyVoteExtension", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ResponseVerifyVoteExtension{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Response_VerifyVoteExtension{v} + iNdEx = postIndex + case 20: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FinalizeBlock", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ResponseFinalizeBlock{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Response_FinalizeBlock{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponseException) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResponseException: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseException: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Error = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponseEcho) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResponseEcho: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseEcho: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponseFlush) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResponseFlush: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseFlush: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponseInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResponseInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Data = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Version = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AppVersion", wireType) + } + m.AppVersion = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AppVersion |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LastBlockHeight", wireType) + } + m.LastBlockHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.LastBlockHeight |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastBlockAppHash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.LastBlockAppHash = append(m.LastBlockAppHash[:0], dAtA[iNdEx:postIndex]...) + if m.LastBlockAppHash == nil { + m.LastBlockAppHash = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponseInitChain) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResponseInitChain: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseInitChain: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParams", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ConsensusParams == nil { + m.ConsensusParams = &types1.ConsensusParams{} + } + if err := m.ConsensusParams.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Validators", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Validators = append(m.Validators, ValidatorUpdate{}) + if err := m.Validators[len(m.Validators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AppHash = append(m.AppHash[:0], dAtA[iNdEx:postIndex]...) + if m.AppHash == nil { + m.AppHash = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponseQuery) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResponseQuery: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseQuery: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) + } + m.Code = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Code |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Log", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Log = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Info = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType) + } + m.Index = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Index |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...) + if m.Key == nil { + m.Key = []byte{} + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = append(m.Value[:0], dAtA[iNdEx:postIndex]...) + if m.Value == nil { + m.Value = []byte{} + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProofOps", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProofOps == nil { + m.ProofOps = &crypto.ProofOps{} + } + if err := m.ProofOps.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + m.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Height |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Codespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Codespace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponseCheckTx) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResponseCheckTx: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseCheckTx: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) + } + m.Code = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Code |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) + if m.Data == nil { + m.Data = []byte{} + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field GasWanted", wireType) + } + m.GasWanted = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.GasWanted |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Codespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Codespace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Priority", wireType) + } + m.Priority = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Priority |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponseDeliverTx) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResponseDeliverTx: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseDeliverTx: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) + } + m.Code = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Code |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) + if m.Data == nil { + m.Data = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Log", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Log = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Info = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field GasWanted", wireType) + } + m.GasWanted = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.GasWanted |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field GasUsed", wireType) + } + m.GasUsed = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.GasUsed |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Events = append(m.Events, Event{}) + if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Codespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Codespace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponseCommit) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResponseCommit: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseCommit: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RetainHeight", wireType) + } + m.RetainHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RetainHeight |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponseListSnapshots) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResponseListSnapshots: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseListSnapshots: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Snapshots", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Snapshots = append(m.Snapshots, &Snapshot{}) + if err := m.Snapshots[len(m.Snapshots)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponseOfferSnapshot) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResponseOfferSnapshot: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseOfferSnapshot: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType) + } + m.Result = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Result |= ResponseOfferSnapshot_Result(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponseLoadSnapshotChunk) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResponseLoadSnapshotChunk: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseLoadSnapshotChunk: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Chunk", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Chunk = append(m.Chunk[:0], dAtA[iNdEx:postIndex]...) + if m.Chunk == nil { + m.Chunk = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponseApplySnapshotChunk) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResponseApplySnapshotChunk: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseApplySnapshotChunk: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType) + } + m.Result = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Result |= ResponseApplySnapshotChunk_Result(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.RefetchChunks = append(m.RefetchChunks, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.RefetchChunks) == 0 { + m.RefetchChunks = make([]uint32, 0, elementCount) + } + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.RefetchChunks = append(m.RefetchChunks, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field RefetchChunks", wireType) + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RejectSenders", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RejectSenders = append(m.RejectSenders, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponsePrepareProposal) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResponsePrepareProposal: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponsePrepareProposal: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TxRecords", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TxRecords = append(m.TxRecords, &TxRecord{}) + if err := m.TxRecords[len(m.TxRecords)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AppHash = append(m.AppHash[:0], dAtA[iNdEx:postIndex]...) + if m.AppHash == nil { + m.AppHash = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TxResults", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TxResults = append(m.TxResults, &ExecTxResult{}) + if err := m.TxResults[len(m.TxResults)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorUpdates", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ValidatorUpdates = append(m.ValidatorUpdates, &ValidatorUpdate{}) + if err := m.ValidatorUpdates[len(m.ValidatorUpdates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParamUpdates", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ConsensusParamUpdates == nil { + m.ConsensusParamUpdates = &types1.ConsensusParams{} + } + if err := m.ConsensusParamUpdates.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponseProcessProposal) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResponseProcessProposal: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseProcessProposal: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + m.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Status |= ResponseProcessProposal_ProposalStatus(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AppHash = append(m.AppHash[:0], dAtA[iNdEx:postIndex]...) + if m.AppHash == nil { + m.AppHash = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TxResults", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TxResults = append(m.TxResults, &ExecTxResult{}) + if err := m.TxResults[len(m.TxResults)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorUpdates", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ValidatorUpdates = append(m.ValidatorUpdates, &ValidatorUpdate{}) + if err := m.ValidatorUpdates[len(m.ValidatorUpdates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParamUpdates", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ConsensusParamUpdates == nil { + m.ConsensusParamUpdates = &types1.ConsensusParams{} + } + if err := m.ConsensusParamUpdates.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponseExtendVote) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResponseExtendVote: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseExtendVote: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VoteExtension", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.VoteExtension = append(m.VoteExtension[:0], dAtA[iNdEx:postIndex]...) + if m.VoteExtension == nil { + m.VoteExtension = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponseVerifyVoteExtension) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResponseVerifyVoteExtension: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseVerifyVoteExtension: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + m.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Status |= ResponseVerifyVoteExtension_VerifyStatus(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponseFinalizeBlock) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResponseFinalizeBlock: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseFinalizeBlock: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Events = append(m.Events, Event{}) + if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TxResults", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TxResults = append(m.TxResults, &ExecTxResult{}) + if err := m.TxResults[len(m.TxResults)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorUpdates", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ValidatorUpdates = append(m.ValidatorUpdates, ValidatorUpdate{}) + if err := m.ValidatorUpdates[len(m.ValidatorUpdates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParamUpdates", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ConsensusParamUpdates == nil { + m.ConsensusParamUpdates = &types1.ConsensusParams{} + } + if err := m.ConsensusParamUpdates.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AppHash = append(m.AppHash[:0], dAtA[iNdEx:postIndex]...) + if m.AppHash == nil { + m.AppHash = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CommitInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CommitInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CommitInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Round", wireType) + } + m.Round = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Round |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Votes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Votes = append(m.Votes, VoteInfo{}) + if err := m.Votes[len(m.Votes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExtendedCommitInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExtendedCommitInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExtendedCommitInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Round", wireType) + } + m.Round = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Round |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Votes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Votes = append(m.Votes, ExtendedVoteInfo{}) + if err := m.Votes[len(m.Votes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Event) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Event: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Event: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Attributes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Attributes = append(m.Attributes, EventAttribute{}) + if err := m.Attributes[len(m.Attributes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventAttribute) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EventAttribute: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventAttribute: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Index = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExecTxResult) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExecTxResult: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExecTxResult: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) + } + m.Code = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Code |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) + if m.Data == nil { + m.Data = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Log", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Log = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Info = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field GasWanted", wireType) + } + m.GasWanted = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.GasWanted |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field GasUsed", wireType) + } + m.GasUsed = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.GasUsed |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Events = append(m.Events, Event{}) + if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Codespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Codespace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TxResult) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TxResult: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TxResult: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + m.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Height |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType) + } + m.Index = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Index |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Tx = append(m.Tx[:0], dAtA[iNdEx:postIndex]...) + if m.Tx == nil { + m.Tx = []byte{} + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Result.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TxRecord) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TxRecord: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TxRecord: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Action", wireType) + } + m.Action = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Action |= TxRecord_TxAction(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Tx = append(m.Tx[:0], dAtA[iNdEx:postIndex]...) + if m.Tx == nil { + m.Tx = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Validator) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Validator: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Validator: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Address = append(m.Address[:0], dAtA[iNdEx:postIndex]...) + if m.Address == nil { + m.Address = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Power", wireType) + } + m.Power = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Power |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ValidatorUpdate) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ValidatorUpdate: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ValidatorUpdate: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PubKey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.PubKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Power", wireType) + } + m.Power = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Power |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *VoteInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: VoteInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: VoteInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Validator", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Validator.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SignedLastBlock", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.SignedLastBlock = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExtendedVoteInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExtendedVoteInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExtendedVoteInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Validator", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Validator.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SignedLastBlock", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.SignedLastBlock = bool(v != 0) + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VoteExtension", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.VoteExtension = append(m.VoteExtension[:0], dAtA[iNdEx:postIndex]...) + if m.VoteExtension == nil { + m.VoteExtension = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Misbehavior) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Misbehavior: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Misbehavior: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + m.Type = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Type |= MisbehaviorType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Validator", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Validator.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + m.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Height |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.Time, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalVotingPower", wireType) + } + m.TotalVotingPower = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TotalVotingPower |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Snapshot) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Snapshot: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Snapshot: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + m.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Height |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Format", wireType) + } + m.Format = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Format |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Chunks", wireType) + } + m.Chunks = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Chunks |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...) + if m.Hash == nil { + m.Hash = []byte{} + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Metadata = append(m.Metadata[:0], dAtA[iNdEx:postIndex]...) + if m.Metadata == nil { + m.Metadata = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipTypes(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypes + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypes + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTypes + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthTypes + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupTypes + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthTypes + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthTypes = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowTypes = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupTypes = fmt.Errorf("proto: unexpected end of group") +) diff --git a/sei-tendermint/abci/types/types_test.go b/sei-tendermint/abci/types/types_test.go new file mode 100644 index 0000000000..f79a244544 --- /dev/null +++ b/sei-tendermint/abci/types/types_test.go @@ -0,0 +1,74 @@ +package types_test + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + abci "github.com/tendermint/tendermint/abci/types" + "github.com/tendermint/tendermint/crypto/merkle" +) + +func TestHashAndProveResults(t *testing.T) { + trs := []*abci.ExecTxResult{ + // Note, these tests rely on the first two entries being in this order. + {Code: 0, Data: nil}, + {Code: 0, Data: []byte{}}, + + {Code: 0, Data: []byte("one")}, + {Code: 14, Data: nil}, + {Code: 14, Data: []byte("foo")}, + {Code: 14, Data: []byte("bar")}, + } + + // Nil and []byte{} should produce the same bytes + bz0, err := trs[0].Marshal() + require.NoError(t, err) + bz1, err := trs[1].Marshal() + require.NoError(t, err) + require.Equal(t, bz0, bz1) + + // Make sure that we can get a root hash from results and verify proofs. + rs, err := abci.MarshalTxResults(trs) + require.NoError(t, err) + root := merkle.HashFromByteSlices(rs) + assert.NotEmpty(t, root) + + _, proofs := merkle.ProofsFromByteSlices(rs) + for i, tr := range trs { + bz, err := tr.Marshal() + require.NoError(t, err) + + valid := proofs[i].Verify(root, bz) + assert.NoError(t, valid, "%d", i) + } +} + +func TestHashDeterministicFieldsOnly(t *testing.T) { + tr1 := abci.ExecTxResult{ + Code: 1, + Data: []byte("transaction"), + Log: "nondeterministic data: abc", + Info: "nondeterministic data: abc", + GasWanted: 1000, + GasUsed: 1000, + Events: []abci.Event{}, + Codespace: "nondeterministic.data.abc", + } + tr2 := abci.ExecTxResult{ + Code: 1, + Data: []byte("transaction"), + Log: "nondeterministic data: def", + Info: "nondeterministic data: def", + GasWanted: 1000, + GasUsed: 1000, + Events: []abci.Event{}, + Codespace: "nondeterministic.data.def", + } + r1, err := abci.MarshalTxResults([]*abci.ExecTxResult{&tr1}) + require.NoError(t, err) + r2, err := abci.MarshalTxResults([]*abci.ExecTxResult{&tr2}) + require.NoError(t, err) + require.Equal(t, merkle.HashFromByteSlices(r1), merkle.HashFromByteSlices(r2)) +} diff --git a/sei-tendermint/abci/types/util.go b/sei-tendermint/abci/types/util.go new file mode 100644 index 0000000000..8205fef7e9 --- /dev/null +++ b/sei-tendermint/abci/types/util.go @@ -0,0 +1,31 @@ +package types + +import ( + "sort" +) + +//------------------------------------------------------------------------------ + +// ValidatorUpdates is a list of validators that implements the Sort interface +type ValidatorUpdates []ValidatorUpdate + +var _ sort.Interface = (ValidatorUpdates)(nil) + +// All these methods for ValidatorUpdates: +// Len, Less and Swap +// are for ValidatorUpdates to implement sort.Interface +// which will be used by the sort package. +// See Issue https://github.com/tendermint/abci/issues/212 + +func (v ValidatorUpdates) Len() int { + return len(v) +} + +// XXX: doesn't distinguish same validator with different power +func (v ValidatorUpdates) Less(i, j int) bool { + return v[i].PubKey.Compare(v[j].PubKey) <= 0 +} + +func (v ValidatorUpdates) Swap(i, j int) { + v[i], v[j] = v[j], v[i] +} diff --git a/sei-tendermint/buf.gen.yaml b/sei-tendermint/buf.gen.yaml new file mode 100644 index 0000000000..d972360bbd --- /dev/null +++ b/sei-tendermint/buf.gen.yaml @@ -0,0 +1,9 @@ +version: v1 +plugins: + - name: gogofaster + out: ./proto/ + opt: + - Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types + - Mgoogle/protobuf/duration.proto=github.com/golang/protobuf/ptypes/duration + - plugins=grpc + - paths=source_relative diff --git a/sei-tendermint/buf.work.yaml b/sei-tendermint/buf.work.yaml new file mode 100644 index 0000000000..1878b341be --- /dev/null +++ b/sei-tendermint/buf.work.yaml @@ -0,0 +1,3 @@ +version: v1 +directories: + - proto diff --git a/sei-tendermint/cmd/contract_tests/main.go b/sei-tendermint/cmd/contract_tests/main.go new file mode 100644 index 0000000000..1d35476294 --- /dev/null +++ b/sei-tendermint/cmd/contract_tests/main.go @@ -0,0 +1,34 @@ +package main + +import ( + "fmt" + "strings" + + "github.com/snikch/goodman/hooks" + "github.com/snikch/goodman/transaction" +) + +func main() { + // This must be compiled beforehand and given to dredd as parameter, in the meantime the server should be running + h := hooks.NewHooks() + server := hooks.NewServer(hooks.NewHooksRunner(h)) + h.BeforeAll(func(t []*transaction.Transaction) { + fmt.Println(t[0].Name) + }) + h.BeforeEach(func(t *transaction.Transaction) { + if strings.HasPrefix(t.Name, "Tx") || + // We need a proper example of evidence to broadcast + strings.HasPrefix(t.Name, "Info > /broadcast_evidence") || + // We need a proper example of path and data + strings.HasPrefix(t.Name, "ABCI > /abci_query") || + // We need to find a way to make a transaction before starting the tests, + // that hash should replace the dummy one in the openapi file + strings.HasPrefix(t.Name, "Info > /tx") { + t.Skip = true + fmt.Printf("%s Has been skipped\n", t.Name) + } + }) + server.Serve() + defer server.Listener.Close() + fmt.Print("FINE") +} diff --git a/sei-tendermint/cmd/priv_val_server/main.go b/sei-tendermint/cmd/priv_val_server/main.go new file mode 100644 index 0000000000..9014221450 --- /dev/null +++ b/sei-tendermint/cmd/priv_val_server/main.go @@ -0,0 +1,174 @@ +package main + +import ( + "context" + "crypto/tls" + "crypto/x509" + "flag" + "fmt" + "net" + "net/http" + "os" + "os/signal" + "syscall" + "time" + + grpc_prometheus "github.com/grpc-ecosystem/go-grpc-prometheus" + "github.com/prometheus/client_golang/prometheus" + "github.com/prometheus/client_golang/prometheus/promhttp" + "google.golang.org/grpc" + "google.golang.org/grpc/credentials" + + "github.com/tendermint/tendermint/libs/log" + tmnet "github.com/tendermint/tendermint/libs/net" + "github.com/tendermint/tendermint/privval" + grpcprivval "github.com/tendermint/tendermint/privval/grpc" + privvalproto "github.com/tendermint/tendermint/proto/tendermint/privval" +) + +var ( + // Create a metrics registry. + reg = prometheus.NewRegistry() + + // Create some standard server metrics. + grpcMetrics = grpc_prometheus.NewServerMetrics() +) + +func main() { + var ( + addr = flag.String("addr", "127.0.0.1:26659", "Address to listen on (host:port)") + chainID = flag.String("chain-id", "mychain", "chain id") + privValKeyPath = flag.String("priv-key", "", "priv val key file path") + privValStatePath = flag.String("priv-state", "", "priv val state file path") + insecure = flag.Bool("insecure", false, "allow server to run insecurely (no TLS)") + certFile = flag.String("certfile", "", "absolute path to server certificate") + keyFile = flag.String("keyfile", "", "absolute path to server key") + rootCA = flag.String("rootcafile", "", "absolute path to root CA") + prometheusAddr = flag.String("prometheus-addr", "", "address for prometheus endpoint (host:port)") + ) + flag.Parse() + + logger, err := log.NewDefaultLogger(log.LogFormatPlain, log.LogLevelInfo) + if err != nil { + fmt.Fprintf(os.Stderr, "failed to construct logger: %v", err) + os.Exit(1) + } + logger = logger.With("module", "priv_val") + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + logger.Info( + "Starting private validator", + "addr", *addr, + "chainID", *chainID, + "privKeyPath", *privValKeyPath, + "privStatePath", *privValStatePath, + "insecure", *insecure, + "certFile", *certFile, + "keyFile", *keyFile, + "rootCA", *rootCA, + ) + + pv, err := privval.LoadFilePV(*privValKeyPath, *privValStatePath) + if err != nil { + fmt.Fprint(os.Stderr, err) + os.Exit(1) + } + + opts := []grpc.ServerOption{} + if !*insecure { + certificate, err := tls.LoadX509KeyPair(*certFile, *keyFile) + if err != nil { + fmt.Fprintf(os.Stderr, "failed to load X509 key pair: %v", err) + os.Exit(1) + } + + certPool := x509.NewCertPool() + bs, err := os.ReadFile(*rootCA) + if err != nil { + fmt.Fprintf(os.Stderr, "failed to read client ca cert: %s", err) + os.Exit(1) + } + + if ok := certPool.AppendCertsFromPEM(bs); !ok { + fmt.Fprintf(os.Stderr, "failed to append client certs") + os.Exit(1) + } + + tlsConfig := &tls.Config{ + ClientAuth: tls.RequireAndVerifyClientCert, + Certificates: []tls.Certificate{certificate}, + ClientCAs: certPool, + MinVersion: tls.VersionTLS13, + } + + creds := grpc.Creds(credentials.NewTLS(tlsConfig)) + opts = append(opts, creds) + logger.Info("SignerServer: Creating security credentials") + } else { + logger.Info("SignerServer: You are using an insecure gRPC connection!") + } + + // add prometheus metrics for unary RPC calls + opts = append(opts, grpc.UnaryInterceptor(grpc_prometheus.UnaryServerInterceptor)) + + ss := grpcprivval.NewSignerServer(logger, *chainID, pv) + + protocol, address := tmnet.ProtocolAndAddress(*addr) + + lis, err := net.Listen(protocol, address) + if err != nil { + fmt.Fprintf(os.Stderr, "SignerServer: Failed to listen %v", err) + os.Exit(1) + } + + s := grpc.NewServer(opts...) + + privvalproto.RegisterPrivValidatorAPIServer(s, ss) + + var httpSrv *http.Server + if *prometheusAddr != "" { + httpSrv = registerPrometheus(*prometheusAddr, s) + } + + logger.Info("SignerServer: Starting grpc server") + if err := s.Serve(lis); err != nil { + fmt.Fprintf(os.Stderr, "Unable to listen on port %s: %v", *addr, err) + os.Exit(1) + } + + opctx, opcancel := signal.NotifyContext(ctx, os.Interrupt, syscall.SIGTERM) + defer opcancel() + go func() { + <-opctx.Done() + if *prometheusAddr != "" { + ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second) + defer cancel() + if err := httpSrv.Shutdown(ctx); err != nil { + fmt.Fprintf(os.Stderr, "Unable to stop http server: %v", err) + os.Exit(1) + } + } + s.GracefulStop() + }() + + // Run forever. + select {} +} + +func registerPrometheus(addr string, s *grpc.Server) *http.Server { + // Initialize all metrics. + grpcMetrics.InitializeMetrics(s) + // create http server to serve prometheus + httpServer := &http.Server{Handler: promhttp.HandlerFor(reg, promhttp.HandlerOpts{}), Addr: addr} + + go func() { + if err := httpServer.ListenAndServe(); err != nil { + fmt.Fprintf(os.Stderr, "Unable to start a http server: %v", err) + os.Exit(1) + } + }() + + return httpServer +} diff --git a/sei-tendermint/cmd/tendermint/commands/compact.go b/sei-tendermint/cmd/tendermint/commands/compact.go new file mode 100644 index 0000000000..eadd828ae3 --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/compact.go @@ -0,0 +1,71 @@ +package commands + +import ( + "errors" + "path/filepath" + "sync" + + "github.com/spf13/cobra" + "github.com/syndtr/goleveldb/leveldb" + "github.com/syndtr/goleveldb/leveldb/opt" + "github.com/syndtr/goleveldb/leveldb/util" + + "github.com/tendermint/tendermint/config" + "github.com/tendermint/tendermint/libs/log" +) + +func MakeCompactDBCommand(cfg *config.Config, logger log.Logger) *cobra.Command { + cmd := &cobra.Command{ + Use: "experimental-compact-goleveldb", + Short: "force compacts the tendermint storage engine (only GoLevelDB supported)", + Long: ` +This is a temporary utility command that performs a force compaction on the state +and blockstores to reduce disk space for a pruning node. This should only be run +once the node has stopped. This command will likely be omitted in the future after +the planned refactor to the storage engine. + +Currently, only GoLevelDB is supported. + `, + RunE: func(cmd *cobra.Command, args []string) error { + if cfg.DBBackend != "goleveldb" { + return errors.New("compaction is currently only supported with goleveldb") + } + + compactGoLevelDBs(cfg.RootDir, logger) + return nil + }, + } + + return cmd +} + +func compactGoLevelDBs(rootDir string, logger log.Logger) { + dbNames := []string{"state", "blockstore"} + o := &opt.Options{ + DisableSeeksCompaction: true, + } + wg := sync.WaitGroup{} + + for _, dbName := range dbNames { + dbName := dbName + wg.Add(1) + go func() { + defer wg.Done() + dbPath := filepath.Join(rootDir, "data", dbName+".db") + store, err := leveldb.OpenFile(dbPath, o) + if err != nil { + logger.Error("failed to initialize tendermint db", "path", dbPath, "err", err) + return + } + defer store.Close() + + logger.Info("starting compaction...", "db", dbPath) + + err = store.CompactRange(util.Range{Start: nil, Limit: nil}) + if err != nil { + logger.Error("failed to compact tendermint db", "path", dbPath, "err", err) + } + }() + } + wg.Wait() +} diff --git a/sei-tendermint/cmd/tendermint/commands/completion.go b/sei-tendermint/cmd/tendermint/commands/completion.go new file mode 100644 index 0000000000..d2c81f0afc --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/completion.go @@ -0,0 +1,46 @@ +package commands + +import ( + "fmt" + + "github.com/spf13/cobra" +) + +// NewCompletionCmd returns a cobra.Command that generates bash and zsh +// completion scripts for the given root command. If hidden is true, the +// command will not show up in the root command's list of available commands. +func NewCompletionCmd(rootCmd *cobra.Command, hidden bool) *cobra.Command { + flagZsh := "zsh" + cmd := &cobra.Command{ + Use: "completion", + Short: "Generate shell completion scripts", + Long: fmt.Sprintf(`Generate Bash and Zsh completion scripts and print them to STDOUT. + +Once saved to file, a completion script can be loaded in the shell's +current session as shown: + + $ . <(%s completion) + +To configure your bash shell to load completions for each session add to +your $HOME/.bashrc or $HOME/.profile the following instruction: + + . <(%s completion) +`, rootCmd.Use, rootCmd.Use), + RunE: func(cmd *cobra.Command, _ []string) error { + zsh, err := cmd.Flags().GetBool(flagZsh) + if err != nil { + return err + } + if zsh { + return rootCmd.GenZshCompletion(cmd.OutOrStdout()) + } + return rootCmd.GenBashCompletion(cmd.OutOrStdout()) + }, + Hidden: hidden, + Args: cobra.NoArgs, + } + + cmd.Flags().Bool(flagZsh, false, "Generate Zsh completion script") + + return cmd +} diff --git a/sei-tendermint/cmd/tendermint/commands/debug/debug.go b/sei-tendermint/cmd/tendermint/commands/debug/debug.go new file mode 100644 index 0000000000..7fd5b030f7 --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/debug/debug.go @@ -0,0 +1,31 @@ +package debug + +import ( + "github.com/spf13/cobra" + + "github.com/tendermint/tendermint/libs/log" +) + +const ( + flagNodeRPCAddr = "rpc-laddr" + flagProfAddr = "pprof-laddr" + flagFrequency = "frequency" +) + +func GetDebugCommand(logger log.Logger) *cobra.Command { + cmd := &cobra.Command{ + Use: "debug", + Short: "A utility to kill or watch a Tendermint process while aggregating debugging data", + } + cmd.PersistentFlags().SortFlags = true + cmd.PersistentFlags().String( + flagNodeRPCAddr, + "tcp://localhost:26657", + "the Tendermint node's RPC address :)", + ) + + cmd.AddCommand(getKillCmd(logger)) + cmd.AddCommand(getDumpCmd(logger)) + return cmd + +} diff --git a/sei-tendermint/cmd/tendermint/commands/debug/dump.go b/sei-tendermint/cmd/tendermint/commands/debug/dump.go new file mode 100644 index 0000000000..d84f6e10aa --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/debug/dump.go @@ -0,0 +1,160 @@ +package debug + +import ( + "context" + "errors" + "fmt" + "os" + "path/filepath" + "time" + + "github.com/spf13/cobra" + "github.com/spf13/viper" + + "github.com/tendermint/tendermint/config" + "github.com/tendermint/tendermint/libs/cli" + "github.com/tendermint/tendermint/libs/log" + rpchttp "github.com/tendermint/tendermint/rpc/client/http" +) + +func getDumpCmd(logger log.Logger) *cobra.Command { + cmd := &cobra.Command{ + Use: "dump [output-directory]", + Short: "Continuously poll a Tendermint process and dump debugging data into a single location", + Long: `Continuously poll a Tendermint process and dump debugging data into a single +location at a specified frequency. At each frequency interval, an archived and compressed +file will contain node debugging information including the goroutine and heap profiles +if enabled.`, + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + outDir := args[0] + if outDir == "" { + return errors.New("invalid output directory") + } + frequency, err := cmd.Flags().GetUint(flagFrequency) + if err != nil { + return fmt.Errorf("flag %q not defined: %w", flagFrequency, err) + } + + if frequency == 0 { + return errors.New("frequency must be positive") + } + + nodeRPCAddr, err := cmd.Flags().GetString(flagNodeRPCAddr) + if err != nil { + return fmt.Errorf("flag %q not defined: %w", flagNodeRPCAddr, err) + } + + profAddr, err := cmd.Flags().GetString(flagProfAddr) + if err != nil { + return fmt.Errorf("flag %q not defined: %w", flagProfAddr, err) + } + + if _, err := os.Stat(outDir); os.IsNotExist(err) { + if err := os.Mkdir(outDir, os.ModePerm); err != nil { + return fmt.Errorf("failed to create output directory: %w", err) + } + } + + rpc, err := rpchttp.New(nodeRPCAddr) + if err != nil { + return fmt.Errorf("failed to create new http client: %w", err) + } + + ctx := cmd.Context() + + home := viper.GetString(cli.HomeFlag) + conf := config.DefaultConfig() + conf = conf.SetRoot(home) + config.EnsureRoot(conf.RootDir) + + dumpArgs := dumpDebugDataArgs{ + conf: conf, + outDir: outDir, + profAddr: profAddr, + } + dumpDebugData(ctx, logger, rpc, dumpArgs) + + ticker := time.NewTicker(time.Duration(frequency) * time.Second) + for range ticker.C { + dumpDebugData(ctx, logger, rpc, dumpArgs) + } + + return nil + }, + } + cmd.Flags().Uint( + flagFrequency, + 30, + "the frequency (seconds) in which to poll, aggregate and dump Tendermint debug data", + ) + + cmd.Flags().String( + flagProfAddr, + "", + "the profiling server address (:)", + ) + + return cmd + +} + +type dumpDebugDataArgs struct { + conf *config.Config + outDir string + profAddr string +} + +func dumpDebugData(ctx context.Context, logger log.Logger, rpc *rpchttp.HTTP, args dumpDebugDataArgs) { + start := time.Now().UTC() + + tmpDir, err := os.MkdirTemp(args.outDir, "tendermint_debug_tmp") + if err != nil { + logger.Error("failed to create temporary directory", "dir", tmpDir, "error", err) + return + } + defer os.RemoveAll(tmpDir) + + logger.Info("getting node status...") + if err := dumpStatus(ctx, rpc, tmpDir, "status.json"); err != nil { + logger.Error("failed to dump node status", "error", err) + return + } + + logger.Info("getting node network info...") + if err := dumpNetInfo(ctx, rpc, tmpDir, "net_info.json"); err != nil { + logger.Error("failed to dump node network info", "error", err) + return + } + + logger.Info("getting node consensus state...") + if err := dumpConsensusState(ctx, rpc, tmpDir, "consensus_state.json"); err != nil { + logger.Error("failed to dump node consensus state", "error", err) + return + } + + logger.Info("copying node WAL...") + if err := copyWAL(args.conf, tmpDir); err != nil { + logger.Error("failed to copy node WAL", "error", err) + return + } + + if args.profAddr != "" { + logger.Info("getting node goroutine profile...") + if err := dumpProfile(tmpDir, args.profAddr, "goroutine", 2); err != nil { + logger.Error("failed to dump goroutine profile", "error", err) + return + } + + logger.Info("getting node heap profile...") + if err := dumpProfile(tmpDir, args.profAddr, "heap", 2); err != nil { + logger.Error("failed to dump heap profile", "error", err) + return + } + } + + outFile := filepath.Join(args.outDir, fmt.Sprintf("%s.zip", start.Format(time.RFC3339))) + if err := zipDir(tmpDir, outFile); err != nil { + logger.Error("failed to create and compress archive", "file", outFile, "error", err) + } +} diff --git a/sei-tendermint/cmd/tendermint/commands/debug/io.go b/sei-tendermint/cmd/tendermint/commands/debug/io.go new file mode 100644 index 0000000000..bf904cf5c6 --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/debug/io.go @@ -0,0 +1,114 @@ +package debug + +import ( + "archive/zip" + "encoding/json" + "fmt" + "io" + "os" + "path" + "path/filepath" + "strings" +) + +// zipDir zips all the contents found in src, including both files and +// directories, into a destination file dest. It returns an error upon failure. +// It assumes src is a directory. +func zipDir(src, dest string) error { + zipFile, err := os.Create(dest) + if err != nil { + return err + } + defer zipFile.Close() + + zipWriter := zip.NewWriter(zipFile) + defer zipWriter.Close() + + dirName := filepath.Base(dest) + baseDir := strings.TrimSuffix(dirName, filepath.Ext(dirName)) + + return filepath.Walk(src, func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + + header, err := zip.FileInfoHeader(info) + if err != nil { + return err + } + + // Each execution of this utility on a Tendermint process will result in a + // unique file. + header.Name = filepath.Join(baseDir, strings.TrimPrefix(path, src)) + + // Handle cases where the content to be zipped is a file or a directory, + // where a directory must have a '/' suffix. + if info.IsDir() { + header.Name += "/" + } else { + header.Method = zip.Deflate + } + + headerWriter, err := zipWriter.CreateHeader(header) + if err != nil { + return err + } + + if info.IsDir() { + return nil + } + + file, err := os.Open(path) + if err != nil { + return err + } + defer file.Close() + + _, err = io.Copy(headerWriter, file) + return err + }) + +} + +// copyFile copies a file from src to dest and returns an error upon failure. The +// copied file retains the source file's permissions. +func copyFile(src, dest string) error { + if _, err := os.Stat(src); os.IsNotExist(err) { + return err + } + + srcFile, err := os.Open(src) + if err != nil { + return err + } + defer srcFile.Close() + + destFile, err := os.Create(dest) + if err != nil { + return err + } + defer destFile.Close() + + if _, err = io.Copy(destFile, srcFile); err != nil { + return err + } + + srcInfo, err := os.Stat(src) + if err != nil { + return err + } + + return os.Chmod(dest, srcInfo.Mode()) +} + +// writeStateToFile pretty JSON encodes an object and writes it to file composed +// of dir and filename. It returns an error upon failure to encode or write to +// file. +func writeStateJSONToFile(state interface{}, dir, filename string) error { + stateJSON, err := json.MarshalIndent(state, "", " ") + if err != nil { + return fmt.Errorf("failed to encode state dump: %w", err) + } + + return os.WriteFile(path.Join(dir, filename), stateJSON, os.ModePerm) +} diff --git a/sei-tendermint/cmd/tendermint/commands/debug/kill.go b/sei-tendermint/cmd/tendermint/commands/debug/kill.go new file mode 100644 index 0000000000..a6c1ac7d86 --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/debug/kill.go @@ -0,0 +1,164 @@ +package debug + +import ( + "errors" + "fmt" + "os" + "os/exec" + "path/filepath" + "strconv" + "syscall" + "time" + + "github.com/spf13/cobra" + "github.com/spf13/viper" + + "github.com/tendermint/tendermint/config" + "github.com/tendermint/tendermint/libs/cli" + "github.com/tendermint/tendermint/libs/log" + rpchttp "github.com/tendermint/tendermint/rpc/client/http" +) + +func getKillCmd(logger log.Logger) *cobra.Command { + cmd := &cobra.Command{ + Use: "kill [pid] [compressed-output-file]", + Short: "Kill a Tendermint process while aggregating and packaging debugging data", + Long: `Kill a Tendermint process while also aggregating Tendermint process data +such as the latest node state, including consensus and networking state, +go-routine state, and the node's WAL and config information. This aggregated data +is packaged into a compressed archive. + +Example: +$ tendermint debug kill 34255 /path/to/tm-debug.zip`, + Args: cobra.ExactArgs(2), + RunE: func(cmd *cobra.Command, args []string) error { + ctx := cmd.Context() + pid, err := strconv.ParseInt(args[0], 10, 64) + if err != nil { + return err + } + + outFile := args[1] + if outFile == "" { + return errors.New("invalid output file") + } + nodeRPCAddr, err := cmd.Flags().GetString(flagNodeRPCAddr) + if err != nil { + return fmt.Errorf("flag %q not defined: %w", flagNodeRPCAddr, err) + } + + rpc, err := rpchttp.New(nodeRPCAddr) + if err != nil { + return fmt.Errorf("failed to create new http client: %w", err) + } + + home := viper.GetString(cli.HomeFlag) + conf := config.DefaultConfig() + conf = conf.SetRoot(home) + config.EnsureRoot(conf.RootDir) + + // Create a temporary directory which will contain all the state dumps and + // relevant files and directories that will be compressed into a file. + tmpDir, err := os.MkdirTemp(os.TempDir(), "tendermint_debug_tmp") + if err != nil { + return fmt.Errorf("failed to create temporary directory: %w", err) + } + defer os.RemoveAll(tmpDir) + + logger.Info("getting node status...") + if err := dumpStatus(ctx, rpc, tmpDir, "status.json"); err != nil { + return err + } + + logger.Info("getting node network info...") + if err := dumpNetInfo(ctx, rpc, tmpDir, "net_info.json"); err != nil { + return err + } + + logger.Info("getting node consensus state...") + if err := dumpConsensusState(ctx, rpc, tmpDir, "consensus_state.json"); err != nil { + return err + } + + logger.Info("copying node WAL...") + if err := copyWAL(conf, tmpDir); err != nil { + if !os.IsNotExist(err) { + return err + } + + logger.Info("node WAL does not exist; continuing...") + } + + logger.Info("copying node configuration...") + if err := copyConfig(home, tmpDir); err != nil { + return err + } + + logger.Info("killing Tendermint process") + if err := killProc(int(pid), tmpDir); err != nil { + return err + } + + logger.Info("archiving and compressing debug directory...") + return zipDir(tmpDir, outFile) + }, + } + + return cmd +} + +// killProc attempts to kill the Tendermint process with a given PID with an +// ABORT signal which should result in a goroutine stacktrace. The PID's STDERR +// is tailed and piped to a file under the directory dir. An error is returned +// if the output file cannot be created or the tail command cannot be started. +// An error is not returned if any subsequent syscall fails. +func killProc(pid int, dir string) error { + // pipe STDERR output from tailing the Tendermint process to a file + // + // NOTE: This will only work on UNIX systems. + cmd := exec.Command("tail", "-f", fmt.Sprintf("/proc/%d/fd/2", pid)) // nolint: gosec + + outFile, err := os.Create(filepath.Join(dir, "stacktrace.out")) + if err != nil { + return err + } + defer outFile.Close() + + cmd.Stdout = outFile + cmd.Stderr = outFile + + if err := cmd.Start(); err != nil { + return err + } + + // kill the underlying Tendermint process and subsequent tailing process + go func() { + // Killing the Tendermint process with the '-ABRT|-6' signal will result in + // a goroutine stacktrace. + p, err := os.FindProcess(pid) + if err != nil { + fmt.Fprintf(os.Stderr, "failed to find PID to kill Tendermint process: %s", err) + } else if err = p.Signal(syscall.SIGABRT); err != nil { + fmt.Fprintf(os.Stderr, "failed to kill Tendermint process: %s", err) + } + + // allow some time to allow the Tendermint process to be killed + // + // TODO: We should 'wait' for a kill to succeed (e.g. poll for PID until it + // cannot be found). Regardless, this should be ample time. + time.Sleep(5 * time.Second) + + if err := cmd.Process.Kill(); err != nil { + fmt.Fprintf(os.Stderr, "failed to kill Tendermint process output redirection: %s", err) + } + }() + + if err := cmd.Wait(); err != nil { + // only return an error not invoked by a manual kill + if _, ok := err.(*exec.ExitError); !ok { + return err + } + } + + return nil +} diff --git a/sei-tendermint/cmd/tendermint/commands/debug/util.go b/sei-tendermint/cmd/tendermint/commands/debug/util.go new file mode 100644 index 0000000000..24626207f5 --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/debug/util.go @@ -0,0 +1,82 @@ +package debug + +import ( + "context" + "fmt" + "io" + "net/http" + "os" + "path" + "path/filepath" + + "github.com/tendermint/tendermint/config" + rpchttp "github.com/tendermint/tendermint/rpc/client/http" +) + +// dumpStatus gets node status state dump from the Tendermint RPC and writes it +// to file. It returns an error upon failure. +func dumpStatus(ctx context.Context, rpc *rpchttp.HTTP, dir, filename string) error { + status, err := rpc.Status(ctx) + if err != nil { + return fmt.Errorf("failed to get node status: %w", err) + } + + return writeStateJSONToFile(status, dir, filename) +} + +// dumpNetInfo gets network information state dump from the Tendermint RPC and +// writes it to file. It returns an error upon failure. +func dumpNetInfo(ctx context.Context, rpc *rpchttp.HTTP, dir, filename string) error { + netInfo, err := rpc.NetInfo(ctx) + if err != nil { + return fmt.Errorf("failed to get node network information: %w", err) + } + + return writeStateJSONToFile(netInfo, dir, filename) +} + +// dumpConsensusState gets consensus state dump from the Tendermint RPC and +// writes it to file. It returns an error upon failure. +func dumpConsensusState(ctx context.Context, rpc *rpchttp.HTTP, dir, filename string) error { + consDump, err := rpc.DumpConsensusState(ctx) + if err != nil { + return fmt.Errorf("failed to get node consensus dump: %w", err) + } + + return writeStateJSONToFile(consDump, dir, filename) +} + +// copyWAL copies the Tendermint node's WAL file. It returns an error if the +// WAL file cannot be read or copied. +func copyWAL(conf *config.Config, dir string) error { + walPath := conf.Consensus.WalFile() + walFile := filepath.Base(walPath) + + return copyFile(walPath, filepath.Join(dir, walFile)) +} + +// copyConfig copies the Tendermint node's config file. It returns an error if +// the config file cannot be read or copied. +func copyConfig(home, dir string) error { + configFile := "config.toml" + configPath := filepath.Join(home, "config", configFile) + + return copyFile(configPath, filepath.Join(dir, configFile)) +} + +func dumpProfile(dir, addr, profile string, debug int) error { + endpoint := fmt.Sprintf("%s/debug/pprof/%s?debug=%d", addr, profile, debug) + + resp, err := http.Get(endpoint) // nolint: gosec + if err != nil { + return fmt.Errorf("failed to query for %s profile: %w", profile, err) + } + defer resp.Body.Close() + + body, err := io.ReadAll(resp.Body) + if err != nil { + return fmt.Errorf("failed to read %s profile response body: %w", profile, err) + } + + return os.WriteFile(path.Join(dir, fmt.Sprintf("%s.out", profile)), body, os.ModePerm) +} diff --git a/sei-tendermint/cmd/tendermint/commands/gen_node_key.go b/sei-tendermint/cmd/tendermint/commands/gen_node_key.go new file mode 100644 index 0000000000..1207c704b0 --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/gen_node_key.go @@ -0,0 +1,32 @@ +package commands + +import ( + "encoding/json" + "fmt" + + "github.com/spf13/cobra" + + "github.com/tendermint/tendermint/types" +) + +// GenNodeKeyCmd allows the generation of a node key. It prints JSON-encoded +// NodeKey to the standard output. +var GenNodeKeyCmd = &cobra.Command{ + Use: "gen-node-key", + Short: "Generate a new node key", + RunE: genNodeKey, +} + +func genNodeKey(cmd *cobra.Command, args []string) error { + nodeKey := types.GenNodeKey() + + bz, err := json.Marshal(nodeKey) + if err != nil { + return fmt.Errorf("nodeKey -> json: %w", err) + } + + fmt.Printf(`%v +`, string(bz)) + + return nil +} diff --git a/sei-tendermint/cmd/tendermint/commands/gen_validator.go b/sei-tendermint/cmd/tendermint/commands/gen_validator.go new file mode 100644 index 0000000000..ac37790ccd --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/gen_validator.go @@ -0,0 +1,41 @@ +package commands + +import ( + "encoding/json" + "fmt" + + "github.com/spf13/cobra" + + "github.com/tendermint/tendermint/privval" + "github.com/tendermint/tendermint/types" +) + +// GenValidatorCmd allows the generation of a keypair for a +// validator. +func MakeGenValidatorCommand() *cobra.Command { + var keyType string + cmd := &cobra.Command{ + Use: "gen-validator", + Short: "Generate new validator keypair", + RunE: func(cmd *cobra.Command, args []string) error { + pv, err := privval.GenFilePV("", "", keyType) + if err != nil { + return err + } + + jsbz, err := json.Marshal(pv) + if err != nil { + return fmt.Errorf("validator -> json: %w", err) + } + + fmt.Printf("%v\n", string(jsbz)) + + return nil + }, + } + + cmd.Flags().StringVar(&keyType, "key", types.ABCIPubKeyTypeEd25519, + "Key type to generate privval file with. Options: ed25519, secp256k1") + + return cmd +} diff --git a/sei-tendermint/cmd/tendermint/commands/init.go b/sei-tendermint/cmd/tendermint/commands/init.go new file mode 100644 index 0000000000..d5f8b338b9 --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/init.go @@ -0,0 +1,130 @@ +package commands + +import ( + "context" + "errors" + "fmt" + + "github.com/spf13/cobra" + + "github.com/tendermint/tendermint/config" + "github.com/tendermint/tendermint/libs/log" + tmos "github.com/tendermint/tendermint/libs/os" + tmrand "github.com/tendermint/tendermint/libs/rand" + tmtime "github.com/tendermint/tendermint/libs/time" + "github.com/tendermint/tendermint/privval" + "github.com/tendermint/tendermint/types" +) + +// MakeInitFilesCommand returns the command to initialize a fresh Tendermint Core instance. +func MakeInitFilesCommand(conf *config.Config, logger log.Logger) *cobra.Command { + var keyType string + cmd := &cobra.Command{ + Use: "init [full|validator|seed]", + Short: "Initializes a Tendermint node", + ValidArgs: []string{"full", "validator", "seed"}, + // We allow for zero args so we can throw a more informative error + Args: cobra.MaximumNArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + if len(args) == 0 { + return errors.New("must specify a node type: tendermint init [validator|full|seed]") + } + conf.Mode = args[0] + return initFilesWithConfig(cmd.Context(), conf, logger, keyType) + }, + } + + cmd.Flags().StringVar(&keyType, "key", types.ABCIPubKeyTypeEd25519, + "Key type to generate privval file with. Options: ed25519, secp256k1") + + return cmd +} + +func initFilesWithConfig(ctx context.Context, conf *config.Config, logger log.Logger, keyType string) error { + var ( + pv *privval.FilePV + err error + ) + + if conf.Mode == config.ModeValidator { + // private validator + privValKeyFile := conf.PrivValidator.KeyFile() + privValStateFile := conf.PrivValidator.StateFile() + if tmos.FileExists(privValKeyFile) { + pv, err = privval.LoadFilePV(privValKeyFile, privValStateFile) + if err != nil { + return err + } + + logger.Info("Found private validator", "keyFile", privValKeyFile, + "stateFile", privValStateFile) + } else { + pv, err = privval.GenFilePV(privValKeyFile, privValStateFile, keyType) + if err != nil { + return err + } + if err := pv.Save(); err != nil { + return err + } + logger.Info("Generated private validator", "keyFile", privValKeyFile, + "stateFile", privValStateFile) + } + } + + nodeKeyFile := conf.NodeKeyFile() + if tmos.FileExists(nodeKeyFile) { + logger.Info("Found node key", "path", nodeKeyFile) + } else { + if _, err := types.LoadOrGenNodeKey(nodeKeyFile); err != nil { + return err + } + logger.Info("Generated node key", "path", nodeKeyFile) + } + + // genesis file + genFile := conf.GenesisFile() + if tmos.FileExists(genFile) { + logger.Info("Found genesis file", "path", genFile) + } else { + + genDoc := types.GenesisDoc{ + ChainID: fmt.Sprintf("test-chain-%v", tmrand.Str(6)), + GenesisTime: tmtime.Now(), + ConsensusParams: types.DefaultConsensusParams(), + } + if keyType == "secp256k1" { + genDoc.ConsensusParams.Validator = types.ValidatorParams{ + PubKeyTypes: []string{types.ABCIPubKeyTypeSecp256k1}, + } + } + + ctx, cancel := context.WithTimeout(ctx, ctxTimeout) + defer cancel() + + // if this is a validator we add it to genesis + if pv != nil { + pubKey, err := pv.GetPubKey(ctx) + if err != nil { + return fmt.Errorf("can't get pubkey: %w", err) + } + genDoc.Validators = []types.GenesisValidator{{ + Address: pubKey.Address(), + PubKey: pubKey, + Power: 10, + }} + } + + if err := genDoc.SaveAs(genFile); err != nil { + return err + } + logger.Info("Generated genesis file", "path", genFile) + } + + // write config file + if err := config.WriteConfigFile(conf.RootDir, conf); err != nil { + return err + } + logger.Info("Generated config", "mode", conf.Mode) + + return nil +} diff --git a/sei-tendermint/cmd/tendermint/commands/inspect.go b/sei-tendermint/cmd/tendermint/commands/inspect.go new file mode 100644 index 0000000000..11afa419ea --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/inspect.go @@ -0,0 +1,51 @@ +package commands + +import ( + "os/signal" + "syscall" + + "github.com/spf13/cobra" + + "github.com/tendermint/tendermint/config" + "github.com/tendermint/tendermint/internal/inspect" + "github.com/tendermint/tendermint/libs/log" +) + +// InspectCmd constructs the command to start an inspect server. +func MakeInspectCommand(conf *config.Config, logger log.Logger) *cobra.Command { + cmd := &cobra.Command{ + Use: "inspect", + Short: "Run an inspect server for investigating Tendermint state", + Long: ` + inspect runs a subset of Tendermint's RPC endpoints that are useful for debugging + issues with Tendermint. + + When the Tendermint consensus engine detects inconsistent state, it will crash the + tendermint process. Tendermint will not start up while in this inconsistent state. + The inspect command can be used to query the block and state store using Tendermint + RPC calls to debug issues of inconsistent state. + `, + RunE: func(cmd *cobra.Command, args []string) error { + ctx, cancel := signal.NotifyContext(cmd.Context(), syscall.SIGTERM, syscall.SIGINT) + defer cancel() + + ins, err := inspect.NewFromConfig(logger, conf) + if err != nil { + return err + } + + logger.Info("starting inspect server") + if err := ins.Run(ctx); err != nil { + return err + } + return nil + }, + } + cmd.Flags().String("rpc.laddr", + conf.RPC.ListenAddress, "RPC listenener address. Port required") + cmd.Flags().String("db-backend", + conf.DBBackend, "database backend: goleveldb | cleveldb | boltdb | rocksdb | badgerdb") + cmd.Flags().String("db-dir", conf.DBPath, "database directory") + + return cmd +} diff --git a/sei-tendermint/cmd/tendermint/commands/key_migrate.go b/sei-tendermint/cmd/tendermint/commands/key_migrate.go new file mode 100644 index 0000000000..723026da5a --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/key_migrate.go @@ -0,0 +1,76 @@ +package commands + +import ( + "context" + "fmt" + + "github.com/spf13/cobra" + + "github.com/tendermint/tendermint/config" + "github.com/tendermint/tendermint/libs/log" + "github.com/tendermint/tendermint/scripts/keymigrate" + "github.com/tendermint/tendermint/scripts/scmigrate" +) + +func MakeKeyMigrateCommand(conf *config.Config, logger log.Logger) *cobra.Command { + cmd := &cobra.Command{ + Use: "key-migrate", + Short: "Run Database key migration", + RunE: func(cmd *cobra.Command, args []string) error { + return RunDatabaseMigration(cmd.Context(), logger, conf) + }, + } + + // allow database info to be overridden via cli + addDBFlags(cmd, conf) + + return cmd +} + +func RunDatabaseMigration(ctx context.Context, logger log.Logger, conf *config.Config) error { + contexts := []string{ + // this is ordered to put + // the more ephemeral tables first to + // reduce the possibility of the + // ephemeral data overwriting later data + "tx_index", + "peerstore", + "light", + "blockstore", + "state", + "evidence", + } + + for idx, dbctx := range contexts { + logger.Info("beginning a key migration", + "dbctx", dbctx, + "num", idx+1, + "total", len(contexts), + ) + + db, err := config.DefaultDBProvider(&config.DBContext{ + ID: dbctx, + Config: conf, + }) + + if err != nil { + return fmt.Errorf("constructing database handle: %w", err) + } + + if err = keymigrate.Migrate(ctx, db); err != nil { + return fmt.Errorf("running migration for context %q: %w", + dbctx, err) + } + + if dbctx == "blockstore" { + if err := scmigrate.Migrate(ctx, db); err != nil { + return fmt.Errorf("running seen commit migration: %w", err) + + } + } + } + + logger.Info("completed database migration successfully") + + return nil +} diff --git a/sei-tendermint/cmd/tendermint/commands/light.go b/sei-tendermint/cmd/tendermint/commands/light.go new file mode 100644 index 0000000000..2b812fe185 --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/light.go @@ -0,0 +1,233 @@ +package commands + +import ( + "errors" + "fmt" + "net/http" + "os" + "os/signal" + "path/filepath" + "strings" + "syscall" + "time" + + "github.com/spf13/cobra" + dbm "github.com/tendermint/tm-db" + + "github.com/tendermint/tendermint/config" + "github.com/tendermint/tendermint/libs/log" + tmmath "github.com/tendermint/tendermint/libs/math" + "github.com/tendermint/tendermint/light" + lproxy "github.com/tendermint/tendermint/light/proxy" + lrpc "github.com/tendermint/tendermint/light/rpc" + dbs "github.com/tendermint/tendermint/light/store/db" + rpcserver "github.com/tendermint/tendermint/rpc/jsonrpc/server" +) + +// LightCmd constructs the base command called when invoked without any subcommands. +func MakeLightCommand(conf *config.Config, logger log.Logger) *cobra.Command { + var ( + listenAddr string + primaryAddr string + witnessAddrsJoined string + chainID string + dir string + maxOpenConnections int + + sequential bool + trustingPeriod time.Duration + trustedHeight int64 + trustedHash []byte + trustLevelStr string + + logLevel string + logFormat string + + primaryKey = []byte("primary") + witnessesKey = []byte("witnesses") + ) + + checkForExistingProviders := func(db dbm.DB) (string, []string, error) { + primaryBytes, err := db.Get(primaryKey) + if err != nil { + return "", []string{""}, err + } + witnessesBytes, err := db.Get(witnessesKey) + if err != nil { + return "", []string{""}, err + } + witnessesAddrs := strings.Split(string(witnessesBytes), ",") + return string(primaryBytes), witnessesAddrs, nil + } + + saveProviders := func(db dbm.DB, primaryAddr, witnessesAddrs string) error { + err := db.Set(primaryKey, []byte(primaryAddr)) + if err != nil { + return fmt.Errorf("failed to save primary provider: %w", err) + } + err = db.Set(witnessesKey, []byte(witnessesAddrs)) + if err != nil { + return fmt.Errorf("failed to save witness providers: %w", err) + } + return nil + } + + cmd := &cobra.Command{ + Use: "light [chainID]", + Short: "Run a light client proxy server, verifying Tendermint rpc", + Long: `Run a light client proxy server, verifying Tendermint rpc. + +All calls that can be tracked back to a block header by a proof +will be verified before passing them back to the caller. Other than +that, it will present the same interface as a full Tendermint node. + +Furthermore to the chainID, a fresh instance of a light client will +need a primary RPC address and a trusted hash and height. It is also highly +recommended to provide additional witness RPC addresses, especially if +not using sequential verification. + +To restart the node, thereafter only the chainID is required. + +When /abci_query is called, the Merkle key path format is: + + /{store name}/{key} + +Please verify with your application that this Merkle key format is used (true +for applications built w/ Cosmos SDK). +`, + RunE: func(cmd *cobra.Command, args []string) error { + chainID = args[0] + logger.Info("Creating client...", "chainID", chainID) + + var witnessesAddrs []string + if witnessAddrsJoined != "" { + witnessesAddrs = strings.Split(witnessAddrsJoined, ",") + } + + lightDB, err := dbm.NewGoLevelDB("light-client-db", dir) + if err != nil { + return fmt.Errorf("can't create a db: %w", err) + } + // create a prefixed db on the chainID + db := dbm.NewPrefixDB(lightDB, []byte(chainID)) + + if primaryAddr == "" { // check to see if we can start from an existing state + var err error + primaryAddr, witnessesAddrs, err = checkForExistingProviders(db) + if err != nil { + return fmt.Errorf("failed to retrieve primary or witness from db: %w", err) + } + if primaryAddr == "" { + return errors.New("no primary address was provided nor found. Please provide a primary (using -p)." + + " Run the command: tendermint light --help for more information") + } + } else { + err := saveProviders(db, primaryAddr, witnessAddrsJoined) + if err != nil { + logger.Error("Unable to save primary and or witness addresses", "err", err) + } + } + + if len(witnessesAddrs) < 1 && !sequential { + logger.Info("In skipping verification mode it is highly recommended to provide at least one witness") + } + + trustLevel, err := tmmath.ParseFraction(trustLevelStr) + if err != nil { + return fmt.Errorf("can't parse trust level: %w", err) + } + + options := []light.Option{light.Logger(logger)} + + vo := light.SkippingVerification(trustLevel) + if sequential { + vo = light.SequentialVerification() + } + options = append(options, vo) + + // Initiate the light client. If the trusted store already has blocks in it, this + // will be used else we use the trusted options. + c, err := light.NewHTTPClient( + cmd.Context(), + chainID, + light.TrustOptions{ + Period: trustingPeriod, + Height: trustedHeight, + Hash: trustedHash, + }, + primaryAddr, + witnessesAddrs, + dbs.New(db), + options..., + ) + if err != nil { + return err + } + + cfg := rpcserver.DefaultConfig() + cfg.MaxBodyBytes = conf.RPC.MaxBodyBytes + cfg.MaxHeaderBytes = conf.RPC.MaxHeaderBytes + cfg.MaxOpenConnections = maxOpenConnections + // If necessary adjust global WriteTimeout to ensure it's greater than + // TimeoutBroadcastTxCommit. + // See https://github.com/tendermint/tendermint/issues/3435 + // Note we don't need to adjust anything if the timeout is already unlimited. + if cfg.WriteTimeout > 0 && cfg.WriteTimeout <= conf.RPC.TimeoutBroadcastTxCommit { + cfg.WriteTimeout = conf.RPC.TimeoutBroadcastTxCommit + 1*time.Second + } + + p, err := lproxy.NewProxy(c, listenAddr, primaryAddr, cfg, logger, lrpc.KeyPathFn(lrpc.DefaultMerkleKeyPathFn())) + if err != nil { + return err + } + + ctx, cancel := signal.NotifyContext(cmd.Context(), os.Interrupt, syscall.SIGTERM) + defer cancel() + + go func() { + <-ctx.Done() + p.Listener.Close() + }() + + logger.Info("Starting proxy...", "laddr", listenAddr) + if err := p.ListenAndServe(ctx); err != http.ErrServerClosed { + // Error starting or closing listener: + logger.Error("proxy ListenAndServe", "err", err) + } + + return nil + }, + Args: cobra.ExactArgs(1), + Example: `light cosmoshub-3 -p http://52.57.29.196:26657 -w http://public-seed-node.cosmoshub.certus.one:26657 + --height 962118 --hash 28B97BE9F6DE51AC69F70E0B7BFD7E5C9CD1A595B7DC31AFF27C50D4948020CD`, + } + + cmd.Flags().StringVar(&listenAddr, "laddr", "tcp://localhost:8888", + "serve the proxy on the given address") + cmd.Flags().StringVarP(&primaryAddr, "primary", "p", "", + "connect to a Tendermint node at this address") + cmd.Flags().StringVarP(&witnessAddrsJoined, "witnesses", "w", "", + "tendermint nodes to cross-check the primary node, comma-separated") + cmd.Flags().StringVarP(&dir, "dir", "d", os.ExpandEnv(filepath.Join("$HOME", ".tendermint-light")), + "specify the directory") + cmd.Flags().IntVar( + &maxOpenConnections, + "max-open-connections", + 900, + "maximum number of simultaneous connections (including WebSocket).") + cmd.Flags().DurationVar(&trustingPeriod, "trusting-period", 168*time.Hour, + "trusting period that headers can be verified within. Should be significantly less than the unbonding period") + cmd.Flags().Int64Var(&trustedHeight, "height", 1, "Trusted header's height") + cmd.Flags().BytesHexVar(&trustedHash, "hash", []byte{}, "Trusted header's hash") + cmd.Flags().StringVar(&logLevel, "log-level", log.LogLevelInfo, "The logging level (debug|info|warn|error|fatal)") + cmd.Flags().StringVar(&logFormat, "log-format", log.LogFormatPlain, "The logging format (text|json)") + cmd.Flags().StringVar(&trustLevelStr, "trust-level", "1/3", + "trust level. Must be between 1/3 and 3/3", + ) + cmd.Flags().BoolVar(&sequential, "sequential", false, + "sequential verification. Verify all headers sequentially as opposed to using skipping verification", + ) + + return cmd + +} diff --git a/sei-tendermint/cmd/tendermint/commands/reindex_event.go b/sei-tendermint/cmd/tendermint/commands/reindex_event.go new file mode 100644 index 0000000000..34d07fdd5b --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/reindex_event.go @@ -0,0 +1,284 @@ +package commands + +import ( + "errors" + "fmt" + "path/filepath" + "strings" + + "github.com/spf13/cobra" + dbm "github.com/tendermint/tm-db" + + abcitypes "github.com/tendermint/tendermint/abci/types" + tmcfg "github.com/tendermint/tendermint/config" + "github.com/tendermint/tendermint/internal/libs/progressbar" + "github.com/tendermint/tendermint/internal/state" + "github.com/tendermint/tendermint/internal/state/indexer" + "github.com/tendermint/tendermint/internal/state/indexer/sink/kv" + "github.com/tendermint/tendermint/internal/state/indexer/sink/psql" + "github.com/tendermint/tendermint/internal/store" + "github.com/tendermint/tendermint/libs/log" + "github.com/tendermint/tendermint/libs/os" + "github.com/tendermint/tendermint/rpc/coretypes" + "github.com/tendermint/tendermint/types" +) + +const ( + reindexFailed = "event re-index failed: " +) + +// MakeReindexEventCommand constructs a command to re-index events in a block height interval. +func MakeReindexEventCommand(conf *tmcfg.Config, logger log.Logger) *cobra.Command { + var ( + startHeight int64 + endHeight int64 + ) + + cmd := &cobra.Command{ + Use: "reindex-event", + Short: "reindex events to the event store backends", + Long: ` +reindex-event is an offline tooling to re-index block and tx events to the eventsinks, +you can run this command when the event store backend dropped/disconnected or you want to +replace the backend. The default start-height is 0, meaning the tooling will start +reindex from the base block height(inclusive); and the default end-height is 0, meaning +the tooling will reindex until the latest block height(inclusive). User can omit +either or both arguments. + `, + Example: ` + tendermint reindex-event + tendermint reindex-event --start-height 2 + tendermint reindex-event --end-height 10 + tendermint reindex-event --start-height 2 --end-height 10 + `, + RunE: func(cmd *cobra.Command, args []string) error { + bs, ss, err := loadStateAndBlockStore(conf) + if err != nil { + return fmt.Errorf("%s: %w", reindexFailed, err) + } + + cvhArgs := checkValidHeightArgs{ + startHeight: startHeight, + endHeight: endHeight, + } + if err := checkValidHeight(bs, cvhArgs); err != nil { + return fmt.Errorf("%s: %w", reindexFailed, err) + } + + es, err := loadEventSinks(conf) + if err != nil { + return fmt.Errorf("%s: %w", reindexFailed, err) + } + + riArgs := eventReIndexArgs{ + startHeight: startHeight, + endHeight: endHeight, + sinks: es, + blockStore: bs, + stateStore: ss, + } + if err := eventReIndex(cmd, riArgs); err != nil { + return fmt.Errorf("%s: %w", reindexFailed, err) + } + + logger.Info("event re-index finished") + return nil + }, + } + + cmd.Flags().Int64Var(&startHeight, "start-height", 0, "the block height would like to start for re-index") + cmd.Flags().Int64Var(&endHeight, "end-height", 0, "the block height would like to finish for re-index") + return cmd +} + +func loadEventSinks(cfg *tmcfg.Config) ([]indexer.EventSink, error) { + // Check duplicated sinks. + sinks := map[string]bool{} + for _, s := range cfg.TxIndex.Indexer { + sl := strings.ToLower(s) + if sinks[sl] { + return nil, errors.New("found duplicated sinks, please check the tx-index section in the config.toml") + } + sinks[sl] = true + } + + eventSinks := []indexer.EventSink{} + + for k := range sinks { + switch k { + case string(indexer.NULL): + return nil, errors.New("found null event sink, please check the tx-index section in the config.toml") + case string(indexer.KV): + store, err := tmcfg.DefaultDBProvider(&tmcfg.DBContext{ID: "tx_index", Config: cfg}) + if err != nil { + return nil, err + } + eventSinks = append(eventSinks, kv.NewEventSink(store)) + case string(indexer.PSQL): + conn := cfg.TxIndex.PsqlConn + if conn == "" { + return nil, errors.New("the psql connection settings cannot be empty") + } + es, err := psql.NewEventSink(conn, cfg.ChainID()) + if err != nil { + return nil, err + } + eventSinks = append(eventSinks, es) + default: + return nil, errors.New("unsupported event sink type") + } + } + + if len(eventSinks) == 0 { + return nil, errors.New("no proper event sink can do event re-indexing," + + " please check the tx-index section in the config.toml") + } + + if !indexer.IndexingEnabled(eventSinks) { + return nil, fmt.Errorf("no event sink has been enabled") + } + + return eventSinks, nil +} + +func loadStateAndBlockStore(cfg *tmcfg.Config) (*store.BlockStore, state.Store, error) { + dbType := dbm.BackendType(cfg.DBBackend) + + if !os.FileExists(filepath.Join(cfg.DBDir(), "blockstore.db")) { + return nil, nil, fmt.Errorf("no blockstore found in %v", cfg.DBDir()) + } + + // Get BlockStore + blockStoreDB, err := dbm.NewDB("blockstore", dbType, cfg.DBDir()) + if err != nil { + return nil, nil, err + } + blockStore := store.NewBlockStore(blockStoreDB) + + if !os.FileExists(filepath.Join(cfg.DBDir(), "state.db")) { + return nil, nil, fmt.Errorf("no blockstore found in %v", cfg.DBDir()) + } + + // Get StateStore + stateDB, err := dbm.NewDB("state", dbType, cfg.DBDir()) + if err != nil { + return nil, nil, err + } + stateStore := state.NewStore(stateDB) + + return blockStore, stateStore, nil +} + +type eventReIndexArgs struct { + startHeight int64 + endHeight int64 + sinks []indexer.EventSink + blockStore state.BlockStore + stateStore state.Store +} + +func eventReIndex(cmd *cobra.Command, args eventReIndexArgs) error { + var bar progressbar.Bar + bar.NewOption(args.startHeight-1, args.endHeight) + + fmt.Println("start re-indexing events:") + defer bar.Finish() + for i := args.startHeight; i <= args.endHeight; i++ { + select { + case <-cmd.Context().Done(): + return fmt.Errorf("event re-index terminated at height %d: %w", i, cmd.Context().Err()) + default: + b := args.blockStore.LoadBlock(i) + if b == nil { + return fmt.Errorf("not able to load block at height %d from the blockstore", i) + } + + r, err := args.stateStore.LoadFinalizeBlockResponses(i) + if err != nil { + return fmt.Errorf("not able to load ABCI Response at height %d from the statestore", i) + } + + e := types.EventDataNewBlockHeader{ + Header: b.Header, + NumTxs: int64(len(b.Txs)), + ResultFinalizeBlock: *r, + } + + var batch *indexer.Batch + if e.NumTxs > 0 { + batch = indexer.NewBatch(e.NumTxs) + + for i := range b.Data.Txs { + tr := abcitypes.TxResult{ + Height: b.Height, + Index: uint32(i), + Tx: b.Data.Txs[i], + Result: *(r.TxResults[i]), + } + + _ = batch.Add(&tr) + } + } + + for _, sink := range args.sinks { + if err := sink.IndexBlockEvents(e); err != nil { + return fmt.Errorf("block event re-index at height %d failed: %w", i, err) + } + + if batch != nil { + if err := sink.IndexTxEvents(batch.Ops); err != nil { + return fmt.Errorf("tx event re-index at height %d failed: %w", i, err) + } + } + } + } + + bar.Play(i) + } + + return nil +} + +type checkValidHeightArgs struct { + startHeight int64 + endHeight int64 +} + +func checkValidHeight(bs state.BlockStore, args checkValidHeightArgs) error { + base := bs.Base() + + if args.startHeight == 0 { + args.startHeight = base + fmt.Printf("set the start block height to the base height of the blockstore %d \n", base) + } + + if args.startHeight < base { + return fmt.Errorf("%s (requested start height: %d, base height: %d)", + coretypes.ErrHeightNotAvailable, args.startHeight, base) + } + + height := bs.Height() + + if args.startHeight > height { + return fmt.Errorf( + "%s (requested start height: %d, store height: %d)", coretypes.ErrHeightNotAvailable, args.startHeight, height) + } + + if args.endHeight == 0 || args.endHeight > height { + args.endHeight = height + fmt.Printf("set the end block height to the latest height of the blockstore %d \n", height) + } + + if args.endHeight < base { + return fmt.Errorf( + "%s (requested end height: %d, base height: %d)", coretypes.ErrHeightNotAvailable, args.endHeight, base) + } + + if args.endHeight < args.startHeight { + return fmt.Errorf( + "%s (requested the end height: %d is less than the start height: %d)", + coretypes.ErrInvalidRequest, args.startHeight, args.endHeight) + } + + return nil +} diff --git a/sei-tendermint/cmd/tendermint/commands/reindex_event_test.go b/sei-tendermint/cmd/tendermint/commands/reindex_event_test.go new file mode 100644 index 0000000000..971cf1c87c --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/reindex_event_test.go @@ -0,0 +1,200 @@ +package commands + +import ( + "context" + "errors" + "testing" + + "github.com/spf13/cobra" + "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" + + dbm "github.com/tendermint/tm-db" + + abcitypes "github.com/tendermint/tendermint/abci/types" + "github.com/tendermint/tendermint/config" + "github.com/tendermint/tendermint/internal/state/indexer" + "github.com/tendermint/tendermint/internal/state/mocks" + "github.com/tendermint/tendermint/libs/log" + "github.com/tendermint/tendermint/types" + + _ "github.com/lib/pq" // for the psql sink +) + +const ( + height int64 = 10 + base int64 = 2 +) + +func setupReIndexEventCmd(ctx context.Context, conf *config.Config, logger log.Logger) *cobra.Command { + cmd := MakeReindexEventCommand(conf, logger) + + reIndexEventCmd := &cobra.Command{ + Use: cmd.Use, + Run: func(cmd *cobra.Command, args []string) {}, + } + + _ = reIndexEventCmd.ExecuteContext(ctx) + + return reIndexEventCmd +} + +func TestReIndexEventCheckHeight(t *testing.T) { + mockBlockStore := &mocks.BlockStore{} + mockBlockStore. + On("Base").Return(base). + On("Height").Return(height) + + testCases := []struct { + startHeight int64 + endHeight int64 + validHeight bool + }{ + {0, 0, true}, + {0, base, true}, + {0, base - 1, false}, + {0, height, true}, + {0, height + 1, true}, + {0, 0, true}, + {base - 1, 0, false}, + {base, 0, true}, + {base, base, true}, + {base, base - 1, false}, + {base, height, true}, + {base, height + 1, true}, + {height, 0, true}, + {height, base, false}, + {height, height - 1, false}, + {height, height, true}, + {height, height + 1, true}, + {height + 1, 0, false}, + } + + for _, tc := range testCases { + err := checkValidHeight(mockBlockStore, checkValidHeightArgs{startHeight: tc.startHeight, endHeight: tc.endHeight}) + if tc.validHeight { + require.NoError(t, err) + } else { + require.Error(t, err) + } + } +} + +func TestLoadEventSink(t *testing.T) { + testCases := []struct { + sinks []string + connURL string + loadErr bool + }{ + {[]string{}, "", true}, + {[]string{"NULL"}, "", true}, + {[]string{"KV"}, "", false}, + {[]string{"KV", "KV"}, "", true}, + {[]string{"PSQL"}, "", true}, // true because empty connect url + {[]string{"PSQL"}, "wrongUrl", true}, // true because wrong connect url + // skip to test PSQL connect with correct url + {[]string{"UnsupportedSinkType"}, "wrongUrl", true}, + } + + for _, tc := range testCases { + cfg := config.TestConfig() + cfg.TxIndex.Indexer = tc.sinks + cfg.TxIndex.PsqlConn = tc.connURL + _, err := loadEventSinks(cfg) + if tc.loadErr { + require.Error(t, err) + } else { + require.NoError(t, err) + } + } +} + +func TestLoadBlockStore(t *testing.T) { + testCfg, err := config.ResetTestRoot(t.TempDir(), t.Name()) + require.NoError(t, err) + testCfg.DBBackend = "goleveldb" + _, _, err = loadStateAndBlockStore(testCfg) + // we should return an error because the state store and block store + // don't yet exist + require.Error(t, err) + + dbType := dbm.BackendType(testCfg.DBBackend) + bsdb, err := dbm.NewDB("blockstore", dbType, testCfg.DBDir()) + require.NoError(t, err) + bsdb.Close() + + ssdb, err := dbm.NewDB("state", dbType, testCfg.DBDir()) + require.NoError(t, err) + ssdb.Close() + + bs, ss, err := loadStateAndBlockStore(testCfg) + require.NoError(t, err) + require.NotNil(t, bs) + require.NotNil(t, ss) +} + +func TestReIndexEvent(t *testing.T) { + mockBlockStore := &mocks.BlockStore{} + mockStateStore := &mocks.Store{} + mockEventSink := &mocks.EventSink{} + + mockBlockStore. + On("Base").Return(base). + On("Height").Return(height). + On("LoadBlock", base).Return(nil).Once(). + On("LoadBlock", base).Return(&types.Block{Data: types.Data{Txs: types.Txs{make(types.Tx, 1)}}}). + On("LoadBlock", height).Return(&types.Block{Data: types.Data{Txs: types.Txs{make(types.Tx, 1)}}}) + + mockEventSink. + On("Type").Return(indexer.KV). + On("IndexBlockEvents", mock.AnythingOfType("types.EventDataNewBlockHeader")).Return(errors.New("")).Once(). + On("IndexBlockEvents", mock.AnythingOfType("types.EventDataNewBlockHeader")).Return(nil). + On("IndexTxEvents", mock.AnythingOfType("[]*types.TxResult")).Return(errors.New("")).Once(). + On("IndexTxEvents", mock.AnythingOfType("[]*types.TxResult")).Return(nil) + + dtx := abcitypes.ExecTxResult{} + abciResp := &abcitypes.ResponseFinalizeBlock{ + TxResults: []*abcitypes.ExecTxResult{&dtx}, + } + + mockStateStore. + On("LoadFinalizeBlockResponses", base).Return(nil, errors.New("")).Once(). + On("LoadFinalizeBlockResponses", base).Return(abciResp, nil). + On("LoadFinalizeBlockResponses", height).Return(abciResp, nil) + + testCases := []struct { + startHeight int64 + endHeight int64 + reIndexErr bool + }{ + {base, height, true}, // LoadBlock error + {base, height, true}, // LoadFinalizeBlockResponses error + {base, height, true}, // index block event error + {base, height, true}, // index tx event error + {base, base, false}, + {height, height, false}, + } + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + logger := log.NewNopLogger() + conf := config.DefaultConfig() + + for _, tc := range testCases { + err := eventReIndex( + setupReIndexEventCmd(ctx, conf, logger), + eventReIndexArgs{ + sinks: []indexer.EventSink{mockEventSink}, + blockStore: mockBlockStore, + stateStore: mockStateStore, + startHeight: tc.startHeight, + endHeight: tc.endHeight, + }) + + if tc.reIndexErr { + require.Error(t, err) + } else { + require.NoError(t, err) + } + } +} diff --git a/sei-tendermint/cmd/tendermint/commands/replay.go b/sei-tendermint/cmd/tendermint/commands/replay.go new file mode 100644 index 0000000000..fb6f19e55d --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/replay.go @@ -0,0 +1,31 @@ +package commands + +import ( + "github.com/spf13/cobra" + + "github.com/tendermint/tendermint/config" + "github.com/tendermint/tendermint/internal/consensus" + "github.com/tendermint/tendermint/libs/log" +) + +// MakeReplayCommand constructs a command to replay messages from the WAL into consensus. +func MakeReplayCommand(conf *config.Config, logger log.Logger) *cobra.Command { + return &cobra.Command{ + Use: "replay", + Short: "Replay messages from WAL", + RunE: func(cmd *cobra.Command, args []string) error { + return consensus.RunReplayFile(cmd.Context(), logger, conf.BaseConfig, conf.Consensus, false) + }, + } +} + +// MakeReplayConsoleCommand constructs a command to replay WAL messages to stdout. +func MakeReplayConsoleCommand(conf *config.Config, logger log.Logger) *cobra.Command { + return &cobra.Command{ + Use: "replay-console", + Short: "Replay messages from WAL in a console", + RunE: func(cmd *cobra.Command, args []string) error { + return consensus.RunReplayFile(cmd.Context(), logger, conf.BaseConfig, conf.Consensus, true) + }, + } +} diff --git a/sei-tendermint/cmd/tendermint/commands/reset.go b/sei-tendermint/cmd/tendermint/commands/reset.go new file mode 100644 index 0000000000..332ed2a4db --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/reset.go @@ -0,0 +1,182 @@ +package commands + +import ( + "os" + "path/filepath" + + "github.com/spf13/cobra" + + "github.com/tendermint/tendermint/config" + "github.com/tendermint/tendermint/libs/log" + tmos "github.com/tendermint/tendermint/libs/os" + "github.com/tendermint/tendermint/privval" + "github.com/tendermint/tendermint/types" +) + +// MakeResetCommand constructs a command that removes the database of +// the specified Tendermint core instance. +func MakeResetCommand(conf *config.Config, logger log.Logger) *cobra.Command { + var keyType string + + resetCmd := &cobra.Command{ + Use: "reset", + Short: "Set of commands to conveniently reset tendermint related data", + } + + resetBlocksCmd := &cobra.Command{ + Use: "blockchain", + Short: "Removes all blocks, state, transactions and evidence stored by the tendermint node", + RunE: func(cmd *cobra.Command, args []string) error { + return ResetState(conf.DBDir(), logger) + }, + } + + resetPeersCmd := &cobra.Command{ + Use: "peers", + Short: "Removes all peer addresses", + RunE: func(cmd *cobra.Command, args []string) error { + return ResetPeerStore(conf.DBDir()) + }, + } + + resetSignerCmd := &cobra.Command{ + Use: "unsafe-signer", + Short: "esets private validator signer state", + Long: `Resets private validator signer state. +Only use in testing. This can cause the node to double sign`, + RunE: func(cmd *cobra.Command, args []string) error { + return ResetFilePV(conf.PrivValidator.KeyFile(), conf.PrivValidator.StateFile(), logger, keyType) + }, + } + + resetAllCmd := &cobra.Command{ + Use: "unsafe-all", + Short: "Removes all tendermint data including signing state", + Long: `Removes all tendermint data including signing state. +Only use in testing. This can cause the node to double sign`, + RunE: func(cmd *cobra.Command, args []string) error { + return ResetAll(conf.DBDir(), conf.PrivValidator.KeyFile(), + conf.PrivValidator.StateFile(), logger, keyType) + }, + } + + resetSignerCmd.Flags().StringVar(&keyType, "key", types.ABCIPubKeyTypeEd25519, + "Signer key type. Options: ed25519, secp256k1") + + resetAllCmd.Flags().StringVar(&keyType, "key", types.ABCIPubKeyTypeEd25519, + "Signer key type. Options: ed25519, secp256k1") + + resetCmd.AddCommand(resetBlocksCmd) + resetCmd.AddCommand(resetPeersCmd) + resetCmd.AddCommand(resetSignerCmd) + resetCmd.AddCommand(resetAllCmd) + + return resetCmd +} + +// ResetAll removes address book files plus all data, and resets the privValdiator data. +// Exported for extenal CLI usage +// XXX: this is unsafe and should only suitable for testnets. +func ResetAll(dbDir, privValKeyFile, privValStateFile string, logger log.Logger, keyType string) error { + if err := os.RemoveAll(dbDir); err == nil { + logger.Info("Removed all blockchain history", "dir", dbDir) + } else { + logger.Error("error removing all blockchain history", "dir", dbDir, "err", err) + } + + if err := tmos.EnsureDir(dbDir, 0700); err != nil { + logger.Error("unable to recreate dbDir", "err", err) + } + + // recreate the dbDir since the privVal state needs to live there + return ResetFilePV(privValKeyFile, privValStateFile, logger, keyType) +} + +// ResetState removes all blocks, tendermint state, indexed transactions and evidence. +func ResetState(dbDir string, logger log.Logger) error { + blockdb := filepath.Join(dbDir, "blockstore.db") + state := filepath.Join(dbDir, "state.db") + wal := filepath.Join(dbDir, "cs.wal") + evidence := filepath.Join(dbDir, "evidence.db") + txIndex := filepath.Join(dbDir, "tx_index.db") + + if tmos.FileExists(blockdb) { + if err := os.RemoveAll(blockdb); err == nil { + logger.Info("Removed all blockstore.db", "dir", blockdb) + } else { + logger.Error("error removing all blockstore.db", "dir", blockdb, "err", err) + } + } + + if tmos.FileExists(state) { + if err := os.RemoveAll(state); err == nil { + logger.Info("Removed all state.db", "dir", state) + } else { + logger.Error("error removing all state.db", "dir", state, "err", err) + } + } + + if tmos.FileExists(wal) { + if err := os.RemoveAll(wal); err == nil { + logger.Info("Removed all cs.wal", "dir", wal) + } else { + logger.Error("error removing all cs.wal", "dir", wal, "err", err) + } + } + + if tmos.FileExists(evidence) { + if err := os.RemoveAll(evidence); err == nil { + logger.Info("Removed all evidence.db", "dir", evidence) + } else { + logger.Error("error removing all evidence.db", "dir", evidence, "err", err) + } + } + + if tmos.FileExists(txIndex) { + if err := os.RemoveAll(txIndex); err == nil { + logger.Info("Removed tx_index.db", "dir", txIndex) + } else { + logger.Error("error removing tx_index.db", "dir", txIndex, "err", err) + } + } + + return tmos.EnsureDir(dbDir, 0700) +} + +// ResetFilePV loads the file private validator and resets the watermark to 0. If used on an existing network, +// this can cause the node to double sign. +// XXX: this is unsafe and should only suitable for testnets. +func ResetFilePV(privValKeyFile, privValStateFile string, logger log.Logger, keyType string) error { + if _, err := os.Stat(privValKeyFile); err == nil { + pv, err := privval.LoadFilePVEmptyState(privValKeyFile, privValStateFile) + if err != nil { + return err + } + if err := pv.Reset(); err != nil { + return err + } + logger.Info("Reset private validator file to genesis state", "keyFile", privValKeyFile, + "stateFile", privValStateFile) + } else { + pv, err := privval.GenFilePV(privValKeyFile, privValStateFile, keyType) + if err != nil { + return err + } + if err := pv.Save(); err != nil { + return err + } + logger.Info("Generated private validator file", "keyFile", privValKeyFile, + "stateFile", privValStateFile) + } + return nil +} + +// ResetPeerStore removes the peer store containing all information used by the tendermint networking layer +// In the case of a reset, new peers will need to be set either via the config or through the discovery mechanism +func ResetPeerStore(dbDir string) error { + peerstore := filepath.Join(dbDir, "peerstore.db") + if tmos.FileExists(peerstore) { + return os.RemoveAll(peerstore) + } + return nil +} diff --git a/sei-tendermint/cmd/tendermint/commands/reset_test.go b/sei-tendermint/cmd/tendermint/commands/reset_test.go new file mode 100644 index 0000000000..7abdfa6885 --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/reset_test.go @@ -0,0 +1,62 @@ +package commands + +import ( + "context" + "path/filepath" + "testing" + + "github.com/stretchr/testify/require" + + cfg "github.com/tendermint/tendermint/config" + "github.com/tendermint/tendermint/libs/log" + "github.com/tendermint/tendermint/privval" + "github.com/tendermint/tendermint/types" +) + +func Test_ResetAll(t *testing.T) { + config := cfg.TestConfig() + dir := t.TempDir() + config.SetRoot(dir) + logger := log.NewNopLogger() + cfg.EnsureRoot(dir) + require.NoError(t, initFilesWithConfig(context.Background(), config, logger, types.ABCIPubKeyTypeEd25519)) + pv, err := privval.LoadFilePV(config.PrivValidator.KeyFile(), config.PrivValidator.StateFile()) + require.NoError(t, err) + pv.LastSignState.Height = 10 + require.NoError(t, pv.Save()) + require.NoError(t, ResetAll(config.DBDir(), config.PrivValidator.KeyFile(), + config.PrivValidator.StateFile(), logger, types.ABCIPubKeyTypeEd25519)) + require.DirExists(t, config.DBDir()) + require.NoFileExists(t, filepath.Join(config.DBDir(), "block.db")) + require.NoFileExists(t, filepath.Join(config.DBDir(), "state.db")) + require.NoFileExists(t, filepath.Join(config.DBDir(), "evidence.db")) + require.NoFileExists(t, filepath.Join(config.DBDir(), "tx_index.db")) + require.FileExists(t, config.PrivValidator.StateFile()) + pv, err = privval.LoadFilePV(config.PrivValidator.KeyFile(), config.PrivValidator.StateFile()) + require.NoError(t, err) + require.Equal(t, int64(0), pv.LastSignState.Height) +} + +func Test_ResetState(t *testing.T) { + config := cfg.TestConfig() + dir := t.TempDir() + config.SetRoot(dir) + logger := log.NewNopLogger() + cfg.EnsureRoot(dir) + require.NoError(t, initFilesWithConfig(context.Background(), config, logger, types.ABCIPubKeyTypeEd25519)) + pv, err := privval.LoadFilePV(config.PrivValidator.KeyFile(), config.PrivValidator.StateFile()) + require.NoError(t, err) + pv.LastSignState.Height = 10 + require.NoError(t, pv.Save()) + require.NoError(t, ResetState(config.DBDir(), logger)) + require.DirExists(t, config.DBDir()) + require.NoFileExists(t, filepath.Join(config.DBDir(), "block.db")) + require.NoFileExists(t, filepath.Join(config.DBDir(), "state.db")) + require.NoFileExists(t, filepath.Join(config.DBDir(), "evidence.db")) + require.NoFileExists(t, filepath.Join(config.DBDir(), "tx_index.db")) + require.FileExists(t, config.PrivValidator.StateFile()) + pv, err = privval.LoadFilePV(config.PrivValidator.KeyFile(), config.PrivValidator.StateFile()) + require.NoError(t, err) + // private validator state should still be in tact. + require.Equal(t, int64(10), pv.LastSignState.Height) +} diff --git a/sei-tendermint/cmd/tendermint/commands/rollback.go b/sei-tendermint/cmd/tendermint/commands/rollback.go new file mode 100644 index 0000000000..a604341783 --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/rollback.go @@ -0,0 +1,53 @@ +package commands + +import ( + "fmt" + + "github.com/spf13/cobra" + + "github.com/tendermint/tendermint/config" + "github.com/tendermint/tendermint/internal/state" +) + +func MakeRollbackStateCommand(conf *config.Config) *cobra.Command { + return &cobra.Command{ + Use: "rollback", + Short: "rollback tendermint state by one height", + Long: ` +A state rollback is performed to recover from an incorrect application state transition, +when Tendermint has persisted an incorrect app hash and is thus unable to make +progress. Rollback overwrites a state at height n with the state at height n - 1. +The application should also roll back to height n - 1. No blocks are removed, so upon +restarting Tendermint the transactions in block n will be re-executed against the +application. +`, + RunE: func(cmd *cobra.Command, args []string) error { + height, hash, err := RollbackState(conf) + if err != nil { + return fmt.Errorf("failed to rollback state: %w", err) + } + + fmt.Printf("Rolled back state to height %d and hash %X", height, hash) + return nil + }, + } + +} + +// RollbackState takes the state at the current height n and overwrites it with the state +// at height n - 1. Note state here refers to tendermint state not application state. +// Returns the latest state height and app hash alongside an error if there was one. +func RollbackState(config *config.Config) (int64, []byte, error) { + // use the parsed config to load the block and state store + blockStore, stateStore, err := loadStateAndBlockStore(config) + if err != nil { + return -1, nil, err + } + defer func() { + _ = blockStore.Close() + _ = stateStore.Close() + }() + + // rollback the last state + return state.Rollback(blockStore, stateStore) +} diff --git a/sei-tendermint/cmd/tendermint/commands/rollback_test.go b/sei-tendermint/cmd/tendermint/commands/rollback_test.go new file mode 100644 index 0000000000..6d1ba818f0 --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/rollback_test.go @@ -0,0 +1,79 @@ +package commands_test + +import ( + "context" + "testing" + "time" + + "github.com/stretchr/testify/require" + + "github.com/tendermint/tendermint/cmd/tendermint/commands" + "github.com/tendermint/tendermint/libs/log" + "github.com/tendermint/tendermint/rpc/client/local" + rpctest "github.com/tendermint/tendermint/rpc/test" + e2e "github.com/tendermint/tendermint/test/e2e/app" +) + +func TestRollbackIntegration(t *testing.T) { + var height int64 + dir := t.TempDir() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + cfg, err := rpctest.CreateConfig(t, t.Name()) + require.NoError(t, err) + cfg.BaseConfig.DBBackend = "goleveldb" + + app, err := e2e.NewApplication(e2e.DefaultConfig(dir)) + require.NoError(t, err) + + t.Run("First run", func(t *testing.T) { + ctx, cancel := context.WithCancel(ctx) + defer cancel() + require.NoError(t, err) + node, _, err := rpctest.StartTendermint(ctx, cfg, app, rpctest.SuppressStdout) + require.NoError(t, err) + require.True(t, node.IsRunning()) + + time.Sleep(3 * time.Second) + cancel() + node.Wait() + + require.False(t, node.IsRunning()) + }) + t.Run("Rollback", func(t *testing.T) { + time.Sleep(time.Second) + require.NoError(t, app.Rollback()) + height, _, err = commands.RollbackState(cfg) + require.NoError(t, err, "%d", height) + }) + t.Run("Restart", func(t *testing.T) { + require.True(t, height > 0, "%d", height) + + ctx, cancel := context.WithTimeout(ctx, 10*time.Second) + defer cancel() + node2, _, err2 := rpctest.StartTendermint(ctx, cfg, app, rpctest.SuppressStdout) + require.NoError(t, err2) + t.Cleanup(node2.Wait) + + logger := log.NewNopLogger() + + client, err := local.New(logger, node2.(local.NodeService)) + require.NoError(t, err) + + ticker := time.NewTicker(200 * time.Millisecond) + for { + select { + case <-ctx.Done(): + t.Fatalf("failed to make progress after 20 seconds. Min height: %d", height) + case <-ticker.C: + status, err := client.Status(ctx) + require.NoError(t, err) + + if status.SyncInfo.LatestBlockHeight > height { + return + } + } + } + }) + +} diff --git a/sei-tendermint/cmd/tendermint/commands/root.go b/sei-tendermint/cmd/tendermint/commands/root.go new file mode 100644 index 0000000000..fdee638bcb --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/root.go @@ -0,0 +1,69 @@ +package commands + +import ( + "fmt" + "os" + "path/filepath" + "time" + + "github.com/spf13/cobra" + "github.com/spf13/viper" + + "github.com/tendermint/tendermint/config" + "github.com/tendermint/tendermint/libs/cli" + "github.com/tendermint/tendermint/libs/log" +) + +const ctxTimeout = 4 * time.Second + +// ParseConfig retrieves the default environment configuration, +// sets up the Tendermint root and ensures that the root exists +func ParseConfig(conf *config.Config) (*config.Config, error) { + if err := viper.Unmarshal(conf); err != nil { + return nil, err + } + + conf.SetRoot(conf.RootDir) + + if err := conf.ValidateBasic(); err != nil { + return nil, fmt.Errorf("error in config file: %w", err) + } + return conf, nil +} + +// RootCommand constructs the root command-line entry point for Tendermint core. +func RootCommand(conf *config.Config, logger log.Logger) *cobra.Command { + cmd := &cobra.Command{ + Use: "tendermint", + Short: "BFT state machine replication for applications in any programming languages", + PersistentPreRunE: func(cmd *cobra.Command, args []string) error { + if cmd.Name() == VersionCmd.Name() { + return nil + } + + if err := cli.BindFlagsLoadViper(cmd, args); err != nil { + return err + } + + pconf, err := ParseConfig(conf) + if err != nil { + return err + } + *conf = *pconf + config.EnsureRoot(conf.RootDir) + if err := log.OverrideWithNewLogger(logger, conf.LogFormat, conf.LogLevel); err != nil { + return err + } + if warning := pconf.DeprecatedFieldWarning(); warning != nil { + logger.Info("WARNING", "deprecated field warning", warning) + } + + return nil + }, + } + cmd.PersistentFlags().StringP(cli.HomeFlag, "", os.ExpandEnv(filepath.Join("$HOME", config.DefaultTendermintDir)), "directory for config and data") + cmd.PersistentFlags().Bool(cli.TraceFlag, false, "print out full stack trace on errors") + cmd.PersistentFlags().String("log-level", conf.LogLevel, "log level") + cobra.OnInitialize(func() { cli.InitEnv("TM") }) + return cmd +} diff --git a/sei-tendermint/cmd/tendermint/commands/root_test.go b/sei-tendermint/cmd/tendermint/commands/root_test.go new file mode 100644 index 0000000000..54f96f907f --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/root_test.go @@ -0,0 +1,190 @@ +package commands + +import ( + "context" + "fmt" + "os" + "path/filepath" + "testing" + + "github.com/spf13/cobra" + "github.com/spf13/viper" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + cfg "github.com/tendermint/tendermint/config" + "github.com/tendermint/tendermint/libs/cli" + "github.com/tendermint/tendermint/libs/log" + tmos "github.com/tendermint/tendermint/libs/os" +) + +// writeConfigVals writes a toml file with the given values. +// It returns an error if writing was impossible. +func writeConfigVals(dir string, vals map[string]string) error { + data := "" + for k, v := range vals { + data += fmt.Sprintf("%s = \"%s\"\n", k, v) + } + cfile := filepath.Join(dir, "config.toml") + return os.WriteFile(cfile, []byte(data), 0600) +} + +// clearConfig clears env vars, the given root dir, and resets viper. +func clearConfig(t *testing.T, dir string) *cfg.Config { + t.Helper() + require.NoError(t, os.Unsetenv("TMHOME")) + require.NoError(t, os.Unsetenv("TM_HOME")) + require.NoError(t, os.RemoveAll(dir)) + + viper.Reset() + conf := cfg.DefaultConfig() + conf.RootDir = dir + return conf +} + +// prepare new rootCmd +func testRootCmd(conf *cfg.Config) *cobra.Command { + logger := log.NewNopLogger() + cmd := RootCommand(conf, logger) + cmd.RunE = func(cmd *cobra.Command, args []string) error { return nil } + + var l string + cmd.PersistentFlags().String("log", l, "Log") + return cmd +} + +func testSetup(ctx context.Context, t *testing.T, conf *cfg.Config, args []string, env map[string]string) error { + t.Helper() + + cmd := testRootCmd(conf) + viper.Set(cli.HomeFlag, conf.RootDir) + + // run with the args and env + args = append([]string{cmd.Use}, args...) + return cli.RunWithArgs(ctx, cmd, args, env) +} + +func TestRootHome(t *testing.T) { + defaultRoot := t.TempDir() + newRoot := filepath.Join(defaultRoot, "something-else") + cases := []struct { + args []string + env map[string]string + root string + }{ + {nil, nil, defaultRoot}, + {[]string{"--home", newRoot}, nil, newRoot}, + {nil, map[string]string{"TMHOME": newRoot}, newRoot}, + } + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + for i, tc := range cases { + t.Run(fmt.Sprint(i), func(t *testing.T) { + conf := clearConfig(t, tc.root) + + err := testSetup(ctx, t, conf, tc.args, tc.env) + require.NoError(t, err) + + require.Equal(t, tc.root, conf.RootDir) + require.Equal(t, tc.root, conf.P2P.RootDir) + require.Equal(t, tc.root, conf.Consensus.RootDir) + require.Equal(t, tc.root, conf.Mempool.RootDir) + }) + } +} + +func TestRootFlagsEnv(t *testing.T) { + // defaults + defaults := cfg.DefaultConfig() + defaultDir := t.TempDir() + + defaultLogLvl := defaults.LogLevel + + cases := []struct { + args []string + env map[string]string + logLevel string + }{ + {[]string{"--log", "debug"}, nil, defaultLogLvl}, // wrong flag + {[]string{"--log-level", "debug"}, nil, "debug"}, // right flag + {nil, map[string]string{"TM_LOW": "debug"}, defaultLogLvl}, // wrong env flag + {nil, map[string]string{"MT_LOG_LEVEL": "debug"}, defaultLogLvl}, // wrong env prefix + {nil, map[string]string{"TM_LOG_LEVEL": "debug"}, "debug"}, // right env + } + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + for i, tc := range cases { + t.Run(fmt.Sprint(i), func(t *testing.T) { + conf := clearConfig(t, defaultDir) + + err := testSetup(ctx, t, conf, tc.args, tc.env) + require.NoError(t, err) + + assert.Equal(t, tc.logLevel, conf.LogLevel) + }) + + } +} + +func TestRootConfig(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + // write non-default config + nonDefaultLogLvl := "debug" + cvals := map[string]string{ + "log-level": nonDefaultLogLvl, + } + + cases := []struct { + args []string + env map[string]string + logLvl string + }{ + {nil, nil, nonDefaultLogLvl}, // should load config + {[]string{"--log-level=info"}, nil, "info"}, // flag over rides + {nil, map[string]string{"TM_LOG_LEVEL": "info"}, "info"}, // env over rides + } + + for i, tc := range cases { + t.Run(fmt.Sprint(i), func(t *testing.T) { + defaultRoot := t.TempDir() + conf := clearConfig(t, defaultRoot) + conf.LogLevel = tc.logLvl + + // XXX: path must match cfg.defaultConfigPath + configFilePath := filepath.Join(defaultRoot, "config") + err := tmos.EnsureDir(configFilePath, 0700) + require.NoError(t, err) + + // write the non-defaults to a different path + // TODO: support writing sub configs so we can test that too + err = writeConfigVals(configFilePath, cvals) + require.NoError(t, err) + + cmd := testRootCmd(conf) + + // run with the args and env + tc.args = append([]string{cmd.Use}, tc.args...) + err = cli.RunWithArgs(ctx, cmd, tc.args, tc.env) + require.NoError(t, err) + + require.Equal(t, tc.logLvl, conf.LogLevel) + }) + } +} + +// WriteConfigVals writes a toml file with the given values. +// It returns an error if writing was impossible. +func WriteConfigVals(dir string, vals map[string]string) error { + data := "" + for k, v := range vals { + data += fmt.Sprintf("%s = \"%s\"\n", k, v) + } + cfile := filepath.Join(dir, "config.toml") + return os.WriteFile(cfile, []byte(data), 0600) +} diff --git a/sei-tendermint/cmd/tendermint/commands/run_node.go b/sei-tendermint/cmd/tendermint/commands/run_node.go new file mode 100644 index 0000000000..f4d49b91e6 --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/run_node.go @@ -0,0 +1,155 @@ +package commands + +import ( + "bytes" + "crypto/sha256" + "fmt" + "io" + "os" + "os/signal" + "syscall" + + "github.com/spf13/cobra" + + cfg "github.com/tendermint/tendermint/config" + "github.com/tendermint/tendermint/libs/log" +) + +var ( + genesisHash []byte +) + +// AddNodeFlags exposes some common configuration options from conf in the flag +// set for cmd. This is a convenience for commands embedding a Tendermint node. +func AddNodeFlags(cmd *cobra.Command, conf *cfg.Config) { + // bind flags + cmd.Flags().String("moniker", conf.Moniker, "node name") + + // mode flags + cmd.Flags().String("mode", conf.Mode, "node mode (full | validator | seed)") + + // priv val flags + cmd.Flags().String( + "priv-validator-laddr", + conf.PrivValidator.ListenAddr, + "socket address to listen on for connections from external priv-validator process") + + // node flags + + cmd.Flags().BytesHexVar( + &genesisHash, + "genesis-hash", + []byte{}, + "optional SHA-256 hash of the genesis file") + cmd.Flags().Int64("consensus.double-sign-check-height", conf.Consensus.DoubleSignCheckHeight, + "how many blocks to look back to check existence of the node's "+ + "consensus votes before joining consensus") + + // abci flags + cmd.Flags().String( + "proxy-app", + conf.ProxyApp, + "proxy app address, or one of: 'kvstore',"+ + " 'persistent_kvstore', 'e2e' or 'noop' for local testing.") + cmd.Flags().String("abci", conf.ABCI, "specify abci transport (socket | grpc)") + + // rpc flags + cmd.Flags().String("rpc.laddr", conf.RPC.ListenAddress, "RPC listen address. Port required") + cmd.Flags().Bool("rpc.unsafe", conf.RPC.Unsafe, "enabled unsafe rpc methods") + cmd.Flags().String("rpc.pprof-laddr", conf.RPC.PprofListenAddress, "pprof listen address (https://golang.org/pkg/net/http/pprof)") + + // p2p flags + cmd.Flags().String( + "p2p.laddr", + conf.P2P.ListenAddress, + "node listen address. (0.0.0.0:0 means any interface, any port)") + cmd.Flags().String("p2p.persistent-peers", conf.P2P.PersistentPeers, "comma-delimited ID@host:port persistent peers") + cmd.Flags().Bool("p2p.upnp", conf.P2P.UPNP, "enable/disable UPNP port forwarding") + cmd.Flags().Bool("p2p.pex", conf.P2P.PexReactor, "enable/disable Peer-Exchange") + cmd.Flags().String("p2p.private-peer-ids", conf.P2P.PrivatePeerIDs, "comma-delimited private peer IDs") + + // consensus flags + cmd.Flags().Bool( + "consensus.create-empty-blocks", + conf.Consensus.CreateEmptyBlocks, + "set this to false to only produce blocks when there are txs or when the AppHash changes") + cmd.Flags().String( + "consensus.create-empty-blocks-interval", + conf.Consensus.CreateEmptyBlocksInterval.String(), + "the possible interval between empty blocks") + + addDBFlags(cmd, conf) +} + +func addDBFlags(cmd *cobra.Command, conf *cfg.Config) { + cmd.Flags().String( + "db-backend", + conf.DBBackend, + "database backend: goleveldb | cleveldb | boltdb | rocksdb | badgerdb") + cmd.Flags().String( + "db-dir", + conf.DBPath, + "database directory") +} + +// NewRunNodeCmd returns the command that allows the CLI to start a node. +// It can be used with a custom PrivValidator and in-process ABCI application. +func NewRunNodeCmd(nodeProvider cfg.ServiceProvider, conf *cfg.Config, logger log.Logger) *cobra.Command { + cmd := &cobra.Command{ + Use: "start", + Aliases: []string{"node", "run"}, + Short: "Run the tendermint node", + RunE: func(cmd *cobra.Command, args []string) error { + if err := checkGenesisHash(conf); err != nil { + return err + } + + ctx, cancel := signal.NotifyContext(cmd.Context(), os.Interrupt, syscall.SIGTERM) + defer cancel() + + n, err := nodeProvider(ctx, conf, logger) + if err != nil { + return fmt.Errorf("failed to create node: %w", err) + } + + if err := n.Start(ctx); err != nil { + return fmt.Errorf("failed to start node: %w", err) + } + + logger.Info("started node", "chain", conf.ChainID()) + + <-ctx.Done() + return nil + }, + } + + AddNodeFlags(cmd, conf) + return cmd +} + +func checkGenesisHash(config *cfg.Config) error { + if len(genesisHash) == 0 || config.Genesis == "" { + return nil + } + + // Calculate SHA-256 hash of the genesis file. + f, err := os.Open(config.GenesisFile()) + if err != nil { + return fmt.Errorf("can't open genesis file: %w", err) + } + defer f.Close() + h := sha256.New() + if _, err := io.Copy(h, f); err != nil { + return fmt.Errorf("error when hashing genesis file: %w", err) + } + actualHash := h.Sum(nil) + + // Compare with the flag. + if !bytes.Equal(genesisHash, actualHash) { + return fmt.Errorf( + "--genesis-hash=%X does not match %s hash: %X", + genesisHash, config.GenesisFile(), actualHash) + } + + return nil +} diff --git a/sei-tendermint/cmd/tendermint/commands/show_node_id.go b/sei-tendermint/cmd/tendermint/commands/show_node_id.go new file mode 100644 index 0000000000..ffc6c4d5e0 --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/show_node_id.go @@ -0,0 +1,26 @@ +package commands + +import ( + "fmt" + + "github.com/spf13/cobra" + + "github.com/tendermint/tendermint/config" +) + +// MakeShowNodeIDCommand constructs a command to dump the node ID to stdout. +func MakeShowNodeIDCommand(conf *config.Config) *cobra.Command { + return &cobra.Command{ + Use: "show-node-id", + Short: "Show this node's ID", + RunE: func(cmd *cobra.Command, args []string) error { + nodeKeyID, err := conf.LoadNodeKeyID() + if err != nil { + return err + } + + fmt.Println(nodeKeyID) + return nil + }, + } +} diff --git a/sei-tendermint/cmd/tendermint/commands/show_validator.go b/sei-tendermint/cmd/tendermint/commands/show_validator.go new file mode 100644 index 0000000000..a0e8d75666 --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/show_validator.go @@ -0,0 +1,83 @@ +package commands + +import ( + "context" + "fmt" + + "github.com/spf13/cobra" + + "github.com/tendermint/tendermint/config" + "github.com/tendermint/tendermint/crypto" + "github.com/tendermint/tendermint/internal/jsontypes" + "github.com/tendermint/tendermint/libs/log" + tmnet "github.com/tendermint/tendermint/libs/net" + tmos "github.com/tendermint/tendermint/libs/os" + "github.com/tendermint/tendermint/privval" + tmgrpc "github.com/tendermint/tendermint/privval/grpc" +) + +// MakeShowValidatorCommand constructs a command to show the validator info. +func MakeShowValidatorCommand(conf *config.Config, logger log.Logger) *cobra.Command { + return &cobra.Command{ + Use: "show-validator", + Short: "Show this node's validator info", + RunE: func(cmd *cobra.Command, args []string) error { + var ( + pubKey crypto.PubKey + err error + bctx = cmd.Context() + ) + //TODO: remove once gRPC is the only supported protocol + protocol, _ := tmnet.ProtocolAndAddress(conf.PrivValidator.ListenAddr) + switch protocol { + case "grpc": + pvsc, err := tmgrpc.DialRemoteSigner( + bctx, + conf.PrivValidator, + conf.ChainID(), + logger, + conf.Instrumentation.Prometheus, + ) + if err != nil { + return fmt.Errorf("can't connect to remote validator %w", err) + } + + ctx, cancel := context.WithTimeout(bctx, ctxTimeout) + defer cancel() + + pubKey, err = pvsc.GetPubKey(ctx) + if err != nil { + return fmt.Errorf("can't get pubkey: %w", err) + } + default: + + keyFilePath := conf.PrivValidator.KeyFile() + if !tmos.FileExists(keyFilePath) { + return fmt.Errorf("private validator file %s does not exist", keyFilePath) + } + + pv, err := privval.LoadFilePV(keyFilePath, conf.PrivValidator.StateFile()) + if err != nil { + return err + } + + ctx, cancel := context.WithTimeout(bctx, ctxTimeout) + defer cancel() + + pubKey, err = pv.GetPubKey(ctx) + if err != nil { + return fmt.Errorf("can't get pubkey: %w", err) + } + } + + bz, err := jsontypes.Marshal(pubKey) + if err != nil { + return fmt.Errorf("failed to marshal private validator pubkey: %w", err) + } + + fmt.Println(string(bz)) + return nil + }, + } + +} diff --git a/sei-tendermint/cmd/tendermint/commands/testnet.go b/sei-tendermint/cmd/tendermint/commands/testnet.go new file mode 100644 index 0000000000..82c8cc6f9f --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/testnet.go @@ -0,0 +1,335 @@ +package commands + +import ( + "context" + "fmt" + "net" + "os" + "path/filepath" + "strings" + + "github.com/spf13/cobra" + "github.com/spf13/viper" + + cfg "github.com/tendermint/tendermint/config" + "github.com/tendermint/tendermint/libs/bytes" + "github.com/tendermint/tendermint/libs/log" + tmrand "github.com/tendermint/tendermint/libs/rand" + tmtime "github.com/tendermint/tendermint/libs/time" + "github.com/tendermint/tendermint/privval" + "github.com/tendermint/tendermint/types" +) + +const ( + nodeDirPerm = 0755 +) + +// MakeTestnetFilesCommand constructs a command to generate testnet config files. +func MakeTestnetFilesCommand(conf *cfg.Config, logger log.Logger) *cobra.Command { + cmd := &cobra.Command{ + Use: "testnet", + Short: "Initialize files for a Tendermint testnet", + Long: `testnet will create "v" + "n" number of directories and populate each with +necessary files (private validator, genesis, config, etc.). + +Note, strict routability for addresses is turned off in the config file. + +Optionally, it will fill in persistent-peers list in config file using either hostnames or IPs. + +Example: + + tendermint testnet --v 4 --o ./output --populate-persistent-peers --starting-ip-address 192.168.10.2 + `, + } + var ( + nValidators int + nNonValidators int + initialHeight int64 + configFile string + outputDir string + nodeDirPrefix string + + populatePersistentPeers bool + hostnamePrefix string + hostnameSuffix string + startingIPAddress string + hostnames []string + p2pPort int + randomMonikers bool + keyType string + ) + + cmd.Flags().IntVar(&nValidators, "v", 4, + "number of validators to initialize the testnet with") + cmd.Flags().StringVar(&configFile, "config", "", + "config file to use (note some options may be overwritten)") + cmd.Flags().IntVar(&nNonValidators, "n", 0, + "number of non-validators to initialize the testnet with") + cmd.Flags().StringVar(&outputDir, "o", "./mytestnet", + "directory to store initialization data for the testnet") + cmd.Flags().StringVar(&nodeDirPrefix, "node-dir-prefix", "node", + "prefix the directory name for each node with (node results in node0, node1, ...)") + cmd.Flags().Int64Var(&initialHeight, "initial-height", 0, + "initial height of the first block") + + cmd.Flags().BoolVar(&populatePersistentPeers, "populate-persistent-peers", true, + "update config of each node with the list of persistent peers build using either"+ + " hostname-prefix or"+ + " starting-ip-address") + cmd.Flags().StringVar(&hostnamePrefix, "hostname-prefix", "node", + "hostname prefix (\"node\" results in persistent peers list ID0@node0:26656, ID1@node1:26656, ...)") + cmd.Flags().StringVar(&hostnameSuffix, "hostname-suffix", "", + "hostname suffix ("+ + "\".xyz.com\""+ + " results in persistent peers list ID0@node0.xyz.com:26656, ID1@node1.xyz.com:26656, ...)") + cmd.Flags().StringVar(&startingIPAddress, "starting-ip-address", "", + "starting IP address ("+ + "\"192.168.0.1\""+ + " results in persistent peers list ID0@192.168.0.1:26656, ID1@192.168.0.2:26656, ...)") + cmd.Flags().StringArrayVar(&hostnames, "hostname", []string{}, + "manually override all hostnames of validators and non-validators (use --hostname multiple times for multiple hosts)") + cmd.Flags().IntVar(&p2pPort, "p2p-port", 26656, + "P2P Port") + cmd.Flags().BoolVar(&randomMonikers, "random-monikers", false, + "randomize the moniker for each generated node") + cmd.Flags().StringVar(&keyType, "key", types.ABCIPubKeyTypeEd25519, + "Key type to generate privval file with. Options: ed25519, secp256k1") + + cmd.RunE = func(cmd *cobra.Command, args []string) error { + if len(hostnames) > 0 && len(hostnames) != (nValidators+nNonValidators) { + return fmt.Errorf( + "testnet needs precisely %d hostnames (number of validators plus non-validators) if --hostname parameter is used", + nValidators+nNonValidators, + ) + } + + // set mode to validator for testnet + config := cfg.DefaultValidatorConfig() + + // overwrite default config if set and valid + if configFile != "" { + viper.SetConfigFile(configFile) + if err := viper.ReadInConfig(); err != nil { + return err + } + if err := viper.Unmarshal(config); err != nil { + return err + } + if err := config.ValidateBasic(); err != nil { + return err + } + } + + genVals := make([]types.GenesisValidator, nValidators) + ctx := cmd.Context() + for i := 0; i < nValidators; i++ { + nodeDirName := fmt.Sprintf("%s%d", nodeDirPrefix, i) + nodeDir := filepath.Join(outputDir, nodeDirName) + config.SetRoot(nodeDir) + + err := os.MkdirAll(filepath.Join(nodeDir, "config"), nodeDirPerm) + if err != nil { + _ = os.RemoveAll(outputDir) + return err + } + err = os.MkdirAll(filepath.Join(nodeDir, "data"), nodeDirPerm) + if err != nil { + _ = os.RemoveAll(outputDir) + return err + } + + if err := initFilesWithConfig(ctx, config, logger, keyType); err != nil { + return err + } + + pvKeyFile := filepath.Join(nodeDir, config.PrivValidator.Key) + pvStateFile := filepath.Join(nodeDir, config.PrivValidator.State) + pv, err := privval.LoadFilePV(pvKeyFile, pvStateFile) + if err != nil { + return err + } + + ctx, cancel := context.WithTimeout(ctx, ctxTimeout) + defer cancel() + + pubKey, err := pv.GetPubKey(ctx) + if err != nil { + return fmt.Errorf("can't get pubkey: %w", err) + } + genVals[i] = types.GenesisValidator{ + Address: pubKey.Address(), + PubKey: pubKey, + Power: 1, + Name: nodeDirName, + } + } + + for i := 0; i < nNonValidators; i++ { + nodeDir := filepath.Join(outputDir, fmt.Sprintf("%s%d", nodeDirPrefix, i+nValidators)) + config.SetRoot(nodeDir) + + err := os.MkdirAll(filepath.Join(nodeDir, "config"), nodeDirPerm) + if err != nil { + _ = os.RemoveAll(outputDir) + return err + } + + err = os.MkdirAll(filepath.Join(nodeDir, "data"), nodeDirPerm) + if err != nil { + _ = os.RemoveAll(outputDir) + return err + } + + if err := initFilesWithConfig(ctx, conf, logger, keyType); err != nil { + return err + } + } + + // Generate genesis doc from generated validators + genDoc := &types.GenesisDoc{ + ChainID: "chain-" + tmrand.Str(6), + GenesisTime: tmtime.Now(), + InitialHeight: initialHeight, + Validators: genVals, + ConsensusParams: types.DefaultConsensusParams(), + } + if keyType == "secp256k1" { + genDoc.ConsensusParams.Validator = types.ValidatorParams{ + PubKeyTypes: []string{types.ABCIPubKeyTypeSecp256k1}, + } + } + + // Write genesis file. + for i := 0; i < nValidators+nNonValidators; i++ { + nodeDir := filepath.Join(outputDir, fmt.Sprintf("%s%d", nodeDirPrefix, i)) + if err := genDoc.SaveAs(filepath.Join(nodeDir, config.BaseConfig.Genesis)); err != nil { + _ = os.RemoveAll(outputDir) + return err + } + } + + // Gather persistent peer addresses. + var ( + persistentPeers = make([]string, 0) + err error + ) + tpargs := testnetPeerArgs{ + numValidators: nValidators, + numNonValidators: nNonValidators, + peerToPeerPort: p2pPort, + nodeDirPrefix: nodeDirPrefix, + outputDir: outputDir, + hostnames: hostnames, + startingIPAddr: startingIPAddress, + hostnamePrefix: hostnamePrefix, + hostnameSuffix: hostnameSuffix, + randomMonikers: randomMonikers, + } + + if populatePersistentPeers { + + persistentPeers, err = persistentPeersArray(config, tpargs) + if err != nil { + _ = os.RemoveAll(outputDir) + return err + } + } + + // Overwrite default config. + for i := 0; i < nValidators+nNonValidators; i++ { + nodeDir := filepath.Join(outputDir, fmt.Sprintf("%s%d", nodeDirPrefix, i)) + config.SetRoot(nodeDir) + config.P2P.AllowDuplicateIP = true + if populatePersistentPeers { + persistentPeersWithoutSelf := make([]string, 0) + for j := 0; j < len(persistentPeers); j++ { + if j == i { + continue + } + persistentPeersWithoutSelf = append(persistentPeersWithoutSelf, persistentPeers[j]) + } + config.P2P.PersistentPeers = strings.Join(persistentPeersWithoutSelf, ",") + } + config.Moniker = tpargs.moniker(i) + + if err := cfg.WriteConfigFile(nodeDir, config); err != nil { + return err + } + } + + fmt.Printf("Successfully initialized %v node directories\n", nValidators+nNonValidators) + return nil + } + + return cmd +} + +type testnetPeerArgs struct { + numValidators int + numNonValidators int + peerToPeerPort int + nodeDirPrefix string + outputDir string + hostnames []string + startingIPAddr string + hostnamePrefix string + hostnameSuffix string + randomMonikers bool +} + +func (args *testnetPeerArgs) hostnameOrIP(i int) (string, error) { + if len(args.hostnames) > 0 && i < len(args.hostnames) { + return args.hostnames[i], nil + } + if args.startingIPAddr == "" { + return fmt.Sprintf("%s%d%s", args.hostnamePrefix, i, args.hostnameSuffix), nil + } + ip := net.ParseIP(args.startingIPAddr) + ip = ip.To4() + if ip == nil { + return "", fmt.Errorf("%v is non-ipv4 address", args.startingIPAddr) + } + + for j := 0; j < i; j++ { + ip[3]++ + } + return ip.String(), nil + +} + +// get an array of persistent peers +func persistentPeersArray(config *cfg.Config, args testnetPeerArgs) ([]string, error) { + peers := make([]string, args.numValidators+args.numNonValidators) + for i := 0; i < len(peers); i++ { + nodeDir := filepath.Join(args.outputDir, fmt.Sprintf("%s%d", args.nodeDirPrefix, i)) + config.SetRoot(nodeDir) + nodeKey, err := config.LoadNodeKeyID() + if err != nil { + return nil, err + } + addr, err := args.hostnameOrIP(i) + if err != nil { + return nil, err + } + + peers[i] = nodeKey.AddressString(fmt.Sprintf("%s:%d", addr, args.peerToPeerPort)) + } + return peers, nil +} + +func (args *testnetPeerArgs) moniker(i int) string { + if args.randomMonikers { + return randomMoniker() + } + if len(args.hostnames) > 0 && i < len(args.hostnames) { + return args.hostnames[i] + } + if args.startingIPAddr == "" { + return fmt.Sprintf("%s%d%s", args.hostnamePrefix, i, args.hostnameSuffix) + } + return randomMoniker() +} + +func randomMoniker() string { + return bytes.HexBytes(tmrand.Bytes(8)).String() +} diff --git a/sei-tendermint/cmd/tendermint/commands/version.go b/sei-tendermint/cmd/tendermint/commands/version.go new file mode 100644 index 0000000000..c23fd74c36 --- /dev/null +++ b/sei-tendermint/cmd/tendermint/commands/version.go @@ -0,0 +1,18 @@ +package commands + +import ( + "fmt" + + "github.com/spf13/cobra" + + "github.com/tendermint/tendermint/version" +) + +// VersionCmd ... +var VersionCmd = &cobra.Command{ + Use: "version", + Short: "Show version info", + Run: func(cmd *cobra.Command, args []string) { + fmt.Println(version.TMVersion) + }, +} diff --git a/sei-tendermint/cmd/tendermint/main.go b/sei-tendermint/cmd/tendermint/main.go new file mode 100644 index 0000000000..1be614aeaf --- /dev/null +++ b/sei-tendermint/cmd/tendermint/main.go @@ -0,0 +1,66 @@ +package main + +import ( + "context" + + "github.com/tendermint/tendermint/cmd/tendermint/commands" + "github.com/tendermint/tendermint/cmd/tendermint/commands/debug" + "github.com/tendermint/tendermint/config" + "github.com/tendermint/tendermint/libs/cli" + "github.com/tendermint/tendermint/libs/log" + "github.com/tendermint/tendermint/node" +) + +func main() { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + conf, err := commands.ParseConfig(config.DefaultConfig()) + if err != nil { + panic(err) + } + + logger, err := log.NewDefaultLogger(conf.LogFormat, conf.LogLevel) + if err != nil { + panic(err) + } + + rcmd := commands.RootCommand(conf, logger) + rcmd.AddCommand( + commands.MakeGenValidatorCommand(), + commands.MakeReindexEventCommand(conf, logger), + commands.MakeInitFilesCommand(conf, logger), + commands.MakeLightCommand(conf, logger), + commands.MakeReplayCommand(conf, logger), + commands.MakeReplayConsoleCommand(conf, logger), + commands.MakeResetCommand(conf, logger), + commands.MakeShowValidatorCommand(conf, logger), + commands.MakeTestnetFilesCommand(conf, logger), + commands.MakeShowNodeIDCommand(conf), + commands.GenNodeKeyCmd, + commands.VersionCmd, + commands.MakeInspectCommand(conf, logger), + commands.MakeRollbackStateCommand(conf), + commands.MakeKeyMigrateCommand(conf, logger), + debug.GetDebugCommand(logger), + commands.NewCompletionCmd(rcmd, true), + commands.MakeCompactDBCommand(conf, logger), + ) + + // NOTE: + // Users wishing to: + // * Use an external signer for their validators + // * Supply an in-proc abci app + // * Supply a genesis doc file from another source + // * Provide their own DB implementation + // can copy this file and use something other than the + // node.NewDefault function + nodeFunc := node.NewDefault + + // Create & start node + rcmd.AddCommand(commands.NewRunNodeCmd(nodeFunc, conf, logger)) + + if err := cli.RunWithTrace(ctx, rcmd); err != nil { + panic(err) + } +} diff --git a/sei-tendermint/config/config.go b/sei-tendermint/config/config.go new file mode 100644 index 0000000000..43b3fc10f3 --- /dev/null +++ b/sei-tendermint/config/config.go @@ -0,0 +1,1232 @@ +package config + +import ( + "encoding/hex" + "encoding/json" + "errors" + "fmt" + "net/http" + "os" + "path/filepath" + "strings" + "time" + + "github.com/tendermint/tendermint/libs/log" + tmos "github.com/tendermint/tendermint/libs/os" + "github.com/tendermint/tendermint/types" +) + +const ( + // FuzzModeDrop is a mode in which we randomly drop reads/writes, connections or sleep + FuzzModeDrop = iota + // FuzzModeDelay is a mode in which we randomly sleep + FuzzModeDelay + + // DefaultLogLevel defines a default log level as INFO. + DefaultLogLevel = "info" + + ModeFull = "full" + ModeValidator = "validator" + ModeSeed = "seed" +) + +// NOTE: Most of the structs & relevant comments + the +// default configuration options were used to manually +// generate the config.toml. Please reflect any changes +// made here in the defaultConfigTemplate constant in +// config/toml.go +// NOTE: libs/cli must know to look in the config dir! +var ( + DefaultTendermintDir = ".tendermint" + defaultConfigDir = "config" + defaultDataDir = "data" + + defaultConfigFileName = "config.toml" + defaultGenesisJSONName = "genesis.json" + + defaultMode = ModeFull + defaultPrivValKeyName = "priv_validator_key.json" + defaultPrivValStateName = "priv_validator_state.json" + + defaultNodeKeyName = "node_key.json" + + defaultConfigFilePath = filepath.Join(defaultConfigDir, defaultConfigFileName) + defaultGenesisJSONPath = filepath.Join(defaultConfigDir, defaultGenesisJSONName) + defaultPrivValKeyPath = filepath.Join(defaultConfigDir, defaultPrivValKeyName) + defaultPrivValStatePath = filepath.Join(defaultDataDir, defaultPrivValStateName) + + defaultNodeKeyPath = filepath.Join(defaultConfigDir, defaultNodeKeyName) +) + +// Config defines the top level configuration for a Tendermint node +type Config struct { + // Top level options use an anonymous struct + BaseConfig `mapstructure:",squash"` + + // Options for services + RPC *RPCConfig `mapstructure:"rpc"` + P2P *P2PConfig `mapstructure:"p2p"` + Mempool *MempoolConfig `mapstructure:"mempool"` + StateSync *StateSyncConfig `mapstructure:"statesync"` + Consensus *ConsensusConfig `mapstructure:"consensus"` + TxIndex *TxIndexConfig `mapstructure:"tx-index"` + Instrumentation *InstrumentationConfig `mapstructure:"instrumentation"` + PrivValidator *PrivValidatorConfig `mapstructure:"priv-validator"` +} + +// DefaultConfig returns a default configuration for a Tendermint node +func DefaultConfig() *Config { + return &Config{ + BaseConfig: DefaultBaseConfig(), + RPC: DefaultRPCConfig(), + P2P: DefaultP2PConfig(), + Mempool: DefaultMempoolConfig(), + StateSync: DefaultStateSyncConfig(), + Consensus: DefaultConsensusConfig(), + TxIndex: DefaultTxIndexConfig(), + Instrumentation: DefaultInstrumentationConfig(), + PrivValidator: DefaultPrivValidatorConfig(), + } +} + +// DefaultValidatorConfig returns default config with mode as validator +func DefaultValidatorConfig() *Config { + cfg := DefaultConfig() + cfg.Mode = ModeValidator + return cfg +} + +// TestConfig returns a configuration that can be used for testing +func TestConfig() *Config { + return &Config{ + BaseConfig: TestBaseConfig(), + RPC: TestRPCConfig(), + P2P: TestP2PConfig(), + Mempool: TestMempoolConfig(), + StateSync: TestStateSyncConfig(), + Consensus: TestConsensusConfig(), + TxIndex: TestTxIndexConfig(), + Instrumentation: TestInstrumentationConfig(), + PrivValidator: DefaultPrivValidatorConfig(), + } +} + +// SetRoot sets the RootDir for all Config structs +func (cfg *Config) SetRoot(root string) *Config { + cfg.BaseConfig.RootDir = root + cfg.RPC.RootDir = root + cfg.P2P.RootDir = root + cfg.Mempool.RootDir = root + cfg.Consensus.RootDir = root + cfg.PrivValidator.RootDir = root + return cfg +} + +// ValidateBasic performs basic validation (checking param bounds, etc.) and +// returns an error if any check fails. +func (cfg *Config) ValidateBasic() error { + if err := cfg.BaseConfig.ValidateBasic(); err != nil { + return err + } + if err := cfg.RPC.ValidateBasic(); err != nil { + return fmt.Errorf("error in [rpc] section: %w", err) + } + if err := cfg.Mempool.ValidateBasic(); err != nil { + return fmt.Errorf("error in [mempool] section: %w", err) + } + if err := cfg.StateSync.ValidateBasic(); err != nil { + return fmt.Errorf("error in [statesync] section: %w", err) + } + if err := cfg.Consensus.ValidateBasic(); err != nil { + return fmt.Errorf("error in [consensus] section: %w", err) + } + if err := cfg.Instrumentation.ValidateBasic(); err != nil { + return fmt.Errorf("error in [instrumentation] section: %w", err) + } + return nil +} + +func (cfg *Config) DeprecatedFieldWarning() error { + return cfg.Consensus.DeprecatedFieldWarning() +} + +//----------------------------------------------------------------------------- +// BaseConfig + +// BaseConfig defines the base configuration for a Tendermint node +type BaseConfig struct { //nolint: maligned + // chainID is unexposed and immutable but here for convenience + chainID string + + // The root directory for all data. + // This should be set in viper so it can unmarshal into this struct + RootDir string `mapstructure:"home"` + + // TCP or UNIX socket address of the ABCI application, + // or the name of an ABCI application compiled in with the Tendermint binary + ProxyApp string `mapstructure:"proxy-app"` + + // A custom human readable name for this node + Moniker string `mapstructure:"moniker"` + + // Mode of Node: full | validator | seed + // * validator + // - all reactors + // - with priv_validator_key.json, priv_validator_state.json + // * full + // - all reactors + // - No priv_validator_key.json, priv_validator_state.json + // * seed + // - only P2P, PEX Reactor + // - No priv_validator_key.json, priv_validator_state.json + Mode string `mapstructure:"mode"` + + // Database backend: goleveldb | cleveldb | boltdb | rocksdb + // * goleveldb (github.com/syndtr/goleveldb - most popular implementation) + // - pure go + // - stable + // * cleveldb (uses levigo wrapper) + // - fast + // - requires gcc + // - use cleveldb build tag (go build -tags cleveldb) + // * boltdb (uses etcd's fork of bolt - github.com/etcd-io/bbolt) + // - EXPERIMENTAL + // - may be faster is some use-cases (random reads - indexer) + // - use boltdb build tag (go build -tags boltdb) + // * rocksdb (uses github.com/tecbot/gorocksdb) + // - EXPERIMENTAL + // - requires gcc + // - use rocksdb build tag (go build -tags rocksdb) + // * badgerdb (uses github.com/dgraph-io/badger) + // - EXPERIMENTAL + // - use badgerdb build tag (go build -tags badgerdb) + DBBackend string `mapstructure:"db-backend"` + + // Database directory + DBPath string `mapstructure:"db-dir"` + + // Output level for logging + LogLevel string `mapstructure:"log-level"` + + // Output format: 'plain' (colored text) or 'json' + LogFormat string `mapstructure:"log-format"` + + // Path to the JSON file containing the initial validator set and other meta data + Genesis string `mapstructure:"genesis-file"` + + // A JSON file containing the private key to use for p2p authenticated encryption + NodeKey string `mapstructure:"node-key-file"` + + // Mechanism to connect to the ABCI application: socket | grpc + ABCI string `mapstructure:"abci"` + + // If true, query the ABCI app on connecting to a new peer + // so the app can decide if we should keep the connection or not + FilterPeers bool `mapstructure:"filter-peers"` // false + + Other map[string]interface{} `mapstructure:",remain"` +} + +// DefaultBaseConfig returns a default base configuration for a Tendermint node +func DefaultBaseConfig() BaseConfig { + return BaseConfig{ + Genesis: defaultGenesisJSONPath, + NodeKey: defaultNodeKeyPath, + Mode: defaultMode, + Moniker: defaultMoniker, + ProxyApp: "tcp://127.0.0.1:26658", + ABCI: "socket", + LogLevel: DefaultLogLevel, + LogFormat: log.LogFormatPlain, + FilterPeers: false, + DBBackend: "goleveldb", + DBPath: "data", + } +} + +// TestBaseConfig returns a base configuration for testing a Tendermint node +func TestBaseConfig() BaseConfig { + cfg := DefaultBaseConfig() + cfg.chainID = "tendermint_test" + cfg.Mode = ModeValidator + cfg.ProxyApp = "kvstore" + cfg.DBBackend = "memdb" + return cfg +} + +func (cfg BaseConfig) ChainID() string { + return cfg.chainID +} + +// GenesisFile returns the full path to the genesis.json file +func (cfg BaseConfig) GenesisFile() string { + return rootify(cfg.Genesis, cfg.RootDir) +} + +// NodeKeyFile returns the full path to the node_key.json file +func (cfg BaseConfig) NodeKeyFile() string { + return rootify(cfg.NodeKey, cfg.RootDir) +} + +// LoadNodeKey loads NodeKey located in filePath. +func (cfg BaseConfig) LoadNodeKeyID() (types.NodeID, error) { + jsonBytes, err := os.ReadFile(cfg.NodeKeyFile()) + if err != nil { + return "", err + } + nodeKey := types.NodeKey{} + err = json.Unmarshal(jsonBytes, &nodeKey) + if err != nil { + return "", err + } + nodeKey.ID = types.NodeIDFromPubKey(nodeKey.PubKey()) + return nodeKey.ID, nil +} + +// LoadOrGenNodeKey attempts to load the NodeKey from the given filePath. If +// the file does not exist, it generates and saves a new NodeKey. +func (cfg BaseConfig) LoadOrGenNodeKeyID() (types.NodeID, error) { + if tmos.FileExists(cfg.NodeKeyFile()) { + nodeKey, err := cfg.LoadNodeKeyID() + if err != nil { + return "", err + } + return nodeKey, nil + } + + nodeKey := types.GenNodeKey() + + if err := nodeKey.SaveAs(cfg.NodeKeyFile()); err != nil { + return "", err + } + + return nodeKey.ID, nil +} + +// DBDir returns the full path to the database directory +func (cfg BaseConfig) DBDir() string { + return rootify(cfg.DBPath, cfg.RootDir) +} + +// ValidateBasic performs basic validation (checking param bounds, etc.) and +// returns an error if any check fails. +func (cfg BaseConfig) ValidateBasic() error { + switch cfg.LogFormat { + case log.LogFormatJSON, log.LogFormatText, log.LogFormatPlain: + default: + return errors.New("unknown log format (must be 'plain', 'text' or 'json')") + } + + switch cfg.Mode { + case ModeFull, ModeValidator, ModeSeed: + case "": + return errors.New("no mode has been set") + + default: + return fmt.Errorf("unknown mode: %v", cfg.Mode) + } + + return nil +} + +//----------------------------------------------------------------------------- +// PrivValidatorConfig + +// PrivValidatorConfig defines the configuration parameters for running a validator +type PrivValidatorConfig struct { + RootDir string `mapstructure:"home"` + + // Path to the JSON file containing the private key to use as a validator in the consensus protocol + Key string `mapstructure:"key-file"` + + // Path to the JSON file containing the last sign state of a validator + State string `mapstructure:"state-file"` + + // TCP or UNIX socket address for Tendermint to listen on for + // connections from an external PrivValidator process + ListenAddr string `mapstructure:"laddr"` + + // Client certificate generated while creating needed files for secure connection. + // If a remote validator address is provided but no certificate, the connection will be insecure + ClientCertificate string `mapstructure:"client-certificate-file"` + + // Client key generated while creating certificates for secure connection + ClientKey string `mapstructure:"client-key-file"` + + // Path Root Certificate Authority used to sign both client and server certificates + RootCA string `mapstructure:"root-ca-file"` +} + +// DefaultBaseConfig returns a default private validator configuration +// for a Tendermint node. +func DefaultPrivValidatorConfig() *PrivValidatorConfig { + return &PrivValidatorConfig{ + Key: defaultPrivValKeyPath, + State: defaultPrivValStatePath, + } +} + +// ClientKeyFile returns the full path to the priv_validator_key.json file +func (cfg *PrivValidatorConfig) ClientKeyFile() string { + return rootify(cfg.ClientKey, cfg.RootDir) +} + +// ClientCertificateFile returns the full path to the priv_validator_key.json file +func (cfg *PrivValidatorConfig) ClientCertificateFile() string { + return rootify(cfg.ClientCertificate, cfg.RootDir) +} + +// CertificateAuthorityFile returns the full path to the priv_validator_key.json file +func (cfg *PrivValidatorConfig) RootCAFile() string { + return rootify(cfg.RootCA, cfg.RootDir) +} + +// KeyFile returns the full path to the priv_validator_key.json file +func (cfg *PrivValidatorConfig) KeyFile() string { + return rootify(cfg.Key, cfg.RootDir) +} + +// StateFile returns the full path to the priv_validator_state.json file +func (cfg *PrivValidatorConfig) StateFile() string { + return rootify(cfg.State, cfg.RootDir) +} + +func (cfg *PrivValidatorConfig) AreSecurityOptionsPresent() bool { + switch { + case cfg.RootCA == "": + return false + case cfg.ClientKey == "": + return false + case cfg.ClientCertificate == "": + return false + default: + return true + } +} + +//----------------------------------------------------------------------------- +// RPCConfig + +// RPCConfig defines the configuration options for the Tendermint RPC server +type RPCConfig struct { + RootDir string `mapstructure:"home"` + + // TCP or UNIX socket address for the RPC server to listen on + ListenAddress string `mapstructure:"laddr"` + + // A list of origins a cross-domain request can be executed from. + // If the special '*' value is present in the list, all origins will be allowed. + // An origin may contain a wildcard (*) to replace 0 or more characters (i.e.: http://*.domain.com). + // Only one wildcard can be used per origin. + CORSAllowedOrigins []string `mapstructure:"cors-allowed-origins"` + + // A list of methods the client is allowed to use with cross-domain requests. + CORSAllowedMethods []string `mapstructure:"cors-allowed-methods"` + + // A list of non simple headers the client is allowed to use with cross-domain requests. + CORSAllowedHeaders []string `mapstructure:"cors-allowed-headers"` + + // Activate unsafe RPC commands like /dial-persistent-peers and /unsafe-flush-mempool + Unsafe bool `mapstructure:"unsafe"` + + // Maximum number of simultaneous connections (including WebSocket). + // If you want to accept a larger number than the default, make sure + // you increase your OS limits. + // 0 - unlimited. + // Should be < {ulimit -Sn} - {MaxNumInboundPeers} - {MaxNumOutboundPeers} - {N of wal, db and other open files} + // 1024 - 40 - 10 - 50 = 924 = ~900 + MaxOpenConnections int `mapstructure:"max-open-connections"` + + // Maximum number of unique clientIDs that can /subscribe + // If you're using /broadcast_tx_commit, set to the estimated maximum number + // of broadcast_tx_commit calls per block. + MaxSubscriptionClients int `mapstructure:"max-subscription-clients"` + + // Maximum number of unique queries a given client can /subscribe to + // If you're using a Local RPC client and /broadcast_tx_commit, set this + // to the estimated maximum number of broadcast_tx_commit calls per block. + MaxSubscriptionsPerClient int `mapstructure:"max-subscriptions-per-client"` + + // If true, disable the websocket interface to the RPC service. This has + // the effect of disabling the /subscribe, /unsubscribe, and /unsubscribe_all + // methods for event subscription. + // + // EXPERIMENTAL: This setting will be removed in Tendermint v0.37. + ExperimentalDisableWebsocket bool `mapstructure:"experimental-disable-websocket"` + + // The time window size for the event log. All events up to this long before + // the latest (up to EventLogMaxItems) will be available for subscribers to + // fetch via the /events method. If 0 (the default) the event log and the + // /events RPC method are disabled. + EventLogWindowSize time.Duration `mapstructure:"event-log-window-size"` + + // The maxiumum number of events that may be retained by the event log. If + // this value is 0, no upper limit is set. Otherwise, items in excess of + // this number will be discarded from the event log. + // + // Warning: This setting is a safety valve. Setting it too low may cause + // subscribers to miss events. Try to choose a value higher than the + // maximum worst-case expected event load within the chosen window size in + // ordinary operation. + // + // For example, if the window size is 10 minutes and the node typically + // averages 1000 events per ten minutes, but with occasional known spikes of + // up to 2000, choose a value > 2000. + EventLogMaxItems int `mapstructure:"event-log-max-items"` + + // How long to wait for a tx to be committed during /broadcast_tx_commit + // WARNING: Using a value larger than 10s will result in increasing the + // global HTTP write timeout, which applies to all connections and endpoints. + // See https://github.com/tendermint/tendermint/issues/3435 + TimeoutBroadcastTxCommit time.Duration `mapstructure:"timeout-broadcast-tx-commit"` + + // Maximum size of request body, in bytes + MaxBodyBytes int64 `mapstructure:"max-body-bytes"` + + // Maximum size of request header, in bytes + MaxHeaderBytes int `mapstructure:"max-header-bytes"` + + // The path to a file containing certificate that is used to create the HTTPS server. + // Might be either absolute path or path related to Tendermint's config directory. + // + // If the certificate is signed by a certificate authority, + // the certFile should be the concatenation of the server's certificate, any intermediates, + // and the CA's certificate. + // + // NOTE: both tls-cert-file and tls-key-file must be present for Tendermint to create HTTPS server. + // Otherwise, HTTP server is run. + TLSCertFile string `mapstructure:"tls-cert-file"` + + // The path to a file containing matching private key that is used to create the HTTPS server. + // Might be either absolute path or path related to tendermint's config directory. + // + // NOTE: both tls-cert-file and tls-key-file must be present for Tendermint to create HTTPS server. + // Otherwise, HTTP server is run. + TLSKeyFile string `mapstructure:"tls-key-file"` + + // pprof listen address (https://golang.org/pkg/net/http/pprof) + PprofListenAddress string `mapstructure:"pprof-laddr"` +} + +// DefaultRPCConfig returns a default configuration for the RPC server +func DefaultRPCConfig() *RPCConfig { + return &RPCConfig{ + ListenAddress: "tcp://127.0.0.1:26657", + CORSAllowedOrigins: []string{}, + CORSAllowedMethods: []string{http.MethodHead, http.MethodGet, http.MethodPost}, + CORSAllowedHeaders: []string{"Origin", "Accept", "Content-Type", "X-Requested-With", "X-Server-Time"}, + + Unsafe: false, + MaxOpenConnections: 900, + + // Settings for event subscription. + MaxSubscriptionClients: 100, + MaxSubscriptionsPerClient: 5, + ExperimentalDisableWebsocket: false, // compatible with TM v0.35 and earlier + EventLogWindowSize: 30 * time.Second, + EventLogMaxItems: 0, + + TimeoutBroadcastTxCommit: 10 * time.Second, + + MaxBodyBytes: int64(1000000), // 1MB + MaxHeaderBytes: 1 << 20, // same as the net/http default + + TLSCertFile: "", + TLSKeyFile: "", + } +} + +// TestRPCConfig returns a configuration for testing the RPC server +func TestRPCConfig() *RPCConfig { + cfg := DefaultRPCConfig() + cfg.ListenAddress = "tcp://127.0.0.1:36657" + cfg.Unsafe = true + return cfg +} + +// ValidateBasic performs basic validation (checking param bounds, etc.) and +// returns an error if any check fails. +func (cfg *RPCConfig) ValidateBasic() error { + if cfg.MaxOpenConnections < 0 { + return errors.New("max-open-connections can't be negative") + } + if cfg.MaxSubscriptionClients < 0 { + return errors.New("max-subscription-clients can't be negative") + } + if cfg.MaxSubscriptionsPerClient < 0 { + return errors.New("max-subscriptions-per-client can't be negative") + } + if cfg.EventLogWindowSize < 0 { + return errors.New("event-log-window-size must not be negative") + } + if cfg.EventLogMaxItems < 0 { + return errors.New("event-log-max-items must not be negative") + } + if cfg.TimeoutBroadcastTxCommit < 0 { + return errors.New("timeout-broadcast-tx-commit can't be negative") + } + if cfg.MaxBodyBytes < 0 { + return errors.New("max-body-bytes can't be negative") + } + if cfg.MaxHeaderBytes < 0 { + return errors.New("max-header-bytes can't be negative") + } + return nil +} + +// IsCorsEnabled returns true if cross-origin resource sharing is enabled. +func (cfg *RPCConfig) IsCorsEnabled() bool { + return len(cfg.CORSAllowedOrigins) != 0 +} + +func (cfg RPCConfig) KeyFile() string { + path := cfg.TLSKeyFile + if filepath.IsAbs(path) { + return path + } + return rootify(filepath.Join(defaultConfigDir, path), cfg.RootDir) +} + +func (cfg RPCConfig) CertFile() string { + path := cfg.TLSCertFile + if filepath.IsAbs(path) { + return path + } + return rootify(filepath.Join(defaultConfigDir, path), cfg.RootDir) +} + +func (cfg RPCConfig) IsTLSEnabled() bool { + return cfg.TLSCertFile != "" && cfg.TLSKeyFile != "" +} + +//----------------------------------------------------------------------------- +// P2PConfig + +// P2PConfig defines the configuration options for the Tendermint peer-to-peer networking layer +type P2PConfig struct { //nolint: maligned + RootDir string `mapstructure:"home"` + + // Address to listen for incoming connections + ListenAddress string `mapstructure:"laddr"` + + // Address to advertise to peers for them to dial + ExternalAddress string `mapstructure:"external-address"` + + // Comma separated list of peers to be added to the peer store + // on startup. Either BootstrapPeers or PersistentPeers are + // needed for peer discovery + BootstrapPeers string `mapstructure:"bootstrap-peers"` + + // Comma separated list of nodes to keep persistent connections to + PersistentPeers string `mapstructure:"persistent-peers"` + + // UPNP port forwarding + UPNP bool `mapstructure:"upnp"` + + // MaxConnections defines the maximum number of connected peers (inbound and + // outbound). + MaxConnections uint16 `mapstructure:"max-connections"` + + // MaxIncomingConnectionAttempts rate limits the number of incoming connection + // attempts per IP address. + MaxIncomingConnectionAttempts uint `mapstructure:"max-incoming-connection-attempts"` + + // Set true to enable the peer-exchange reactor + PexReactor bool `mapstructure:"pex"` + + // Comma separated list of peer IDs to keep private (will not be gossiped to + // other peers) + PrivatePeerIDs string `mapstructure:"private-peer-ids"` + + // Toggle to disable guard against peers connecting from the same ip. + AllowDuplicateIP bool `mapstructure:"allow-duplicate-ip"` + + // Time to wait before flushing messages out on the connection + FlushThrottleTimeout time.Duration `mapstructure:"flush-throttle-timeout"` + + // Maximum size of a message packet payload, in bytes + MaxPacketMsgPayloadSize int `mapstructure:"max-packet-msg-payload-size"` + + // Rate at which packets can be sent, in bytes/second + SendRate int64 `mapstructure:"send-rate"` + + // Rate at which packets can be received, in bytes/second + RecvRate int64 `mapstructure:"recv-rate"` + + // Peer connection configuration. + HandshakeTimeout time.Duration `mapstructure:"handshake-timeout"` + DialTimeout time.Duration `mapstructure:"dial-timeout"` + + // Testing params. + // Force dial to fail + TestDialFail bool `mapstructure:"test-dial-fail"` + + // Makes it possible to configure which queue backend the p2p + // layer uses. Options are: "fifo" and "priority", + // with the default being "priority". + QueueType string `mapstructure:"queue-type"` +} + +// DefaultP2PConfig returns a default configuration for the peer-to-peer layer +func DefaultP2PConfig() *P2PConfig { + return &P2PConfig{ + ListenAddress: "tcp://0.0.0.0:26656", + ExternalAddress: "", + UPNP: false, + MaxConnections: 64, + MaxIncomingConnectionAttempts: 100, + FlushThrottleTimeout: 100 * time.Millisecond, + // The MTU (Maximum Transmission Unit) for Ethernet is 1500 bytes. + // The IP header and the TCP header take up 20 bytes each at least (unless + // optional header fields are used) and thus the max for (non-Jumbo frame) + // Ethernet is 1500 - 20 -20 = 1460 + // Source: https://stackoverflow.com/a/3074427/820520 + MaxPacketMsgPayloadSize: 1400, + SendRate: 5120000, // 5 mB/s + RecvRate: 5120000, // 5 mB/s + PexReactor: true, + AllowDuplicateIP: false, + HandshakeTimeout: 20 * time.Second, + DialTimeout: 3 * time.Second, + TestDialFail: false, + QueueType: "priority", + } +} + +// ValidateBasic performs basic validation (checking param bounds, etc.) and +// returns an error if any check fails. +func (cfg *P2PConfig) ValidateBasic() error { + if cfg.FlushThrottleTimeout < 0 { + return errors.New("flush-throttle-timeout can't be negative") + } + if cfg.MaxPacketMsgPayloadSize < 0 { + return errors.New("max-packet-msg-payload-size can't be negative") + } + if cfg.SendRate < 0 { + return errors.New("send-rate can't be negative") + } + if cfg.RecvRate < 0 { + return errors.New("recv-rate can't be negative") + } + return nil +} + +// TestP2PConfig returns a configuration for testing the peer-to-peer layer +func TestP2PConfig() *P2PConfig { + cfg := DefaultP2PConfig() + cfg.ListenAddress = "tcp://127.0.0.1:36656" + cfg.AllowDuplicateIP = true + cfg.FlushThrottleTimeout = 10 * time.Millisecond + return cfg +} + +//----------------------------------------------------------------------------- +// MempoolConfig + +// MempoolConfig defines the configuration options for the Tendermint mempool. +type MempoolConfig struct { + RootDir string `mapstructure:"home"` + + // Whether to broadcast transactions to other nodes + Broadcast bool `mapstructure:"broadcast"` + + // Maximum number of transactions in the mempool + Size int `mapstructure:"size"` + + // Limit the total size of all txs in the mempool. + // This only accounts for raw transactions (e.g. given 1MB transactions and + // max-txs-bytes=5MB, mempool will only accept 5 transactions). + MaxTxsBytes int64 `mapstructure:"max-txs-bytes"` + + // Size of the cache (used to filter transactions we saw earlier) in transactions + CacheSize int `mapstructure:"cache-size"` + + // Do not remove invalid transactions from the cache (default: false) + // Set to true if it's not possible for any invalid transaction to become + // valid again in the future. + KeepInvalidTxsInCache bool `mapstructure:"keep-invalid-txs-in-cache"` + + // Maximum size of a single transaction + // NOTE: the max size of a tx transmitted over the network is {max-tx-bytes}. + MaxTxBytes int `mapstructure:"max-tx-bytes"` + + // Maximum size of a batch of transactions to send to a peer + // Including space needed by encoding (one varint per transaction). + // XXX: Unused due to https://github.com/tendermint/tendermint/issues/5796 + MaxBatchBytes int `mapstructure:"max-batch-bytes"` + + // TTLDuration, if non-zero, defines the maximum amount of time a transaction + // can exist for in the mempool. + // + // Note, if TTLNumBlocks is also defined, a transaction will be removed if it + // has existed in the mempool at least TTLNumBlocks number of blocks or if it's + // insertion time into the mempool is beyond TTLDuration. + TTLDuration time.Duration `mapstructure:"ttl-duration"` + + // TTLNumBlocks, if non-zero, defines the maximum number of blocks a transaction + // can exist for in the mempool. + // + // Note, if TTLDuration is also defined, a transaction will be removed if it + // has existed in the mempool at least TTLNumBlocks number of blocks or if + // it's insertion time into the mempool is beyond TTLDuration. + TTLNumBlocks int64 `mapstructure:"ttl-num-blocks"` +} + +// DefaultMempoolConfig returns a default configuration for the Tendermint mempool. +func DefaultMempoolConfig() *MempoolConfig { + return &MempoolConfig{ + Broadcast: true, + // Each signature verification takes .5ms, Size reduced until we implement + // ABCI Recheck + Size: 5000, + MaxTxsBytes: 1024 * 1024 * 1024, // 1GB + CacheSize: 10000, + MaxTxBytes: 1024 * 1024, // 1MB + TTLDuration: 0 * time.Second, + TTLNumBlocks: 0, + } +} + +// TestMempoolConfig returns a configuration for testing the Tendermint mempool +func TestMempoolConfig() *MempoolConfig { + cfg := DefaultMempoolConfig() + cfg.CacheSize = 1000 + return cfg +} + +// ValidateBasic performs basic validation (checking param bounds, etc.) and +// returns an error if any check fails. +func (cfg *MempoolConfig) ValidateBasic() error { + if cfg.Size < 0 { + return errors.New("size can't be negative") + } + if cfg.MaxTxsBytes < 0 { + return errors.New("max-txs-bytes can't be negative") + } + if cfg.CacheSize < 0 { + return errors.New("cache-size can't be negative") + } + if cfg.MaxTxBytes < 0 { + return errors.New("max-tx-bytes can't be negative") + } + if cfg.TTLDuration < 0 { + return errors.New("ttl-duration can't be negative") + } + if cfg.TTLNumBlocks < 0 { + return errors.New("ttl-num-blocks can't be negative") + } + + return nil +} + +//----------------------------------------------------------------------------- +// StateSyncConfig + +// StateSyncConfig defines the configuration for the Tendermint state sync service +type StateSyncConfig struct { + // State sync rapidly bootstraps a new node by discovering, fetching, and restoring a + // state machine snapshot from peers instead of fetching and replaying historical + // blocks. Requires some peers in the network to take and serve state machine + // snapshots. State sync is not attempted if the node has any local state + // (LastBlockHeight > 0). The node will have a truncated block history, starting from + // the height of the snapshot. + Enable bool `mapstructure:"enable"` + + // State sync uses light client verification to verify state. This can be done either + // through the P2P layer or the RPC layer. Set this to true to use the P2P layer. If + // false (default), the RPC layer will be used. + UseP2P bool `mapstructure:"use-p2p"` + + // If using RPC, at least two addresses need to be provided. They should be compatible + // with net.Dial, for example: "host.example.com:2125". + RPCServers []string `mapstructure:"rpc-servers"` + + // The hash and height of a trusted block. Must be within the trust-period. + TrustHeight int64 `mapstructure:"trust-height"` + TrustHash string `mapstructure:"trust-hash"` + + // The trust period should be set so that Tendermint can detect and gossip + // misbehavior before it is considered expired. For chains based on the Cosmos SDK, + // one day less than the unbonding period should suffice. + TrustPeriod time.Duration `mapstructure:"trust-period"` + + // Time to spend discovering snapshots before initiating a restore. + DiscoveryTime time.Duration `mapstructure:"discovery-time"` + + // Temporary directory for state sync snapshot chunks, defaults to os.TempDir(). + // The synchronizer will create a new, randomly named directory within this directory + // and remove it when the sync is complete. + TempDir string `mapstructure:"temp-dir"` + + // The timeout duration before re-requesting a chunk, possibly from a different + // peer (default: 15 seconds). + ChunkRequestTimeout time.Duration `mapstructure:"chunk-request-timeout"` + + // The number of concurrent chunk and block fetchers to run (default: 4). + Fetchers int32 `mapstructure:"fetchers"` +} + +func (cfg *StateSyncConfig) TrustHashBytes() []byte { + // validated in ValidateBasic, so we can safely panic here + bytes, err := hex.DecodeString(cfg.TrustHash) + if err != nil { + panic(err) + } + return bytes +} + +// DefaultStateSyncConfig returns a default configuration for the state sync service +func DefaultStateSyncConfig() *StateSyncConfig { + return &StateSyncConfig{ + TrustPeriod: 168 * time.Hour, + DiscoveryTime: 15 * time.Second, + ChunkRequestTimeout: 15 * time.Second, + Fetchers: 4, + } +} + +// TestStateSyncConfig returns a default configuration for the state sync service +func TestStateSyncConfig() *StateSyncConfig { + return DefaultStateSyncConfig() +} + +// ValidateBasic performs basic validation. +func (cfg *StateSyncConfig) ValidateBasic() error { + if !cfg.Enable { + return nil + } + + // If we're not using the P2P stack then we need to validate the + // RPCServers + if !cfg.UseP2P { + if len(cfg.RPCServers) < 2 { + return errors.New("at least two rpc-servers must be specified") + } + + for _, server := range cfg.RPCServers { + if server == "" { + return errors.New("found empty rpc-servers entry") + } + } + } + + if cfg.DiscoveryTime != 0 && cfg.DiscoveryTime < 5*time.Second { + return errors.New("discovery time must be 0s or greater than five seconds") + } + + if cfg.TrustPeriod <= 0 { + return errors.New("trusted-period is required") + } + + if cfg.TrustHeight <= 0 { + return errors.New("trusted-height is required") + } + + if len(cfg.TrustHash) == 0 { + return errors.New("trusted-hash is required") + } + + _, err := hex.DecodeString(cfg.TrustHash) + if err != nil { + return fmt.Errorf("invalid trusted-hash: %w", err) + } + + if cfg.ChunkRequestTimeout < 5*time.Second { + return errors.New("chunk-request-timeout must be at least 5 seconds") + } + + if cfg.Fetchers <= 0 { + return errors.New("fetchers is required") + } + + return nil +} + +//----------------------------------------------------------------------------- +// ConsensusConfig + +// ConsensusConfig defines the configuration for the Tendermint consensus service, +// including timeouts and details about the WAL and the block structure. +type ConsensusConfig struct { + RootDir string `mapstructure:"home"` + WalPath string `mapstructure:"wal-file"` + walFile string // overrides WalPath if set + + // EmptyBlocks mode and possible interval between empty blocks + CreateEmptyBlocks bool `mapstructure:"create-empty-blocks"` + CreateEmptyBlocksInterval time.Duration `mapstructure:"create-empty-blocks-interval"` + + // Reactor sleep duration parameters + PeerGossipSleepDuration time.Duration `mapstructure:"peer-gossip-sleep-duration"` + PeerQueryMaj23SleepDuration time.Duration `mapstructure:"peer-query-maj23-sleep-duration"` + + DoubleSignCheckHeight int64 `mapstructure:"double-sign-check-height"` + + // TODO: The following fields are all temporary overrides that should exist only + // for the duration of the v0.36 release. The below fields should be completely + // removed in the v0.37 release of Tendermint. + // See: https://github.com/tendermint/tendermint/issues/8188 + + // UnsafeProposeTimeoutOverride provides an unsafe override of the Propose + // timeout consensus parameter. It configures how long the consensus engine + // will wait to receive a proposal block before prevoting nil. + UnsafeProposeTimeoutOverride time.Duration `mapstructure:"unsafe-propose-timeout-override"` + // UnsafeProposeTimeoutDeltaOverride provides an unsafe override of the + // ProposeDelta timeout consensus parameter. It configures how much the + // propose timeout increases with each round. + UnsafeProposeTimeoutDeltaOverride time.Duration `mapstructure:"unsafe-propose-timeout-delta-override"` + // UnsafeVoteTimeoutOverride provides an unsafe override of the Vote timeout + // consensus parameter. It configures how long the consensus engine will wait + // to gather additional votes after receiving +2/3 votes in a round. + UnsafeVoteTimeoutOverride time.Duration `mapstructure:"unsafe-vote-timeout-override"` + // UnsafeVoteTimeoutDeltaOverride provides an unsafe override of the VoteDelta + // timeout consensus parameter. It configures how much the vote timeout + // increases with each round. + UnsafeVoteTimeoutDeltaOverride time.Duration `mapstructure:"unsafe-vote-timeout-delta-override"` + // UnsafeCommitTimeoutOverride provides an unsafe override of the Commit timeout + // consensus parameter. It configures how long the consensus engine will wait + // after receiving +2/3 precommits before beginning the next height. + UnsafeCommitTimeoutOverride time.Duration `mapstructure:"unsafe-commit-timeout-override"` + + // UnsafeBypassCommitTimeoutOverride provides an unsafe override of the + // BypassCommitTimeout consensus parameter. It configures if the consensus + // engine will wait for the full Commit timeout before proceeding to the next height. + // If it is set to true, the consensus engine will proceed to the next height + // as soon as the node has gathered votes from all of the validators on the network. + UnsafeBypassCommitTimeoutOverride *bool `mapstructure:"unsafe-bypass-commit-timeout-override"` + + // Deprecated timeout parameters. These parameters are present in this struct + // so that they can be parsed so that validation can check if they have erroneously + // been included and provide a helpful error message. + // These fields should be completely removed in v0.37. + // See: https://github.com/tendermint/tendermint/issues/8188 + DeprecatedTimeoutPropose *interface{} `mapstructure:"timeout-propose"` + DeprecatedTimeoutProposeDelta *interface{} `mapstructure:"timeout-propose-delta"` + DeprecatedTimeoutPrevote *interface{} `mapstructure:"timeout-prevote"` + DeprecatedTimeoutPrevoteDelta *interface{} `mapstructure:"timeout-prevote-delta"` + DeprecatedTimeoutPrecommit *interface{} `mapstructure:"timeout-precommit"` + DeprecatedTimeoutPrecommitDelta *interface{} `mapstructure:"timeout-precommit-delta"` + DeprecatedTimeoutCommit *interface{} `mapstructure:"timeout-commit"` + DeprecatedSkipTimeoutCommit *interface{} `mapstructure:"skip-timeout-commit"` +} + +// DefaultConsensusConfig returns a default configuration for the consensus service +func DefaultConsensusConfig() *ConsensusConfig { + return &ConsensusConfig{ + WalPath: filepath.Join(defaultDataDir, "cs.wal", "wal"), + CreateEmptyBlocks: true, + CreateEmptyBlocksInterval: 0 * time.Second, + PeerGossipSleepDuration: 100 * time.Millisecond, + PeerQueryMaj23SleepDuration: 2000 * time.Millisecond, + DoubleSignCheckHeight: int64(0), + } +} + +// TestConsensusConfig returns a configuration for testing the consensus service +func TestConsensusConfig() *ConsensusConfig { + cfg := DefaultConsensusConfig() + cfg.PeerGossipSleepDuration = 5 * time.Millisecond + cfg.PeerQueryMaj23SleepDuration = 250 * time.Millisecond + cfg.DoubleSignCheckHeight = int64(0) + return cfg +} + +// WaitForTxs returns true if the consensus should wait for transactions before entering the propose step +func (cfg *ConsensusConfig) WaitForTxs() bool { + return !cfg.CreateEmptyBlocks || cfg.CreateEmptyBlocksInterval > 0 +} + +// WalFile returns the full path to the write-ahead log file +func (cfg *ConsensusConfig) WalFile() string { + if cfg.walFile != "" { + return cfg.walFile + } + return rootify(cfg.WalPath, cfg.RootDir) +} + +// SetWalFile sets the path to the write-ahead log file +func (cfg *ConsensusConfig) SetWalFile(walFile string) { + cfg.walFile = walFile +} + +// ValidateBasic performs basic validation (checking param bounds, etc.) and +// returns an error if any check fails. +func (cfg *ConsensusConfig) ValidateBasic() error { + if cfg.UnsafeProposeTimeoutOverride < 0 { + return errors.New("unsafe-propose-timeout-override can't be negative") + } + if cfg.UnsafeProposeTimeoutDeltaOverride < 0 { + return errors.New("unsafe-propose-timeout-delta-override can't be negative") + } + if cfg.UnsafeVoteTimeoutOverride < 0 { + return errors.New("unsafe-vote-timeout-override can't be negative") + } + if cfg.UnsafeVoteTimeoutDeltaOverride < 0 { + return errors.New("unsafe-vote-timeout-delta-override can't be negative") + } + if cfg.UnsafeCommitTimeoutOverride < 0 { + return errors.New("unsafe-commit-timeout-override can't be negative") + } + if cfg.CreateEmptyBlocksInterval < 0 { + return errors.New("create-empty-blocks-interval can't be negative") + } + if cfg.PeerGossipSleepDuration < 0 { + return errors.New("peer-gossip-sleep-duration can't be negative") + } + if cfg.PeerQueryMaj23SleepDuration < 0 { + return errors.New("peer-query-maj23-sleep-duration can't be negative") + } + if cfg.DoubleSignCheckHeight < 0 { + return errors.New("double-sign-check-height can't be negative") + } + return nil +} + +func (cfg *ConsensusConfig) DeprecatedFieldWarning() error { + var fields []string + if cfg.DeprecatedSkipTimeoutCommit != nil { + fields = append(fields, "skip-timeout-commit") + } + if cfg.DeprecatedTimeoutPropose != nil { + fields = append(fields, "timeout-propose") + } + if cfg.DeprecatedTimeoutProposeDelta != nil { + fields = append(fields, "timeout-propose-delta") + } + if cfg.DeprecatedTimeoutPrevote != nil { + fields = append(fields, "timeout-prevote") + } + if cfg.DeprecatedTimeoutPrevoteDelta != nil { + fields = append(fields, "timeout-prevote-delta") + } + if cfg.DeprecatedTimeoutPrecommit != nil { + fields = append(fields, "timeout-precommit") + } + if cfg.DeprecatedTimeoutPrecommitDelta != nil { + fields = append(fields, "timeout-precommit-delta") + } + if cfg.DeprecatedTimeoutCommit != nil { + fields = append(fields, "timeout-commit") + } + if cfg.DeprecatedSkipTimeoutCommit != nil { + fields = append(fields, "skip-timeout-commit") + } + if len(fields) != 0 { + return fmt.Errorf("the following deprecated fields were set in the "+ + "configuration file: %s. These fields were removed in v0.36. Timeout "+ + "configuration has been moved to the ConsensusParams. For more information see "+ + "https://tinyurl.com/adr074", strings.Join(fields, ", ")) + } + return nil +} + +//----------------------------------------------------------------------------- +// TxIndexConfig +// Remember that Event has the following structure: +// type: [ +// key: value, +// ... +// ] +// +// CompositeKeys are constructed by `type.key` +// TxIndexConfig defines the configuration for the transaction indexer, +// including composite keys to index. +type TxIndexConfig struct { + // The backend database list to back the indexer. + // If list contains `null`, meaning no indexer service will be used. + // + // Options: + // 1) "null" (default) - no indexer services. + // 2) "kv" - a simple indexer backed by key-value storage (see DBBackend) + // 3) "psql" - the indexer services backed by PostgreSQL. + Indexer []string `mapstructure:"indexer"` + + // The PostgreSQL connection configuration, the connection format: + // postgresql://:@:/? + PsqlConn string `mapstructure:"psql-conn"` +} + +// DefaultTxIndexConfig returns a default configuration for the transaction indexer. +func DefaultTxIndexConfig() *TxIndexConfig { + return &TxIndexConfig{Indexer: []string{"null"}} +} + +// TestTxIndexConfig returns a default configuration for the transaction indexer. +func TestTxIndexConfig() *TxIndexConfig { + return &TxIndexConfig{Indexer: []string{"kv"}} +} + +//----------------------------------------------------------------------------- +// InstrumentationConfig + +// InstrumentationConfig defines the configuration for metrics reporting. +type InstrumentationConfig struct { + // When true, Prometheus metrics are served under /metrics on + // PrometheusListenAddr. + // Check out the documentation for the list of available metrics. + Prometheus bool `mapstructure:"prometheus"` + + // Address to listen for Prometheus collector(s) connections. + PrometheusListenAddr string `mapstructure:"prometheus-listen-addr"` + + // Maximum number of simultaneous connections. + // If you want to accept a larger number than the default, make sure + // you increase your OS limits. + // 0 - unlimited. + MaxOpenConnections int `mapstructure:"max-open-connections"` + + // Instrumentation namespace. + Namespace string `mapstructure:"namespace"` +} + +// DefaultInstrumentationConfig returns a default configuration for metrics +// reporting. +func DefaultInstrumentationConfig() *InstrumentationConfig { + return &InstrumentationConfig{ + Prometheus: false, + PrometheusListenAddr: ":26660", + MaxOpenConnections: 3, + Namespace: "tendermint", + } +} + +// TestInstrumentationConfig returns a default configuration for metrics +// reporting. +func TestInstrumentationConfig() *InstrumentationConfig { + return DefaultInstrumentationConfig() +} + +// ValidateBasic performs basic validation (checking param bounds, etc.) and +// returns an error if any check fails. +func (cfg *InstrumentationConfig) ValidateBasic() error { + if cfg.MaxOpenConnections < 0 { + return errors.New("max-open-connections can't be negative") + } + return nil +} + +//----------------------------------------------------------------------------- +// Utils + +// helper function to make config creation independent of root dir +func rootify(path, root string) string { + if filepath.IsAbs(path) { + return path + } + return filepath.Join(root, path) +} + +//----------------------------------------------------------------------------- +// Moniker + +var defaultMoniker = getDefaultMoniker() + +// getDefaultMoniker returns a default moniker, which is the host name. If runtime +// fails to get the host name, "anonymous" will be returned. +func getDefaultMoniker() string { + moniker, err := os.Hostname() + if err != nil { + moniker = "anonymous" + } + return moniker +} diff --git a/sei-tendermint/config/config_test.go b/sei-tendermint/config/config_test.go new file mode 100644 index 0000000000..a86ab84636 --- /dev/null +++ b/sei-tendermint/config/config_test.go @@ -0,0 +1,166 @@ +package config + +import ( + "reflect" + "testing" + "time" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestDefaultConfig(t *testing.T) { + // set up some defaults + cfg := DefaultConfig() + assert.NotNil(t, cfg.P2P) + assert.NotNil(t, cfg.Mempool) + assert.NotNil(t, cfg.Consensus) + + // check the root dir stuff... + cfg.SetRoot("/foo") + cfg.Genesis = "bar" + cfg.DBPath = "/opt/data" + + assert.Equal(t, "/foo/bar", cfg.GenesisFile()) + assert.Equal(t, "/opt/data", cfg.DBDir()) +} + +func TestConfigValidateBasic(t *testing.T) { + cfg := DefaultConfig() + assert.NoError(t, cfg.ValidateBasic()) + + // tamper with unsafe-propose-timeout-override + cfg.Consensus.UnsafeProposeTimeoutOverride = -10 * time.Second + assert.Error(t, cfg.ValidateBasic()) +} + +func TestTLSConfiguration(t *testing.T) { + cfg := DefaultConfig() + cfg.SetRoot("/home/user") + + cfg.RPC.TLSCertFile = "file.crt" + assert.Equal(t, "/home/user/config/file.crt", cfg.RPC.CertFile()) + cfg.RPC.TLSKeyFile = "file.key" + assert.Equal(t, "/home/user/config/file.key", cfg.RPC.KeyFile()) + + cfg.RPC.TLSCertFile = "/abs/path/to/file.crt" + assert.Equal(t, "/abs/path/to/file.crt", cfg.RPC.CertFile()) + cfg.RPC.TLSKeyFile = "/abs/path/to/file.key" + assert.Equal(t, "/abs/path/to/file.key", cfg.RPC.KeyFile()) +} + +func TestBaseConfigValidateBasic(t *testing.T) { + cfg := TestBaseConfig() + assert.NoError(t, cfg.ValidateBasic()) + + // tamper with log format + cfg.LogFormat = "invalid" + assert.Error(t, cfg.ValidateBasic()) +} + +func TestRPCConfigValidateBasic(t *testing.T) { + cfg := TestRPCConfig() + assert.NoError(t, cfg.ValidateBasic()) + + fieldsToTest := []string{ + "MaxOpenConnections", + "MaxSubscriptionClients", + "MaxSubscriptionsPerClient", + "TimeoutBroadcastTxCommit", + "MaxBodyBytes", + "MaxHeaderBytes", + } + + for _, fieldName := range fieldsToTest { + reflect.ValueOf(cfg).Elem().FieldByName(fieldName).SetInt(-1) + assert.Error(t, cfg.ValidateBasic()) + reflect.ValueOf(cfg).Elem().FieldByName(fieldName).SetInt(0) + } +} + +func TestMempoolConfigValidateBasic(t *testing.T) { + cfg := TestMempoolConfig() + assert.NoError(t, cfg.ValidateBasic()) + + fieldsToTest := []string{ + "Size", + "MaxTxsBytes", + "CacheSize", + "MaxTxBytes", + } + + for _, fieldName := range fieldsToTest { + reflect.ValueOf(cfg).Elem().FieldByName(fieldName).SetInt(-1) + assert.Error(t, cfg.ValidateBasic()) + reflect.ValueOf(cfg).Elem().FieldByName(fieldName).SetInt(0) + } +} + +func TestStateSyncConfigValidateBasic(t *testing.T) { + cfg := TestStateSyncConfig() + require.NoError(t, cfg.ValidateBasic()) +} + +func TestConsensusConfig_ValidateBasic(t *testing.T) { + testcases := map[string]struct { + modify func(*ConsensusConfig) + expectErr bool + }{ + "UnsafeProposeTimeoutOverride": {func(c *ConsensusConfig) { c.UnsafeProposeTimeoutOverride = time.Second }, false}, + "UnsafeProposeTimeoutOverride negative": {func(c *ConsensusConfig) { c.UnsafeProposeTimeoutOverride = -1 }, true}, + "UnsafeProposeTimeoutDeltaOverride": {func(c *ConsensusConfig) { c.UnsafeProposeTimeoutDeltaOverride = time.Second }, false}, + "UnsafeProposeTimeoutDeltaOverride negative": {func(c *ConsensusConfig) { c.UnsafeProposeTimeoutDeltaOverride = -1 }, true}, + "UnsafePrevoteTimeoutOverride": {func(c *ConsensusConfig) { c.UnsafeVoteTimeoutOverride = time.Second }, false}, + "UnsafePrevoteTimeoutOverride negative": {func(c *ConsensusConfig) { c.UnsafeVoteTimeoutOverride = -1 }, true}, + "UnsafePrevoteTimeoutDeltaOverride": {func(c *ConsensusConfig) { c.UnsafeVoteTimeoutDeltaOverride = time.Second }, false}, + "UnsafePrevoteTimeoutDeltaOverride negative": {func(c *ConsensusConfig) { c.UnsafeVoteTimeoutDeltaOverride = -1 }, true}, + "UnsafeCommitTimeoutOverride": {func(c *ConsensusConfig) { c.UnsafeCommitTimeoutOverride = time.Second }, false}, + "UnsafeCommitTimeoutOverride negative": {func(c *ConsensusConfig) { c.UnsafeCommitTimeoutOverride = -1 }, true}, + "PeerGossipSleepDuration": {func(c *ConsensusConfig) { c.PeerGossipSleepDuration = time.Second }, false}, + "PeerGossipSleepDuration negative": {func(c *ConsensusConfig) { c.PeerGossipSleepDuration = -1 }, true}, + "PeerQueryMaj23SleepDuration": {func(c *ConsensusConfig) { c.PeerQueryMaj23SleepDuration = time.Second }, false}, + "PeerQueryMaj23SleepDuration negative": {func(c *ConsensusConfig) { c.PeerQueryMaj23SleepDuration = -1 }, true}, + "DoubleSignCheckHeight negative": {func(c *ConsensusConfig) { c.DoubleSignCheckHeight = -1 }, true}, + } + for desc, tc := range testcases { + tc := tc // appease linter + t.Run(desc, func(t *testing.T) { + cfg := DefaultConsensusConfig() + tc.modify(cfg) + + err := cfg.ValidateBasic() + if tc.expectErr { + assert.Error(t, err) + } else { + assert.NoError(t, err) + } + }) + } +} + +func TestInstrumentationConfigValidateBasic(t *testing.T) { + cfg := TestInstrumentationConfig() + assert.NoError(t, cfg.ValidateBasic()) + + // tamper with maximum open connections + cfg.MaxOpenConnections = -1 + assert.Error(t, cfg.ValidateBasic()) +} + +func TestP2PConfigValidateBasic(t *testing.T) { + cfg := TestP2PConfig() + assert.NoError(t, cfg.ValidateBasic()) + + fieldsToTest := []string{ + "FlushThrottleTimeout", + "MaxPacketMsgPayloadSize", + "SendRate", + "RecvRate", + } + + for _, fieldName := range fieldsToTest { + reflect.ValueOf(cfg).Elem().FieldByName(fieldName).SetInt(-1) + assert.Error(t, cfg.ValidateBasic()) + reflect.ValueOf(cfg).Elem().FieldByName(fieldName).SetInt(0) + } +} diff --git a/sei-tendermint/config/db.go b/sei-tendermint/config/db.go new file mode 100644 index 0000000000..f508354e07 --- /dev/null +++ b/sei-tendermint/config/db.go @@ -0,0 +1,29 @@ +package config + +import ( + "context" + + dbm "github.com/tendermint/tm-db" + + "github.com/tendermint/tendermint/libs/log" + "github.com/tendermint/tendermint/libs/service" +) + +// ServiceProvider takes a config and a logger and returns a ready to go Node. +type ServiceProvider func(context.Context, *Config, log.Logger) (service.Service, error) + +// DBContext specifies config information for loading a new DB. +type DBContext struct { + ID string + Config *Config +} + +// DBProvider takes a DBContext and returns an instantiated DB. +type DBProvider func(*DBContext) (dbm.DB, error) + +// DefaultDBProvider returns a database using the DBBackend and DBDir +// specified in the Config. +func DefaultDBProvider(ctx *DBContext) (dbm.DB, error) { + dbType := dbm.BackendType(ctx.Config.DBBackend) + return dbm.NewDB(ctx.ID, dbType, ctx.Config.DBDir()) +} diff --git a/sei-tendermint/config/toml.go b/sei-tendermint/config/toml.go new file mode 100644 index 0000000000..4db4f4e65d --- /dev/null +++ b/sei-tendermint/config/toml.go @@ -0,0 +1,675 @@ +package config + +import ( + "bytes" + "fmt" + "os" + "path/filepath" + "strings" + "text/template" + + tmos "github.com/tendermint/tendermint/libs/os" + tmrand "github.com/tendermint/tendermint/libs/rand" +) + +// defaultDirPerm is the default permissions used when creating directories. +const defaultDirPerm = 0700 + +var configTemplate *template.Template + +func init() { + var err error + tmpl := template.New("configFileTemplate").Funcs(template.FuncMap{ + "StringsJoin": strings.Join, + }) + if configTemplate, err = tmpl.Parse(defaultConfigTemplate); err != nil { + panic(err) + } +} + +/****** these are for production settings ***********/ + +// EnsureRoot creates the root, config, and data directories if they don't exist, +// and panics if it fails. +func EnsureRoot(rootDir string) { + if err := tmos.EnsureDir(rootDir, defaultDirPerm); err != nil { + panic(err.Error()) + } + if err := tmos.EnsureDir(filepath.Join(rootDir, defaultConfigDir), defaultDirPerm); err != nil { + panic(err.Error()) + } + if err := tmos.EnsureDir(filepath.Join(rootDir, defaultDataDir), defaultDirPerm); err != nil { + panic(err.Error()) + } +} + +// WriteConfigFile renders config using the template and writes it to configFilePath. +// This function is called by cmd/tendermint/commands/init.go +func WriteConfigFile(rootDir string, config *Config) error { + return config.WriteToTemplate(filepath.Join(rootDir, defaultConfigFilePath)) +} + +// WriteToTemplate writes the config to the exact file specified by +// the path, in the default toml template and does not mangle the path +// or filename at all. +func (cfg *Config) WriteToTemplate(path string) error { + var buffer bytes.Buffer + + if err := configTemplate.Execute(&buffer, cfg); err != nil { + return err + } + + return writeFile(path, buffer.Bytes(), 0644) +} + +func writeDefaultConfigFileIfNone(rootDir string) error { + configFilePath := filepath.Join(rootDir, defaultConfigFilePath) + if !tmos.FileExists(configFilePath) { + return WriteConfigFile(rootDir, DefaultConfig()) + } + return nil +} + +// Note: any changes to the comments/variables/mapstructure +// must be reflected in the appropriate struct in config/config.go +const defaultConfigTemplate = `# This is a TOML config file. +# For more information, see https://github.com/toml-lang/toml + +# NOTE: Any path below can be absolute (e.g. "/var/myawesomeapp/data") or +# relative to the home directory (e.g. "data"). The home directory is +# "$HOME/.tendermint" by default, but could be changed via $TMHOME env variable +# or --home cmd flag. + +####################################################################### +### Main Base Config Options ### +####################################################################### + +# TCP or UNIX socket address of the ABCI application, +# or the name of an ABCI application compiled in with the Tendermint binary +proxy-app = "{{ .BaseConfig.ProxyApp }}" + +# A custom human readable name for this node +moniker = "{{ .BaseConfig.Moniker }}" + +# Mode of Node: full | validator | seed +# * validator node +# - all reactors +# - with priv_validator_key.json, priv_validator_state.json +# * full node +# - all reactors +# - No priv_validator_key.json, priv_validator_state.json +# * seed node +# - only P2P, PEX Reactor +# - No priv_validator_key.json, priv_validator_state.json +mode = "{{ .BaseConfig.Mode }}" + +# Database backend: goleveldb | cleveldb | boltdb | rocksdb | badgerdb +# * goleveldb (github.com/syndtr/goleveldb - most popular implementation) +# - pure go +# - stable +# * cleveldb (uses levigo wrapper) +# - fast +# - requires gcc +# - use cleveldb build tag (go build -tags cleveldb) +# * boltdb (uses etcd's fork of bolt - github.com/etcd-io/bbolt) +# - EXPERIMENTAL +# - may be faster is some use-cases (random reads - indexer) +# - use boltdb build tag (go build -tags boltdb) +# * rocksdb (uses github.com/tecbot/gorocksdb) +# - EXPERIMENTAL +# - requires gcc +# - use rocksdb build tag (go build -tags rocksdb) +# * badgerdb (uses github.com/dgraph-io/badger) +# - EXPERIMENTAL +# - use badgerdb build tag (go build -tags badgerdb) +db-backend = "{{ .BaseConfig.DBBackend }}" + +# Database directory +db-dir = "{{ js .BaseConfig.DBPath }}" + +# Output level for logging, including package level options +log-level = "{{ .BaseConfig.LogLevel }}" + +# Output format: 'plain' (colored text) or 'json' +log-format = "{{ .BaseConfig.LogFormat }}" + +##### additional base config options ##### + +# Path to the JSON file containing the initial validator set and other meta data +genesis-file = "{{ js .BaseConfig.Genesis }}" + +# Path to the JSON file containing the private key to use for node authentication in the p2p protocol +node-key-file = "{{ js .BaseConfig.NodeKey }}" + +# Mechanism to connect to the ABCI application: socket | grpc +abci = "{{ .BaseConfig.ABCI }}" + +# If true, query the ABCI app on connecting to a new peer +# so the app can decide if we should keep the connection or not +filter-peers = {{ .BaseConfig.FilterPeers }} + + +####################################################### +### Priv Validator Configuration ### +####################################################### +[priv-validator] + +# Path to the JSON file containing the private key to use as a validator in the consensus protocol +key-file = "{{ js .PrivValidator.Key }}" + +# Path to the JSON file containing the last sign state of a validator +state-file = "{{ js .PrivValidator.State }}" + +# TCP or UNIX socket address for Tendermint to listen on for +# connections from an external PrivValidator process +# when the listenAddr is prefixed with grpc instead of tcp it will use the gRPC Client +laddr = "{{ .PrivValidator.ListenAddr }}" + +# Path to the client certificate generated while creating needed files for secure connection. +# If a remote validator address is provided but no certificate, the connection will be insecure +client-certificate-file = "{{ js .PrivValidator.ClientCertificate }}" + +# Client key generated while creating certificates for secure connection +client-key-file = "{{ js .PrivValidator.ClientKey }}" + +# Path to the Root Certificate Authority used to sign both client and server certificates +root-ca-file = "{{ js .PrivValidator.RootCA }}" + + +####################################################################### +### Advanced Configuration Options ### +####################################################################### + +####################################################### +### RPC Server Configuration Options ### +####################################################### +[rpc] + +# TCP or UNIX socket address for the RPC server to listen on +laddr = "{{ .RPC.ListenAddress }}" + +# A list of origins a cross-domain request can be executed from +# Default value '[]' disables cors support +# Use '["*"]' to allow any origin +cors-allowed-origins = [{{ range .RPC.CORSAllowedOrigins }}{{ printf "%q, " . }}{{end}}] + +# A list of methods the client is allowed to use with cross-domain requests +cors-allowed-methods = [{{ range .RPC.CORSAllowedMethods }}{{ printf "%q, " . }}{{end}}] + +# A list of non simple headers the client is allowed to use with cross-domain requests +cors-allowed-headers = [{{ range .RPC.CORSAllowedHeaders }}{{ printf "%q, " . }}{{end}}] + +# Activate unsafe RPC commands like /dial-seeds and /unsafe-flush-mempool +unsafe = {{ .RPC.Unsafe }} + +# Maximum number of simultaneous connections (including WebSocket). +# If you want to accept a larger number than the default, make sure +# you increase your OS limits. +# 0 - unlimited. +# Should be < {ulimit -Sn} - {MaxNumInboundPeers} - {MaxNumOutboundPeers} - {N of wal, db and other open files} +# 1024 - 40 - 10 - 50 = 924 = ~900 +max-open-connections = {{ .RPC.MaxOpenConnections }} + +# Maximum number of unique clientIDs that can /subscribe +# If you're using /broadcast_tx_commit, set to the estimated maximum number +# of broadcast_tx_commit calls per block. +max-subscription-clients = {{ .RPC.MaxSubscriptionClients }} + +# Maximum number of unique queries a given client can /subscribe to +# If you're using a Local RPC client and /broadcast_tx_commit, set this +# to the estimated maximum number of broadcast_tx_commit calls per block. +max-subscriptions-per-client = {{ .RPC.MaxSubscriptionsPerClient }} + +# If true, disable the websocket interface to the RPC service. This has +# the effect of disabling the /subscribe, /unsubscribe, and /unsubscribe_all +# methods for event subscription. +# +# EXPERIMENTAL: This setting will be removed in Tendermint v0.37. +experimental-disable-websocket = {{ .RPC.ExperimentalDisableWebsocket }} + +# The time window size for the event log. All events up to this long before +# the latest (up to EventLogMaxItems) will be available for subscribers to +# fetch via the /events method. If 0 (the default) the event log and the +# /events RPC method are disabled. +event-log-window-size = "{{ .RPC.EventLogWindowSize }}" + +# The maxiumum number of events that may be retained by the event log. If +# this value is 0, no upper limit is set. Otherwise, items in excess of +# this number will be discarded from the event log. +# +# Warning: This setting is a safety valve. Setting it too low may cause +# subscribers to miss events. Try to choose a value higher than the +# maximum worst-case expected event load within the chosen window size in +# ordinary operation. +# +# For example, if the window size is 10 minutes and the node typically +# averages 1000 events per ten minutes, but with occasional known spikes of +# up to 2000, choose a value > 2000. +event-log-max-items = {{ .RPC.EventLogMaxItems }} + +# How long to wait for a tx to be committed during /broadcast_tx_commit. +# WARNING: Using a value larger than 10s will result in increasing the +# global HTTP write timeout, which applies to all connections and endpoints. +# See https://github.com/tendermint/tendermint/issues/3435 +timeout-broadcast-tx-commit = "{{ .RPC.TimeoutBroadcastTxCommit }}" + +# Maximum size of request body, in bytes +max-body-bytes = {{ .RPC.MaxBodyBytes }} + +# Maximum size of request header, in bytes +max-header-bytes = {{ .RPC.MaxHeaderBytes }} + +# The path to a file containing certificate that is used to create the HTTPS server. +# Might be either absolute path or path related to Tendermint's config directory. +# If the certificate is signed by a certificate authority, +# the certFile should be the concatenation of the server's certificate, any intermediates, +# and the CA's certificate. +# NOTE: both tls-cert-file and tls-key-file must be present for Tendermint to create HTTPS server. +# Otherwise, HTTP server is run. +tls-cert-file = "{{ .RPC.TLSCertFile }}" + +# The path to a file containing matching private key that is used to create the HTTPS server. +# Might be either absolute path or path related to Tendermint's config directory. +# NOTE: both tls-cert-file and tls-key-file must be present for Tendermint to create HTTPS server. +# Otherwise, HTTP server is run. +tls-key-file = "{{ .RPC.TLSKeyFile }}" + +# pprof listen address (https://golang.org/pkg/net/http/pprof) +pprof-laddr = "{{ .RPC.PprofListenAddress }}" + +####################################################### +### P2P Configuration Options ### +####################################################### +[p2p] + +# Select the p2p internal queue +queue-type = "{{ .P2P.QueueType }}" + +# Address to listen for incoming connections +laddr = "{{ .P2P.ListenAddress }}" + +# Address to advertise to peers for them to dial +# If empty, will use the same port as the laddr, +# and will introspect on the listener or use UPnP +# to figure out the address. ip and port are required +# example: 159.89.10.97:26656 +external-address = "{{ .P2P.ExternalAddress }}" + +# Comma separated list of peers to be added to the peer store +# on startup. Either BootstrapPeers or PersistentPeers are +# needed for peer discovery +bootstrap-peers = "{{ .P2P.BootstrapPeers }}" + +# Comma separated list of nodes to keep persistent connections to +persistent-peers = "{{ .P2P.PersistentPeers }}" + +# UPNP port forwarding +upnp = {{ .P2P.UPNP }} + +# Maximum number of connections (inbound and outbound). +max-connections = {{ .P2P.MaxConnections }} + +# Rate limits the number of incoming connection attempts per IP address. +max-incoming-connection-attempts = {{ .P2P.MaxIncomingConnectionAttempts }} + +# Set true to enable the peer-exchange reactor +pex = {{ .P2P.PexReactor }} + +# Comma separated list of peer IDs to keep private (will not be gossiped to other peers) +# Warning: IPs will be exposed at /net_info, for more information https://github.com/tendermint/tendermint/issues/3055 +private-peer-ids = "{{ .P2P.PrivatePeerIDs }}" + +# Toggle to disable guard against peers connecting from the same ip. +allow-duplicate-ip = {{ .P2P.AllowDuplicateIP }} + +# Peer connection configuration. +handshake-timeout = "{{ .P2P.HandshakeTimeout }}" +dial-timeout = "{{ .P2P.DialTimeout }}" + +# Time to wait before flushing messages out on the connection +# TODO: Remove once MConnConnection is removed. +flush-throttle-timeout = "{{ .P2P.FlushThrottleTimeout }}" + +# Maximum size of a message packet payload, in bytes +# TODO: Remove once MConnConnection is removed. +max-packet-msg-payload-size = {{ .P2P.MaxPacketMsgPayloadSize }} + +# Rate at which packets can be sent, in bytes/second +# TODO: Remove once MConnConnection is removed. +send-rate = {{ .P2P.SendRate }} + +# Rate at which packets can be received, in bytes/second +# TODO: Remove once MConnConnection is removed. +recv-rate = {{ .P2P.RecvRate }} + + +####################################################### +### Mempool Configuration Option ### +####################################################### +[mempool] + +# recheck has been moved from a config option to a global +# consensus param in v0.36 +# See https://github.com/tendermint/tendermint/issues/8244 for more information. + +# Set true to broadcast transactions in the mempool to other nodes +broadcast = {{ .Mempool.Broadcast }} + +# Maximum number of transactions in the mempool +size = {{ .Mempool.Size }} + +# Limit the total size of all txs in the mempool. +# This only accounts for raw transactions (e.g. given 1MB transactions and +# max-txs-bytes=5MB, mempool will only accept 5 transactions). +max-txs-bytes = {{ .Mempool.MaxTxsBytes }} + +# Size of the cache (used to filter transactions we saw earlier) in transactions +cache-size = {{ .Mempool.CacheSize }} + +# Do not remove invalid transactions from the cache (default: false) +# Set to true if it's not possible for any invalid transaction to become valid +# again in the future. +keep-invalid-txs-in-cache = {{ .Mempool.KeepInvalidTxsInCache }} + +# Maximum size of a single transaction. +# NOTE: the max size of a tx transmitted over the network is {max-tx-bytes}. +max-tx-bytes = {{ .Mempool.MaxTxBytes }} + +# Maximum size of a batch of transactions to send to a peer +# Including space needed by encoding (one varint per transaction). +# XXX: Unused due to https://github.com/tendermint/tendermint/issues/5796 +max-batch-bytes = {{ .Mempool.MaxBatchBytes }} + +# ttl-duration, if non-zero, defines the maximum amount of time a transaction +# can exist for in the mempool. +# +# Note, if ttl-num-blocks is also defined, a transaction will be removed if it +# has existed in the mempool at least ttl-num-blocks number of blocks or if it's +# insertion time into the mempool is beyond ttl-duration. +ttl-duration = "{{ .Mempool.TTLDuration }}" + +# ttl-num-blocks, if non-zero, defines the maximum number of blocks a transaction +# can exist for in the mempool. +# +# Note, if ttl-duration is also defined, a transaction will be removed if it +# has existed in the mempool at least ttl-num-blocks number of blocks or if +# it's insertion time into the mempool is beyond ttl-duration. +ttl-num-blocks = {{ .Mempool.TTLNumBlocks }} + +####################################################### +### State Sync Configuration Options ### +####################################################### +[statesync] +# State sync rapidly bootstraps a new node by discovering, fetching, and restoring a state machine +# snapshot from peers instead of fetching and replaying historical blocks. Requires some peers in +# the network to take and serve state machine snapshots. State sync is not attempted if the node +# has any local state (LastBlockHeight > 0). The node will have a truncated block history, +# starting from the height of the snapshot. +enable = {{ .StateSync.Enable }} + +# State sync uses light client verification to verify state. This can be done either through the +# P2P layer or RPC layer. Set this to true to use the P2P layer. If false (default), RPC layer +# will be used. +use-p2p = {{ .StateSync.UseP2P }} + +# If using RPC, at least two addresses need to be provided. They should be compatible with net.Dial, +# for example: "host.example.com:2125" +rpc-servers = "{{ StringsJoin .StateSync.RPCServers "," }}" + +# The hash and height of a trusted block. Must be within the trust-period. +trust-height = {{ .StateSync.TrustHeight }} +trust-hash = "{{ .StateSync.TrustHash }}" + +# The trust period should be set so that Tendermint can detect and gossip misbehavior before +# it is considered expired. For chains based on the Cosmos SDK, one day less than the unbonding +# period should suffice. +trust-period = "{{ .StateSync.TrustPeriod }}" + +# Time to spend discovering snapshots before initiating a restore. +discovery-time = "{{ .StateSync.DiscoveryTime }}" + +# Temporary directory for state sync snapshot chunks, defaults to os.TempDir(). +# The synchronizer will create a new, randomly named directory within this directory +# and remove it when the sync is complete. +temp-dir = "{{ .StateSync.TempDir }}" + +# The timeout duration before re-requesting a chunk, possibly from a different +# peer (default: 15 seconds). +chunk-request-timeout = "{{ .StateSync.ChunkRequestTimeout }}" + +# The number of concurrent chunk and block fetchers to run (default: 4). +fetchers = "{{ .StateSync.Fetchers }}" + +####################################################### +### Consensus Configuration Options ### +####################################################### +[consensus] + +wal-file = "{{ js .Consensus.WalPath }}" + +# How many blocks to look back to check existence of the node's consensus votes before joining consensus +# When non-zero, the node will panic upon restart +# if the same consensus key was used to sign {double-sign-check-height} last blocks. +# So, validators should stop the state machine, wait for some blocks, and then restart the state machine to avoid panic. +double-sign-check-height = {{ .Consensus.DoubleSignCheckHeight }} + +# EmptyBlocks mode and possible interval between empty blocks +create-empty-blocks = {{ .Consensus.CreateEmptyBlocks }} +create-empty-blocks-interval = "{{ .Consensus.CreateEmptyBlocksInterval }}" + +# Reactor sleep duration parameters +peer-gossip-sleep-duration = "{{ .Consensus.PeerGossipSleepDuration }}" +peer-query-maj23-sleep-duration = "{{ .Consensus.PeerQueryMaj23SleepDuration }}" + +### Unsafe Timeout Overrides ### + +# These fields provide temporary overrides for the Timeout consensus parameters. +# Use of these parameters is strongly discouraged. Using these parameters may have serious +# liveness implications for the validator and for the chain. +# +# These fields will be removed from the configuration file in the v0.37 release of Tendermint. +# For additional information, see ADR-74: +# https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-074-timeout-params.md + +# This field provides an unsafe override of the Propose timeout consensus parameter. +# This field configures how long the consensus engine will wait for a proposal block before prevoting nil. +# If this field is set to a value greater than 0, it will take effect. +# unsafe-propose-timeout-override = {{ .Consensus.UnsafeProposeTimeoutOverride }} + +# This field provides an unsafe override of the ProposeDelta timeout consensus parameter. +# This field configures how much the propose timeout increases with each round. +# If this field is set to a value greater than 0, it will take effect. +# unsafe-propose-timeout-delta-override = {{ .Consensus.UnsafeProposeTimeoutDeltaOverride }} + +# This field provides an unsafe override of the Vote timeout consensus parameter. +# This field configures how long the consensus engine will wait after +# receiving +2/3 votes in a round. +# If this field is set to a value greater than 0, it will take effect. +# unsafe-vote-timeout-override = {{ .Consensus.UnsafeVoteTimeoutOverride }} + +# This field provides an unsafe override of the VoteDelta timeout consensus parameter. +# This field configures how much the vote timeout increases with each round. +# If this field is set to a value greater than 0, it will take effect. +# unsafe-vote-timeout-delta-override = {{ .Consensus.UnsafeVoteTimeoutDeltaOverride }} + +# This field provides an unsafe override of the Commit timeout consensus parameter. +# This field configures how long the consensus engine will wait after receiving +# +2/3 precommits before beginning the next height. +# If this field is set to a value greater than 0, it will take effect. +# unsafe-commit-timeout-override = {{ .Consensus.UnsafeCommitTimeoutOverride }} + +# This field provides an unsafe override of the BypassCommitTimeout consensus parameter. +# This field configures if the consensus engine will wait for the full Commit timeout +# before proceeding to the next height. +# If this field is set to true, the consensus engine will proceed to the next height +# as soon as the node has gathered votes from all of the validators on the network. +# unsafe-bypass-commit-timeout-override = + +####################################################### +### Transaction Indexer Configuration Options ### +####################################################### +[tx-index] + +# The backend database list to back the indexer. +# If list contains "null" or "", meaning no indexer service will be used. +# +# The application will set which txs to index. In some cases a node operator will be able +# to decide which txs to index based on configuration set in the application. +# +# Options: +# 1) "null" (default) - no indexer services. +# 2) "kv" - a simple indexer backed by key-value storage (see DBBackend) +# 3) "psql" - the indexer services backed by PostgreSQL. +# When "kv" or "psql" is chosen "tx.height" and "tx.hash" will always be indexed. +indexer = [{{ range $i, $e := .TxIndex.Indexer }}{{if $i}}, {{end}}{{ printf "%q" $e}}{{end}}] + +# The PostgreSQL connection configuration, the connection format: +# postgresql://:@:/? +psql-conn = "{{ .TxIndex.PsqlConn }}" + +####################################################### +### Instrumentation Configuration Options ### +####################################################### +[instrumentation] + +# When true, Prometheus metrics are served under /metrics on +# PrometheusListenAddr. +# Check out the documentation for the list of available metrics. +prometheus = {{ .Instrumentation.Prometheus }} + +# Address to listen for Prometheus collector(s) connections +prometheus-listen-addr = "{{ .Instrumentation.PrometheusListenAddr }}" + +# Maximum number of simultaneous connections. +# If you want to accept a larger number than the default, make sure +# you increase your OS limits. +# 0 - unlimited. +max-open-connections = {{ .Instrumentation.MaxOpenConnections }} + +# Instrumentation namespace +namespace = "{{ .Instrumentation.Namespace }}" +` + +/****** these are for test settings ***********/ + +func ResetTestRoot(dir, testName string) (*Config, error) { + return ResetTestRootWithChainID(dir, testName, "") +} + +func ResetTestRootWithChainID(dir, testName string, chainID string) (*Config, error) { + // create a unique, concurrency-safe test directory under os.TempDir() + rootDir, err := os.MkdirTemp(dir, fmt.Sprintf("%s-%s_", chainID, testName)) + if err != nil { + return nil, err + } + // ensure config and data subdirs are created + if err := tmos.EnsureDir(filepath.Join(rootDir, defaultConfigDir), defaultDirPerm); err != nil { + return nil, err + } + if err := tmos.EnsureDir(filepath.Join(rootDir, defaultDataDir), defaultDirPerm); err != nil { + return nil, err + } + + conf := DefaultConfig() + genesisFilePath := filepath.Join(rootDir, conf.Genesis) + privKeyFilePath := filepath.Join(rootDir, conf.PrivValidator.Key) + privStateFilePath := filepath.Join(rootDir, conf.PrivValidator.State) + + // Write default config file if missing. + if err := writeDefaultConfigFileIfNone(rootDir); err != nil { + return nil, err + } + + if !tmos.FileExists(genesisFilePath) { + if chainID == "" { + chainID = "tendermint_test" + } + testGenesis := fmt.Sprintf(testGenesisFmt, chainID) + if err := writeFile(genesisFilePath, []byte(testGenesis), 0644); err != nil { + return nil, err + } + } + // we always overwrite the priv val + if err := writeFile(privKeyFilePath, []byte(testPrivValidatorKey), 0644); err != nil { + return nil, err + } + if err := writeFile(privStateFilePath, []byte(testPrivValidatorState), 0644); err != nil { + return nil, err + } + + config := TestConfig().SetRoot(rootDir) + config.Instrumentation.Namespace = fmt.Sprintf("%s_%s_%s", testName, chainID, tmrand.Str(16)) + return config, nil +} + +func writeFile(filePath string, contents []byte, mode os.FileMode) error { + if err := os.WriteFile(filePath, contents, mode); err != nil { + return fmt.Errorf("failed to write file: %w", err) + } + return nil +} + +const testGenesisFmt = `{ + "genesis_time": "2018-10-10T08:20:13.695936996Z", + "chain_id": "%s", + "initial_height": "1", + "consensus_params": { + "block": { + "max_bytes": "22020096", + "max_gas": "-1", + "time_iota_ms": "10" + }, + "synchrony": { + "message_delay": "500000000", + "precision": "10000000" + }, + "timeout": { + "propose": "30000000", + "propose_delta": "50000", + "vote": "30000000", + "vote_delta": "50000", + "commit": "10000000", + "bypass_timeout_commit": true + }, + "evidence": { + "max_age_num_blocks": "100000", + "max_age_duration": "172800000000000", + "max_bytes": "1048576" + }, + "validator": { + "pub_key_types": [ + "ed25519" + ] + }, + "version": {} + }, + "validators": [ + { + "pub_key": { + "type": "tendermint/PubKeyEd25519", + "value":"AT/+aaL1eB0477Mud9JMm8Sh8BIvOYlPGC9KkIUmFaE=" + }, + "power": "10", + "name": "" + } + ], + "app_hash": "" +}` + +const testPrivValidatorKey = `{ + "address": "A3258DCBF45DCA0DF052981870F2D1441A36D145", + "pub_key": { + "type": "tendermint/PubKeyEd25519", + "value": "AT/+aaL1eB0477Mud9JMm8Sh8BIvOYlPGC9KkIUmFaE=" + }, + "priv_key": { + "type": "tendermint/PrivKeyEd25519", + "value": "EVkqJO/jIXp3rkASXfh9YnyToYXRXhBr6g9cQVxPFnQBP/5povV4HTjvsy530kybxKHwEi85iU8YL0qQhSYVoQ==" + } +}` + +const testPrivValidatorState = `{ + "height": "0", + "round": 0, + "step": 0 +}` diff --git a/sei-tendermint/config/toml_test.go b/sei-tendermint/config/toml_test.go new file mode 100644 index 0000000000..cf27c4484a --- /dev/null +++ b/sei-tendermint/config/toml_test.go @@ -0,0 +1,83 @@ +package config + +import ( + "os" + "path/filepath" + "strings" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func ensureFiles(t *testing.T, rootDir string, files ...string) { + for _, f := range files { + p := rootify(rootDir, f) + _, err := os.Stat(p) + assert.NoError(t, err, p) + } +} + +func TestEnsureRoot(t *testing.T) { + // setup temp dir for test + tmpDir := t.TempDir() + + // create root dir + EnsureRoot(tmpDir) + + require.NoError(t, WriteConfigFile(tmpDir, DefaultConfig())) + + // make sure config is set properly + data, err := os.ReadFile(filepath.Join(tmpDir, defaultConfigFilePath)) + require.NoError(t, err) + + checkConfig(t, string(data)) + + ensureFiles(t, tmpDir, "data") +} + +func TestEnsureTestRoot(t *testing.T) { + testName := "ensureTestRoot" + + // create root dir + cfg, err := ResetTestRoot(t.TempDir(), testName) + require.NoError(t, err) + defer os.RemoveAll(cfg.RootDir) + rootDir := cfg.RootDir + + // make sure config is set properly + data, err := os.ReadFile(filepath.Join(rootDir, defaultConfigFilePath)) + require.NoError(t, err) + + checkConfig(t, string(data)) + + // TODO: make sure the cfg returned and testconfig are the same! + baseConfig := DefaultBaseConfig() + pvConfig := DefaultPrivValidatorConfig() + ensureFiles(t, rootDir, defaultDataDir, baseConfig.Genesis, pvConfig.Key, pvConfig.State) +} + +func checkConfig(t *testing.T, configFile string) { + t.Helper() + // list of words we expect in the config + var elems = []string{ + "moniker", + "seeds", + "proxy-app", + "create-empty-blocks", + "peer", + "timeout", + "broadcast", + "send", + "addr", + "wal", + "propose", + "max", + "genesis", + } + for _, e := range elems { + if !strings.Contains(configFile, e) { + t.Errorf("config file was expected to contain %s but did not", e) + } + } +} diff --git a/sei-tendermint/crypto/CHANGELOG.md b/sei-tendermint/crypto/CHANGELOG.md new file mode 100644 index 0000000000..dd7c1039fc --- /dev/null +++ b/sei-tendermint/crypto/CHANGELOG.md @@ -0,0 +1,154 @@ +# Changelog + +## 0.9.0 + +BREAKING CHANGES + +- `priv.PubKey()` no longer returns an error. Any applicable errors (such as when fetching the public key from a hardware wallet) should be checked and returned when constructing the private key. + +## 0.8.0 + +**TBD** + +## 0.7.0 + +**May 30th, 2018** + +BREAKING CHANGES + +No breaking changes compared to 0.6.2, but making up for the version bump that +should have happened in 0.6.1. + +We also bring in the `tmlibs/merkle` package with breaking changes: + +- change the hash function from RIPEMD160 to tmhash (first 20-bytes of SHA256) +- remove unused funcs and unexport SimpleMap + +FEATURES + +- [xchacha20poly1305] New authenticated encryption module +- [merkle] Moved in from tmlibs +- [merkle/tmhash] New hash function: the first 20-bytes of SHA256 + +IMPROVEMENTS + +- Remove some dead code +- Use constant-time compare for signatures + +BUG FIXES + +- Fix MixEntropy weakness +- Fix PrivKeyEd25519.Generate() + +## 0.6.2 (April 9, 2018) + +IMPROVEMENTS + +- Update for latest go-amino + +## 0.6.1 (March 26, 2018) + +BREAKING CHANGES + +- Encoding uses MarshalBinaryBare rather than MarshalBinary (which auto-length-prefixes) for pub/priv/sig. + +## 0.6.0 (March 2, 2018) + +BREAKING CHANGES + +- Update Amino names from "com.tendermint/..." to "tendermint/" + +## 0.5.0 (March 2, 2018) + +BREAKING CHANGES + +- nano: moved to `_nano` now while we're having build issues +- bcrypt: moved to `keys/bcrypt` +- hd: moved to `keys/hd`; `BTC` added to some function names; other function cleanup +- keys/cryptostore: moved to `keys`, renamed to `keybase`, and completely refactored +- keys: moved BIP39 related code to `keys/words` + +FEATURE + +- `Address` is a type alias for `cmn.HexBytes` + +BUG FIX + +- PrivKey comparisons done in constant time + +## 0.4.1 (October 27, 2017) + +This release removes support for bcrypt as it was merged too soon without an upgrade plan +for existing keys. + +REVERTS THE FOLLOWING COMMITS: + +- Parameterize and lower bcrypt cost - dfc4cdd2d71513e4a9922d679c74f36357c4c862 +- Upgrade keys to use bcrypt with salts (#38) - 8e7f0e7701f92206679ad093d013b9b162427631 + +## 0.4.0 (October 27, 2017) + +BREAKING CHANGES: + +- `keys`: use bcrypt plus salt + +FEATURES: + +- add support for signing via Ledger Nano + +IMPROVEMENTS: + +- linting and comments + +## 0.3.0 (September 22, 2017) + +BREAKING CHANGES: + +- Remove `cmd` and `keys/tx` packages altogether: move it to the cosmos-sdk +- `cryptostore.Generator` takes a secret +- Remove `String()` from `Signature` interface + +FEATURES: + +- `keys`: add CRC16 error correcting code + +IMPROVEMENTS: + +- Allow no passwords on keys for development convenience + + +## 0.2.1 (June 21, 2017) + +- Improve keys command + - No password prompts in non-interactive mode (echo 'foobar' | keys new foo) + - Added support for seed phrases + - Seed phrase now returned on `keys new` + - Add `keys restore` to restore private key from key phrase + - Checksum to verify typos in the seed phrase (rather than just a useless key) + - Add `keys delete` to remove a key if needed + +## 0.2.0 (May 18, 2017) + +BREAKING CHANGES: + +- [hd] The following functions no longer take a `coin string` as argument: `ComputeAddress`, `AddrFromPubKeyBytes`, `ComputeAddressForPrivKey`, `ComputeWIF`, `WIFFromPrivKeyBytes` +- Changes to `PrivKey`, `PubKey`, and `Signature` (denoted `Xxx` below): + - interfaces are renamed `XxxInner`, and are not for use outside the package, though they must be exposed for sake of serialization. + - `Xxx` is now a struct that wraps the corresponding `XxxInner` interface + +FEATURES: + +- `github.com/tendermint/go-keys -> github.com/tendermint/go-crypto/keys` - command and lib for generating and managing encrypted keys +- [hd] New function `WIFFromPrivKeyBytes(privKeyBytes []byte, compress bool) string` +- Changes to `PrivKey`, `PubKey`, and `Signature` (denoted `Xxx` below): + - Expose a new method `Unwrap() XxxInner` on the `Xxx` struct which returns the corresponding `XxxInner` interface + - Expose a new method `Wrap() Xxx` on the `XxxInner` interface which returns the corresponding `Xxx` struct + +IMPROVEMENTS: + +- Update to use new `tmlibs` repository + +## 0.1.0 (April 14, 2017) + +Initial release + diff --git a/sei-tendermint/crypto/README.md b/sei-tendermint/crypto/README.md new file mode 100644 index 0000000000..d60628d970 --- /dev/null +++ b/sei-tendermint/crypto/README.md @@ -0,0 +1,30 @@ +# crypto + +crypto is the cryptographic package adapted for Tendermint's uses + +## Importing it + +To get the interfaces, +`import "github.com/tendermint/tendermint/crypto"` + +For any specific algorithm, use its specific module e.g. +`import "github.com/tendermint/tendermint/crypto/ed25519"` + +## Binary encoding + +For Binary encoding, please refer to the [Tendermint encoding specification](https://docs.tendermint.com/master/spec/core/encoding.html). + +## JSON Encoding + +JSON encoding is done using tendermint's internal json encoder. For more information on JSON encoding, please refer to [Tendermint JSON encoding](https://github.com/tendermint/tendermint/blob/ccc990498df70f5a3df06d22476c9bb83812cbe3/libs/json/doc.go) + +```go +Example JSON encodings: + +ed25519.PrivKey - {"type":"tendermint/PrivKeyEd25519","value":"EVkqJO/jIXp3rkASXfh9YnyToYXRXhBr6g9cQVxPFnQBP/5povV4HTjvsy530kybxKHwEi85iU8YL0qQhSYVoQ=="} +ed25519.PubKey - {"type":"tendermint/PubKeyEd25519","value":"AT/+aaL1eB0477Mud9JMm8Sh8BIvOYlPGC9KkIUmFaE="} +sr25519.PrivKeySr25519 - {"type":"tendermint/PrivKeySr25519","value":"xtYVH8UCIqfrY8FIFc0QEpAEBShSG4NT0zlEOVSZ2w4="} +sr25519.PubKeySr25519 - {"type":"tendermint/PubKeySr25519","value":"8sKBLKQ/OoXMcAJVxBqz1U7TyxRFQ5cmliuHy4MrF0s="} +crypto.PrivKeySecp256k1 - {"type":"tendermint/PrivKeySecp256k1","value":"zx4Pnh67N+g2V+5vZbQzEyRerX9c4ccNZOVzM9RvJ0Y="} +crypto.PubKeySecp256k1 - {"type":"tendermint/PubKeySecp256k1","value":"A8lPKJXcNl5VHt1FK8a244K9EJuS4WX1hFBnwisi0IJx"} +``` diff --git a/sei-tendermint/crypto/batch/batch.go b/sei-tendermint/crypto/batch/batch.go new file mode 100644 index 0000000000..dbd11373c6 --- /dev/null +++ b/sei-tendermint/crypto/batch/batch.go @@ -0,0 +1,33 @@ +package batch + +import ( + "github.com/tendermint/tendermint/crypto" + "github.com/tendermint/tendermint/crypto/ed25519" + "github.com/tendermint/tendermint/crypto/sr25519" +) + +// CreateBatchVerifier checks if a key type implements the batch verifier interface. +// Currently only ed25519 & sr25519 supports batch verification. +func CreateBatchVerifier(pk crypto.PubKey) (crypto.BatchVerifier, bool) { + + switch pk.Type() { + case ed25519.KeyType: + return ed25519.NewBatchVerifier(), true + case sr25519.KeyType: + return sr25519.NewBatchVerifier(), true + } + + // case where the key does not support batch verification + return nil, false +} + +// SupportsBatchVerifier checks if a key type implements the batch verifier +// interface. +func SupportsBatchVerifier(pk crypto.PubKey) bool { + switch pk.Type() { + case ed25519.KeyType, sr25519.KeyType: + return true + } + + return false +} diff --git a/sei-tendermint/crypto/crypto.go b/sei-tendermint/crypto/crypto.go new file mode 100644 index 0000000000..ea24af243d --- /dev/null +++ b/sei-tendermint/crypto/crypto.go @@ -0,0 +1,76 @@ +package crypto + +import ( + "crypto/sha256" + + "github.com/tendermint/tendermint/internal/jsontypes" + "github.com/tendermint/tendermint/libs/bytes" +) + +const ( + // HashSize is the size in bytes of an AddressHash. + HashSize = sha256.Size + + // AddressSize is the size of a pubkey address. + AddressSize = 20 +) + +// An address is a []byte, but hex-encoded even in JSON. +// []byte leaves us the option to change the address length. +// Use an alias so Unmarshal methods (with ptr receivers) are available too. +type Address = bytes.HexBytes + +// AddressHash computes a truncated SHA-256 hash of bz for use as +// a peer address. +// +// See: https://docs.tendermint.com/master/spec/core/data_structures.html#address +func AddressHash(bz []byte) Address { + h := sha256.Sum256(bz) + return Address(h[:AddressSize]) +} + +// Checksum returns the SHA256 of the bz. +func Checksum(bz []byte) []byte { + h := sha256.Sum256(bz) + return h[:] +} + +type PubKey interface { + Address() Address + Bytes() []byte + VerifySignature(msg []byte, sig []byte) bool + Equals(PubKey) bool + Type() string + + // Implementations must support tagged encoding in JSON. + jsontypes.Tagged +} + +type PrivKey interface { + Bytes() []byte + Sign(msg []byte) ([]byte, error) + PubKey() PubKey + Equals(PrivKey) bool + Type() string + + // Implementations must support tagged encoding in JSON. + jsontypes.Tagged +} + +type Symmetric interface { + Keygen() []byte + Encrypt(plaintext []byte, secret []byte) (ciphertext []byte) + Decrypt(ciphertext []byte, secret []byte) (plaintext []byte, err error) +} + +// If a new key type implements batch verification, +// the key type must be registered in github.com/tendermint/tendermint/crypto/batch +type BatchVerifier interface { + // Add appends an entry into the BatchVerifier. + Add(key PubKey, message, signature []byte) error + // Verify verifies all the entries in the BatchVerifier, and returns + // if every signature in the batch is valid, and a vector of bools + // indicating the verification status of each signature (in the order + // that signatures were added to the batch). + Verify() (bool, []bool) +} diff --git a/sei-tendermint/crypto/doc.go b/sei-tendermint/crypto/doc.go new file mode 100644 index 0000000000..95ae0af181 --- /dev/null +++ b/sei-tendermint/crypto/doc.go @@ -0,0 +1,42 @@ +// crypto is a customized/convenience cryptography package for supporting +// Tendermint. + +// It wraps select functionality of equivalent functions in the +// Go standard library, for easy usage with our libraries. + +// Keys: + +// All key generation functions return an instance of the PrivKey interface +// which implements methods + +// AssertIsPrivKeyInner() +// Bytes() []byte +// Sign(msg []byte) Signature +// PubKey() PubKey +// Equals(PrivKey) bool +// Wrap() PrivKey + +// From the above method we can: +// a) Retrieve the public key if needed + +// pubKey := key.PubKey() + +// For example: +// privKey, err := ed25519.GenPrivKey() +// if err != nil { +// ... +// } +// pubKey := privKey.PubKey() +// ... +// // And then you can use the private and public key +// doSomething(privKey, pubKey) + +// We also provide hashing wrappers around algorithms: + +// Sha256 +// sum := crypto.Sha256([]byte("This is Tendermint")) +// fmt.Printf("%x\n", sum) + +package crypto + +// TODO: Add more docs in here diff --git a/sei-tendermint/crypto/ed25519/bench_test.go b/sei-tendermint/crypto/ed25519/bench_test.go new file mode 100644 index 0000000000..49fcd15041 --- /dev/null +++ b/sei-tendermint/crypto/ed25519/bench_test.go @@ -0,0 +1,68 @@ +package ed25519 + +import ( + "fmt" + "io" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/tendermint/tendermint/crypto" + "github.com/tendermint/tendermint/crypto/internal/benchmarking" +) + +func BenchmarkKeyGeneration(b *testing.B) { + benchmarkKeygenWrapper := func(reader io.Reader) crypto.PrivKey { + return genPrivKey(reader) + } + benchmarking.BenchmarkKeyGeneration(b, benchmarkKeygenWrapper) +} + +func BenchmarkSigning(b *testing.B) { + priv := GenPrivKey() + benchmarking.BenchmarkSigning(b, priv) +} + +func BenchmarkVerification(b *testing.B) { + priv := GenPrivKey() + benchmarking.BenchmarkVerification(b, priv) +} + +func BenchmarkVerifyBatch(b *testing.B) { + msg := []byte("BatchVerifyTest") + + for _, sigsCount := range []int{1, 8, 64, 1024} { + sigsCount := sigsCount + b.Run(fmt.Sprintf("sig-count-%d", sigsCount), func(b *testing.B) { + // Pre-generate all of the keys, and signatures, but do not + // benchmark key-generation and signing. + pubs := make([]crypto.PubKey, 0, sigsCount) + sigs := make([][]byte, 0, sigsCount) + for i := 0; i < sigsCount; i++ { + priv := GenPrivKey() + sig, _ := priv.Sign(msg) + pubs = append(pubs, priv.PubKey().(PubKey)) + sigs = append(sigs, sig) + } + b.ResetTimer() + + b.ReportAllocs() + // NOTE: dividing by n so that metrics are per-signature + for i := 0; i < b.N/sigsCount; i++ { + // The benchmark could just benchmark the Verify() + // routine, but there is non-trivial overhead associated + // with BatchVerifier.Add(), which should be included + // in the benchmark. + v := NewBatchVerifier() + for i := 0; i < sigsCount; i++ { + err := v.Add(pubs[i], msg, sigs[i]) + require.NoError(b, err) + } + + if ok, _ := v.Verify(); !ok { + b.Fatal("signature set failed batch verification") + } + } + }) + } +} diff --git a/sei-tendermint/crypto/ed25519/ed25519.go b/sei-tendermint/crypto/ed25519/ed25519.go new file mode 100644 index 0000000000..ca425d1113 --- /dev/null +++ b/sei-tendermint/crypto/ed25519/ed25519.go @@ -0,0 +1,233 @@ +package ed25519 + +import ( + "bytes" + "crypto/rand" + "crypto/sha256" + "crypto/subtle" + "errors" + "fmt" + "io" + + "github.com/oasisprotocol/curve25519-voi/primitives/ed25519" + "github.com/oasisprotocol/curve25519-voi/primitives/ed25519/extra/cache" + + "github.com/tendermint/tendermint/crypto" + "github.com/tendermint/tendermint/internal/jsontypes" +) + +//------------------------------------- + +var ( + _ crypto.PrivKey = PrivKey{} + + // curve25519-voi's Ed25519 implementation supports configurable + // verification behavior, and tendermint uses the ZIP-215 verification + // semantics. + verifyOptions = &ed25519.Options{ + Verify: ed25519.VerifyOptionsZIP_215, + } + + cachingVerifier = cache.NewVerifier(cache.NewLRUCache(cacheSize)) +) + +const ( + PrivKeyName = "tendermint/PrivKeyEd25519" + PubKeyName = "tendermint/PubKeyEd25519" + // PubKeySize is is the size, in bytes, of public keys as used in this package. + PubKeySize = 32 + // PrivateKeySize is the size, in bytes, of private keys as used in this package. + PrivateKeySize = 64 + // Size of an Edwards25519 signature. Namely the size of a compressed + // Edwards25519 point, and a field element. Both of which are 32 bytes. + SignatureSize = 64 + // SeedSize is the size, in bytes, of private key seeds. These are the + // private key representations used by RFC 8032. + SeedSize = 32 + + KeyType = "ed25519" + + // cacheSize is the number of public keys that will be cached in + // an expanded format for repeated signature verification. + // + // TODO/perf: Either this should exclude single verification, or be + // tuned to `> validatorSize + maxTxnsPerBlock` to avoid cache + // thrashing. + cacheSize = 4096 +) + +func init() { + jsontypes.MustRegister(PubKey{}) + jsontypes.MustRegister(PrivKey{}) +} + +// PrivKey implements crypto.PrivKey. +type PrivKey []byte + +// TypeTag satisfies the jsontypes.Tagged interface. +func (PrivKey) TypeTag() string { return PrivKeyName } + +// Bytes returns the privkey byte format. +func (privKey PrivKey) Bytes() []byte { + return []byte(privKey) +} + +// Sign produces a signature on the provided message. +// This assumes the privkey is wellformed in the golang format. +// The first 32 bytes should be random, +// corresponding to the normal ed25519 private key. +// The latter 32 bytes should be the compressed public key. +// If these conditions aren't met, Sign will panic or produce an +// incorrect signature. +func (privKey PrivKey) Sign(msg []byte) ([]byte, error) { + signatureBytes := ed25519.Sign(ed25519.PrivateKey(privKey), msg) + return signatureBytes, nil +} + +// PubKey gets the corresponding public key from the private key. +// +// Panics if the private key is not initialized. +func (privKey PrivKey) PubKey() crypto.PubKey { + // If the latter 32 bytes of the privkey are all zero, privkey is not + // initialized. + initialized := false + for _, v := range privKey[32:] { + if v != 0 { + initialized = true + break + } + } + + if !initialized { + panic("Expected ed25519 PrivKey to include concatenated pubkey bytes") + } + + pubkeyBytes := make([]byte, PubKeySize) + copy(pubkeyBytes, privKey[32:]) + return PubKey(pubkeyBytes) +} + +// Equals - you probably don't need to use this. +// Runs in constant time based on length of the keys. +func (privKey PrivKey) Equals(other crypto.PrivKey) bool { + if otherEd, ok := other.(PrivKey); ok { + return subtle.ConstantTimeCompare(privKey[:], otherEd[:]) == 1 + } + + return false +} + +func (privKey PrivKey) Type() string { + return KeyType +} + +// GenPrivKey generates a new ed25519 private key. +// It uses OS randomness in conjunction with the current global random seed +// in tendermint/libs/common to generate the private key. +func GenPrivKey() PrivKey { + return genPrivKey(rand.Reader) +} + +// genPrivKey generates a new ed25519 private key using the provided reader. +func genPrivKey(rand io.Reader) PrivKey { + _, priv, err := ed25519.GenerateKey(rand) + if err != nil { + panic(err) + } + + return PrivKey(priv) +} + +// GenPrivKeyFromSecret hashes the secret with SHA2, and uses +// that 32 byte output to create the private key. +// NOTE: secret should be the output of a KDF like bcrypt, +// if it's derived from user input. +func GenPrivKeyFromSecret(secret []byte) PrivKey { + seed := sha256.Sum256(secret) + return PrivKey(ed25519.NewKeyFromSeed(seed[:])) +} + +//------------------------------------- + +var _ crypto.PubKey = PubKey{} + +// PubKeyEd25519 implements crypto.PubKey for the Ed25519 signature scheme. +type PubKey []byte + +// TypeTag satisfies the jsontypes.Tagged interface. +func (PubKey) TypeTag() string { return PubKeyName } + +// Address is the SHA256-20 of the raw pubkey bytes. +func (pubKey PubKey) Address() crypto.Address { + if len(pubKey) != PubKeySize { + panic("pubkey is incorrect size") + } + return crypto.AddressHash(pubKey) +} + +// Bytes returns the PubKey byte format. +func (pubKey PubKey) Bytes() []byte { + return []byte(pubKey) +} + +func (pubKey PubKey) VerifySignature(msg []byte, sig []byte) bool { + // make sure we use the same algorithm to sign + if len(sig) != SignatureSize { + return false + } + + return cachingVerifier.VerifyWithOptions(ed25519.PublicKey(pubKey), msg, sig, verifyOptions) +} + +func (pubKey PubKey) String() string { + return fmt.Sprintf("PubKeyEd25519{%X}", []byte(pubKey)) +} + +func (pubKey PubKey) Type() string { + return KeyType +} + +func (pubKey PubKey) Equals(other crypto.PubKey) bool { + if otherEd, ok := other.(PubKey); ok { + return bytes.Equal(pubKey[:], otherEd[:]) + } + + return false +} + +var _ crypto.BatchVerifier = &BatchVerifier{} + +// BatchVerifier implements batch verification for ed25519. +type BatchVerifier struct { + *ed25519.BatchVerifier +} + +func NewBatchVerifier() crypto.BatchVerifier { + return &BatchVerifier{ed25519.NewBatchVerifier()} +} + +func (b *BatchVerifier) Add(key crypto.PubKey, msg, signature []byte) error { + pkEd, ok := key.(PubKey) + if !ok { + return fmt.Errorf("pubkey is not Ed25519") + } + + pkBytes := pkEd.Bytes() + + if l := len(pkBytes); l != PubKeySize { + return fmt.Errorf("pubkey size is incorrect; expected: %d, got %d", PubKeySize, l) + } + + // check that the signature is the correct length + if len(signature) != SignatureSize { + return errors.New("invalid signature") + } + + cachingVerifier.AddWithOptions(b.BatchVerifier, ed25519.PublicKey(pkBytes), msg, signature, verifyOptions) + + return nil +} + +func (b *BatchVerifier) Verify() (bool, []bool) { + return b.BatchVerifier.Verify(rand.Reader) +} diff --git a/sei-tendermint/crypto/ed25519/ed25519_test.go b/sei-tendermint/crypto/ed25519/ed25519_test.go new file mode 100644 index 0000000000..a6acafc580 --- /dev/null +++ b/sei-tendermint/crypto/ed25519/ed25519_test.go @@ -0,0 +1,55 @@ +package ed25519_test + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/tendermint/tendermint/crypto" + "github.com/tendermint/tendermint/crypto/ed25519" +) + +func TestSignAndValidateEd25519(t *testing.T) { + + privKey := ed25519.GenPrivKey() + pubKey := privKey.PubKey() + + msg := crypto.CRandBytes(128) + sig, err := privKey.Sign(msg) + require.NoError(t, err) + + // Test the signature + assert.True(t, pubKey.VerifySignature(msg, sig)) + + // Mutate the signature, just one bit. + // TODO: Replace this with a much better fuzzer, tendermint/ed25519/issues/10 + sig[7] ^= byte(0x01) + + assert.False(t, pubKey.VerifySignature(msg, sig)) +} + +func TestBatchSafe(t *testing.T) { + v := ed25519.NewBatchVerifier() + + for i := 0; i <= 38; i++ { + priv := ed25519.GenPrivKey() + pub := priv.PubKey() + + var msg []byte + if i%2 == 0 { + msg = []byte("easter") + } else { + msg = []byte("egg") + } + + sig, err := priv.Sign(msg) + require.NoError(t, err) + + err = v.Add(pub, msg, sig) + require.NoError(t, err) + } + + ok, _ := v.Verify() + require.True(t, ok) +} diff --git a/sei-tendermint/crypto/encoding/codec.go b/sei-tendermint/crypto/encoding/codec.go new file mode 100644 index 0000000000..fd32f101cb --- /dev/null +++ b/sei-tendermint/crypto/encoding/codec.go @@ -0,0 +1,78 @@ +package encoding + +import ( + "fmt" + + "github.com/tendermint/tendermint/crypto" + "github.com/tendermint/tendermint/crypto/ed25519" + "github.com/tendermint/tendermint/crypto/secp256k1" + "github.com/tendermint/tendermint/crypto/sr25519" + "github.com/tendermint/tendermint/internal/jsontypes" + cryptoproto "github.com/tendermint/tendermint/proto/tendermint/crypto" +) + +func init() { + jsontypes.MustRegister((*cryptoproto.PublicKey)(nil)) + jsontypes.MustRegister((*cryptoproto.PublicKey_Ed25519)(nil)) + jsontypes.MustRegister((*cryptoproto.PublicKey_Secp256K1)(nil)) +} + +// PubKeyToProto takes crypto.PubKey and transforms it to a protobuf Pubkey +func PubKeyToProto(k crypto.PubKey) (cryptoproto.PublicKey, error) { + var kp cryptoproto.PublicKey + switch k := k.(type) { + case ed25519.PubKey: + kp = cryptoproto.PublicKey{ + Sum: &cryptoproto.PublicKey_Ed25519{ + Ed25519: k, + }, + } + case secp256k1.PubKey: + kp = cryptoproto.PublicKey{ + Sum: &cryptoproto.PublicKey_Secp256K1{ + Secp256K1: k, + }, + } + case sr25519.PubKey: + kp = cryptoproto.PublicKey{ + Sum: &cryptoproto.PublicKey_Sr25519{ + Sr25519: k, + }, + } + default: + return kp, fmt.Errorf("toproto: key type %v is not supported", k) + } + return kp, nil +} + +// PubKeyFromProto takes a protobuf Pubkey and transforms it to a crypto.Pubkey +func PubKeyFromProto(k cryptoproto.PublicKey) (crypto.PubKey, error) { + switch k := k.Sum.(type) { + case *cryptoproto.PublicKey_Ed25519: + if len(k.Ed25519) != ed25519.PubKeySize { + return nil, fmt.Errorf("invalid size for PubKeyEd25519. Got %d, expected %d", + len(k.Ed25519), ed25519.PubKeySize) + } + pk := make(ed25519.PubKey, ed25519.PubKeySize) + copy(pk, k.Ed25519) + return pk, nil + case *cryptoproto.PublicKey_Secp256K1: + if len(k.Secp256K1) != secp256k1.PubKeySize { + return nil, fmt.Errorf("invalid size for PubKeySecp256k1. Got %d, expected %d", + len(k.Secp256K1), secp256k1.PubKeySize) + } + pk := make(secp256k1.PubKey, secp256k1.PubKeySize) + copy(pk, k.Secp256K1) + return pk, nil + case *cryptoproto.PublicKey_Sr25519: + if len(k.Sr25519) != sr25519.PubKeySize { + return nil, fmt.Errorf("invalid size for PubKeySr25519. Got %d, expected %d", + len(k.Sr25519), sr25519.PubKeySize) + } + pk := make(sr25519.PubKey, sr25519.PubKeySize) + copy(pk, k.Sr25519) + return pk, nil + default: + return nil, fmt.Errorf("fromproto: key type %v is not supported", k) + } +} diff --git a/sei-tendermint/crypto/internal/benchmarking/bench.go b/sei-tendermint/crypto/internal/benchmarking/bench.go new file mode 100644 index 0000000000..b74b901db9 --- /dev/null +++ b/sei-tendermint/crypto/internal/benchmarking/bench.go @@ -0,0 +1,92 @@ +package benchmarking + +import ( + "io" + "testing" + + "github.com/tendermint/tendermint/crypto" +) + +// The code in this file is adapted from agl/ed25519. +// As such it is under the following license. +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found at the bottom of this file. + +type zeroReader struct{} + +func (zeroReader) Read(buf []byte) (int, error) { + for i := range buf { + buf[i] = 0 + } + return len(buf), nil +} + +// BenchmarkKeyGeneration benchmarks the given key generation algorithm using +// a dummy reader. +func BenchmarkKeyGeneration(b *testing.B, generateKey func(reader io.Reader) crypto.PrivKey) { + var zero zeroReader + for i := 0; i < b.N; i++ { + generateKey(zero) + } +} + +// BenchmarkSigning benchmarks the given signing algorithm using +// the provided privkey. +func BenchmarkSigning(b *testing.B, priv crypto.PrivKey) { + message := []byte("Hello, world!") + b.ResetTimer() + for i := 0; i < b.N; i++ { + _, err := priv.Sign(message) + + if err != nil { + b.FailNow() + } + } +} + +// BenchmarkVerification benchmarks the given verification algorithm using +// the provided privkey on a constant message. +func BenchmarkVerification(b *testing.B, priv crypto.PrivKey) { + pub := priv.PubKey() + // use a short message, so this time doesn't get dominated by hashing. + message := []byte("Hello, world!") + signature, err := priv.Sign(message) + if err != nil { + b.Fatal(err) + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + pub.VerifySignature(message, signature) + } +} + +// Below is the aforementioned license. + +// Copyright (c) 2012 The Go Authors. All rights reserved. + +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: + +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. + +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/sei-tendermint/crypto/merkle/README.md b/sei-tendermint/crypto/merkle/README.md new file mode 100644 index 0000000000..16b1abb585 --- /dev/null +++ b/sei-tendermint/crypto/merkle/README.md @@ -0,0 +1,4 @@ +# Merkle Tree + +For smaller static data structures that don't require immutable snapshots or mutability; +for instance the transactions and validation signatures of a block can be hashed using this simple merkle tree logic. diff --git a/sei-tendermint/crypto/merkle/doc.go b/sei-tendermint/crypto/merkle/doc.go new file mode 100644 index 0000000000..865c302170 --- /dev/null +++ b/sei-tendermint/crypto/merkle/doc.go @@ -0,0 +1,31 @@ +/* +Package merkle computes a deterministic minimal height Merkle tree hash. +If the number of items is not a power of two, some leaves +will be at different levels. Tries to keep both sides of +the tree the same size, but the left may be one greater. + +Use this for short deterministic trees, such as the validator list. +For larger datasets, use IAVLTree. + +Be aware that the current implementation by itself does not prevent +second pre-image attacks. Hence, use this library with caution. +Otherwise you might run into similar issues as, e.g., in early Bitcoin: +https://bitcointalk.org/?topic=102395 + + * + / \ + / \ + / \ + / \ + * * + / \ / \ + / \ / \ + / \ / \ + * * * h6 + / \ / \ / \ + h0 h1 h2 h3 h4 h5 + +TODO(ismail): add 2nd pre-image protection or clarify further on how we use this and why this secure. + +*/ +package merkle diff --git a/sei-tendermint/crypto/merkle/hash.go b/sei-tendermint/crypto/merkle/hash.go new file mode 100644 index 0000000000..0bb5448d71 --- /dev/null +++ b/sei-tendermint/crypto/merkle/hash.go @@ -0,0 +1,48 @@ +package merkle + +import ( + "hash" + + "github.com/tendermint/tendermint/crypto" +) + +// TODO: make these have a large predefined capacity +var ( + leafPrefix = []byte{0} + innerPrefix = []byte{1} +) + +// returns tmhash() +func emptyHash() []byte { + return crypto.Checksum([]byte{}) +} + +// returns tmhash(0x00 || leaf) +func leafHash(leaf []byte) []byte { + return crypto.Checksum(append(leafPrefix, leaf...)) +} + +// returns tmhash(0x00 || leaf) +func leafHashOpt(s hash.Hash, leaf []byte) []byte { + s.Reset() + s.Write(leafPrefix) + s.Write(leaf) + return s.Sum(nil) +} + +// returns tmhash(0x01 || left || right) +func innerHash(left []byte, right []byte) []byte { + data := make([]byte, len(innerPrefix)+len(left)+len(right)) + n := copy(data, innerPrefix) + n += copy(data[n:], left) + copy(data[n:], right) + return crypto.Checksum(data)[:] +} + +func innerHashOpt(s hash.Hash, left []byte, right []byte) []byte { + s.Reset() + s.Write(innerPrefix) + s.Write(left) + s.Write(right) + return s.Sum(nil) +} diff --git a/sei-tendermint/crypto/merkle/proof.go b/sei-tendermint/crypto/merkle/proof.go new file mode 100644 index 0000000000..8b98d1b21b --- /dev/null +++ b/sei-tendermint/crypto/merkle/proof.go @@ -0,0 +1,239 @@ +package merkle + +import ( + "bytes" + "errors" + "fmt" + + "github.com/tendermint/tendermint/crypto" + tmcrypto "github.com/tendermint/tendermint/proto/tendermint/crypto" +) + +const ( + // MaxAunts is the maximum number of aunts that can be included in a Proof. + // This corresponds to a tree of size 2^100, which should be sufficient for all conceivable purposes. + // This maximum helps prevent Denial-of-Service attacks by limitting the size of the proofs. + MaxAunts = 100 +) + +// Proof represents a Merkle proof. +// NOTE: The convention for proofs is to include leaf hashes but to +// exclude the root hash. +// This convention is implemented across IAVL range proofs as well. +// Keep this consistent unless there's a very good reason to change +// everything. This also affects the generalized proof system as +// well. +type Proof struct { + Total int64 `json:"total,string"` // Total number of items. + Index int64 `json:"index,string"` // Index of item to prove. + LeafHash []byte `json:"leaf_hash"` // Hash of item value. + Aunts [][]byte `json:"aunts"` // Hashes from leaf's sibling to a root's child. +} + +// ProofsFromByteSlices computes inclusion proof for given items. +// proofs[0] is the proof for items[0]. +func ProofsFromByteSlices(items [][]byte) (rootHash []byte, proofs []*Proof) { + trails, rootSPN := trailsFromByteSlices(items) + rootHash = rootSPN.Hash + proofs = make([]*Proof, len(items)) + for i, trail := range trails { + proofs[i] = &Proof{ + Total: int64(len(items)), + Index: int64(i), + LeafHash: trail.Hash, + Aunts: trail.FlattenAunts(), + } + } + return +} + +// Verify that the Proof proves the root hash. +// Check sp.Index/sp.Total manually if needed +func (sp *Proof) Verify(rootHash []byte, leaf []byte) error { + if sp.Total < 0 { + return errors.New("proof total must be positive") + } + if sp.Index < 0 { + return errors.New("proof index cannot be negative") + } + leafHash := leafHash(leaf) + if !bytes.Equal(sp.LeafHash, leafHash) { + return fmt.Errorf("invalid leaf hash: wanted %X got %X", leafHash, sp.LeafHash) + } + computedHash := sp.ComputeRootHash() + if !bytes.Equal(computedHash, rootHash) { + return fmt.Errorf("invalid root hash: wanted %X got %X", rootHash, computedHash) + } + return nil +} + +// Compute the root hash given a leaf hash. Does not verify the result. +func (sp *Proof) ComputeRootHash() []byte { + return computeHashFromAunts( + sp.Index, + sp.Total, + sp.LeafHash, + sp.Aunts, + ) +} + +// String implements the stringer interface for Proof. +// It is a wrapper around StringIndented. +func (sp *Proof) String() string { + return sp.StringIndented("") +} + +// StringIndented generates a canonical string representation of a Proof. +func (sp *Proof) StringIndented(indent string) string { + return fmt.Sprintf(`Proof{ +%s Aunts: %X +%s}`, + indent, sp.Aunts, + indent) +} + +// ValidateBasic performs basic validation. +// NOTE: it expects the LeafHash and the elements of Aunts to be of size tmhash.Size, +// and it expects at most MaxAunts elements in Aunts. +func (sp *Proof) ValidateBasic() error { + if sp.Total < 0 { + return errors.New("negative Total") + } + if sp.Index < 0 { + return errors.New("negative Index") + } + if len(sp.LeafHash) != crypto.HashSize { + return fmt.Errorf("expected LeafHash size to be %d, got %d", crypto.HashSize, len(sp.LeafHash)) + } + if len(sp.Aunts) > MaxAunts { + return fmt.Errorf("expected no more than %d aunts, got %d", MaxAunts, len(sp.Aunts)) + } + for i, auntHash := range sp.Aunts { + if len(auntHash) != crypto.HashSize { + return fmt.Errorf("expected Aunts#%d size to be %d, got %d", i, crypto.HashSize, len(auntHash)) + } + } + return nil +} + +func (sp *Proof) ToProto() *tmcrypto.Proof { + if sp == nil { + return nil + } + pb := new(tmcrypto.Proof) + + pb.Total = sp.Total + pb.Index = sp.Index + pb.LeafHash = sp.LeafHash + pb.Aunts = sp.Aunts + + return pb +} + +func ProofFromProto(pb *tmcrypto.Proof) (*Proof, error) { + if pb == nil { + return nil, errors.New("nil proof") + } + + sp := new(Proof) + + sp.Total = pb.Total + sp.Index = pb.Index + sp.LeafHash = pb.LeafHash + sp.Aunts = pb.Aunts + + return sp, sp.ValidateBasic() +} + +// Use the leafHash and innerHashes to get the root merkle hash. +// If the length of the innerHashes slice isn't exactly correct, the result is nil. +// Recursive impl. +func computeHashFromAunts(index, total int64, leafHash []byte, innerHashes [][]byte) []byte { + if index >= total || index < 0 || total <= 0 { + return nil + } + switch total { + case 0: + panic("Cannot call computeHashFromAunts() with 0 total") + case 1: + if len(innerHashes) != 0 { + return nil + } + return leafHash + default: + if len(innerHashes) == 0 { + return nil + } + numLeft := getSplitPoint(total) + if index < numLeft { + leftHash := computeHashFromAunts(index, numLeft, leafHash, innerHashes[:len(innerHashes)-1]) + if leftHash == nil { + return nil + } + return innerHash(leftHash, innerHashes[len(innerHashes)-1]) + } + rightHash := computeHashFromAunts(index-numLeft, total-numLeft, leafHash, innerHashes[:len(innerHashes)-1]) + if rightHash == nil { + return nil + } + return innerHash(innerHashes[len(innerHashes)-1], rightHash) + } +} + +// ProofNode is a helper structure to construct merkle proof. +// The node and the tree is thrown away afterwards. +// Exactly one of node.Left and node.Right is nil, unless node is the root, in which case both are nil. +// node.Parent.Hash = hash(node.Hash, node.Right.Hash) or +// hash(node.Left.Hash, node.Hash), depending on whether node is a left/right child. +type ProofNode struct { + Hash []byte + Parent *ProofNode + Left *ProofNode // Left sibling (only one of Left,Right is set) + Right *ProofNode // Right sibling (only one of Left,Right is set) +} + +// FlattenAunts will return the inner hashes for the item corresponding to the leaf, +// starting from a leaf ProofNode. +func (spn *ProofNode) FlattenAunts() [][]byte { + // Nonrecursive impl. + innerHashes := [][]byte{} + for spn != nil { + switch { + case spn.Left != nil: + innerHashes = append(innerHashes, spn.Left.Hash) + case spn.Right != nil: + innerHashes = append(innerHashes, spn.Right.Hash) + default: + // FIXME(fromberger): Per the documentation above, exactly one of + // these fields should be set. If that is true, this should probably + // be a panic since it violates the invariant. If not, when can it + // be OK to have no siblings? Does this occur at the leaves? + } + spn = spn.Parent + } + return innerHashes +} + +// trails[0].Hash is the leaf hash for items[0]. +// trails[i].Parent.Parent....Parent == root for all i. +func trailsFromByteSlices(items [][]byte) (trails []*ProofNode, root *ProofNode) { + // Recursive impl. + switch len(items) { + case 0: + return []*ProofNode{}, &ProofNode{emptyHash(), nil, nil, nil} + case 1: + trail := &ProofNode{leafHash(items[0]), nil, nil, nil} + return []*ProofNode{trail}, trail + default: + k := getSplitPoint(int64(len(items))) + lefts, leftRoot := trailsFromByteSlices(items[:k]) + rights, rightRoot := trailsFromByteSlices(items[k:]) + rootHash := innerHash(leftRoot.Hash, rightRoot.Hash) + root := &ProofNode{rootHash, nil, nil, nil} + leftRoot.Parent = root + leftRoot.Right = rightRoot + rightRoot.Parent = root + rightRoot.Left = leftRoot + return append(lefts, rights...), root + } +} diff --git a/sei-tendermint/crypto/merkle/proof_key_path.go b/sei-tendermint/crypto/merkle/proof_key_path.go new file mode 100644 index 0000000000..ca8b5f0523 --- /dev/null +++ b/sei-tendermint/crypto/merkle/proof_key_path.go @@ -0,0 +1,110 @@ +package merkle + +import ( + "encoding/hex" + "errors" + "fmt" + "net/url" + "strings" +) + +/* + + For generalized Merkle proofs, each layer of the proof may require an + optional key. The key may be encoded either by URL-encoding or + (upper-case) hex-encoding. + TODO: In the future, more encodings may be supported, like base32 (e.g. + /32:) + + For example, for a Cosmos-SDK application where the first two proof layers + are ValueOps, and the third proof layer is an IAVLValueOp, the keys + might look like: + + 0: []byte("App") + 1: []byte("IBC") + 2: []byte{0x01, 0x02, 0x03} + + Assuming that we know that the first two layers are always ASCII texts, we + probably want to use URLEncoding for those, whereas the third layer will + require HEX encoding for efficient representation. + + kp := new(KeyPath) + kp.AppendKey([]byte("App"), KeyEncodingURL) + kp.AppendKey([]byte("IBC"), KeyEncodingURL) + kp.AppendKey([]byte{0x01, 0x02, 0x03}, KeyEncodingURL) + kp.String() // Should return "/App/IBC/x:010203" + + NOTE: Key paths must begin with a `/`. + + NOTE: All encodings *MUST* work compatibly, such that you can choose to use + whatever encoding, and the decoded keys will always be the same. In other + words, it's just as good to encode all three keys using URL encoding or HEX + encoding... it just wouldn't be optimal in terms of readability or space + efficiency. + + NOTE: Punycode will never be supported here, because not all values can be + decoded. For example, no string decodes to the string "xn--blah" in + Punycode. + +*/ + +type keyEncoding int + +const ( + KeyEncodingURL keyEncoding = iota + KeyEncodingHex + KeyEncodingMax // Number of known encodings. Used for testing +) + +type Key struct { + name []byte + enc keyEncoding +} + +type KeyPath []Key + +func (pth KeyPath) AppendKey(key []byte, enc keyEncoding) KeyPath { + return append(pth, Key{key, enc}) +} + +func (pth KeyPath) String() string { + res := "" + for _, key := range pth { + switch key.enc { + case KeyEncodingURL: + res += "/" + url.PathEscape(string(key.name)) + case KeyEncodingHex: + res += "/x:" + fmt.Sprintf("%X", key.name) + default: + panic("unexpected key encoding type") + } + } + return res +} + +// Decode a path to a list of keys. Path must begin with `/`. +// Each key must use a known encoding. +func KeyPathToKeys(path string) (keys [][]byte, err error) { + if path == "" || path[0] != '/' { + return nil, errors.New("key path string must start with a forward slash '/'") + } + parts := strings.Split(path[1:], "/") + keys = make([][]byte, len(parts)) + for i, part := range parts { + if strings.HasPrefix(part, "x:") { + hexPart := part[2:] + key, err := hex.DecodeString(hexPart) + if err != nil { + return nil, fmt.Errorf("decoding hex-encoded part #%d: /%s: %w", i, part, err) + } + keys[i] = key + } else { + key, err := url.PathUnescape(part) + if err != nil { + return nil, fmt.Errorf("decoding url-encoded part #%d: /%s: %w", i, part, err) + } + keys[i] = []byte(key) // TODO Test this with random bytes, I'm not sure that it works for arbitrary bytes... + } + } + return keys, nil +} diff --git a/sei-tendermint/crypto/merkle/proof_key_path_test.go b/sei-tendermint/crypto/merkle/proof_key_path_test.go new file mode 100644 index 0000000000..13d26b3601 --- /dev/null +++ b/sei-tendermint/crypto/merkle/proof_key_path_test.go @@ -0,0 +1,44 @@ +package merkle + +import ( + // it is ok to use math/rand here: we do not need a cryptographically secure random + // number generator here and we can run the tests a bit faster + "math/rand" + "testing" + + "github.com/stretchr/testify/require" +) + +func TestKeyPath(t *testing.T) { + var path KeyPath + keys := make([][]byte, 10) + alphanum := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + + for d := 0; d < 1e4; d++ { + path = nil + + for i := range keys { + enc := keyEncoding(rand.Intn(int(KeyEncodingMax))) + keys[i] = make([]byte, rand.Uint32()%20) + switch enc { + case KeyEncodingURL: + for j := range keys[i] { + keys[i][j] = alphanum[rand.Intn(len(alphanum))] + } + case KeyEncodingHex: + rand.Read(keys[i]) + default: + require.Fail(t, "Unexpected encoding") + } + path = path.AppendKey(keys[i], enc) + } + + res, err := KeyPathToKeys(path.String()) + require.NoError(t, err) + require.Equal(t, len(keys), len(res)) + + for i, key := range keys { + require.Equal(t, key, res[i]) + } + } +} diff --git a/sei-tendermint/crypto/merkle/proof_op.go b/sei-tendermint/crypto/merkle/proof_op.go new file mode 100644 index 0000000000..038037cf53 --- /dev/null +++ b/sei-tendermint/crypto/merkle/proof_op.go @@ -0,0 +1,139 @@ +package merkle + +import ( + "bytes" + "errors" + "fmt" + + tmcrypto "github.com/tendermint/tendermint/proto/tendermint/crypto" +) + +//---------------------------------------- +// ProofOp gets converted to an instance of ProofOperator: + +// ProofOperator is a layer for calculating intermediate Merkle roots +// when a series of Merkle trees are chained together. +// Run() takes leaf values from a tree and returns the Merkle +// root for the corresponding tree. It takes and returns a list of bytes +// to allow multiple leaves to be part of a single proof, for instance in a range proof. +// ProofOp() encodes the ProofOperator in a generic way so it can later be +// decoded with OpDecoder. +type ProofOperator interface { + Run([][]byte) ([][]byte, error) + GetKey() []byte + ProofOp() tmcrypto.ProofOp +} + +//---------------------------------------- +// Operations on a list of ProofOperators + +// ProofOperators is a slice of ProofOperator(s). +// Each operator will be applied to the input value sequentially +// and the last Merkle root will be verified with already known data +type ProofOperators []ProofOperator + +func (poz ProofOperators) VerifyValue(root []byte, keypath string, value []byte) (err error) { + return poz.Verify(root, keypath, [][]byte{value}) +} + +func (poz ProofOperators) Verify(root []byte, keypath string, args [][]byte) (err error) { + keys, err := KeyPathToKeys(keypath) + if err != nil { + return + } + + for i, op := range poz { + key := op.GetKey() + if len(key) != 0 { + if len(keys) == 0 { + return fmt.Errorf("key path has insufficient # of parts: expected no more keys but got %+v", string(key)) + } + lastKey := keys[len(keys)-1] + if !bytes.Equal(lastKey, key) { + return fmt.Errorf("key mismatch on operation #%d: expected %+v but got %+v", i, string(lastKey), string(key)) + } + keys = keys[:len(keys)-1] + } + args, err = op.Run(args) + if err != nil { + return + } + } + if !bytes.Equal(root, args[0]) { + return fmt.Errorf("calculated root hash is invalid: expected %X but got %X", root, args[0]) + } + if len(keys) != 0 { + return errors.New("keypath not consumed all") + } + return nil +} + +//---------------------------------------- +// ProofRuntime - main entrypoint + +type OpDecoder func(tmcrypto.ProofOp) (ProofOperator, error) + +type ProofRuntime struct { + decoders map[string]OpDecoder +} + +func NewProofRuntime() *ProofRuntime { + return &ProofRuntime{ + decoders: make(map[string]OpDecoder), + } +} + +func (prt *ProofRuntime) RegisterOpDecoder(typ string, dec OpDecoder) { + _, ok := prt.decoders[typ] + if ok { + panic("already registered for type " + typ) + } + prt.decoders[typ] = dec +} + +func (prt *ProofRuntime) Decode(pop tmcrypto.ProofOp) (ProofOperator, error) { + decoder := prt.decoders[pop.Type] + if decoder == nil { + return nil, fmt.Errorf("unrecognized proof type %v", pop.Type) + } + return decoder(pop) +} + +func (prt *ProofRuntime) DecodeProof(proof *tmcrypto.ProofOps) (ProofOperators, error) { + poz := make(ProofOperators, 0, len(proof.Ops)) + for _, pop := range proof.Ops { + operator, err := prt.Decode(pop) + if err != nil { + return nil, fmt.Errorf("decoding a proof operator: %w", err) + } + poz = append(poz, operator) + } + return poz, nil +} + +func (prt *ProofRuntime) VerifyValue(proof *tmcrypto.ProofOps, root []byte, keypath string, value []byte) (err error) { + return prt.Verify(proof, root, keypath, [][]byte{value}) +} + +// TODO In the long run we'll need a method of classifcation of ops, +// whether existence or absence or perhaps a third? +func (prt *ProofRuntime) VerifyAbsence(proof *tmcrypto.ProofOps, root []byte, keypath string) (err error) { + return prt.Verify(proof, root, keypath, nil) +} + +func (prt *ProofRuntime) Verify(proof *tmcrypto.ProofOps, root []byte, keypath string, args [][]byte) (err error) { + poz, err := prt.DecodeProof(proof) + if err != nil { + return fmt.Errorf("decoding proof: %w", err) + } + return poz.Verify(root, keypath, args) +} + +// DefaultProofRuntime only knows about value proofs. +// To use e.g. IAVL proofs, register op-decoders as +// defined in the IAVL package. +func DefaultProofRuntime() (prt *ProofRuntime) { + prt = NewProofRuntime() + prt.RegisterOpDecoder(ProofOpValue, ValueOpDecoder) + return +} diff --git a/sei-tendermint/crypto/merkle/proof_test.go b/sei-tendermint/crypto/merkle/proof_test.go new file mode 100644 index 0000000000..05a5ca369a --- /dev/null +++ b/sei-tendermint/crypto/merkle/proof_test.go @@ -0,0 +1,200 @@ +package merkle + +import ( + "errors" + "fmt" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + tmcrypto "github.com/tendermint/tendermint/proto/tendermint/crypto" +) + +const ProofOpDomino = "test:domino" + +// Expects given input, produces given output. +// Like the game dominos. +type DominoOp struct { + key string // unexported, may be empty + Input string + Output string +} + +func NewDominoOp(key, input, output string) DominoOp { + return DominoOp{ + key: key, + Input: input, + Output: output, + } +} + +func (dop DominoOp) ProofOp() tmcrypto.ProofOp { + dopb := tmcrypto.DominoOp{ + Key: dop.key, + Input: dop.Input, + Output: dop.Output, + } + bz, err := dopb.Marshal() + if err != nil { + panic(err) + } + + return tmcrypto.ProofOp{ + Type: ProofOpDomino, + Key: []byte(dop.key), + Data: bz, + } +} + +func (dop DominoOp) Run(input [][]byte) (output [][]byte, err error) { + if len(input) != 1 { + return nil, errors.New("expected input of length 1") + } + if string(input[0]) != dop.Input { + return nil, fmt.Errorf("expected input %v, got %v", + dop.Input, string(input[0])) + } + return [][]byte{[]byte(dop.Output)}, nil +} + +func (dop DominoOp) GetKey() []byte { + return []byte(dop.key) +} + +//---------------------------------------- + +func TestProofOperators(t *testing.T) { + var err error + + // ProofRuntime setup + // TODO test this somehow. + + // ProofOperators setup + op1 := NewDominoOp("KEY1", "INPUT1", "INPUT2") + op2 := NewDominoOp("KEY2", "INPUT2", "INPUT3") + op3 := NewDominoOp("", "INPUT3", "INPUT4") + op4 := NewDominoOp("KEY4", "INPUT4", "OUTPUT4") + + // Good + popz := ProofOperators([]ProofOperator{op1, op2, op3, op4}) + err = popz.Verify(bz("OUTPUT4"), "/KEY4/KEY2/KEY1", [][]byte{bz("INPUT1")}) + assert.NoError(t, err) + err = popz.VerifyValue(bz("OUTPUT4"), "/KEY4/KEY2/KEY1", bz("INPUT1")) + assert.NoError(t, err) + + // BAD INPUT + err = popz.Verify(bz("OUTPUT4"), "/KEY4/KEY2/KEY1", [][]byte{bz("INPUT1_WRONG")}) + assert.Error(t, err) + err = popz.VerifyValue(bz("OUTPUT4"), "/KEY4/KEY2/KEY1", bz("INPUT1_WRONG")) + assert.Error(t, err) + + // BAD KEY 1 + err = popz.Verify(bz("OUTPUT4"), "/KEY3/KEY2/KEY1", [][]byte{bz("INPUT1")}) + assert.Error(t, err) + + // BAD KEY 2 + err = popz.Verify(bz("OUTPUT4"), "KEY4/KEY2/KEY1", [][]byte{bz("INPUT1")}) + assert.Error(t, err) + + // BAD KEY 3 + err = popz.Verify(bz("OUTPUT4"), "/KEY4/KEY2/KEY1/", [][]byte{bz("INPUT1")}) + assert.Error(t, err) + + // BAD KEY 4 + err = popz.Verify(bz("OUTPUT4"), "//KEY4/KEY2/KEY1", [][]byte{bz("INPUT1")}) + assert.Error(t, err) + + // BAD KEY 5 + err = popz.Verify(bz("OUTPUT4"), "/KEY2/KEY1", [][]byte{bz("INPUT1")}) + assert.Error(t, err) + + // BAD OUTPUT 1 + err = popz.Verify(bz("OUTPUT4_WRONG"), "/KEY4/KEY2/KEY1", [][]byte{bz("INPUT1")}) + assert.Error(t, err) + + // BAD OUTPUT 2 + err = popz.Verify(bz(""), "/KEY4/KEY2/KEY1", [][]byte{bz("INPUT1")}) + assert.Error(t, err) + + // BAD POPZ 1 + popz = []ProofOperator{op1, op2, op4} + err = popz.Verify(bz("OUTPUT4"), "/KEY4/KEY2/KEY1", [][]byte{bz("INPUT1")}) + assert.Error(t, err) + + // BAD POPZ 2 + popz = []ProofOperator{op4, op3, op2, op1} + err = popz.Verify(bz("OUTPUT4"), "/KEY4/KEY2/KEY1", [][]byte{bz("INPUT1")}) + assert.Error(t, err) + + // BAD POPZ 3 + popz = []ProofOperator{} + err = popz.Verify(bz("OUTPUT4"), "/KEY4/KEY2/KEY1", [][]byte{bz("INPUT1")}) + assert.Error(t, err) +} + +func bz(s string) []byte { + return []byte(s) +} + +func TestProofValidateBasic(t *testing.T) { + testCases := []struct { + testName string + malleateProof func(*Proof) + errStr string + }{ + {"Good", func(sp *Proof) {}, ""}, + {"Negative Total", func(sp *Proof) { sp.Total = -1 }, "negative Total"}, + {"Negative Index", func(sp *Proof) { sp.Index = -1 }, "negative Index"}, + {"Invalid LeafHash", func(sp *Proof) { sp.LeafHash = make([]byte, 10) }, + "expected LeafHash size to be 32, got 10"}, + {"Too many Aunts", func(sp *Proof) { sp.Aunts = make([][]byte, MaxAunts+1) }, + "expected no more than 100 aunts, got 101"}, + {"Invalid Aunt", func(sp *Proof) { sp.Aunts[0] = make([]byte, 10) }, + "expected Aunts#0 size to be 32, got 10"}, + } + + for _, tc := range testCases { + tc := tc + t.Run(tc.testName, func(t *testing.T) { + _, proofs := ProofsFromByteSlices([][]byte{ + []byte("apple"), + []byte("watermelon"), + []byte("kiwi"), + }) + tc.malleateProof(proofs[0]) + err := proofs[0].ValidateBasic() + if tc.errStr != "" { + assert.Contains(t, err.Error(), tc.errStr) + } + }) + } +} +func TestVoteProtobuf(t *testing.T) { + _, proofs := ProofsFromByteSlices([][]byte{ + []byte("apple"), + []byte("watermelon"), + []byte("kiwi"), + }) + + testCases := []struct { + testName string + v1 *Proof + expPass bool + }{ + {"empty proof", &Proof{}, false}, + {"failure nil", nil, false}, + {"success", proofs[0], true}, + } + for _, tc := range testCases { + pb := tc.v1.ToProto() + + v, err := ProofFromProto(pb) + if tc.expPass { + require.NoError(t, err) + require.Equal(t, tc.v1, v, tc.testName) + } else { + require.Error(t, err) + } + } +} diff --git a/sei-tendermint/crypto/merkle/proof_value.go b/sei-tendermint/crypto/merkle/proof_value.go new file mode 100644 index 0000000000..0f4f2eb3dd --- /dev/null +++ b/sei-tendermint/crypto/merkle/proof_value.go @@ -0,0 +1,102 @@ +package merkle + +import ( + "bytes" + "crypto/sha256" + "fmt" + + tmcrypto "github.com/tendermint/tendermint/proto/tendermint/crypto" +) + +const ProofOpValue = "simple:v" + +// ValueOp takes a key and a single value as argument and +// produces the root hash. The corresponding tree structure is +// the SimpleMap tree. SimpleMap takes a Hasher, and currently +// Tendermint uses tmhash. SimpleValueOp should support +// the hash function as used in tmhash. TODO support +// additional hash functions here as options/args to this +// operator. +// +// If the produced root hash matches the expected hash, the +// proof is good. +type ValueOp struct { + // Encoded in ProofOp.Key. + key []byte + + // To encode in ProofOp.Data + Proof *Proof `json:"proof"` +} + +var _ ProofOperator = ValueOp{} + +func NewValueOp(key []byte, proof *Proof) ValueOp { + return ValueOp{ + key: key, + Proof: proof, + } +} + +func ValueOpDecoder(pop tmcrypto.ProofOp) (ProofOperator, error) { + if pop.Type != ProofOpValue { + return nil, fmt.Errorf("unexpected ProofOp.Type; got %v, want %v", pop.Type, ProofOpValue) + } + var pbop tmcrypto.ValueOp // a bit strange as we'll discard this, but it works. + err := pbop.Unmarshal(pop.Data) + if err != nil { + return nil, fmt.Errorf("decoding ProofOp.Data into ValueOp: %w", err) + } + + sp, err := ProofFromProto(pbop.Proof) + if err != nil { + return nil, err + } + return NewValueOp(pop.Key, sp), nil +} + +func (op ValueOp) ProofOp() tmcrypto.ProofOp { + pbval := tmcrypto.ValueOp{ + Key: op.key, + Proof: op.Proof.ToProto(), + } + bz, err := pbval.Marshal() + if err != nil { + panic(err) + } + return tmcrypto.ProofOp{ + Type: ProofOpValue, + Key: op.key, + Data: bz, + } +} + +func (op ValueOp) String() string { + return fmt.Sprintf("ValueOp{%v}", op.GetKey()) +} + +func (op ValueOp) Run(args [][]byte) ([][]byte, error) { + if len(args) != 1 { + return nil, fmt.Errorf("expected 1 arg, got %v", len(args)) + } + value := args[0] + + vhash := sha256.Sum256(value) + + bz := new(bytes.Buffer) + // Wrap to hash the KVPair. + encodeByteSlice(bz, op.key) //nolint: errcheck // does not error + encodeByteSlice(bz, vhash[:]) //nolint: errcheck // does not error + kvhash := leafHash(bz.Bytes()) + + if !bytes.Equal(kvhash, op.Proof.LeafHash) { + return nil, fmt.Errorf("leaf hash mismatch: want %X got %X", op.Proof.LeafHash, kvhash) + } + + return [][]byte{ + op.Proof.ComputeRootHash(), + }, nil +} + +func (op ValueOp) GetKey() []byte { + return op.key +} diff --git a/sei-tendermint/crypto/merkle/rfc6962_test.go b/sei-tendermint/crypto/merkle/rfc6962_test.go new file mode 100644 index 0000000000..7a70dbb913 --- /dev/null +++ b/sei-tendermint/crypto/merkle/rfc6962_test.go @@ -0,0 +1,105 @@ +package merkle + +// Copyright 2016 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// These tests were taken from https://github.com/google/trillian/blob/master/merkle/rfc6962/rfc6962_test.go, +// and consequently fall under the above license. +import ( + "bytes" + "encoding/hex" + "testing" + + "github.com/tendermint/tendermint/crypto" +) + +func TestRFC6962Hasher(t *testing.T) { + _, leafHashTrail := trailsFromByteSlices([][]byte{[]byte("L123456")}) + leafHash := leafHashTrail.Hash + _, leafHashTrail = trailsFromByteSlices([][]byte{{}}) + emptyLeafHash := leafHashTrail.Hash + _, emptyHashTrail := trailsFromByteSlices([][]byte{}) + emptyTreeHash := emptyHashTrail.Hash + for _, tc := range []struct { + desc string + got []byte + want string + }{ + // Check that empty trees return the hash of an empty string. + // echo -n '' | sha256sum + { + desc: "RFC6962 Empty Tree", + want: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"[:crypto.HashSize*2], + got: emptyTreeHash, + }, + + // Check that the empty hash is not the same as the hash of an empty leaf. + // echo -n 00 | xxd -r -p | sha256sum + { + desc: "RFC6962 Empty Leaf", + want: "6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d"[:crypto.HashSize*2], + got: emptyLeafHash, + }, + // echo -n 004C313233343536 | xxd -r -p | sha256sum + { + desc: "RFC6962 Leaf", + want: "395aa064aa4c29f7010acfe3f25db9485bbd4b91897b6ad7ad547639252b4d56"[:crypto.HashSize*2], + got: leafHash, + }, + // echo -n 014E3132334E343536 | xxd -r -p | sha256sum + { + desc: "RFC6962 Node", + want: "aa217fe888e47007fa15edab33c2b492a722cb106c64667fc2b044444de66bbb"[:crypto.HashSize*2], + got: innerHash([]byte("N123"), []byte("N456")), + }, + } { + tc := tc + t.Run(tc.desc, func(t *testing.T) { + wantBytes, err := hex.DecodeString(tc.want) + if err != nil { + t.Fatalf("hex.DecodeString(%x): %v", tc.want, err) + } + if got, want := tc.got, wantBytes; !bytes.Equal(got, want) { + t.Errorf("got %x, want %x", got, want) + } + }) + } +} + +func TestRFC6962HasherCollisions(t *testing.T) { + // Check that different leaves have different hashes. + leaf1, leaf2 := []byte("Hello"), []byte("World") + _, leafHashTrail := trailsFromByteSlices([][]byte{leaf1}) + hash1 := leafHashTrail.Hash + _, leafHashTrail = trailsFromByteSlices([][]byte{leaf2}) + hash2 := leafHashTrail.Hash + if bytes.Equal(hash1, hash2) { + t.Errorf("leaf hashes should differ, but both are %x", hash1) + } + // Compute an intermediate subtree hash. + _, subHash1Trail := trailsFromByteSlices([][]byte{hash1, hash2}) + subHash1 := subHash1Trail.Hash + // Check that this is not the same as a leaf hash of their concatenation. + preimage := append(hash1, hash2...) + _, forgedHashTrail := trailsFromByteSlices([][]byte{preimage}) + forgedHash := forgedHashTrail.Hash + if bytes.Equal(subHash1, forgedHash) { + t.Errorf("hasher is not second-preimage resistant") + } + // Swap the order of nodes and check that the hash is different. + _, subHash2Trail := trailsFromByteSlices([][]byte{hash2, hash1}) + subHash2 := subHash2Trail.Hash + if bytes.Equal(subHash1, subHash2) { + t.Errorf("subtree hash does not depend on the order of leaves") + } +} diff --git a/sei-tendermint/crypto/merkle/tree.go b/sei-tendermint/crypto/merkle/tree.go new file mode 100644 index 0000000000..521192782b --- /dev/null +++ b/sei-tendermint/crypto/merkle/tree.go @@ -0,0 +1,112 @@ +package merkle + +import ( + "crypto/sha256" + "hash" + "math/bits" +) + +// HashFromByteSlices computes a Merkle tree where the leaves are the byte slice, +// in the provided order. It follows RFC-6962. +func HashFromByteSlices(items [][]byte) []byte { + return hashFromByteSlices(sha256.New(), items) +} + +func hashFromByteSlices(sha hash.Hash, items [][]byte) []byte { + switch len(items) { + case 0: + return emptyHash() + case 1: + return leafHashOpt(sha, items[0]) + default: + k := getSplitPoint(int64(len(items))) + left := hashFromByteSlices(sha, items[:k]) + right := hashFromByteSlices(sha, items[k:]) + return innerHashOpt(sha, left, right) + } +} + +// HashFromByteSliceIterative is an iterative alternative to +// HashFromByteSlice motivated by potential performance improvements. +// (#2611) had suggested that an iterative version of +// HashFromByteSlice would be faster, presumably because +// we can envision some overhead accumulating from stack +// frames and function calls. Additionally, a recursive algorithm risks +// hitting the stack limit and causing a stack overflow should the tree +// be too large. +// +// Provided here is an iterative alternative, a test to assert +// correctness and a benchmark. On the performance side, there appears to +// be no overall difference: +// +// BenchmarkHashAlternatives/recursive-4 20000 77677 ns/op +// BenchmarkHashAlternatives/iterative-4 20000 76802 ns/op +// +// On the surface it might seem that the additional overhead is due to +// the different allocation patterns of the implementations. The recursive +// version uses a single [][]byte slices which it then re-slices at each level of the tree. +// The iterative version reproduces [][]byte once within the function and +// then rewrites sub-slices of that array at each level of the tree. +// +// Experimenting by modifying the code to simply calculate the +// hash and not store the result show little to no difference in performance. +// +// These preliminary results suggest: +// +// 1. The performance of the HashFromByteSlice is pretty good +// 2. Go has low overhead for recursive functions +// 3. The performance of the HashFromByteSlice routine is dominated +// by the actual hashing of data +// +// Although this work is in no way exhaustive, point #3 suggests that +// optimization of this routine would need to take an alternative +// approach to make significant improvements on the current performance. +// +// Finally, considering that the recursive implementation is easier to +// read, it might not be worthwhile to switch to a less intuitive +// implementation for so little benefit. +func HashFromByteSlicesIterative(input [][]byte) []byte { + items := make([][]byte, len(input)) + sha := sha256.New() + for i, leaf := range input { + items[i] = leafHash(leaf) + } + + size := len(items) + for { + switch size { + case 0: + return emptyHash() + case 1: + return items[0] + default: + rp := 0 // read position + wp := 0 // write position + for rp < size { + if rp+1 < size { + items[wp] = innerHashOpt(sha, items[rp], items[rp+1]) + rp += 2 + } else { + items[wp] = items[rp] + rp++ + } + wp++ + } + size = wp + } + } +} + +// getSplitPoint returns the largest power of 2 less than length +func getSplitPoint(length int64) int64 { + if length < 1 { + panic("Trying to split a tree with size < 1") + } + uLength := uint(length) + bitlen := bits.Len(uLength) + k := int64(1 << uint(bitlen-1)) + if k == length { + k >>= 1 + } + return k +} diff --git a/sei-tendermint/crypto/merkle/tree_test.go b/sei-tendermint/crypto/merkle/tree_test.go new file mode 100644 index 0000000000..72b260178f --- /dev/null +++ b/sei-tendermint/crypto/merkle/tree_test.go @@ -0,0 +1,160 @@ +package merkle + +import ( + "encoding/hex" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/tendermint/tendermint/crypto" + ctest "github.com/tendermint/tendermint/internal/libs/test" + tmrand "github.com/tendermint/tendermint/libs/rand" +) + +type testItem []byte + +func (tI testItem) Hash() []byte { + return []byte(tI) +} + +func TestHashFromByteSlices(t *testing.T) { + testcases := map[string]struct { + slices [][]byte + expectHash string // in hex format + }{ + "nil": {nil, "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}, + "empty": {[][]byte{}, "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}, + "single": {[][]byte{{1, 2, 3}}, "054edec1d0211f624fed0cbca9d4f9400b0e491c43742af2c5b0abebf0c990d8"}, + "single blank": {[][]byte{{}}, "6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d"}, + "two": {[][]byte{{1, 2, 3}, {4, 5, 6}}, "82e6cfce00453804379b53962939eaa7906b39904be0813fcadd31b100773c4b"}, + "many": { + [][]byte{{1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}}, + "f326493eceab4f2d9ffbc78c59432a0a005d6ea98392045c74df5d14a113be18", + }, + } + for name, tc := range testcases { + tc := tc + t.Run(name, func(t *testing.T) { + hash := HashFromByteSlices(tc.slices) + assert.Equal(t, tc.expectHash, hex.EncodeToString(hash)) + }) + } +} + +func TestProof(t *testing.T) { + + // Try an empty proof first + rootHash, proofs := ProofsFromByteSlices([][]byte{}) + require.Equal(t, "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", hex.EncodeToString(rootHash)) + require.Empty(t, proofs) + + total := 100 + + items := make([][]byte, total) + for i := 0; i < total; i++ { + items[i] = testItem(tmrand.Bytes(crypto.HashSize)) + } + + rootHash = HashFromByteSlices(items) + + rootHash2, proofs := ProofsFromByteSlices(items) + + require.Equal(t, rootHash, rootHash2, "Unmatched root hashes: %X vs %X", rootHash, rootHash2) + + // For each item, check the trail. + for i, item := range items { + proof := proofs[i] + + // Check total/index + require.EqualValues(t, proof.Index, i, "Unmatched indicies: %d vs %d", proof.Index, i) + + require.EqualValues(t, proof.Total, total, "Unmatched totals: %d vs %d", proof.Total, total) + + // Verify success + err := proof.Verify(rootHash, item) + require.NoError(t, err, "Verification failed: %v.", err) + + // Trail too long should make it fail + origAunts := proof.Aunts + proof.Aunts = append(proof.Aunts, tmrand.Bytes(32)) + err = proof.Verify(rootHash, item) + require.Error(t, err, "Expected verification to fail for wrong trail length") + + proof.Aunts = origAunts + + // Trail too short should make it fail + proof.Aunts = proof.Aunts[0 : len(proof.Aunts)-1] + err = proof.Verify(rootHash, item) + require.Error(t, err, "Expected verification to fail for wrong trail length") + + proof.Aunts = origAunts + + // Mutating the itemHash should make it fail. + err = proof.Verify(rootHash, ctest.MutateByteSlice(item)) + require.Error(t, err, "Expected verification to fail for mutated leaf hash") + + // Mutating the rootHash should make it fail. + err = proof.Verify(ctest.MutateByteSlice(rootHash), item) + require.Error(t, err, "Expected verification to fail for mutated root hash") + } +} + +func TestHashAlternatives(t *testing.T) { + + total := 100 + + items := make([][]byte, total) + for i := 0; i < total; i++ { + items[i] = testItem(tmrand.Bytes(crypto.HashSize)) + } + + rootHash1 := HashFromByteSlicesIterative(items) + rootHash2 := HashFromByteSlices(items) + require.Equal(t, rootHash1, rootHash2, "Unmatched root hashes: %X vs %X", rootHash1, rootHash2) +} + +func BenchmarkHashAlternatives(b *testing.B) { + total := 100 + + items := make([][]byte, total) + for i := 0; i < total; i++ { + items[i] = testItem(tmrand.Bytes(crypto.HashSize)) + } + + b.ResetTimer() + b.Run("recursive", func(b *testing.B) { + for i := 0; i < b.N; i++ { + _ = HashFromByteSlices(items) + } + }) + + b.Run("iterative", func(b *testing.B) { + for i := 0; i < b.N; i++ { + _ = HashFromByteSlicesIterative(items) + } + }) +} + +func Test_getSplitPoint(t *testing.T) { + tests := []struct { + length int64 + want int64 + }{ + {1, 0}, + {2, 1}, + {3, 2}, + {4, 2}, + {5, 4}, + {10, 8}, + {20, 16}, + {100, 64}, + {255, 128}, + {256, 128}, + {257, 256}, + } + for _, tt := range tests { + got := getSplitPoint(tt.length) + require.EqualValues(t, tt.want, got, "getSplitPoint(%d) = %v, want %v", tt.length, got, tt.want) + } +} diff --git a/sei-tendermint/crypto/merkle/types.go b/sei-tendermint/crypto/merkle/types.go new file mode 100644 index 0000000000..6a5c7e6a36 --- /dev/null +++ b/sei-tendermint/crypto/merkle/types.go @@ -0,0 +1,39 @@ +package merkle + +import ( + "encoding/binary" + "io" +) + +// Tree is a Merkle tree interface. +type Tree interface { + Size() (size int) + Height() (height int8) + Has(key []byte) (has bool) + Proof(key []byte) (value []byte, proof []byte, exists bool) // TODO make it return an index + Get(key []byte) (index int, value []byte, exists bool) + GetByIndex(index int) (key []byte, value []byte) + Set(key []byte, value []byte) (updated bool) + Remove(key []byte) (value []byte, removed bool) + HashWithCount() (hash []byte, count int) + Hash() (hash []byte) + Save() (hash []byte) + Load(hash []byte) + Copy() Tree + Iterate(func(key []byte, value []byte) (stop bool)) (stopped bool) + IterateRange(start []byte, end []byte, ascending bool, fx func(key []byte, value []byte) (stop bool)) (stopped bool) +} + +//----------------------------------------------------------------------- + +// Uvarint length prefixed byteslice +func encodeByteSlice(w io.Writer, bz []byte) (err error) { + var buf [binary.MaxVarintLen64]byte + n := binary.PutUvarint(buf[:], uint64(len(bz))) + _, err = w.Write(buf[0:n]) + if err != nil { + return + } + _, err = w.Write(bz) + return +} diff --git a/sei-tendermint/crypto/random.go b/sei-tendermint/crypto/random.go new file mode 100644 index 0000000000..d3e66801ca --- /dev/null +++ b/sei-tendermint/crypto/random.go @@ -0,0 +1,15 @@ +package crypto + +import ( + "crypto/rand" +) + +// This only uses the OS's randomness +func CRandBytes(numBytes int) []byte { + b := make([]byte, numBytes) + _, err := rand.Read(b) + if err != nil { + panic(err) + } + return b +} diff --git a/sei-tendermint/crypto/random_test.go b/sei-tendermint/crypto/random_test.go new file mode 100644 index 0000000000..34f7372fe2 --- /dev/null +++ b/sei-tendermint/crypto/random_test.go @@ -0,0 +1,23 @@ +package crypto_test + +import ( + "testing" + + "github.com/stretchr/testify/require" + + "github.com/tendermint/tendermint/crypto" +) + +// the purpose of this test is primarily to ensure that the randomness +// generation won't error. +func TestRandomConsistency(t *testing.T) { + x1 := crypto.CRandBytes(256) + x2 := crypto.CRandBytes(256) + x3 := crypto.CRandBytes(256) + x4 := crypto.CRandBytes(256) + x5 := crypto.CRandBytes(256) + require.NotEqual(t, x1, x2) + require.NotEqual(t, x3, x4) + require.NotEqual(t, x4, x5) + require.NotEqual(t, x1, x5) +} diff --git a/sei-tendermint/crypto/secp256k1/secp256k1.go b/sei-tendermint/crypto/secp256k1/secp256k1.go new file mode 100644 index 0000000000..d0626456c7 --- /dev/null +++ b/sei-tendermint/crypto/secp256k1/secp256k1.go @@ -0,0 +1,247 @@ +package secp256k1 + +import ( + "bytes" + "crypto/rand" + "crypto/sha256" + "crypto/subtle" + "fmt" + "io" + "math/big" + + secp256k1 "github.com/btcsuite/btcd/btcec" + + "github.com/tendermint/tendermint/crypto" + "github.com/tendermint/tendermint/internal/jsontypes" + + // necessary for Bitcoin address format + "golang.org/x/crypto/ripemd160" //nolint:staticcheck +) + +//------------------------------------- +const ( + PrivKeyName = "tendermint/PrivKeySecp256k1" + PubKeyName = "tendermint/PubKeySecp256k1" + + KeyType = "secp256k1" + PrivKeySize = 32 +) + +func init() { + jsontypes.MustRegister(PubKey{}) + jsontypes.MustRegister(PrivKey{}) +} + +var _ crypto.PrivKey = PrivKey{} + +// PrivKey implements PrivKey. +type PrivKey []byte + +// TypeTag satisfies the jsontypes.Tagged interface. +func (PrivKey) TypeTag() string { return PrivKeyName } + +// Bytes marshalls the private key using amino encoding. +func (privKey PrivKey) Bytes() []byte { + return []byte(privKey) +} + +// PubKey performs the point-scalar multiplication from the privKey on the +// generator point to get the pubkey. +func (privKey PrivKey) PubKey() crypto.PubKey { + _, pubkeyObject := secp256k1.PrivKeyFromBytes(secp256k1.S256(), privKey) + + pk := pubkeyObject.SerializeCompressed() + + return PubKey(pk) +} + +// Equals - you probably don't need to use this. +// Runs in constant time based on length of the keys. +func (privKey PrivKey) Equals(other crypto.PrivKey) bool { + if otherSecp, ok := other.(PrivKey); ok { + return subtle.ConstantTimeCompare(privKey[:], otherSecp[:]) == 1 + } + return false +} + +func (privKey PrivKey) Type() string { + return KeyType +} + +// GenPrivKey generates a new ECDSA private key on curve secp256k1 private key. +// It uses OS randomness to generate the private key. +func GenPrivKey() PrivKey { + return genPrivKey(rand.Reader) +} + +// genPrivKey generates a new secp256k1 private key using the provided reader. +func genPrivKey(rand io.Reader) PrivKey { + var privKeyBytes [PrivKeySize]byte + d := new(big.Int) + + for { + privKeyBytes = [PrivKeySize]byte{} + _, err := io.ReadFull(rand, privKeyBytes[:]) + if err != nil { + panic(err) + } + + d.SetBytes(privKeyBytes[:]) + // break if we found a valid point (i.e. > 0 and < N == curverOrder) + isValidFieldElement := 0 < d.Sign() && d.Cmp(secp256k1.S256().N) < 0 + if isValidFieldElement { + break + } + } + + return PrivKey(privKeyBytes[:]) +} + +var one = new(big.Int).SetInt64(1) + +// GenPrivKeySecp256k1 hashes the secret with SHA2, and uses +// that 32 byte output to create the private key. +// +// It makes sure the private key is a valid field element by setting: +// +// c = sha256(secret) +// k = (c mod (n − 1)) + 1, where n = curve order. +// +// NOTE: secret should be the output of a KDF like bcrypt, +// if it's derived from user input. +func GenPrivKeySecp256k1(secret []byte) PrivKey { + secHash := sha256.Sum256(secret) + // to guarantee that we have a valid field element, we use the approach of: + // "Suite B Implementer’s Guide to FIPS 186-3", A.2.1 + // https://apps.nsa.gov/iaarchive/library/ia-guidance/ia-solutions-for-classified/algorithm-guidance/suite-b-implementers-guide-to-fips-186-3-ecdsa.cfm + // see also https://github.com/golang/go/blob/0380c9ad38843d523d9c9804fe300cb7edd7cd3c/src/crypto/ecdsa/ecdsa.go#L89-L101 + fe := new(big.Int).SetBytes(secHash[:]) + n := new(big.Int).Sub(secp256k1.S256().N, one) + fe.Mod(fe, n) + fe.Add(fe, one) + + feB := fe.Bytes() + privKey32 := make([]byte, PrivKeySize) + // copy feB over to fixed 32 byte privKey32 and pad (if necessary) + copy(privKey32[32-len(feB):32], feB) + + return PrivKey(privKey32) +} + +//------------------------------------- + +var _ crypto.PubKey = PubKey{} + +// PubKeySize is comprised of 32 bytes for one field element +// (the x-coordinate), plus one byte for the parity of the y-coordinate. +const PubKeySize = 33 + +// PubKey implements crypto.PubKey. +// It is the compressed form of the pubkey. The first byte depends is a 0x02 byte +// if the y-coordinate is the lexicographically largest of the two associated with +// the x-coordinate. Otherwise the first byte is a 0x03. +// This prefix is followed with the x-coordinate. +type PubKey []byte + +// TypeTag satisfies the jsontypes.Tagged interface. +func (PubKey) TypeTag() string { return PubKeyName } + +// Address returns a Bitcoin style addresses: RIPEMD160(SHA256(pubkey)) +func (pubKey PubKey) Address() crypto.Address { + if len(pubKey) != PubKeySize { + panic("length of pubkey is incorrect") + } + hasherSHA256 := sha256.New() + _, _ = hasherSHA256.Write(pubKey) // does not error + sha := hasherSHA256.Sum(nil) + + hasherRIPEMD160 := ripemd160.New() + _, _ = hasherRIPEMD160.Write(sha) // does not error + + return crypto.Address(hasherRIPEMD160.Sum(nil)) +} + +// Bytes returns the pubkey marshaled with amino encoding. +func (pubKey PubKey) Bytes() []byte { + return []byte(pubKey) +} + +func (pubKey PubKey) String() string { + return fmt.Sprintf("PubKeySecp256k1{%X}", []byte(pubKey)) +} + +func (pubKey PubKey) Equals(other crypto.PubKey) bool { + if otherSecp, ok := other.(PubKey); ok { + return bytes.Equal(pubKey[:], otherSecp[:]) + } + return false +} + +func (pubKey PubKey) Type() string { + return KeyType +} + +// used to reject malleable signatures +// see: +// - https://github.com/ethereum/go-ethereum/blob/f9401ae011ddf7f8d2d95020b7446c17f8d98dc1/crypto/signature_nocgo.go#L90-L93 +// - https://github.com/ethereum/go-ethereum/blob/f9401ae011ddf7f8d2d95020b7446c17f8d98dc1/crypto/crypto.go#L39 +var secp256k1halfN = new(big.Int).Rsh(secp256k1.S256().N, 1) + +// Sign creates an ECDSA signature on curve Secp256k1, using SHA256 on the msg. +// The returned signature will be of the form R || S (in lower-S form). +func (privKey PrivKey) Sign(msg []byte) ([]byte, error) { + priv, _ := secp256k1.PrivKeyFromBytes(secp256k1.S256(), privKey) + seed := sha256.Sum256(msg) + sig, err := priv.Sign(seed[:]) + if err != nil { + return nil, err + } + + sigBytes := serializeSig(sig) + return sigBytes, nil +} + +// VerifySignature verifies a signature of the form R || S. +// It rejects signatures which are not in lower-S form. +func (pubKey PubKey) VerifySignature(msg []byte, sigStr []byte) bool { + if len(sigStr) != 64 { + return false + } + + pub, err := secp256k1.ParsePubKey(pubKey, secp256k1.S256()) + if err != nil { + return false + } + + // parse the signature: + signature := signatureFromBytes(sigStr) + // Reject malleable signatures. libsecp256k1 does this check but btcec doesn't. + // see: https://github.com/ethereum/go-ethereum/blob/f9401ae011ddf7f8d2d95020b7446c17f8d98dc1/crypto/signature_nocgo.go#L90-L93 + if signature.S.Cmp(secp256k1halfN) > 0 { + return false + } + + seed := sha256.Sum256(msg) + return signature.Verify(seed[:], pub) +} + +// Read Signature struct from R || S. Caller needs to ensure +// that len(sigStr) == 64. +func signatureFromBytes(sigStr []byte) *secp256k1.Signature { + return &secp256k1.Signature{ + R: new(big.Int).SetBytes(sigStr[:32]), + S: new(big.Int).SetBytes(sigStr[32:64]), + } +} + +// Serialize signature to R || S. +// R, S are padded to 32 bytes respectively. +func serializeSig(sig *secp256k1.Signature) []byte { + rBytes := sig.R.Bytes() + sBytes := sig.S.Bytes() + sigBytes := make([]byte, 64) + // 0 pad the byte arrays from the left if they aren't big enough. + copy(sigBytes[32-len(rBytes):32], rBytes) + copy(sigBytes[64-len(sBytes):64], sBytes) + return sigBytes +} diff --git a/sei-tendermint/crypto/secp256k1/secp256k1_internal_test.go b/sei-tendermint/crypto/secp256k1/secp256k1_internal_test.go new file mode 100644 index 0000000000..bceddc24ff --- /dev/null +++ b/sei-tendermint/crypto/secp256k1/secp256k1_internal_test.go @@ -0,0 +1,74 @@ +package secp256k1 + +import ( + "bytes" + "math/big" + "testing" + + "github.com/stretchr/testify/require" + + secp256k1 "github.com/btcsuite/btcd/btcec" +) + +func Test_genPrivKey(t *testing.T) { + + empty := make([]byte, 32) + oneB := big.NewInt(1).Bytes() + onePadded := make([]byte, 32) + copy(onePadded[32-len(oneB):32], oneB) + t.Logf("one padded: %v, len=%v", onePadded, len(onePadded)) + + validOne := append(empty, onePadded...) + tests := []struct { + name string + notSoRand []byte + shouldPanic bool + }{ + {"empty bytes (panics because 1st 32 bytes are zero and 0 is not a valid field element)", empty, true}, + {"curve order: N", secp256k1.S256().N.Bytes(), true}, + {"valid because 0 < 1 < N", validOne, false}, + } + for _, tt := range tests { + tt := tt + t.Run(tt.name, func(t *testing.T) { + if tt.shouldPanic { + require.Panics(t, func() { + genPrivKey(bytes.NewReader(tt.notSoRand)) + }) + return + } + got := genPrivKey(bytes.NewReader(tt.notSoRand)) + fe := new(big.Int).SetBytes(got[:]) + require.True(t, fe.Cmp(secp256k1.S256().N) < 0) + require.True(t, fe.Sign() > 0) + }) + } +} + +// Ensure that signature verification works, and that +// non-canonical signatures fail. +// Note: run with CGO_ENABLED=0 or go test -tags !cgo. +func TestSignatureVerificationAndRejectUpperS(t *testing.T) { + msg := []byte("We have lingered long enough on the shores of the cosmic ocean.") + for i := 0; i < 500; i++ { + priv := GenPrivKey() + sigStr, err := priv.Sign(msg) + require.NoError(t, err) + sig := signatureFromBytes(sigStr) + require.False(t, sig.S.Cmp(secp256k1halfN) > 0) + + pub := priv.PubKey() + require.True(t, pub.VerifySignature(msg, sigStr)) + + // malleate: + sig.S.Sub(secp256k1.S256().CurveParams.N, sig.S) + require.True(t, sig.S.Cmp(secp256k1halfN) > 0) + malSigStr := serializeSig(sig) + + require.False(t, pub.VerifySignature(msg, malSigStr), + "VerifyBytes incorrect with malleated & invalid S. sig=%v, key=%v", + sig, + priv, + ) + } +} diff --git a/sei-tendermint/crypto/secp256k1/secp256k1_test.go b/sei-tendermint/crypto/secp256k1/secp256k1_test.go new file mode 100644 index 0000000000..6cd53704c5 --- /dev/null +++ b/sei-tendermint/crypto/secp256k1/secp256k1_test.go @@ -0,0 +1,114 @@ +package secp256k1_test + +import ( + "encoding/hex" + "math/big" + "testing" + + underlyingSecp256k1 "github.com/btcsuite/btcd/btcec" + "github.com/btcsuite/btcutil/base58" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/tendermint/tendermint/crypto" + "github.com/tendermint/tendermint/crypto/secp256k1" +) + +type keyData struct { + priv string + pub string + addr string +} + +var secpDataTable = []keyData{ + { + priv: "a96e62ed3955e65be32703f12d87b6b5cf26039ecfa948dc5107a495418e5330", + pub: "02950e1cdfcb133d6024109fd489f734eeb4502418e538c28481f22bce276f248c", + addr: "1CKZ9Nx4zgds8tU7nJHotKSDr4a9bYJCa3", + }, +} + +func TestPubKeySecp256k1Address(t *testing.T) { + for _, d := range secpDataTable { + privB, _ := hex.DecodeString(d.priv) + pubB, _ := hex.DecodeString(d.pub) + addrBbz, _, _ := base58.CheckDecode(d.addr) + addrB := crypto.Address(addrBbz) + + priv := secp256k1.PrivKey(privB) + pubKey := priv.PubKey() + pubT, _ := pubKey.(secp256k1.PubKey) + pub := pubT + addr := pubKey.Address() + + assert.Equal(t, pub, secp256k1.PubKey(pubB), "Expected pub keys to match") + assert.Equal(t, addr, addrB, "Expected addresses to match") + } +} + +func TestSignAndValidateSecp256k1(t *testing.T) { + privKey := secp256k1.GenPrivKey() + pubKey := privKey.PubKey() + + msg := crypto.CRandBytes(128) + sig, err := privKey.Sign(msg) + require.NoError(t, err) + + assert.True(t, pubKey.VerifySignature(msg, sig)) + + // Mutate the signature, just one bit. + sig[3] ^= byte(0x01) + + assert.False(t, pubKey.VerifySignature(msg, sig)) +} + +// This test is intended to justify the removal of calls to the underlying library +// in creating the privkey. +func TestSecp256k1LoadPrivkeyAndSerializeIsIdentity(t *testing.T) { + numberOfTests := 256 + for i := 0; i < numberOfTests; i++ { + // Seed the test case with some random bytes + privKeyBytes := [32]byte{} + copy(privKeyBytes[:], crypto.CRandBytes(32)) + + // This function creates a private and public key in the underlying libraries format. + // The private key is basically calling new(big.Int).SetBytes(pk), which removes leading zero bytes + priv, _ := underlyingSecp256k1.PrivKeyFromBytes(underlyingSecp256k1.S256(), privKeyBytes[:]) + // this takes the bytes returned by `(big int).Bytes()`, and if the length is less than 32 bytes, + // pads the bytes from the left with zero bytes. Therefore these two functions composed + // result in the identity function on privKeyBytes, hence the following equality check + // always returning true. + serializedBytes := priv.Serialize() + require.Equal(t, privKeyBytes[:], serializedBytes) + } +} + +func TestGenPrivKeySecp256k1(t *testing.T) { + // curve oder N + N := underlyingSecp256k1.S256().N + tests := []struct { + name string + secret []byte + }{ + {"empty secret", []byte{}}, + { + "some long secret", + []byte("We live in a society exquisitely dependent on science and technology, " + + "in which hardly anyone knows anything about science and technology."), + }, + {"another seed used in cosmos tests #1", []byte{0}}, + {"another seed used in cosmos tests #2", []byte("mySecret")}, + {"another seed used in cosmos tests #3", []byte("")}, + } + for _, tt := range tests { + tt := tt + t.Run(tt.name, func(t *testing.T) { + gotPrivKey := secp256k1.GenPrivKeySecp256k1(tt.secret) + require.NotNil(t, gotPrivKey) + // interpret as a big.Int and make sure it is a valid field element: + fe := new(big.Int).SetBytes(gotPrivKey[:]) + require.True(t, fe.Cmp(N) < 0) + require.True(t, fe.Sign() > 0) + }) + } +} diff --git a/sei-tendermint/crypto/sr25519/batch.go b/sei-tendermint/crypto/sr25519/batch.go new file mode 100644 index 0000000000..3e959fbbfb --- /dev/null +++ b/sei-tendermint/crypto/sr25519/batch.go @@ -0,0 +1,47 @@ +package sr25519 + +import ( + "crypto/rand" + "fmt" + + "github.com/oasisprotocol/curve25519-voi/primitives/sr25519" + + "github.com/tendermint/tendermint/crypto" +) + +var _ crypto.BatchVerifier = &BatchVerifier{} + +// BatchVerifier implements batch verification for sr25519. +type BatchVerifier struct { + *sr25519.BatchVerifier +} + +func NewBatchVerifier() crypto.BatchVerifier { + return &BatchVerifier{sr25519.NewBatchVerifier()} +} + +func (b *BatchVerifier) Add(key crypto.PubKey, msg, signature []byte) error { + pk, ok := key.(PubKey) + if !ok { + return fmt.Errorf("sr25519: pubkey is not sr25519") + } + + var srpk sr25519.PublicKey + if err := srpk.UnmarshalBinary(pk); err != nil { + return fmt.Errorf("sr25519: invalid public key: %w", err) + } + + var sig sr25519.Signature + if err := sig.UnmarshalBinary(signature); err != nil { + return fmt.Errorf("sr25519: unable to decode signature: %w", err) + } + + st := signingCtx.NewTranscriptBytes(msg) + b.BatchVerifier.Add(&srpk, st, &sig) + + return nil +} + +func (b *BatchVerifier) Verify() (bool, []bool) { + return b.BatchVerifier.Verify(rand.Reader) +} diff --git a/sei-tendermint/crypto/sr25519/bench_test.go b/sei-tendermint/crypto/sr25519/bench_test.go new file mode 100644 index 0000000000..086a899c0b --- /dev/null +++ b/sei-tendermint/crypto/sr25519/bench_test.go @@ -0,0 +1,68 @@ +package sr25519 + +import ( + "fmt" + "io" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/tendermint/tendermint/crypto" + "github.com/tendermint/tendermint/crypto/internal/benchmarking" +) + +func BenchmarkKeyGeneration(b *testing.B) { + benchmarkKeygenWrapper := func(reader io.Reader) crypto.PrivKey { + return genPrivKey(reader) + } + benchmarking.BenchmarkKeyGeneration(b, benchmarkKeygenWrapper) +} + +func BenchmarkSigning(b *testing.B) { + priv := GenPrivKey() + benchmarking.BenchmarkSigning(b, priv) +} + +func BenchmarkVerification(b *testing.B) { + priv := GenPrivKey() + benchmarking.BenchmarkVerification(b, priv) +} + +func BenchmarkVerifyBatch(b *testing.B) { + msg := []byte("BatchVerifyTest") + + for _, sigsCount := range []int{1, 8, 64, 1024} { + sigsCount := sigsCount + b.Run(fmt.Sprintf("sig-count-%d", sigsCount), func(b *testing.B) { + // Pre-generate all of the keys, and signatures, but do not + // benchmark key-generation and signing. + pubs := make([]crypto.PubKey, 0, sigsCount) + sigs := make([][]byte, 0, sigsCount) + for i := 0; i < sigsCount; i++ { + priv := GenPrivKey() + sig, _ := priv.Sign(msg) + pubs = append(pubs, priv.PubKey().(PubKey)) + sigs = append(sigs, sig) + } + b.ResetTimer() + + b.ReportAllocs() + // NOTE: dividing by n so that metrics are per-signature + for i := 0; i < b.N/sigsCount; i++ { + // The benchmark could just benchmark the Verify() + // routine, but there is non-trivial overhead associated + // with BatchVerifier.Add(), which should be included + // in the benchmark. + v := NewBatchVerifier() + for i := 0; i < sigsCount; i++ { + err := v.Add(pubs[i], msg, sigs[i]) + require.NoError(b, err) + } + + if ok, _ := v.Verify(); !ok { + b.Fatal("signature set failed batch verification") + } + } + }) + } +} diff --git a/sei-tendermint/crypto/sr25519/encoding.go b/sei-tendermint/crypto/sr25519/encoding.go new file mode 100644 index 0000000000..7ff110821a --- /dev/null +++ b/sei-tendermint/crypto/sr25519/encoding.go @@ -0,0 +1,15 @@ +package sr25519 + +import ( + "github.com/tendermint/tendermint/internal/jsontypes" +) + +const ( + PrivKeyName = "tendermint/PrivKeySr25519" + PubKeyName = "tendermint/PubKeySr25519" +) + +func init() { + jsontypes.MustRegister(PubKey{}) + jsontypes.MustRegister(PrivKey{}) +} diff --git a/sei-tendermint/crypto/sr25519/privkey.go b/sei-tendermint/crypto/sr25519/privkey.go new file mode 100644 index 0000000000..c8da94d5d0 --- /dev/null +++ b/sei-tendermint/crypto/sr25519/privkey.go @@ -0,0 +1,169 @@ +package sr25519 + +import ( + "crypto/rand" + "crypto/sha256" + "encoding/json" + "fmt" + "io" + + "github.com/oasisprotocol/curve25519-voi/primitives/sr25519" + + "github.com/tendermint/tendermint/crypto" +) + +var ( + _ crypto.PrivKey = PrivKey{} + + signingCtx = sr25519.NewSigningContext([]byte{}) +) + +const ( + // PrivKeySize is the size of a sr25519 signature in bytes. + PrivKeySize = sr25519.MiniSecretKeySize + + KeyType = "sr25519" +) + +// PrivKey implements crypto.PrivKey. +type PrivKey struct { + msk sr25519.MiniSecretKey + kp *sr25519.KeyPair +} + +// TypeTag satisfies the jsontypes.Tagged interface. +func (PrivKey) TypeTag() string { return PrivKeyName } + +// Bytes returns the byte-encoded PrivKey. +func (privKey PrivKey) Bytes() []byte { + if privKey.kp == nil { + return nil + } + return privKey.msk[:] +} + +// Sign produces a signature on the provided message. +func (privKey PrivKey) Sign(msg []byte) ([]byte, error) { + if privKey.kp == nil { + return nil, fmt.Errorf("sr25519: uninitialized private key") + } + + st := signingCtx.NewTranscriptBytes(msg) + + sig, err := privKey.kp.Sign(rand.Reader, st) + if err != nil { + return nil, fmt.Errorf("sr25519: failed to sign message: %w", err) + } + + sigBytes, err := sig.MarshalBinary() + if err != nil { + return nil, fmt.Errorf("sr25519: failed to serialize signature: %w", err) + } + + return sigBytes, nil +} + +// PubKey gets the corresponding public key from the private key. +// +// Panics if the private key is not initialized. +func (privKey PrivKey) PubKey() crypto.PubKey { + if privKey.kp == nil { + panic("sr25519: uninitialized private key") + } + + b, err := privKey.kp.PublicKey().MarshalBinary() + if err != nil { + panic("sr25519: failed to serialize public key: " + err.Error()) + } + + return PubKey(b) +} + +// Equals - you probably don't need to use this. +// Runs in constant time based on length of the keys. +func (privKey PrivKey) Equals(other crypto.PrivKey) bool { + if otherSr, ok := other.(PrivKey); ok { + return privKey.msk.Equal(&otherSr.msk) + } + return false +} + +func (privKey PrivKey) Type() string { + return KeyType +} + +func (privKey PrivKey) MarshalJSON() ([]byte, error) { + var b []byte + + // Handle uninitialized private keys gracefully. + if privKey.kp != nil { + b = privKey.Bytes() + } + + return json.Marshal(b) +} + +func (privKey *PrivKey) UnmarshalJSON(data []byte) error { + for i := range privKey.msk { + privKey.msk[i] = 0 + } + privKey.kp = nil + + var b []byte + if err := json.Unmarshal(data, &b); err != nil { + return fmt.Errorf("sr25519: failed to deserialize JSON: %w", err) + } + if len(b) == 0 { + return nil + } + + msk, err := sr25519.NewMiniSecretKeyFromBytes(b) + if err != nil { + return err + } + + sk := msk.ExpandEd25519() + + privKey.msk = *msk + privKey.kp = sk.KeyPair() + + return nil +} + +// GenPrivKey generates a new sr25519 private key. +// It uses OS randomness in conjunction with the current global random seed +// in tendermint/libs/common to generate the private key. +func GenPrivKey() PrivKey { + return genPrivKey(rand.Reader) +} + +func genPrivKey(rng io.Reader) PrivKey { + msk, err := sr25519.GenerateMiniSecretKey(rng) + if err != nil { + panic("sr25519: failed to generate MiniSecretKey: " + err.Error()) + } + + sk := msk.ExpandEd25519() + + return PrivKey{ + msk: *msk, + kp: sk.KeyPair(), + } +} + +// GenPrivKeyFromSecret hashes the secret with SHA2, and uses +// that 32 byte output to create the private key. +// NOTE: secret should be the output of a KDF like bcrypt, +// if it's derived from user input. +func GenPrivKeyFromSecret(secret []byte) PrivKey { + seed := sha256.Sum256(secret) + var privKey PrivKey + if err := privKey.msk.UnmarshalBinary(seed[:]); err != nil { + panic("sr25519: failed to deserialize MiniSecretKey: " + err.Error()) + } + + sk := privKey.msk.ExpandEd25519() + privKey.kp = sk.KeyPair() + + return privKey +} diff --git a/sei-tendermint/crypto/sr25519/pubkey.go b/sei-tendermint/crypto/sr25519/pubkey.go new file mode 100644 index 0000000000..a2c6bb9202 --- /dev/null +++ b/sei-tendermint/crypto/sr25519/pubkey.go @@ -0,0 +1,70 @@ +package sr25519 + +import ( + "bytes" + "fmt" + + "github.com/oasisprotocol/curve25519-voi/primitives/sr25519" + + "github.com/tendermint/tendermint/crypto" +) + +var _ crypto.PubKey = PubKey{} + +const ( + // PubKeySize is the size of a sr25519 public key in bytes. + PubKeySize = sr25519.PublicKeySize + + // SignatureSize is the size of a sr25519 signature in bytes. + SignatureSize = sr25519.SignatureSize +) + +// PubKey implements crypto.PubKey. +type PubKey []byte + +// TypeTag satisfies the jsontypes.Tagged interface. +func (PubKey) TypeTag() string { return PubKeyName } + +// Address is the SHA256-20 of the raw pubkey bytes. +func (pubKey PubKey) Address() crypto.Address { + if len(pubKey) != PubKeySize { + panic("pubkey is incorrect size") + } + return crypto.AddressHash(pubKey) +} + +// Bytes returns the PubKey byte format. +func (pubKey PubKey) Bytes() []byte { + return []byte(pubKey) +} + +func (pubKey PubKey) Equals(other crypto.PubKey) bool { + if otherSr, ok := other.(PubKey); ok { + return bytes.Equal(pubKey[:], otherSr[:]) + } + + return false +} + +func (pubKey PubKey) VerifySignature(msg []byte, sigBytes []byte) bool { + var srpk sr25519.PublicKey + if err := srpk.UnmarshalBinary(pubKey); err != nil { + return false + } + + var sig sr25519.Signature + if err := sig.UnmarshalBinary(sigBytes); err != nil { + return false + } + + st := signingCtx.NewTranscriptBytes(msg) + return srpk.Verify(st, &sig) +} + +func (pubKey PubKey) Type() string { + return KeyType +} + +func (pubKey PubKey) String() string { + return fmt.Sprintf("PubKeySr25519{%X}", []byte(pubKey)) +} diff --git a/sei-tendermint/crypto/sr25519/sr25519_test.go b/sei-tendermint/crypto/sr25519/sr25519_test.go new file mode 100644 index 0000000000..84283eacaa --- /dev/null +++ b/sei-tendermint/crypto/sr25519/sr25519_test.go @@ -0,0 +1,98 @@ +package sr25519_test + +import ( + "encoding/base64" + "encoding/json" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/tendermint/tendermint/crypto" + "github.com/tendermint/tendermint/crypto/sr25519" +) + +func TestSignAndValidateSr25519(t *testing.T) { + privKey := sr25519.GenPrivKey() + pubKey := privKey.PubKey() + + msg := crypto.CRandBytes(128) + sig, err := privKey.Sign(msg) + require.NoError(t, err) + + // Test the signature + assert.True(t, pubKey.VerifySignature(msg, sig)) + assert.True(t, pubKey.VerifySignature(msg, sig)) + + // Mutate the signature, just one bit. + // TODO: Replace this with a much better fuzzer, tendermint/ed25519/issues/10 + sig[7] ^= byte(0x01) + + assert.False(t, pubKey.VerifySignature(msg, sig)) +} + +func TestBatchSafe(t *testing.T) { + v := sr25519.NewBatchVerifier() + vFail := sr25519.NewBatchVerifier() + for i := 0; i <= 38; i++ { + priv := sr25519.GenPrivKey() + pub := priv.PubKey() + + var msg []byte + if i%2 == 0 { + msg = []byte("easter") + } else { + msg = []byte("egg") + } + + sig, err := priv.Sign(msg) + require.NoError(t, err) + + err = v.Add(pub, msg, sig) + require.NoError(t, err) + + switch i % 2 { + case 0: + err = vFail.Add(pub, msg, sig) + case 1: + msg[2] ^= byte(0x01) + err = vFail.Add(pub, msg, sig) + } + require.NoError(t, err) + } + + ok, valid := v.Verify() + require.True(t, ok, "failed batch verification") + for i, ok := range valid { + require.Truef(t, ok, "sig[%d] should be marked valid", i) + } + + ok, valid = vFail.Verify() + require.False(t, ok, "succeeded batch verification (invalid batch)") + for i, ok := range valid { + expected := (i % 2) == 0 + require.Equalf(t, expected, ok, "sig[%d] should be %v", i, expected) + } +} + +func TestJSON(t *testing.T) { + privKey := sr25519.GenPrivKey() + + t.Run("PrivKey", func(t *testing.T) { + b, err := json.Marshal(privKey) + require.NoError(t, err) + + // b should be the base64 encoded MiniSecretKey, enclosed by doublequotes. + b64 := base64.StdEncoding.EncodeToString(privKey.Bytes()) + b64 = "\"" + b64 + "\"" + require.Equal(t, []byte(b64), b) + + var privKey2 sr25519.PrivKey + err = json.Unmarshal(b, &privKey2) + require.NoError(t, err) + require.Len(t, privKey2.Bytes(), sr25519.PrivKeySize) + require.EqualValues(t, privKey.Bytes(), privKey2.Bytes()) + }) + + // PubKeys are just []byte, so there is no special handling. +} diff --git a/sei-tendermint/docker-compose.yml b/sei-tendermint/docker-compose.yml new file mode 100644 index 0000000000..157b7c381a --- /dev/null +++ b/sei-tendermint/docker-compose.yml @@ -0,0 +1,69 @@ +version: '3' + +services: + node0: + container_name: node0 + image: "tendermint/localnode" + ports: + - "26656-26657:26656-26657" + - "6060:6060" + - "27000:26660" + environment: + - ID=0 + - LOG=${LOG:-tendermint.log} + volumes: + - ./build:/tendermint:Z + networks: + localnet: + ipv4_address: 192.167.10.2 + + node1: + container_name: node1 + image: "tendermint/localnode" + ports: + - "26659-26660:26656-26657" + environment: + - ID=1 + - LOG=${LOG:-tendermint.log} + volumes: + - ./build:/tendermint:Z + networks: + localnet: + ipv4_address: 192.167.10.3 + + node2: + container_name: node2 + image: "tendermint/localnode" + environment: + - ID=2 + - LOG=${LOG:-tendermint.log} + ports: + - "26661-26662:26656-26657" + volumes: + - ./build:/tendermint:Z + networks: + localnet: + ipv4_address: 192.167.10.4 + + node3: + container_name: node3 + image: "tendermint/localnode" + environment: + - ID=3 + - LOG=${LOG:-tendermint.log} + ports: + - "26663-26664:26656-26657" + volumes: + - ./build:/tendermint:Z + networks: + localnet: + ipv4_address: 192.167.10.5 + +networks: + localnet: + driver: bridge + ipam: + driver: default + config: + - + subnet: 192.167.10.0/16 diff --git a/sei-tendermint/docs/.textlintrc.json b/sei-tendermint/docs/.textlintrc.json new file mode 100644 index 0000000000..4103f89e89 --- /dev/null +++ b/sei-tendermint/docs/.textlintrc.json @@ -0,0 +1,9 @@ +{ + "rules": { + "stop-words": { + "severity": "warning", + "defaultWords": false, + "words": "stop-words.txt" + } + } +} diff --git a/sei-tendermint/docs/.vuepress/config.js b/sei-tendermint/docs/.vuepress/config.js new file mode 100644 index 0000000000..6fa1861047 --- /dev/null +++ b/sei-tendermint/docs/.vuepress/config.js @@ -0,0 +1,171 @@ +module.exports = { + theme: 'cosmos', + title: 'Tendermint Core', + // locales: { + // "/": { + // lang: "en-US" + // }, + // "/ru/": { + // lang: "ru" + // } + // }, + base: process.env.VUEPRESS_BASE, + themeConfig: { + repo: 'tendermint/tendermint', + docsRepo: 'tendermint/tendermint', + docsDir: 'docs', + editLinks: true, + label: 'core', + algolia: { + id: "BH4D9OD16A", + key: "59f0e2deb984aa9cdf2b3a5fd24ac501", + index: "tendermint" + }, + versions: [ + { + "label": "v0.33", + "key": "v0.33" + }, + { + "label": "v0.34", + "key": "v0.34" + }, + { + "label": "v0.35", + "key": "v0.35" + } + ], + topbar: { + banner: false, + }, + sidebar: { + auto: true, + nav: [ + { + title: 'Resources', + children: [ + { + // TODO(creachadair): Figure out how to make this per-branch. + // See: https://github.com/tendermint/tendermint/issues/7908 + title: 'RPC', + path: 'https://docs.tendermint.com/v0.35/rpc/', + static: true + }, + ] + } + ] + }, + gutter: { + title: 'Help & Support', + editLink: true, + forum: { + title: 'Tendermint Forum', + text: 'Join the Tendermint forum to learn more', + url: 'https://forum.cosmos.network/c/tendermint', + bg: '#0B7E0B', + logo: 'tendermint' + }, + github: { + title: 'Found an Issue?', + text: 'Help us improve this page by suggesting edits on GitHub.' + } + }, + footer: { + question: { + text: 'Chat with Tendermint developers in Discord or reach out on the Tendermint Forum to learn more.' + }, + logo: '/logo-bw.svg', + textLink: { + text: 'tendermint.com', + url: 'https://tendermint.com' + }, + services: [ + { + service: 'medium', + url: 'https://medium.com/@tendermint' + }, + { + service: 'twitter', + url: 'https://twitter.com/tendermint_team' + }, + { + service: 'linkedin', + url: 'https://www.linkedin.com/company/tendermint/' + }, + { + service: 'reddit', + url: 'https://reddit.com/r/cosmosnetwork' + }, + { + service: 'telegram', + url: 'https://t.me/cosmosproject' + }, + { + service: 'youtube', + url: 'https://www.youtube.com/c/CosmosProject' + } + ], + smallprint: + 'The development of Tendermint Core is led primarily by [Interchain GmbH](https://interchain.berlin/). Funding for this development comes primarily from the Interchain Foundation, a Swiss non-profit. The Tendermint trademark is owned by Tendermint Inc, the for-profit entity that also maintains this website.', + links: [ + { + title: 'Documentation', + children: [ + { + title: 'Cosmos SDK', + url: 'https://docs.cosmos.network' + }, + { + title: 'Cosmos Hub', + url: 'https://hub.cosmos.network' + } + ] + }, + { + title: 'Community', + children: [ + { + title: 'Tendermint blog', + url: 'https://medium.com/@tendermint' + }, + { + title: 'Forum', + url: 'https://forum.cosmos.network/c/tendermint' + } + ] + }, + { + title: 'Contributing', + children: [ + { + title: 'Contributing to the docs', + url: 'https://github.com/tendermint/tendermint' + }, + { + title: 'Source code on GitHub', + url: 'https://github.com/tendermint/tendermint' + }, + { + title: 'Careers at Tendermint', + url: 'https://tendermint.com/careers' + } + ] + } + ] + } + }, + plugins: [ + [ + '@vuepress/google-analytics', + { + ga: 'UA-51029217-11' + } + ], + [ + '@vuepress/plugin-html-redirect', + { + countdown: 0 + } + ] + ] +}; diff --git a/sei-tendermint/docs/.vuepress/public/logo-bw.svg b/sei-tendermint/docs/.vuepress/public/logo-bw.svg new file mode 100644 index 0000000000..8b57266a35 --- /dev/null +++ b/sei-tendermint/docs/.vuepress/public/logo-bw.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/sei-tendermint/docs/.vuepress/redirects b/sei-tendermint/docs/.vuepress/redirects new file mode 100644 index 0000000000..15bd6111b5 --- /dev/null +++ b/sei-tendermint/docs/.vuepress/redirects @@ -0,0 +1 @@ +/master/ /v0.35/ diff --git a/sei-tendermint/docs/.vuepress/styles/index.styl b/sei-tendermint/docs/.vuepress/styles/index.styl new file mode 100644 index 0000000000..ecca3f715f --- /dev/null +++ b/sei-tendermint/docs/.vuepress/styles/index.styl @@ -0,0 +1,3 @@ +:root + --color-link #018A01 + --color-primary #00BB00 diff --git a/sei-tendermint/docs/DOCS_README.md b/sei-tendermint/docs/DOCS_README.md new file mode 100644 index 0000000000..da06785d57 --- /dev/null +++ b/sei-tendermint/docs/DOCS_README.md @@ -0,0 +1,105 @@ +# Docs Build Workflow + +The documentation for Tendermint Core is hosted at: + +- + +built from the files in this [`docs` directory for `master`](https://github.com/tendermint/tendermint/tree/master/docs) +and other supported release branches. + +## How It Works + +There is a [GitHub Actions workflow](https://github.com/tendermint/docs/actions/workflows/deployment.yml) +in the `tendermint/docs` repository that clones and builds the documentation +site from the contents of this `docs` directory, for `master` and for the +backport branch of each supported release. Under the hood, this workflow runs +`make build-docs` from the [Makefile](../Makefile#L214). + +The list of supported versions are defined in [`config.js`](./.vuepress/config.js), +which defines the UI menu on the documentation site, and also in +[`docs/versions`](./versions), which determines which branches are built. + +The last entry in the `docs/versions` file determines which version is linked +by default from the generated `index.html`. This should generally be the most +recent release, rather than `master`, so that new users are not confused by +documentation for unreleased features. + +## README + +The [README.md](./README.md) is also the landing page for the documentation +on the website. During the Jenkins build, the current commit is added to the bottom +of the README. + +## Config.js + +The [config.js](./.vuepress/config.js) generates the sidebar and Table of Contents +on the website docs. Note the use of relative links and the omission of +file extensions. Additional features are available to improve the look +of the sidebar. + +## Links + +**NOTE:** Strongly consider the existing links - both within this directory +and to the website docs - when moving or deleting files. + +Links to directories _MUST_ end in a `/`. + +Relative links should be used nearly everywhere, having discovered and weighed the following: + +### Relative + +Where is the other file, relative to the current one? + +- works both on GitHub and for the VuePress build +- confusing / annoying to have things like: `../../../../myfile.md` +- requires more updates when files are re-shuffled + +### Absolute + +Where is the other file, given the root of the repo? + +- works on GitHub, doesn't work for the VuePress build +- this is much nicer: `/docs/hereitis/myfile.md` +- if you move that file around, the links inside it are preserved (but not to it, of course) + +### Full + +The full GitHub URL to a file or directory. Used occasionally when it makes sense +to send users to the GitHub. + +## Building Locally + +Make sure you are in the `docs` directory and run the following commands: + +```bash +rm -rf node_modules +``` + +This command will remove old version of the visual theme and required packages. This step is optional. + +```bash +npm install +``` + +Install the theme and all dependencies. + +```bash +npm run serve +``` + + + +Run `pre` and `post` hooks and start a hot-reloading web-server. See output of this command for the URL (it is often ). + + + +To build documentation as a static website run `npm run build`. You will find the website in `.vuepress/dist` directory. + +## Search + +We are using [Algolia](https://www.algolia.com) to power full-text search. This uses a public API search-only key in the `config.js` as well as a [tendermint.json](https://github.com/algolia/docsearch-configs/blob/master/configs/tendermint.json) configuration file that we can update with PRs. + +## Consistency + +Because the build processes are identical (as is the information contained herein), this file should be kept in sync as +much as possible with its [counterpart in the Cosmos SDK repo](https://github.com/cosmos/cosmos-sdk/blob/master/docs/DOCS_README.md). diff --git a/sei-tendermint/docs/README.md b/sei-tendermint/docs/README.md new file mode 100644 index 0000000000..3137d611a7 --- /dev/null +++ b/sei-tendermint/docs/README.md @@ -0,0 +1,33 @@ +--- +title: Tendermint Core Documentation +description: Tendermint Core is a blockchain application platform. +footer: + newsletter: false +--- + +# Tendermint + +Welcome to the Tendermint Core documentation! + +Tendermint Core is a blockchain application platform; it provides the equivalent +of a web-server, database, and supporting libraries for blockchain applications +written in any programming language. Like a web-server serving web applications, +Tendermint serves blockchain applications. + +More formally, Tendermint Core performs Byzantine Fault Tolerant (BFT) +State Machine Replication (SMR) for arbitrary deterministic, finite state machines. +For more background, see [What is +Tendermint?](introduction/what-is-tendermint.md). + +To get started quickly with an example application, see the [quick start guide](introduction/quick-start.md). + +To learn about application development on Tendermint, see the [Application Blockchain Interface](../spec/abci). + +For more details on using Tendermint, see the respective documentation for +[Tendermint Core](tendermint-core/), [benchmarking and monitoring](tools/), and [network deployments](nodes/). + +To find out about the Tendermint ecosystem you can go [here](https://github.com/tendermint/awesome#ecosystem). If you are a project that is using Tendermint you are welcome to make a PR to add your project to the list. + +## Contribute + +To contribute to the documentation, see [this file](https://github.com/tendermint/tendermint/blob/master/docs/DOCS_README.md) for details of the build process and considerations when making changes. diff --git a/sei-tendermint/docs/app-dev/abci-cli.md b/sei-tendermint/docs/app-dev/abci-cli.md new file mode 100644 index 0000000000..109e3b9fb1 --- /dev/null +++ b/sei-tendermint/docs/app-dev/abci-cli.md @@ -0,0 +1,233 @@ +--- +order: 2 +--- + +# Using ABCI-CLI + +To facilitate testing and debugging of ABCI servers and simple apps, we +built a CLI, the `abci-cli`, for sending ABCI messages from the command +line. + +## Install + +Make sure you [have Go installed](https://golang.org/doc/install). + +Next, install the `abci-cli` tool and example applications: + +```sh +git clone https://github.com/tendermint/tendermint.git +cd tendermint +make install_abci +``` + +Now run `abci-cli` to see the list of commands: + +```sh +Usage: + abci-cli [command] + +Available Commands: + batch Run a batch of abci commands against an application + check_tx Validate a tx + commit Commit the application state and return the Merkle root hash + console Start an interactive abci console for multiple commands + finalize_block Send a set of transactions to the application + kvstore ABCI demo example + echo Have the application echo a message + help Help about any command + info Get some info about the application + query Query the application state + set_option Set an options on the application + +Flags: + --abci string socket or grpc (default "socket") + --address string address of application socket (default "tcp://127.0.0.1:26658") + -h, --help help for abci-cli + -v, --verbose print the command and results as if it were a console session + +Use "abci-cli [command] --help" for more information about a command. +``` + +## KVStore - First Example + +The `abci-cli` tool lets us send ABCI messages to our application, to +help build and debug them. + +The most important messages are `finalize_block`, `check_tx`, and `commit`, +but there are others for convenience, configuration, and information +purposes. + +We'll start a kvstore application, which was installed at the same time +as `abci-cli` above. The kvstore just stores transactions in a merkle +tree. + +Its code can be found +[here](https://github.com/tendermint/tendermint/blob/master/abci/cmd/abci-cli/abci-cli.go) +and looks like: + +```go +func cmdKVStore(cmd *cobra.Command, args []string) error { + logger := log.NewTMLogger(log.NewSyncWriter(os.Stdout)) + + // Create the application - in memory or persisted to disk + var app types.Application + if flagPersist == "" { + app = kvstore.NewKVStoreApplication() + } else { + app = kvstore.NewPersistentKVStoreApplication(flagPersist) + app.(*kvstore.PersistentKVStoreApplication).SetLogger(logger.With("module", "kvstore")) + } + + // Start the listener + srv, err := server.NewServer(flagAddrD, flagAbci, app) + if err != nil { + return err + } + + // Stop upon receiving SIGTERM or CTRL-C. + ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) + defer cancel() + + srv.SetLogger(logger.With("module", "abci-server")) + if err := srv.Start(ctx); err != nil { + return err + } + + // Run until shutdown. +<-ctx.Done() +srv.Wait() +} +``` + +Start by running: + +```sh +abci-cli kvstore +``` + +And in another terminal, run + +```sh +abci-cli echo hello +abci-cli info +``` + +You'll see something like: + +```sh +-> data: hello +-> data.hex: 68656C6C6F +``` + +and: + +```sh +-> data: {"size":0} +-> data.hex: 7B2273697A65223A307D +``` + +An ABCI application must provide two things: + +- a socket server +- a handler for ABCI messages + +When we run the `abci-cli` tool we open a new connection to the +application's socket server, send the given ABCI message, and wait for a +response. + +The server may be generic for a particular language, and we provide a +[reference implementation in +Golang](https://github.com/tendermint/tendermint/tree/master/abci/server). See the +[list of other ABCI implementations](https://github.com/tendermint/awesome#ecosystem) for servers in +other languages. + +The handler is specific to the application, and may be arbitrary, so +long as it is deterministic and conforms to the ABCI interface +specification. + +So when we run `abci-cli info`, we open a new connection to the ABCI +server, which calls the `Info()` method on the application, which tells +us the number of transactions in our Merkle tree. + +Now, since every command opens a new connection, we provide the +`abci-cli console` and `abci-cli batch` commands, to allow multiple ABCI +messages to be sent over a single connection. + +Running `abci-cli console` should drop you in an interactive console for +speaking ABCI messages to your application. + +Try running these commands: + +```sh +> echo hello +-> code: OK +-> data: hello +-> data.hex: 0x68656C6C6F + +> info +-> code: OK +-> data: {"size":0} +-> data.hex: 0x7B2273697A65223A307D + +> finalize_block "abc" +-> code: OK +-> code: OK +-> data.hex: 0x0200000000000000 + +> commit +-> code: OK + +> info +-> code: OK +-> data: {"size":1} +-> data.hex: 0x7B2273697A65223A317D + +> query "abc" +-> code: OK +-> log: exists +-> height: 1 +-> key: abc +-> key.hex: 616263 +-> value: abc +-> value.hex: 616263 + +> finalize_block "def=xyz" "ghi=123" +-> code: OK +-> code: OK +-> code: OK +-> data.hex: 0x0600000000000000 + +> commit +-> code: OK + +> query "def" +-> code: OK +-> log: exists +-> height: 2 +-> key: def +-> key.hex: 646566 +-> value: xyz +-> value.hex: 78797A +``` + +Note that if we do `finalize_block "abc" ...` it will store `(abc, abc)`, but if +we do `finalize_block "abc=efg" ...` it will store `(abc, efg)`. + +Similarly, you could put the commands in a file and run +`abci-cli --verbose batch < myfile`. + +## Bounties + +Want to write an app in your favorite language?! We'd be happy +to add you to our [ecosystem](https://github.com/tendermint/awesome#ecosystem)! +See [funding](https://github.com/interchainio/funding) opportunities from the +[Interchain Foundation](https://interchain.io/) for implementations in new languages and more. + +The `abci-cli` is designed strictly for testing and debugging. In a real +deployment, the role of sending messages is taken by Tendermint, which +connects to the app using three separate connections, each with its own +pattern of messages. + +For examples of running an ABCI app with +Tendermint, see the [getting started guide](./getting-started.md). +Next is the ABCI specification. diff --git a/sei-tendermint/docs/app-dev/app-architecture.md b/sei-tendermint/docs/app-dev/app-architecture.md new file mode 100644 index 0000000000..f478547bca --- /dev/null +++ b/sei-tendermint/docs/app-dev/app-architecture.md @@ -0,0 +1,60 @@ +--- +order: 3 +--- + +# Application Architecture Guide + +Here we provide a brief guide on the recommended architecture of a +Tendermint blockchain application. + +The following diagram provides a superb example: + +![cosmos-tendermint-stack](../imgs/cosmos-tendermint-stack-4k.jpg) + +We distinguish here between two forms of "application". The first is the +end-user application, like a desktop-based wallet app that a user downloads, +which is where the user actually interacts with the system. The other is the +ABCI application, which is the logic that actually runs on the blockchain. +Transactions sent by an end-user application are ultimately processed by the ABCI +application after being committed by the Tendermint consensus. + +The end-user application in this diagram is the [Lunie](https://lunie.io/) app, located at the bottom +left. Lunie communicates with a REST API exposed by the application. +The application with Tendermint nodes and verifies Tendermint light-client proofs +through the Tendermint Core RPC. The Tendermint Core process communicates with +a local ABCI application, where the user query or transaction is actually +processed. + +The ABCI application must be a deterministic result of the Tendermint +consensus - any external influence on the application state that didn't +come through Tendermint could cause a consensus failure. Thus _nothing_ +should communicate with the ABCI application except Tendermint via ABCI. + +If the ABCI application is written in Go, it can be compiled into the +Tendermint binary. Otherwise, it should use a unix socket to communicate +with Tendermint. If it's necessary to use TCP, extra care must be taken +to encrypt and authenticate the connection. + +All reads from the ABCI application happen through the Tendermint `/abci_query` +endpoint. All writes to the ABCI application happen through the Tendermint +`/broadcast_tx_*` endpoints. + +The Light-Client Daemon is what provides light clients (end users) with +nearly all the security of a full node. It formats and broadcasts +transactions, and verifies proofs of queries and transaction results. +Note that it need not be a daemon - the Light-Client logic could instead +be implemented in the same process as the end-user application. + +Note for those ABCI applications with weaker security requirements, the +functionality of the Light-Client Daemon can be moved into the ABCI +application process itself. That said, exposing the ABCI application process +to anything besides Tendermint over ABCI requires extreme caution, as +all transactions, and possibly all queries, should still pass through +Tendermint. + +See the following for more extensive documentation: + +- [Interchain Standard for the Light-Client REST API](https://github.com/cosmos/cosmos-sdk/pull/1028) +- [Tendermint RPC Docs](https://docs.tendermint.com/master/rpc/) +- [Tendermint in Production](../tendermint-core/running-in-production.md) +- [ABCI spec](https://github.com/tendermint/tendermint/tree/95cf253b6df623066ff7cd4074a94e7a3f147c7a/spec/abci) diff --git a/sei-tendermint/docs/app-dev/getting-started.md b/sei-tendermint/docs/app-dev/getting-started.md new file mode 100644 index 0000000000..a480137cac --- /dev/null +++ b/sei-tendermint/docs/app-dev/getting-started.md @@ -0,0 +1,202 @@ +--- +order: 1 +--- + +# Getting Started + +## First Tendermint App + +As a general purpose blockchain engine, Tendermint is agnostic to the +application you want to run. So, to run a complete blockchain that does +something useful, you must start two programs: one is Tendermint Core, +the other is your application, which can be written in any programming +language. Recall from [the intro to +ABCI](../introduction/what-is-tendermint.md#abci-overview) that Tendermint Core handles all the p2p and consensus stuff, and just forwards transactions to the +application when they need to be validated, or when they're ready to be +committed to a block. + +In this guide, we show you some examples of how to run an application +using Tendermint. + +### Install + +The first apps we will work with are written in Go. To install them, you +need to [install Go](https://golang.org/doc/install), put +`$GOPATH/bin` in your `$PATH` and enable go modules with these instructions: + +```bash +echo export GOPATH=\"\$HOME/go\" >> ~/.bash_profile +echo export PATH=\"\$PATH:\$GOPATH/bin\" >> ~/.bash_profile +``` + +Then run + +```sh +go get github.com/tendermint/tendermint +cd $GOPATH/src/github.com/tendermint/tendermint +make install_abci +``` + +Now you should have the `abci-cli` installed; you'll notice the `kvstore` +command, an example application written +in Go. See below for an application written in JavaScript. + +Now, let's run some apps! + +## KVStore - A First Example + +The kvstore app is a [Merkle +tree](https://en.wikipedia.org/wiki/Merkle_tree) that just stores all +transactions. If the transaction contains an `=`, e.g. `key=value`, then +the `value` is stored under the `key` in the Merkle tree. Otherwise, the +full transaction bytes are stored as the key and the value. + +Let's start a kvstore application. + +```sh +abci-cli kvstore +``` + +In another terminal, we can start Tendermint. You should already have the +Tendermint binary installed. If not, follow the steps from +[here](../introduction/install.md). If you have never run Tendermint +before, use: + +```sh +tendermint init validator +tendermint start +``` + +If you have used Tendermint, you may want to reset the data for a new +blockchain by running `tendermint unsafe-reset-all`. Then you can run +`tendermint start` to start Tendermint, and connect to the app. For more +details, see [the guide on using Tendermint](../tendermint-core/using-tendermint.md). + +You should see Tendermint making blocks! We can get the status of our +Tendermint node as follows: + +```sh +curl -s localhost:26657/status +``` + +The `-s` just silences `curl`. For nicer output, pipe the result into a +tool like [jq](https://stedolan.github.io/jq/) or `json_pp`. + +Now let's send some transactions to the kvstore. + +```sh +curl -s 'localhost:26657/broadcast_tx_commit?tx="abcd"' +``` + +Note the single quote (`'`) around the url, which ensures that the +double quotes (`"`) are not escaped by bash. This command sent a +transaction with bytes `abcd`, so `abcd` will be stored as both the key +and the value in the Merkle tree. The response should look something +like: + +```json +{ + "check_tx": { ... }, + "deliver_tx": { + "tags": [ + { + "key": "YXBwLmNyZWF0b3I=", + "value": "amFl" + }, + { + "key": "YXBwLmtleQ==", + "value": "YWJjZA==" + } + ] + }, + "hash": "9DF66553F98DE3C26E3C3317A3E4CED54F714E39", + "height": 14 +} +``` + +We can confirm that our transaction worked and the value got stored by +querying the app: + +```sh +curl -s 'localhost:26657/abci_query?data="abcd"' +``` + +The result should look like: + +```json +{ + "response": { + "log": "exists", + "index": "-1", + "key": "YWJjZA==", + "value": "YWJjZA==" + } +} +``` + +Note the `value` in the result (`YWJjZA==`); this is the base64-encoding +of the ASCII of `abcd`. You can verify this in a python 2 shell by +running `"YWJjZA==".decode('base64')` or in python 3 shell by running +`import codecs; codecs.decode(b"YWJjZA==", 'base64').decode('ascii')`. +Stay tuned for a future release that [makes this output more +human-readable](https://github.com/tendermint/tendermint/issues/1794). + +Now let's try setting a different key and value: + +```sh +curl -s 'localhost:26657/broadcast_tx_commit?tx="name=satoshi"' +``` + +Now if we query for `name`, we should get `satoshi`, or `c2F0b3NoaQ==` +in base64: + +```sh +curl -s 'localhost:26657/abci_query?data="name"' +``` + +Try some other transactions and queries to make sure everything is +working! + + +## CounterJS - Example in Another Language + +We also want to run applications in another language - in this case, +we'll run a Javascript version of the `counter`. To run it, you'll need +to [install node](https://nodejs.org/en/download/). + +You'll also need to fetch the relevant repository, from +[here](https://github.com/tendermint/js-abci), then install it: + +```sh +git clone https://github.com/tendermint/js-abci.git +cd js-abci +npm install abci +``` + +Kill the previous `counter` and `tendermint` processes. Now run the app: + +```sh +node example/counter.js +``` + +In another window, reset and start `tendermint`: + +```sh +tendermint reset unsafe-all +tendermint start +``` + +Once again, you should see blocks streaming by - but now, our +application is written in Javascript! Try sending some transactions, and +like before - the results should be the same: + +```sh +# ok +curl localhost:26657/broadcast_tx_commit?tx=0x00 +# invalid nonce +curl localhost:26657/broadcast_tx_commit?tx=0x05 +# ok +curl localhost:26657/broadcast_tx_commit?tx=0x01 +``` + +Neat, eh? diff --git a/sei-tendermint/docs/app-dev/indexing-transactions.md b/sei-tendermint/docs/app-dev/indexing-transactions.md new file mode 100644 index 0000000000..67d17c8794 --- /dev/null +++ b/sei-tendermint/docs/app-dev/indexing-transactions.md @@ -0,0 +1,181 @@ +--- +order: 6 +--- + +# Indexing Transactions + +Tendermint allows you to index transactions and blocks and later query or +subscribe to their results. Transactions are indexed by `TxResult.Events` and +blocks are indexed by `Response(Begin|End)Block.Events`. However, transactions +are also indexed by a primary key which includes the transaction hash and maps +to and stores the corresponding `TxResult`. Blocks are indexed by a primary key +which includes the block height and maps to and stores the block height, i.e. +the block itself is never stored. + +Each event contains a type and a list of attributes, which are key-value pairs +denoting something about what happened during the method's execution. For more +details on `Events`, see the +[ABCI](https://github.com/tendermint/tendermint/blob/master/spec/abci/abci.md#events) +documentation. + +An `Event` has a composite key associated with it. A `compositeKey` is +constructed by its type and key separated by a dot. + +For example: + +```json +"jack": [ + "account.number": 100 +] +``` + +would be equal to the composite key of `jack.account.number`. + +By default, Tendermint will index all transactions by their respective hashes +and height and blocks by their height. + +## Configuration + +Operators can configure indexing via the `[tx_index]` section. The `indexer` +field takes a series of supported indexers. If `null` is included, indexing will +be turned off regardless of other values provided. + +```toml +[tx-index] + +# The backend database list to back the indexer. +# If list contains null, meaning no indexer service will be used. +# +# The application will set which txs to index. In some cases a node operator will be able +# to decide which txs to index based on configuration set in the application. +# +# Options: +# 1) "null" +# 2) "kv" (default) - the simplest possible indexer, backed by key-value storage (defaults to levelDB; see DBBackend). +# - When "kv" is chosen "tx.height" and "tx.hash" will always be indexed. +# 3) "psql" - the indexer services backed by PostgreSQL. +# indexer = [] +``` + +### Supported Indexers + +#### KV + +The `kv` indexer type is an embedded key-value store supported by the main +underlying Tendermint database. Using the `kv` indexer type allows you to query +for block and transaction events directly against Tendermint's RPC. However, the +query syntax is limited and so this indexer type might be deprecated or removed +entirely in the future. + +#### PostgreSQL + +The `psql` indexer type allows an operator to enable block and transaction event +indexing by proxying it to an external PostgreSQL instance allowing for the events +to be stored in relational models. Since the events are stored in a RDBMS, operators +can leverage SQL to perform a series of rich and complex queries that are not +supported by the `kv` indexer type. Since operators can leverage SQL directly, +searching is not enabled for the `psql` indexer type via Tendermint's RPC -- any +such query will fail. + +Note, the SQL schema is stored in `state/indexer/sink/psql/schema.sql` and operators +must explicitly create the relations prior to starting Tendermint and enabling +the `psql` indexer type. + +Example: + +```shell +$ psql ... -f state/indexer/sink/psql/schema.sql +``` + +## Default Indexes + +The Tendermint tx and block event indexer indexes a few select reserved events +by default. + +### Transactions + +The following indexes are indexed by default: + +- `tx.height` +- `tx.hash` + +### Blocks + +The following indexes are indexed by default: + +- `block.height` + +## Adding Events + +Applications are free to define which events to index. Tendermint does not +expose functionality to define which events to index and which to ignore. In +your application's `DeliverTx` method, add the `Events` field with pairs of +UTF-8 encoded strings (e.g. "transfer.sender": "Bob", "transfer.recipient": +"Alice", "transfer.balance": "100"). + +Example: + +```go +func (app *KVStoreApplication) DeliverTx(req types.RequestDeliverTx) types.Result { + //... + events := []abci.Event{ + { + Type: "transfer", + Attributes: []abci.EventAttribute{ + {Key: []byte("sender"), Value: []byte("Bob"), Index: true}, + {Key: []byte("recipient"), Value: []byte("Alice"), Index: true}, + {Key: []byte("balance"), Value: []byte("100"), Index: true}, + {Key: []byte("note"), Value: []byte("nothing"), Index: true}, + }, + }, + } + return types.ResponseDeliverTx{Code: code.CodeTypeOK, Events: events} +} +``` + +If the indexer is not `null`, the transaction will be indexed. Each event is +indexed using a composite key in the form of `{eventType}.{eventAttribute}={eventValue}`, +e.g. `transfer.sender=bob`. + +## Querying Transactions Events + +You can query for a paginated set of transaction by their events by calling the +`/tx_search` RPC endpoint: + +```bash +curl "localhost:26657/tx_search?query=\"message.sender='cosmos1...'\"&prove=true" +``` + +Check out [API docs](https://docs.tendermint.com/master/rpc/#/Info/tx_search) +for more information on query syntax and other options. + +## Subscribing to Transactions + +Clients can subscribe to transactions with the given tags via WebSocket by providing +a query to `/subscribe` RPC endpoint. + +```json +{ + "jsonrpc": "2.0", + "method": "subscribe", + "id": "0", + "params": { + "query": "message.sender='cosmos1...'" + } +} +``` + +Check out [API docs](https://docs.tendermint.com/master/rpc/#subscribe) for more information +on query syntax and other options. + +## Querying Blocks Events + +You can query for a paginated set of blocks by their events by calling the +`/block_search` RPC endpoint: + +```bash +curl "localhost:26657/block_search?query=\"block.height > 10 AND val_set.num_changed > 0\"" +``` + +Check out [API docs](https://docs.tendermint.com/master/rpc/#/Info/block_search) +for more information on query syntax and other options. diff --git a/sei-tendermint/docs/app-dev/readme.md b/sei-tendermint/docs/app-dev/readme.md new file mode 100644 index 0000000000..46ce06ca00 --- /dev/null +++ b/sei-tendermint/docs/app-dev/readme.md @@ -0,0 +1,6 @@ +--- +order: false +parent: + title: "Building Applications" + order: 3 +--- \ No newline at end of file diff --git a/sei-tendermint/docs/architecture/README.md b/sei-tendermint/docs/architecture/README.md new file mode 100644 index 0000000000..e75896f38c --- /dev/null +++ b/sei-tendermint/docs/architecture/README.md @@ -0,0 +1,120 @@ +--- +order: 1 +parent: + order: false +--- + +# Architecture Decision Records (ADR) + +This is a location to record all high-level architecture decisions in the tendermint project. + +You can read more about the ADR concept in this [blog post](https://product.reverb.com/documenting-architecture-decisions-the-reverb-way-a3563bb24bd0#.78xhdix6t). + +An ADR should provide: + +- Context on the relevant goals and the current state +- Proposed changes to achieve the goals +- Summary of pros and cons +- References +- Changelog + +Note the distinction between an ADR and a spec. The ADR provides the context, intuition, reasoning, and +justification for a change in architecture, or for the architecture of something +new. The spec is much more compressed and streamlined summary of everything as +it stands today. + +If recorded decisions turned out to be lacking, convene a discussion, record the new decisions here, and then modify the code to match. + +Note the context/background should be written in the present tense. + +## Table of Contents + +### Implemented + +- [ADR-001: Logging](./adr-001-logging.md) +- [ADR-002: Event-Subscription](./adr-002-event-subscription.md) +- [ADR-003: ABCI-APP-RPC](./adr-003-abci-app-rpc.md) +- [ADR-004: Historical-Validators](./adr-004-historical-validators.md) +- [ADR-005: Consensus-Params](./adr-005-consensus-params.md) +- [ADR-008: Priv-Validator](./adr-008-priv-validator.md) +- [ADR-009: ABCI-Design](./adr-009-ABCI-design.md) +- [ADR-010: Crypto-Changes](./adr-010-crypto-changes.md) +- [ADR-011: Monitoring](./adr-011-monitoring.md) +- [ADR-014: Secp-Malleability](./adr-014-secp-malleability.md) +- [ADR-015: Crypto-Encoding](./adr-015-crypto-encoding.md) +- [ADR-016: Protocol-Versions](./adr-016-protocol-versions.md) +- [ADR-017: Chain-Versions](./adr-017-chain-versions.md) +- [ADR-018: ABCI-Validators](./adr-018-ABCI-Validators.md) +- [ADR-019: Multisigs](./adr-019-multisigs.md) +- [ADR-020: Block-Size](./adr-020-block-size.md) +- [ADR-021: ABCI-Events](./adr-021-abci-events.md) +- [ADR-025: Commit](./adr-025-commit.md) +- [ADR-026: General-Merkle-Proof](./adr-026-general-merkle-proof.md) +- [ADR-033: Pubsub](./adr-033-pubsub.md) +- [ADR-034: Priv-Validator-File-Structure](./adr-034-priv-validator-file-structure.md) +- [ADR-043: Blockchain-RiRi-Org](./adr-043-blockchain-riri-org.md) +- [ADR-044: Lite-Client-With-Weak-Subjectivity](./adr-044-lite-client-with-weak-subjectivity.md) +- [ADR-046: Light-Client-Implementation](./adr-046-light-client-implementation.md) +- [ADR-047: Handling-Evidence-From-Light-Client](./adr-047-handling-evidence-from-light-client.md) +- [ADR-051: Double-Signing-Risk-Reduction](./adr-051-double-signing-risk-reduction.md) +- [ADR-052: Tendermint-Mode](./adr-052-tendermint-mode.md) +- [ADR-053: State-Sync-Prototype](./adr-053-state-sync-prototype.md) +- [ADR-054: Crypto-Encoding-2](./adr-054-crypto-encoding-2.md) +- [ADR-055: Protobuf-Design](./adr-055-protobuf-design.md) +- [ADR-056: Light-Client-Amnesia-Attacks](./adr-056-light-client-amnesia-attacks.md) +- [ADR-059: Evidence-Composition-and-Lifecycle](./adr-059-evidence-composition-and-lifecycle.md) +- [ADR-062: P2P-Architecture](./adr-062-p2p-architecture.md) +- [ADR-063: Privval-gRPC](./adr-063-privval-grpc.md) +- [ADR-066: E2E-Testing](./adr-066-e2e-testing.md) +- [ADR-072: Restore Requests for Comments](./adr-072-request-for-comments.md) +- [ADR-077: Block Retention](./adr-077-block-retention.md) +- [ADR-078: Non-zero Genesis](./adr-078-nonzero-genesis.md) +- [ADR-079: ED25519 Verification](./adr-079-ed25519-verification.md) +- [ADR-080: Reverse Sync](./adr-080-reverse-sync.md) + +### Accepted + +- [ADR-006: Trust-Metric](./adr-006-trust-metric.md) +- [ADR-024: Sign-Bytes](./adr-024-sign-bytes.md) +- [ADR-035: Documentation](./adr-035-documentation.md) +- [ADR-039: Peer-Behaviour](./adr-039-peer-behaviour.md) +- [ADR-060: Go-API-Stability](./adr-060-go-api-stability.md) +- [ADR-061: P2P-Refactor-Scope](./adr-061-p2p-refactor-scope.md) +- [ADR-065: Custom Event Indexing](./adr-065-custom-event-indexing.md) +- [ADR-068: Reverse-Sync](./adr-068-reverse-sync.md) +- [ADR-067: Mempool Refactor](./adr-067-mempool-refactor.md) +- [ADR-075: RPC Event Subscription Interface](./adr-075-rpc-subscription.md) +- [ADR-076: Combine Spec and Tendermint Repositories](./adr-076-combine-spec-repo.md) +- [ADR-081: Protocol Buffers Management](./adr-081-protobuf-mgmt.md) + +### Deprecated + +None + +### Rejected + +- [ADR-023: ABCI-Propose-tx](./adr-023-ABCI-propose-tx.md) +- [ADR-029: Check-Tx-Consensus](./adr-029-check-tx-consensus.md) +- [ADR-058: Event-Hashing](./adr-058-event-hashing.md) + +### Proposed + +- [ADR-007: Trust-Metric-Usage](./adr-007-trust-metric-usage.md) +- [ADR-012: Peer-Transport](./adr-012-peer-transport.md) +- [ADR-013: Symmetric-Crypto](./adr-013-symmetric-crypto.md) +- [ADR-022: ABCI-Errors](./adr-022-abci-errors.md) +- [ADR-030: Consensus-Refactor](./adr-030-consensus-refactor.md) +- [ADR-036: Empty Blocks via ABCI](./adr-036-empty-blocks-abci.md) +- [ADR-037: Deliver-Block](./adr-037-deliver-block.md) +- [ADR-038: Non-Zero-Start-Height](./adr-038-non-zero-start-height.md) +- [ADR-040: Blockchain Reactor Refactor](./adr-040-blockchain-reactor-refactor.md) +- [ADR-041: Proposer-Selection-via-ABCI](./adr-041-proposer-selection-via-abci.md) +- [ADR-042: State Sync Design](./adr-042-state-sync.md) +- [ADR-045: ABCI-Evidence](./adr-045-abci-evidence.md) +- [ADR-050: Improved Trusted Peering](./adr-050-improved-trusted-peering.md) +- [ADR-057: RPC](./adr-057-RPC.md) +- [ADR-064: Batch Verification](./adr-064-batch-verification.md) +- [ADR-069: Node Initialization](./adr-069-flexible-node-initialization.md) +- [ADR-071: Proposer-Based Timestamps](./adr-071-proposer-based-timestamps.md) +- [ADR-073: Adopt LibP2P](./adr-073-libp2p.md) +- [ADR-074: Migrate Timeout Parameters to Consensus Parameters](./adr-074-timeout-params.md) diff --git a/sei-tendermint/docs/architecture/adr-001-logging.md b/sei-tendermint/docs/architecture/adr-001-logging.md new file mode 100644 index 0000000000..b5df8bf7ff --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-001-logging.md @@ -0,0 +1,216 @@ +# ADR 1: Logging + +## Context + +Current logging system in Tendermint is very static and not flexible enough. + +Issues: [358](https://github.com/tendermint/tendermint/issues/358), [375](https://github.com/tendermint/tendermint/issues/375). + +What we want from the new system: + +- per package dynamic log levels +- dynamic logger setting (logger tied to the processing struct) +- conventions +- be more visually appealing + +"dynamic" here means the ability to set smth in runtime. + +## Decision + +### 1) An interface + +First, we will need an interface for all of our libraries (`tmlibs`, Tendermint, etc.). My personal preference is go-kit `Logger` interface (see Appendix A.), but that is too much a bigger change. Plus we will still need levels. + +```go +# log.go +type Logger interface { + Debug(msg string, keyvals ...interface{}) error + Info(msg string, keyvals ...interface{}) error + Error(msg string, keyvals ...interface{}) error + + With(keyvals ...interface{}) Logger +} +``` + +On a side note: difference between `Info` and `Notice` is subtle. We probably +could do without `Notice`. Don't think we need `Panic` or `Fatal` as a part of +the interface. These funcs could be implemented as helpers. In fact, we already +have some in `tmlibs/common`. + +- `Debug` - extended output for devs +- `Info` - all that is useful for a user +- `Error` - errors + +`Notice` should become `Info`, `Warn` either `Error` or `Debug` depending on the message, `Crit` -> `Error`. + +This interface should go into `tmlibs/log`. All libraries which are part of the core (tendermint/tendermint) should obey it. + +### 2) Logger with our current formatting + +On top of this interface, we will need to implement a stdout logger, which will be used when Tendermint is configured to output logs to STDOUT. + +Many people say that they like the current output, so let's stick with it. + +``` +NOTE[2017-04-25|14:45:08] ABCI Replay Blocks module=consensus appHeight=0 storeHeight=0 stateHeight=0 +``` + +Couple of minor changes: + +``` +I[2017-04-25|14:45:08.322] ABCI Replay Blocks module=consensus appHeight=0 storeHeight=0 stateHeight=0 +``` + +Notice the level is encoded using only one char plus milliseconds. + +Note: there are many other formats out there like [logfmt](https://brandur.org/logfmt). + +This logger could be implemented using any logger - [logrus](https://github.com/sirupsen/logrus), [go-kit/log](https://github.com/go-kit/kit/tree/master/log), [zap](https://github.com/uber-go/zap), log15 so far as it + +a) supports coloring output
+b) is moderately fast (buffering)
+c) conforms to the new interface or adapter could be written for it
+d) is somewhat configurable
+ +go-kit is my favorite so far. Check out how easy it is to color errors in red https://github.com/go-kit/kit/blob/master/log/term/example_test.go#L12. Although, coloring could only be applied to the whole string :( + +``` +go-kit +: flexible, modular +go-kit “-”: logfmt format https://brandur.org/logfmt + +logrus +: popular, feature rich (hooks), API and output is more like what we want +logrus -: not so flexible +``` + +```go +# tm_logger.go +// NewTmLogger returns a logger that encodes keyvals to the Writer in +// tm format. +func NewTmLogger(w io.Writer) Logger { + return &tmLogger{kitlog.NewLogfmtLogger(w)} +} + +func (l tmLogger) SetLevel(level string() { + switch (level) { + case "debug": + l.sourceLogger = level.NewFilter(l.sourceLogger, level.AllowDebug()) + } +} + +func (l tmLogger) Info(msg string, keyvals ...interface{}) error { + l.sourceLogger.Log("msg", msg, keyvals...) +} + +# log.go +func With(logger Logger, keyvals ...interface{}) Logger { + kitlog.With(logger.sourceLogger, keyvals...) +} +``` + +Usage: + +```go +logger := log.NewTmLogger(os.Stdout) +logger.SetLevel(config.GetString("log_level")) +node.SetLogger(log.With(logger, "node", Name)) +``` + +**Other log formatters** + +In the future, we may want other formatters like JSONFormatter. + +``` +{ "level": "notice", "time": "2017-04-25 14:45:08.562471297 -0400 EDT", "module": "consensus", "msg": "ABCI Replay Blocks", "appHeight": 0, "storeHeight": 0, "stateHeight": 0 } +``` + +### 3) Dynamic logger setting + +https://dave.cheney.net/2017/01/23/the-package-level-logger-anti-pattern + +This is the hardest part and where the most work will be done. logger should be tied to the processing struct, or the context if it adds some fields to the logger. + +```go +type BaseService struct { + log log15.Logger + name string + started uint32 // atomic + stopped uint32 // atomic +... +} +``` + +BaseService already contains `log` field, so most of the structs embedding it should be fine. We should rename it to `logger`. + +The only thing missing is the ability to set logger: + +``` +func (bs *BaseService) SetLogger(l log.Logger) { + bs.logger = l +} +``` + +### 4) Conventions + +Important keyvals should go first. Example: + +``` +correct +I[2017-04-25|14:45:08.322] ABCI Replay Blocks module=consensus instance=1 appHeight=0 storeHeight=0 stateHeight=0 +``` + +not + +``` +wrong +I[2017-04-25|14:45:08.322] ABCI Replay Blocks module=consensus appHeight=0 storeHeight=0 stateHeight=0 instance=1 +``` + +for that in most cases you'll need to add `instance` field to a logger upon creating, not when u log a particular message: + +```go +colorFn := func(keyvals ...interface{}) term.FgBgColor { + for i := 1; i < len(keyvals); i += 2 { + if keyvals[i] == "instance" && keyvals[i+1] == "1" { + return term.FgBgColor{Fg: term.Blue} + } else if keyvals[i] == "instance" && keyvals[i+1] == "1" { + return term.FgBgColor{Fg: term.Red} + } + } + return term.FgBgColor{} + } +logger := term.NewLogger(os.Stdout, log.NewTmLogger, colorFn) + +c1 := NewConsensusReactor(...) +c1.SetLogger(log.With(logger, "instance", 1)) + +c2 := NewConsensusReactor(...) +c2.SetLogger(log.With(logger, "instance", 2)) +``` + +## Status + +Implemented + +## Consequences + +### Positive + +Dynamic logger, which could be turned off for some modules at runtime. Public interface for other projects using Tendermint libraries. + +### Negative + +We may loose the ability to color keys in keyvalue pairs. go-kit allow you to easily change foreground / background colors of the whole string, but not its parts. + +### Neutral + +## Appendix A. + +I really like a minimalistic approach go-kit took with his logger https://github.com/go-kit/kit/tree/master/log: + +``` +type Logger interface { + Log(keyvals ...interface{}) error +} +``` + +See [The Hunt for a Logger Interface](https://web.archive.org/web/20210902161539/https://go-talks.appspot.com/github.com/ChrisHines/talks/structured-logging/structured-logging.slide#1). The advantage is greater composability (check out how go-kit defines colored logging or log-leveled logging on top of this interface https://github.com/go-kit/kit/tree/master/log). diff --git a/sei-tendermint/docs/architecture/adr-002-event-subscription.md b/sei-tendermint/docs/architecture/adr-002-event-subscription.md new file mode 100644 index 0000000000..4cc2affbc3 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-002-event-subscription.md @@ -0,0 +1,88 @@ +# ADR 2: Event Subscription + +## Context + +In the light client (or any other client), the user may want to **subscribe to +a subset of transactions** (rather than all of them) using `/subscribe?event=X`. For +example, I want to subscribe for all transactions associated with a particular +account. Same for fetching. The user may want to **fetch transactions based on +some filter** (rather than fetching all the blocks). For example, I want to get +all transactions for a particular account in the last two weeks (`tx's block time >= '2017-06-05'`). + +Now you can't even subscribe to "all txs" in Tendermint. + +The goal is a simple and easy to use API for doing that. + +![Tx Send Flow Diagram](img/tags1.png) + +## Decision + +ABCI app return tags with a `DeliverTx` response inside the `data` field (_for +now, later we may create a separate field_). Tags is a list of key-value pairs, +protobuf encoded. + +Example data: + +```json +{ + "abci.account.name": "Igor", + "abci.account.address": "0xdeadbeef", + "tx.gas": 7 +} +``` + +### Subscribing for transactions events + +If the user wants to receive only a subset of transactions, ABCI-app must +return a list of tags with a `DeliverTx` response. These tags will be parsed and +matched with the current queries (subscribers). If the query matches the tags, +subscriber will get the transaction event. + +``` +/subscribe?query="tm.event = Tx AND tx.hash = AB0023433CF0334223212243BDD AND abci.account.invoice.number = 22" +``` + +A new package must be developed to replace the current `events` package. It +will allow clients to subscribe to a different types of events in the future: + +``` +/subscribe?query="abci.account.invoice.number = 22" +/subscribe?query="abci.account.invoice.owner CONTAINS Igor" +``` + +### Fetching transactions + +This is a bit tricky because a) we want to support a number of indexers, all of +which have a different API b) we don't know whenever tags will be sufficient +for the most apps (I guess we'll see). + +``` +/txs/search?query="tx.hash = AB0023433CF0334223212243BDD AND abci.account.owner CONTAINS Igor" +/txs/search?query="abci.account.owner = Igor" +``` + +For historic queries we will need a indexing storage (Postgres, SQLite, ...). + +### Issues + +- https://github.com/tendermint/tendermint/issues/376 +- https://github.com/tendermint/tendermint/issues/287 +- https://github.com/tendermint/tendermint/issues/525 (related) + +## Status + +Implemented + +## Consequences + +### Positive + +- same format for event notifications and search APIs +- powerful enough query + +### Negative + +- performance of the `match` function (where we have too many queries / subscribers) +- there is an issue where there are too many txs in the DB + +### Neutral diff --git a/sei-tendermint/docs/architecture/adr-003-abci-app-rpc.md b/sei-tendermint/docs/architecture/adr-003-abci-app-rpc.md new file mode 100644 index 0000000000..3bc46498cf --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-003-abci-app-rpc.md @@ -0,0 +1,34 @@ +# ADR 3: Must an ABCI-app have an RPC server? + +## Context + +ABCI-server could expose its own RPC-server and act as a proxy to Tendermint. + +The idea was for the Tendermint RPC to just be a transparent proxy to the app. +Clients need to talk to Tendermint for proofs, unless we burden all app devs +with exposing Tendermint proof stuff. Also seems less complex to lock down one +server than two, but granted it makes querying a bit more kludgy since it needs +to be passed as a `Query`. Also, **having a very standard rpc interface means +the light-client can work with all apps and handle proofs**. The only +app-specific logic is decoding the binary data to a more readable form (eg. +json). This is a huge advantage for code-reuse and standardization. + +## Decision + +We dont expose an RPC server on any of our ABCI-apps. + +## Status + +Implemented + +## Consequences + +### Positive + +- Unified interface for all apps + +### Negative + +- `Query` interface + +### Neutral diff --git a/sei-tendermint/docs/architecture/adr-004-historical-validators.md b/sei-tendermint/docs/architecture/adr-004-historical-validators.md new file mode 100644 index 0000000000..7341c47352 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-004-historical-validators.md @@ -0,0 +1,38 @@ +# ADR 004: Historical Validators + +## Context + +Right now, we can query the present validator set, but there is no history. +If you were offline for a long time, there is no way to reconstruct past validators. This is needed for the light client and we agreed needs enhancement of the API. + +## Decision + +For every block, store a new structure that contains either the latest validator set, +or the height of the last block for which the validator set changed. Note this is not +the height of the block which returned the validator set change itself, but the next block, +ie. the first block it comes into effect for. + +Storing the validators will be handled by the `state` package. + +At some point in the future, we may consider more efficient storage in the case where the validators +are updated frequently - for instance by only saving the diffs, rather than the whole set. + +An alternative approach suggested keeping the validator set, or diffs of it, in a merkle IAVL tree. +While it might afford cheaper proofs that a validator set has not changed, it would be more complex, +and likely less efficient. + +## Status + +Implemented + +## Consequences + +### Positive + +- Can query old validator sets, with proof. + +### Negative + +- Writes an extra structure to disk with every block. + +### Neutral diff --git a/sei-tendermint/docs/architecture/adr-005-consensus-params.md b/sei-tendermint/docs/architecture/adr-005-consensus-params.md new file mode 100644 index 0000000000..550e9fc0cb --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-005-consensus-params.md @@ -0,0 +1,85 @@ +# ADR 005: Consensus Params + +## Context + +Consensus critical parameters controlling blockchain capacity have until now been hard coded, loaded from a local config, or neglected. +Since they may be need to be different in different networks, and potentially to evolve over time within +networks, we seek to initialize them in a genesis file, and expose them through the ABCI. + +While we have some specific parameters now, like maximum block and transaction size, we expect to have more in the future, +such as a period over which evidence is valid, or the frequency of checkpoints. + +## Decision + +### ConsensusParams + +No consensus critical parameters should ever be found in the `config.toml`. + +A new `ConsensusParams` is optionally included in the `genesis.json` file, +and loaded into the `State`. Any items not included are set to their default value. +A value of 0 is undefined (see ABCI, below). A value of -1 is used to indicate the parameter does not apply. +The parameters are used to determine the validity of a block (and tx) via the union of all relevant parameters. + +``` +type ConsensusParams struct { + BlockSize + TxSize + BlockGossip +} + +type BlockSize struct { + MaxBytes int + MaxTxs int + MaxGas int +} + +type TxSize struct { + MaxBytes int + MaxGas int +} + +type BlockGossip struct { + BlockPartSizeBytes int +} +``` + +The `ConsensusParams` can evolve over time by adding new structs that cover different aspects of the consensus rules. + +The `BlockPartSizeBytes` and the `BlockSize.MaxBytes` are enforced to be greater than 0. +The former because we need a part size, the latter so that we always have at least some sanity check over the size of blocks. + +### ABCI + +#### InitChain + +InitChain currently takes the initial validator set. It should be extended to also take parts of the ConsensusParams. +There is some case to be made for it to take the entire Genesis, except there may be things in the genesis, +like the BlockPartSize, that the app shouldn't really know about. + +#### EndBlock + +The EndBlock response includes a `ConsensusParams`, which includes BlockSize and TxSize, but not BlockGossip. +Other param struct can be added to `ConsensusParams` in the future. +The `0` value is used to denote no change. +Any other value will update that parameter in the `State.ConsensusParams`, to be applied for the next block. +Tendermint should have hard-coded upper limits as sanity checks. + +## Status + +Implemented + +## Consequences + +### Positive + +- Alternative capacity limits and consensus parameters can be specified without re-compiling the software. +- They can also change over time under the control of the application + +### Negative + +- More exposed parameters is more complexity +- Different rules at different heights in the blockchain complicates fast sync + +### Neutral + +- The TxSize, which checks validity, may be in conflict with the config's `max_block_size_tx`, which determines proposal sizes diff --git a/sei-tendermint/docs/architecture/adr-006-trust-metric.md b/sei-tendermint/docs/architecture/adr-006-trust-metric.md new file mode 100644 index 0000000000..608978207b --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-006-trust-metric.md @@ -0,0 +1,229 @@ +# ADR 006: Trust Metric Design + +## Context + +The proposed trust metric will allow Tendermint to maintain local trust rankings for peers it has directly interacted with, which can then be used to implement soft security controls. The calculations were obtained from the [TrustGuard](https://dl.acm.org/citation.cfm?id=1060808) project. + +### Background + +The Tendermint Core project developers would like to improve Tendermint security and reliability by keeping track of the level of trustworthiness peers have demonstrated within the peer-to-peer network. This way, undesirable outcomes from peers will not immediately result in them being dropped from the network (potentially causing drastic changes to take place). Instead, peers behavior can be monitored with appropriate metrics and be removed from the network once Tendermint Core is certain the peer is a threat. For example, when the PEXReactor makes a request for peers network addresses from a already known peer, and the returned network addresses are unreachable, this untrustworthy behavior should be tracked. Returning a few bad network addresses probably shouldn’t cause a peer to be dropped, while excessive amounts of this behavior does qualify the peer being dropped. + +Trust metrics can be circumvented by malicious nodes through the use of strategic oscillation techniques, which adapts the malicious node’s behavior pattern in order to maximize its goals. For instance, if the malicious node learns that the time interval of the Tendermint trust metric is _X_ hours, then it could wait _X_ hours in-between malicious activities. We could try to combat this issue by increasing the interval length, yet this will make the system less adaptive to recent events. + +Instead, having shorter intervals, but keeping a history of interval values, will give our metric the flexibility needed in order to keep the network stable, while also making it resilient against a strategic malicious node in the Tendermint peer-to-peer network. Also, the metric can access trust data over a rather long period of time while not greatly increasing its history size by aggregating older history values over a larger number of intervals, and at the same time, maintain great precision for the recent intervals. This approach is referred to as fading memories, and closely resembles the way human beings remember their experiences. The trade-off to using history data is that the interval values should be preserved in-between executions of the node. + +### References + +S. Mudhakar, L. Xiong, and L. Liu, “TrustGuard: Countering Vulnerabilities in Reputation Management for Decentralized Overlay Networks,” in _Proceedings of the 14th international conference on World Wide Web, pp. 422-431_, May 2005. + +## Decision + +The proposed trust metric will allow a developer to inform the trust metric store of all good and bad events relevant to a peer's behavior, and at any time, the metric can be queried for a peer's current trust ranking. + +The three subsections below will cover the process being considered for calculating the trust ranking, the concept of the trust metric store, and the interface for the trust metric. + +### Proposed Process + +The proposed trust metric will count good and bad events relevant to the object, and calculate the percent of counters that are good over an interval with a predefined duration. This is the procedure that will continue for the life of the trust metric. When the trust metric is queried for the current **trust value**, a resilient equation will be utilized to perform the calculation. + +The equation being proposed resembles a Proportional-Integral-Derivative (PID) controller used in control systems. The proportional component allows us to be sensitive to the value of the most recent interval, while the integral component allows us to incorporate trust values stored in the history data, and the derivative component allows us to give weight to sudden changes in the behavior of a peer. We compute the trust value of a peer in interval i based on its current trust ranking, its trust rating history prior to interval _i_ (over the past _maxH_ number of intervals) and its trust ranking fluctuation. We will break up the equation into the three components. + +```math +(1) Proportional Value = a * R[i] +``` + +where _R_[*i*] denotes the raw trust value at time interval _i_ (where _i_ == 0 being current time) and _a_ is the weight applied to the contribution of the current reports. The next component of our equation uses a weighted sum over the last _maxH_ intervals to calculate the history value for time _i_: + +`H[i] =` ![formula1](img/formula1.png "Weighted Sum Formula") + +The weights can be chosen either optimistically or pessimistically. An optimistic weight creates larger weights for newer history data values, while the the pessimistic weight creates larger weights for time intervals with lower scores. The default weights used during the calculation of the history value are optimistic and calculated as _Wk_ = 0.8^_k_, for time interval _k_. With the history value available, we can now finish calculating the integral value: + +```math +(2) Integral Value = b * H[i] +``` + +Where _H_[*i*] denotes the history value at time interval _i_ and _b_ is the weight applied to the contribution of past performance for the object being measured. The derivative component will be calculated as follows: + +```math +D[i] = R[i] – H[i] + +(3) Derivative Value = c(D[i]) * D[i] +``` + +Where the value of _c_ is selected based on the _D_[*i*] value relative to zero. The default selection process makes _c_ equal to 0 unless _D_[*i*] is a negative value, in which case c is equal to 1. The result is that the maximum penalty is applied when current behavior is lower than previously experienced behavior. If the current behavior is better than the previously experienced behavior, then the Derivative Value has no impact on the trust value. With the three components brought together, our trust value equation is calculated as follows: + +```math +TrustValue[i] = a * R[i] + b * H[i] + c(D[i]) * D[i] +``` + +As a performance optimization that will keep the amount of raw interval data being saved to a reasonable size of _m_, while allowing us to represent 2^_m_ - 1 history intervals, we can employ the fading memories technique that will trade space and time complexity for the precision of the history data values by summarizing larger quantities of less recent values. While our equation above attempts to access up to _maxH_ (which can be 2^_m_ - 1), we will map those requests down to _m_ values using equation 4 below: + +```math +(4) j = index, where index > 0 +``` + +Where _j_ is one of _(0, 1, 2, … , m – 1)_ indices used to access history interval data. Now we can access the raw intervals using the following calculations: + +```math +R[0] = raw data for current time interval +``` + +`R[j] =` ![formula2](img/formula2.png "Fading Memories Formula") + +### Trust Metric Store + +Similar to the P2P subsystem AddrBook, the trust metric store will maintain information relevant to Tendermint peers. Additionally, the trust metric store will ensure that trust metrics will only be active for peers that a node is currently and directly engaged with. + +Reactors will provide a peer key to the trust metric store in order to retrieve the associated trust metric. The trust metric can then record new positive and negative events experienced by the reactor, as well as provided the current trust score calculated by the metric. + +When the node is shutting down, the trust metric store will save history data for trust metrics associated with all known peers. This saved information allows experiences with a peer to be preserved across node executions, which can span a tracking windows of days or weeks. The trust history data is loaded automatically during OnStart. + +### Interface Detailed Design + +Each trust metric allows for the recording of positive/negative events, querying the current trust value/score, and the stopping/pausing of tracking over time intervals. This can be seen below: + +```go +// TrustMetric - keeps track of peer reliability +type TrustMetric struct { + // Private elements. +} + +// Pause tells the metric to pause recording data over time intervals. +// All method calls that indicate events will unpause the metric +func (tm *TrustMetric) Pause() {} + +// Stop tells the metric to stop recording data over time intervals +func (tm *TrustMetric) Stop() {} + +// BadEvents indicates that an undesirable event(s) took place +func (tm *TrustMetric) BadEvents(num int) {} + +// GoodEvents indicates that a desirable event(s) took place +func (tm *TrustMetric) GoodEvents(num int) {} + +// TrustValue gets the dependable trust value; always between 0 and 1 +func (tm *TrustMetric) TrustValue() float64 {} + +// TrustScore gets a score based on the trust value always between 0 and 100 +func (tm *TrustMetric) TrustScore() int {} + +// NewMetric returns a trust metric with the default configuration +func NewMetric() *TrustMetric {} + +//------------------------------------------------------------------------------------------------ +// For example + +tm := NewMetric() + +tm.BadEvents(1) +score := tm.TrustScore() + +tm.Stop() +``` + +Some of the trust metric parameters can be configured. The weight values should probably be left alone in more cases, yet the time durations for the tracking window and individual time interval should be considered. + +```go +// TrustMetricConfig - Configures the weight functions and time intervals for the metric +type TrustMetricConfig struct { + // Determines the percentage given to current behavior + ProportionalWeight float64 + + // Determines the percentage given to prior behavior + IntegralWeight float64 + + // The window of time that the trust metric will track events across. + // This can be set to cover many days without issue + TrackingWindow time.Duration + + // Each interval should be short for adapability. + // Less than 30 seconds is too sensitive, + // and greater than 5 minutes will make the metric numb + IntervalLength time.Duration +} + +// DefaultConfig returns a config with values that have been tested and produce desirable results +func DefaultConfig() TrustMetricConfig {} + +// NewMetricWithConfig returns a trust metric with a custom configuration +func NewMetricWithConfig(tmc TrustMetricConfig) *TrustMetric {} + +//------------------------------------------------------------------------------------------------ +// For example + +config := TrustMetricConfig{ + TrackingWindow: time.Minute * 60 * 24, // one day + IntervalLength: time.Minute * 2, +} + +tm := NewMetricWithConfig(config) + +tm.BadEvents(10) +tm.Pause() +tm.GoodEvents(1) // becomes active again +``` + +A trust metric store should be created with a DB that has persistent storage so it can save history data across node executions. All trust metrics instantiated by the store will be created with the provided TrustMetricConfig configuration. + +When you attempt to fetch the trust metric for a peer, and an entry does not exist in the trust metric store, a new metric is automatically created and the entry made within the store. + +In additional to the fetching method, GetPeerTrustMetric, the trust metric store provides a method to call when a peer has disconnected from the node. This is so the metric can be paused (history data will not be saved) for periods of time when the node is not having direct experiences with the peer. + +```go +// TrustMetricStore - Manages all trust metrics for peers +type TrustMetricStore struct { + cmn.BaseService + + // Private elements +} + +// OnStart implements Service +func (tms *TrustMetricStore) OnStart(context.Context) error { return nil } + +// OnStop implements Service +func (tms *TrustMetricStore) OnStop() {} + +// NewTrustMetricStore returns a store that saves data to the DB +// and uses the config when creating new trust metrics +func NewTrustMetricStore(db dbm.DB, tmc TrustMetricConfig) *TrustMetricStore {} + +// Size returns the number of entries in the trust metric store +func (tms *TrustMetricStore) Size() int {} + +// GetPeerTrustMetric returns a trust metric by peer key +func (tms *TrustMetricStore) GetPeerTrustMetric(key string) *TrustMetric {} + +// PeerDisconnected pauses the trust metric associated with the peer identified by the key +func (tms *TrustMetricStore) PeerDisconnected(key string) {} + +//------------------------------------------------------------------------------------------------ +// For example + +db := dbm.NewDB("trusthistory", "goleveldb", dirPathStr) +tms := NewTrustMetricStore(db, DefaultConfig()) + +tm := tms.GetPeerTrustMetric(key) +tm.BadEvents(1) + +tms.PeerDisconnected(key) +``` + +## Status + +Approved. + +## Consequences + +### Positive + +- The trust metric will allow Tendermint to make non-binary security and reliability decisions +- Will help Tendermint implement deterrents that provide soft security controls, yet avoids disruption on the network +- Will provide useful profiling information when analyzing performance over time related to peer interaction + +### Negative + +- Requires saving the trust metric history data across node executions + +### Neutral + +- Keep in mind that, good events need to be recorded just as bad events do using this implementation diff --git a/sei-tendermint/docs/architecture/adr-007-trust-metric-usage.md b/sei-tendermint/docs/architecture/adr-007-trust-metric-usage.md new file mode 100644 index 0000000000..de3a088cb0 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-007-trust-metric-usage.md @@ -0,0 +1,106 @@ +# ADR 007: Trust Metric Usage Guide + +## Context + +Tendermint is required to monitor peer quality in order to inform its peer dialing and peer exchange strategies. + +When a node first connects to the network, it is important that it can quickly find good peers. +Thus, while a node has fewer connections, it should prioritize connecting to higher quality peers. +As the node becomes well connected to the rest of the network, it can dial lesser known or lesser +quality peers and help assess their quality. Similarly, when queried for peers, a node should make +sure they dont return low quality peers. + +Peer quality can be tracked using a trust metric that flags certain behaviours as good or bad. When enough +bad behaviour accumulates, we can mark the peer as bad and disconnect. +For example, when the PEXReactor makes a request for peers network addresses from an already known peer, and the returned network addresses are unreachable, this undesirable behavior should be tracked. Returning a few bad network addresses probably shouldn’t cause a peer to be dropped, while excessive amounts of this behavior does qualify the peer for removal. The originally proposed approach and design document for the trust metric can be found in the [ADR 006](adr-006-trust-metric.md) document. + +The trust metric implementation allows a developer to obtain a peer's trust metric from a trust metric store, and track good and bad events relevant to a peer's behavior, and at any time, the peer's metric can be queried for a current trust value. The current trust value is calculated with a formula that utilizes current behavior, previous behavior, and change between the two. Current behavior is calculated as the percentage of good behavior within a time interval. The time interval is short; probably set between 30 seconds and 5 minutes. On the other hand, the historic data can estimate a peer's behavior over days worth of tracking. At the end of a time interval, the current behavior becomes part of the historic data, and a new time interval begins with the good and bad counters reset to zero. + +These are some important things to keep in mind regarding how the trust metrics handle time intervals and scoring: + +- Each new time interval begins with a perfect score +- Bad events quickly bring the score down and good events cause the score to slowly rise +- When the time interval is over, the percentage of good events becomes historic data. + +Some useful information about the inner workings of the trust metric: + +- When a trust metric is first instantiated, a timer (ticker) periodically fires in order to handle transitions between trust metric time intervals +- If a peer is disconnected from a node, the timer should be paused, since the node is no longer connected to that peer +- The ability to pause the metric is supported with the store **PeerDisconnected** method and the metric **Pause** method +- After a pause, if a good or bad event method is called on a metric, it automatically becomes unpaused and begins a new time interval. + +## Decision + +The trust metric capability is now available, yet, it still leaves the question of how should it be applied throughout Tendermint in order to properly track the quality of peers? + +### Proposed Process + +Peers are managed using an address book and a trust metric: + +- The address book keeps a record of peers and provides selection methods +- The trust metric tracks the quality of the peers + +#### Presence in Address Book + +Outbound peers are added to the address book before they are dialed, +and inbound peers are added once the peer connection is set up. +Peers are also added to the address book when they are received in response to +a pexRequestMessage. + +While a node has less than `needAddressThreshold`, it will periodically request more, +via pexRequestMessage, from randomly selected peers and from newly dialed outbound peers. + +When a new address is added to an address book that has more than `0.5*needAddressThreshold` addresses, +then with some low probability, a randomly chosen low quality peer is removed. + +#### Outbound Peers + +Peers attempt to maintain a minimum number of outbound connections by +repeatedly querying the address book for peers to connect to. +While a node has few to no outbound connections, the address book is biased to return +higher quality peers. As the node increases the number of outbound connections, +the address book is biased to return less-vetted or lower-quality peers. + +#### Inbound Peers + +Peers also maintain a maximum number of total connections, MaxNumPeers. +If a peer has MaxNumPeers, new incoming connections will be accepted with low probability. +When such a new connection is accepted, the peer disconnects from a probabilistically chosen low ranking peer +so it does not exceed MaxNumPeers. + +#### Peer Exchange + +When a peer receives a pexRequestMessage, it returns a random sample of high quality peers from the address book. Peers with no score or low score should not be inclided in a response to pexRequestMessage. + +#### Peer Quality + +Peer quality is tracked in the connection and across the reactors by storing the TrustMetric in the peer's +thread safe Data store. + +Peer behaviour is then defined as one of the following: + +- Fatal - something outright malicious that causes us to disconnect the peer and ban it from the address book for some amount of time +- Bad - Any kind of timeout, messages that don't unmarshal, fail other validity checks, or messages we didn't ask for or aren't expecting (usually worth one bad event) +- Neutral - Unknown channels/message types/version upgrades (no good or bad events recorded) +- Correct - Normal correct behavior (worth one good event) +- Good - some random majority of peers per reactor sending us useful messages (worth more than one good event). + +Note that Fatal behaviour causes us to remove the peer, and neutral behaviour does not affect the score. + +## Status + +Proposed. + +## Consequences + +### Positive + +- Bringing the address book and trust metric store together will cause the network to be built in a way that encourages greater security and reliability. + +### Negative + +- TBD + +### Neutral + +- Keep in mind that, good events need to be recorded just as bad events do using this implementation. diff --git a/sei-tendermint/docs/architecture/adr-008-priv-validator.md b/sei-tendermint/docs/architecture/adr-008-priv-validator.md new file mode 100644 index 0000000000..a3d31048a0 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-008-priv-validator.md @@ -0,0 +1,35 @@ +# ADR 008: SocketPV + +Tendermint node's should support only two in-process PrivValidator +implementations: + +- FilePV uses an unencrypted private key in a "priv_validator.json" file - no + configuration required (just `tendermint init validator`). +- TCPVal and IPCVal use TCP and Unix sockets respectively to send signing requests + to another process - the user is responsible for starting that process themselves. + +Both TCPVal and IPCVal addresses can be provided via flags at the command line +or in the configuration file; TCPVal addresses must be of the form +`tcp://:` and IPCVal addresses `unix:///path/to/file.sock` - +doing so will cause Tendermint to ignore any private validator files. + +TCPVal will listen on the given address for incoming connections from an external +private validator process. It will halt any operation until at least one external +process successfully connected. + +The external priv_validator process will dial the address to connect to +Tendermint, and then Tendermint will send requests on the ensuing connection to +sign votes and proposals. Thus the external process initiates the connection, +but the Tendermint process makes all requests. In a later stage we're going to +support multiple validators for fault tolerance. To prevent double signing they +need to be synced, which is deferred to an external solution (see #1185). + +Conversely, IPCVal will make an outbound connection to an existing socket opened +by the external validator process. + +In addition, Tendermint will provide implementations that can be run in that +external process. These include: + +- FilePV will encrypt the private key, and the user must enter password to + decrypt key when process is started. +- LedgerPV uses a Ledger Nano S to handle all signing. diff --git a/sei-tendermint/docs/architecture/adr-009-ABCI-design.md b/sei-tendermint/docs/architecture/adr-009-ABCI-design.md new file mode 100644 index 0000000000..6acd319910 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-009-ABCI-design.md @@ -0,0 +1,271 @@ +# ADR 009: ABCI UX Improvements + +## Changelog + +23-06-2018: Some minor fixes from review +07-06-2018: Some updates based on discussion with Jae +07-06-2018: Initial draft to match what was released in ABCI v0.11 + +## Context + +The ABCI was first introduced in late 2015. It's purpose is to be: + +- a generic interface between state machines and their replication engines +- agnostic to the language the state machine is written in +- agnostic to the replication engine that drives it + +This means ABCI should provide an interface for both pluggable applications and +pluggable consensus engines. + +To achieve this, it uses Protocol Buffers (proto3) for message types. The dominant +implementation is in Go. + +After some recent discussions with the community on github, the following were +identified as pain points: + +- Amino encoded types +- Managing validator sets +- Imports in the protobuf file + +See the [references](#references) for more. + +### Imports + +The native proto library in Go generates inflexible and verbose code. +Many in the Go community have adopted a fork called +[gogoproto](https://github.com/gogo/protobuf) that provides a +variety of features aimed to improve the developer experience. +While `gogoproto` is nice, it creates an additional dependency, and compiling +the protobuf types for other languages has been reported to fail when `gogoproto` is used. + +### Amino + +Amino is an encoding protocol designed to improve over insufficiencies of protobuf. +It's goal is to be proto4. + +Many people are frustrated by incompatibility with protobuf, +and with the requirement for Amino to be used at all within ABCI. + +We intend to make Amino successful enough that we can eventually use it for ABCI +message types directly. By then it should be called proto4. In the meantime, +we want it to be easy to use. + +### PubKey + +PubKeys are encoded using Amino (and before that, go-wire). +Ideally, PubKeys are an interface type where we don't know all the +implementation types, so its unfitting to use `oneof` or `enum`. + +### Addresses + +The address for ED25519 pubkey is the RIPEMD160 of the Amino +encoded pubkey. This introduces an Amino dependency in the address generation, +a functionality that is widely required and should be easy to compute as +possible. + +### Validators + +To change the validator set, applications can return a list of validator updates +with ResponseEndBlock. In these updates, the public key _must_ be included, +because Tendermint requires the public key to verify validator signatures. This +means ABCI developers have to work with PubKeys. That said, it would also be +convenient to work with address information, and for it to be simple to do so. + +### AbsentValidators + +Tendermint also provides a list of validators in BeginBlock who did not sign the +last block. This allows applications to reflect availability behaviour in the +application, for instance by punishing validators for not having votes included +in commits. + +### InitChain + +Tendermint passes in a list of validators here, and nothing else. It would +benefit the application to be able to control the initial validator set. For +instance the genesis file could include application-based information about the +initial validator set that the application could process to determine the +initial validator set. Additionally, InitChain would benefit from getting all +the genesis information. + +### Header + +ABCI provides the Header in RequestBeginBlock so the application can have +important information about the latest state of the blockchain. + +## Decision + +### Imports + +Move away from gogoproto. In the short term, we will just maintain a second +protobuf file without the gogoproto annotations. In the medium term, we will +make copies of all the structs in Golang and shuttle back and forth. In the long +term, we will use Amino. + +### Amino + +To simplify ABCI application development in the short term, +Amino will be completely removed from the ABCI: + +- It will not be required for PubKey encoding +- It will not be required for computing PubKey addresses + +That said, we are working to make Amino a huge success, and to become proto4. +To facilitate adoption and cross-language compatibility in the near-term, Amino +v1 will: + +- be fully compatible with the subset of proto3 that excludes `oneof` +- use the Amino prefix system to provide interface types, as opposed to `oneof` + style union types. + +That said, an Amino v2 will be worked on to improve the performance of the +format and its useability in cryptographic applications. + +### PubKey + +Encoding schemes infect software. As a generic middleware, ABCI aims to have +some cross scheme compatibility. For this it has no choice but to include opaque +bytes from time to time. While we will not enforce Amino encoding for these +bytes yet, we need to provide a type system. The simplest way to do this is to +use a type string. + +PubKey will now look like: + +``` +message PubKey { + string type + bytes data +} +``` + +where `type` can be: + +- "ed225519", with `data = ` +- "secp256k1", with `data = <33-byte OpenSSL compressed pubkey>` + +As we want to retain flexibility here, and since ideally, PubKey would be an +interface type, we do not use `enum` or `oneof`. + +### Addresses + +To simplify and improve computing addresses, we change it to the first 20-bytes of the SHA256 +of the raw 32-byte public key. + +We continue to use the Bitcoin address scheme for secp256k1 keys. + +### Validators + +Add a `bytes address` field: + +``` +message Validator { + bytes address + PubKey pub_key + int64 power +} +``` + +### RequestBeginBlock and AbsentValidators + +To simplify this, RequestBeginBlock will include the complete validator set, +including the address, and voting power of each validator, along +with a boolean for whether or not they voted: + +``` +message RequestBeginBlock { + bytes hash + Header header + LastCommitInfo last_commit_info + repeated Evidence byzantine_validators +} + +message LastCommitInfo { + int32 CommitRound + repeated SigningValidator validators +} + +message SigningValidator { + Validator validator + bool signed_last_block +} +``` + +Note that in Validators in RequestBeginBlock, we DO NOT include public keys. Public keys are +larger than addresses and in the future, with quantum computers, will be much +larger. The overhead of passing them, especially during fast-sync, is +significant. + +Additional, addresses are changing to be simpler to compute, further removing +the need to include pubkeys here. + +In short, ABCI developers must be aware of both addresses and public keys. + +### ResponseEndBlock + +Since ResponseEndBlock includes Validator, it must now include their address. + +### InitChain + +Change RequestInitChain to give the app all the information from the genesis file: + +``` +message RequestInitChain { + int64 time + string chain_id + ConsensusParams consensus_params + repeated Validator validators + bytes app_state_bytes +} +``` + +Change ResponseInitChain to allow the app to specify the initial validator set +and consensus parameters. + +``` +message ResponseInitChain { + ConsensusParams consensus_params + repeated Validator validators +} +``` + +### Header + +Now that Tendermint Amino will be compatible with proto3, the Header in ABCI +should exactly match the Tendermint header - they will then be encoded +identically in ABCI and in Tendermint Core. + +## Status + +Implemented + +## Consequences + +### Positive + +- Easier for developers to build on the ABCI +- ABCI and Tendermint headers are identically serialized + +### Negative + +- Maintenance overhead of alternative type encoding scheme +- Performance overhead of passing all validator info every block (at least its + only addresses, and not also pubkeys) +- Maintenance overhead of duplicate types + +### Neutral + +- ABCI developers must know about validator addresses + +## References + +- [ABCI v0.10.3 Specification (before this + proposal)](https://github.com/tendermint/abci/blob/v0.10.3/specification.rst) +- [ABCI v0.11.0 Specification (implementing first draft of this + proposal)](https://github.com/tendermint/abci/blob/v0.11.0/specification.md) +- [Ed25519 addresses](https://github.com/tendermint/go-crypto/issues/103) +- [InitChain contains the + Genesis](https://github.com/tendermint/abci/issues/216) +- [PubKeys](https://github.com/tendermint/tendermint/issues/1524) +- [Notes on + Header](https://github.com/tendermint/tendermint/issues/1605) +- [Gogoproto issues](https://github.com/tendermint/abci/issues/256) +- [Absent Validators](https://github.com/tendermint/abci/issues/231) diff --git a/sei-tendermint/docs/architecture/adr-010-crypto-changes.md b/sei-tendermint/docs/architecture/adr-010-crypto-changes.md new file mode 100644 index 0000000000..41d15da354 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-010-crypto-changes.md @@ -0,0 +1,77 @@ +# ADR 010: Crypto Changes + +## Context + +Tendermint is a cryptographic protocol that uses and composes a variety of cryptographic primitives. + +After nearly 4 years of development, Tendermint has recently undergone multiple security reviews to search for vulnerabilities and to assess the the use and composition of cryptographic primitives. + +### Hash Functions + +Tendermint uses RIPEMD160 universally as a hash function, most notably in its Merkle tree implementation. + +RIPEMD160 was chosen because it provides the shortest fingerprint that is long enough to be considered secure (ie. birthday bound of 80-bits). +It was also developed in the open academic community, unlike NSA-designed algorithms like SHA256. + +That said, the cryptographic community appears to unanimously agree on the security of SHA256. It has become a universal standard, especially now that SHA1 is broken, being required in TLS connections and having optimized support in hardware. + +### Merkle Trees + +Tendermint uses a simple Merkle tree to compute digests of large structures like transaction batches +and even blockchain headers. The Merkle tree length prefixes byte arrays before concatenating and hashing them. +It uses RIPEMD160. + +### Addresses + +ED25519 addresses are computed using the RIPEMD160 of the Amino encoding of the public key. +RIPEMD160 is generally considered an outdated hash function, and is much slower +than more modern functions like SHA256 or Blake2. + +### Authenticated Encryption + +Tendermint P2P connections use authenticated encryption to provide privacy and authentication in the communications. +This is done using the simple Station-to-Station protocol with the NaCL Ed25519 library. + +While there have been no vulnerabilities found in the implementation, there are some concerns: + +- NaCL uses Salsa20, a not-widely used and relatively out-dated stream cipher that has been obsoleted by ChaCha20 +- Connections use RIPEMD160 to compute a value that is used for the encryption nonce with subtle requirements on how it's used + +## Decision + +### Hash Functions + +Use the first 20-bytes of the SHA256 hash instead of RIPEMD160 for everything + +### Merkle Trees + +TODO + +### Addresses + +Compute ED25519 addresses as the first 20-bytes of the SHA256 of the raw 32-byte public key + +### Authenticated Encryption + +Make the following changes: + +- Use xChaCha20 instead of xSalsa20 - https://github.com/tendermint/tendermint/issues/1124 +- Use an HKDF instead of RIPEMD160 to compute nonces - https://github.com/tendermint/tendermint/issues/1165 + +## Status + +Implemented + +## Consequences + +### Positive + +- More modern and standard cryptographic functions with wider adoption and hardware acceleration + +### Negative + +- Exact authenticated encryption construction isn't already provided in a well-used library + +### Neutral + +## References diff --git a/sei-tendermint/docs/architecture/adr-011-monitoring.md b/sei-tendermint/docs/architecture/adr-011-monitoring.md new file mode 100644 index 0000000000..e4b62c261f --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-011-monitoring.md @@ -0,0 +1,116 @@ +# ADR 011: Monitoring + +## Changelog + +08-06-2018: Initial draft +11-06-2018: Reorg after @xla comments +13-06-2018: Clarification about usage of labels + +## Context + +In order to bring more visibility into Tendermint, we would like it to report +metrics and, maybe later, traces of transactions and RPC queries. See +https://github.com/tendermint/tendermint/issues/986. + +A few solutions were considered: + +1. [Prometheus](https://prometheus.io) + a) Prometheus API + b) [go-kit metrics package](https://github.com/go-kit/kit/tree/master/metrics) as an interface plus Prometheus + c) [telegraf](https://github.com/influxdata/telegraf) + d) new service, which will listen to events emitted by pubsub and report metrics +2. [OpenCensus](https://opencensus.io/introduction/) + +### 1. Prometheus + +Prometheus seems to be the most popular product out there for monitoring. It has +a Go client library, powerful queries, alerts. + +**a) Prometheus API** + +We can commit to using Prometheus in Tendermint, but I think Tendermint users +should be free to choose whatever monitoring tool they feel will better suit +their needs (if they don't have existing one already). So we should try to +abstract interface enough so people can switch between Prometheus and other +similar tools. + +**b) go-kit metrics package as an interface** + +metrics package provides a set of uniform interfaces for service +instrumentation and offers adapters to popular metrics packages: + +https://godoc.org/github.com/go-kit/kit/metrics#pkg-subdirectories + +Comparing to Prometheus API, we're losing customisability and control, but gaining +freedom in choosing any instrument from the above list given we will extract +metrics creation into a separate function (see "providers" in node/node.go). + +**c) telegraf** + +Unlike already discussed options, telegraf does not require modifying Tendermint +source code. You create something called an input plugin, which polls +Tendermint RPC every second and calculates the metrics itself. + +While it may sound good, but some metrics we want to report are not exposed via +RPC or pubsub, therefore can't be accessed externally. + +**d) service, listening to pubsub** + +Same issue as the above. + +### 2. opencensus + +opencensus provides both metrics and tracing, which may be important in the +future. It's API looks different from go-kit and Prometheus, but looks like it +covers everything we need. + +Unfortunately, OpenCensus go client does not define any +interfaces, so if we want to abstract away metrics we +will need to write interfaces ourselves. + +### List of metrics + +| | Name | Type | Description | +| --- | ------------------------------------ | ------ | ----------------------------------------------------------------------------- | +| A | consensus_height | Gauge | | +| A | consensus_validators | Gauge | Number of validators who signed | +| A | consensus_validators_power | Gauge | Total voting power of all validators | +| A | consensus_missing_validators | Gauge | Number of validators who did not sign | +| A | consensus_missing_validators_power | Gauge | Total voting power of the missing validators | +| A | consensus_byzantine_validators | Gauge | Number of validators who tried to double sign | +| A | consensus_byzantine_validators_power | Gauge | Total voting power of the byzantine validators | +| A | consensus_block_interval | Timing | Time between this and last block (Block.Header.Time) | +| | consensus_block_time | Timing | Time to create a block (from creating a proposal to commit) | +| | consensus_time_between_blocks | Timing | Time between committing last block and (receiving proposal creating proposal) | +| A | consensus_rounds | Gauge | Number of rounds | +| | consensus_prevotes | Gauge | | +| | consensus_precommits | Gauge | | +| | consensus_prevotes_total_power | Gauge | | +| | consensus_precommits_total_power | Gauge | | +| A | consensus_num_txs | Gauge | | +| A | mempool_size | Gauge | | +| A | consensus_total_txs | Gauge | | +| A | consensus_block_size | Gauge | In bytes | +| A | p2p_peers | Gauge | Number of peers node's connected to | + +`A` - will be implemented in the fist place. + +**Proposed solution** + +## Status + +Implemented + +## Consequences + +### Positive + +Better visibility, support of variety of monitoring backends + +### Negative + +One more library to audit, messing metrics reporting code with business domain. + +### Neutral + +- diff --git a/sei-tendermint/docs/architecture/adr-012-peer-transport.md b/sei-tendermint/docs/architecture/adr-012-peer-transport.md new file mode 100644 index 0000000000..1cf4fb80b8 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-012-peer-transport.md @@ -0,0 +1,113 @@ +# ADR 012: PeerTransport + +## Context + +One of the more apparent problems with the current architecture in the p2p +package is that there is no clear separation of concerns between different +components. Most notably the `Switch` is currently doing physical connection +handling. An artifact is the dependency of the Switch on +`[config.P2PConfig`](https://github.com/tendermint/tendermint/blob/05a76fb517f50da27b4bfcdc7b4cf185fc61eff6/config/config.go#L272-L339). + +Addresses: + +- [#2046](https://github.com/tendermint/tendermint/issues/2046) +- [#2047](https://github.com/tendermint/tendermint/issues/2047) + +First iteraton in [#2067](https://github.com/tendermint/tendermint/issues/2067) + +## Decision + +Transport concerns will be handled by a new component (`PeerTransport`) which +will provide Peers at its boundary to the caller. In turn `Switch` will use +this new component accept new `Peer`s and dial them based on `NetAddress`. + +### PeerTransport + +Responsible for emitting and connecting to Peers. The implementation of `Peer` +is left to the transport, which implies that the chosen transport dictates the +characteristics of the implementation handed back to the `Switch`. Each +transport implementation is responsible to filter establishing peers specific +to its domain, for the default multiplexed implementation the following will +apply: + +- connections from our own node +- handshake fails +- upgrade to secret connection fails +- prevent duplicate ip +- prevent duplicate id +- nodeinfo incompatibility + +```go +// PeerTransport proxies incoming and outgoing peer connections. +type PeerTransport interface { + // Accept returns a newly connected Peer. + Accept() (Peer, error) + + // Dial connects to a Peer. + Dial(NetAddress) (Peer, error) +} + +// EXAMPLE OF DEFAULT IMPLEMENTATION + +// multiplexTransport accepts tcp connections and upgrades to multiplexted +// peers. +type multiplexTransport struct { + listener net.Listener + + acceptc chan accept + closec <-chan struct{} + listenc <-chan struct{} + + dialTimeout time.Duration + handshakeTimeout time.Duration + nodeAddr NetAddress + nodeInfo NodeInfo + nodeKey NodeKey + + // TODO(xla): Remove when MConnection is refactored into mPeer. + mConfig conn.MConnConfig +} + +var _ PeerTransport = (*multiplexTransport)(nil) + +// NewMTransport returns network connected multiplexed peers. +func NewMTransport( + nodeAddr NetAddress, + nodeInfo NodeInfo, + nodeKey NodeKey, +) *multiplexTransport +``` + +### Switch + +From now the Switch will depend on a fully setup `PeerTransport` to +retrieve/reach out to its peers. As the more low-level concerns are pushed to +the transport, we can omit passing the `config.P2PConfig` to the Switch. + +```go +func NewSwitch(transport PeerTransport, opts ...SwitchOption) *Switch +``` + +## Status + +In Review. + +## Consequences + +### Positive + +- free Switch from transport concerns - simpler implementation +- pluggable transport implementation - simpler test setup +- remove Switch dependency on P2PConfig - easier to test + +### Negative + +- more setup for tests which depend on Switches + +### Neutral + +- multiplexed will be the default implementation + +[0] These guards could be potentially extended to be pluggable much like +middlewares to express different concerns required by differentally configured +environments. diff --git a/sei-tendermint/docs/architecture/adr-013-symmetric-crypto.md b/sei-tendermint/docs/architecture/adr-013-symmetric-crypto.md new file mode 100644 index 0000000000..69bfc2f290 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-013-symmetric-crypto.md @@ -0,0 +1,99 @@ +# ADR 013: Need for symmetric cryptography + +## Context + +We require symmetric ciphers to handle how we encrypt keys in the sdk, +and to potentially encrypt `priv_validator.json` in tendermint. + +Currently we use AEAD's to support symmetric encryption, +which is great since we want data integrity in addition to privacy and authenticity. +We don't currently have a scenario where we want to encrypt without data integrity, +so it is fine to optimize our code to just use AEAD's. +Currently there is not a way to switch out AEAD's easily, this ADR outlines a way +to easily swap these out. + +### How do we encrypt with AEAD's + +AEAD's typically require a nonce in addition to the key. +For the purposes we require symmetric cryptography for, +we need encryption to be stateless. +Because of this we use random nonces. +(Thus the AEAD must support random nonces) + +We currently construct a random nonce, and encrypt the data with it. +The returned value is `nonce || encrypted data`. +The limitation of this is that does not provide a way to identify +which algorithm was used in encryption. +Consequently decryption with multiple algoritms is sub-optimal. +(You have to try them all) + +## Decision + +We should create the following two methods in a new `crypto/encoding/symmetric` package: + +```golang +func Encrypt(aead cipher.AEAD, plaintext []byte) (ciphertext []byte, err error) +func Decrypt(key []byte, ciphertext []byte) (plaintext []byte, err error) +func Register(aead cipher.AEAD, algo_name string, NewAead func(key []byte) (cipher.Aead, error)) error +``` + +This allows you to specify the algorithm in encryption, but not have to specify +it in decryption. +This is intended for ease of use in downstream applications, in addition to people +looking at the file directly. +One downside is that for the encrypt function you must have already initialized an AEAD, +but I don't really see this as an issue. + +If there is no error in encryption, Encrypt will return `algo_name || nonce || aead_ciphertext`. +`algo_name` should be length prefixed, using standard varuint encoding. +This will be binary data, but thats not a problem considering the nonce and ciphertext are also binary. + +This solution requires a mapping from aead type to name. +We can achieve this via reflection. + +```golang +func getType(myvar interface{}) string { + if t := reflect.TypeOf(myvar); t.Kind() == reflect.Ptr { + return "*" + t.Elem().Name() + } else { + return t.Name() + } +} +``` + +Then we maintain a map from the name returned from `getType(aead)` to `algo_name`. + +In decryption, we read the `algo_name`, and then instantiate a new AEAD with the key. +Then we call the AEAD's decrypt method on the provided nonce/ciphertext. + +`Register` allows a downstream user to add their own desired AEAD to the symmetric package. +It will error if the AEAD name is already registered. +This prevents a malicious import from modifying / nullifying an AEAD at runtime. + +## Implementation strategy + +The golang implementation of what is proposed is rather straight forward. +The concern is that we will break existing private keys if we just switch to this. +If this is concerning, we can make a simple script which doesn't require decoding privkeys, +for converting from the old format to the new one. + +## Status + +Proposed. + +## Consequences + +### Positive + +- Allows us to support new AEAD's, in a way that makes decryption easier +- Allows downstream users to add their own AEAD + +### Negative + +- We will have to break all private keys stored on disk. + They can be recovered using seed words, and upgrade scripts are simple. + +### Neutral + +- Caller has to instantiate the AEAD with the private key. + However it forces them to be aware of what signing algorithm they are using, which is a positive. diff --git a/sei-tendermint/docs/architecture/adr-014-secp-malleability.md b/sei-tendermint/docs/architecture/adr-014-secp-malleability.md new file mode 100644 index 0000000000..33f9d0044e --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-014-secp-malleability.md @@ -0,0 +1,63 @@ +# ADR 014: Secp256k1 Signature Malleability + +## Context + +Secp256k1 has two layers of malleability. +The signer has a random nonce, and thus can produce many different valid signatures. +This ADR is not concerned with that. +The second layer of malleability basically allows one who is given a signature +to produce exactly one more valid signature for the same message from the same public key. +(They don't even have to know the message!) +The math behind this will be explained in the subsequent section. + +Note that in many downstream applications, signatures will appear in a transaction, and therefore in the tx hash. +This means that if someone broadcasts a transaction with secp256k1 signature, the signature can be altered into the other form by anyone in the p2p network. +Thus the tx hash will change, and this altered tx hash may be committed instead. +This breaks the assumption that you can broadcast a valid transaction and just wait for its hash to be included on chain. +One example is if you are broadcasting a tx in cosmos, +and you wait for it to appear on chain before incrementing your sequence number. +You may never increment your sequence number if a different tx hash got committed. +Removing this second layer of signature malleability concerns could ease downstream development. + +### ECDSA context + +Secp256k1 is ECDSA over a particular curve. +The signature is of the form `(r, s)`, where `s` is a field element. +(The particular field is the `Z_n`, where the elliptic curve has order `n`) +However `(r, -s)` is also another valid solution. +Note that anyone can negate a group element, and therefore can get this second signature. + +## Decision + +We can just distinguish a canonical form for the ECDSA signatures. +Then we require that all ECDSA signatures be in the form which we defined as canonical. +We reject signatures in non-canonical form. + +A canonical form is rather easy to define and check. +It would just be the smaller of the two values for `s`, defined lexicographically. +This is a simple check, instead of checking if `s < n`, instead check `s <= (n - 1)/2`. +An example of another cryptosystem using this +is the parity definition here https://github.com/zkcrypto/pairing/pull/30#issuecomment-372910663. + +This is the same solution Ethereum has chosen for solving secp malleability. + +## Proposed Implementation + +Fork https://github.com/btcsuite/btcd, and just update the [parse sig method](https://github.com/btcsuite/btcd/blob/11fcd83963ab0ecd1b84b429b1efc1d2cdc6d5c5/btcec/signature.go#L195) and serialize functions to enforce our canonical form. + +## Status + +Implemented + +## Consequences + +### Positive + +- Lets us maintain the ability to expect a tx hash to appear in the blockchain. + +### Negative + +- More work in all future implementations (Though this is a very simple check) +- Requires us to maintain another fork + +### Neutral diff --git a/sei-tendermint/docs/architecture/adr-015-crypto-encoding.md b/sei-tendermint/docs/architecture/adr-015-crypto-encoding.md new file mode 100644 index 0000000000..bb0a8cd801 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-015-crypto-encoding.md @@ -0,0 +1,84 @@ +# ADR 015: Crypto encoding + +## Context + +We must standardize our method for encoding public keys and signatures on chain. +Currently we amino encode the public keys and signatures. +The reason we are using amino here is primarily due to ease of support in +parsing for other languages. +We don't need its upgradability properties in cryptosystems, as a change in +the crypto that requires adapting the encoding, likely warrants being deemed +a new cryptosystem. +(I.e. using new public parameters) + +## Decision + +### Public keys + +For public keys, we will continue to use amino encoding on the canonical +representation of the pubkey. +(Canonical as defined by the cryptosystem itself) +This has two significant drawbacks. +Amino encoding is less space-efficient, due to requiring support for upgradability. +Amino encoding support requires forking protobuf and adding this new interface support +option in the language of choice. + +The reason for continuing to use amino however is that people can create code +more easily in languages that already have an up to date amino library. +It is possible that this will change in the future, if it is deemed that +requiring amino for interacting with Tendermint cryptography is unnecessary. + +The arguments for space efficiency here are refuted on the basis that there are +far more egregious wastages of space in the SDK. +The space requirement of the public keys doesn't cause many problems beyond +increasing the space attached to each validator / account. + +The alternative to using amino here would be for us to create an enum type. +Switching to just an enum type is worthy of investigation post-launch. +For reference, part of amino encoding interfaces is basically a 4 byte enum +type definition. +Enum types would just change that 4 bytes to be a variant, and it would remove +the protobuf overhead, but it would be hard to integrate into the existing API. + +### Signatures + +Signatures should be switched to be `[]byte`. +Spatial efficiency in the signatures is quite important, +as it directly affects the gas cost of every transaction, +and the throughput of the chain. +Signatures don't need to encode what type they are for (unlike public keys) +since public keys must already be known. +Therefore we can validate the signature without needing to encode its type. + +When placed in state, signatures will still be amino encoded, but it will be the +primitive type `[]byte` getting encoded. + +#### Ed25519 + +Use the canonical representation for signatures. + +#### Secp256k1 + +There isn't a clear canonical representation here. +Signatures have two elements `r,s`. +These bytes are encoded as `r || s`, where `r` and `s` are both exactly +32 bytes long, encoded big-endian. +This is basically Ethereum's encoding, but without the leading recovery bit. + +## Status + +Implemented + +## Consequences + +### Positive + +- More space efficient signatures + +### Negative + +- We have an amino dependency for cryptography. + +### Neutral + +- No change to public keys diff --git a/sei-tendermint/docs/architecture/adr-016-protocol-versions.md b/sei-tendermint/docs/architecture/adr-016-protocol-versions.md new file mode 100644 index 0000000000..3a2351a563 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-016-protocol-versions.md @@ -0,0 +1,308 @@ +# ADR 016: Protocol Versions + +## TODO + +- How to / should we version the authenticated encryption handshake itself (ie. + upfront protocol negotiation for the P2PVersion) +- How to / should we version ABCI itself? Should it just be absorbed by the + BlockVersion? + +## Changelog + +- 18-09-2018: Updates after working a bit on implementation + - ABCI Handshake needs to happen independently of starting the app + conns so we can see the result + - Add question about ABCI protocol version +- 16-08-2018: Updates after discussion with SDK team + - Remove signalling for next version from Header/ABCI +- 03-08-2018: Updates from discussion with Jae: + - ProtocolVersion contains Block/AppVersion, not Current/Next + - signal upgrades to Tendermint using EndBlock fields + - dont restrict peer compatibilty by version to simplify syncing old nodes +- 28-07-2018: Updates from review + - split into two ADRs - one for protocol, one for chains + - include signalling for upgrades in header +- 16-07-2018: Initial draft - was originally joint ADR for protocol and chain + versions + +## Context + +Here we focus on software-agnostic protocol versions. + +The Software Version is covered by SemVer and described elsewhere. +It is not relevant to the protocol description, suffice to say that if any protocol version +changes, the software version changes, but not necessarily vice versa. + +Software version should be included in NodeInfo for convenience/diagnostics. + +We are also interested in versioning across different blockchains in a +meaningful way, for instance to differentiate branches of a contentious +hard-fork. We leave that for a later ADR. + +## Requirements + +We need to version components of the blockchain that may be independently upgraded. +We need to do it in a way that is scalable and maintainable - we can't just litter +the code with conditionals. + +We can consider the complete version of the protocol to contain the following sub-versions: +BlockVersion, P2PVersion, AppVersion. These versions reflect the major sub-components +of the software that are likely to evolve together, at different rates, and in different ways, +as described below. + +The BlockVersion defines the core of the blockchain data structures and +should change infrequently. + +The P2PVersion defines how peers connect and communicate with eachother - it's +not part of the blockchain data structures, but defines the protocols used to build the +blockchain. It may change gradually. + +The AppVersion determines how we compute app specific information, like the +AppHash and the Results. + +All of these versions may change over the life of a blockchain, and we need to +be able to help new nodes sync up across version changes. This means we must be willing +to connect to peers with older version. + +### BlockVersion + +- All tendermint hashed data-structures (headers, votes, txs, responses, etc.). + - Note the semantic meaning of a transaction may change according to the AppVersion, but the way txs are merklized into the header is part of the BlockVersion +- It should be the least frequent/likely to change. + - Tendermint should be stabilizing - it's just Atomic Broadcast. + - We can start considering for Tendermint v2.0 in a year +- It's easy to determine the version of a block from its serialized form + +### P2PVersion + +- All p2p and reactor messaging (messages, detectable behaviour) +- Will change gradually as reactors evolve to improve performance and support new features - eg proposed new message types BatchTx in the mempool and HasBlockPart in the consensus +- It's easy to determine the version of a peer from its first serialized message/s +- New versions must be compatible with at least one old version to allow gradual upgrades + +### AppVersion + +- The ABCI state machine (txs, begin/endblock behaviour, commit hashing) +- Behaviour and message types will change abruptly in the course of the life of a chain +- Need to minimize complexity of the code for supporting different AppVersions at different heights +- Ideally, each version of the software supports only a _single_ AppVersion at one time + - this means we checkout different versions of the software at different heights instead of littering the code + with conditionals + - minimize the number of data migrations required across AppVersion (ie. most AppVersion should be able to read the same state from disk as previous AppVersion). + +## Ideal + +Each component of the software is independently versioned in a modular way and its easy to mix and match and upgrade. + +## Proposal + +Each of BlockVersion, AppVersion, P2PVersion, is a monotonically increasing uint64. + +To use these versions, we need to update the block Header, the p2p NodeInfo, and the ABCI. + +### Header + +Block Header should include a `Version` struct as its first field like: + +``` +type Version struct { + Block uint64 + App uint64 +} +``` + +Here, `Version.Block` defines the rules for the current block, while +`Version.App` defines the app version that processed the last block and computed +the `AppHash` in the current block. Together they provide a complete description +of the consensus-critical protocol. + +Since we have settled on a proto3 header, the ability to read the BlockVersion out of the serialized header is unanimous. + +Using a Version struct gives us more flexibility to add fields without breaking +the header. + +The ProtocolVersion struct includes both the Block and App versions - it should +serve as a complete description of the consensus-critical protocol. + +### NodeInfo + +NodeInfo should include a Version struct as its first field like: + +``` +type Version struct { + P2P uint64 + Block uint64 + App uint64 + + Other []string +} +``` + +Note this effectively makes `Version.P2P` the first field in the NodeInfo, so it +should be easy to read this out of the serialized header if need be to facilitate an upgrade. + +The `Version.Other` here should include additional information like the name of the software client and +it's SemVer version - this is for convenience only. Eg. +`tendermint-core/v0.22.8`. It's a `[]string` so it can include information about +the version of Tendermint, of the app, of Tendermint libraries, etc. + +### ABCI + +Since the ABCI is responsible for keeping Tendermint and the App in sync, we +need to communicate version information through it. + +On startup, we use Info to perform a basic handshake. It should include all the +version information. + +We also need to be able to update versions in the life of a blockchain. The +natural place to do this is EndBlock. + +Note that currently the result of the Handshake isn't exposed anywhere, as the +handshaking happens inside the `proxy.AppConns` abstraction. We will need to +remove the handshaking from the `proxy` package so we can call it independently +and get the result, which should contain the application version. + +#### Info + +RequestInfo should add support for protocol versions like: + +``` +message RequestInfo { + string version + uint64 block_version + uint64 p2p_version +} +``` + +Similarly, ResponseInfo should return the versions: + +``` +message ResponseInfo { + string data + + string version + uint64 app_version + + int64 last_block_height + bytes last_block_app_hash +} +``` + +The existing `version` fields should be called `software_version` but we leave +them for now to reduce the number of breaking changes. + +#### EndBlock + +Updating the version could be done either with new fields or by using the +existing `tags`. Since we're trying to communicate information that will be +included in Tendermint block Headers, it should be native to the ABCI, and not +something embedded through some scheme in the tags. Thus, version updates should +be communicated through EndBlock. + +EndBlock already contains `ConsensusParams`. We can add version information to +the ConsensusParams as well: + +``` +message ConsensusParams { + + BlockSize block_size + EvidenceParams evidence_params + VersionParams version +} + +message VersionParams { + uint64 block_version + uint64 app_version +} +``` + +For now, the `block_version` will be ignored, as we do not allow block version +to be updated live. If the `app_version` is set, it signals that the app's +protocol version has changed, and the new `app_version` will be included in the +`Block.Header.Version.App` for the next block. + +### BlockVersion + +BlockVersion is included in both the Header and the NodeInfo. + +Changing BlockVersion should happen quite infrequently and ideally only for +critical upgrades. For now, it is not encoded in ABCI, though it's always +possible to use tags to signal an external process to co-ordinate an upgrade. + +Note Ethereum has not had to make an upgrade like this (everything has been at state machine level, AFAIK). + +### P2PVersion + +P2PVersion is not included in the block Header, just the NodeInfo. + +P2PVersion is the first field in the NodeInfo. NodeInfo is also proto3 so this is easy to read out. + +Note we need the peer/reactor protocols to take the versions of peers into account when sending messages: + +- don't send messages they don't understand +- don't send messages they don't expect + +Doing this will be specific to the upgrades being made. + +Note we also include the list of reactor channels in the NodeInfo and already don't send messages for channels the peer doesn't understand. +If upgrades always use new channels, this simplifies the development cost of backwards compatibility. + +Note NodeInfo is only exchanged after the authenticated encryption handshake to ensure that it's private. +Doing any version exchange before encrypting could be considered information leakage, though I'm not sure +how much that matters compared to being able to upgrade the protocol. + +XXX: if needed, can we change the meaning of the first byte of the first message to encode a handshake version? +this is the first byte of a 32-byte ed25519 pubkey. + +### AppVersion + +AppVersion is also included in the block Header and the NodeInfo. + +AppVersion essentially defines how the AppHash and LastResults are computed. + +### Peer Compatibility + +Restricting peer compatibility based on version is complicated by the need to +help old peers, possibly on older versions, sync the blockchain. + +We might be tempted to say that we only connect to peers with the same +AppVersion and BlockVersion (since these define the consensus critical +computations), and a select list of P2PVersions (ie. those compatible with +ours), but then we'd need to make accomodations for connecting to peers with the +right Block/AppVersion for the height they're on. + +For now, we will connect to peers with any version and restrict compatibility +solely based on the ChainID. We leave more restrictive rules on peer +compatibiltiy to a future proposal. + +### Future Changes + +It may be valuable to support an `/unsafe_stop?height=_` endpoint to tell Tendermint to shutdown at a given height. +This could be use by an external manager process that oversees upgrades by +checking out and installing new software versions and restarting the process. It +would subscribe to the relevant upgrade event (needs to be implemented) and call `/unsafe_stop` at +the correct height (of course only after getting approval from its user!) + +## Consequences + +### Positive + +- Make tendermint and application versions native to the ABCI to more clearly + communicate about them +- Distinguish clearly between protocol versions and software version to + facilitate implementations in other languages +- Versions included in key data structures in easy to discern way +- Allows proposers to signal for upgrades and apps to decide when to actually change the + version (and start signalling for a new version) + +### Neutral + +- Unclear how to version the initial P2P handshake itself +- Versions aren't being used (yet) to restrict peer compatibility +- Signalling for a new version happens through the proposer and must be + tallied/tracked in the app. + +### Negative + +- Adds more fields to the ABCI +- Implies that a single codebase must be able to handle multiple versions diff --git a/sei-tendermint/docs/architecture/adr-017-chain-versions.md b/sei-tendermint/docs/architecture/adr-017-chain-versions.md new file mode 100644 index 0000000000..7113dbaee7 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-017-chain-versions.md @@ -0,0 +1,99 @@ +# ADR 017: Chain Versions + +## TODO + +- clarify how to handle slashing when ChainID changes + +## Changelog + +- 28-07-2018: Updates from review + - split into two ADRs - one for protocol, one for chains +- 16-07-2018: Initial draft - was originally joint ADR for protocol and chain + versions + +## Context + +Software and Protocol versions are covered in a separate ADR. + +Here we focus on chain versions. + +## Requirements + +We need to version blockchains across protocols, networks, forks, etc. +We need chain identifiers and descriptions so we can talk about a multitude of chains, +and especially the differences between them, in a meaningful way. + +### Networks + +We need to support many independent networks running the same version of the software, +even possibly starting from the same initial state. +They must have distinct identifiers so that peers know which one they are joining and so +validators and users can prevent replay attacks. + +Call this the `NetworkName` (note we currently call this `ChainID` in the software. In this +ADR, ChainID has a different meaning). +It represents both the application being run and the community or intention +of running it. + +Peers only connect to other peers with the same NetworkName. + +### Forks + +We need to support existing networks upgrading and forking, wherein they may do any of: + + - revert back to some height, continue with the same versions but new blocks + - arbitrarily mutate state at some height, continue with the same versions (eg. Dao Fork) + - change the AppVersion at some height + +Note because of Tendermint's voting power threshold rules, a chain can only be extended under the "original" rules and under the new rules +if 1/3 or more is double signing, which is expressly prohibited, and is supposed to result in their punishment on both chains. Since they can censor +the punishment, the chain is expected to be hardforked to remove the validators. Thus, if both branches are to continue after a fork, +they will each require a new identifier, and the old chain identifier will be retired (ie. only useful for syncing history, not for new blocks).. + +TODO: explain how to handle slashing when chain id changed! + +We need a consistent way to describe forks. + +## Proposal + +### ChainDescription + +ChainDescription is a complete immutable description of a blockchain. It takes the following form: + +``` +ChainDescription = ///// +``` + +Here, StateHash is the merkle root of the initial state, ValHash is the merkle root of the initial Tendermint validator set, +and ConsensusParamsHash is the merkle root of the initial Tendermint consensus parameters. + +The `genesis.json` file must contain enough information to compute this value. It need not contain the StateHash or ValHash itself, +but contain the state from which they can be computed with the given protocol versions. + +NOTE: consider splitting NetworkName into NetworkName and AppName - this allows +folks to independently use the same application for different networks (ie we +could imagine multiple communities of validators wanting to put up a Hub using +the same app but having a distinct network name. Arguably not needed if +differences will come via different initial state / validators). + +#### ChainID + +Define `ChainID = TMHASH(ChainDescriptor)`. It's the unique ID of a blockchain. + +It should be Bech32 encoded when handled by users, eg. with `cosmoschain` prefix. + +#### Forks and Uprades + +When a chain forks or upgrades but continues the same history, it takes a new ChainDescription as follows: + +``` +ChainDescription = /x// +``` + +Where + +- ChainID is the ChainID from the previous ChainDescription (ie. its hash) +- `x` denotes that a change occured +- `Height` is the height the change occured +- ForkDescription has the same form as ChainDescription but for the fork +- this allows forks to specify new versions for tendermint or the app, as well as arbitrary changes to the state or validator set diff --git a/sei-tendermint/docs/architecture/adr-018-ABCI-Validators.md b/sei-tendermint/docs/architecture/adr-018-ABCI-Validators.md new file mode 100644 index 0000000000..b517c3694f --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-018-ABCI-Validators.md @@ -0,0 +1,100 @@ +# ADR 018: ABCI Validator Improvements + +## Changelog + +016-08-2018: Follow up from review: - Revert changes to commit round - Remind about justification for removing pubkey - Update pros/cons +05-08-2018: Initial draft + +## Context + +ADR 009 introduced major improvements to the ABCI around validators and the use +of Amino. Here we follow up with some additional changes to improve the naming +and expected use of Validator messages. + +## Decision + +### Validator + +Currently a Validator contains `address` and `pub_key`, and one or the other is +optional/not-sent depending on the use case. Instead, we should have a +`Validator` (with just the address, used for RequestBeginBlock) +and a `ValidatorUpdate` (with the pubkey, used for ResponseEndBlock): + +``` +message Validator { + bytes address + int64 power +} + +message ValidatorUpdate { + PubKey pub_key + int64 power +} +``` + +As noted in [ADR-009](adr-009-ABCI-design.md), +the `Validator` does not contain a pubkey because quantum public keys are +quite large and it would be wasteful to send them all over ABCI with every block. +Thus, applications that want to take advantage of the information in BeginBlock +are _required_ to store pubkeys in state (or use much less efficient lazy means +of verifying BeginBlock data). + +### RequestBeginBlock + +LastCommitInfo currently has an array of `SigningValidator` that contains +information for each validator in the entire validator set. +Instead, this should be called `VoteInfo`, since it is information about the +validator votes. + +Note that all votes in a commit must be from the same round. + +``` +message LastCommitInfo { + int64 round + repeated VoteInfo commit_votes +} + +message VoteInfo { + Validator validator + bool signed_last_block +} +``` + +### ResponseEndBlock + +Use ValidatorUpdates instead of Validators. Then it's clear we don't need an +address, and we do need a pubkey. + +We could require the address here as well as a sanity check, but it doesn't seem +necessary. + +### InitChain + +Use ValidatorUpdates for both Request and Response. InitChain +is about setting/updating the initial validator set, unlike BeginBlock +which is just informational. + +## Status + +Implemented + +## Consequences + +### Positive + +- Clarifies the distinction between the different uses of validator information + +### Negative + +- Apps must still store the public keys in state to utilize the RequestBeginBlock info + +### Neutral + +- ResponseEndBlock does not require an address + +## References + +- [Latest ABCI Spec](https://github.com/tendermint/tendermint/blob/v0.22.8/docs/app-dev/abci-spec.md) +- [ADR-009](https://github.com/tendermint/tendermint/blob/v0.22.8/docs/architecture/adr-009-ABCI-design.md) +- [Issue #1712 - Don't send PubKey in + RequestBeginBlock](https://github.com/tendermint/tendermint/issues/1712) diff --git a/sei-tendermint/docs/architecture/adr-019-multisigs.md b/sei-tendermint/docs/architecture/adr-019-multisigs.md new file mode 100644 index 0000000000..7fd3aab0ac --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-019-multisigs.md @@ -0,0 +1,162 @@ +# ADR 019: Encoding standard for Multisignatures + +## Changelog + +06-08-2018: Minor updates + +27-07-2018: Update draft to use amino encoding + +11-07-2018: Initial Draft + +5-26-2021: Multisigs were moved into the Cosmos-sdk + +## Context + +Multisignatures, or technically _Accountable Subgroup Multisignatures_ (ASM), +are signature schemes which enable any subgroup of a set of signers to sign any message, +and reveal to the verifier exactly who the signers were. +This allows for complex conditionals of when to validate a signature. + +Suppose the set of signers is of size _n_. +If we validate a signature if any subgroup of size _k_ signs a message, +this becomes what is commonly reffered to as a _k of n multisig_ in Bitcoin. + +This ADR specifies the encoding standard for general accountable subgroup multisignatures, +k of n accountable subgroup multisignatures, and its weighted variant. + +In the future, we can also allow for more complex conditionals on the accountable subgroup. + +## Proposed Solution + +### New structs + +Every ASM will then have its own struct, implementing the crypto.Pubkey interface. + +This ADR assumes that [replacing crypto.Signature with []bytes](https://github.com/tendermint/tendermint/issues/1957) has been accepted. + +#### K of N threshold signature + +The pubkey is the following struct: + +```golang +type ThresholdMultiSignaturePubKey struct { // K of N threshold multisig + K uint `json:"threshold"` + Pubkeys []crypto.Pubkey `json:"pubkeys"` +} +``` + +We will derive N from the length of pubkeys. (For spatial efficiency in encoding) + +`Verify` will expect an `[]byte` encoded version of the Multisignature. +(Multisignature is described in the next section) +The multisignature will be rejected if the bitmap has less than k indices, +or if any signature at any of the k indices is not a valid signature from +the kth public key on the message. +(If more than k signatures are included, all must be valid) + +`Bytes` will be the amino encoded version of the pubkey. + +Address will be `Hash(amino_encoded_pubkey)` + +The reason this doesn't use `log_8(n)` bytes per signer is because that heavily optimizes for the case where a very small number of signers are required. +e.g. for `n` of size `24`, that would only be more space efficient for `k < 3`. +This seems less likely, and that it should not be the case optimized for. + +#### Weighted threshold signature + +The pubkey is the following struct: + +```golang +type WeightedThresholdMultiSignaturePubKey struct { + Weights []uint `json:"weights"` + Threshold uint `json:"threshold"` + Pubkeys []crypto.Pubkey `json:"pubkeys"` +} +``` + +Weights and Pubkeys must be of the same length. +Everything else proceeds identically to the K of N multisig, +except the multisig fails if the sum of the weights is less than the threshold. + +#### Multisignature + +The inter-mediate phase of the signatures (as it accrues more signatures) will be the following struct: + +```golang +type Multisignature struct { + BitArray CryptoBitArray // Documented later + Sigs [][]byte +``` + +It is important to recall that each private key will output a signature on the provided message itself. +So no signing algorithm ever outputs the multisignature. +The UI will take a signature, cast into a multisignature, and then keep adding +new signatures into it, and when done marshal into `[]byte`. +This will require the following helper methods: + +```golang +func SigToMultisig(sig []byte, n int) +func GetIndex(pk crypto.Pubkey, []crypto.Pubkey) +func AddSignature(sig Signature, index int, multiSig *Multisignature) +``` + +The multisignature will be converted to an `[]byte` using amino.MarshalBinaryBare. \* + +#### Bit Array + +We would be using a new implementation of a bitarray. The struct it would be encoded/decoded from is + +```golang +type CryptoBitArray struct { + ExtraBitsStored byte `json:"extra_bits"` // The number of extra bits in elems. + Elems []byte `json:"elems"` +} +``` + +The reason for not using the BitArray currently implemented in `libs/common/bit_array.go` +is that it is less space efficient, due to a space / time trade-off. +Evidence for this is outlined in [this issue](https://github.com/tendermint/tendermint/issues/2077). + +In the multisig, we will not be performing arithmetic operations, +so there is no performance increase with the current implementation, +and just loss of spatial efficiency. +Implementing this new bit array with `[]byte` _should_ be simple, as no +arithmetic operations between bit arrays are required, and save a couple of bytes. +(Explained in that same issue) + +When this bit array encoded, the number of elements is encoded due to amino. +However we may be encoding a full byte for what we actually only need 1-7 bits for. +We store that difference in ExtraBitsStored. +This allows for us to have an unbounded number of signers, and is more space efficient than what is currently used in `libs/common`. +Again the implementation of this space saving feature is straight forward. + +### Encoding the structs + +We will use straight forward amino encoding. This is chosen for ease of compatibility in other languages. + +### Future points of discussion + +If desired, we can use ed25519 batch verification for all ed25519 keys. +This is a future point of discussion, but would be backwards compatible as this information won't need to be marshalled. +(There may even be cofactor concerns without ristretto) +Aggregation of pubkeys / sigs in Schnorr sigs / BLS sigs is not backwards compatible, and would need to be a new ASM type. + +## Status + +Implemented (moved to cosmos-sdk) + +## Consequences + +### Positive + +- Supports multisignatures, in a way that won't require any special cases in our downstream verification code. +- Easy to serialize / deserialize +- Unbounded number of signers + +### Negative + +- Larger codebase, however this should reside in a subfolder of tendermint/crypto, as it provides no new interfaces. (Ref #https://github.com/tendermint/go-crypto/issues/136) +- Space inefficient due to utilization of amino encoding +- Suggested implementation requires a new struct for every ASM. + +### Neutral diff --git a/sei-tendermint/docs/architecture/adr-020-block-size.md b/sei-tendermint/docs/architecture/adr-020-block-size.md new file mode 100644 index 0000000000..f32ed7ab5c --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-020-block-size.md @@ -0,0 +1,104 @@ +# ADR 020: Limiting txs size inside a block + +## Changelog + +13-08-2018: Initial Draft +15-08-2018: Second version after Dev's comments +28-08-2018: Third version after Ethan's comments +30-08-2018: AminoOverheadForBlock => MaxAminoOverheadForBlock +31-08-2018: Bounding evidence and chain ID +13-01-2019: Add section on MaxBytes vs MaxDataBytes + +## Context + +We currently use MaxTxs to reap txs from the mempool when proposing a block, +but enforce MaxBytes when unmarshaling a block, so we could easily propose a +block thats too large to be valid. + +We should just remove MaxTxs all together and stick with MaxBytes, and have a +`mempool.ReapMaxBytes`. + +But we can't just reap BlockSize.MaxBytes, since MaxBytes is for the entire block, +not for the txs inside the block. There's extra amino overhead + the actual +headers on top of the actual transactions + evidence + last commit. +We could also consider using a MaxDataBytes instead of or in addition to MaxBytes. + +## MaxBytes vs MaxDataBytes + +The [PR #3045](https://github.com/tendermint/tendermint/pull/3045) suggested +additional clarity/justification was necessary here, wither respect to the use +of MaxDataBytes in addition to, or instead of, MaxBytes. + +MaxBytes provides a clear limit on the total size of a block that requires no +additional calculation if you want to use it to bound resource usage, and there +has been considerable discussions about optimizing tendermint around 1MB blocks. +Regardless, we need some maximum on the size of a block so we can avoid +unmarshaling blocks that are too big during the consensus, and it seems more +straightforward to provide a single fixed number for this rather than a +computation of "MaxDataBytes + everything else you need to make room for +(signatures, evidence, header)". MaxBytes provides a simple bound so we can +always say "blocks are less than X MB". + +Having both MaxBytes and MaxDataBytes feels like unnecessary complexity. It's +not particularly surprising for MaxBytes to imply the maximum size of the +entire block (not just txs), one just has to know that a block includes header, +txs, evidence, votes. For more fine grained control over the txs included in the +block, there is the MaxGas. In practice, the MaxGas may be expected to do most of +the tx throttling, and the MaxBytes to just serve as an upper bound on the total +size. Applications can use MaxGas as a MaxDataBytes by just taking the gas for +every tx to be its size in bytes. + +## Proposed solution + +Therefore, we should + +1) Get rid of MaxTxs. +2) Rename MaxTxsBytes to MaxBytes. + +When we need to ReapMaxBytes from the mempool, we calculate the upper bound as follows: + +``` +ExactLastCommitBytes = {number of validators currently enabled} * {MaxVoteBytes} +MaxEvidenceBytesPerBlock = MaxBytes / 10 +ExactEvidenceBytes = cs.evpool.PendingEvidence(MaxEvidenceBytesPerBlock) * MaxEvidenceBytes + +mempool.ReapMaxBytes(MaxBytes - MaxAminoOverheadForBlock - ExactLastCommitBytes - ExactEvidenceBytes - MaxHeaderBytes) +``` + +where MaxVoteBytes, MaxEvidenceBytes, MaxHeaderBytes and MaxAminoOverheadForBlock +are constants defined inside the `types` package: + +- MaxVoteBytes - 170 bytes +- MaxEvidenceBytes - 364 bytes +- MaxHeaderBytes - 476 bytes (~276 bytes hashes + 200 bytes - 50 UTF-8 encoded + symbols of chain ID 4 bytes each in the worst case + amino overhead) +- MaxAminoOverheadForBlock - 8 bytes (assuming MaxHeaderBytes includes amino + overhead for encoding header, MaxVoteBytes - for encoding vote, etc.) + +ChainID needs to bound to 50 symbols max. + +When reaping evidence, we use MaxBytes to calculate the upper bound (e.g. 1/10) +to save some space for transactions. + +NOTE while reaping the `max int` bytes in mempool, we should account that every +transaction will take `len(tx)+aminoOverhead`, where aminoOverhead=1-4 bytes. + +We should write a test that fails if the underlying structs got changed, but +MaxXXX stayed the same. + +## Status + +Implemented + +## Consequences + +### Positive + +* one way to limit the size of a block +* less variables to configure + +### Negative + +* constants that need to be adjusted if the underlying structs got changed + +### Neutral diff --git a/sei-tendermint/docs/architecture/adr-021-abci-events.md b/sei-tendermint/docs/architecture/adr-021-abci-events.md new file mode 100644 index 0000000000..ca20a05e9f --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-021-abci-events.md @@ -0,0 +1,52 @@ +# ADR 012: ABCI Events + +## Changelog + +- *2018-09-02* Remove ABCI errors component. Update description for events +- *2018-07-12* Initial version + +## Context + +ABCI tags were first described in [ADR 002](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-002-event-subscription.md). +They are key-value pairs that can be used to index transactions. + +Currently, ABCI messages return a list of tags to describe an +"event" that took place during the Check/DeliverTx/Begin/EndBlock, +where each tag refers to a different property of the event, like the sending and receiving account addresses. + +Since there is only one list of tags, recording data for multiple such events in +a single Check/DeliverTx/Begin/EndBlock must be done using prefixes in the key +space. + +Alternatively, groups of tags that constitute an event can be separated by a +special tag that denotes a break between the events. This would allow +straightforward encoding of multiple events into a single list of tags without +prefixing, at the cost of these "special" tags to separate the different events. + +TODO: brief description of how the indexing works + +## Decision + +Instead of returning a list of tags, return a list of events, where +each event is a list of tags. This way we naturally capture the concept of +multiple events happening during a single ABCI message. + +TODO: describe impact on indexing and querying + +## Status + +Implemented + +## Consequences + +### Positive + +- Ability to track distinct events separate from ABCI calls (DeliverTx/BeginBlock/EndBlock) +- More powerful query abilities + +### Negative + +- More complex query syntax +- More complex search implementation + +### Neutral diff --git a/sei-tendermint/docs/architecture/adr-022-abci-errors.md b/sei-tendermint/docs/architecture/adr-022-abci-errors.md new file mode 100644 index 0000000000..ce2c56a286 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-022-abci-errors.md @@ -0,0 +1,63 @@ +# ADR 022: ABCI Errors + +## Changelog + +- *2018-09-01* Initial version + +## Context + +ABCI errors should provide an abstraction between application details +and the client interface responsible for formatting & displaying errors to the user. + +Currently, this abstraction consists of a single integer (the `code`), where any +`code > 0` is considered an error (ie. invalid transaction) and all type +information about the error is contained in the code. This integer is +expected to be decoded by the client into a known error string, where any +more specific data is contained in the `data`. + +In a [previous conversation](https://github.com/tendermint/abci/issues/165#issuecomment-353704015), +it was suggested that not all non-zero codes need to be errors, hence why it's called `code` and not `error code`. +It is unclear exactly how the semantics of the `code` field will evolve, though +better lite-client proofs (like discussed for tags +[here](https://github.com/tendermint/tendermint/issues/1007#issuecomment-413917763)) +may play a role. + +Note that having all type information in a single integer +precludes an easy coordination method between "module implementers" and "client +implementers", especially for apps with many "modules". With an unbounded error domain (such as a string), module +implementers can pick a globally unique prefix & error code set, so client +implementers could easily implement support for "module A" regardless of which +particular blockchain network it was running in and which other modules were running with it. With +only error codes, globally unique codes are difficult/impossible, as the space +is finite and collisions are likely without an easy way to coordinate. + +For instance, while trying to build an ecosystem of modules that can be composed into a single +ABCI application, the Cosmos-SDK had to hack a higher level "codespace" into the +single integer so that each module could have its own space to express its +errors. + +## Decision + +Include a `string code_space` in all ABCI messages that have a `code`. +This allows applications to namespace the codes so they can experiment with +their own code schemes. + +It is the responsibility of applications to limit the size of the `code_space` +string. + +How the codespace is hashed into block headers (ie. so it can be queried +efficiently by lite clients) is left for a separate ADR. + +## Consequences + +## Positive + +- No need for complex codespacing on a single integer +- More expressive type system for errors + +## Negative + +- Another field in the response needs to be accounted for +- Some redundancy with `code` field +- May encourage more error/code type info to move to the `codespace` string, which + could impact lite clients. diff --git a/sei-tendermint/docs/architecture/adr-023-ABCI-propose-tx.md b/sei-tendermint/docs/architecture/adr-023-ABCI-propose-tx.md new file mode 100644 index 0000000000..34963b1bad --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-023-ABCI-propose-tx.md @@ -0,0 +1,183 @@ +# ADR 023: ABCI `ProposeTx` Method + +## Changelog + +25-06-2018: Initial draft based on [#1776](https://github.com/tendermint/tendermint/issues/1776) + +## Context + +[#1776](https://github.com/tendermint/tendermint/issues/1776) was +opened in relation to implementation of a Plasma child chain using Tendermint +Core as consensus/replication engine. + +Due to the requirements of [Minimal Viable Plasma (MVP)](https://ethresear.ch/t/minimal-viable-plasma/426) and [Plasma Cash](https://ethresear.ch/t/plasma-cash-plasma-with-much-less-per-user-data-checking/1298), it is necessary for ABCI apps to have a mechanism to handle the following cases (more may emerge in the near future): + +1. `deposit` transactions on the Root Chain, which must consist of a block + with a single transaction, where there are no inputs and only one output + made in favour of the depositor. In this case, a `block` consists of + a transaction with the following shape: + + ``` + [0, 0, 0, 0, #input1 - zeroed out + 0, 0, 0, 0, #input2 - zeroed out + , , #output1 - in favour of depositor + 0, 0, #output2 - zeroed out + , + ] + ``` + + `exit` transactions may also be treated in a similar manner, wherein the + input is the UTXO being exited on the Root Chain, and the output belongs to + a reserved "burn" address, e.g., `0x0`. In such cases, it is favourable for + the containing block to only hold a single transaction that may receive + special treatment. + +2. Other "internal" transactions on the child chain, which may be initiated + unilaterally. The most basic example of is a coinbase transaction + implementing validator node incentives, but may also be app-specific. In + these cases, it may be favourable for such transactions to + be ordered in a specific manner, e.g., coinbase transactions will always be + at index 0. In general, such strategies increase the determinism and + predictability of blockchain applications. + +While it is possible to deal with the cases enumerated above using the +existing ABCI, currently available result in suboptimal workarounds. Two are +explained in greater detail below. + +### Solution 1: App state-based Plasma chain + +In this work around, the app maintains a `PlasmaStore` with a corresponding +`Keeper`. The PlasmaStore is responsible for maintaing a second, separate +blockchain that complies with the MVP specification, including `deposit` +blocks and other "internal" transactions. These "virtual" blocks are then broadcasted +to the Root Chain. + +This naive approach is, however, fundamentally flawed, as it by definition +diverges from the canonical chain maintained by Tendermint. This is further +exacerbated if the business logic for generating such transactions is +potentially non-deterministic, as this should not even be done in +`Begin/EndBlock`, which may, as a result, break consensus guarantees. + +Additinoally, this has serious implications for "watchers" - independent third parties, +or even an auxilliary blockchain, responsible for ensuring that blocks recorded +on the Root Chain are consistent with the Plasma chain's. Since, in this case, +the Plasma chain is inconsistent with the canonical one maintained by Tendermint +Core, it seems that there exists no compact means of verifying the legitimacy of +the Plasma chain without replaying every state transition from genesis (!). + +### Solution 2: Broadcast to Tendermint Core from ABCI app + +This approach is inspired by `tendermint`, in which Ethereum transactions are +relayed to Tendermint Core. It requires the app to maintain a client connection +to the consensus engine. + +Whenever an "internal" transaction needs to be created, the proposer of the +current block broadcasts the transaction or transactions to Tendermint as +needed in order to ensure that the Tendermint chain and Plasma chain are +completely consistent. + +This allows "internal" transactions to pass through the full consensus +process, and can be validated in methods like `CheckTx`, i.e., signed by the +proposer, is the semantically correct, etc. Note that this involves informing +the ABCI app of the block proposer, which was temporarily hacked in as a means +of conducting this experiment, although this should not be necessary when the +current proposer is passed to `BeginBlock`. + +It is much easier to relay these transactions directly to the Root +Chain smart contract and/or maintain a "compressed" auxiliary chain comprised +of Plasma-friendly blocks that 100% reflect the canonical (Tendermint) +blockchain. Unfortunately, this approach not idiomatic (i.e., utilises the +Tendermint consensus engine in unintended ways). Additionally, it does not +allow the application developer to: + +- Control the _ordering_ of transactions in the proposed block (e.g., index 0, + or 0 to `n` for coinbase transactions) +- Control the _number_ of transactions in the block (e.g., when a `deposit` + block is required) + +Since determinism is of utmost importance in blockchain engineering, this approach, +while more viable, should also not be considered as fit for production. + +## Decision + +### `ProposeTx` + +In order to address the difficulties described above, the ABCI interface must +expose an additional method, tentatively named `ProposeTx`. + +It should have the following signature: + +``` +ProposeTx(RequestProposeTx) ResponseProposeTx +``` + +Where `RequestProposeTx` and `ResponseProposeTx` are `message`s with the +following shapes: + +``` +message RequestProposeTx { + int64 next_block_height = 1; // height of the block the proposed tx would be part of + Validator proposer = 2; // the proposer details +} + +message ResponseProposeTx { + int64 num_tx = 1; // the number of tx to include in proposed block + repeated bytes txs = 2; // ordered transaction data to include in block + bool exclusive = 3; // whether the block should include other transactions (from `mempool`) +} +``` + +`ProposeTx` would be called by before `mempool.Reap` at this +[line](https://github.com/tendermint/tendermint/blob/9cd9f3338bc80a12590631632c23c8dbe3ff5c34/consensus/state.go#L935). +Depending on whether `exclusive` is `true` or `false`, the proposed +transactions are then pushed on top of the transactions received from +`mempool.Reap`. + +### `DeliverTx` + +Since the list of `tx` received from `ProposeTx` are _not_ passed through `CheckTx`, +it is probably a good idea to provide a means of differentiatiating "internal" transactions +from user-generated ones, in case the app developer needs/wants to take extra measures to +ensure validity of the proposed transactions. + +Therefore, the `RequestDeliverTx` message should be changed to provide an additional flag, like so: + +``` +message RequestDeliverTx { + bytes tx = 1; + bool internal = 2; +} +``` + +Alternatively, an additional method `DeliverProposeTx` may be added as an accompanient to +`ProposeTx`. However, it is not clear at this stage if this additional overhead is necessary +to preserve consensus guarantees given that a simple flag may suffice for now. + +## Status + +Pending + +## Consequences + +### Positive + +- Tendermint ABCI apps will be able to function as minimally viable Plasma chains. +- It will thereby become possible to add an extension to `cosmos-sdk` to enable + ABCI apps to support both IBC and Plasma, maximising interop. +- ABCI apps will have great control and flexibility in managing blockchain state, + without having to resort to non-deterministic hacks and/or unsafe workarounds + +### Negative + +- Maintenance overhead of exposing additional ABCI method +- Potential security issues that may have been overlooked and must now be tested extensively + +### Neutral + +- ABCI developers must deal with increased (albeit nominal) API surface area. + +## References + +- [#1776 Plasma and "Internal" Transactions in ABCI Apps](https://github.com/tendermint/tendermint/issues/1776) +- [Minimal Viable Plasma](https://ethresear.ch/t/minimal-viable-plasma/426) +- [Plasma Cash: Plasma with much less per-user data checking](https://ethresear.ch/t/plasma-cash-plasma-with-much-less-per-user-data-checking/1298) diff --git a/sei-tendermint/docs/architecture/adr-024-sign-bytes.md b/sei-tendermint/docs/architecture/adr-024-sign-bytes.md new file mode 100644 index 0000000000..23a6afcdc3 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-024-sign-bytes.md @@ -0,0 +1,234 @@ +# ADR 024: SignBytes and validator types in privval + +## Context + +Currently, the messages exchanged between tendermint and a (potentially remote) signer/validator, +namely votes, proposals, and heartbeats, are encoded as a JSON string +(e.g., via `Vote.SignBytes(...)`) and then +signed . JSON encoding is sub-optimal for both, hardware wallets +and for usage in ethereum smart contracts. Both is laid down in detail in [issue#1622]. + +Also, there are currently no differences between sign-request and -replies. Also, there is no possibility +for a remote signer to include an error code or message in case something went wrong. +The messages exchanged between tendermint and a remote signer currently live in +[privval/socket.go] and encapsulate the corresponding types in [types]. + + +[privval/socket.go]: https://github.com/tendermint/tendermint/blob/d419fffe18531317c28c29a292ad7d253f6cafdf/privval/socket.go#L496-L502 +[issue#1622]: https://github.com/tendermint/tendermint/issues/1622 +[types]: https://github.com/tendermint/tendermint/tree/master/types + + +## Decision + +- restructure vote, proposal, and heartbeat such that their encoding is easily parseable by +hardware devices and smart contracts using a binary encoding format ([amino] in this case) +- split up the messages exchanged between tendermint and remote signers into requests and +responses (see details below) +- include an error type in responses + +### Overview +``` ++--------------+ +----------------+ +| | SignXRequest | | +|Remote signer |<---------------------+ tendermint | +| (e.g. KMS) | | | +| +--------------------->| | ++--------------+ SignedXReply +----------------+ + + +SignXRequest { + x: X +} + +SignedXReply { + x: X + sig: Signature // []byte + err: Error{ + code: int + desc: string + } +} +``` + +TODO: Alternatively, the type `X` might directly include the signature. A lot of places expect a vote with a +signature and do not necessarily deal with "Replies". +Still exploring what would work best here. +This would look like (exemplified using X = Vote): +``` +Vote { + // all fields besides signature +} + +SignedVote { + Vote Vote + Signature []byte +} + +SignVoteRequest { + Vote Vote +} + +SignedVoteReply { + Vote SignedVote + Err Error +} +``` + +**Note:** There was a related discussion around including a fingerprint of, or, the whole public-key +into each sign-request to tell the signer which corresponding private-key to +use to sign the message. This is particularly relevant in the context of the KMS +but is currently not considered in this ADR. + + +[amino]: https://github.com/tendermint/go-amino/ + +### Vote + +As explained in [issue#1622] `Vote` will be changed to contain the following fields +(notation in protobuf-like syntax for easy readability): + +```proto +// vanilla protobuf / amino encoded +message Vote { + Version fixed32 + Height sfixed64 + Round sfixed32 + VoteType fixed32 + Timestamp Timestamp // << using protobuf definition + BlockID BlockID // << as already defined + ChainID string // at the end because length could vary a lot +} + +// this is an amino registered type; like currently privval.SignVoteMsg: +// registered with "tendermint/socketpv/SignVoteRequest" +message SignVoteRequest { + Vote vote +} + +// amino registered type +// registered with "tendermint/socketpv/SignedVoteReply" +message SignedVoteReply { + Vote Vote + Signature Signature + Err Error +} + +// we will use this type everywhere below +message Error { + Type uint // error code + Description string // optional description +} + +``` + +The `ChainID` gets moved into the vote message directly. Previously, it was injected +using the [Signable] interface method `SignBytes(chainID string) []byte`. Also, the +signature won't be included directly, only in the corresponding `SignedVoteReply` message. + +[Signable]: https://github.com/tendermint/tendermint/blob/d419fffe18531317c28c29a292ad7d253f6cafdf/types/signable.go#L9-L11 + +### Proposal + +```proto +// vanilla protobuf / amino encoded +message Proposal { + Height sfixed64 + Round sfixed32 + Timestamp Timestamp // << using protobuf definition + BlockPartsHeader PartSetHeader // as already defined + POLRound sfixed32 + POLBlockID BlockID // << as already defined +} + +// amino registered with "tendermint/socketpv/SignProposalRequest" +message SignProposalRequest { + Proposal proposal +} + +// amino registered with "tendermint/socketpv/SignProposalReply" +message SignProposalReply { + Prop Proposal + Sig Signature + Err Error // as defined above +} +``` + +### Heartbeat + +**TODO**: clarify if heartbeat also needs a fixed offset and update the fields accordingly: + +```proto +message Heartbeat { + ValidatorAddress Address + ValidatorIndex int + Height int64 + Round int + Sequence int +} +// amino registered with "tendermint/socketpv/SignHeartbeatRequest" +message SignHeartbeatRequest { + Hb Heartbeat +} + +// amino registered with "tendermint/socketpv/SignHeartbeatReply" +message SignHeartbeatReply { + Hb Heartbeat + Sig Signature + Err Error // as defined above +} + +``` + +## PubKey + +TBA - this needs further thoughts: e.g. what todo like in the case of the KMS which holds +several keys? How does it know with which key to reply? + +## SignBytes +`SignBytes` will not require a `ChainID` parameter: + +```golang +type Signable interface { + SignBytes() []byte +} + +``` +And the implementation for vote, heartbeat, proposal will look like: +```golang +// type T is one of vote, sign, proposal +func (tp *T) SignBytes() []byte { + bz, err := cdc.MarshalBinary(tp) + if err != nil { + panic(err) + } + return bz +} +``` + +## Status + +Partially Accepted + +## Consequences + + + +### Positive + +The most relevant positive effect is that the signing bytes can easily be parsed by a +hardware module and a smart contract. Besides that: + +- clearer separation between requests and responses +- added error messages enable better error handling + + +### Negative + +- relatively huge change / refactoring touching quite some code +- lot's of places assume a `Vote` with a signature included -> they will need to +- need to modify some interfaces + +### Neutral + +not even the swiss are neutral diff --git a/sei-tendermint/docs/architecture/adr-025-commit.md b/sei-tendermint/docs/architecture/adr-025-commit.md new file mode 100644 index 0000000000..a23d3803f6 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-025-commit.md @@ -0,0 +1,150 @@ +# ADR 025 Commit + +## Context + +Currently the `Commit` structure contains a lot of potentially redundant or unnecessary data. +It contains a list of precommits from every validator, where the precommit +includes the whole `Vote` structure. Thus each of the commit height, round, +type, and blockID are repeated for every validator, and could be deduplicated, +leading to very significant savings in block size. + +``` +type Commit struct { + BlockID BlockID `json:"block_id"` + Precommits []*Vote `json:"precommits"` +} + +type Vote struct { + ValidatorAddress Address `json:"validator_address"` + ValidatorIndex int `json:"validator_index"` + Height int64 `json:"height"` + Round int `json:"round"` + Timestamp time.Time `json:"timestamp"` + Type byte `json:"type"` + BlockID BlockID `json:"block_id"` + Signature []byte `json:"signature"` +} +``` + +The original tracking issue for this is [#1648](https://github.com/tendermint/tendermint/issues/1648). +We have discussed replacing the `Vote` type in `Commit` with a new `CommitSig` +type, which includes at minimum the vote signature. The `Vote` type will +continue to be used in the consensus reactor and elsewhere. + +A primary question is what should be included in the `CommitSig` beyond the +signature. One current constraint is that we must include a timestamp, since +this is how we calculuate BFT time, though we may be able to change this [in the +future](https://github.com/tendermint/tendermint/issues/2840). + +Other concerns here include: + +- Validator Address [#3596](https://github.com/tendermint/tendermint/issues/3596) - + Should the CommitSig include the validator address? It is very convenient to + do so, but likely not necessary. This was also discussed in [#2226](https://github.com/tendermint/tendermint/issues/2226). +- Absent Votes [#3591](https://github.com/tendermint/tendermint/issues/3591) - + How to represent absent votes? Currently they are just present as `nil` in the + Precommits list, which is actually problematic for serialization +- Other BlockIDs [#3485](https://github.com/tendermint/tendermint/issues/3485) - + How to represent votes for nil and for other block IDs? We currently allow + votes for nil and votes for alternative block ids, but just ignore them + + +## Decision + +Deduplicate the fields and introduce `CommitSig`: + +``` +type Commit struct { + Height int64 + Round int + BlockID BlockID `json:"block_id"` + Precommits []CommitSig `json:"precommits"` +} + +type CommitSig struct { + BlockID BlockIDFlag + ValidatorAddress Address + Timestamp time.Time + Signature []byte +} + + +// indicate which BlockID the signature is for +type BlockIDFlag int + +const ( + BlockIDFlagAbsent BlockIDFlag = iota // vote is not included in the Commit.Precommits + BlockIDFlagCommit // voted for the Commit.BlockID + BlockIDFlagNil // voted for nil +) + +``` + +Re the concerns outlined in the context: + +**Timestamp**: Leave the timestamp for now. Removing it and switching to +proposer based time will take more analysis and work, and will be left for a +future breaking change. In the meantime, the concerns with the current approach to +BFT time [can be +mitigated](https://github.com/tendermint/tendermint/issues/2840#issuecomment-529122431). + +**ValidatorAddress**: we include it in the `CommitSig` for now. While this +does increase the block size unecessarily (20-bytes per validator), it has some ergonomic and debugging advantages: + +- `Commit` contains everything necessary to reconstruct `[]Vote`, and doesn't depend on additional access to a `ValidatorSet` +- Lite clients can check if they know the validators in a commit without + re-downloading the validator set +- Easy to see directly in a commit which validators signed what without having + to fetch the validator set + +If and when we change the `CommitSig` again, for instance to remove the timestamp, +we can reconsider whether the ValidatorAddress should be removed. + +**Absent Votes**: we include absent votes explicitly with no Signature or +Timestamp but with the ValidatorAddress. This should resolve the serialization +issues and make it easy to see which validator's votes failed to be included. + +**Other BlockIDs**: We use a single byte to indicate which blockID a `CommitSig` +is for. The only options are: + - `Absent` - no vote received from the this validator, so no signature + - `Nil` - validator voted Nil - meaning they did not see a polka in time + - `Commit` - validator voted for this block + +Note this means we don't allow votes for any other blockIDs. If a signature is +included in a commit, it is either for nil or the correct blockID. According to +the Tendermint protocol and assumptions, there is no way for a correct validator to +precommit for a conflicting blockID in the same round an actual commit was +created. This was the consensus from +[#3485](https://github.com/tendermint/tendermint/issues/3485) + +We may want to consider supporting other blockIDs later, as a way to capture +evidence that might be helpful. We should clarify if/when/how doing so would +actually help first. To implement it, we could change the `Commit.BlockID` +field to a slice, where the first entry is the correct block ID and the other +entries are other BlockIDs that validators precommited before. The BlockIDFlag +enum can be extended to represent these additional block IDs on a per block +basis. + +## Status + +Implemented + +## Consequences + +### Positive + +Removing the Type/Height/Round/Index and the BlockID saves roughly 80 bytes per precommit. +It varies because some integers are varint. The BlockID contains two 32-byte hashes an integer, +and the Height is 8-bytes. + +For a chain with 100 validators, that's up to 8kB in savings per block! + + +### Negative + +- Large breaking change to the block and commit structure +- Requires differentiating in code between the Vote and CommitSig objects, which may add some complexity (votes need to be reconstructed to be verified and gossiped) + +### Neutral + +- Commit.Precommits no longer contains nil values diff --git a/sei-tendermint/docs/architecture/adr-026-general-merkle-proof.md b/sei-tendermint/docs/architecture/adr-026-general-merkle-proof.md new file mode 100644 index 0000000000..5774c10f8d --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-026-general-merkle-proof.md @@ -0,0 +1,49 @@ +# ADR 026: General Merkle Proof + +## Context + +We are using raw `[]byte` for merkle proofs in `abci.ResponseQuery`. It makes hard to handle multilayer merkle proofs and general cases. Here, new interface `ProofOperator` is defined. The users can defines their own Merkle proof format and layer them easily. + +Goals: +- Layer Merkle proofs without decoding/reencoding +- Provide general way to chain proofs +- Make the proof format extensible, allowing thirdparty proof types + +## Decision + +### ProofOperator + +`type ProofOperator` is an interface for Merkle proofs. The definition is: + +```go +type ProofOperator interface { + Run([][]byte) ([][]byte, error) + GetKey() []byte + ProofOp() ProofOp +} +``` + +Since a proof can treat various data type, `Run()` takes `[][]byte` as the argument, not `[]byte`. For example, a range proof's `Run()` can take multiple key-values as its argument. It will then return the root of the tree for the further process, calculated with the input value. + +`ProofOperator` does not have to be a Merkle proof - it can be a function that transforms the argument for intermediate process e.g. prepending the length to the `[]byte`. + +### ProofOp + +`type ProofOp` is a protobuf message which is a triple of `Type string`, `Key []byte`, and `Data []byte`. `ProofOperator` and `ProofOp`are interconvertible, using `ProofOperator.ProofOp()` and `OpDecoder()`, where `OpDecoder` is a function that each proof type can register for their own encoding scheme. For example, we can add an byte for encoding scheme before the serialized proof, supporting JSON decoding. + +## Status + +Implemented + +## Consequences + +### Positive + +- Layering becomes easier (no encoding/decoding at each step) +- Thirdparty proof format is available + +### Negative + +- Larger size for abci.ResponseQuery +- Unintuitive proof chaining(it is not clear what `Run()` is doing) +- Additional codes for registering `OpDecoder`s diff --git a/sei-tendermint/docs/architecture/adr-029-check-tx-consensus.md b/sei-tendermint/docs/architecture/adr-029-check-tx-consensus.md new file mode 100644 index 0000000000..191a0ec8ed --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-029-check-tx-consensus.md @@ -0,0 +1,127 @@ +# ADR 029: Check block txs before prevote + +## Changelog + +04-10-2018: Update with link to issue +[#2384](https://github.com/tendermint/tendermint/issues/2384) and reason for rejection +19-09-2018: Initial Draft + +## Context + +We currently check a tx's validity through 2 ways. + +1. Through checkTx in mempool connection. +2. Through deliverTx in consensus connection. + +The 1st is called when external tx comes in, so the node should be a proposer this time. The 2nd is called when external block comes in and reach the commit phase, the node doesn't need to be the proposer of the block, however it should check the txs in that block. + +In the 2nd situation, if there are many invalid txs in the block, it would be too late for all nodes to discover that most txs in the block are invalid, and we'd better not record invalid txs in the blockchain too. + +## Proposed solution + +Therefore, we should find a way to check the txs' validity before send out a prevote. Currently we have cs.isProposalComplete() to judge whether a block is complete. We can have + +``` +func (blockExec *BlockExecutor) CheckBlock(block *types.Block) error { + // check txs of block. + for _, tx := range block.Txs { + reqRes := blockExec.proxyApp.CheckTxAsync(tx) + reqRes.Wait() + if reqRes.Response == nil || reqRes.Response.GetCheckTx() == nil || reqRes.Response.GetCheckTx().Code != abci.CodeTypeOK { + return errors.Errorf("tx %v check failed. response: %v", tx, reqRes.Response) + } + } + return nil +} +``` + +such a method in BlockExecutor to check all txs' validity in that block. + +However, this method should not be implemented like that, because checkTx will share the same state used in mempool in the app. So we should define a new interface method checkBlock in Application to indicate it to use the same state as deliverTx. + +``` +type Application interface { + // Info/Query Connection + Info(RequestInfo) ResponseInfo // Return application info + Query(RequestQuery) ResponseQuery // Query for state + + // Mempool Connection + CheckTx(tx []byte) ResponseCheckTx // Validate a tx for the mempool + + // Consensus Connection + InitChain(RequestInitChain) ResponseInitChain // Initialize blockchain with validators and other info from TendermintCore + CheckBlock(RequestCheckBlock) ResponseCheckBlock + BeginBlock(RequestBeginBlock) ResponseBeginBlock // Signals the beginning of a block + DeliverTx(tx []byte) ResponseDeliverTx // Deliver a tx for full processing + EndBlock(RequestEndBlock) ResponseEndBlock // Signals the end of a block, returns changes to the validator set + Commit() ResponseCommit // Commit the state and return the application Merkle root hash +} +``` + +All app should implement that method. For example, counter: + +``` +func (app *CounterApplication) CheckBlock(block types.Request_CheckBlock) types.ResponseCheckBlock { + if app.serial { + app.originalTxCount = app.txCount //backup the txCount state + for _, tx := range block.CheckBlock.Block.Txs { + if len(tx) > 8 { + return types.ResponseCheckBlock{ + Code: code.CodeTypeEncodingError, + Log: fmt.Sprintf("Max tx size is 8 bytes, got %d", len(tx))} + } + tx8 := make([]byte, 8) + copy(tx8[len(tx8)-len(tx):], tx) + txValue := binary.BigEndian.Uint64(tx8) + if txValue < uint64(app.txCount) { + return types.ResponseCheckBlock{ + Code: code.CodeTypeBadNonce, + Log: fmt.Sprintf("Invalid nonce. Expected >= %v, got %v", app.txCount, txValue)} + } + app.txCount++ + } + } + return types.ResponseCheckBlock{Code: code.CodeTypeOK} +} +``` + +In BeginBlock, the app should restore the state to the orignal state before checking the block: + +``` +func (app *CounterApplication) DeliverTx(tx []byte) types.ResponseDeliverTx { + if app.serial { + app.txCount = app.originalTxCount //restore the txCount state + } + app.txCount++ + return types.ResponseDeliverTx{Code: code.CodeTypeOK} +} +``` + +The txCount is like the nonce in ethermint, it should be restored when entering the deliverTx phase. While some operation like checking the tx signature needs not to be done again. So the deliverTx can focus on how a tx can be applied, ignoring the checking of the tx, because all the checking has already been done in the checkBlock phase before. + +An optional optimization is alter the deliverTx to deliverBlock. For the block has already been checked by checkBlock, so all the txs in it are valid. So the app can cache the block, and in the deliverBlock phase, it just needs to apply the block in the cache. This optimization can save network current in deliverTx. + + + +## Status + +Rejected + +## Decision + +Performance impact is considered too great. See [#2384](https://github.com/tendermint/tendermint/issues/2384) + +## Consequences + +### Positive + +- more robust to defend the adversary to propose a block full of invalid txs. + +### Negative + +- add a new interface method. app logic needs to adjust to appeal to it. +- sending all the tx data over the ABCI twice +- potentially redundant validations (eg. signature checks in both CheckBlock and + DeliverTx) + +### Neutral diff --git a/sei-tendermint/docs/architecture/adr-030-consensus-refactor.md b/sei-tendermint/docs/architecture/adr-030-consensus-refactor.md new file mode 100644 index 0000000000..5c8c3d7543 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-030-consensus-refactor.md @@ -0,0 +1,458 @@ +# ADR 030: Consensus Refactor + +## Context + +One of the biggest challenges this project faces is to proof that the +implementations of the specifications are correct, much like we strive to +formaly verify our alogrithms and protocols we should work towards high +confidence about the correctness of our program code. One of those is the core +of Tendermint - Consensus - which currently resides in the `consensus` package. +Over time there has been high friction making changes to the package due to the +algorithm being scattered in a side-effectful container (the current +`ConsensusState`). In order to test the algorithm a large object-graph needs to +be set up and even than the non-deterministic parts of the container makes will +prevent high certainty. Where ideally we have a 1-to-1 representation of the +[spec](https://github.com/tendermint/spec), ready and easy to test for domain +experts. + +Addresses: + +- [#1495](https://github.com/tendermint/tendermint/issues/1495) +- [#1692](https://github.com/tendermint/tendermint/issues/1692) + +## Decision + +To remedy these issues we plan a gradual, non-invasive refactoring of the +`consensus` package. Starting of by isolating the consensus alogrithm into +a pure function and a finite state machine to address the most pressuring issue +of lack of confidence. Doing so while leaving the rest of the package in tact +and have follow-up optional changes to improve the sepration of concerns. + +### Implementation changes + +The core of Consensus can be modelled as a function with clear defined inputs: + +* `State` - data container for current round, height, etc. +* `Event`- significant events in the network + +producing clear outputs; + +* `State` - updated input +* `Message` - signal what actions to perform + +```go +type Event int + +const ( + EventUnknown Event = iota + EventProposal + Majority23PrevotesBlock + Majority23PrecommitBlock + Majority23PrevotesAny + Majority23PrecommitAny + TimeoutNewRound + TimeoutPropose + TimeoutPrevotes + TimeoutPrecommit +) + +type Message int + +const ( + MeesageUnknown Message = iota + MessageProposal + MessageVotes + MessageDecision +) + +type State struct { + height uint64 + round uint64 + step uint64 + lockedValue interface{} // TODO: Define proper type. + lockedRound interface{} // TODO: Define proper type. + validValue interface{} // TODO: Define proper type. + validRound interface{} // TODO: Define proper type. + // From the original notes: valid(v) + valid interface{} // TODO: Define proper type. + // From the original notes: proposer(h, r) + proposer interface{} // TODO: Define proper type. +} + +func Consensus(Event, State) (State, Message) { + // Consolidate implementation. +} +``` + +Tracking of relevant information to feed `Event` into the function and act on +the output is left to the `ConsensusExecutor` (formerly `ConsensusState`). + +Benefits for testing surfacing nicely as testing for a sequence of events +against algorithm could be as simple as the following example: + +``` go +func TestConsensusXXX(t *testing.T) { + type expected struct { + message Message + state State + } + + // Setup order of events, initial state and expectation. + var ( + events = []struct { + event Event + want expected + }{ + // ... + } + state = State{ + // ... + } + ) + + for _, e := range events { + sate, msg = Consensus(e.event, state) + + // Test message expectation. + if msg != e.want.message { + t.Fatalf("have %v, want %v", msg, e.want.message) + } + + // Test state expectation. + if !reflect.DeepEqual(state, e.want.state) { + t.Fatalf("have %v, want %v", state, e.want.state) + } + } +} +``` + + +## Consensus Executor + +## Consensus Core + +```go +type Event interface{} + +type EventNewHeight struct { + Height int64 + ValidatorId int +} + +type EventNewRound HeightAndRound + +type EventProposal struct { + Height int64 + Round int + Timestamp Time + BlockID BlockID + POLRound int + Sender int +} + +type Majority23PrevotesBlock struct { + Height int64 + Round int + BlockID BlockID +} + +type Majority23PrecommitBlock struct { + Height int64 + Round int + BlockID BlockID +} + +type HeightAndRound struct { + Height int64 + Round int +} + +type Majority23PrevotesAny HeightAndRound +type Majority23PrecommitAny HeightAndRound +type TimeoutPropose HeightAndRound +type TimeoutPrevotes HeightAndRound +type TimeoutPrecommit HeightAndRound + + +type Message interface{} + +type MessageProposal struct { + Height int64 + Round int + BlockID BlockID + POLRound int +} + +type VoteType int + +const ( + VoteTypeUnknown VoteType = iota + Prevote + Precommit +) + + +type MessageVote struct { + Height int64 + Round int + BlockID BlockID + Type VoteType +} + + +type MessageDecision struct { + Height int64 + Round int + BlockID BlockID +} + +type TriggerTimeout struct { + Height int64 + Round int + Duration Duration +} + + +type RoundStep int + +const ( + RoundStepUnknown RoundStep = iota + RoundStepPropose + RoundStepPrevote + RoundStepPrecommit + RoundStepCommit +) + +type State struct { + Height int64 + Round int + Step RoundStep + LockedValue BlockID + LockedRound int + ValidValue BlockID + ValidRound int + ValidatorId int + ValidatorSetSize int +} + +func proposer(height int64, round int) int {} +func getValue() BlockID {} + +func Consensus(event Event, state State) (State, Message, TriggerTimeout) { + msg = nil + timeout = nil + switch event := event.(type) { + case EventNewHeight: + if event.Height > state.Height { + state.Height = event.Height + state.Round = -1 + state.Step = RoundStepPropose + state.LockedValue = nil + state.LockedRound = -1 + state.ValidValue = nil + state.ValidRound = -1 + state.ValidatorId = event.ValidatorId + } + return state, msg, timeout + + case EventNewRound: + if event.Height == state.Height and event.Round > state.Round { + state.Round = eventRound + state.Step = RoundStepPropose + if proposer(state.Height, state.Round) == state.ValidatorId { + proposal = state.ValidValue + if proposal == nil { + proposal = getValue() + } + msg = MessageProposal { state.Height, state.Round, proposal, state.ValidRound } + } + timeout = TriggerTimeout { state.Height, state.Round, timeoutPropose(state.Round) } + } + return state, msg, timeout + + case EventProposal: + if event.Height == state.Height and event.Round == state.Round and + event.Sender == proposal(state.Height, state.Round) and state.Step == RoundStepPropose { + if event.POLRound >= state.LockedRound or event.BlockID == state.BlockID or state.LockedRound == -1 { + msg = MessageVote { state.Height, state.Round, event.BlockID, Prevote } + } + state.Step = RoundStepPrevote + } + return state, msg, timeout + + case TimeoutPropose: + if event.Height == state.Height and event.Round == state.Round and state.Step == RoundStepPropose { + msg = MessageVote { state.Height, state.Round, nil, Prevote } + state.Step = RoundStepPrevote + } + return state, msg, timeout + + case Majority23PrevotesBlock: + if event.Height == state.Height and event.Round == state.Round and state.Step >= RoundStepPrevote and event.Round > state.ValidRound { + state.ValidRound = event.Round + state.ValidValue = event.BlockID + if state.Step == RoundStepPrevote { + state.LockedRound = event.Round + state.LockedValue = event.BlockID + msg = MessageVote { state.Height, state.Round, event.BlockID, Precommit } + state.Step = RoundStepPrecommit + } + } + return state, msg, timeout + + case Majority23PrevotesAny: + if event.Height == state.Height and event.Round == state.Round and state.Step == RoundStepPrevote { + timeout = TriggerTimeout { state.Height, state.Round, timeoutPrevote(state.Round) } + } + return state, msg, timeout + + case TimeoutPrevote: + if event.Height == state.Height and event.Round == state.Round and state.Step == RoundStepPrevote { + msg = MessageVote { state.Height, state.Round, nil, Precommit } + state.Step = RoundStepPrecommit + } + return state, msg, timeout + + case Majority23PrecommitBlock: + if event.Height == state.Height { + state.Step = RoundStepCommit + state.LockedValue = event.BlockID + } + return state, msg, timeout + + case Majority23PrecommitAny: + if event.Height == state.Height and event.Round == state.Round { + timeout = TriggerTimeout { state.Height, state.Round, timeoutPrecommit(state.Round) } + } + return state, msg, timeout + + case TimeoutPrecommit: + if event.Height == state.Height and event.Round == state.Round { + state.Round = state.Round + 1 + } + return state, msg, timeout + } +} + +func ConsensusExecutor() { + proposal = nil + votes = HeightVoteSet { Height: 1 } + state = State { + Height: 1 + Round: 0 + Step: RoundStepPropose + LockedValue: nil + LockedRound: -1 + ValidValue: nil + ValidRound: -1 + } + + event = EventNewHeight {1, id} + state, msg, timeout = Consensus(event, state) + + event = EventNewRound {state.Height, 0} + state, msg, timeout = Consensus(event, state) + + if msg != nil { + send msg + } + + if timeout != nil { + trigger timeout + } + + for { + select { + case message := <- msgCh: + switch msg := message.(type) { + case MessageProposal: + + case MessageVote: + if msg.Height == state.Height { + newVote = votes.AddVote(msg) + if newVote { + switch msg.Type { + case Prevote: + prevotes = votes.Prevotes(msg.Round) + if prevotes.WeakCertificate() and msg.Round > state.Round { + event = EventNewRound { msg.Height, msg.Round } + state, msg, timeout = Consensus(event, state) + state = handleStateChange(state, msg, timeout) + } + + if blockID, ok = prevotes.TwoThirdsMajority(); ok and blockID != nil { + if msg.Round == state.Round and hasBlock(blockID) { + event = Majority23PrevotesBlock { msg.Height, msg.Round, blockID } + state, msg, timeout = Consensus(event, state) + state = handleStateChange(state, msg, timeout) + } + if proposal != nil and proposal.POLRound == msg.Round and hasBlock(blockID) { + event = EventProposal { + Height: state.Height + Round: state.Round + BlockID: blockID + POLRound: proposal.POLRound + Sender: message.Sender + } + state, msg, timeout = Consensus(event, state) + state = handleStateChange(state, msg, timeout) + } + } + + if prevotes.HasTwoThirdsAny() and msg.Round == state.Round { + event = Majority23PrevotesAny { msg.Height, msg.Round, blockID } + state, msg, timeout = Consensus(event, state) + state = handleStateChange(state, msg, timeout) + } + + case Precommit: + + } + } + } + case timeout := <- timeoutCh: + + case block := <- blockCh: + + } + } +} + +func handleStateChange(state, msg, timeout) State { + if state.Step == Commit { + state = ExecuteBlock(state.LockedValue) + } + if msg != nil { + send msg + } + if timeout != nil { + trigger timeout + } +} + +``` + +### Implementation roadmap + +* implement proposed implementation +* replace currently scattered calls in `ConsensusState` with calls to the new + `Consensus` function +* rename `ConsensusState` to `ConsensusExecutor` to avoid confusion +* propose design for improved separation and clear information flow between + `ConsensusExecutor` and `ConsensusReactor` + +## Status + +Draft. + +## Consequences + +### Positive + +- isolated implementation of the algorithm +- improved testability - simpler to proof correctness +- clearer separation of concerns - easier to reason + +### Negative + +### Neutral diff --git a/sei-tendermint/docs/architecture/adr-033-pubsub.md b/sei-tendermint/docs/architecture/adr-033-pubsub.md new file mode 100644 index 0000000000..7b7912a9f3 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-033-pubsub.md @@ -0,0 +1,247 @@ +# ADR 033: pubsub 2.0 + +Author: Anton Kaliaev (@melekes) + +## Changelog + +02-10-2018: Initial draft + +16-01-2019: Second version based on our conversation with Jae + +17-01-2019: Third version explaining how new design solves current issues + +25-01-2019: Fourth version to treat buffered and unbuffered channels differently + +## Context + +Since the initial version of the pubsub, there's been a number of issues +raised: [#951], [#1879], [#1880]. Some of them are high-level issues questioning the +core design choices made. Others are minor and mostly about the interface of +`Subscribe()` / `Publish()` functions. + +### Sync vs Async + +Now, when publishing a message to subscribers, we can do it in a goroutine: + +_using channels for data transmission_ +```go +for each subscriber { + out := subscriber.outc + go func() { + out <- msg + } +} +``` + +_by invoking callback functions_ +```go +for each subscriber { + go subscriber.callbackFn() +} +``` + +This gives us greater performance and allows us to avoid "slow client problem" +(when other subscribers have to wait for a slow subscriber). A pool of +goroutines can be used to avoid uncontrolled memory growth. + +In certain cases, this is what you want. But in our case, because we need +strict ordering of events (if event A was published before B, the guaranteed +delivery order will be A -> B), we can't publish msg in a new goroutine every time. + +We can also have a goroutine per subscriber, although we'd need to be careful +with the number of subscribers. It's more difficult to implement as well + +unclear if we'll benefit from it (cause we'd be forced to create N additional +channels to distribute msg to these goroutines). + +### Non-blocking send + +There is also a question whenever we should have a non-blocking send. +Currently, sends are blocking, so publishing to one client can block on +publishing to another. This means a slow or unresponsive client can halt the +system. Instead, we can use a non-blocking send: + +```go +for each subscriber { + out := subscriber.outc + select { + case out <- msg: + default: + log("subscriber %v buffer is full, skipping...") + } +} +``` + +This fixes the "slow client problem", but there is no way for a slow client to +know if it had missed a message. We could return a second channel and close it +to indicate subscription termination. On the other hand, if we're going to +stick with blocking send, **devs must always ensure subscriber's handling code +does not block**, which is a hard task to put on their shoulders. + +The interim option is to run goroutines pool for a single message, wait for all +goroutines to finish. This will solve "slow client problem", but we'd still +have to wait `max(goroutine_X_time)` before we can publish the next message. + +### Channels vs Callbacks + +Yet another question is whether we should use channels for message transmission or +call subscriber-defined callback functions. Callback functions give subscribers +more flexibility - you can use mutexes in there, channels, spawn goroutines, +anything you really want. But they also carry local scope, which can result in +memory leaks and/or memory usage increase. + +Go channels are de-facto standard for carrying data between goroutines. + +### Why `Subscribe()` accepts an `out` channel? + +Because in our tests, we create buffered channels (cap: 1). Alternatively, we +can make capacity an argument and return a channel. + +## Decision + +### MsgAndTags + +Use a `MsgAndTags` struct on the subscription channel to indicate what tags the +msg matched. + +```go +type MsgAndTags struct { + Msg interface{} + Tags TagMap +} +``` + +### Subscription Struct + + +Change `Subscribe()` function to return a `Subscription` struct: + +```go +type Subscription struct { + // private fields +} + +func (s *Subscription) Out() <-chan MsgAndTags +func (s *Subscription) Canceled() <-chan struct{} +func (s *Subscription) Err() error +``` + +`Out()` returns a channel onto which messages and tags are published. +`Unsubscribe`/`UnsubscribeAll` does not close the channel to avoid clients from +receiving a nil message. + +`Canceled()` returns a channel that's closed when the subscription is terminated +and supposed to be used in a select statement. + +If the channel returned by `Canceled()` is not closed yet, `Err()` returns nil. +If the channel is closed, `Err()` returns a non-nil error explaining why: +`ErrUnsubscribed` if the subscriber choose to unsubscribe, +`ErrOutOfCapacity` if the subscriber is not pulling messages fast enough and the channel returned by `Out()` became full. +After `Err()` returns a non-nil error, successive calls to `Err() return the same error. + +```go +subscription, err := pubsub.Subscribe(...) +if err != nil { + // ... +} +for { +select { + case msgAndTags <- subscription.Out(): + // ... + case <-subscription.Canceled(): + return subscription.Err() +} +``` + +### Capacity and Subscriptions + +Make the `Out()` channel buffered (with capacity 1) by default. In most cases, we want to +terminate the slow subscriber. Only in rare cases, we want to block the pubsub +(e.g. when debugging consensus). This should lower the chances of the pubsub +being frozen. + +```go +// outCap can be used to set capacity of Out channel +// (1 by default, must be greater than 0). +Subscribe(ctx context.Context, clientID string, query Query, outCap... int) (Subscription, error) { +``` + +Use a different function for an unbuffered channel: + +```go +// Subscription uses an unbuffered channel. Publishing will block. +SubscribeUnbuffered(ctx context.Context, clientID string, query Query) (Subscription, error) { +``` + +SubscribeUnbuffered should not be exposed to users. + +### Blocking/Nonblocking + +The publisher should treat these kinds of channels separately. +It should block on unbuffered channels (for use with internal consensus events +in the consensus tests) and not block on the buffered ones. If a client is too +slow to keep up with it's messages, it's subscription is terminated: + +for each subscription { + out := subscription.outChan + if cap(out) == 0 { + // block on unbuffered channel + out <- msg + } else { + // don't block on buffered channels + select { + case out <- msg: + default: + // set the error, notify on the cancel chan + subscription.err = fmt.Errorf("client is too slow for msg) + close(subscription.cancelChan) + + // ... unsubscribe and close out + } + } +} + +### How this new design solves the current issues? + +[#951] ([#1880]): + +Because of non-blocking send, situation where we'll deadlock is not possible +anymore. If the client stops reading messages, it will be removed. + +[#1879]: + +MsgAndTags is used now instead of a plain message. + +### Future problems and their possible solutions + +[#2826] + +One question I am still pondering about: how to prevent pubsub from slowing +down consensus. We can increase the pubsub queue size (which is 0 now). Also, +it's probably a good idea to limit the total number of subscribers. + +This can be made automatically. Say we set queue size to 1000 and, when it's >= +80% full, refuse new subscriptions. + +## Status + +Implemented + +## Consequences + +### Positive + +- more idiomatic interface +- subscribers know what tags msg was published with +- subscribers aware of the reason their subscription was canceled + +### Negative + +- (since v1) no concurrency when it comes to publishing messages + +### Neutral + + +[#951]: https://github.com/tendermint/tendermint/issues/951 +[#1879]: https://github.com/tendermint/tendermint/issues/1879 +[#1880]: https://github.com/tendermint/tendermint/issues/1880 +[#2826]: https://github.com/tendermint/tendermint/issues/2826 diff --git a/sei-tendermint/docs/architecture/adr-034-priv-validator-file-structure.md b/sei-tendermint/docs/architecture/adr-034-priv-validator-file-structure.md new file mode 100644 index 0000000000..c87cec1328 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-034-priv-validator-file-structure.md @@ -0,0 +1,72 @@ +# ADR 034: PrivValidator file structure + +## Changelog + +03-11-2018: Initial Draft + +## Context + +For now, the PrivValidator file `priv_validator.json` contains mutable and immutable parts. +Even in an insecure mode which does not encrypt private key on disk, it is reasonable to separate +the mutable part and immutable part. + +References: +[#1181](https://github.com/tendermint/tendermint/issues/1181) +[#2657](https://github.com/tendermint/tendermint/issues/2657) +[#2313](https://github.com/tendermint/tendermint/issues/2313) + +## Proposed Solution + +We can split mutable and immutable parts with two structs: +```go +// FilePVKey stores the immutable part of PrivValidator +type FilePVKey struct { + Address types.Address `json:"address"` + PubKey crypto.PubKey `json:"pub_key"` + PrivKey crypto.PrivKey `json:"priv_key"` + + filePath string +} + +// FilePVState stores the mutable part of PrivValidator +type FilePVLastSignState struct { + Height int64 `json:"height"` + Round int `json:"round"` + Step int8 `json:"step"` + Signature []byte `json:"signature,omitempty"` + SignBytes cmn.HexBytes `json:"signbytes,omitempty"` + + filePath string + mtx sync.Mutex +} +``` + +Then we can combine `FilePVKey` with `FilePVLastSignState` and will get the original `FilePV`. + +```go +type FilePV struct { + Key FilePVKey + LastSignState FilePVLastSignState +} +``` + +As discussed, `FilePV` should be located in `config`, and `FilePVLastSignState` should be stored in `data`. The +store path of each file should be specified in `config.yml`. + +What we need to do next is changing the methods of `FilePV`. + +## Status + +Implemented + +## Consequences + +### Positive + +- separate the mutable and immutable of PrivValidator + +### Negative + +- need to add more config for file path + +### Neutral diff --git a/sei-tendermint/docs/architecture/adr-035-documentation.md b/sei-tendermint/docs/architecture/adr-035-documentation.md new file mode 100644 index 0000000000..92cb079168 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-035-documentation.md @@ -0,0 +1,40 @@ +# ADR 035: Documentation + +Author: @zramsay (Zach Ramsay) + +## Changelog + +### November 2nd 2018 + +- initial write-up + +## Context + +The Tendermint documentation has undergone several changes until settling on the current model. Originally, the documentation was hosted on the website and had to be updated asynchronously from the code. Along with the other repositories requiring documentation, the whole stack moved to using Read The Docs to automatically generate, publish, and host the documentation. This, however, was insufficient; the RTD site had advertisement, it wasn't easily accessible to devs, didn't collect metrics, was another set of external links, etc. + +## Decision + +For two reasons, the decision was made to use VuePress: + +1) ability to get metrics (implemented on both Tendermint and SDK) +2) host the documentation on the website as a `/docs` endpoint. + +This is done while maintaining synchrony between the docs and code, i.e., the website is built whenever the docs are updated. + +## Status + +The two points above have been implemented; the `config.js` has a Google Analytics identifier and the documentation workflow has been up and running largely without problems for several months. Details about the documentation build & workflow can be found [here](../DOCS_README.md) + +## Consequences + +Because of the organizational seperation between Tendermint & Cosmos, there is a challenge of "what goes where" for certain aspects of documentation. + +### Positive + +This architecture is largely positive relative to prior docs arrangements. + +### Negative + +A significant portion of the docs automation / build process is in private repos with limited access/visibility to devs. However, these tasks are handled by the SRE team. + +### Neutral diff --git a/sei-tendermint/docs/architecture/adr-036-empty-blocks-abci.md b/sei-tendermint/docs/architecture/adr-036-empty-blocks-abci.md new file mode 100644 index 0000000000..ec4806cfa4 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-036-empty-blocks-abci.md @@ -0,0 +1,38 @@ +# ADR 036: Empty Blocks via ABCI + +## Changelog + +- {date}: {changelog} + +## Context + +> This section contains all the context one needs to understand the current state, and why there is a problem. It should be as succinct as possible and introduce the high level idea behind the solution. + +## Decision + +> This section explains all of the details of the proposed solution, including implementation details. +> It should also describe affects / corollary items that may need to be changed as a part of this. +> If the proposed change will be large, please also indicate a way to do the change to maximize ease of review. +> (e.g. the optimal split of things to do between separate PR's) + +## Status + +> A decision may be "proposed" if it hasn't been agreed upon yet, or "accepted" once it is agreed upon. If a later ADR changes or reverses a decision, it may be marked as "deprecated" or "superseded" with a reference to its replacement. + +{Deprecated|Proposed|Accepted|Declined} + +## Consequences + +> This section describes the consequences, after applying the decision. All consequences should be summarized here, not just the "positive" ones. + +### Positive + +### Negative + +### Neutral + +## References + +> Are there any relevant PR comments, issues that led up to this, or articles referenced for why we made the given design choice? If so link them here! + +- {reference link} diff --git a/sei-tendermint/docs/architecture/adr-037-deliver-block.md b/sei-tendermint/docs/architecture/adr-037-deliver-block.md new file mode 100644 index 0000000000..c5e119c06e --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-037-deliver-block.md @@ -0,0 +1,100 @@ +# ADR 037: Deliver Block + +Author: Daniil Lashin (@danil-lashin) + +## Changelog + +13-03-2019: Initial draft + +## Context + +Initial conversation: https://github.com/tendermint/tendermint/issues/2901 + +Some applications can handle transactions in parallel, or at least some +part of tx processing can be parallelized. Now it is not possible for developer +to execute txs in parallel because Tendermint delivers them consequentially. + +## Decision + +Now Tendermint have `BeginBlock`, `EndBlock`, `Commit`, `DeliverTx` steps +while executing block. This doc proposes merging this steps into one `DeliverBlock` +step. It will allow developers of applications to decide how they want to +execute transactions (in parallel or consequentially). Also it will simplify and +speed up communications between application and Tendermint. + +As @jaekwon [mentioned](https://github.com/tendermint/tendermint/issues/2901#issuecomment-477746128) +in discussion not all application will benefit from this solution. In some cases, +when application handles transaction consequentially, it way slow down the blockchain, +because it need to wait until full block is transmitted to application to start +processing it. Also, in the case of complete change of ABCI, we need to force all the apps +to change their implementation completely. That's why I propose to introduce one more ABCI +type. + +# Implementation Changes + +In addition to default application interface which now have this structure + +```go +type Application interface { + // Info and Mempool methods... + + // Consensus Connection + InitChain(RequestInitChain) ResponseInitChain // Initialize blockchain with validators and other info from TendermintCore + BeginBlock(RequestBeginBlock) ResponseBeginBlock // Signals the beginning of a block + DeliverTx(tx []byte) ResponseDeliverTx // Deliver a tx for full processing + EndBlock(RequestEndBlock) ResponseEndBlock // Signals the end of a block, returns changes to the validator set + Commit() ResponseCommit // Commit the state and return the application Merkle root hash +} +``` + +this doc proposes to add one more: + +```go +type Application interface { + // Info and Mempool methods... + + // Consensus Connection + InitChain(RequestInitChain) ResponseInitChain // Initialize blockchain with validators and other info from TendermintCore + DeliverBlock(RequestDeliverBlock) ResponseDeliverBlock // Deliver full block + Commit() ResponseCommit // Commit the state and return the application Merkle root hash +} + +type RequestDeliverBlock struct { + Hash []byte + Header Header + Txs Txs + LastCommitInfo LastCommitInfo + ByzantineValidators []Evidence +} + +type ResponseDeliverBlock struct { + ValidatorUpdates []ValidatorUpdate + ConsensusParamUpdates *ConsensusParams + Tags []kv.Pair + TxResults []ResponseDeliverTx +} + +``` + +Also, we will need to add new config param, which will specify what kind of ABCI application uses. +For example, it can be `abci_type`. Then we will have 2 types: +- `advanced` - current ABCI +- `simple` - proposed implementation + +## Status + +In review + +## Consequences + +### Positive + +- much simpler introduction and tutorials for new developers (instead of implementing 5 methods whey +will need to implement only 3) +- txs can be handled in parallel +- simpler interface +- faster communications between Tendermint and application + +### Negative + +- Tendermint should now support 2 kinds of ABCI diff --git a/sei-tendermint/docs/architecture/adr-038-non-zero-start-height.md b/sei-tendermint/docs/architecture/adr-038-non-zero-start-height.md new file mode 100644 index 0000000000..7dd474ec76 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-038-non-zero-start-height.md @@ -0,0 +1,38 @@ +# ADR 038: Non-zero start height + +## Changelog + +- {date}: {changelog} + +## Context + +> This section contains all the context one needs to understand the current state, and why there is a problem. It should be as succinct as possible and introduce the high level idea behind the solution. + +## Decision + +> This section explains all of the details of the proposed solution, including implementation details. +> It should also describe affects / corollary items that may need to be changed as a part of this. +> If the proposed change will be large, please also indicate a way to do the change to maximize ease of review. +> (e.g. the optimal split of things to do between separate PR's) + +## Status + +> A decision may be "proposed" if it hasn't been agreed upon yet, or "accepted" once it is agreed upon. If a later ADR changes or reverses a decision, it may be marked as "deprecated" or "superseded" with a reference to its replacement. + +{Deprecated|Proposed|Accepted|Declined} + +## Consequences + +> This section describes the consequences, after applying the decision. All consequences should be summarized here, not just the "positive" ones. + +### Positive + +### Negative + +### Neutral + +## References + +> Are there any relevant PR comments, issues that led up to this, or articles referenced for why we made the given design choice? If so link them here! + +- {reference link} diff --git a/sei-tendermint/docs/architecture/adr-039-peer-behaviour.md b/sei-tendermint/docs/architecture/adr-039-peer-behaviour.md new file mode 100644 index 0000000000..4ad051a35b --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-039-peer-behaviour.md @@ -0,0 +1,159 @@ +# ADR 039: Peer Behaviour Interface + +## Changelog +* 07-03-2019: Initial draft +* 14-03-2019: Updates from feedback + +## Context + +The responsibility for signaling and acting upon peer behaviour lacks a single +owning component and is heavily coupled with the network stack[1](#references). Reactors +maintain a reference to the `p2p.Switch` which they use to call +`switch.StopPeerForError(...)` when a peer misbehaves and +`switch.MarkAsGood(...)` when a peer contributes in some meaningful way. +While the switch handles `StopPeerForError` internally, the `MarkAsGood` +method delegates to another component, `p2p.AddrBook`. This scheme of delegation +across Switch obscures the responsibility for handling peer behaviour +and ties up the reactors in a larger dependency graph when testing. + +## Decision + +Introduce a `PeerBehaviour` interface and concrete implementations which +provide methods for reactors to signal peer behaviour without direct +coupling `p2p.Switch`. Introduce a ErrorBehaviourPeer to provide +concrete reasons for stopping peers. Introduce GoodBehaviourPeer to provide +concrete ways in which a peer contributes. + +### Implementation Changes + +PeerBehaviour then becomes an interface for signaling peer errors as well +as for marking peers as `good`. + +```go +type PeerBehaviour interface { + Behaved(peer Peer, reason GoodBehaviourPeer) + Errored(peer Peer, reason ErrorBehaviourPeer) +} +``` + +Instead of signaling peers to stop with arbitrary reasons: +`reason interface{}` + +We introduce a concrete error type ErrorBehaviourPeer: +```go +type ErrorBehaviourPeer int + +const ( + ErrorBehaviourUnknown = iota + ErrorBehaviourBadMessage + ErrorBehaviourMessageOutofOrder + ... +) +``` + +To provide additional information on the ways a peer contributed, we introduce +the GoodBehaviourPeer type. + +```go +type GoodBehaviourPeer int + +const ( + GoodBehaviourVote = iota + GoodBehaviourBlockPart + ... +) +``` + +As a first iteration we provide a concrete implementation which wraps +the switch: +```go +type SwitchedPeerBehaviour struct { + sw *Switch +} + +func (spb *SwitchedPeerBehaviour) Errored(peer Peer, reason ErrorBehaviourPeer) { + spb.sw.StopPeerForError(peer, reason) +} + +func (spb *SwitchedPeerBehaviour) Behaved(peer Peer, reason GoodBehaviourPeer) { + spb.sw.MarkPeerAsGood(peer) +} + +func NewSwitchedPeerBehaviour(sw *Switch) *SwitchedPeerBehaviour { + return &SwitchedPeerBehaviour{ + sw: sw, + } +} +``` + +Reactors, which are often difficult to unit test[2](#references) could use an implementation which exposes the signals produced by the reactor in +manufactured scenarios: + +```go +type ErrorBehaviours map[Peer][]ErrorBehaviourPeer +type GoodBehaviours map[Peer][]GoodBehaviourPeer + +type StorePeerBehaviour struct { + eb ErrorBehaviours + gb GoodBehaviours +} + +func NewStorePeerBehaviour() *StorePeerBehaviour{ + return &StorePeerBehaviour{ + eb: make(ErrorBehaviours), + gb: make(GoodBehaviours), + } +} + +func (spb StorePeerBehaviour) Errored(peer Peer, reason ErrorBehaviourPeer) { + if _, ok := spb.eb[peer]; !ok { + spb.eb[peer] = []ErrorBehaviours{reason} + } else { + spb.eb[peer] = append(spb.eb[peer], reason) + } +} + +func (mpb *StorePeerBehaviour) GetErrored() ErrorBehaviours { + return mpb.eb +} + + +func (spb StorePeerBehaviour) Behaved(peer Peer, reason GoodBehaviourPeer) { + if _, ok := spb.gb[peer]; !ok { + spb.gb[peer] = []GoodBehaviourPeer{reason} + } else { + spb.gb[peer] = append(spb.gb[peer], reason) + } +} + +func (spb *StorePeerBehaviour) GetBehaved() GoodBehaviours { + return spb.gb +} +``` + +## Status + +Accepted + +## Consequences + +### Positive + + * De-couple signaling from acting upon peer behaviour. + * Reduce the coupling of reactors and the Switch and the network + stack + * The responsibility of managing peer behaviour can be migrated to + a single component instead of split between the switch and the + address book. + +### Negative + + * The first iteration will simply wrap the Switch and introduce a + level of indirection. + +### Neutral + +## References + +1. Issue [#2067](https://github.com/tendermint/tendermint/issues/2067): P2P Refactor +2. PR: [#3506](https://github.com/tendermint/tendermint/pull/3506): ADR 036: Blockchain Reactor Refactor diff --git a/sei-tendermint/docs/architecture/adr-040-blockchain-reactor-refactor.md b/sei-tendermint/docs/architecture/adr-040-blockchain-reactor-refactor.md new file mode 100644 index 0000000000..520d55b5d2 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-040-blockchain-reactor-refactor.md @@ -0,0 +1,534 @@ +# ADR 040: Blockchain Reactor Refactor + +## Changelog + +19-03-2019: Initial draft + +## Context + +The Blockchain Reactor's high level responsibility is to enable peers who are far behind the current state of the +blockchain to quickly catch up by downloading many blocks in parallel from its peers, verifying block correctness, and +executing them against the ABCI application. We call the protocol executed by the Blockchain Reactor `fast-sync`. +The current architecture diagram of the blockchain reactor can be found here: + +![Blockchain Reactor Architecture Diagram](img/bc-reactor.png) + +The current architecture consists of dozens of routines and it is tightly depending on the `Switch`, making writing +unit tests almost impossible. Current tests require setting up complex dependency graphs and dealing with concurrency. +Note that having dozens of routines is in this case overkill as most of the time routines sits idle waiting for +something to happen (message to arrive or timeout to expire). Due to dependency on the `Switch`, testing relatively +complex network scenarios and failures (for example adding and removing peers) is very complex tasks and frequently lead +to complex tests with not deterministic behavior ([#3400]). Impossibility to write proper tests makes confidence in +the code low and this resulted in several issues (some are fixed in the meantime and some are still open): +[#3400], [#2897], [#2896], [#2699], [#2888], [#2457], [#2622], [#2026]. + +## Decision + +To remedy these issues we plan a major refactor of the blockchain reactor. The proposed architecture is largely inspired +by ADR-30 and is presented on the following diagram: +![Blockchain Reactor Refactor Diagram](img/bc-reactor-refactor.png) + +We suggest a concurrency architecture where the core algorithm (we call it `Controller`) is extracted into a finite +state machine. The active routine of the reactor is called `Executor` and is responsible for receiving and sending +messages from/to peers and triggering timeouts. What messages should be sent and timeouts triggered is determined mostly +by the `Controller`. The exception is `Peer Heartbeat` mechanism which is `Executor` responsibility. The heartbeat +mechanism is used to remove slow and unresponsive peers from the peer list. Writing of unit tests is simpler with +this architecture as most of the critical logic is part of the `Controller` function. We expect that simpler concurrency +architecture will not have significant negative effect on the performance of this reactor (to be confirmed by +experimental evaluation). + + +### Implementation changes + +We assume the following system model for "fast sync" protocol: + +* a node is connected to a random subset of all nodes that represents its peer set. Some nodes are correct and some + might be faulty. We don't make assumptions about ratio of faulty nodes, i.e., it is possible that all nodes in some + peer set are faulty. +* we assume that communication between correct nodes is synchronous, i.e., if a correct node `p` sends a message `m` to + a correct node `q` at time `t`, then `q` will receive message the latest at time `t+Delta` where `Delta` is a system + parameter that is known by network participants. `Delta` is normally chosen to be an order of magnitude higher than + the real communication delay (maximum) between correct nodes. Therefore if a correct node `p` sends a request message + to a correct node `q` at time `t` and there is no the corresponding reply at time `t + 2*Delta`, then `p` can assume + that `q` is faulty. Note that the network assumptions for the consensus reactor are different (we assume partially + synchronous model there). + +The requirements for the "fast sync" protocol are formally specified as follows: + +- `Correctness`: If a correct node `p` is connected to a correct node `q` for a long enough period of time, then `p` +- will eventually download all requested blocks from `q`. +- `Termination`: If a set of peers of a correct node `p` is stable (no new nodes are added to the peer set of `p`) for +- a long enough period of time, then protocol eventually terminates. +- `Fairness`: A correct node `p` sends requests for blocks to all peers from its peer set. + +As explained above, the `Executor` is responsible for sending and receiving messages that are part of the `fast-sync` +protocol. The following messages are exchanged as part of `fast-sync` protocol: + +``` go +type Message int +const ( + MessageUnknown Message = iota + MessageStatusRequest + MessageStatusResponse + MessageBlockRequest + MessageBlockResponse +) +``` +`MessageStatusRequest` is sent periodically to all peers as a request for a peer to provide its current height. It is +part of the `Peer Heartbeat` mechanism and a failure to respond timely to this message results in a peer being removed +from the peer set. Note that the `Peer Heartbeat` mechanism is used only while a peer is in `fast-sync` mode. We assume +here existence of a mechanism that gives node a possibility to inform its peers that it is in the `fast-sync` mode. + +``` go +type MessageStatusRequest struct { + SeqNum int64 // sequence number of the request +} +``` +`MessageStatusResponse` is sent as a response to `MessageStatusRequest` to inform requester about the peer current +height. + +``` go +type MessageStatusResponse struct { + SeqNum int64 // sequence number of the corresponding request + Height int64 // current peer height +} +``` + +`MessageBlockRequest` is used to make a request for a block and the corresponding commit certificate at a given height. + +``` go +type MessageBlockRequest struct { + Height int64 +} +``` + +`MessageBlockResponse` is a response for the corresponding block request. In addition to providing the block and the +corresponding commit certificate, it contains also a current peer height. + +``` go +type MessageBlockResponse struct { + Height int64 + Block Block + Commit Commit + PeerHeight int64 +} +``` + +In addition to sending and receiving messages, and `HeartBeat` mechanism, controller is also managing timeouts +that are triggered upon `Controller` request. `Controller` is then informed once a timeout expires. + +``` go +type TimeoutTrigger int +const ( + TimeoutUnknown TimeoutTrigger = iota + TimeoutResponseTrigger + TimeoutTerminationTrigger +) +``` + +The `Controller` can be modelled as a function with clearly defined inputs: + +* `State` - current state of the node. Contains data about connected peers and its behavior, pending requests, +* received blocks, etc. +* `Event` - significant events in the network. + +producing clear outputs: + +* `State` - updated state of the node, +* `MessageToSend` - signal what message to send and to which peer +* `TimeoutTrigger` - signal that timeout should be triggered. + + +We consider the following `Event` types: + +``` go +type Event int +const ( + EventUnknown Event = iota + EventStatusReport + EventBlockRequest + EventBlockResponse + EventRemovePeer + EventTimeoutResponse + EventTimeoutTermination +) +``` + +`EventStatusResponse` event is generated once `MessageStatusResponse` is received by the `Executor`. + +``` go +type EventStatusReport struct { + PeerID ID + Height int64 +} +``` + +`EventBlockRequest` event is generated once `MessageBlockRequest` is received by the `Executor`. + +``` go +type EventBlockRequest struct { + Height int64 + PeerID p2p.ID +} +``` +`EventBlockResponse` event is generated upon reception of `MessageBlockResponse` message by the `Executor`. + +``` go +type EventBlockResponse struct { + Height int64 + Block Block + Commit Commit + PeerID ID + PeerHeight int64 +} +``` +`EventRemovePeer` is generated by `Executor` to signal that the connection to a peer is closed due to peer misbehavior. + +``` go +type EventRemovePeer struct { + PeerID ID +} +``` +`EventTimeoutResponse` is generated by `Executor` to signal that a timeout triggered by `TimeoutResponseTrigger` has +expired. + +``` go +type EventTimeoutResponse struct { + PeerID ID + Height int64 +} +``` +`EventTimeoutTermination` is generated by `Executor` to signal that a timeout triggered by `TimeoutTerminationTrigger` +has expired. + +``` go +type EventTimeoutTermination struct { + Height int64 +} +``` + +`MessageToSend` is just a wrapper around `Message` type that contains id of the peer to which message should be sent. + +``` go +type MessageToSend struct { + PeerID ID + Message Message +} +``` + +The Controller state machine can be in two modes: `ModeFastSync` when +a node is trying to catch up with the network by downloading committed blocks, +and `ModeConsensus` in which it executes Tendermint consensus protocol. We +consider that `fast sync` mode terminates once the Controller switch to +`ModeConsensus`. + +``` go +type Mode int +const ( + ModeUnknown Mode = iota + ModeFastSync + ModeConsensus +) +``` +`Controller` is managing the following state: + +``` go +type ControllerState struct { + Height int64 // the first block that is not committed + Mode Mode // mode of operation + PeerMap map[ID]PeerStats // map of peer IDs to peer statistics + MaxRequestPending int64 // maximum height of the pending requests + FailedRequests []int64 // list of failed block requests + PendingRequestsNum int // total number of pending requests + Store []BlockInfo // contains list of downloaded blocks + Executor BlockExecutor // store, verify and executes blocks +} +``` + +`PeerStats` data structure keeps for every peer its current height and a list of pending requests for blocks. + +``` go +type PeerStats struct { + Height int64 + PendingRequest int64 // a request sent to this peer +} +``` + +`BlockInfo` data structure is used to store information (as part of block store) about downloaded blocks: from what peer + a block and the corresponding commit certificate are received. +``` go +type BlockInfo struct { + Block Block + Commit Commit + PeerID ID // a peer from which we received the corresponding Block and Commit +} +``` + +The `Controller` is initialized by providing an initial height (`startHeight`) from which it will start downloading +blocks from peers and the current state of the `BlockExecutor`. + +``` go +func NewControllerState(startHeight int64, executor BlockExecutor) ControllerState { + state = ControllerState {} + state.Height = startHeight + state.Mode = ModeFastSync + state.MaxRequestPending = startHeight - 1 + state.PendingRequestsNum = 0 + state.Executor = executor + initialize state.PeerMap, state.FailedRequests and state.Store to empty data structures + return state +} +``` + +The core protocol logic is given with the following function: + +``` go +func handleEvent(state ControllerState, event Event) (ControllerState, Message, TimeoutTrigger, Error) { + msg = nil + timeout = nil + error = nil + + switch state.Mode { + case ModeConsensus: + switch event := event.(type) { + case EventBlockRequest: + msg = createBlockResponseMessage(state, event) + return state, msg, timeout, error + default: + error = "Only respond to BlockRequests while in ModeConsensus!" + return state, msg, timeout, error + } + + case ModeFastSync: + switch event := event.(type) { + case EventBlockRequest: + msg = createBlockResponseMessage(state, event) + return state, msg, timeout, error + + case EventStatusResponse: + return handleEventStatusResponse(event, state) + + case EventRemovePeer: + return handleEventRemovePeer(event, state) + + case EventBlockResponse: + return handleEventBlockResponse(event, state) + + case EventResponseTimeout: + return handleEventResponseTimeout(event, state) + + case EventTerminationTimeout: + // Termination timeout is triggered in case of empty peer set and in case there are no pending requests. + // If this timeout expires and in the meantime no new peers are added or new pending requests are made + // then `fast-sync` mode terminates by switching to `ModeConsensus`. + // Note that termination timeout should be higher than the response timeout. + if state.Height == event.Height && state.PendingRequestsNum == 0 { state.State = ConsensusMode } + return state, msg, timeout, error + + default: + error = "Received unknown event type!" + return state, msg, timeout, error + } + } +} +``` + +``` go +func createBlockResponseMessage(state ControllerState, event BlockRequest) MessageToSend { + msgToSend = nil + if _, ok := state.PeerMap[event.PeerID]; !ok { peerStats = PeerStats{-1, -1} } + if state.Executor.ContainsBlockWithHeight(event.Height) && event.Height > peerStats.Height { + peerStats = event.Height + msg = BlockResponseMessage{ + Height: event.Height, + Block: state.Executor.getBlock(eventHeight), + Commit: state.Executor.getCommit(eventHeight), + PeerID: event.PeerID, + CurrentHeight: state.Height - 1, + } + msgToSend = MessageToSend { event.PeerID, msg } + } + state.PeerMap[event.PeerID] = peerStats + return msgToSend +} +``` + +``` go +func handleEventStatusResponse(event EventStatusResponse, state ControllerState) (ControllerState, MessageToSend, TimeoutTrigger, Error) { + if _, ok := state.PeerMap[event.PeerID]; !ok { + peerStats = PeerStats{ -1, -1 } + } else { + peerStats = state.PeerMap[event.PeerID] + } + + if event.Height > peerStats.Height { peerStats.Height = event.Height } + // if there are no pending requests for this peer, try to send him a request for block + if peerStats.PendingRequest == -1 { + msg = createBlockRequestMessages(state, event.PeerID, peerStats.Height) + // msg is nil if no request for block can be made to a peer at this point in time + if msg != nil { + peerStats.PendingRequests = msg.Height + state.PendingRequestsNum++ + // when a request for a block is sent to a peer, a response timeout is triggered. If no corresponding block is sent by the peer + // during response timeout period, then the peer is considered faulty and is removed from the peer set. + timeout = ResponseTimeoutTrigger{ msg.PeerID, msg.Height, PeerTimeout } + } else if state.PendingRequestsNum == 0 { + // if there are no pending requests and no new request can be placed to the peer, termination timeout is triggered. + // If termination timeout expires and we are still at the same height and there are no pending requests, the "fast-sync" + // mode is finished and we switch to `ModeConsensus`. + timeout = TerminationTimeoutTrigger{ state.Height, TerminationTimeout } + } + } + state.PeerMap[event.PeerID] = peerStats + return state, msg, timeout, error +} +``` + +``` go +func handleEventRemovePeer(event EventRemovePeer, state ControllerState) (ControllerState, MessageToSend, TimeoutTrigger, Error) { + if _, ok := state.PeerMap[event.PeerID]; ok { + pendingRequest = state.PeerMap[event.PeerID].PendingRequest + // if a peer is removed from the peer set, its pending request is declared failed and added to the `FailedRequests` list + // so it can be retried. + if pendingRequest != -1 { + add(state.FailedRequests, pendingRequest) + } + state.PendingRequestsNum-- + delete(state.PeerMap, event.PeerID) + // if the peer set is empty after removal of this peer then termination timeout is triggered. + if state.PeerMap.isEmpty() { + timeout = TerminationTimeoutTrigger{ state.Height, TerminationTimeout } + } + } else { error = "Removing unknown peer!" } + return state, msg, timeout, error +``` + +``` go +func handleEventBlockResponse(event EventBlockResponse, state ControllerState) (ControllerState, MessageToSend, TimeoutTrigger, Error) + if state.PeerMap[event.PeerID] { + peerStats = state.PeerMap[event.PeerID] + // when expected block arrives from a peer, it is added to the store so it can be verified and if correct executed after. + if peerStats.PendingRequest == event.Height { + peerStats.PendingRequest = -1 + state.PendingRequestsNum-- + if event.PeerHeight > peerStats.Height { peerStats.Height = event.PeerHeight } + state.Store[event.Height] = BlockInfo{ event.Block, event.Commit, event.PeerID } + // blocks are verified sequentially so adding a block to the store does not mean that it will be immediately verified + // as some of the previous blocks might be missing. + state = verifyBlocks(state) // it can lead to event.PeerID being removed from peer list + if _, ok := state.PeerMap[event.PeerID]; ok { + // we try to identify new request for a block that can be asked to the peer + msg = createBlockRequestMessage(state, event.PeerID, peerStats.Height) + if msg != nil { + peerStats.PendingRequests = msg.Height + state.PendingRequestsNum++ + // if request for block is made, response timeout is triggered + timeout = ResponseTimeoutTrigger{ msg.PeerID, msg.Height, PeerTimeout } + } else if state.PeerMap.isEmpty() || state.PendingRequestsNum == 0 { + // if the peer map is empty (the peer can be removed as block verification failed) or there are no pending requests + // termination timeout is triggered. + timeout = TerminationTimeoutTrigger{ state.Height, TerminationTimeout } + } + } + } else { error = "Received Block from wrong peer!" } + } else { error = "Received Block from unknown peer!" } + + state.PeerMap[event.PeerID] = peerStats + return state, msg, timeout, error +} +``` + +``` go +func handleEventResponseTimeout(event, state) { + if _, ok := state.PeerMap[event.PeerID]; ok { + peerStats = state.PeerMap[event.PeerID] + // if a response timeout expires and the peer hasn't delivered the block, the peer is removed from the peer list and + // the request is added to the `FailedRequests` so the block can be downloaded from other peer + if peerStats.PendingRequest == event.Height { + add(state.FailedRequests, pendingRequest) + delete(state.PeerMap, event.PeerID) + state.PendingRequestsNum-- + // if peer set is empty, then termination timeout is triggered + if state.PeerMap.isEmpty() { + timeout = TimeoutTrigger{ state.Height, TerminationTimeout } + } + } + } + return state, msg, timeout, error +} +``` + +``` go +func createBlockRequestMessage(state ControllerState, peerID ID, peerHeight int64) MessageToSend { + msg = nil + blockHeight = -1 + r = find request in state.FailedRequests such that r <= peerHeight // returns `nil` if there are no such request + // if there is a height in failed requests that can be downloaded from the peer send request to it + if r != nil { + blockNumber = r + delete(state.FailedRequests, r) + } else if state.MaxRequestPending < peerHeight { + // if height of the maximum pending request is smaller than peer height, then ask peer for next block + state.MaxRequestPending++ + blockHeight = state.MaxRequestPending // increment state.MaxRequestPending and then return the new value + } + + if blockHeight > -1 { msg = MessageToSend { peerID, MessageBlockRequest { blockHeight } } + return msg +} +``` + +``` go +func verifyBlocks(state State) State { + done = false + for !done { + block = state.Store[height] + if block != nil { + verified = verify block.Block using block.Commit // return `true` is verification succeed, 'false` otherwise + + if verified { + block.Execute() // executing block is costly operation so it might make sense executing asynchronously + state.Height++ + } else { + // if block verification failed, then it is added to `FailedRequests` and the peer is removed from the peer set + add(state.FailedRequests, height) + state.Store[height] = nil + if _, ok := state.PeerMap[block.PeerID]; ok { + pendingRequest = state.PeerMap[block.PeerID].PendingRequest + // if there is a pending request sent to the peer that is just to be removed from the peer set, add it to `FailedRequests` + if pendingRequest != -1 { + add(state.FailedRequests, pendingRequest) + state.PendingRequestsNum-- + } + delete(state.PeerMap, event.PeerID) + } + done = true + } + } else { done = true } + } + return state +} +``` + +In the proposed architecture `Controller` is not active task, i.e., it is being called by the `Executor`. Depending on +the return values returned by `Controller`,`Executor` will send a message to some peer (`msg` != nil), trigger a +timeout (`timeout` != nil) or deal with errors (`error` != nil). +In case a timeout is triggered, it will provide as an input to `Controller` the corresponding timeout event once +timeout expires. + + +## Status + +Draft. + +## Consequences + +### Positive + +- isolated implementation of the algorithm +- improved testability - simpler to prove correctness +- clearer separation of concerns - easier to reason + +### Negative + +### Neutral diff --git a/sei-tendermint/docs/architecture/adr-041-proposer-selection-via-abci.md b/sei-tendermint/docs/architecture/adr-041-proposer-selection-via-abci.md new file mode 100644 index 0000000000..58bf20de37 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-041-proposer-selection-via-abci.md @@ -0,0 +1,29 @@ +# ADR 041: Application should be in charge of validator set + +## Changelog + + +## Context + +Currently Tendermint is in charge of validator set and proposer selection. Application can only update the validator set changes at EndBlock time. +To support Light Client, application should make sure at least 2/3 of validator are same at each round. + +Application should have full control on validator set changes and proposer selection. In each round Application can provide the list of validators for next rounds in order with their power. The proposer is the first in the list, in case the proposer is offline, the next one can propose the proposal and so on. + +## Decision + +## Status + +## Consequences + +Tendermint is no more in charge of validator set and its changes. The Application should provide the correct information. +However Tendermint can provide psedo-randomness algorithm to help application for selecting proposer in each round. + +### Positive + +### Negative + +### Neutral + +## References + diff --git a/sei-tendermint/docs/architecture/adr-042-state-sync.md b/sei-tendermint/docs/architecture/adr-042-state-sync.md new file mode 100644 index 0000000000..72d71ae226 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-042-state-sync.md @@ -0,0 +1,235 @@ +# ADR 042: State Sync Design + +## Changelog + +2019-06-27: Init by EB +2019-07-04: Follow up by brapse + +## Context +StateSync is a feature which would allow a new node to receive a +snapshot of the application state without downloading blocks or going +through consensus. Once downloaded, the node could switch to FastSync +and eventually participate in consensus. The goal of StateSync is to +facilitate setting up a new node as quickly as possible. + +## Considerations +Because Tendermint doesn't know anything about the application state, +StateSync will broker messages between nodes and through +the ABCI to an opaque applicaton. The implementation will have multiple +touch points on both the tendermint code base and ABCI application. + +* A StateSync reactor to facilitate peer communication - Tendermint +* A Set of ABCI messages to transmit application state to the reactor - Tendermint +* A Set of MultiStore APIs for exposing snapshot data to the ABCI - ABCI application +* A Storage format with validation and performance considerations - ABCI application + +### Implementation Properties +Beyond the approach, any implementation of StateSync can be evaluated +across different criteria: + +* Speed: Expected throughput of producing and consuming snapshots +* Safety: Cost of pushing invalid snapshots to a node +* Liveness: Cost of preventing a node from receiving/constructing a snapshot +* Effort: How much effort does an implementation require + +### Implementation Question +* What is the format of a snapshot + * Complete snapshot + * Ordered IAVL key ranges + * Compressed individually chunks which can be validated +* How is data validated + * Trust a peer with it's data blindly + * Trust a majority of peers + * Use light client validation to validate each chunk against consensus + produced merkle tree root +* What are the performance characteristics + * Random vs sequential reads + * How parallelizeable is the scheduling algorithm + +### Proposals +Broadly speaking there are two approaches to this problem which have had +varying degrees of discussion and progress. These approach can be +summarized as: + +**Lazy:** Where snapshots are produced dynamically at request time. This +solution would use the existing data structure. +**Eager:** Where snapshots are produced periodically and served from disk at +request time. This solution would create an auxiliary data structure +optimized for batch read/writes. + +Additionally the propsosals tend to vary on how they provide safety +properties. + +**LightClient** Where a client can aquire the merkle root from the block +headers synchronized from a trusted validator set. Subsets of the application state, +called chunks can therefore be validated on receipt to ensure each chunk +is part of the merkle root. + +**Majority of Peers** Where manifests of chunks along with checksums are +downloaded and compared against versions provided by a majority of +peers. + +#### Lazy StateSync +An initial specification was published by Alexis Sellier. +In this design, the state has a given `size` of primitive elements (like +keys or nodes), each element is assigned a number from 0 to `size-1`, +and chunks consists of a range of such elements. Ackratos raised +[some concerns](https://docs.google.com/document/d/1npGTAa1qxe8EQZ1wG0a0Sip9t5oX2vYZNUDwr_LVRR4/edit) +about this design, somewhat specific to the IAVL tree, and mainly concerning +performance of random reads and of iterating through the tree to determine element numbers +(ie. elements aren't indexed by the element number). + +An alternative design was suggested by Jae Kwon in +[#3639](https://github.com/tendermint/tendermint/issues/3639) where chunking +happens lazily and in a dynamic way: nodes request key ranges from their peers, +and peers respond with some subset of the +requested range and with notes on how to request the rest in parallel from other +peers. Unlike chunk numbers, keys can be verified directly. And if some keys in the +range are ommitted, proofs for the range will fail to verify. +This way a node can start by requesting the entire tree from one peer, +and that peer can respond with say the first few keys, and the ranges to request +from other peers. + +Additionally, per chunk validation tends to come more naturally to the +Lazy approach since it tends to use the existing structure of the tree +(ie. keys or nodes) rather than state-sync specific chunks. Such a +design for tendermint was originally tracked in +[#828](https://github.com/tendermint/tendermint/issues/828). + +#### Eager StateSync +Warp Sync as implemented in OpenEthereum to rapidly +download both blocks and state snapshots from peers. Data is carved into ~4MB +chunks and snappy compressed. Hashes of snappy compressed chunks are stored in a +manifest file which co-ordinates the state-sync. Obtaining a correct manifest +file seems to require an honest majority of peers. This means you may not find +out the state is incorrect until you download the whole thing and compare it +with a verified block header. + +A similar solution was implemented by Binance in +[#3594](https://github.com/tendermint/tendermint/pull/3594) +based on their initial implementation in +[PR #3243](https://github.com/tendermint/tendermint/pull/3243) +and [some learnings](https://docs.google.com/document/d/1npGTAa1qxe8EQZ1wG0a0Sip9t5oX2vYZNUDwr_LVRR4/edit). +Note this still requires the honest majority peer assumption. + +As an eager protocol, warp-sync can efficiently compress larger, more +predicatable chunks once per snapshot and service many new peers. By +comparison lazy chunkers would have to compress each chunk at request +time. + +### Analysis of Lazy vs Eager +Lazy vs Eager have more in common than they differ. They all require +reactors on the tendermint side, a set of ABCI messages and a method for +serializing/deserializing snapshots facilitated by a SnapshotFormat. + +The biggest difference between Lazy and Eager proposals is in the +read/write patterns necessitated by serving a snapshot chunk. +Specifically, Lazy State Sync performs random reads to the underlying data +structure while Eager can optimize for sequential reads. + +This distinctin between approaches was demonstrated by Binance's +[ackratos](https://github.com/ackratos) in their implementation of [Lazy +State sync](https://github.com/tendermint/tendermint/pull/3243), The +[analysis](https://docs.google.com/document/d/1npGTAa1qxe8EQZ1wG0a0Sip9t5oX2vYZNUDwr_LVRR4/) +of the performance, and follow up implementation of [Warp +Sync](http://github.com/tendermint/tendermint/pull/3594). + +#### Compairing Security Models +There are several different security models which have been +discussed/proposed in the past but generally fall into two categories. + +Light client validation: In which the node receiving data is expected to +first perform a light client sync and have all the nessesary block +headers. Within the trusted block header (trusted in terms of from a +validator set subject to [weak +subjectivity](https://github.com/tendermint/tendermint/pull/3795)) and +can compare any subset of keys called a chunk against the merkle root. +The advantage of light client validation is that the block headers are +signed by validators which have something to lose for malicious +behaviour. If a validator were to provide an invalid proof, they can be +slashed. + +Majority of peer validation: A manifest file containing a list of chunks +along with checksums of each chunk is downloaded from a +trusted source. That source can be a community resource similar to +[sum.golang.org](https://sum.golang.org) or downloaded from the majority +of peers. One disadantage of the majority of peer security model is the +vuliberability to eclipse attacks in which a malicious users looks to +saturate a target node's peer list and produce a manufactured picture of +majority. + +A third option would be to include snapshot related data in the +block header. This could include the manifest with related checksums and be +secured through consensus. One challenge of this approach is to +ensure that creating snapshots does not put undo burden on block +propsers by synchronizing snapshot creation and block creation. One +approach to minimizing the burden is for snapshots for height +`H` to be included in block `H+n` where `n` is some `n` block away, +giving the block propser enough time to complete the snapshot +asynchronousy. + +## Proposal: Eager StateSync With Per Chunk Light Client Validation +The conclusion after some concideration of the advantages/disadvances of +eager/lazy and different security models is to produce a state sync +which eagerly produces snapshots and uses light client validation. This +approach has the performance advantages of pre-computing efficient +snapshots which can streamed to new nodes on demand using sequential IO. +Secondly, by using light client validation we cna validate each chunk on +receipt and avoid the potential eclipse attack of majority of peer based +security. + +### Implementation +Tendermint is responsible for downloading and verifying chunks of +AppState from peers. ABCI Application is responsible for taking +AppStateChunk objects from TM and constructing a valid state tree whose +root corresponds with the AppHash of syncing block. In particular we +will need implement: + +* Build new StateSync reactor brokers message transmission between the peers + and the ABCI application +* A set of ABCI Messages +* Design SnapshotFormat as an interface which can: + * validate chunks + * read/write chunks from file + * read/write chunks to/from application state store + * convert manifests into chunkRequest ABCI messages +* Implement SnapshotFormat for cosmos-hub with concrete implementation for: + * read/write chunks in a way which can be: + * parallelized across peers + * validated on receipt + * read/write to/from IAVL+ tree + +![StateSync Architecture Diagram](img/state-sync.png) + +## Implementation Path +* Create StateSync reactor based on [#3753](https://github.com/tendermint/tendermint/pull/3753) +* Design SnapshotFormat with an eye towards cosmos-hub implementation +* ABCI message to send/receive SnapshotFormat +* IAVL+ changes to support SnapshotFormat +* Deliver Warp sync (no chunk validation) +* light client implementation for weak subjectivity +* Deliver StateSync with chunk validation + +## Status + +Proposed + +## Concequences + +### Neutral + +### Positive +* Safe & performant state sync design substantiated with real world implementation experience +* General interfaces allowing application specific innovation +* Parallizable implementation trajectory with reasonable engineering effort + +### Negative +* Static Scheduling lacks opportunity for real time chunk availability optimizations + +## References +[sync: Sync current state without full replay for Applications](https://github.com/tendermint/tendermint/issues/828) - original issue +[tendermint state sync proposal 2](https://docs.google.com/document/d/1npGTAa1qxe8EQZ1wG0a0Sip9t5oX2vYZNUDwr_LVRR4/edit) - ackratos proposal +[proposal 2 implementation](https://github.com/tendermint/tendermint/pull/3243) - ackratos implementation +[WIP General/Lazy State-Sync pseudo-spec](https://github.com/tendermint/tendermint/issues/3639) - Jae Proposal +[Warp Sync Implementation](https://github.com/tendermint/tendermint/pull/3594) - ackratos +[Chunk Proposal](https://github.com/tendermint/tendermint/pull/3799) - Bucky proposed diff --git a/sei-tendermint/docs/architecture/adr-043-blockchain-riri-org.md b/sei-tendermint/docs/architecture/adr-043-blockchain-riri-org.md new file mode 100644 index 0000000000..19c2334c37 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-043-blockchain-riri-org.md @@ -0,0 +1,404 @@ +# ADR 043: Blockhchain Reactor Riri-Org + +## Changelog + +- 18-06-2019: Initial draft +- 08-07-2019: Reviewed +- 29-11-2019: Implemented +- 14-02-2020: Updated with the implementation details + +## Context + +The blockchain reactor is responsible for two high level processes:sending/receiving blocks from peers and FastSync-ing blocks to catch upnode who is far behind. The goal of [ADR-40](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-040-blockchain-reactor-refactor.md) was to refactor these two processes by separating business logic currently wrapped up in go-channels into pure `handle*` functions. While the ADR specified what the final form of the reactor might look like it lacked guidance on intermediary steps to get there. +The following diagram illustrates the state of the [blockchain-reorg](https://github.com/tendermint/tendermint/pull/3561) reactor which will be referred to as `v1`. + +![v1 Blockchain Reactor Architecture +Diagram](https://github.com/tendermint/tendermint/blob/f9e556481654a24aeb689bdadaf5eab3ccd66829/docs/architecture/img/blockchain-reactor-v1.png) + +While `v1` of the blockchain reactor has shown significant improvements in terms of simplifying the concurrency model, the current PR has run into few roadblocks. + +- The current PR large and difficult to review. +- Block gossiping and fast sync processes are highly coupled to the shared `Pool` data structure. +- Peer communication is spread over multiple components creating complex dependency graph which must be mocked out during testing. +- Timeouts modeled as stateful tickers introduce non-determinism in tests + +This ADR is meant to specify the missing components and control necessary to achieve [ADR-40](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-040-blockchain-reactor-refactor.md). + +## Decision + +Partition the responsibilities of the blockchain reactor into a set of components which communicate exclusively with events. Events will contain timestamps allowing each component to track time as internal state. The internal state will be mutated by a set of `handle*` which will produce event(s). The integration between components will happen in the reactor and reactor tests will then become integration tests between components. This design will be known as `v2`. + +![v2 Blockchain Reactor Architecture +Diagram](https://github.com/tendermint/tendermint/blob/584e67ac3fac220c5c3e0652e3582eca8231e814/docs/architecture/img/blockchain-reactor-v2.png) + +### Fast Sync Related Communication Channels + +The diagram below shows the fast sync routines and the types of channels and queues used to communicate with each other. +In addition the per reactor channels used by the sendRoutine to send messages over the Peer MConnection are shown. + +![v2 Blockchain Channels and Queues +Diagram](https://github.com/tendermint/tendermint/blob/5cf570690f989646fb3b615b734da503f038891f/docs/architecture/img/blockchain-v2-channels.png) + +### Reactor changes in detail + +The reactor will include a demultiplexing routine which will send each message to each sub routine for independent processing. Each sub routine will then select the messages it's interested in and call the handle specific function specified in [ADR-40](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-040-blockchain-reactor-refactor.md). The demuxRoutine acts as "pacemaker" setting the time in which events are expected to be handled. + +```go +func demuxRoutine(msgs, scheduleMsgs, processorMsgs, ioMsgs) { + timer := time.NewTicker(interval) + for { + select { + case <-timer.C: + now := evTimeCheck{time.Now()} + schedulerMsgs <- now + processorMsgs <- now + ioMsgs <- now + case msg:= <- msgs: + msg.time = time.Now() + // These channels should produce backpressure before + // being full to avoid starving each other + schedulerMsgs <- msg + processorMsgs <- msg + ioMesgs <- msg + if msg == stop { + break; + } + } + } +} + +func processRoutine(input chan Message, output chan Message) { + processor := NewProcessor(..) + for { + msg := <- input + switch msg := msg.(type) { + case bcBlockRequestMessage: + output <- processor.handleBlockRequest(msg)) + ... + case stop: + processor.stop() + break; + } +} + +func scheduleRoutine(input chan Message, output chan Message) { + schelduer = NewScheduler(...) + for { + msg := <-msgs + switch msg := input.(type) { + case bcBlockResponseMessage: + output <- scheduler.handleBlockResponse(msg) + ... + case stop: + schedule.stop() + break; + } + } +} +``` + +## Lifecycle management + +A set of routines for individual processes allow processes to run in parallel with clear lifecycle management. `Start`, `Stop`, and `AddPeer` hooks currently present in the reactor will delegate to the sub-routines allowing them to manage internal state independent without further coupling to the reactor. + +```go +func (r *BlockChainReactor) Start() { + r.msgs := make(chan Message, maxInFlight) + schedulerMsgs := make(chan Message) + processorMsgs := make(chan Message) + ioMsgs := make(chan Message) + + go processorRoutine(processorMsgs, r.msgs) + go scheduleRoutine(schedulerMsgs, r.msgs) + go ioRoutine(ioMsgs, r.msgs) + ... +} + +func (bcR *BlockchainReactor) Receive(...) { + ... + r.msgs <- msg + ... +} + +func (r *BlockchainReactor) Stop() { + ... + r.msgs <- stop + ... +} + +... +func (r *BlockchainReactor) Stop() { + ... + r.msgs <- stop + ... +} +... + +func (r *BlockchainReactor) AddPeer(peer p2p.Peer) { + ... + r.msgs <- bcAddPeerEv{peer.ID} + ... +} + +``` + +## IO handling + +An io handling routine within the reactor will isolate peer communication. Message going through the ioRoutine will usually be one way, using `p2p` APIs. In the case in which the `p2p` API such as `trySend` return errors, the ioRoutine can funnel those message back to the demuxRoutine for distribution to the other routines. For instance errors from the ioRoutine can be consumed by the scheduler to inform better peer selection implementations. + +```go +func (r *BlockchainReacor) ioRoutine(ioMesgs chan Message, outMsgs chan Message) { + ... + for { + msg := <-ioMsgs + switch msg := msg.(type) { + case scBlockRequestMessage: + queued := r.sendBlockRequestToPeer(...) + if queued { + outMsgs <- ioSendQueued{...} + } + case scStatusRequestMessage + r.sendStatusRequestToPeer(...) + case bcPeerError + r.Swtich.StopPeerForError(msg.src) + ... + ... + case bcFinished + break; + } + } +} + +``` + +### Processor Internals + +The processor is responsible for ordering, verifying and executing blocks. The Processor will maintain an internal cursor `height` refering to the last processed block. As a set of blocks arrive unordered, the Processor will check if it has `height+1` necessary to process the next block. The processor also maintains the map `blockPeers` of peers to height, to keep track of which peer provided the block at `height`. `blockPeers` can be used in`handleRemovePeer(...)` to reschedule all unprocessed blocks provided by a peer who has errored. + +```go +type Processor struct { + height int64 // the height cursor + state ... + blocks [height]*Block // keep a set of blocks in memory until they are processed + blockPeers [height]PeerID // keep track of which heights came from which peerID + lastTouch timestamp +} + +func (proc *Processor) handleBlockResponse(peerID, block) { + if block.height <= height || block[block.height] { + } else if blocks[block.height] { + return errDuplicateBlock{} + } else { + blocks[block.height] = block + } + + if blocks[height] && blocks[height+1] { + ... = state.Validators.VerifyCommit(...) + ... = store.SaveBlock(...) + state, err = blockExec.ApplyBlock(...) + ... + if err == nil { + delete blocks[height] + height++ + lastTouch = msg.time + return pcBlockProcessed{height-1} + } else { + ... // Delete all unprocessed block from the peer + return pcBlockProcessError{peerID, height} + } + } +} + +func (proc *Processor) handleRemovePeer(peerID) { + events = [] + // Delete all unprocessed blocks from peerID + for i = height; i < len(blocks); i++ { + if blockPeers[i] == peerID { + events = append(events, pcBlockReschedule{height}) + + delete block[height] + } + } + return events +} + +func handleTimeCheckEv(time) { + if time - lastTouch > timeout { + // Timeout the processor + ... + } +} +``` + +## Schedule + +The Schedule maintains the internal state used for scheduling blockRequestMessages based on some scheduling algorithm. The schedule needs to maintain state on: + +- The state `blockState` of every block seem up to height of maxHeight +- The set of peers and their peer state `peerState` +- which peers have which blocks +- which blocks have been requested from which peers + +```go +type blockState int + +const ( + blockStateNew = iota + blockStatePending, + blockStateReceived, + blockStateProcessed +) + +type schedule { + // a list of blocks in which blockState + blockStates map[height]blockState + + // a map of which blocks are available from which peers + blockPeers map[height]map[p2p.ID]scPeer + + // a map of peerID to schedule specific peer struct `scPeer` + peers map[p2p.ID]scPeer + + // a map of heights to the peer we are waiting for a response from + pending map[height]scPeer + + targetPending int // the number of blocks we want in blockStatePending + targetReceived int // the number of blocks we want in blockStateReceived + + peerTimeout int + peerMinSpeed int +} + +func (sc *schedule) numBlockInState(state blockState) uint32 { + num := 0 + for i := sc.minHeight(); i <= sc.maxHeight(); i++ { + if sc.blockState[i] == state { + num++ + } + } + return num +} + + +func (sc *schedule) popSchedule(maxRequest int) []scBlockRequestMessage { + // We only want to schedule requests such that we have less than sc.targetPending and sc.targetReceived + // This ensures we don't saturate the network or flood the processor with unprocessed blocks + todo := min(sc.targetPending - sc.numBlockInState(blockStatePending), sc.numBlockInState(blockStateReceived)) + events := []scBlockRequestMessage{} + for i := sc.minHeight(); i < sc.maxMaxHeight(); i++ { + if todo == 0 { + break + } + if blockStates[i] == blockStateNew { + peer = sc.selectPeer(blockPeers[i]) + sc.blockStates[i] = blockStatePending + sc.pending[i] = peer + events = append(events, scBlockRequestMessage{peerID: peer.peerID, height: i}) + todo-- + } + } + return events +} +... + +type scPeer struct { + peerID p2p.ID + numOustandingRequest int + lastTouched time.Time + monitor flow.Monitor +} + +``` + +# Scheduler + +The scheduler is configured to maintain a target `n` of in flight +messages and will use feedback from `_blockResponseMessage`, +`_statusResponseMessage` and `_peerError` produce an optimal assignment +of scBlockRequestMessage at each `timeCheckEv`. + +``` + +func handleStatusResponse(peerID, height, time) { + schedule.touchPeer(peerID, time) + schedule.setPeerHeight(peerID, height) +} + +func handleBlockResponseMessage(peerID, height, block, time) { + schedule.touchPeer(peerID, time) + schedule.markReceived(peerID, height, size(block)) +} + +func handleNoBlockResponseMessage(peerID, height, time) { + schedule.touchPeer(peerID, time) + // reschedule that block, punish peer... + ... +} + +func handlePeerError(peerID) { + // Remove the peer, reschedule the requests + ... +} + +func handleTimeCheckEv(time) { + // clean peer list + + events = [] + for peerID := range schedule.peersNotTouchedSince(time) { + pending = schedule.pendingFrom(peerID) + schedule.setPeerState(peerID, timedout) + schedule.resetBlocks(pending) + events = append(events, peerTimeout{peerID}) + } + + events = append(events, schedule.popSchedule()) + + return events +} +``` + +## Peer + +The Peer Stores per peer state based on messages received by the scheduler. + +```go +type Peer struct { + lastTouched timestamp + lastDownloaded timestamp + pending map[height]struct{} + height height // max height for the peer + state { + pending, // we know the peer but not the height + active, // we know the height + timeout // the peer has timed out + } +} +``` + +## Status + +Implemented + +## Consequences + +### Positive + +- Test become deterministic +- Simulation becomes a-termporal: no need wait for a wall-time timeout +- Peer Selection can be independently tested/simulated +- Develop a general approach to refactoring reactors + +### Negative + +### Neutral + +### Implementation Path + +- Implement the scheduler, test the scheduler, review the rescheduler +- Implement the processor, test the processor, review the processor +- Implement the demuxer, write integration test, review integration tests + +## References + +- [ADR-40](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-040-blockchain-reactor-refactor.md): The original blockchain reactor re-org proposal +- [Blockchain re-org](https://github.com/tendermint/tendermint/pull/3561): The current blockchain reactor re-org implementation (v1) diff --git a/sei-tendermint/docs/architecture/adr-044-lite-client-with-weak-subjectivity.md b/sei-tendermint/docs/architecture/adr-044-lite-client-with-weak-subjectivity.md new file mode 100644 index 0000000000..d42d699a84 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-044-lite-client-with-weak-subjectivity.md @@ -0,0 +1,141 @@ +# ADR 044: Lite Client with Weak Subjectivity + +## Changelog +* 13-07-2019: Initial draft +* 14-08-2019: Address cwgoes comments + +## Context + +The concept of light clients was introduced in the Bitcoin white paper. It +describes a watcher of distributed consensus process that only validates the +consensus algorithm and not the state machine transactions within. + +Tendermint light clients allow bandwidth & compute-constrained devices, such as smartphones, low-power embedded chips, or other blockchains to +efficiently verify the consensus of a Tendermint blockchain. This forms the +basis of safe and efficient state synchronization for new network nodes and +inter-blockchain communication (where a light client of one Tendermint instance +runs in another chain's state machine). + +In a network that is expected to reliably punish validators for misbehavior +by slashing bonded stake and where the validator set changes +infrequently, clients can take advantage of this assumption to safely +synchronize a lite client without downloading the intervening headers. + +Light clients (and full nodes) operating in the Proof Of Stake context need a +trusted block height from a trusted source that is no older than 1 unbonding +window plus a configurable evidence submission synchrony bound. This is called “weak subjectivity”. + +Weak subjectivity is required in Proof of Stake blockchains because it is +costless for an attacker to buy up voting keys that are no longer bonded and +fork the network at some point in its prior history. See Vitalik’s post at +[Proof of Stake: How I Learned to Love Weak +Subjectivity](https://blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity/). + +Currently, Tendermint provides a lite client implementation in the +[light](https://github.com/tendermint/tendermint/tree/master/light) package. This +lite client implements a bisection algorithm that tries to use a binary search +to find the minimum number of block headers where the validator set voting +power changes are less than < 1/3rd. This interface does not support weak +subjectivity at this time. The Cosmos SDK also does not support counterfactual +slashing, nor does the lite client have any capacity to report evidence making +these systems *theoretically unsafe*. + +NOTE: Tendermint provides a somewhat different (stronger) light client model +than Bitcoin under eclipse, since the eclipsing node(s) can only fool the light +client if they have two-thirds of the private keys from the last root-of-trust. + +## Decision + +### The Weak Subjectivity Interface + +Add the weak subjectivity interface for when a new light client connects to the +network or when a light client that has been offline for longer than the +unbonding period connects to the network. Specifically, the node needs to +initialize the following structure before syncing from user input: + +``` +type TrustOptions struct { + // Required: only trust commits up to this old. + // Should be equal to the unbonding period minus some delta for evidence reporting. + TrustPeriod time.Duration `json:"trust-period"` + + // Option 1: TrustHeight and TrustHash can both be provided + // to force the trusting of a particular height and hash. + // If the latest trusted height/hash is more recent, then this option is + // ignored. + TrustHeight int64 `json:"trust-height"` + TrustHash []byte `json:"trust-hash"` + + // Option 2: Callback can be set to implement a confirmation + // step if the trust store is uninitialized, or expired. + Callback func(height int64, hash []byte) error +} +``` + +The expectation is the user will get this information from a trusted source +like a validator, a friend, or a secure website. A more user friendly +solution with trust tradeoffs is that we establish an https based protocol with +a default end point that populates this information. Also an on-chain registry +of roots-of-trust (e.g. on the Cosmos Hub) seems likely in the future. + +### Linear Verification + +The linear verification algorithm requires downloading all headers +between the `TrustHeight` and the `LatestHeight`. The lite client downloads the +full header for the provided `TrustHeight` and then proceeds to download `N+1` +headers and applies the [Tendermint validation +rules](https://github.com/tendermint/tendermint/tree/master/spec/light-client/verification/README.md) +to each block. + +### Bisecting Verification + +Bisecting Verification is a more bandwidth and compute intensive mechanism that +in the most optimistic case requires a light client to only download two block +headers to come into synchronization. + +The bisection algorithm proceeds in the following fashion. The client downloads +and verifies the full block header for `TrustHeight` and then fetches +`LatestHeight` blocker header. The client then verifies the `LatestHeight` +header. Finally the client attempts to verify the `LatestHeight` header with +voting powers taken from `NextValidatorSet` in the `TrustHeight` header. This +verification will succeed if the validators from `TrustHeight` still have > 2/3 ++1 of voting power in the `LatestHeight`. If this succeeds, the client is fully +synchronized. If this fails, then following Bisection Algorithm should be +executed. + +The Client tries to download the block at the mid-point block between +`LatestHeight` and `TrustHeight` and attempts that same algorithm as above +using `MidPointHeight` instead of `LatestHeight` and a different threshold - +1/3 +1 of voting power for *non-adjacent headers*. In the case the of failure, +recursively perform the `MidPoint` verification until success then start over +with an updated `NextValidatorSet` and `TrustHeight`. + +If the client encounters a forged header, it should submit the header along +with some other intermediate headers as the evidence of misbehavior to other +full nodes. After that, it can retry the bisection using another full node. An +optimal client will cache trusted headers from the previous run to minimize +network usage. + +--- + +Check out the formal specification +[here](https://github.com/tendermint/tendermint/tree/master/spec/light-client). + +## Status + +Implemented + +## Consequences + +### Positive + +* light client which is safe to use (it can go offline, but not for too long) + +### Negative + +* complexity of bisection + +### Neutral + +* social consensus can be prone to errors (for cases where a new light client + joins a network or it has been offline for too long) diff --git a/sei-tendermint/docs/architecture/adr-045-abci-evidence.md b/sei-tendermint/docs/architecture/adr-045-abci-evidence.md new file mode 100644 index 0000000000..a880398249 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-045-abci-evidence.md @@ -0,0 +1,140 @@ +# ADR 45 - ABCI Evidence Handling + +## Changelog +* 21-09-2019: Initial draft + +## Context + +Evidence is a distinct component in a Tendermint block and has it's own reactor +for high priority gossipping. Currently, Tendermint supports only a single form of evidence, an explicit +equivocation, where a validator signs conflicting blocks at the same +height/round. It is detected in real-time in the consensus reactor, and gossiped +through the evidence reactor. Evidence can also be submitted through the RPC. + +Currently, Tendermint does not gracefully handle a fork on the main chain. +If a fork is detected, the node panics. At this point manual intervention and +social consensus are required to reconfigure. We'd like to do something more +graceful here, but that's for another day. + +It's possible to fool lite clients without there being a fork on the +main chain - so called Fork-Lite. See the +[fork accountability](https://github.com/tendermint/tendermint/blob/master/spec/light-client/accountability/README.md) +document for more details. For a sequential lite client, this can happen via +equivocation or amnesia attacks. For a skipping lite client this can also happen +via lunatic validator attacks. There must be some way for applications to punish +all forms of misbehaviour. + +The essential question is whether Tendermint should manage the evidence +verification, or whether it should treat evidence more like a transaction (ie. +arbitrary bytes) and let the application handle it (including all the signature +checking). + +Currently, evidence verification is handled by Tendermint. Once committed, +[evidence is passed over +ABCI](https://github.com/tendermint/tendermint/blob/master/proto/tendermint/abci/types.proto#L354) +in BeginBlock in a reduced form that includes only +the type of evidence, its height and timestamp, the validator it's from, and the +total voting power of the validator set at the height. The app trusts Tendermint +to perform the evidence verification, as the ABCI evidence does not contain the +signatures and additional data for the app to verify itself. + +Arguments in favor of leaving evidence handling in Tendermint: + +1) Attacks on full nodes must be detectable by full nodes in real time, ie. within the consensus reactor. + So at the very least, any evidence involved in something that could fool a full + node must be handled natively by Tendermint as there would otherwise be no way + for the ABCI app to detect it (ie. we don't send all votes we receive during + consensus to the app ... ). + +2) Amensia attacks can not be easily detected - they require an interactive + protocol among all the validators to submit justification for their past + votes. Our best notion of [how to do this + currently](https://github.com/tendermint/tendermint/blob/c67154232ca8be8f5c21dff65d154127adc4f7bb/docs/spec/consensus/fork-detection.md) + is via a centralized + monitor service that is trusted for liveness to aggregate data from + current and past validators, but which produces a proof of misbehaviour (ie. + via amnesia) that can be verified by anyone, including the blockchain. + Validators must submit all the votes they saw for the relevant consensus + height to justify their precommits. This is quite specific to the Tendermint + protocol and may change if the protocol is upgraded. Hence it would be awkward + to co-ordinate this from the app. + +3) Evidence gossipping is similar to tx gossipping, but it should be higher + priority. Since the mempool does not support any notion of priority yet, + evidence is gossipped through a distinct Evidence reactor. If we just treated + evidence like any other transaction, leaving it entirely to the application, + Tendermint would have no way to know how to prioritize it, unless/until we + significantly upgrade the mempool. Thus we would need to continue to treat evidence + distinctly and update the ABCI to either support sending Evidence through + CheckTx/DeliverTx, or to introduce new CheckEvidence/DeliverEvidence methods. + In either case we'd need to make more changes to ABCI then if Tendermint + handled things and we just added support for another evidence type that could be included + in BeginBlock. + +4) All ABCI application frameworks will benefit from most of the heavy lifting + being handled by Tendermint, rather than each of them needing to re-implement + all the evidence verification logic in each language. + +Arguments in favor of moving evidence handling to the application: + +5) Skipping lite clients require us to track the set of all validators that were + bonded over some period in case validators that are unbonding but still + slashable sign invalid headers to fool lite clients. The Cosmos-SDK + staking/slashing modules track this, as it's used for slashing. + Tendermint does not currently track this, though it does keep track of the + validator set at every height. This leans in favour of managing evidence in + the app to avoid redundantly managing the historical validator set data in + Tendermint + +6) Applications supporting cross-chain validation will be required to process + evidence from other chains. This data will come in the form of a transaction, + but it means the app will be required to have all the functionality to process + evidence, even if the evidence for its own chain is handled directly by + Tendermint. + +7) Evidence from lite clients may be large and constitute some form of DoS + vector against full nodes. Putting it in transactions allows it to engage the application's fee + mechanism to pay for cost of executions in the event the evidence is false. + This means the evidence submitter must be able to afford the fees for the + submission, but of course it should be refunded if the evidence is valid. + That said, the burden is mostly on full nodes, which don't necessarily benefit + from fees. + + +## Decision + +The above mostly seems to suggest that evidence detection belongs in Tendermint. +(5) does not impose particularly large obligations on Tendermint and (6) just +means the app can use Tendermint libraries. That said, (7) is potentially +cause for some concern, though it could still attack full nodes that weren't associated with validators +(ie. that don't benefit from fees). This could be handled out of band, for instance by +full nodes offering the light client service via payment channels or via some +other payment service. This can also be mitigated by banning client IPs if they +send bad data. Note the burden is on the client to actually send us a lot of +data in the first place. + +A separate ADR will describe how Tendermint will handle these new forms of +evidence, in terms of how it will engage the monitoring protocol described in +the [fork +detection](https://github.com/tendermint/tendermint/blob/c67154232ca8be8f5c21dff65d154127adc4f7bb/docs/spec/consensus/fork-detection.md) document, +and how it will track past validators and manage DoS issues. + +## Status + +Proposed. + +## Consequences + +### Positive + +- No real changes to ABCI +- Tendermint handles evidence for all apps + +### Neutral + +- Need to be careful about denial of service on the Tendermint RPC + +### Negative + +- Tendermint duplicates data by tracking all pubkeys that were validators during + the unbonding period diff --git a/sei-tendermint/docs/architecture/adr-046-light-client-implementation.md b/sei-tendermint/docs/architecture/adr-046-light-client-implementation.md new file mode 100644 index 0000000000..15d77373dc --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-046-light-client-implementation.md @@ -0,0 +1,169 @@ +# ADR 046: Lite Client Implementation + +## Changelog +* 13-02-2020: Initial draft +* 26-02-2020: Cross-checking the first header +* 28-02-2020: Bisection algorithm details +* 31-03-2020: Verify signature got changed + +## Context + +A `Client` struct represents a light client, connected to a single blockchain. + +The user has an option to verify headers using `VerifyHeader` or +`VerifyHeaderAtHeight` or `Update` methods. The latter method downloads the +latest header from primary and compares it with the currently trusted one. + +```go +type Client interface { + // verify new headers + VerifyHeaderAtHeight(height int64, now time.Time) (*types.SignedHeader, error) + VerifyHeader(newHeader *types.SignedHeader, newVals *types.ValidatorSet, now time.Time) error + Update(now time.Time) (*types.SignedHeader, error) + + // get trusted headers & validators + TrustedHeader(height int64) (*types.SignedHeader, error) + TrustedValidatorSet(height int64) (valSet *types.ValidatorSet, heightUsed int64, err error) + LastTrustedHeight() (int64, error) + FirstTrustedHeight() (int64, error) + + // query configuration options + ChainID() string + Primary() provider.Provider + Witnesses() []provider.Provider + + Cleanup() error +} +``` + +A new light client can either be created from scratch (via `NewClient`) or +using the trusted store (via `NewClientFromTrustedStore`). When there's some +data in the trusted store and `NewClient` is called, the light client will a) +check if stored header is more recent b) optionally ask the user whenever it +should rollback (no confirmation required by default). + +```go +func NewClient( + chainID string, + trustOptions TrustOptions, + primary provider.Provider, + witnesses []provider.Provider, + trustedStore store.Store, + options ...Option) (*Client, error) { +``` + +`witnesses` as argument (as opposite to `Option`) is an intentional choice, +made to increase security by default. At least one witness is required, +although, right now, the light client does not check that primary != witness. +When cross-checking a new header with witnesses, minimum number of witnesses +required to respond: 1. Note the very first header (`TrustOptions.Hash`) is +also cross-checked with witnesses for additional security. + +Due to bisection algorithm nature, some headers might be skipped. If the light +client does not have a header for height `X` and `VerifyHeaderAtHeight(X)` or +`VerifyHeader(H#X)` methods are called, these will perform either a) backwards +verification from the latest header back to the header at height `X` or b) +bisection verification from the first stored header to the header at height `X`. + +`TrustedHeader`, `TrustedValidatorSet` only communicate with the trusted store. +If some header is not there, an error will be returned indicating that +verification is required. + +```go +type Provider interface { + ChainID() string + + SignedHeader(height int64) (*types.SignedHeader, error) + ValidatorSet(height int64) (*types.ValidatorSet, error) +} +``` + +Provider is a full node usually, but can be another light client. The above +interface is thin and can accommodate many implementations. + +If provider (primary or witness) becomes unavailable for a prolonged period of +time, it will be removed to ensure smooth operation. + +Both `Client` and providers expose chain ID to track if there are on the same +chain. Note, when chain upgrades or intentionally forks, chain ID changes. + +The light client stores headers & validators in the trusted store: + +```go +type Store interface { + SaveSignedHeaderAndValidatorSet(sh *types.SignedHeader, valSet *types.ValidatorSet) error + DeleteSignedHeaderAndValidatorSet(height int64) error + + SignedHeader(height int64) (*types.SignedHeader, error) + ValidatorSet(height int64) (*types.ValidatorSet, error) + + LastSignedHeaderHeight() (int64, error) + FirstSignedHeaderHeight() (int64, error) + + SignedHeaderAfter(height int64) (*types.SignedHeader, error) + + Prune(size uint16) error + + Size() uint16 +} +``` + +At the moment, the only implementation is the `db` store (wrapper around the KV +database, used in Tendermint). In the future, remote adapters are possible +(e.g. `Postgresql`). + +```go +func Verify( + chainID string, + trustedHeader *types.SignedHeader, // height=X + trustedVals *types.ValidatorSet, // height=X or height=X+1 + untrustedHeader *types.SignedHeader, // height=Y + untrustedVals *types.ValidatorSet, // height=Y + trustingPeriod time.Duration, + now time.Time, + maxClockDrift time.Duration, + trustLevel tmmath.Fraction) error { +``` + +`Verify` pure function is exposed for a header verification. It handles both +cases of adjacent and non-adjacent headers. In the former case, it compares the +hashes directly (2/3+ signed transition). Otherwise, it verifies 1/3+ +(`trustLevel`) of trusted validators are still present in new validators. + +While `Verify` function is certainly handy, `VerifyAdjacent` and +`VerifyNonAdjacent` should be used most often to avoid logic errors. + +### Bisection algorithm details + +Non-recursive bisection algorithm was implemented despite the spec containing +the recursive version. There are two major reasons: + +1) Constant memory consumption => no risk of getting OOM (Out-Of-Memory) exceptions; +2) Faster finality (see Fig. 1). + +_Fig. 1: Differences between recursive and non-recursive bisections_ + +![Fig. 1](./img/adr-046-fig1.png) + +Specification of the non-recursive bisection can be found +[here](https://github.com/tendermint/spec/blob/zm_non-recursive-verification/spec/consensus/light-client/non-recursive-verification.md). + +## Status + +Implemented + +## Consequences + +### Positive + +* single `Client` struct, which is easy to use +* flexible interfaces for header providers and trusted storage + +### Negative + +* `Verify` needs to be aligned with the current spec + +### Neutral + +* `Verify` function might be misused (called with non-adjacent headers in + incorrectly implemented sequential verification) diff --git a/sei-tendermint/docs/architecture/adr-047-handling-evidence-from-light-client.md b/sei-tendermint/docs/architecture/adr-047-handling-evidence-from-light-client.md new file mode 100644 index 0000000000..9854bc13ee --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-047-handling-evidence-from-light-client.md @@ -0,0 +1,254 @@ +# ADR 047: Handling evidence from light client + +## Changelog +* 18-02-2020: Initial draft +* 24-02-2020: Second version +* 13-04-2020: Add PotentialAmnesiaEvidence and a few remarks +* 31-07-2020: Remove PhantomValidatorEvidence +* 14-08-2020: Introduce light traces (listed now as an alternative approach) +* 20-08-2020: Light client produces evidence when detected instead of passing to full node +* 16-09-2020: Post-implementation revision +* 15-03-2020: Ammends for the case of a forward lunatic attack + +### Glossary of Terms + +- a `LightBlock` is the unit of data that a light client receives, verifies and stores. +It is composed of a validator set, commit and header all at the same height. +- a **Trace** is seen as an array of light blocks across a range of heights that were +created as a result of skipping verification. +- a **Provider** is a full node that a light client is connected to and serves the light +client signed headers and validator sets. +- `VerifySkipping` (sometimes known as bisection or verify non-adjacent) is a method the +light client uses to verify a target header from a trusted header. The process involves verifying +intermediate headers in between the two by making sure that 1/3 of the validators that signed +the trusted header also signed the untrusted one. +- **Light Bifurcation Point**: If the light client was to run `VerifySkipping` with two providers +(i.e. a primary and a witness), the bifurcation point is the height that the headers +from each of these providers are different yet valid. This signals that one of the providers +may be trying to fool the light client. + +## Context + +The bisection method of header verification used by the light client exposes +itself to a potential attack if any block within the light clients trusted period has +a malicious group of validators with power that exceeds the light clients trust level +(default is 1/3). To improve light client (and overall network) security, the light +client has a detector component that compares the verified header provided by the +primary against witness headers. This ADR outlines the process of mitigating attacks +on the light client by using witness nodes to cross reference with. + +## Alternative Approaches + +A previously discussed approach to handling evidence was to pass all the data that the +light client had witnessed when it had observed diverging headers for the full node to +process.This was known as a light trace and had the following structure: + +```go +type ConflictingHeadersTrace struct { + Headers []*types.SignedHeader +} +``` + +This approach has the advantage of not requiring as much processing on the light +client side in the event that an attack happens. Although, this is not a significant +difference as the light client would in any case have to validate all the headers +from both witness and primary. Using traces would consume a large amount of bandwidth +and adds a DDOS vector to the full node. + + +## Decision + +The light client will be divided into two components: a `Verifier` (either sequential or +skipping) and a `Detector` (see [Informal's Detector](https://github.com/informalsystems/tendermint-rs/blob/master/docs/spec/lightclient/detection/detection.md)) +. The detector will take the trace of headers from the primary and check it against all +witnesses. For a witness with a diverging header, the detector will first verify the header +by bisecting through all the heights defined by the trace that the primary provided. If valid, +the light client will trawl through both traces and find the point of bifurcation where it +can proceed to extract any evidence (as is discussed in detail later). + +Upon successfully detecting the evidence, the light client will send it to both primary and +witness before halting. It will not send evidence to other peers nor continue to verify the +primary's header against any other header. + + +## Detailed Design + +The verification process of the light client will start from a trusted header and use a bisectional +algorithm to verify up to a header at a given height. This becomes the verified header (does not +mean that it is trusted yet). All headers that were verified in between are cached and known as +intermediary headers and the entire array is sometimes referred to as a trace. + +The light client's detector then takes all the headers and runs the detect function. + +```golang +func (c *Client) detectDivergence(primaryTrace []*types.LightBlock, now time.Time) error +``` + +The function takes the last header it received, the target header and compares it against all the witnesses +it has through the following function: + +```golang +func (c *Client) compareNewHeaderWithWitness(errc chan error, h *types.SignedHeader, + witness provider.Provider, witnessIndex int) +``` + +The err channel is used to send back all the outcomes so that they can be processed in parallel. +Invalid headers result in dropping the witness, lack of response or not having the headers is ignored +just as headers that have the same hash. Headers, however, +of a different hash then trigger the detection process between the primary and that particular witness. + +This begins with verification of the witness's header via skipping verification which is run in tande +with locating the Light Bifurcation Point + +![](../imgs/light-client-detector.png) + +This is done with: + +```golang +func (c *Client) examineConflictingHeaderAgainstTrace( + trace []*types.LightBlock, + targetBlock *types.LightBlock, + source provider.Provider, + now time.Time, + ) ([]*types.LightBlock, *types.LightBlock, error) +``` + +which performs the following + +1. Checking that the trusted header is the same. Currently, they should not theoretically be different +because witnesses cannot be added and removed after the client is initialized. But we do this any way +as a sanity check. If this fails we have to drop the witness. + +2. Querying and verifying the witness's headers using bisection at the same heights of all the +intermediary headers of the primary (In the above example this is A, B, C, D, F, H). If bisection fails +or the witness stops responding then we can call the witness faulty and drop it. + +3. We eventually reach a verified header by the witness which is not the same as the intermediary header +(In the above example this is E). This is the point of bifurcation (This could also be the last header). + +4. There is a unique case where the trace that is being examined against has blocks that have a greater +height than the targetBlock. This can occur as part of a forward lunatic attack where the primary has +provided a light block that has a height greater than the head of the chain (see Appendix B). In this +case, the light client will verify the sources blocks up to the targetBlock and return the block in the +trace that is directly after the targetBlock in height as the `ConflictingBlock` + +This function then returns the trace of blocks from the witness node between the common header and the +divergent header of the primary as it is likely, as seen in the example to the right, that multiple +headers where required in order to verify the divergent one. This trace will +be used later (as is also described later in this document). + +![](../imgs/bifurcation-point.png) + +Now, that an attack has been detected, the light client must form evidence to prove it. There are +three types of attacks that either the primary or witness could have done to try fool the light client +into verifying the wrong header: Lunatic, Equivocation and Amnesia. As the consequence is the same and +the data required to prove it is also very similar, we bundle these attack styles together in a single +evidence: + +```golang +type LightClientAttackEvidence struct { + ConflictingBlock *LightBlock + CommonHeight int64 +} +``` + +The light client takes the stance of first suspecting the primary. Given the bifurcation point found +above, it takes the two divergent headers and compares whether the one from the primary is valid with +respect to the one from the witness. This is done by calling `isInvalidHeader()` which looks to see if +any one of the deterministically derived header fields differ from one another. This could be one of +`ValidatorsHash`, `NextValidatorsHash`, `ConsensusHash`, `AppHash`, and `LastResultsHash`. +In this case we know it's a Lunatic attack and to help the witness verify it we send the height +of the common header which is 1 in the example above or C in the example above that. If all these +hashes are the same then we can infer that it is either Equivocation or Amnesia. In this case we send +the height of the diverged headers because we know that the validator sets are the same, hence the +malicious nodes are still bonded at that height. In the example above, this is height 10 and the +example above that it is the height at E. + +The light client now has the evidence and broadcasts it to the witness. + +However, it could have been that the header the light client used from the witness against the primary +was forged, so before halting the light client swaps the process and thus suspects the witness and +uses the primary to create evidence. It calls `examineConflictingHeaderAgainstTrace` this time using +the witness trace found earlier. +If the primary was malicious it is likely that it will not respond but if it is innocent then the +light client will produce the same evidence but this time the conflicting +block will come from the witness node instead of the primary. The evidence is then formed and sent to +the primary node. + +This then ends the process and the verify function that was called at the start returns the error to +the user. + +For a detailed overview of how each of these three attacks can be conducted please refer to the +[fork accountability spec](https://github.com/tendermint/tendermint/blob/master/spec/consensus/light-client/accountability.md). + +## Full Node Verification + +When a full node receives evidence from the light client it will need to verify +it for itself before gossiping it to peers and trying to commit it on chain. This process is outlined + in [ADR-059](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-059-evidence-composition-and-lifecycle.md). + +## Status + +Implemented + +## Consequences + +### Positive + +* Light client has increased security against Lunatic, Equivocation and Amnesia attacks. +* Do not need intermediate data structures to encapsulate the malicious behavior +* Generalized evidence makes the code simpler + +### Negative + +* Breaking change on the light client from versions 0.33.8 and below. Previous +versions will still send `ConflictingHeadersEvidence` but it won't be recognized +by the full node. Light clients will however still refuse the header and shut down. +* Amnesia attacks although detected, will not be able to be punished as it is not +clear from the current information which nodes behaved maliciously. +* Evidence module must handle both individual and grouped evidence. + +### Neutral + +## References + +* [Fork accountability spec](https://github.com/tendermint/tendermint/blob/master/spec/consensus/light-client/accountability.md) +* [ADR 056: Light client amnesia attacks](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-056-light-client-amnesia-attacks.md) +* [ADR-059: Evidence Composition and Lifecycle](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-059-evidence-composition-and-lifecycle.md) +* [Informal's Light Client Detector](https://github.com/informalsystems/tendermint-rs/blob/master/docs/spec/lightclient/detection/detection.md) + + +## Appendix A + +PhantomValidatorEvidence was used to capture when a validator that was still staked +(i.e. within the bonded period) but was not in the current validator set had voted for a block. + +In later discussions it was argued that although possible to keep phantom validator +evidence, any case a phantom validator that could have the capacity to be involved +in fooling a light client would have to be aided by 1/3+ lunatic validators. + +It would also be very unlikely that the new validators injected by the lunatic attack +would be validators that currently still have something staked. + +Not only this but there was a large degree of extra computation required in storing all +the currently staked validators that could possibly fall into the group of being +a phantom validator. Given this, it was removed. + +## Appendix B + +A unique flavor of lunatic attack is a forward lunatic attack. This is where a malicious +node provides a header with a height greater than the height of the blockchain. Thus there +are no witnesses capable of rebutting the malicious header. Such an attack will also +require an accomplice, i.e. at least one other witness to also return the same forged header. +Although such attacks can be any arbitrary height ahead, they must still remain within the +clock drift of the light clients real time. Therefore, to detect such an attack, a light +client will wait for a time + +``` +2 * MAX_CLOCK_DRIFT + LAG +``` + +for a witness to provide the latest block it has. Given the time constraints, if the witness +is operating at the head of the blockchain, it will have a header with an earlier height but +a later timestamp. This can be used to prove that the primary has submitted a lunatic header +which violates monotonically increasing time. diff --git a/sei-tendermint/docs/architecture/adr-050-improved-trusted-peering.md b/sei-tendermint/docs/architecture/adr-050-improved-trusted-peering.md new file mode 100644 index 0000000000..d079e67bde --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-050-improved-trusted-peering.md @@ -0,0 +1,58 @@ +# ADR 50: Improved Trusted Peering + +## Changelog +* 22-10-2019: Initial draft +* 05-11-2019: Modify `maximum-dial-period` to `persistent-peers-max-dial-period` + +## Context + +When `max-num-inbound-peers` or `max-num-outbound-peers` of a node is reached, the node cannot spare more slots to any peer +by inbound or outbound. Therefore, after a certain period of disconnection, any important peering can be lost indefinitely +because all slots are consumed by other peers, and the node stops trying to dial the peer anymore. + +This is happening because of two reasons, exponential backoff and absence of unconditional peering feature for trusted peers. + + +## Decision + +We would like to suggest solving this problem by introducing two parameters in `config.toml`, `unconditional-peer-ids` and +`persistent-peers-max-dial-period`. + +1) `unconditional-peer-ids` + +A node operator inputs list of ids of peers which are allowed to be connected by both inbound or outbound regardless of +`max-num-inbound-peers` or `max-num-outbound-peers` of user's node reached or not. + +2) `persistent-peers-max-dial-period` + +Terms between each dial to each persistent peer will not exceed `persistent-peers-max-dial-period` during exponential backoff. +Therefore, `dial-period` = min(`persistent-peers-max-dial-period`, `exponential-backoff-dial-period`) + +Alternative approach + +Persistent-peers is only for outbound, therefore it is not enough to cover the full utility of `unconditional-peer-ids`. +@creamers158(https://github.com/Creamers158) suggested putting id-only items into persistent-peers to be handled as +`unconditional-peer-ids`, but it needs very complicated struct exception for different structure of items in persistent-peers. +Therefore we decided to have `unconditional-peer-ids` to independently cover this use-case. + +## Status + +Proposed + +## Consequences + +### Positive + +A node operator can configure two new parameters in `config.toml` so that he/she can assure that tendermint will allow connections +from/to peers in `unconditional-peer-ids`. Also he/she can assure that every persistent peer will be dialed at least once in every +`persistent-peers-max-dial-period` term. It achieves more stable and persistent peering for trusted peers. + +### Negative + +The new feature introduces two new parameters in `config.toml` which needs explanation for node operators. + +### Neutral + +## References + +* two p2p feature enhancement proposal(https://github.com/tendermint/tendermint/issues/4053) diff --git a/sei-tendermint/docs/architecture/adr-051-double-signing-risk-reduction.md b/sei-tendermint/docs/architecture/adr-051-double-signing-risk-reduction.md new file mode 100644 index 0000000000..2bf8db731b --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-051-double-signing-risk-reduction.md @@ -0,0 +1,53 @@ +# ADR 051: Double Signing Risk Reduction + +## Changelog + +* 27-11-2019: Initial draft +* 13-01-2020: Separate into 2 ADR, This ADR will only cover Double signing Protection and ADR-052 handle Tendermint Mode +* 22-01-2020: change the title from "Double signing Protection" to "Double Signing Risk Reduction" + +## Context + +To provide a risk reduction method for double signing incidents mistakenly executed by validators +- Validators often mistakenly run duplicated validators to cause double-signing incident +- This proposed feature is to reduce the risk of mistaken double-signing incident by checking recent N blocks before voting begins +- When we think of such serious impact on double-signing incident, it is very reasonable to have multiple risk reduction algorithm built in node daemon + +## Decision + +We would like to suggest a double signing risk reduction method. + +- Methodology : query recent consensus results to find out whether node's consensus key is used on consensus recently or not +- When to check + - When the state machine starts `ConsensusReactor` after fully synced + - When the node is validator ( with privValidator ) + - When `cs.config.DoubleSignCheckHeight > 0` +- How to check + 1. When a validator is transformed from syncing status to fully synced status, the state machine check recent N blocks (`latest_height - double_sign_check_height`) to find out whether there exists consensus votes using the validator's consensus key + 2. If there exists votes from the validator's consensus key, exit state machine program +- Configuration + - We would like to suggest by introducing `double_sign_check_height` parameter in `config.toml` and cli, how many blocks state machine looks back to check votes + - `double_sign_check_height = {{ .Consensus.DoubleSignCheckHeight }}` in `config.toml` + - `tendermint node --consensus.double_sign_check_height` in cli + - State machine ignore checking procedure when `double_sign_check_height == 0` + +## Status + +Implemented + +## Consequences + +### Positive + +- Validators can avoid double signing incident by mistakes. (eg. If another validator node is voting on consensus, starting new validator node with same consensus key will cause panic stop of the state machine because consensus votes with the consensus key are found in recent blocks) +- We expect this method will prevent majority of double signing incident by mistakes. + +### Negative + +- When the risk reduction method is on, restarting a validator node will panic because the node itself voted on consensus with the same consensus key. So, validators should stop the state machine, wait for some blocks, and then restart the state machine to avoid panic stop. + +### Neutral + +## References + +- Issue [#4059](https://github.com/tendermint/tendermint/issues/4059) : double-signing protection diff --git a/sei-tendermint/docs/architecture/adr-052-tendermint-mode.md b/sei-tendermint/docs/architecture/adr-052-tendermint-mode.md new file mode 100644 index 0000000000..04f3eb699d --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-052-tendermint-mode.md @@ -0,0 +1,85 @@ +# ADR 052: Tendermint Mode + +## Changelog + +* 27-11-2019: Initial draft from ADR-051 +* 13-01-2020: Separate ADR Tendermint Mode from ADR-051 +* 29-03-2021: Update info regarding defaults + +## Context + +- Full mode: full mode does not have the capability to become a validator. +- Validator mode : this mode is exactly same as existing state machine behavior. sync without voting on consensus, and participate consensus when fully synced +- Seed mode : lightweight seed node maintaining an address book, p2p like [TenderSeed](https://gitlab.com/polychainlabs/tenderseed) + +## Decision + +We would like to suggest a simple Tendermint mode abstraction. These modes will live under one binary, and when initializing a node the user will be able to specify which node they would like to create. + +- Which reactor, component to include for each node + - full + - switch, transport + - reactors + - mempool + - consensus + - evidence + - blockchain + - p2p/pex + - statesync + - rpc (safe connections only) + - *~~no privValidator(priv_validator_key.json, priv_validator_state.json)~~* + - validator + - switch, transport + - reactors + - mempool + - consensus + - evidence + - blockchain + - p2p/pex + - statesync + - rpc (safe connections only) + - with privValidator(priv_validator_key.json, priv_validator_state.json) + - seed + - switch, transport + - reactor + - p2p/pex +- Configuration, cli command + - We would like to suggest by introducing `mode` parameter in `config.toml` and cli + - `mode = "{{ .BaseConfig.Mode }}"` in `config.toml` + - `tendermint start --mode validator` in cli + - full | validator | seednode + - There will be no default. Users will need to specify when they run `tendermint init` +- RPC modification + - `host:26657/status` + - return empty `validator_info` when in full mode + - no rpc server in seednode +- Where to modify in codebase + - Add switch for `config.Mode` on `node/node.go:DefaultNewNode` + - If `config.Mode==validator`, call default `NewNode` (current logic) + - If `config.Mode==full`, call `NewNode` with `nil` `privValidator` (do not load or generation) + - Need to add exception routine for `nil` `privValidator` to related functions + - If `config.Mode==seed`, call `NewSeedNode` (seed node version of `node/node.go:NewNode`) + - Need to add exception routine for `nil` `reactor`, `component` to related functions + +## Status + +Implemented + +## Consequences + +### Positive + +- Node operators can choose mode when they run state machine according to the purpose of the node. +- Mode can prevent mistakes because users have to specify which mode they want to run via flag. (eg. If a user want to run a validator node, she/he should explicitly write down validator as mode) +- Different mode needs different reactors, resulting in efficient resource usage. + +### Negative + +- Users need to study how each mode operate and which capability it has. + +### Neutral + +## References + +- Issue [#2237](https://github.com/tendermint/tendermint/issues/2237) : Tendermint "mode" +- [TenderSeed](https://gitlab.com/polychainlabs/tenderseed) : A lightweight Tendermint Seed Node. diff --git a/sei-tendermint/docs/architecture/adr-053-state-sync-prototype.md b/sei-tendermint/docs/architecture/adr-053-state-sync-prototype.md new file mode 100644 index 0000000000..2d8c37ad1c --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-053-state-sync-prototype.md @@ -0,0 +1,254 @@ +# ADR 053: State Sync Prototype + +State sync is now [merged](https://github.com/tendermint/tendermint/pull/4705). Up-to-date ABCI documentation is [available](https://github.com/tendermint/spec/pull/90), refer to it rather than this ADR for details. + +This ADR outlines the plan for an initial state sync prototype, and is subject to change as we gain feedback and experience. It builds on discussions and findings in [ADR-042](./adr-042-state-sync.md), see that for background information. + +## Changelog + +* 2020-01-28: Initial draft (Erik Grinaker) + +* 2020-02-18: Updates after initial prototype (Erik Grinaker) + * ABCI: added missing `reason` fields. + * ABCI: used 32-bit 1-based chunk indexes (was 64-bit 0-based). + * ABCI: moved `RequestApplySnapshotChunk.chain_hash` to `RequestOfferSnapshot.app_hash`. + * Gaia: snapshots must include node versions as well, both for inner and leaf nodes. + * Added experimental prototype info. + * Added open questions and implementation plan. + +* 2020-03-29: Strengthened and simplified ABCI interface (Erik Grinaker) + * ABCI: replaced `chunks` with `chunk_hashes` in `Snapshot`. + * ABCI: removed `SnapshotChunk` message. + * ABCI: renamed `GetSnapshotChunk` to `LoadSnapshotChunk`. + * ABCI: chunks are now exchanged simply as `bytes`. + * ABCI: chunks are now 0-indexed, for parity with `chunk_hashes` array. + * Reduced maximum chunk size to 16 MB, and increased snapshot message size to 4 MB. + +* 2020-04-29: Update with final released ABCI interface (Erik Grinaker) + +## Context + +State sync will allow a new node to receive a snapshot of the application state without downloading blocks or going through consensus. This bootstraps the node significantly faster than the current fast sync system, which replays all historical blocks. + +Background discussions and justifications are detailed in [ADR-042](./adr-042-state-sync.md). Its recommendations can be summarized as: + +* The application periodically takes full state snapshots (i.e. eager snapshots). + +* The application splits snapshots into smaller chunks that can be individually verified against a chain app hash. + +* Tendermint uses the light client to obtain a trusted chain app hash for verification. + +* Tendermint discovers and downloads snapshot chunks in parallel from multiple peers, and passes them to the application via ABCI to be applied and verified against the chain app hash. + +* Historical blocks are not backfilled, so state synced nodes will have a truncated block history. + +## Tendermint Proposal + +This describes the snapshot/restore process seen from Tendermint. The interface is kept as small and general as possible to give applications maximum flexibility. + +### Snapshot Data Structure + +A node can have multiple snapshots taken at various heights. Snapshots can be taken in different application-specified formats (e.g. MessagePack as format `1` and Protobuf as format `2`, or similarly for schema versioning). Each snapshot consists of multiple chunks containing the actual state data, for parallel downloads and reduced memory usage. + +```proto +message Snapshot { + uint64 height = 1; // The height at which the snapshot was taken + uint32 format = 2; // The application-specific snapshot format + uint32 chunks = 3; // Number of chunks in the snapshot + bytes hash = 4; // Arbitrary snapshot hash - should be equal only for identical snapshots + bytes metadata = 5; // Arbitrary application metadata +} +``` + +Chunks are exchanged simply as `bytes`, and cannot be larger than 16 MB. `Snapshot` messages should be less than 4 MB. + +### ABCI Interface + +```proto +// Lists available snapshots +message RequestListSnapshots {} + +message ResponseListSnapshots { + repeated Snapshot snapshots = 1; +} + +// Offers a snapshot to the application +message RequestOfferSnapshot { + Snapshot snapshot = 1; // snapshot offered by peers + bytes app_hash = 2; // light client-verified app hash for snapshot height + } + +message ResponseOfferSnapshot { + Result result = 1; + + enum Result { + accept = 0; // Snapshot accepted, apply chunks + abort = 1; // Abort all snapshot restoration + reject = 2; // Reject this specific snapshot, and try a different one + reject_format = 3; // Reject all snapshots of this format, and try a different one + reject_sender = 4; // Reject all snapshots from the sender(s), and try a different one + } +} + +// Loads a snapshot chunk +message RequestLoadSnapshotChunk { + uint64 height = 1; + uint32 format = 2; + uint32 chunk = 3; // Zero-indexed +} + +message ResponseLoadSnapshotChunk { + bytes chunk = 1; +} + +// Applies a snapshot chunk +message RequestApplySnapshotChunk { + uint32 index = 1; + bytes chunk = 2; + string sender = 3; + } + +message ResponseApplySnapshotChunk { + Result result = 1; + repeated uint32 refetch_chunks = 2; // Chunks to refetch and reapply (regardless of result) + repeated string reject_senders = 3; // Chunk senders to reject and ban (regardless of result) + + enum Result { + accept = 0; // Chunk successfully accepted + abort = 1; // Abort all snapshot restoration + retry = 2; // Retry chunk, combine with refetch and reject as appropriate + retry_snapshot = 3; // Retry snapshot, combine with refetch and reject as appropriate + reject_snapshot = 4; // Reject this snapshot, try a different one but keep sender rejections + } +} +``` + +### Taking Snapshots + +Tendermint is not aware of the snapshotting process at all, it is entirely an application concern. The following guarantees must be provided: + +* **Periodic:** snapshots must be taken periodically, not on-demand, for faster restores, lower load, and less DoS risk. + +* **Deterministic:** snapshots must be deterministic, and identical across all nodes - typically by taking a snapshot at given height intervals. + +* **Consistent:** snapshots must be consistent, i.e. not affected by concurrent writes - typically by using a data store that supports versioning and/or snapshot isolation. + +* **Asynchronous:** snapshots must be asynchronous, i.e. not halt block processing and state transitions. + +* **Chunked:** snapshots must be split into chunks of reasonable size (on the order of megabytes), and each chunk must be verifiable against the chain app hash. + +* **Garbage collected:** snapshots must be garbage collected periodically. + +### Restoring Snapshots + +Nodes should have options for enabling state sync and/or fast sync, and be provided a trusted header hash for the light client. + +When starting an empty node with state sync and fast sync enabled, snapshots are restored as follows: + +1. The node checks that it is empty, i.e. that it has no state nor blocks. + +2. The node contacts the given seeds to discover peers. + +3. The node contacts a set of full nodes, and verifies the trusted block header using the given hash via the light client. + +4. The node requests available snapshots via P2P from peers, via `RequestListSnapshots`. Peers will return the 10 most recent snapshots, one message per snapshot. + +5. The node aggregates snapshots from multiple peers, ordered by height and format (in reverse). If there are mismatches between different snapshots, the one hosted by the largest amount of peers is chosen. The node iterates over all snapshots in reverse order by height and format until it finds one that satisfies all of the following conditions: + + * The snapshot height's block is considered trustworthy by the light client (i.e. snapshot height is greater than trusted header and within unbonding period of the latest trustworthy block). + + * The snapshot's height or format hasn't been explicitly rejected by an earlier `RequestOfferSnapshot`. + + * The application accepts the `RequestOfferSnapshot` call. + +6. The node downloads chunks in parallel from multiple peers, via `RequestLoadSnapshotChunk`. Chunk messages cannot exceed 16 MB. + +7. The node passes chunks sequentially to the app via `RequestApplySnapshotChunk`. + +8. Once all chunks have been applied, the node compares the app hash to the chain app hash, and if they do not match it either errors or discards the state and starts over. + +9. The node switches to fast sync to catch up blocks that were committed while restoring the snapshot. + +10. The node switches to normal consensus mode. + +## Gaia Proposal + +This describes the snapshot process seen from Gaia, using format version `1`. The serialization format is unspecified, but likely to be compressed Amino or Protobuf. + +### Snapshot Metadata + +In the initial version there is no snapshot metadata, so it is set to an empty byte buffer. + +Once all chunks have been successfully built, snapshot metadata should be stored in a database and served via `RequestListSnapshots`. + +### Snapshot Chunk Format + +The Gaia data structure consists of a set of named IAVL trees. A root hash is constructed by taking the root hashes of each of the IAVL trees, then constructing a Merkle tree of the sorted name/hash map. + +IAVL trees are versioned, but a snapshot only contains the version relevant for the snapshot height. All historical versions are ignored. + +IAVL trees are insertion-order dependent, so key/value pairs must be set in an appropriate insertion order to produce the same tree branching structure. This insertion order can be found by doing a breadth-first scan of all nodes (including inner nodes) and collecting unique keys in order. However, the node hash also depends on the node's version, so snapshots must contain the inner nodes' version numbers as well. + +For the initial prototype, each chunk consists of a complete dump of all node data for all nodes in an entire IAVL tree. Thus the number of chunks equals the number of persistent stores in Gaia. No incremental verification of chunks is done, only a final app hash comparison at the end of the snapshot restoration. + +For a production version, it should be sufficient to store key/value/version for all nodes (leaf and inner) in insertion order, chunked in some appropriate way. If per-chunk verification is required, the chunk must also contain enough information to reconstruct the Merkle proofs all the way up to the root of the multistore, e.g. by storing a complete subtree's key/value/version data plus Merkle hashes of all other branches up to the multistore root. The exact approach will depend on tradeoffs between size, time, and verification. IAVL RangeProofs are not recommended, since these include redundant data such as proofs for intermediate and leaf nodes that can be derived from the above data. + +Chunks should be built greedily by collecting node data up to some size limit (e.g. 10 MB) and serializing it. Chunk data is stored in the file system as `snapshots///`, and a SHA-256 checksum is stored along with the snapshot metadata. + +### Snapshot Scheduling + +Snapshots should be taken at some configurable height interval, e.g. every 1000 blocks. All nodes should preferably have the same snapshot schedule, such that all nodes can serve chunks for a given snapshot. + +Taking consistent snapshots of IAVL trees is greatly simplified by them being versioned: simply snapshot the version that corresponds to the snapshot height, while concurrent writes create new versions. IAVL pruning must not prune a version that is being snapshotted. + +Snapshots must also be garbage collected after some configurable time, e.g. by keeping the latest `n` snapshots. + +## Resolved Questions + +* Is it OK for state-synced nodes to not have historical blocks nor historical IAVL versions? + + > Yes, this is as intended. Maybe backfill blocks later. + +* Do we need incremental chunk verification for first version? + + > No, we'll start simple. Can add chunk verification via a new snapshot format without any breaking changes in Tendermint. For adversarial conditions, maybe consider support for whitelisting peers to download chunks from. + +* Should the snapshot ABCI interface be a separate optional ABCI service, or mandatory? + + > Mandatory, to keep things simple for now. It will therefore be a breaking change and push the release. For apps using the Cosmos SDK, we can provide a default implementation that does not serve snapshots and errors when trying to apply them. + +* How can we make sure `ListSnapshots` data is valid? An adversary can provide fake/invalid snapshots to DoS peers. + + > For now, just pick snapshots that are available on a large number of peers. Maybe support whitelisting. We may consider e.g. placing snapshot manifests on the blockchain later. + +* Should we punish nodes that provide invalid snapshots? How? + + > No, these are full nodes not validators, so we can't punish them. Just disconnect from them and ignore them. + +* Should we call these snapshots? The SDK already uses the term "snapshot" for `PruningOptions.SnapshotEvery`, and state sync will introduce additional SDK options for snapshot scheduling and pruning that are not related to IAVL snapshotting or pruning. + + > Yes. Hopefully these concepts are distinct enough that we can refer to state sync snapshots and IAVL snapshots without too much confusion. + +* Should we store snapshot and chunk metadata in a database? Can we use the database for chunks? + + > As a first approach, store metadata in a database and chunks in the filesystem. + +* Should a snapshot at height H be taken before or after the block at H is processed? E.g. RPC `/commit` returns app_hash after _previous_ height, i.e. _before_ current height. + + > After commit. + +* Do we need to support all versions of blockchain reactor (i.e. fast sync)? + + > We should remove the v1 reactor completely once v2 has stabilized. + +* Should `ListSnapshots` be a streaming API instead of a request/response API? + + > No, just use a max message size. + +## Status + +Implemented + +## References + +* [ADR-042](./adr-042-state-sync.md) and its references diff --git a/sei-tendermint/docs/architecture/adr-054-crypto-encoding-2.md b/sei-tendermint/docs/architecture/adr-054-crypto-encoding-2.md new file mode 100644 index 0000000000..e58681d155 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-054-crypto-encoding-2.md @@ -0,0 +1,71 @@ +# ADR 054: Crypto encoding (part 2) + +## Changelog + +2020-2-27: Created +2020-4-16: Update + +## Context + +Amino has been a pain point of many users in the ecosystem. While Tendermint does not suffer greatly from the performance degradation introduced by amino, we are making an effort in moving the encoding format to a widely adopted format, [Protocol Buffers](https://developers.google.com/protocol-buffers). With this migration a new standard is needed for the encoding of keys. This will cause ecosystem wide breaking changes. + +Currently amino encodes keys as ` `. + +## Decision + +Previously Tendermint defined all the key types for use in Tendermint and the Cosmos-SDK. Going forward the Cosmos-SDK will define its own protobuf type for keys. This will allow Tendermint to only define the keys that are being used in the codebase (ed25519). +There is the the opportunity to only define the usage of ed25519 (`bytes`) and not have it be a `oneof`, but this would mean that the `oneof` work is only being postponed to a later date. When using the `oneof` protobuf type we will have to manually switch over the possible key types and then pass them to the interface which is needed. + +The approach that will be taken to minimize headaches for users is one where all encoding of keys will shift to protobuf and where amino encoding is relied on, there will be custom marshal and unmarshal functions. + +Protobuf messages: + +```proto +message PubKey { + oneof key { + bytes ed25519 = 1; + } + +message PrivKey { + oneof sum { + bytes ed25519 = 1; + } +} +``` + +> Note: The places where backwards compatibility is needed is still unclear. + +All modules currently do not rely on amino encoded bytes and keys are not amino encoded for genesis, therefore a hardfork upgrade is what will be needed to adopt these changes. + +This work will be broken out into a few PRs, this work will be merged into a proto-breakage branch, all PRs will be reviewed prior to being merged: + +1. Encoding of keys to protobuf and protobuf messages +2. Move Tendermint types to protobuf, mainly the ones that are being encoded. +3. Go one by one through the reactors and transition amino encoded messages to protobuf. +4. Test with cosmos-sdk and/or testnets repo. + +## Status + +Implemented + +## Consequences + +- Move keys to protobuf encoding, where backwards compatibility is needed, amino marshal and unmarshal functions will be used. + +### Positive + +- Protocol Buffer encoding will not change going forward. +- Removing amino overhead from keys will help with the KSM. +- Have a large ecosystem of supported languages. + +### Negative + +- Hardfork is required to integrate this into running chains. + +### Neutral + +## References + +> Are there any relevant PR comments, issues that led up to this, or articles referenced for why we made the given design choice? If so link them here! + +- {reference link} diff --git a/sei-tendermint/docs/architecture/adr-055-protobuf-design.md b/sei-tendermint/docs/architecture/adr-055-protobuf-design.md new file mode 100644 index 0000000000..ab2f752838 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-055-protobuf-design.md @@ -0,0 +1,61 @@ +# ADR 055: Protobuf Design + +## Changelog + +- 2020-4-15: Created (@marbar3778) +- 2020-6-18: Updated (@marbar3778) + +## Context + +Currently we use [go-amino](https://github.com/tendermint/go-amino) throughout Tendermint. Amino is not being maintained anymore (April 15, 2020) by the Tendermint team and has been found to have issues: + +- https://github.com/tendermint/go-amino/issues/286 +- https://github.com/tendermint/go-amino/issues/230 +- https://github.com/tendermint/go-amino/issues/121 + +These are a few of the known issues that users could run into. + +Amino enables quick prototyping and development of features. While this is nice, amino does not provide the performance and developer convenience that is expected. For Tendermint to see wider adoption as a BFT protocol engine a transition to an adopted encoding format is needed. Below are some possible options that can be explored. + +There are a few options to pick from: + +- `Protobuf`: Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and simpler. It is supported in countless languages and has been proven in production for many years. + +- `FlatBuffers`: FlatBuffers is an efficient cross platform serialization library. Flatbuffers are more efficient than Protobuf due to the fast that there is no parsing/unpacking to a second representation. FlatBuffers has been tested and used in production but is not widely adopted. + +- `CapnProto`: Cap’n Proto is an insanely fast data interchange format and capability-based RPC system. Cap'n Proto does not have a encoding/decoding step. It has not seen wide adoption throughout the industry. + +- @erikgrinaker - https://github.com/tendermint/tendermint/pull/4623#discussion_r401163501 + ``` + Cap'n'Proto is awesome. It was written by one of the original Protobuf developers to fix some of its issues, and supports e.g. random access to process huge messages without loading them into memory and an (opt-in) canonical form which would be very useful when determinism is needed (e.g. in the state machine). That said, I suspect Protobuf is the better choice due to wider adoption, although it makes me kind of sad since Cap'n'Proto is technically better. + ``` + +## Decision + +Transition Tendermint to Protobuf because of its performance and tooling. The Ecosystem behind Protobuf is vast and has outstanding [support for many languages](https://developers.google.com/protocol-buffers/docs/tutorials). + +We will be making this possible by keeping the current types in there current form (handwritten) and creating a `/proto` directory in which all the `.proto` files will live. Where encoding is needed, on disk and over the wire, we will call util functions that will transition the types from handwritten go types to protobuf generated types. This is inline with the recommended file structure from [buf](https://buf.build). You can find more information on this file structure [here](https://buf.build/docs/lint-checkers#file_layout). + +By going with this design we will enable future changes to types and allow for a more modular codebase. + +## Status + +Implemented + +## Consequences + +### Positive + +- Allows for modular types in the future +- Less refactoring +- Allows the proto files to be pulled into the spec repo in the future. +- Performance +- Tooling & support in multiple languages + +### Negative + +- When a developer is updating a type they need to make sure to update the proto type as well + +### Neutral + +## References diff --git a/sei-tendermint/docs/architecture/adr-056-light-client-amnesia-attacks.md b/sei-tendermint/docs/architecture/adr-056-light-client-amnesia-attacks.md new file mode 100644 index 0000000000..8eed63d9bb --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-056-light-client-amnesia-attacks.md @@ -0,0 +1,170 @@ +# ADR 056: Light client amnesia attacks + +## Changelog + +- 02.04.20: Initial Draft +- 06.04.20: Second Draft +- 10.06.20: Post Implementation Revision +- 19.08.20: Short Term Amnesia Alteration +- 01.10.20: Status of Amnesia for 0.34 + +## Context + +Whilst most created evidence of malicious behavior is self evident such that any individual can verify them independently there are types of evidence, known collectively as global evidence, that require further collaboration from the network in order to accumulate enough information to create evidence that is individually verifiable and can therefore be processed through consensus. [Fork Accountability](https://github.com/tendermint/tendermint/blob/master/spec/consensus/light-client/accountability.md) has been coined to describe the entire process of detection, proving and punishing of malicious behavior. This ADR addresses specifically what a light client amnesia attack is and how it can be proven and the current decision around handling light client amnesia attacks. For information on evidence handling by the light client, it is recommended to read [ADR 47](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-047-handling-evidence-from-light-client.md). + +### Amnesia Attack + +The schematic below explains a scenario where an amnesia attack can occur such that two sets of honest nodes, C1 and C2, commit different blocks. + +![](../imgs/tm-amnesia-attack.png) + +1. C1 and F send PREVOTE messages for block A. +2. C1 sends PRECOMMIT for round 1 for block A. +3. A new round is started, C2 and F send PREVOTE messages for a different block B. +4. C2 and F then send PRECOMMIT messages for block B. +5. F later on creates PRECOMMITS for block A and combines it with those from C1 to form a block + + +This forged block can then be used to fool light clients trying to verify it. It must be stressed that there are a few more hurdles or dimensions to the attack to consider.For a more detailed walkthrough refer to Appendix A. + +## Decision + +The decision surrounding amnesia attacks has both a short term and long term component. In the long term, a more sturdy protocol will need to be fleshed out and implemented. There is already draft documents outlining what such a protocol would look like and the resources it would require (see references). Prior revisions however outlined a protocol which had been implemented (See Appendix B). It was agreed that it still required greater consideration and review given it's importance. It was therefore discussed, with the limited time frame set before 0.34, whether the protocol should be completely removed or if there should remain some logic in handling the aforementioned scenarios. + +The latter of the two options meant storing a record of all votes in any height with which there was more than one round. This information would then be accessible for applications if they wanted to perform some off-chain verification and punishment. + +In summary, this seemed like too much to ask of the application to implement only on a temporary basis, whilst not having the domain specific knowledge and considering such a difficult and unlikely attack. Therefore the short term decision is to identify when the attack has occurred and implement the detector algorithm highlighted in [ADR 47](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-047-handling-evidence-from-light-client.md) but to not implement any accountability protocol that would identify malicious validators and allow applications to punish them. This will hopefully change in the long term with the focus on eventually reaching a concrete and secure protocol with identifying and dealing with these attacks. + +## Implications + +- Light clients will still be able to detect amnesia attacks so long as the assumption of having at least one correct witness holds +- Light clients will gossip the attack to witnesses and halt thus failing to validate the incorrect block (and therefore not being fooled) +- Validators will propose and commit evidence of the amnesia attack on chain +- No evidence will be passed to the application indicting any malicious validators, thus meaning that no malicious validators will be punished for performing the attack +- If a light clients bubble of providers are all faulty the light client will falsely validate amnesia attacks as well as any other 1/3+ light client attack. + +## Status + +Implemented + +## Consequences + +### Positive + +Light clients are still able to prevent falsely validating a block. + +Already implemented. + +### Negative + +Light clients where all witnesses are faulty can be subject to an amnesia attack and verify a forged block that is not part of the chain. + +### Neutral + + +## References + +- [Fork accountability algorithm](https://docs.google.com/document/d/11ZhMsCj3y7zIZz4udO9l25xqb0kl7gmWqNpGVRzOeyY/edit) +- [Fork accountability spec](https://github.com/tendermint/tendermint/blob/master/spec/consensus/light-client/accountability.md) + +## Appendix A: Detailed Walkthrough of Performing a Light Client Amnesia Attack + +As the attacker, a prerequisite to this attack is first to observe or attempt to craft a block where a subset (less than ⅓) of correct validators sent precommit votes for a proposal in an earlier round and later received ⅔ prevotes for a different proposal thus changing their lock and correctly sending precommit votes (and later committing) for the proposal in the latter round. The second prerequisite is to have at least ⅓ validating power in that height (or enough voting power to have ⅔+ when combined with the precommits of the earlier round). + +To go back to how one may craft such a block, we begin with one of the validators in this cabal being the proposer. They propose a block with all the txs that they want to fool a light client with. The proposer then only relays this to the members of their cabal and a controlled subset of correct validators (less than ⅓). We will call ourselves f for faulty and c1 for this correct subset. + +Attackers need to rely on the assistance of some form of a network partition or on the nature of the sporadic voting to conjure their desired environment. The attackers need at least ⅓ of the validating power of the remaining correct validators, we shall denote this as c2, to not see ⅔ prevotes and thus not be locked on a block when it comes to the next round. If we have less than ⅓ remaining validators that don’t see this first proposal, then we will not have enough voting power to reach ⅔+ prevotes (the sum of f and c2) in the following round and thus change the lock of c1 such that we correctly commit the block in the latter round yet have enough precommits in the earlier round to fool the light client. Remember this is our desired scenario: to save all these precommit votes for a different (in this case earlier) proposed block. + +To try to break this down even further let’s go back to the first round. F sends c1 a proposal (and not c2), c1 in turn sends their prevotes to all whom they are connected to. This means that some will be received by c2. F then sends their prevotes just to c1. Now not all validators in c1 may be connected to each other, so perhaps some validators in c1 might not receive ⅔ (from their own cohort and from f) and thus not precommit. In other situations we may see a validator in c2 connected to all validators in c1. Therefore they too will receive ⅔ prevotes and thus precommit. We can conclude therefore that although targeting this c1 subset of validators, those that actually precommit may be somewhat different. The key is for the attackers to observe the n amount of precommits they need in round 1 where n is ⅔+ - f, whilst ensuring that n itself does not go over ⅓. If it does then less than ⅔ validators remain to be able to change the lock and commit the block in the later round. + +An extra dimension to this puzzle is the timeouts. Whilst c1 is relaying votes to its peers and these validators count closer towards the ⅔ threshold needed to send their precommit votes at any moment the timeout could be reached and thus the nodes will precommit nil and ignore any late prevote messages. + +This is all to say that such an attack is partly out of the attackers hands. All they can do is tweak the subset of validators that they first choose to gossip the proposal and modify the timings around when they send their prevotes until they reach the desired precondition: n precommits for an earlier proposal and ⅔ precommits for the later proposal. So this is up to the gods of non deterministic behavior to help them out with their plight. I’m not going to allocate the hours to calculate the probability but it could be in the magnitude of 1000’s of blocks trying to get this scenario before the precondition is met. + +Obviously, the probability becomes substantially higher as the cabal’s voting power nears ⅔. This is because both n decreases and there is greater tolerance to send prevotes to a greater amount of validators without going overboard and reaching the ⅓ precommit threshold in the first round which would mean they would have to try again. + +Once we’ve got our n, we can then forge the remaining signatures for that block (from the f) and bundle them all together and tada we have a forged signed header. + +Now we’ve done that, it’s time to find some light clients to fool. + +Also critical to this type of attack is that the light client that is connected to our nodes must request a light block at that specific height with which we forged this signed header but this shouldn’t be hard to do. To bring this back to a real context, say our faulty cabal, f, bought some groceries using atoms and then wanted to prove that they did, the grocery owner whips out their phone, runs the light client and f tells them the height they committed the transaction. + +An important note here is that because the validator sets are the same between the canonical and the forged block, this attack also works on light clients that verify sequentially. In fact, they are especially vulnerable because they currently don’t run the detector function afterwards. + +However, if our grocery owner verifies using the skipping algorithm, they will then run the detector and therefore they will compare with other witness nodes. Ideally for our attackers, if f has a lot of nodes exposing their rpc endpoints, then there is a chance that all the witnesses the light client has are faulty and thus we have a successful attack and the grocery owner has been fooled into handing f a few apples and carrots. + +However, there is a greater chance, especially if the light client is connected to quite a few other nodes that a divergence will be detected. The light client will figure out there was an amnesia attack and send the evidence to the witness to commit on chain. The grocery owner will see that verification failed and won't hand over the apples or carrots but also f won't be punished for their villainous behavior. This means that they can go over to the hairdressers and see if they can pull off the same stunt again. + +So this brings to the fore the current defenses that are in place. As long as there has not been a cabal of validators with greater than 1/3 power (or the trust level), the light clients verification algorithm will prevent any attempts to deceive it. Greater than this threshold and we rely on the detector as a second layer of defense to pick up on any attack. It's security is chiefly tied with the assumption that at least one of the witnesses is correct. If this fails then as illustrated above, the light client can be suceptible to amnesia (as well as equivocation and lunatic) attacks. + +The outstanding problem, if we indeed consider it big enough to be one, therefore lies in the incentivisation mechanism which is how f and other malicious validators are punished. This is decided by the application but it's up to Tendermint to identify them. With other forms of attacks the evidence lies in the precommits. But because an amnesia attack uses precommits from another round, which is information that is discarded by the consensus engine once the block is committed, it is difficult to understand which validators were in fact faulty. + +If we cast our minds back to what I previously wrote, part of an amnesia attack depends on getting n precommits from an earlier round. These are then bundled with the malicious validators' own signatures. This means that the light client nor full nodes are capable of distinguishing which of the signatures were correctly created as part of Tendermint consensus and which were forged later on. + +## Appendix B: Prior Amnesia Evidence Accountability Implementation + +As the distinction between these two attacks (amnesia and back to the past) can only be distinguished by confirming with all validators (to see if it is a full fork or a light fork), for the purpose of simplicity, these attacks will be treated as the same. + +Currently, the evidence reactor is used to simply broadcast and store evidence. The idea of creating a new reactor for the specific task of verifying these attacks was briefly discussed, but it is decided that the current evidence reactor will be extended. + +The process begins with a light client receiving conflicting headers (in the future this could also be a full node during fast sync or state sync), which it sends to a full node to analyze. As part of [evidence handling](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-047-handling-evidence-from-light-client.md), this is extracted into potential amnesia evidence when the validator voted in more than one round for a different block. + +```golang +type PotentialAmnesiaEvidence struct { + VoteA *types.Vote + VoteB *types.Vote + + Heightstamp int64 +} +``` + +*NOTE: There had been an earlier notion towards batching evidence against the entire set of validators all together but this has given way to individual processing predominantly to maintain consistency with the other forms of evidence. A more extensive breakdown can be found [here](https://github.com/tendermint/tendermint/issues/4729)* + +The evidence will contain the precommit votes for a validator that voted for both rounds. If the validator voted in more than two rounds, then they will have multiple `PotentialAmnesiaEvidence` against them hence it is possible that there is multiple evidence for a validator in a single height but not for a single round. The votes should be all valid and the height and time that the infringement was made should be within: + +`MaxEvidenceAge - ProofTrialPeriod` + +This trial period will be discussed later. + +Returning to the event of an amnesia attack, if we were to examine the behavior of the honest nodes, C1 and C2, in the schematic, C2 will not PRECOMMIT an earlier round, but it is likely, if a node in C1 were to receive +2/3 PREVOTE's or PRECOMMIT's for a higher round, that it would remove the lock and PREVOTE and PRECOMMIT for the later round. Therefore, unfortunately it is not a case of simply punishing all nodes that have double voted in the `PotentialAmnesiaEvidence`. + +Instead we use the Proof of Lock Change (PoLC) referred to in the [consensus spec](https://github.com/tendermint/tendermint/blob/master/spec/consensus/consensus.md#terms). When an honest node votes again for a different block in a later round +(which will only occur in very rare cases), it will generate the PoLC and store it in the evidence reactor for a time equal to the `MaxEvidenceAge` + +```golang +type ProofOfLockChange struct { + Votes []*types.Vote + PubKey crypto.PubKey +} +``` + +This can be either evidence of +2/3 PREVOTES or PRECOMMITS (either warrants the honest node the right to vote) and is valid, among other checks, so long as the PRECOMMIT vote of the node in V2 came after all the votes in the `ProofOfLockChange` i.e. it received +2/3 votes for a block and then voted for that block thereafter (F is unable to prove this). + +In the event that an honest node receives `PotentialAmnesiaEvidence` it will first `ValidateBasic()` and `Verify()` it and then will check if it is among the suspected nodes in the evidence. If so, it will retrieve the `ProofOfLockChange` and combine it with `PotentialAmensiaEvidence` to form `AmensiaEvidence`. All honest nodes that are part of the indicted group will have a time, measured in blocks, equal to `ProofTrialPeriod`, the aforementioned evidence paramter, to gossip their `AmnesiaEvidence` with their `ProofOfLockChange` + +```golang +type AmnesiaEvidence struct { + *types.PotentialAmnesiaEvidence + Polc *types.ProofOfLockChange +} +``` + +If the node is not required to submit any proof than it will simply broadcast the `PotentialAmnesiaEvidence`, stamp the height that it received the evidence and begin to wait out the trial period. It will ignore other `PotentialAmnesiaEvidence` gossiped at the same height and round. + +If a node receives `AmnesiaEvidence` that contains a valid `ProofOfClockChange` it will add it to the evidence store and replace any PotentialAmnesiaEvidence of the same height and round. At this stage, an amnesia evidence with polc, it is ready to be submitted to the chin. If a node receives `AmnesiaEvidence` with an empty polc it will ignore it as each honest node will conduct their own trial period to be sure that time was given for any other honest nodes to respond. + +There can only be one `AmnesiaEvidence` and one `PotentialAmneisaEvidence` stored for each attack (i.e. for each height). + +When, `state.LastBlockHeight > PotentialAmnesiaEvidence.timestamp + ProofTrialPeriod`, nodes will upgrade the corresponding `PotentialAmnesiaEvidence` and attach an empty `ProofOfLockChange`. Then honest validators of the current validator set can begin proposing the block that contains the `AmnesiaEvidence`. + +*NOTE: Even before the evidence is proposed and committed, the off-chain process of gossiping valid evidence could be + enough for honest nodes to recognize the fork and halt.* + +Other validators will vote `nil` if: + +- The Amnesia Evidence is not valid +- The Amensia Evidence is not within their own trial period i.e. too soon. +- They don't have the Amnesia Evidence and it is has an empty polc (each validator needs to run their own trial period of the evidence) +- Is of an AmnesiaEvidence that has already been committed to the chain. + +Finally it is important to stress that the protocol of having a trial period addresses attacks where a validator voted again for a different block at a later round and time. In the event, however, that the validator voted for an earlier round after voting for a later round i.e. `VoteA.Timestamp < VoteB.Timestamp && VoteA.Round > VoteB.Round` then this action is inexcusable and can be punished immediately without the need of a trial period. In this case, PotentialAmnesiaEvidence will be instantly upgraded to AmnesiaEvidence. diff --git a/sei-tendermint/docs/architecture/adr-057-RPC.md b/sei-tendermint/docs/architecture/adr-057-RPC.md new file mode 100644 index 0000000000..5e7c9f1dcc --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-057-RPC.md @@ -0,0 +1,90 @@ +# ADR 057: RPC + +## Changelog + +- 19-05-2020: created + +## Context + +Currently the RPC layer of Tendermint is using a variant of the JSON-RPC protocol. This ADR is meant to serve as a pro/con list for possible alternatives and JSON-RPC. + +There are currently two options being discussed: gRPC & JSON-RPC. + +### JSON-RPC + +JSON-RPC is a JSON-based RPC protocol. Tendermint has implemented its own variant of JSON-RPC which is not compatible with the [JSON-RPC 2.0 specification](https://www.jsonrpc.org/specification). + +**Pros:** + +- Easy to use & implement (by default) +- Well-known and well-understood by users and integrators +- Integrates reasonably well with web infrastructure (proxies, API gateways, service meshes, caches, etc) +- human readable encoding (by default) + +**Cons:** + +- No schema support +- RPC clients must be hand-written +- Streaming not built into protocol +- Underspecified types (e.g. numbers and timestamps) +- Tendermint has its own implementation (not standards compliant, maintenance overhead) + - High maintenance cost associated to this +- Stdlib `jsonrpc` package only supports JSON-RPC 1.0, no dominant package for JSON-RPC 2.0 +- Tooling around documentation/specification (e.g. Swagger) could be better +- JSON data is larger (offset by HTTP compression) +- Serializing is slow ([~100% marshal, ~400% unmarshal](https://github.com/alecthomas/go_serialization_benchmarks)); insignificant in absolute terms +- Specification was last updated in 2013 and is way behind Swagger/OpenAPI + +### gRPC + gRPC-gateway (REST + Swagger) + +gRPC is a high performant RPC framework. It has been battle tested by a large number of users and is heavily relied on and maintained by countless large corporations. + +**Pros:** + +- Efficient data retrieval for users, lite clients and other protocols +- Easily implemented in supported languages (Go, Dart, JS, TS, rust, Elixir, Haskell, ...) +- Defined schema with richer type system (Protocol Buffers) +- Can use common schemas and types across all protocols and data stores (RPC, ABCI, blocks, etc) +- Established conventions for forwards- and backwards-compatibility +- Bi-directional streaming +- Servers and clients are be autogenerated in many languages (e.g. Tendermint-rs) +- Auto-generated swagger documentation for REST API +- Backwards and forwards compatibility guarantees enforced at the protocol level. +- Can be used with different codecs (JSON, CBOR, ...) + +**Cons:** + +- Complex system involving cross-language schemas, code generation, and custom protocols +- Type system does not always map cleanly to native language type system; integration woes +- Many common types require Protobuf plugins (e.g. timestamps and duration) +- Generated code may be non-idiomatic and hard to use +- Migration will be disruptive and laborious + +## Decision + +> This section explains all of the details of the proposed solution, including implementation details. +> It should also describe affects / corollary items that may need to be changed as a part of this. +> If the proposed change will be large, please also indicate a way to do the change to maximize ease of review. +> (e.g. the optimal split of things to do between separate PR's) + +## Status + +> A decision may be "proposed" if it hasn't been agreed upon yet, or "accepted" once it is agreed upon. If a later ADR changes or reverses a decision, it may be marked as "deprecated" or "superseded" with a reference to its replacement. + +{Deprecated|Proposed|Accepted} + +## Consequences + +> This section describes the consequences, after applying the decision. All consequences should be summarized here, not just the "positive" ones. + +### Positive + +### Negative + +### Neutral + +## References + +> Are there any relevant PR comments, issues that led up to this, or articles referenced for why we made the given design choice? If so link them here! + +- {reference link} diff --git a/sei-tendermint/docs/architecture/adr-058-event-hashing.md b/sei-tendermint/docs/architecture/adr-058-event-hashing.md new file mode 100644 index 0000000000..184b921d5f --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-058-event-hashing.md @@ -0,0 +1,122 @@ +# ADR 058: Event hashing + +## Changelog + +- 2020-07-17: initial version +- 2020-07-27: fixes after Ismail and Ethan's comments +- 2020-07-27: declined + +## Context + +Before [PR#4845](https://github.com/tendermint/tendermint/pull/4845), +`Header#LastResultsHash` was a root of the Merkle tree built from `DeliverTx` +results. Only `Code`, `Data` fields were included because `Info` and `Log` +fields are non-deterministic. + +At some point, we've added events to `ResponseBeginBlock`, `ResponseEndBlock`, +and `ResponseDeliverTx` to give applications a way to attach some additional +information to blocks / transactions. + +Many applications seem to have started using them since. + +However, before [PR#4845](https://github.com/tendermint/tendermint/pull/4845) +there was no way to prove that certain events were a part of the result +(_unless the application developer includes them into the state tree_). + +Hence, [PR#4845](https://github.com/tendermint/tendermint/pull/4845) was +opened. In it, `GasWanted` along with `GasUsed` are included when hashing +`DeliverTx` results. Also, events from `BeginBlock`, `EndBlock` and `DeliverTx` +results are hashed into the `LastResultsHash` as follows: + +- Since we do not expect `BeginBlock` and `EndBlock` to contain many events, + these will be Protobuf encoded and included in the Merkle tree as leaves. +- `LastResultsHash` therefore is the root hash of a Merkle tree w/ 3 leafs: + proto-encoded `ResponseBeginBlock#Events`, root hash of a Merkle tree build + from `ResponseDeliverTx` responses (Log, Info and Codespace fields are + ignored), and proto-encoded `ResponseEndBlock#Events`. +- Order of events is unchanged - same as received from the ABCI application. + +[Spec PR](https://github.com/tendermint/spec/pull/97/files) + +While it's certainly good to be able to prove something, introducing new events +or removing such becomes difficult because it breaks the `LastResultsHash`. It +means that every time you add, remove or update an event, you'll need a +hard-fork. And that is undoubtedly bad for applications, which are evolving and +don't have a stable events set. + +## Decision + +As a middle ground approach, the proposal is to add the +`Block#LastResultsEvents` consensus parameter that is a list of all events that +are to be hashed in the header. + +``` +@ proto/tendermint/abci/types.proto:295 @ message BlockParams { + int64 max_bytes = 1; + // Note: must be greater or equal to -1 + int64 max_gas = 2; + // List of events, which will be hashed into the LastResultsHash + repeated string last_results_events = 3; +} +``` + +Initially the list is empty. The ABCI application can change it via `InitChain` +or `EndBlock`. + +Example: + +```go +func (app *MyApp) DeliverTx(req types.RequestDeliverTx) types.ResponseDeliverTx { + //... + events := []abci.Event{ + { + Type: "transfer", + Attributes: []abci.EventAttribute{ + {Key: []byte("sender"), Value: []byte("Bob"), Index: true}, + }, + }, + } + return types.ResponseDeliverTx{Code: code.CodeTypeOK, Events: events} +} +``` + +For "transfer" event to be hashed, the `LastResultsEvents` must contain a +string "transfer". + +## Status + +Declined + +**Until there's more stability/motivation/use-cases/demand, the decision is to +push this entirely application side and just have apps which want events to be +provable to insert them into their application-side merkle trees. Of course +this puts more pressure on their application state and makes event proving +application specific, but it might help built up a better sense of use-cases +and how this ought to ultimately be done by Tendermint.** + +## Consequences + +### Positive + +1. networks can perform parameter change proposals to update this list as new events are added +2. allows networks to avoid having to do hard-forks +3. events can still be added at-will to the application w/o breaking anything + +### Negative + +1. yet another consensus parameter +2. more things to track in the tendermint state + +## References + +- [ADR 021](./adr-021-abci-events.md) +- [Indexing transactions](../app-dev/indexing-transactions.md) + +## Appendix A. Alternative proposals + +The other proposal was to add `Hash bool` flag to the `Event`, similarly to +`Index bool` EventAttribute's field. When `true`, Tendermint would hash it into +the `LastResultsEvents`. The downside is that the logic is implicit and depends +largely on the node's operator, who decides what application code to run. The +above proposal makes it (the logic) explicit and easy to upgrade via +governance. diff --git a/sei-tendermint/docs/architecture/adr-059-evidence-composition-and-lifecycle.md b/sei-tendermint/docs/architecture/adr-059-evidence-composition-and-lifecycle.md new file mode 100644 index 0000000000..521dee257f --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-059-evidence-composition-and-lifecycle.md @@ -0,0 +1,306 @@ +# ADR 059: Evidence Composition and Lifecycle + +## Changelog + +- 04/09/2020: Initial Draft (Unabridged) +- 07/09/2020: First Version +- 13/03/2021: Ammendment to accomodate forward lunatic attack +- 29/06/2021: Add information about ABCI specific fields + +## Scope + +This document is designed to collate together and surface some predicaments involving evidence in Tendermint: both its composition and lifecycle. It then aims to find a solution to these. The scope does not extend to the verification nor detection of certain types of evidence but concerns itself mainly with the general form of evidence and how it moves from inception to application. + +## Background + +For a long time `DuplicateVoteEvidence`, formed in the consensus reactor, was the only evidence Tendermint had. It was produced whenever two votes from the same validator in the same round +was observed and thus it was designed that each evidence was for a single validator. It was predicted that there may come more forms of evidence and thus `DuplicateVoteEvidence` was used as the model for the `Evidence` interface and also for the form of the evidence data sent to the application. It is important to note that Tendermint concerns itself just with the detection and reporting of evidence and it is the responsibility of the application to exercise punishment. + +```go +type Evidence interface { //existing + Height() int64 // height of the offense + Time() time.Time // time of the offense + Address() []byte // address of the offending validator + Bytes() []byte // bytes which comprise the evidence + Hash() []byte // hash of the evidence + Verify(chainID string, pubKey crypto.PubKey) error // verify the evidence + Equal(Evidence) bool // check equality of evidence + + ValidateBasic() error + String() string +} +``` + +```go +type DuplicateVoteEvidence struct { + VoteA *Vote + VoteB *Vote + + timestamp time.Time // taken from the block time +} +``` + +Tendermint has now introduced a new type of evidence to protect light clients from being attacked. This `LightClientAttackEvidence` (see [here](https://github.com/informalsystems/tendermint-rs/blob/31ca3e64ce90786c1734caf186e30595832297a4/docs/spec/lightclient/attacks/evidence-handling.md) for more information) is vastly different to `DuplicateVoteEvidence` in that it is physically a much different size containing a complete signed header and validator set. It is formed within the light client, not the consensus reactor and requires a lot more information from state to verify (`VerifyLightClientAttack(commonHeader, trustedHeader *SignedHeader, commonVals *ValidatorSet)` vs `VerifyDuplicateVote(chainID string, pubKey PubKey)`). Finally it batches validators together (a single piece of evidence that implicates multiple malicious validators at a height) as opposed to having individual evidence (each piece of evidence is per validator per height). This evidence stretches the existing mould that was used to accommodate new types of evidence and has thus caused us to reconsider how evidence should be formatted and processed. + +```go +type LightClientAttackEvidence struct { // proposed struct in spec + ConflictingBlock *LightBlock + CommonHeight int64 + Type AttackType // enum: {Lunatic|Equivocation|Amnesia} + + timestamp time.Time // taken from the block time at the common height +} +``` +*Note: These three attack types have been proven by the research team to be exhaustive* + +## Possible Approaches for Evidence Composition + +### Individual framework + +Evidence remains on a per validator basis. This causes the least disruption to the current processes but requires that we break `LightClientAttackEvidence` into several pieces of evidence for each malicious validator. This not only has performance consequences in that there are n times as many database operations and that the gossiping of evidence will require more bandwidth then necessary (by requiring a header for each piece) but it potentially impacts our ability to validate it. In batch form, the full node can run the same process the light client did to see that 1/3 validating power was present in both the common block and the conflicting block whereas this becomes more difficult to verify individually without opening the possibility that malicious validators forge evidence against innocent . Not only that, but `LightClientAttackEvidence` also deals with amnesia attacks which unfortunately have the characteristic where we know the set of validators involved but not the subset that were actually malicious (more to be said about this later). And finally splitting the evidence into individual pieces makes it difficult to understand the severity of the attack (i.e. the total voting power involved in the attack) + +#### An example of a possible implementation path + +We would ignore amnesia evidence (as individually it's hard to make) and revert to the initial split we had before where `DuplicateVoteEvidence` is also used for light client equivocation attacks and thus we only need `LunaticEvidence`. We would also most likely need to remove `Verify` from the interface as this isn't really something that can be used. + +``` go +type LunaticEvidence struct { // individual lunatic attack + header *Header + commonHeight int64 + vote *Vote + + timestamp time.Time // once again taken from the block time at the height of the common header +} +``` + +### Batch Framework + +The last approach of this category would be to consider batch only evidence. This works fine with `LightClientAttackEvidence` but would require alterations to `DuplicateVoteEvidence` which would most likely mean that the consensus would send conflicting votes to a buffer in the evidence module which would then wrap all the votes together per height before gossiping them to other nodes and trying to commit it on chain. At a glance this may improve IO and verification speed and perhaps more importantly grouping validators gives the application and Tendermint a better overview of the severity of the attack. + +However individual evidence has the advantage that it is easy to check if a node already has that evidence meaning we just need to check hashes to know that we've already verified this evidence before. Batching evidence would imply that each node may have a different combination of duplicate votes which may complicate things. + +#### An example of a possible implementation path + +`LightClientAttackEvidence` won't change but the evidence interface will need to look like the proposed one above and `DuplicateVoteEvidence` will need to change to encompass multiple double votes. A problem with batch evidence is that it needs to be unique to avoid people from submitting different permutations. + +## Decision + +The decision is to adopt a hybrid design. + +We allow individual and batch evidence to coexist together, meaning that verification is done depending on the evidence type and that the bulk of the work is done in the evidence pool itself (including forming the evidence to be sent to the application). + + +## Detailed Design + +Evidence has the following simple interface: + +```go +type Evidence interface { //proposed + Height() int64 // height of the offense + Bytes() []byte // bytes which comprise the evidence + Hash() []byte // hash of the evidence + ValidateBasic() error + String() string +} +``` + +The changing of the interface is backwards compatible as these methods are all present in the previous version of the interface. However, networks will need to upgrade to be able to process the new evidence as verification has changed. + +We have two concrete types of evidence that fulfil this interface + +```go +type LightClientAttackEvidence struct { + ConflictingBlock *LightBlock + CommonHeight int64 // the last height at which the primary provider and witness provider had the same header + + // abci specific information + ByzantineValidators []*Validator // validators in the validator set that misbehaved in creating the conflicting block + TotalVotingPower int64 // total voting power of the validator set at the common height + Timestamp time.Time // timestamp of the block at the common height +} +``` +where the `Hash()` is the hash of the header and commonHeight. + +Note: It was also discussed whether to include the commit hash which captures the validators that signed the header. However this would open the opportunity for someone to propose multiple permutations of the same evidence (through different commit signatures) hence it was omitted. Consequentially, when it comes to verifying evidence in a block, for `LightClientAttackEvidence` we can't just check the hashes because someone could have the same hash as us but a different commit where less than 1/3 validators voted which would be an invalid version of the evidence. (see `fastCheck` for more details) + +```go +type DuplicateVoteEvidence { + VoteA *Vote + VoteB *Vote + + // abci specific information + TotalVotingPower int64 + ValidatorPower int64 + Timestamp time.Time +} +``` +where the `Hash()` is the hash of the two votes + +For both of these types of evidence, `Bytes()` represents the proto-encoded byte array format of the evidence and `ValidateBasic` is +an initial consistency check to make sure the evidence has a valid structure. + +### The Evidence Pool + +`LightClientAttackEvidence` is generated in the light client and `DuplicateVoteEvidence` in consensus. Both are sent to the evidence pool through `AddEvidence(ev Evidence) error`. The evidence pool's primary purpose is to verify evidence. It also gossips evidence to other peers' evidence pool and serves it to consensus so it can be committed on chain and the relevant information can be sent to the application in order to exercise punishment. When evidence is added, the pool first runs `Has(ev Evidence)` to check if it has already received it (by comparing hashes) and then `Verify(ev Evidence) error`. Once verified the evidence pool stores it it's pending database. There are two databases: one for pending evidence that is not yet committed and another of the committed evidence (to avoid committing evidence twice) + +#### Verification + +`Verify()` does the following: + +- Use the hash to see if we already have this evidence in our committed database. + +- Use the height to check if the evidence hasn't expired. + +- If it has expired then use the height to find the block header and check if the time has also expired in which case we drop the evidence + +- Then proceed with switch statement for each of the two evidence: + +For `DuplicateVote`: + +- Check that height, round, type and validator address are the same + +- Check that the Block ID is different + +- Check the look up table for addresses to make sure there already isn't evidence against this validator + +- Fetch the validator set and confirm that the address is in the set at the height of the attack + +- Check that the chain ID and signature is valid. + +For `LightClientAttack` + +- Fetch the common signed header and val set from the common height and use skipping verification to verify the conflicting header + +- Fetch the trusted signed header at the same height as the conflicting header and compare with the conflicting header to work out which type of attack it is and in doing so return the malicious validators. NOTE: If the node doesn't have the signed header at the height of the conflicting header, it instead fetches the latest header it has and checks to see if it can prove the evidence based on a violation of header time. This is known as forward lunatic attack. + + - If equivocation, return the validators that signed for the commits of both the trusted and signed header + + - If lunatic, return the validators from the common val set that signed in the conflicting block + + - If amnesia, return no validators (since we can't know which validators are malicious). This also means that we don't currently send amnesia evidence to the application, although we will introduce more robust amnesia evidence handling in future Tendermint Core releases + +- Check that the hashes of the conflicting header and the trusted header are different + +- In the case of a forward lunatic attack, where the trusted header height is less than the conflicting header height, the node checks that the time of the trusted header is later than the time of conflicting header. This proves that the conflicting header breaks monotonically increasing time. If the node doesn't have a trusted header with a later time then it is unable to validate the evidence for now. + +- Lastly, for each validator, check the look up table to make sure there already isn't evidence against this validator + +After verification we persist the evidence with the key `height/hash` to the pending evidence database in the evidence pool. + +#### ABCI Evidence + +Both evidence structures contain data (such as timestamp) that are necessary to be passed to the application but do not strictly constitute evidence of misbehaviour. As such, these fields are verified last. If any of these fields are invalid to a node i.e. they don't correspond with their state, nodes will reconstruct a new evidence struct from the existing fields and repopulate the abci specific fields with their own state data. + +#### Broadcasting and receiving evidence + +The evidence pool also runs a reactor that broadcasts the newly validated +evidence to all connected peers. + +Receiving evidence from other evidence reactors works in the same manner as receiving evidence from the consensus reactor or a light client. + + +#### Proposing evidence on the block + +When it comes to prevoting and precomitting a proposal that contains evidence, the full node will once again +call upon the evidence pool to verify the evidence using `CheckEvidence(ev []Evidence)`: + +This performs the following actions: + +1. Loops through all the evidence to check that nothing has been duplicated + +2. For each evidence, run `fastCheck(ev evidence)` which works similar to `Has` but instead for `LightClientAttackEvidence` if it has the +same hash it then goes on to check that the validators it has are all signers in the commit of the conflicting header. If it doesn't pass fast check (because it hasn't seen the evidence before) then it will have to verify the evidence. + +3. runs `Verify(ev Evidence)` - Note: this also saves the evidence to the db as mentioned before. + + +#### Updating application and pool + +The final part of the lifecycle is when the block is committed and the `BlockExecutor` then updates state. As part of this process, the `BlockExecutor` gets the evidence pool to create a simplified format for the evidence to be sent to the application. This happens in `ApplyBlock` where the executor calls `Update(Block, State) []abci.Evidence`. + +```go +abciResponses.BeginBlock.ByzantineValidators = evpool.Update(block, state) +``` + +Here is the format of the evidence that the application will receive. As seen above, this is stored as an array within `BeginBlock`. +The changes to the application are minimal (it is still formed one for each malicious validator) with the exception of using an enum instead of a string for the evidence type. + +```go +type Evidence struct { + // either LightClientAttackEvidence or DuplicateVoteEvidence as an enum (abci.EvidenceType) + Type EvidenceType `protobuf:"varint,1,opt,name=type,proto3,enum=tendermint.abci.EvidenceType" json:"type,omitempty"` + // The offending validator + Validator Validator `protobuf:"bytes,2,opt,name=validator,proto3" json:"validator"` + // The height when the offense occurred + Height int64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"` + // The corresponding time where the offense occurred + Time time.Time `protobuf:"bytes,4,opt,name=time,proto3,stdtime" json:"time"` + // Total voting power of the validator set in case the ABCI application does + // not store historical validators. + // https://github.com/tendermint/tendermint/issues/4581 + TotalVotingPower int64 `protobuf:"varint,5,opt,name=total_voting_power,json=totalVotingPower,proto3" json:"total_voting_power,omitempty"` +} +``` + + +This `Update()` function does the following: + +- Increments state which keeps track of both the current time and height used for measuring expiry + +- Marks evidence as committed and saves to db. This prevents validators from proposing committed evidence in the future + Note: the db just saves the height and the hash. There is no need to save the entire committed evidence + +- Forms ABCI evidence as such: (note for `DuplicateVoteEvidence` the validators array size is 1) + ```go + for _, val := range evInfo.Validators { + abciEv = append(abciEv, &abci.Evidence{ + Type: evType, // either DuplicateVote or LightClientAttack + Validator: val, // the offending validator (which includes the address, pubkey and power) + Height: evInfo.ev.Height(), // the height when the offense happened + Time: evInfo.time, // the time when the offense happened + TotalVotingPower: evInfo.totalVotingPower // the total voting power of the validator set + }) + } + ``` + +- Removes expired evidence from both pending and committed databases + +The ABCI evidence is then sent via the `BlockExecutor` to the application. + +#### Summary + +To summarize, we can see the lifecycle of evidence as such: + +![evidence_lifecycle](../imgs/evidence_lifecycle.png) + +Evidence is first detected and created in the light client and consensus reactor. It is verified and stored as `EvidenceInfo` and gossiped to the evidence pools in other nodes. The consensus reactor later communicates with the evidence pool to either retrieve evidence to be put into a block, or verify the evidence the consensus reactor has retrieved in a block. Lastly when a block is added to the chain, the block executor sends the committed evidence back to the evidence pool so a pointer to the evidence can be stored in the evidence pool and it can update it's height and time. Finally, it turns the committed evidence into ABCI evidence and through the block executor passes the evidence to the application so the application can handle it. + +## Status + +Implemented + +## Consequences + + + +### Positive + +- Evidence is better contained to the evidence pool / module +- LightClientAttack is kept together (easier for verification and bandwidth) +- Variations on commit sigs in LightClientAttack doesn't lead to multiple permutations and multiple evidence +- Address to evidence map prevents DOS attacks, where a single validator could DOS the network by flooding it with evidence submissions + +### Negative + +- Changes the `Evidence` interface and thus is a block breaking change +- Changes the ABCI `Evidence` and is thus a ABCI breaking change +- Unable to query evidence for address / time without evidence pool + +### Neutral + + +## References + + + +- [LightClientAttackEvidence](https://github.com/informalsystems/tendermint-rs/blob/31ca3e64ce90786c1734caf186e30595832297a4/docs/spec/lightclient/attacks/evidence-handling.md) diff --git a/sei-tendermint/docs/architecture/adr-060-go-api-stability.md b/sei-tendermint/docs/architecture/adr-060-go-api-stability.md new file mode 100644 index 0000000000..d900733b71 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-060-go-api-stability.md @@ -0,0 +1,193 @@ +# ADR 060: Go API Stability + +## Changelog + +- 2020-09-08: Initial version. (@erikgrinaker) + +- 2020-09-09: Tweak accepted changes, add initial public API packages, add consequences. (@erikgrinaker) + +- 2020-09-17: Clarify initial public API. (@erikgrinaker) + +## Context + +With the release of Tendermint 1.0 we will adopt [semantic versioning](https://semver.org). One major implication is a guarantee that we will not make backwards-incompatible changes until Tendermint 2.0 (except in pre-release versions). In order to provide this guarantee for our Go API, we must clearly define which of our APIs are public, and what changes are considered backwards-compatible. + +Currently, we list packages that we consider public in our [README](https://github.com/tendermint/tendermint#versioning), but since we are still at version 0.x we do not provide any backwards compatiblity guarantees at all. + +### Glossary + +* **External project:** a different Git/VCS repository or code base. + +* **External package:** a different Go package, can be a child or sibling package in the same project. + +* **Internal code:** code not intended for use in external projects. + +* **Internal directory:** code under `internal/` which cannot be imported in external projects. + +* **Exported:** a Go identifier starting with an uppercase letter, which can therefore be accessed by an external package. + +* **Private:** a Go identifier starting with a lowercase letter, which therefore cannot be accessed by an external package unless via an exported field, variable, or function/method return value. + +* **Public API:** any Go identifier that can be imported or accessed by an external project, except test code in `_test.go` files. + +* **Private API:** any Go identifier that is not accessible via a public API, including all code in the internal directory. + +## Alternative Approaches + +- Split all public APIs out to separate Go modules in separate Git repositories, and consider all Tendermint code internal and not subject to API backwards compatibility at all. This was rejected, since it has been attempted by the Tendermint project earlier, resulting in too much dependency management overhead. + +- Simply document which APIs are public and which are private. This is the current approach, but users should not be expected to self-enforce this, the documentation is not always up-to-date, and external projects will often end up depending on internal code anyway. + +## Decision + +From Tendermint 1.0, all internal code (except private APIs) will be placed in a root-level [`internal` directory](https://golang.org/cmd/go/#hdr-Internal_Directories), which the Go compiler will block for use by external projects. All exported items outside of the `internal` directory are considered a public API and subject to backwards compatibility guarantees, except files ending in `_test.go`. + +The `crypto` package may be split out to a separate module in a separate repo. This is the main general-purpose package used by external projects, and is the only Tendermint dependency in e.g. IAVL which can cause some problems for projects depending on both IAVL and Tendermint. This will be decided after further discussion. + +The `tm-db` package will remain a separate module in a separate repo. The `crypto` package may possibly be split out, pending further discussion, as this is the main general-purpose package used by other projects. + +## Detailed Design + +### Public API + +When preparing our public API for 1.0, we should keep these principles in mind: + +- Limit the number of public APIs that we start out with - we can always add new APIs later, but we can't change or remove APIs once they're made public. + +- Before an API is made public, do a thorough review of the API to make sure it covers any future needs, can accomodate expected changes, and follows good API design practices. + +The following is the minimum set of public APIs that will be included in 1.0, in some form: + +- `abci` +- packages used for constructing nodes `config`, `libs/log`, and `version` +- Client APIs, i.e. `rpc/client`, `light`, and `privval`. +- `crypto` (possibly as a separate repo) + +We may offer additional APIs as well, following further discussions internally and with other stakeholders. However, public APIs for providing custom components (e.g. reactors and mempools) are not planned for 1.0, but may be added in a later 1.x version if this is something we want to offer. + +For comparison, the following are the number of Tendermint imports in the Cosmos SDK (excluding tests), which should be mostly satisfied by the planned APIs. + +``` + 1 github.com/tendermint/tendermint/abci/server + 73 github.com/tendermint/tendermint/abci/types + 2 github.com/tendermint/tendermint/cmd/tendermint/commands + 7 github.com/tendermint/tendermint/config + 68 github.com/tendermint/tendermint/crypto + 1 github.com/tendermint/tendermint/crypto/armor + 10 github.com/tendermint/tendermint/crypto/ed25519 + 2 github.com/tendermint/tendermint/crypto/encoding + 3 github.com/tendermint/tendermint/crypto/merkle + 3 github.com/tendermint/tendermint/crypto/sr25519 + 8 github.com/tendermint/tendermint/crypto/tmhash + 1 github.com/tendermint/tendermint/crypto/xsalsa20symmetric + 11 github.com/tendermint/tendermint/libs/bytes + 2 github.com/tendermint/tendermint/libs/bytes.HexBytes + 15 github.com/tendermint/tendermint/libs/cli + 2 github.com/tendermint/tendermint/libs/cli/flags + 2 github.com/tendermint/tendermint/libs/json + 30 github.com/tendermint/tendermint/libs/log + 1 github.com/tendermint/tendermint/libs/math + 11 github.com/tendermint/tendermint/libs/os + 4 github.com/tendermint/tendermint/libs/rand + 1 github.com/tendermint/tendermint/libs/strings + 5 github.com/tendermint/tendermint/light + 1 github.com/tendermint/tendermint/internal/mempool + 3 github.com/tendermint/tendermint/node + 5 github.com/tendermint/tendermint/internal/p2p + 4 github.com/tendermint/tendermint/privval + 10 github.com/tendermint/tendermint/proto/tendermint/crypto + 1 github.com/tendermint/tendermint/proto/tendermint/libs/bits + 24 github.com/tendermint/tendermint/proto/tendermint/types + 3 github.com/tendermint/tendermint/proto/tendermint/version + 2 github.com/tendermint/tendermint/proxy + 3 github.com/tendermint/tendermint/rpc/client + 1 github.com/tendermint/tendermint/rpc/client/http + 2 github.com/tendermint/tendermint/rpc/client/local + 3 github.com/tendermint/tendermint/rpc/core/types + 1 github.com/tendermint/tendermint/rpc/jsonrpc/server + 33 github.com/tendermint/tendermint/types + 2 github.com/tendermint/tendermint/types/time + 1 github.com/tendermint/tendermint/version +``` + +### Backwards-Compatible Changes + +In Go, [almost all API changes are backwards-incompatible](https://blog.golang.org/module-compatibility) and thus exported items in public APIs generally cannot be changed until Tendermint 2.0. The only backwards-compatible changes we can make to public APIs are: + +- Adding a package. + +- Adding a new identifier to the package scope (e.g. const, var, func, struct, interface, etc.). + +- Adding a new method to a struct. + +- Adding a new field to a struct, if the zero-value preserves any old behavior. + +- Changing the order of fields in a struct. + +- Adding a variadic parameter to a named function or struct method, if the function type itself is not assignable in any public APIs (e.g. a callback). + +- Adding a new method to an interface, or a variadic parameter to an interface method, _if the interface already has a private method_ (which prevents external packages from implementing it). + +- Widening a numeric type as long as it is a named type (e.g. `type Number int32` can change to `int64`, but not `int8` or `uint32`). + +Note that public APIs can expose private types (e.g. via an exported variable, field, or function/method return value), in which case the exported fields and methods on these private types are also part of the public API and covered by its backwards compatiblity guarantees. In general, private types should never be accessible via public APIs unless wrapped in an exported interface. + +Also note that if we accept, return, export, or embed types from a dependency, we assume the backwards compatibility responsibility for that dependency, and must make sure any dependency upgrades comply with the above constraints. + +We should run CI linters for minor version branches to enforce this, e.g. [apidiff](https://go.googlesource.com/exp/+/refs/heads/master/apidiff/README.md), [breakcheck](https://github.com/gbbr/breakcheck), and [apicombat](https://github.com/bradleyfalzon/apicompat). + +#### Accepted Breakage + +The above changes can still break programs in a few ways - these are _not_ considered backwards-incompatible changes, and users are advised to avoid this usage: + +- If a program uses unkeyed struct literals (e.g. `Foo{"bar", "baz"}`) and we add fields or change the field order, the program will no longer compile or may have logic errors. + +- If a program embeds two structs in a struct, and we add a new field or method to an embedded Tendermint struct which also exists in the other embedded struct, the program will no longer compile. + +- If a program compares two structs (e.g. with `==`), and we add a new field of an incomparable type (slice, map, func, or struct that contains these) to a Tendermint struct which is compared, the program will no longer compile. + +- If a program assigns a Tendermint function to an identifier, and we add a variadic parameter to the function signature, the program will no longer compile. + +### Strategies for API Evolution + +The API guarantees above can be fairly constraining, but are unavoidable given the Go language design. The following tricks can be employed where appropriate to allow us to make changes to the API: + +- We can add a new function or method with a different name that takes additional parameters, and have the old function call the new one. + +- Functions and methods can take an options struct instead of separate parameters, to allow adding new options - this is particularly suitable for functions that take many parameters and are expected to be extended, and especially for interfaces where we cannot add new methods with different parameters at all. + +- Interfaces can include a private method, e.g. `interface { private() }`, to make them unimplementable by external packages and thus allow us to add new methods to the interface without breaking other programs. Of course, this can't be used for interfaces that should be implementable externally. + +- We can use [interface upgrades](https://avtok.com/2014/11/05/interface-upgrades.html) to allow implementers of an existing interface to also implement a new interface, as long as the old interface can still be used - e.g. the new interface `BetterReader` may have a method `ReadBetter()`, and a function that takes a `Reader` interface as an input can check if the implementer also implements `BetterReader` and in that case call `ReadBetter()` instead of `Read()`. + +## Status + +Accepted + +## Consequences + +### Positive + +- Users can safely upgrade with less fear of applications breaking, and know whether an upgrade only includes bug fixes or also functional enhancements + +- External developers have a predictable and well-defined API to build on that will be supported for some time + +- Less synchronization between teams, since there is a clearer contract and timeline for changes and they happen less frequently + +- More documentation will remain accurate, since it's not chasing a moving target + +- Less time will be spent on code churn and more time spent on functional improvements, both for the community and for our teams + +### Negative + +- Many improvements, changes, and bug fixes will have to be postponed until the next major version, possibly for a year or more + +- The pace of development will slow down, since we must work within the existing API constraints, and spend more time planning public APIs + +- External developers may lose access to some currently exported APIs and functionality + +## References + +- [#4451: Place internal APIs under internal package](https://github.com/tendermint/tendermint/issues/4451) + +- [On Pluggability](https://docs.google.com/document/d/1G08LnwSyb6BAuCVSMF3EKn47CGdhZ5wPZYJQr4-bw58/edit?ts=5f609f11) diff --git a/sei-tendermint/docs/architecture/adr-061-p2p-refactor-scope.md b/sei-tendermint/docs/architecture/adr-061-p2p-refactor-scope.md new file mode 100644 index 0000000000..7a9cb04bee --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-061-p2p-refactor-scope.md @@ -0,0 +1,109 @@ +# ADR 061: P2P Refactor Scope + +## Changelog + +- 2020-10-30: Initial version (@erikgrinaker) + +## Context + +The `p2p` package responsible for peer-to-peer networking is rather old and has a number of weaknesses, including tight coupling, leaky abstractions, lack of tests, DoS vulnerabilites, poor performance, custom protocols, and incorrect behavior. A refactor has been discussed for several years ([#2067](https://github.com/tendermint/tendermint/issues/2067)). + +Informal Systems are also building a Rust implementation of Tendermint, [Tendermint-rs](https://github.com/informalsystems/tendermint-rs), and plan to implement P2P networking support over the next year. As part of this work, they have requested adopting e.g. [QUIC](https://datatracker.ietf.org/doc/draft-ietf-quic-transport/) as a transport protocol instead of implementing the custom application-level `MConnection` stream multiplexing protocol that Tendermint currently uses. + +This ADR summarizes recent discussion with stakeholders on the scope of a P2P refactor. Specific designs and implementations will be submitted as separate ADRs. + +## Alternative Approaches + +There have been recurring proposals to adopt [LibP2P](https://libp2p.io) instead of maintaining our own P2P networking stack (see [#3696](https://github.com/tendermint/tendermint/issues/3696)). While this appears to be a good idea in principle, it would be a highly breaking protocol change, there are indications that we might have to fork and modify LibP2P, and there are concerns about the abstractions used. + +In discussions with Informal Systems we decided to begin with incremental improvements to the current P2P stack, add support for pluggable transports, and then gradually start experimenting with LibP2P as a transport layer. If this proves successful, we can consider adopting it for higher-level components at a later time. + +## Decision + +The P2P stack will be refactored and improved iteratively, in several phases: + +* **Phase 1:** code and API refactoring, maintaining protocol compatibility as far as possible. + +* **Phase 2:** additional transports and incremental protocol improvements. + +* **Phase 3:** disruptive protocol changes. + +The scope of phases 2 and 3 is still uncertain, and will be revisited once the preceding phases have been completed as we'll have a better sense of requirements and challenges. + +## Detailed Design + +Separate ADRs will be submitted for specific designs and changes in each phase, following research and prototyping. Below are objectives in order of priority. + +### Phase 1: Code and API Refactoring + +This phase will focus on improving the internal abstractions and implementations in the `p2p` package. As far as possible, it should not change the P2P protocol in a backwards-incompatible way. + +* Cleaner, decoupled abstractions for e.g. `Reactor`, `Switch`, and `Peer`. [#2067](https://github.com/tendermint/tendermint/issues/2067) [#5287](https://github.com/tendermint/tendermint/issues/5287) [#3833](https://github.com/tendermint/tendermint/issues/3833) + * Reactors should receive messages in separate goroutines or via buffered channels. [#2888](https://github.com/tendermint/tendermint/issues/2888) +* Improved peer lifecycle management. [#3679](https://github.com/tendermint/tendermint/issues/3679) [#3719](https://github.com/tendermint/tendermint/issues/3719) [#3653](https://github.com/tendermint/tendermint/issues/3653) [#3540](https://github.com/tendermint/tendermint/issues/3540) [#3183](https://github.com/tendermint/tendermint/issues/3183) [#3081](https://github.com/tendermint/tendermint/issues/3081) [#1356](https://github.com/tendermint/tendermint/issues/1356) + * Peer prioritization. [#2860](https://github.com/tendermint/tendermint/issues/2860) [#2041](https://github.com/tendermint/tendermint/issues/2041) +* Pluggable transports, with `MConnection` as one implementation. [#5587](https://github.com/tendermint/tendermint/issues/5587) [#2430](https://github.com/tendermint/tendermint/issues/2430) [#805](https://github.com/tendermint/tendermint/issues/805) +* Improved peer address handling. + * Address book refactor. [#4848](https://github.com/tendermint/tendermint/issues/4848) [#2661](https://github.com/tendermint/tendermint/issues/2661) + * Transport-agnostic peer addressing. [#5587](https://github.com/tendermint/tendermint/issues/5587) [#3782](https://github.com/tendermint/tendermint/issues/3782) [#3692](https://github.com/tendermint/tendermint/issues/3692) + * Improved detection and advertisement of own address. [#5588](https://github.com/tendermint/tendermint/issues/5588) [#4260](https://github.com/tendermint/tendermint/issues/4260) [#3716](https://github.com/tendermint/tendermint/issues/3716) [#1727](https://github.com/tendermint/tendermint/issues/1727) + * Support multiple IPs per peer. [#1521](https://github.com/tendermint/tendermint/issues/1521) [#2317](https://github.com/tendermint/tendermint/issues/2317) + +The refactor should attempt to address the following secondary objectives: testability, observability, performance, security, quality-of-service, backpressure, and DoS resilience. Much of this will be revisited as explicit objectives in phase 2. + +Ideally, the refactor should happen incrementally, with regular merges to `master` every few weeks. This will take more time overall, and cause frequent breaking changes to internal Go APIs, but it reduces the branch drift and gets the code tested sooner and more broadly. + +### Phase 2: Additional Transports and Protocol Improvements + +This phase will focus on protocol improvements and other breaking changes. The following are considered proposals that will need to be evaluated separately once the refactor is done. Additional proposals are likely to be added during phase 1. + +* QUIC transport. [#198](https://github.com/tendermint/spec/issues/198) +* Noise protocol for secret connection handshake. [#5589](https://github.com/tendermint/tendermint/issues/5589) [#3340](https://github.com/tendermint/tendermint/issues/3340) +* Peer ID in connection handshake. [#5590](https://github.com/tendermint/tendermint/issues/5590) +* Peer and service discovery (e.g. RPC nodes, state sync snapshots). [#5481](https://github.com/tendermint/tendermint/issues/5481) [#4583](https://github.com/tendermint/tendermint/issues/4583) +* Rate-limiting, backpressure, and QoS scheduling. [#4753](https://github.com/tendermint/tendermint/issues/4753) [#2338](https://github.com/tendermint/tendermint/issues/2338) +* Compression. [#2375](https://github.com/tendermint/tendermint/issues/2375) +* Improved metrics and tracing. [#3849](https://github.com/tendermint/tendermint/issues/3849) [#2600](https://github.com/tendermint/tendermint/issues/2600) +* Simplified P2P configuration options. + +### Phase 3: Disruptive Protocol Changes + +This phase covers speculative, wide-reaching proposals that are poorly defined and highly uncertain. They will be evaluated once the previous phases are done. + +* Adopt LibP2P. [#3696](https://github.com/tendermint/tendermint/issues/3696) +* Allow cross-reactor communication, possibly without channels. +* Dynamic channel advertisment, as reactors are enabled/disabled. [#4394](https://github.com/tendermint/tendermint/issues/4394) [#1148](https://github.com/tendermint/tendermint/issues/1148) +* Pubsub-style networking topology and pattern. +* Support multiple chain IDs in the same network. + +## Status + +Accepted + +## Consequences + +### Positive + +* Cleaner, simpler architecture that's easier to reason about and test, and thus hopefully less buggy. + +* Improved performance and robustness. + +* Reduced maintenance burden and increased interoperability by the possible adoption of standardized protocols such as QUIC and Noise. + +* Improved usability, with better observability, simpler configuration, and more automation (e.g. peer/service/address discovery, rate-limiting, and backpressure). + +### Negative + +* Maintaining our own P2P networking stack is resource-intensive. + +* Abstracting away the underlying transport may prevent usage of advanced transport features. + +* Breaking changes to APIs and protocols are disruptive to users. + +## References + +See issue links above. + +- [#2067: P2P Refactor](https://github.com/tendermint/tendermint/issues/2067) + +- [P2P refactor brainstorm document](https://docs.google.com/document/d/1FUTADZyLnwA9z7ndayuhAdAFRKujhh_y73D0ZFdKiOQ/edit?pli=1#) diff --git a/sei-tendermint/docs/architecture/adr-062-p2p-architecture.md b/sei-tendermint/docs/architecture/adr-062-p2p-architecture.md new file mode 100644 index 0000000000..bf8e0f01db --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-062-p2p-architecture.md @@ -0,0 +1,615 @@ +# ADR 062: P2P Architecture and Abstractions + +## Changelog + +- 2020-11-09: Initial version (@erikgrinaker) + +- 2020-11-13: Remove stream IDs, move peer errors onto channel, note on moving PEX into core (@erikgrinaker) + +- 2020-11-16: Notes on recommended reactor implementation patterns, approve ADR (@erikgrinaker) + +- 2021-02-04: Update with new P2P core and Transport API changes (@erikgrinaker). + +## Context + +In [ADR 061](adr-061-p2p-refactor-scope.md) we decided to refactor the peer-to-peer (P2P) networking stack. The first phase is to redesign and refactor the internal P2P architecture, while retaining protocol compatibility as far as possible. + +## Alternative Approaches + +Several variations of the proposed design were considered, including e.g. calling interface methods instead of passing messages (like the current architecture), merging channels with streams, exposing the internal peer data structure to reactors, being message format-agnostic via arbitrary codecs, and so on. This design was chosen because it has very loose coupling, is simpler to reason about and more convenient to use, avoids race conditions and lock contention for internal data structures, gives reactors better control of message ordering and processing semantics, and allows for QoS scheduling and backpressure in a very natural way. + +[multiaddr](https://github.com/multiformats/multiaddr) was considered as a transport-agnostic peer address format over regular URLs, but it does not appear to have very widespread adoption, and advanced features like protocol encapsulation and tunneling do not appear to be immediately useful to us. + +There were also proposals to use LibP2P instead of maintaining our own P2P stack, which were rejected (for now) in [ADR 061](adr-061-p2p-refactor-scope.md). + +The initial version of this ADR had a byte-oriented multi-stream transport API, but this had to be abandoned/postponed to maintain backwards-compatibility with the existing MConnection protocol which is message-oriented. See the rejected RFC in [tendermint/spec#227](https://github.com/tendermint/spec/pull/227) for details. + +## Decision + +The P2P stack will be redesigned as a message-oriented architecture, primarily relying on Go channels for communication and scheduling. It will use a message-oriented transport to binary messages with individual peers, bidirectional peer-addressable channels to send and receive Protobuf messages, a router to route messages between reactors and peers, and a peer manager to manage peer lifecycle information. Message passing is asynchronous with at-most-once delivery. + +## Detailed Design + +This ADR is primarily concerned with the architecture and interfaces of the P2P stack, not implementation details. The interfaces described here should therefore be considered a rough architecture outline, not a complete and final design. + +Primary design objectives have been: + +* Loose coupling between components, for a simpler, more robust, and test-friendly architecture. +* Pluggable transports (not necessarily networked). +* Better scheduling of messages, with improved prioritization, backpressure, and performance. +* Centralized peer lifecycle and connection management. +* Better peer address detection, advertisement, and exchange. +* Wire-level backwards compatibility with current P2P network protocols, except where it proves too obstructive. + +The main abstractions in the new stack are: + +* `Transport`: An arbitrary mechanism to exchange binary messages with a peer across a `Connection`. +* `Channel`: A bidirectional channel to asynchronously exchange Protobuf messages with peers using node ID addressing. +* `Router`: Maintains transport connections to relevant peers and routes channel messages. +* `PeerManager`: Manages peer lifecycle information, e.g. deciding which peers to dial and when, using a `peerStore` for storage. +* Reactor: A design pattern loosely defined as "something which listens on a channel and reacts to messages". + +These abstractions are illustrated in the following diagram (representing the internals of node A) and described in detail below. + +![P2P Architecture Diagram](img/adr-062-architecture.svg) + +### Transports + +Transports are arbitrary mechanisms for exchanging binary messages with a peer. For example, a gRPC transport would connect to a peer over TCP/IP and send data using the gRPC protocol, while an in-memory transport might communicate with a peer running in another goroutine using internal Go channels. Note that transports don't have a notion of a "peer" or "node" as such - instead, they establish connections between arbitrary endpoint addresses (e.g. IP address and port number), to decouple them from the rest of the P2P stack. + +Transports must satisfy the following requirements: + +* Be connection-oriented, and support both listening for inbound connections and making outbound connections using endpoint addresses. + +* Support sending binary messages with distinct channel IDs (although channels and channel IDs are a higher-level application protocol concept explained in the Router section, they are threaded through the transport layer as well for backwards compatibilty with the existing MConnection protocol). + +* Exchange the MConnection `NodeInfo` and public key via a node handshake, and possibly encrypt or sign the traffic as appropriate. + +The initial transport is a port of the current MConnection protocol currently used by Tendermint, and should be backwards-compatible at the wire level. An in-memory transport for testing has also been implemented. There are plans to explore a QUIC transport that may replace the MConnection protocol. + +The `Transport` interface is as follows: + +```go +// Transport is a connection-oriented mechanism for exchanging data with a peer. +type Transport interface { + // Protocols returns the protocols supported by the transport. The Router + // uses this to pick a transport for an Endpoint. + Protocols() []Protocol + + // Endpoints returns the local endpoints the transport is listening on, if any. + // How to listen is transport-dependent, e.g. MConnTransport uses Listen() while + // MemoryTransport starts listening via MemoryNetwork.CreateTransport(). + Endpoints() []Endpoint + + // Accept waits for the next inbound connection on a listening endpoint, blocking + // until either a connection is available or the transport is closed. On closure, + // io.EOF is returned and further Accept calls are futile. + Accept() (Connection, error) + + // Dial creates an outbound connection to an endpoint. + Dial(context.Context, Endpoint) (Connection, error) + + // Close stops accepting new connections, but does not close active connections. + Close() error +} +``` + +How the transport configures listening is transport-dependent, and not covered by the interface. This typically happens during transport construction, where a single instance of the transport is created and set to listen on an appropriate network interface before being passed to the router. + +#### Endpoints + +`Endpoint` represents a transport endpoint (e.g. an IP address and port). A connection always has two endpoints: one at the local node and one at the remote peer. Outbound connections to remote endpoints are made via `Dial()`, and inbound connections to listening endpoints are returned via `Accept()`. + +The `Endpoint` struct is: + +```go +// Endpoint represents a transport connection endpoint, either local or remote. +// +// Endpoints are not necessarily networked (see e.g. MemoryTransport) but all +// networked endpoints must use IP as the underlying transport protocol to allow +// e.g. IP address filtering. Either IP or Path (or both) must be set. +type Endpoint struct { + // Protocol specifies the transport protocol. + Protocol Protocol + + // IP is an IP address (v4 or v6) to connect to. If set, this defines the + // endpoint as a networked endpoint. + IP net.IP + + // Port is a network port (either TCP or UDP). If 0, a default port may be + // used depending on the protocol. + Port uint16 + + // Path is an optional transport-specific path or identifier. + Path string +} + +// Protocol identifies a transport protocol. +type Protocol string +``` + +Endpoints are arbitrary transport-specific addresses, but if they are networked they must use IP addresses and thus rely on IP as a fundamental packet routing protocol. This enables policies for address discovery, advertisement, and exchange - for example, a private `192.168.0.0/24` IP address should only be advertised to peers on that IP network, while the public address `8.8.8.8` may be advertised to all peers. Similarly, any port numbers if given must represent TCP and/or UDP port numbers, in order to use [UPnP](https://en.wikipedia.org/wiki/Universal_Plug_and_Play) to autoconfigure e.g. NAT gateways. + +Non-networked endpoints (without an IP address) are considered local, and will only be advertised to other peers connecting via the same protocol. For example, the in-memory transport used for testing uses `Endpoint{Protocol: "memory", Path: "foo"}` as an address for the node "foo", and this should only be advertised to other nodes using `Protocol: "memory"`. + +#### Connections + +A connection represents an established transport connection between two endpoints (i.e. two nodes), which can be used to exchange binary messages with logical channel IDs (corresponding to the higher-level channel IDs used in the router). Connections are set up either via `Transport.Dial()` (outbound) or `Transport.Accept()` (inbound). + +Once a connection is esablished, `Transport.Handshake()` must be called to perform a node handshake, exchanging node info and public keys to verify node identities. Node handshakes should not really be part of the transport layer (it's an application protocol concern), this exists for backwards-compatibility with the existing MConnection protocol which conflates the two. `NodeInfo` is part of the existing MConnection protocol, but does not appear to be documented in the specification -- refer to the Go codebase for details. + +The `Connection` interface is shown below. It omits certain additions that are currently implemented for backwards compatibility with the legacy P2P stack and are planned to be removed before the final release. + +```go +// Connection represents an established connection between two endpoints. +type Connection interface { + // Handshake executes a node handshake with the remote peer. It must be + // called once the connection is established, and returns the remote peer's + // node info and public key. The caller is responsible for validation. + Handshake(context.Context, NodeInfo, crypto.PrivKey) (NodeInfo, crypto.PubKey, error) + + // ReceiveMessage returns the next message received on the connection, + // blocking until one is available. Returns io.EOF if closed. + ReceiveMessage() (ChannelID, []byte, error) + + // SendMessage sends a message on the connection. Returns io.EOF if closed. + SendMessage(ChannelID, []byte) error + + // LocalEndpoint returns the local endpoint for the connection. + LocalEndpoint() Endpoint + + // RemoteEndpoint returns the remote endpoint for the connection. + RemoteEndpoint() Endpoint + + // Close closes the connection. + Close() error +} +``` + +This ADR initially proposed a byte-oriented multi-stream connection API that follows more typical networking API conventions (using e.g. `io.Reader` and `io.Writer` interfaces which easily compose with other libraries). This would also allow moving the responsibility for message framing, node handshakes, and traffic scheduling to the common router instead of reimplementing this across transports, and would allow making better use of multi-stream protocols such as QUIC. However, this would require minor breaking changes to the MConnection protocol which were rejected, see [tendermint/spec#227](https://github.com/tendermint/spec/pull/227) for details. This should be revisited when starting work on a QUIC transport. + +### Peer Management + +Peers are other Tendermint nodes. Each peer is identified by a unique `NodeID` (tied to the node's private key). + +#### Peer Addresses + +Nodes have one or more `NodeAddress` addresses expressed as URLs that they can be reached at. Examples of node addresses might be e.g.: + +* `mconn://nodeid@host.domain.com:25567/path` +* `memory:nodeid` + +Addresses are resolved into one or more transport endpoints, e.g. by resolving DNS hostnames into IP addresses. Peers should always be expressed as address URLs rather than endpoints (which are a lower-level transport construct). + +```go +// NodeID is a hex-encoded crypto.Address. It must be lowercased +// (for uniqueness) and of length 40. +type NodeID string + +// NodeAddress is a node address URL. It differs from a transport Endpoint in +// that it contains the node's ID, and that the address hostname may be resolved +// into multiple IP addresses (and thus multiple endpoints). +// +// If the URL is opaque, i.e. of the form "scheme:opaque", then the opaque part +// is expected to contain a node ID. +type NodeAddress struct { + NodeID NodeID + Protocol Protocol + Hostname string + Port uint16 + Path string +} + +// ParseNodeAddress parses a node address URL into a NodeAddress, normalizing +// and validating it. +func ParseNodeAddress(urlString string) (NodeAddress, error) + +// Resolve resolves a NodeAddress into a set of Endpoints, e.g. by expanding +// out a DNS hostname to IP addresses. +func (a NodeAddress) Resolve(ctx context.Context) ([]Endpoint, error) +``` + +#### Peer Manager + +The P2P stack needs to track a lot of internal state about peers, such as their addresses, connection state, priorities, availability, failures, retries, and so on. This responsibility has been separated out to a `PeerManager`, which track this state for the `Router` (but does not maintain the actual transport connections themselves, which is the router's responsibility). + +The `PeerManager` is a synchronous state machine, where all state transitions are serialized (implemented as synchronous method calls holding an exclusive mutex lock). Most peer state is intentionally kept internal, stored in a `peerStore` database that persists it as appropriate, and the external interfaces pass the minimum amount of information necessary in order to avoid shared state between router goroutines. This design significantly simplifies the model, making it much easier to reason about and test than if it was baked into the asynchronous ball of concurrency that the P2P networking core must necessarily be. As peer lifecycle events are expected to be relatively infrequent, this should not significantly impact performance either. + +The `Router` uses the `PeerManager` to request which peers to dial and evict, and reports in with peer lifecycle events such as connections, disconnections, and failures as they occur. The manager can reject these events (e.g. reject an inbound connection) by returning errors. This happens as follows: + +* Outbound connections, via `Transport.Dial`: + * `DialNext()`: returns a peer address to dial, or blocks until one is available. + * `DialFailed()`: reports a peer dial failure. + * `Dialed()`: reports a peer dial success. + * `Ready()`: reports the peer as routed and ready. + * `Disconnected()`: reports a peer disconnection. + +* Inbound connections, via `Transport.Accept`: + * `Accepted()`: reports an inbound peer connection. + * `Ready()`: reports the peer as routed and ready. + * `Disconnected()`: reports a peer disconnection. + +* Evictions, via `Connection.Close`: + * `EvictNext()`: returns a peer to disconnect, or blocks until one is available. + * `Disconnected()`: reports a peer disconnection. + +These calls have the following interface: + +```go +// DialNext returns a peer address to dial, blocking until one is available. +func (m *PeerManager) DialNext(ctx context.Context) (NodeAddress, error) + +// DialFailed reports a dial failure for the given address. +func (m *PeerManager) DialFailed(address NodeAddress) error + +// Dialed reports a successful outbound connection to the given address. +func (m *PeerManager) Dialed(address NodeAddress) error + +// Accepted reports a successful inbound connection from the given node. +func (m *PeerManager) Accepted(peerID NodeID) error + +// Ready reports the peer as fully routed and ready for use. +func (m *PeerManager) Ready(peerID NodeID) error + +// EvictNext returns a peer ID to disconnect, blocking until one is available. +func (m *PeerManager) EvictNext(ctx context.Context) (NodeID, error) + +// Disconnected reports a peer disconnection. +func (m *PeerManager) Disconnected(peerID NodeID) error +``` + +Internally, the `PeerManager` uses a numeric peer score to prioritize peers, e.g. when deciding which peers to dial next. The scoring policy has not yet been implemented, but should take into account e.g. node configuration such a `persistent_peers`, uptime and connection failures, performance, and so on. The manager will also attempt to automatically upgrade to better-scored peers by evicting lower-scored peers when a better one becomes available (e.g. when a persistent peer comes back online after an outage). + +The `PeerManager` should also have an API for reporting peer behavior from reactors that affects its score (e.g. signing a block increases the score, double-voting decreases it or even bans the peer), but this has not yet been designed and implemented. + +Additionally, the `PeerManager` provides `PeerUpdates` subscriptions that will receive `PeerUpdate` events whenever significant peer state changes happen. Reactors can use these e.g. to know when peers are connected or disconnected, and take appropriate action. This is currently fairly minimal: + +```go +// Subscribe subscribes to peer updates. The caller must consume the peer updates +// in a timely fashion and close the subscription when done, to avoid stalling the +// PeerManager as delivery is semi-synchronous, guaranteed, and ordered. +func (m *PeerManager) Subscribe() *PeerUpdates + +// PeerUpdate is a peer update event sent via PeerUpdates. +type PeerUpdate struct { + NodeID NodeID + Status PeerStatus +} + +// PeerStatus is a peer status. +type PeerStatus string + +const ( + PeerStatusUp PeerStatus = "up" // Connected and ready. + PeerStatusDown PeerStatus = "down" // Disconnected. +) + +// PeerUpdates is a real-time peer update subscription. +type PeerUpdates struct { ... } + +// Updates returns a channel for consuming peer updates. +func (pu *PeerUpdates) Updates() <-chan PeerUpdate + +// Close closes the peer updates subscription. +func (pu *PeerUpdates) Close() +``` + +The `PeerManager` will also be responsible for providing peer information to the PEX reactor that can be gossipped to other nodes. This requires an improved system for peer address detection and advertisement, that e.g. reliably detects peer and self addresses and only gossips private network addresses to other peers on the same network, but this system has not yet been fully designed and implemented. + +### Channels + +While low-level data exchange happens via the `Transport`, the high-level API is based on a bidirectional `Channel` that can send and receive Protobuf messages addressed by `NodeID`. A channel is identified by an arbitrary `ChannelID` identifier, and can exchange Protobuf messages of one specific type (since the type to unmarshal into must be predefined). Message delivery is asynchronous and at-most-once. + +The channel can also be used to report peer errors, e.g. when receiving an invalid or malignant message. This may cause the peer to be disconnected or banned depending on `PeerManager` policy, but should probably be replaced by a broader peer behavior API that can also report good behavior. + +A `Channel` has this interface: + +```go +// ChannelID is an arbitrary channel ID. +type ChannelID uint16 + +// Channel is a bidirectional channel to exchange Protobuf messages with peers. +type Channel struct { + ID ChannelID // Channel ID. + In <-chan Envelope // Inbound messages (peers to reactors). + Out chan<- Envelope // outbound messages (reactors to peers) + Error chan<- PeerError // Peer error reporting. + messageType proto.Message // Channel's message type, for e.g. unmarshaling. +} + +// Close closes the channel, also closing Out and Error. +func (c *Channel) Close() error + +// Envelope specifies the message receiver and sender. +type Envelope struct { + From NodeID // Sender (empty if outbound). + To NodeID // Receiver (empty if inbound). + Broadcast bool // Send to all connected peers, ignoring To. + Message proto.Message // Message payload. +} + +// PeerError is a peer error reported via the Error channel. +type PeerError struct { + NodeID NodeID + Err error +} +``` + +A channel can reach any connected peer, and will automatically (un)marshal the Protobuf messages. Message scheduling and queueing is a `Router` implementation concern, and can use any number of algorithms such as FIFO, round-robin, priority queues, etc. Since message delivery is not guaranteed, both inbound and outbound messages may be dropped, buffered, reordered, or blocked as appropriate. + +Since a channel can only exchange messages of a single type, it is often useful to use a wrapper message type with e.g. a Protobuf `oneof` field that specifies a set of inner message types that it can contain. The channel can automatically perform this (un)wrapping if the outer message type implements the `Wrapper` interface (see [Reactor Example](#reactor-example) for an example): + +```go +// Wrapper is a Protobuf message that can contain a variety of inner messages. +// If a Channel's message type implements Wrapper, the channel will +// automatically (un)wrap passed messages using the container type, such that +// the channel can transparently support multiple message types. +type Wrapper interface { + proto.Message + + // Wrap will take a message and wrap it in this one. + Wrap(proto.Message) error + + // Unwrap will unwrap the inner message contained in this message. + Unwrap() (proto.Message, error) +} +``` + +### Routers + +The router exeutes P2P networking for a node, taking instructions from and reporting events to the `PeerManager`, maintaining transport connections to peers, and routing messages between channels and peers. + +Practically all concurrency in the P2P stack has been moved into the router and reactors, while as many other responsibilities as possible have been moved into separate components such as the `Transport` and `PeerManager` that can remain largely synchronous. Limiting concurrency to a single core component makes it much easier to reason about since there is only a single concurrency structure, while the remaining components can be serial, simple, and easily testable. + +The `Router` has a very minimal API, since it is mostly driven by `PeerManager` and `Transport` events: + +```go +// Router maintains peer transport connections and routes messages between +// peers and channels. +type Router struct { + // Some details have been omitted below. + + logger log.Logger + options RouterOptions + nodeInfo NodeInfo + privKey crypto.PrivKey + peerManager *PeerManager + transports []Transport + + peerMtx sync.RWMutex + peerQueues map[NodeID]queue + + channelMtx sync.RWMutex + channelQueues map[ChannelID]queue +} + +// OpenChannel opens a new channel for the given message type. The caller must +// close the channel when done, before stopping the Router. messageType is the +// type of message passed through the channel. +func (r *Router) OpenChannel(id ChannelID, messageType proto.Message) (*Channel, error) + +// Start starts the router, connecting to peers and routing messages. +func (r *Router) Start() error + +// Stop stops the router, disconnecting from all peers and stopping message routing. +func (r *Router) Stop() error +``` + +All Go channel sends in the `Router` and reactors are blocking (the router also selects on signal channels for closure and shutdown). The responsibility for message scheduling, prioritization, backpressure, and load shedding is centralized in a core `queue` interface that is used at contention points (i.e. from all peers to a single channel, and from all channels to a single peer): + +```go +// queue does QoS scheduling for Envelopes, enqueueing and dequeueing according +// to some policy. Queues are used at contention points, i.e.: +// - Receiving inbound messages to a single channel from all peers. +// - Sending outbound messages to a single peer from all channels. +type queue interface { + // enqueue returns a channel for submitting envelopes. + enqueue() chan<- Envelope + + // dequeue returns a channel ordered according to some queueing policy. + dequeue() <-chan Envelope + + // close closes the queue. After this call enqueue() will block, so the + // caller must select on closed() as well to avoid blocking forever. The + // enqueue() and dequeue() channels will not be closed. + close() + + // closed returns a channel that's closed when the scheduler is closed. + closed() <-chan struct{} +} +``` + +The current implementation is `fifoQueue`, which is a simple unbuffered lossless queue that passes messages in the order they were received and blocks until the message is delivered (i.e. it is a Go channel). The router will need a more sophisticated queueing policy, but this has not yet been implemented. + +The internal `Router` goroutine structure and design is described in the `Router` GoDoc, which is included below for reference: + +```go +// On startup, three main goroutines are spawned to maintain peer connections: +// +// dialPeers(): in a loop, calls PeerManager.DialNext() to get the next peer +// address to dial and spawns a goroutine that dials the peer, handshakes +// with it, and begins to route messages if successful. +// +// acceptPeers(): in a loop, waits for an inbound connection via +// Transport.Accept() and spawns a goroutine that handshakes with it and +// begins to route messages if successful. +// +// evictPeers(): in a loop, calls PeerManager.EvictNext() to get the next +// peer to evict, and disconnects it by closing its message queue. +// +// When a peer is connected, an outbound peer message queue is registered in +// peerQueues, and routePeer() is called to spawn off two additional goroutines: +// +// sendPeer(): waits for an outbound message from the peerQueues queue, +// marshals it, and passes it to the peer transport which delivers it. +// +// receivePeer(): waits for an inbound message from the peer transport, +// unmarshals it, and passes it to the appropriate inbound channel queue +// in channelQueues. +// +// When a reactor opens a channel via OpenChannel, an inbound channel message +// queue is registered in channelQueues, and a channel goroutine is spawned: +// +// routeChannel(): waits for an outbound message from the channel, looks +// up the recipient peer's outbound message queue in peerQueues, and submits +// the message to it. +// +// All channel sends in the router are blocking. It is the responsibility of the +// queue interface in peerQueues and channelQueues to prioritize and drop +// messages as appropriate during contention to prevent stalls and ensure good +// quality of service. +``` + +### Reactor Example + +While reactors are a first-class concept in the current P2P stack (i.e. there is an explicit `p2p.Reactor` interface), they will simply be a design pattern in the new stack, loosely defined as "something which listens on a channel and reacts to messages". + +Since reactors have very few formal constraints, they can be implemented in a variety of ways. There is currently no recommended pattern for implementing reactors, to avoid overspecification and scope creep in this ADR. However, prototyping and developing a reactor pattern should be done early during implementation, to make sure reactors built using the `Channel` interface can satisfy the needs for convenience, deterministic tests, and reliability. + +Below is a trivial example of a simple echo reactor implemented as a function. The reactor will exchange the following Protobuf messages: + +```protobuf +message EchoMessage { + oneof inner { + PingMessage ping = 1; + PongMessage pong = 2; + } +} + +message PingMessage { + string content = 1; +} + +message PongMessage { + string content = 1; +} +``` + +Implementing the `Wrapper` interface for `EchoMessage` allows transparently passing `PingMessage` and `PongMessage` through the channel, where it will automatically be (un)wrapped in an `EchoMessage`: + +```go +func (m *EchoMessage) Wrap(inner proto.Message) error { + switch inner := inner.(type) { + case *PingMessage: + m.Inner = &EchoMessage_PingMessage{Ping: inner} + case *PongMessage: + m.Inner = &EchoMessage_PongMessage{Pong: inner} + default: + return fmt.Errorf("unknown message %T", inner) + } + return nil +} + +func (m *EchoMessage) Unwrap() (proto.Message, error) { + switch inner := m.Inner.(type) { + case *EchoMessage_PingMessage: + return inner.Ping, nil + case *EchoMessage_PongMessage: + return inner.Pong, nil + default: + return nil, fmt.Errorf("unknown message %T", inner) + } +} +``` + +The reactor itself would be implemented e.g. like this: + +```go +// RunEchoReactor wires up an echo reactor to a router and runs it. +func RunEchoReactor(router *p2p.Router, peerManager *p2p.PeerManager) error { + channel, err := router.OpenChannel(1, &EchoMessage{}) + if err != nil { + return err + } + defer channel.Close() + peerUpdates := peerManager.Subscribe() + defer peerUpdates.Close() + + return EchoReactor(context.Background(), channel, peerUpdates) +} + +// EchoReactor provides an echo service, pinging all known peers until the given +// context is canceled. +func EchoReactor(ctx context.Context, channel *p2p.Channel, peerUpdates *p2p.PeerUpdates) error { + ticker := time.NewTicker(5 * time.Second) + defer ticker.Stop() + + for { + select { + // Send ping message to all known peers every 5 seconds. + case <-ticker.C: + channel.Out <- Envelope{ + Broadcast: true, + Message: &PingMessage{Content: "👋"}, + } + + // When we receive a message from a peer, either respond to ping, output + // pong, or report peer error on unknown message type. + case envelope := <-channel.In: + switch msg := envelope.Message.(type) { + case *PingMessage: + channel.Out <- Envelope{ + To: envelope.From, + Message: &PongMessage{Content: msg.Content}, + } + + case *PongMessage: + fmt.Printf("%q replied with %q\n", envelope.From, msg.Content) + + default: + channel.Error <- PeerError{ + PeerID: envelope.From, + Err: fmt.Errorf("unexpected message %T", msg), + } + } + + // Output info about any peer status changes. + case peerUpdate := <-peerUpdates: + fmt.Printf("Peer %q changed status to %q", peerUpdate.PeerID, peerUpdate.Status) + + // Exit when context is canceled. + case <-ctx.Done(): + return nil + } + } +} +``` + +## Status + +Partially implemented ([#5670](https://github.com/tendermint/tendermint/issues/5670)) + +## Consequences + +### Positive + +* Reduced coupling and simplified interfaces should lead to better understandability, increased reliability, and more testing. + +* Using message passing via Go channels gives better control of backpressure and quality-of-service scheduling. + +* Peer lifecycle and connection management is centralized in a single entity, making it easier to reason about. + +* Detection, advertisement, and exchange of node addresses will be improved. + +* Additional transports (e.g. QUIC) can be implemented and used in parallel with the existing MConn protocol. + +* The P2P protocol will not be broken in the initial version, if possible. + +### Negative + +* Fully implementing the new design as indended is likely to require breaking changes to the P2P protocol at some point, although the initial implementation shouldn't. + +* Gradually migrating the existing stack and maintaining backwards-compatibility will be more labor-intensive than simply replacing the entire stack. + +* A complete overhaul of P2P internals is likely to cause temporary performance regressions and bugs as the implementation matures. + +* Hiding peer management information inside the `PeerManager` may prevent certain functionality or require additional deliberate interfaces for information exchange, as a tradeoff to simplify the design, reduce coupling, and avoid race conditions and lock contention. + +### Neutral + +* Implementation details around e.g. peer management, message scheduling, and peer and endpoint advertisement are not yet determined. + +## References + +* [ADR 061: P2P Refactor Scope](adr-061-p2p-refactor-scope.md) +* [#5670 p2p: internal refactor and architecture redesign](https://github.com/tendermint/tendermint/issues/5670) diff --git a/sei-tendermint/docs/architecture/adr-063-privval-grpc.md b/sei-tendermint/docs/architecture/adr-063-privval-grpc.md new file mode 100644 index 0000000000..53fdb129cd --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-063-privval-grpc.md @@ -0,0 +1,109 @@ +# ADR 063: Privval gRPC + +## Changelog + +- 23/11/2020: Initial Version (@marbar3778) + +## Context + +Validators use remote signers to help secure their keys. This system is Tendermint's recommended way to secure validators, but the path to integration with Tendermint's private validator client is plagued with custom protocols. + +Tendermint uses its own custom secure connection protocol (`SecretConnection`) and a raw tcp/unix socket connection protocol. The secure connection protocol until recently was exposed to man in the middle attacks and can take longer to integrate if not using Golang. The raw tcp connection protocol is less custom, but has been causing minute issues with users. + +Migrating Tendermint's private validator client to a widely adopted protocol, gRPC, will ease the current maintenance and integration burden experienced with the current protocol. + +## Decision + +After discussing with multiple stake holders, [gRPC](https://grpc.io/) was decided on to replace the current private validator protocol. gRPC is a widely adopted protocol in the micro-service and cloud infrastructure world. gRPC uses [protocol-buffers](https://developers.google.com/protocol-buffers) to describe its services, providing a language agnostic implementation. Tendermint uses protobuf for on disk and over the wire encoding already making the integration with gRPC simpler. + +## Alternative Approaches + +- JSON-RPC: We did not consider JSON-RPC because Tendermint uses protobuf extensively making gRPC a natural choice. + +## Detailed Design + +With the recent integration of [Protobuf](https://developers.google.com/protocol-buffers) into Tendermint the needed changes to migrate from the current private validator protocol to gRPC is not large. + +The [service definition](https://grpc.io/docs/what-is-grpc/core-concepts/#service-definition) for gRPC will be defined as: + +```proto + service PrivValidatorAPI { + rpc GetPubKey(tendermint.proto.privval.PubKeyRequest) returns (tendermint.proto.privval.PubKeyResponse); + rpc SignVote(tendermint.proto.privval.SignVoteRequest) returns (tendermint.proto.privval.SignedVoteResponse); + rpc SignProposal(tendermint.proto.privval.SignProposalRequest) returns (tendermint.proto.privval.SignedProposalResponse); + + message PubKeyRequest { + string chain_id = 1; + } + + // PubKeyResponse is a response message containing the public key. + message PubKeyResponse { + tendermint.crypto.PublicKey pub_key = 1 [(gogoproto.nullable) = false]; + } + + // SignVoteRequest is a request to sign a vote + message SignVoteRequest { + tendermint.types.Vote vote = 1; + string chain_id = 2; + } + + // SignedVoteResponse is a response containing a signed vote or an error + message SignedVoteResponse { + tendermint.types.Vote vote = 1 [(gogoproto.nullable) = false]; + } + + // SignProposalRequest is a request to sign a proposal + message SignProposalRequest { + tendermint.types.Proposal proposal = 1; + string chain_id = 2; + } + + // SignedProposalResponse is response containing a signed proposal or an error + message SignedProposalResponse { + tendermint.types.Proposal proposal = 1 [(gogoproto.nullable) = false]; + } +} +``` + +> Note: Remote Singer errors are removed in favor of [grpc status error codes](https://grpc.io/docs/guides/error/). + +In previous versions of the remote signer, Tendermint acted as the server and the remote signer as the client. In this process the client established a long lived connection providing a way for the server to make requests to the client. In the new version it has been simplified. Tendermint is the client and the remote signer is the server. This follows client and server architecture and simplifies the previous protocol. + +#### Keep Alive + +If you have worked on the private validator system you will see that we are removing the `PingRequest` and `PingResponse` messages. These messages were used to create functionality which kept the connection alive. With gRPC there is a [keep alive feature](https://github.com/grpc/grpc/blob/master/doc/keepalive.md) that will be added along side the integration to provide the same functionality. + +#### Metrics + +Remote signers are crucial to operating secure and consistently up Validators. In the past there were no metrics to tell the operator if something is wrong other than the node not signing. Integrating metrics into the client and provided server will be done with [prometheus](https://github.com/grpc-ecosystem/go-grpc-prometheus). This will be integrated into node's prometheus export for node operators. + +#### Security + +[TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security) is widely adopted with the use of gRPC. There are various forms of TLS (one-way & two-way). One way is the client identifying who the server is, while two way is both parties identifying the other. For Tendermint's use case having both parties identifying each other provides adds an extra layer of security. This requires users to generate both client and server certificates for a TLS connection. + +An insecure option will be provided for users who do not wish to secure the connection. + +#### Upgrade Path + +This is a largely breaking change for validator operators. The optimal upgrade path would be to release gRPC in a minor release, allow key management systems to migrate to the new protocol. In the next major release the current system (raw tcp/unix) is removed. This allows users to migrate to the new system and not have to coordinate upgrading the key management system alongside a network upgrade. + +The upgrade of [tmkms](https://github.com/iqlusioninc/tmkms) will be coordinated with Iqlusion. They will be able to make the necessary upgrades to allow users to migrate to gRPC from the current protocol. + +## Status + + +Implemented + +### Positive + +- Use an adopted standard for secure communication. (TLS) +- Use an adopted communication protocol. (gRPC) +- Requests are multiplexed onto the tcp connection. (http/2) +- Language agnostic service definition. + +### Negative + +- Users will need to generate certificates to use TLS. (Added step) +- Users will need to find a supported gRPC supported key management system + +### Neutral diff --git a/sei-tendermint/docs/architecture/adr-064-batch-verification.md b/sei-tendermint/docs/architecture/adr-064-batch-verification.md new file mode 100644 index 0000000000..13bba25e4f --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-064-batch-verification.md @@ -0,0 +1,90 @@ +# ADR 064: Batch Verification + +## Changelog + +- January 28, 2021: Created (@marbar3778) + +## Context + +Tendermint uses public private key cryptography for validator signing. When a block is proposed and voted on validators sign a message representing acceptance of a block, rejection is signaled via a nil vote. These signatures are also used to verify previous blocks are correct if a node is syncing. Currently, Tendermint requires each signature to be verified individually, this leads to a slow down of block times. + +Batch Verification is the process of taking many messages, keys, and signatures adding them together and verifying them all at once. The public key can be the same in which case it would mean a single user is signing many messages. In our case each public key is unique, each validator has their own and contribute a unique message. The algorithm can vary from curve to curve but the performance benefit, over single verifying messages, public keys and signatures is shared. + +## Alternative Approaches + +- Signature aggregation + - Signature aggregation is an alternative to batch verification. Signature aggregation leads to fast verification and smaller block sizes. At the time of writing this ADR there is on going work to enable signature aggregation in Tendermint. The reason why we have opted to not introduce it at this time is because every validator signs a unique message. + Signing a unique message prevents aggregation before verification. For example if we were to implement signature aggregation with BLS, there could be a potential slow down of 10x-100x in verification speeds. + +## Decision + +Adopt Batch Verification. + +## Detailed Design + +A new interface will be introduced. This interface will have three methods `NewBatchVerifier`, `Add` and `VerifyBatch`. + +```go +type BatchVerifier interface { + Add(key crypto.Pubkey, signature, message []byte) error // Add appends an entry into the BatchVerifier. + Verify() bool // Verify verifies all the entries in the BatchVerifier. If the verification fails it is unknown which entry failed and each entry will need to be verified individually. +} +``` + +- `NewBatchVerifier` creates a new verifier. This verifier will be populated with entries to be verified. +- `Add` adds an entry to the Verifier. Add accepts a public key and two slice of bytes (signature and message). +- `Verify` verifies all the entires. At the end of Verify if the underlying API does not reset the Verifier to its initial state (empty), it should be done here. This prevents accidentally reusing the verifier with entries from a previous verification. + +Above there is mention of an entry. An entry can be constructed in many ways depending on the needs of the underlying curve. A simple approach would be: + +```go +type entry struct { + pubKey crypto.Pubkey + signature []byte + message []byte +} +``` + +The main reason this approach is being taken is to prevent simple mistakes. Some APIs allow the user to create three slices and pass them to the `VerifyBatch` function but this relies on the user to safely generate all the slices (see example below). We would like to minimize the possibility of making a mistake. + +```go +func Verify(keys []crypto.Pubkey, signatures, messages[][]byte) bool +``` + +This change will not affect any users in anyway other than faster verification times. + +This new api will be used for verification in both consensus and block syncing. Within the current Verify functions there will be a check to see if the key types supports the BatchVerification API. If it does it will execute batch verification, if not single signature verification will be used. + +#### Consensus + + The process within consensus will be to wait for 2/3+ of the votes to be received, once they are received `Verify()` will be called to batch verify all the messages. The messages that come in after 2/3+ has been verified will be individually verified. + +#### Block Sync & Light Client + + The process for block sync & light client verification will be to verify only 2/3+ in a batch style. Since these processes are not participating in consensus there is no need to wait for more messages. + +If batch verifications fails for any reason, it will not be known which entry caused the failure. Verification will need to revert to single signature verification. + +Starting out, only ed25519 will support batch verification. + +## Status + +Implemented + +### Positive + +- Faster verification times, if the curve supports it + +### Negative + +- No way to see which key failed verification + - A failure means reverting back to single signature verification. + +### Neutral + +## References + +[Ed25519 Library](https://github.com/hdevalence/ed25519consensus) +[Ed25519 spec](https://ed25519.cr.yp.to/) +[Signature Aggregation for votes](https://github.com/tendermint/tendermint/issues/1319) +[Proposer-based timestamps](https://github.com/tendermint/tendermint/issues/2840) diff --git a/sei-tendermint/docs/architecture/adr-065-custom-event-indexing.md b/sei-tendermint/docs/architecture/adr-065-custom-event-indexing.md new file mode 100644 index 0000000000..83a96de48d --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-065-custom-event-indexing.md @@ -0,0 +1,425 @@ +# ADR 065: Custom Event Indexing + +- [ADR 065: Custom Event Indexing](#adr-065-custom-event-indexing) + - [Changelog](#changelog) + - [Status](#status) + - [Context](#context) + - [Alternative Approaches](#alternative-approaches) + - [Decision](#decision) + - [Detailed Design](#detailed-design) + - [EventSink](#eventsink) + - [Supported Sinks](#supported-sinks) + - [`KVEventSink`](#kveventsink) + - [`PSQLEventSink`](#psqleventsink) + - [Configuration](#configuration) + - [Future Improvements](#future-improvements) + - [Consequences](#consequences) + - [Positive](#positive) + - [Negative](#negative) + - [Neutral](#neutral) + - [References](#references) + +## Changelog + +- April 1, 2021: Initial Draft (@alexanderbez) +- April 28, 2021: Specify search capabilities are only supported through the KV indexer (@marbar3778) +- May 19, 2021: Update the SQL schema and the eventsink interface (@jayt106) +- Aug 30, 2021: Update the SQL schema and the psql implementation (@creachadair) +- Oct 5, 2021: Clarify goals and implementation changes (@creachadair) + +## Status + +Accepted + +## Context + +Currently, Tendermint Core supports block and transaction event indexing through +the `tx_index.indexer` configuration. Events are captured in transactions and +are indexed via a `TxIndexer` type. Events are captured in blocks, specifically +from `BeginBlock` and `EndBlock` application responses, and are indexed via a +`BlockIndexer` type. Both of these types are managed by a single `IndexerService` +which is responsible for consuming events and sending those events off to be +indexed by the respective type. + +In addition to indexing, Tendermint Core also supports the ability to query for +both indexed transaction and block events via Tendermint's RPC layer. The ability +to query for these indexed events facilitates a great multitude of upstream client +and application capabilities, e.g. block explorers, IBC relayers, and auxiliary +data availability and indexing services. + +Currently, Tendermint only supports indexing via a `kv` indexer, which is supported +by an underlying embedded key/value store database. The `kv` indexer implements +its own indexing and query mechanisms. While the former is somewhat trivial, +providing a rich and flexible query layer is not as trivial and has caused many +issues and UX concerns for upstream clients and applications. + +The fragile nature of the proprietary `kv` query engine and the potential +performance and scaling issues that arise when a large number of consumers are +introduced, motivate the need for a more robust and flexible indexing and query +solution. + +## Alternative Approaches + +With regards to alternative approaches to a more robust solution, the only serious +contender that was considered was to transition to using [SQLite](https://www.sqlite.org/index.html). + +While the approach would work, it locks us into a specific query language and +storage layer, so in some ways it's only a bit better than our current approach. +In addition, the implementation would require the introduction of CGO into the +Tendermint Core stack, whereas right now CGO is only introduced depending on +the database used. + +## Decision + +We will adopt a similar approach to that of the Cosmos SDK's `KVStore` state +listening described in [ADR-038](https://github.com/cosmos/cosmos-sdk/blob/master/docs/architecture/adr-038-state-listening.md). + +We will implement the following changes: + +- Introduce a new interface, `EventSink`, that all data sinks must implement. +- Augment the existing `tx_index.indexer` configuration to now accept a series + of one or more indexer types, i.e., sinks. +- Combine the current `TxIndexer` and `BlockIndexer` into a single `KVEventSink` + that implements the `EventSink` interface. +- Introduce an additional `EventSink` implementation that is backed by + [PostgreSQL](https://www.postgresql.org/). + - Implement the necessary schemas to support both block and transaction event indexing. +- Update `IndexerService` to use a series of `EventSinks`. + +In addition: + +- The Postgres indexer implementation will _not_ implement the proprietary `kv` + query language. Users wishing to write queries against the Postgres indexer + will connect to the underlying DBMS directly and use SQL queries based on the + indexing schema. + + Future custom indexer implementations will not be required to support the + proprietary query language either. + +- For now, the existing `kv` indexer will be left in place with its current + query support, but will be marked as deprecated in a subsequent release, and + the documentation will be updated to encourage users who need to query the + event index to migrate to the Postgres indexer. + +- In the future we may remove the `kv` indexer entirely, or replace it with a + different implementation; that decision is deferred as future work. + +- In the future, we may remove the index query endpoints from the RPC service + entirely; that decision is deferred as future work, but recommended. + + +## Detailed Design + +### EventSink + +We introduce the `EventSink` interface type that all supported sinks must implement. +The interface is defined as follows: + +```go +type EventSink interface { + IndexBlockEvents(types.EventDataNewBlockHeader) error + IndexTxEvents([]*abci.TxResult) error + + SearchBlockEvents(context.Context, *query.Query) ([]int64, error) + SearchTxEvents(context.Context, *query.Query) ([]*abci.TxResult, error) + + GetTxByHash([]byte) (*abci.TxResult, error) + HasBlock(int64) (bool, error) + + Type() EventSinkType + Stop() error +} +``` + +The `IndexerService` will accept a list of one or more `EventSink` types. During +the `OnStart` method it will call the appropriate APIs on each `EventSink` to +index both block and transaction events. + +### Supported Sinks + +We will initially support two `EventSink` types out of the box. + +#### `KVEventSink` + +This type of `EventSink` is a combination of the `TxIndexer` and `BlockIndexer` +indexers, both of which are backed by a single embedded key/value database. + +A bulk of the existing business logic will remain the same, but the existing APIs +mapped to the new `EventSink` API. Both types will be removed in favor of a single +`KVEventSink` type. + +The `KVEventSink` will be the only `EventSink` enabled by default, so from a UX +perspective, operators should not notice a difference apart from a configuration +change. + +We omit `EventSink` implementation details as it should be fairly straightforward +to map the existing business logic to the new APIs. + +#### `PSQLEventSink` + +This type of `EventSink` indexes block and transaction events into a [PostgreSQL](https://www.postgresql.org/). +database. We define and automatically migrate the following schema when the +`IndexerService` starts. + +The postgres eventsink will not support `tx_search`, `block_search`, `GetTxByHash` and `HasBlock`. + +```sql +-- Table Definition ---------------------------------------------- + +-- The blocks table records metadata about each block. +-- The block record does not include its events or transactions (see tx_results). +CREATE TABLE blocks ( + rowid BIGSERIAL PRIMARY KEY, + + height BIGINT NOT NULL, + chain_id VARCHAR NOT NULL, + + -- When this block header was logged into the sink, in UTC. + created_at TIMESTAMPTZ NOT NULL, + + UNIQUE (height, chain_id) +); + +-- Index blocks by height and chain, since we need to resolve block IDs when +-- indexing transaction records and transaction events. +CREATE INDEX idx_blocks_height_chain ON blocks(height, chain_id); + +-- The tx_results table records metadata about transaction results. Note that +-- the events from a transaction are stored separately. +CREATE TABLE tx_results ( + rowid BIGSERIAL PRIMARY KEY, + + -- The block to which this transaction belongs. + block_id BIGINT NOT NULL REFERENCES blocks(rowid), + -- The sequential index of the transaction within the block. + index INTEGER NOT NULL, + -- When this result record was logged into the sink, in UTC. + created_at TIMESTAMPTZ NOT NULL, + -- The hex-encoded hash of the transaction. + tx_hash VARCHAR NOT NULL, + -- The protobuf wire encoding of the TxResult message. + tx_result BYTEA NOT NULL, + + UNIQUE (block_id, index) +); + +-- The events table records events. All events (both block and transaction) are +-- associated with a block ID; transaction events also have a transaction ID. +CREATE TABLE events ( + rowid BIGSERIAL PRIMARY KEY, + + -- The block and transaction this event belongs to. + -- If tx_id is NULL, this is a block event. + block_id BIGINT NOT NULL REFERENCES blocks(rowid), + tx_id BIGINT NULL REFERENCES tx_results(rowid), + + -- The application-defined type label for the event. + type VARCHAR NOT NULL +); + +-- The attributes table records event attributes. +CREATE TABLE attributes ( + event_id BIGINT NOT NULL REFERENCES events(rowid), + key VARCHAR NOT NULL, -- bare key + composite_key VARCHAR NOT NULL, -- composed type.key + value VARCHAR NULL, + + UNIQUE (event_id, key) +); + +-- A joined view of events and their attributes. Events that do not have any +-- attributes are represented as a single row with empty key and value fields. +CREATE VIEW event_attributes AS + SELECT block_id, tx_id, type, key, composite_key, value + FROM events LEFT JOIN attributes ON (events.rowid = attributes.event_id); + +-- A joined view of all block events (those having tx_id NULL). +CREATE VIEW block_events AS + SELECT blocks.rowid as block_id, height, chain_id, type, key, composite_key, value + FROM blocks JOIN event_attributes ON (blocks.rowid = event_attributes.block_id) + WHERE event_attributes.tx_id IS NULL; + +-- A joined view of all transaction events. +CREATE VIEW tx_events AS + SELECT height, index, chain_id, type, key, composite_key, value, tx_results.created_at + FROM blocks JOIN tx_results ON (blocks.rowid = tx_results.block_id) + JOIN event_attributes ON (tx_results.rowid = event_attributes.tx_id) + WHERE event_attributes.tx_id IS NOT NULL; +``` + +The `PSQLEventSink` will implement the `EventSink` interface as follows +(some details omitted for brevity): + +```go +func NewEventSink(connStr, chainID string) (*EventSink, error) { + db, err := sql.Open(driverName, connStr) + // ... + + return &EventSink{ + store: db, + chainID: chainID, + }, nil +} + +func (es *EventSink) IndexBlockEvents(h types.EventDataNewBlockHeader) error { + ts := time.Now().UTC() + + return runInTransaction(es.store, func(tx *sql.Tx) error { + // Add the block to the blocks table and report back its row ID for use + // in indexing the events for the block. + blockID, err := queryWithID(tx, ` +INSERT INTO blocks (height, chain_id, created_at) + VALUES ($1, $2, $3) + ON CONFLICT DO NOTHING + RETURNING rowid; +`, h.Header.Height, es.chainID, ts) + // ... + + // Insert the special block meta-event for height. + if err := insertEvents(tx, blockID, 0, []abci.Event{ + makeIndexedEvent(types.BlockHeightKey, fmt.Sprint(h.Header.Height)), + }); err != nil { + return fmt.Errorf("block meta-events: %w", err) + } + // Insert all the block events. Order is important here, + if err := insertEvents(tx, blockID, 0, h.ResultBeginBlock.Events); err != nil { + return fmt.Errorf("begin-block events: %w", err) + } + if err := insertEvents(tx, blockID, 0, h.ResultEndBlock.Events); err != nil { + return fmt.Errorf("end-block events: %w", err) + } + return nil + }) +} + +func (es *EventSink) IndexTxEvents(txrs []*abci.TxResult) error { + ts := time.Now().UTC() + + for _, txr := range txrs { + // Encode the result message in protobuf wire format for indexing. + resultData, err := proto.Marshal(txr) + // ... + + // Index the hash of the underlying transaction as a hex string. + txHash := fmt.Sprintf("%X", types.Tx(txr.Tx).Hash()) + + if err := runInTransaction(es.store, func(tx *sql.Tx) error { + // Find the block associated with this transaction. + blockID, err := queryWithID(tx, ` +SELECT rowid FROM blocks WHERE height = $1 AND chain_id = $2; +`, txr.Height, es.chainID) + // ... + + // Insert a record for this tx_result and capture its ID for indexing events. + txID, err := queryWithID(tx, ` +INSERT INTO tx_results (block_id, index, created_at, tx_hash, tx_result) + VALUES ($1, $2, $3, $4, $5) + ON CONFLICT DO NOTHING + RETURNING rowid; +`, blockID, txr.Index, ts, txHash, resultData) + // ... + + // Insert the special transaction meta-events for hash and height. + if err := insertEvents(tx, blockID, txID, []abci.Event{ + makeIndexedEvent(types.TxHashKey, txHash), + makeIndexedEvent(types.TxHeightKey, fmt.Sprint(txr.Height)), + }); err != nil { + return fmt.Errorf("indexing transaction meta-events: %w", err) + } + // Index any events packaged with the transaction. + if err := insertEvents(tx, blockID, txID, txr.Result.Events); err != nil { + return fmt.Errorf("indexing transaction events: %w", err) + } + return nil + + }); err != nil { + return err + } + } + return nil +} + +// SearchBlockEvents is not implemented by this sink, and reports an error for all queries. +func (es *EventSink) SearchBlockEvents(ctx context.Context, q *query.Query) ([]int64, error) + +// SearchTxEvents is not implemented by this sink, and reports an error for all queries. +func (es *EventSink) SearchTxEvents(ctx context.Context, q *query.Query) ([]*abci.TxResult, error) + +// GetTxByHash is not implemented by this sink, and reports an error for all queries. +func (es *EventSink) GetTxByHash(hash []byte) (*abci.TxResult, error) + +// HasBlock is not implemented by this sink, and reports an error for all queries. +func (es *EventSink) HasBlock(h int64) (bool, error) +``` + +### Configuration + +The current `tx_index.indexer` configuration would be changed to accept a list +of supported `EventSink` types instead of a single value. + +Example: + +```toml +[tx_index] + +indexer = [ + "kv", + "psql" +] +``` + +If the `indexer` list contains the `null` indexer, then no indexers will be used +regardless of what other values may exist. + +Additional configuration parameters might be required depending on what event +sinks are supplied to `tx_index.indexer`. The `psql` will require an additional +connection configuration. + +```toml +[tx_index] + +indexer = [ + "kv", + "psql" +] + +pqsql_conn = "postgresql://:@:/?" +``` + +Any invalid or misconfigured `tx_index` configuration should yield an error as +early as possible. + +## Future Improvements + +Although not technically required to maintain feature parity with the current +existing Tendermint indexer, it would be beneficial for operators to have a method +of performing a "re-index". Specifically, Tendermint operators could invoke an +RPC method that allows the Tendermint node to perform a re-indexing of all block +and transaction events between two given heights, H1 and H2, +so long as the block store contains the blocks and transaction results for all +the heights specified in a given range. + +## Consequences + +### Positive + +- A more robust and flexible indexing and query engine for indexing and search + block and transaction events. +- The ability to not have to support a custom indexing and query engine beyond + the legacy `kv` type. +- The ability to offload/proxy indexing and querying to the underling sink. +- Scalability and reliability that essentially comes "for free" from the underlying + sink, if it supports it. + +### Negative + +- The need to support multiple and potentially a growing set of custom `EventSink` + types. + +### Neutral + +## References + +- [Cosmos SDK ADR-038](https://github.com/cosmos/cosmos-sdk/blob/master/docs/architecture/adr-038-state-listening.md) +- [PostgreSQL](https://www.postgresql.org/) +- [SQLite](https://www.sqlite.org/index.html) diff --git a/sei-tendermint/docs/architecture/adr-066-e2e-testing.md b/sei-tendermint/docs/architecture/adr-066-e2e-testing.md new file mode 100644 index 0000000000..528e25238e --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-066-e2e-testing.md @@ -0,0 +1,140 @@ +# ADR 66: End-to-End Testing + +## Changelog + +- 2020-09-07: Initial draft (@erikgrinaker) +- 2020-09-08: Minor improvements (@erikgrinaker) +- 2021-04-12: Renamed from RFC 001 (@tessr) + +## Authors + +- Erik Grinaker (@erikgrinaker) + +## Context + +The current set of end-to-end tests under `test/` are very limited, mostly focusing on P2P testing in a standard configuration. They do not test various configurations (e.g. fast sync reactor versions, state sync, block pruning, genesis vs InitChain setup), nor do they test various network topologies (e.g. sentry node architecture). This leads to poor test coverage, which has caused several serious bugs to go unnoticed. + +We need an end-to-end test suite that can run a large number of combinations of configuration options, genesis settings, network topologies, ABCI interactions, and failure scenarios and check that the network is still functional. This ADR outlines the basic requirements and design for such a system. + +This ADR will not cover comprehensive chaos testing, only a few simple scenarios (e.g. abrupt process termination and network partitioning). Chaos testing of the core consensus algorithm should be implemented e.g. via Jepsen tests or a similar framework, or alternatively be added to these end-to-end tests at a later time. Similarly, malicious or adversarial behavior is out of scope for the first implementation, but may be added later. + +## Proposal + +### Functional Coverage + +The following lists the functionality we would like to test: + +#### Environments + +- **Topology:** single node, 4 nodes (seeds and persistent), sentry architecture, NAT (UPnP) +- **Networking:** IPv4, IPv6 +- **ABCI connection:** UNIX socket, TCP, gRPC +- **PrivVal:** file, UNIX socket, TCP + +#### Node/App Configurations + +- **Database:** goleveldb, cleveldb, boltdb, rocksdb, badgerdb +- **Fast sync:** disabled, v0, v2 +- **State sync:** disabled, enabled +- **Block pruning:** none, keep 20, keep 1, keep random +- **Role:** validator, full node +- **App persistence:** enabled, disabled +- **Node modes:** validator, full, light, seed + +#### Geneses + +- **Validators:** none (InitChain), given +- **Initial height:** 1, 1000 +- **App state:** none, given + +#### Behaviors + +- **Recovery:** stop/start, power cycling, validator outage, network partition, total network loss +- **Validators:** add, remove, change power +- **Evidence:** injection of DuplicateVoteEvidence and LightClientAttackEvidence + +### Functional Combinations + +Running separate tests for all combinations of the above functionality is not feasible, as there are millions of them. However, the functionality can be grouped into three broad classes: + +- **Global:** affects the entire network, needing a separate testnet for each combination (e.g. topology, network protocol, genesis settings) + +- **Local:** affects a single node, and can be varied per node in a testnet (e.g. ABCI/privval connections, database backend, block pruning) + +- **Temporal:** can be run after each other in the same testnet (e.g. recovery and validator changes) + +Thus, we can run separate testnets for all combinations of global options (on the order of 100). In each testnet, we run nodes with randomly generated node configurations optimized for broad coverage (i.e. if one node is using GoLevelDB, then no other node should use it if possible). And in each testnet, we sequentially and randomly pick nodes to stop/start, power cycle, add/remove, disconnect, and so on. + +All of the settings should be specified in a testnet configuration (or alternatively the seed that generated it) such that it can be retrieved from CI and debugged locally. + +A custom ABCI application will have to be built that can exhibit the necessary behavior (e.g. make validator changes, prune blocks, enable/disable persistence, and so on). + +### Test Stages + +Given a test configuration, the test runner has the following stages: + +- **Setup:** configures the Docker containers and networks, but does not start them. + +- **Initialization:** starts the Docker containers, performs fast sync/state sync. Accomodates for different start heights. + +- **Perturbation:** adds/removes validators, restarts nodes, perturbs networking, etc - liveness and readiness checked between each operation. + +- **Testing:** runs RPC tests independently against all network nodes, making sure data matches expectations and invariants hold. + +### Tests + +The general approach will be to put the network through a sequence of operations (see stages above), check basic liveness and readiness after each operation, and then once the network stabilizes run an RPC test suite against each node in the network. + +The test suite will do black-box testing against a single node's RPC service. We will be testing the behavior of the network as a whole, e.g. that a fast synced node correctly catches up to the chain head and serves basic block data via RPC. Thus the tests will not send e.g. P2P messages or examine the node database, as these are considered internal implementation details - if the network behaves correctly, presumably the internal components function correctly. Comprehensive component testing (e.g. each and every RPC method parameter) should be done via unit/integration tests. + +The tests must take into account the node configuration (e.g. some nodes may be pruned, others may not be validators), and should somehow be provided access to expected data (i.e. complete block headers for the entire chain). + +The test suite should use the Tendermint RPC client and the Tendermint light client, to exercise the client code as well. + +### Implementation Considerations + +The testnets should run in Docker Compose, both locally and in CI. This makes it easier to reproduce test failures locally. Supporting multiple test-runners (e.g. on VMs or Kubernetes) is out of scope. The same image should be used for all tests, with configuration passed via a mounted volume. + +There does not appear to be any off-the-shelf solutions that would do this for us, so we will have to roll our own on top of Docker Compose. This gives us more flexibility, but is estimated to be a few weeks of work. + +Testnets should be configured via a YAML file. These are used as inputs for the test runner, which e.g. generates Docker Compose configurations from them. An additional layer on top should generate these testnet configurations from a YAML file that specifies all the option combinations to test. + +Comprehensive testnets should run against master nightly. However, a small subset of representative testnets should run for each pull request, e.g. a four-node IPv4 network with state sync and fast sync. + +Tests should be written using the standard Go test framework (and e.g. Testify), with a helper function to fetch info from the test configuration. The test runner will run the tests separately for each network node, and the test must vary its expectations based on the node's configuration. + +It should be possible to launch a specific testnet and run individual test cases from the IDE or local terminal against a it. + +If possible, the existing `testnet` command should be extended to set up the network topologies needed by the end-to-end tests. + +## Status + +Implemented + +## Consequences + +### Positive + +- Comprehensive end-to-end test coverage of basic Tendermint functionality, exercising common code paths in the same way that users would + +- Test environments can easily be reproduced locally and debugged via standard tooling + +### Negative + +- Limited coverage of consensus correctness testing (e.g. Jepsen) + +- No coverage of malicious or adversarial behavior + +- Have to roll our own test framework, which takes engineering resources + +- Possibly slower CI times, depending on which tests are run + +- Operational costs and overhead, e.g. infrastructure costs and system maintenance + +### Neutral + +- No support for alternative infrastructure platforms, e.g. Kubernetes or VMs + +## References + +- [#5291: new end-to-end test suite](https://github.com/tendermint/tendermint/issues/5291) diff --git a/sei-tendermint/docs/architecture/adr-067-mempool-refactor.md b/sei-tendermint/docs/architecture/adr-067-mempool-refactor.md new file mode 100644 index 0000000000..7b881937e7 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-067-mempool-refactor.md @@ -0,0 +1,303 @@ +# ADR 067: Mempool Refactor + +- [ADR 067: Mempool Refactor](#adr-067-mempool-refactor) + - [Changelog](#changelog) + - [Status](#status) + - [Context](#context) + - [Current Design](#current-design) + - [Alternative Approaches](#alternative-approaches) + - [Prior Art](#prior-art) + - [Ethereum](#ethereum) + - [Diem](#diem) + - [Decision](#decision) + - [Detailed Design](#detailed-design) + - [CheckTx](#checktx) + - [Mempool](#mempool) + - [Eviction](#eviction) + - [Gossiping](#gossiping) + - [Performance](#performance) + - [Future Improvements](#future-improvements) + - [Consequences](#consequences) + - [Positive](#positive) + - [Negative](#negative) + - [Neutral](#neutral) + - [References](#references) + +## Changelog + +- April 19, 2021: Initial Draft (@alexanderbez) + +## Status + +Accepted + +## Context + +Tendermint Core has a reactor and data structure, mempool, that facilitates the +ephemeral storage of uncommitted transactions. Honest nodes participating in a +Tendermint network gossip these uncommitted transactions to each other if they +pass the application's `CheckTx`. In addition, block proposers select from the +mempool a subset of uncommitted transactions to include in the next block. + +Currently, the mempool in Tendermint Core is designed as a FIFO queue. In other +words, transactions are included in blocks as they are received by a node. There +currently is no explicit and prioritized ordering of these uncommitted transactions. +This presents a few technical and UX challenges for operators and applications. + +Namely, validators are not able to prioritize transactions by their fees or any +incentive aligned mechanism. In addition, the lack of prioritization also leads +to cascading effects in terms of DoS and various attack vectors on networks, +e.g. [cosmos/cosmos-sdk#8224](https://github.com/cosmos/cosmos-sdk/discussions/8224). + +Thus, Tendermint Core needs the ability for an application and its users to +prioritize transactions in a flexible and performant manner. Specifically, we're +aiming to either improve, maintain or add the following properties in the +Tendermint mempool: + +- Allow application-determined transaction priority. +- Allow efficient concurrent reads and writes. +- Allow block proposers to reap transactions efficiently by priority. +- Maintain a fixed mempool capacity by transaction size and evict lower priority + transactions to make room for higher priority transactions. +- Allow transactions to be gossiped by priority efficiently. +- Allow operators to specify a maximum TTL for transactions in the mempool before + they're automatically evicted if not selected for a block proposal in time. +- Ensure the design allows for future extensions, such as replace-by-priority and + allowing multiple pending transactions per sender, to be incorporated easily. + +Note, not all of these properties will be addressed by the proposed changes in +this ADR. However, this proposal will ensure that any unaddressed properties +can be addressed in an easy and extensible manner in the future. + +### Current Design + +![mempool](./img/mempool-v0.jpeg) + +At the core of the `v0` mempool reactor is a concurrent linked-list. This is the +primary data structure that contains `Tx` objects that have passed `CheckTx`. +When a node receives a transaction from another peer, it executes `CheckTx`, which +obtains a read-lock on the `*CListMempool`. If the transaction passes `CheckTx` +locally on the node, it is added to the `*CList` by obtaining a write-lock. It +is also added to the `cache` and `txsMap`, both of which obtain their own respective +write-locks and map a reference from the transaction hash to the `Tx` itself. + +Transactions are continuously gossiped to peers whenever a new transaction is added +to a local node's `*CList`, where the node at the front of the `*CList` is selected. +Another transaction will not be gossiped until the `*CList` notifies the reader +that there are more transactions to gossip. + +When a proposer attempts to propose a block, they will execute `ReapMaxBytesMaxGas` +on the reactor's `*CListMempool`. This call obtains a read-lock on the `*CListMempool` +and selects as many transactions as possible starting from the front of the `*CList` +moving to the back of the list. + +When a block is finally committed, a caller invokes `Update` on the reactor's +`*CListMempool` with all the selected transactions. Note, the caller must also +explicitly obtain a write-lock on the reactor's `*CListMempool`. This call +will remove all the supplied transactions from the `txsMap` and the `*CList`, both +of which obtain their own respective write-locks. In addition, the transaction +may also be removed from the `cache` which obtains it's own write-lock. + +## Alternative Approaches + +When considering which approach to take for a priority-based flexible and +performant mempool, there are two core candidates. The first candidate is less +invasive in the required set of protocol and implementation changes, which +simply extends the existing `CheckTx` ABCI method. The second candidate essentially +involves the introduction of new ABCI method(s) and would require a higher degree +of complexity in protocol and implementation changes, some of which may either +overlap or conflict with the upcoming introduction of [ABCI++](https://github.com/tendermint/tendermint/blob/master/docs/rfc/rfc-013-abci%2B%2B.md). + +For more information on the various approaches and proposals, please see the +[mempool discussion](https://github.com/tendermint/tendermint/discussions/6295). + +## Prior Art + +### Ethereum + +The Ethereum mempool, specifically [Geth](https://github.com/ethereum/go-ethereum), +contains a mempool, `*TxPool`, that contains various mappings indexed by account, +such as a `pending` which contains all processable transactions for accounts +prioritized by nonce. It also contains a `queue` which is the exact same mapping +except it contains not currently processable transactions. The mempool also +contains a `priced` index of type `*txPricedList` that is a priority queue based +on transaction price. + +### Diem + +The [Diem mempool](https://github.com/diem/diem/blob/master/mempool/README.md#implementation-details) +contains a similar approach to the one we propose. Specifically, the Diem mempool +contains a mapping from `Account:[]Tx`. On top of this primary mapping from account +to a list of transactions, are various indexes used to perform certain actions. + +The main index, `PriorityIndex`. is an ordered queue of transactions that are +“consensus-ready” (i.e., they have a sequence number which is sequential to the +current sequence number for the account). This queue is ordered by gas price so +that if a client is willing to pay more (than other clients) per unit of +execution, then they can enter consensus earlier. + +## Decision + +To incorporate a priority-based flexible and performant mempool in Tendermint Core, +we will introduce new fields, `priority` and `sender`, into the `ResponseCheckTx` +type. + +We will introduce a new versioned mempool reactor, `v1` and assume an implicit +version of the current mempool reactor as `v0`. In the new `v1` mempool reactor, +we largely keep the functionality the same as `v0` except we augment the underlying +data structures. Specifically, we keep a mapping of senders to transaction objects. +On top of this mapping, we index transactions to provide the ability to efficiently +gossip and reap transactions by priority. + +## Detailed Design + +### CheckTx + +We introduce the following new fields into the `ResponseCheckTx` type: + +```diff +message ResponseCheckTx { + uint32 code = 1; + bytes data = 2; + string log = 3; // nondeterministic + string info = 4; // nondeterministic + int64 gas_wanted = 5 [json_name = "gas_wanted"]; + int64 gas_used = 6 [json_name = "gas_used"]; + repeated Event events = 7 [(gogoproto.nullable) = false, (gogoproto.jsontag) = "events,omitempty"]; + string codespace = 8; ++ int64 priority = 9; ++ string sender = 10; +} +``` + +It is entirely up the application in determining how these fields are populated +and with what values, e.g. the `sender` could be the signer and fee payer +of the transaction, the `priority` could be the cumulative sum of the fee(s). + +Only `sender` is required, while `priority` can be omitted which would result in +using the default value of zero. + +### Mempool + +The existing concurrent-safe linked-list will be replaced by a thread-safe map +of ``, i.e a mapping from `sender` to a single `*Tx` object, where +each `*Tx` is the next valid and processable transaction from the given `sender`. + +On top of this mapping, we index all transactions by priority using a thread-safe +priority queue, i.e. a [max heap](https://en.wikipedia.org/wiki/Min-max_heap). +When a proposer is ready to select transactions for the next block proposal, +transactions are selected from this priority index by highest priority order. +When a transaction is selected and reaped, it is removed from this index and +from the `` mapping. + +We define `Tx` as the following data structure: + +```go +type Tx struct { + // Tx represents the raw binary transaction data. + Tx []byte + + // Priority defines the transaction's priority as specified by the application + // in the ResponseCheckTx response. + Priority int64 + + // Sender defines the transaction's sender as specified by the application in + // the ResponseCheckTx response. + Sender string + + // Index defines the current index in the priority queue index. Note, if + // multiple Tx indexes are needed, this field will be removed and each Tx + // index will have its own wrapped Tx type. + Index int +} +``` + +### Eviction + +Upon successfully executing `CheckTx` for a new `Tx` and the mempool is currently +full, we must check if there exists a `Tx` of lower priority that can be evicted +to make room for the new `Tx` with higher priority and with sufficient size +capacity left. + +If such a `Tx` exists, we find it by obtaining a read lock and sorting the +priority queue index. Once sorted, we find the first `Tx` with lower priority and +size such that the new `Tx` would fit within the mempool's size limit. We then +remove this `Tx` from the priority queue index as well as the `` +mapping. + +This will require additional `O(n)` space and `O(n*log(n))` runtime complexity. Note that the space complexity does not depend on the size of the tx. + +### Gossiping + +We keep the existing thread-safe linked list as an additional index. Using this +index, we can efficiently gossip transactions in the same manner as they are +gossiped now (FIFO). + +Gossiping transactions will not require locking any other indexes. + +### Performance + +Performance should largely remain unaffected apart from the space overhead of +keeping an additional priority queue index and the case where we need to evict +transactions from the priority queue index. There should be no reads which +block writes on any index + +## Future Improvements + +There are a few considerable ways in which the proposed design can be improved or +expanded upon. Namely, transaction gossiping and for the ability to support +multiple transactions from the same `sender`. + +With regards to transaction gossiping, we need empirically validate whether we +need to gossip by priority. In addition, the current method of gossiping may not +be the most efficient. Specifically, broadcasting all the transactions a node +has in it's mempool to it's peers. Rather, we should explore for the ability to +gossip transactions on a request/response basis similar to Ethereum and other +protocols. Not only does this reduce bandwidth and complexity, but also allows +for us to explore gossiping by priority or other dimensions more efficiently. + +Allowing for multiple transactions from the same `sender` is important and will +most likely be a needed feature in the future development of the mempool, but for +now it suffices to have the preliminary design agreed upon. Having the ability +to support multiple transactions per `sender` will require careful thought with +regards to the interplay of the corresponding ABCI application. Regardless, the +proposed design should allow for adaptations to support this feature in a +non-contentious and backwards compatible manner. + +## Consequences + +### Positive + +- Transactions are allowed to be prioritized by the application. + +### Negative + +- Increased size of the `ResponseCheckTx` Protocol Buffer type. +- Causal ordering is NOT maintained. + - It is possible that certain transactions broadcasted in a particular order may + pass `CheckTx` but not end up being committed in a block because they fail + `CheckTx` later. e.g. Consider Tx1 that sends funds from existing + account Alice to a _new_ account Bob with priority P1 and then later + Bob's _new_ account sends funds back to Alice in Tx2 with P2, + such that P2 > P1. If executed in this order, both + transactions will pass `CheckTx`. However, when a proposer is ready to select + transactions for the next block proposal, they will select Tx2 before + Tx1 and thus Tx2 will _fail_ because Tx1 must + be executed first. This is because there is a _causal ordering_, + Tx1 ➝ Tx2. These types of situations should be rare as + most transactions are not causally ordered and can be circumvented by simply + trying again at a later point in time or by ensuring the "child" priority is + lower than the "parent" priority. In other words, if parents always have + priories that are higher than their children, then the new mempool design will + maintain causal ordering. + +### Neutral + +- A transaction that passed `CheckTx` and entered the mempool can later be evicted + at a future point in time if a higher priority transaction entered while the + mempool was full. + +## References + +- [ABCI++](https://github.com/tendermint/tendermint/blob/master/docs/rfc/rfc-013-abci%2B%2B.md) +- [Mempool Discussion](https://github.com/tendermint/tendermint/discussions/6295) diff --git a/sei-tendermint/docs/architecture/adr-068-reverse-sync.md b/sei-tendermint/docs/architecture/adr-068-reverse-sync.md new file mode 100644 index 0000000000..7926e0b202 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-068-reverse-sync.md @@ -0,0 +1,97 @@ +# ADR 068: Reverse Sync + +## Changelog + +- 20 April 2021: Initial Draft (@cmwaters) + +## Status + +Accepted + +## Context + +The advent of state sync and block pruning gave rise to the opportunity for full nodes to participate in consensus without needing complete block history. This also introduced a problem with respect to evidence handling. Nodes that didn't have all the blocks within the evidence age were incapable of validating evidence, thus halting if that evidence was committed on chain. + +[ADR 068](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-068-reverse-sync.md) was published in response to this problem and modified the spec to add a minimum block history invariant. This predominantly sought to extend state sync so that it was capable of fetching and storing the `Header`, `Commit` and `ValidatorSet` (essentially a `LightBlock`) of the last `n` heights, where `n` was calculated based from the evidence age. + +This ADR sets out to describe the design of this state sync extension as well as modifications to the light client provider and the merging of tm store. + +## Decision + +The state sync reactor will be extended by introducing 2 new P2P messages (and a new channel). + +```protobuf +message LightBlockRequest { + uint64 height = 1; +} + +message LightBlockResponse { + tendermint.types.LightBlock light_block = 1; +} +``` + +This will be used by the "reverse sync" protocol that will fetch, verify and store prior light blocks such that the node can safely participate in consensus. + +Furthermore this allows for a new light client provider which offers the ability for the `StateProvider` to use the underlying P2P stack instead of RPC. + +## Detailed Design + +This section will focus first on the reverse sync (here we call it `backfill`) mechanism as a standalone protocol and then look to decribe how it integrates within the state sync reactor and how we define the new p2p light client provider. + +```go +// Backfill fetches, verifies, and stores necessary history +// to participate in consensus and validate evidence. +func (r *Reactor) backfill(state State) error {} +``` + +`State` is used to work out how far to go back, namely we need all light blocks that have: +- a height: `h >= state.LastBlockHeight - state.ConsensusParams.Evidence.MaxAgeNumBlocks` +- a time: `t >= state.LastBlockTime - state.ConsensusParams.Evidence.MaxAgeDuration` + +Reverse Sync relies on two components: A `Dispatcher` and a `BlockQueue`. The `Dispatcher` is a pattern taken from a similar [PR](https://github.com/tendermint/tendermint/pull/4508). It is wired to the `LightBlockChannel` and allows for concurrent light block requests by shifting through a linked list of peers. This abstraction has the nice quality that it can also be used as an array of light providers for a P2P based light client. + +The `BlockQueue` is a data structure that allows for multiple workers to fetch light blocks, serializing them for the main thread which picks them off the end of the queue, verifies the hashes and persists them. + +### Integration with State Sync + +Reverse sync is a blocking process that runs directly after syncing state and before transitioning into either fast sync or consensus. + +Prior, the state sync service was not connected to any db, instead it passed the state and commit back to the node. For reverse sync, state sync will be given access to both the `StateStore` and `BlockStore` to be able to write `Header`'s, `Commit`'s and `ValidatorSet`'s and read them so as to serve other state syncing peers. + +This also means adding new methods to these respective stores in order to persist them + +### P2P Light Client Provider + +As mentioned previously, the `Dispatcher` is capable of handling requests to multiple peers. We can therefore simply peel off a `blockProvider` instance which is assigned to each peer. By giving it the chain ID, the `blockProvider` is capable of doing a basic validation of the light block before returning it to the client. + +It's important to note that because state sync doesn't have access to the evidence channel it is incapable of allowing the light client to report evidence thus `ReportEvidence` is a no op. This is not too much of a concern for reverse sync but will need to be addressed for pure p2p light clients. + +### Pruning + +A final small note is with pruning. This ADR will introduce changes that will not allow an application to prune blocks that are within the evidence age. + +## Future Work + +This ADR tries to remain within the scope of extending state sync, however the changes made opens the door for several areas to be followed up: +- Properly integrate p2p messaging in the light client package. This will require adding the evidence channel so the light client is capable of reporting evidence. We may also need to rethink the providers model (i.e. currently providers are only added on start up) +- Merge and clean up the tendermint stores (state, block and evidence). This ADR adds new methods to both the state and block store for saving headers, commits and validator sets. This doesn't quite fit with the current struct (i.e. only `BlockMeta`s instead of `Header`s are saved). We should explore consolidating this for the sake of atomicity and the opportunity for batching. There are also other areas for changes such as the way we store block parts. See [here](https://github.com/tendermint/tendermint/issues/5383) and [here](https://github.com/tendermint/tendermint/issues/4630) for more context. +- Explore opportunistic reverse sync. Technically we don't need to reverse sync if no evidence is observed. I've tried to design the protocol such that it could be possible to move it across to the evidence package if we see fit. Thus only when evidence is seen where we don't have the necessary data, do we perform a reverse sync. The problem with this is that imagine we are in consensus and some evidence pops up requiring us to first fetch and verify the last 10,000 blocks. There's no way a node could do this (sequentially) and vote before the round finishes. Also as we don't punish invalid evidence, a malicious node could easily spam the chain just to get a bunch of "stateless" nodes to perform a bunch of useless work. +- Explore full reverse sync. Currently we only fetch light blocks. There might be benefits in the future to fetch and persist entire blocks especially if we give control to the application to do this. + +## Consequences + +### Positive + +- All nodes should have sufficient history to validate all types of evidence +- State syncing nodes can use the p2p layer for light client verification of state. This has better UX and could be faster but I haven't benchmarked. + +### Negative + +- Introduces more code = more maintenance + +### Neutral + +## References + +- [Reverse Sync RFC](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-068-reverse-sync.md) +- [Original Issue](https://github.com/tendermint/tendermint/issues/5617) diff --git a/sei-tendermint/docs/architecture/adr-069-flexible-node-initialization.md b/sei-tendermint/docs/architecture/adr-069-flexible-node-initialization.md new file mode 100644 index 0000000000..4e66d88d63 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-069-flexible-node-initialization.md @@ -0,0 +1,268 @@ +# ADR 069: Flexible Node Initialization + +## Changlog + +- 2021-06-09: Initial Draft (@tychoish) + +- 2021-07-21: Major Revision (@tychoish) + +## Status + +Proposed. + +## Context + +In an effort to support [Go-API-Stability](./adr-060-go-api-stability.md), +during the 0.35 development cycle, we have attempted to reduce the the API +surface area by moving most of the interface of the `node` package into +unexported functions, as well as moving the reactors to an `internal` +package. Having this coincide with the 0.35 release made a lot of sense +because these interfaces were _already_ changing as a result of the `p2p` +[refactor](./adr-061-p2p-refactor-scope.md), so it made sense to think a bit +more about how tendermint exposes this API. + +While the interfaces of the P2P layer and most of the node package are already +internalized, this precludes some operational patterns that are important to +users who use tendermint as a library. Specifically, introspecting the +tendermint node service and replacing components is not supported in the latest +version of the code, and some of these use cases would require maintaining a +vendor copy of the code. Adding these features requires rather extensive +(internal/implementation) changes to the `node` and `rpc` packages, and this +ADR describes a model for changing the way that tendermint nodes initialize, in +service of providing this kind of functionality. + +We consider node initialization, because the current implemention +provides strong connections between all components, as well as between +the components of the node and the RPC layer, and being able to think +about the interactions of these components will help enable these +features and help define the requirements of the node package. + +## Alternative Approaches + +These alternatives are presented to frame the design space and to +contextualize the decision in terms of product requirements. These +ideas are not inherently bad, and may even be possible or desireable +in the (distant) future, and merely provide additional context for how +we, in the moment came to our decision(s). + +### Do Nothing + +The current implementation is functional and sufficient for the vast +majority of use cases (e.g., all users of the Cosmos-SDK as well as +anyone who runs tendermint and the ABCI application in separate +processes). In the current implementation, and even previous versions, +modifying node initialization or injecting custom components required +copying most of the `node` package, which required such users +to maintain a vendored copy of tendermint. + +While this is (likely) not tenable in the long term, as users do want +more modularity, and the current service implementation is brittle and +difficult to maintain, in the short term it may be possible to delay +implementation somewhat. Eventually, however, we will need to make the +`node` package easier to maintain and reason about. + +### Generic Service Pluggability + +One possible system design would export interfaces (in the Golang +sense) for all components of the system, to permit runtime dependency +injection of all components in the system, so that users can compose +tendermint nodes of arbitrary user-supplied components. + +Although this level of customization would provide benefits, it would be a huge +undertaking (particularly with regards to API design work) that we do not have +scope for at the moment. Eventually providing support for some kinds of +pluggability may be useful, so the current solution does not explicitly +foreclose the possibility of this alternative. + +### Abstract Dependency Based Startup and Shutdown + +The main proposal in this document makes tendermint node initialization simpler +and more abstract, but the system lacks a number of +features which daemon/service initialization could provide, such as a +system allowing the authors of services to control initialization and shutdown order +of components using dependency relationships. + +Such a system could work by allowing services to declare +initialization order dependencies to other reactors (by ID, perhaps) +so that the node could decide the initialization based on the +dependencies declared by services rather than requiring the node to +encode this logic directly. + +This level of configuration is probably more complicated than is needed. Given +that the authors of components in the current implementation of tendermint +already *do* need to know about other components, a dependency-based system +would probably be overly-abstract at this stage. + +## Decisions + +- To the greatest extent possible, factor the code base so that + packages are responsible for their own initialization, and minimize + the amount of code in the `node` package itself. + +- As a design goal, reduce direct coupling and dependencies between + components in the implementation of `node`. + +- Begin iterating on a more-flexible internal framework for + initializing tendermint nodes to make the initatilization process + less hard-coded by the implementation of the node objects. + + - Reactors should not need to expose their interfaces *within* the + implementation of the node type + + - This refactoring should be entirely opaque to users. + + - These node initialization changes should not require a + reevaluation of the `service.Service` or a generic initialization + orchestration framework. + +- Do not proactively provide a system for injecting + components/services within a tendtermint node, though make it + possible to retrofit this kind of plugability in the future if + needed. + +- Prioritize implementation of p2p-based statesync reactor to obviate + need for users to inject a custom state-sync provider. + +## Detailed Design + +The [current +nodeImpl](https://github.com/tendermint/tendermint/blob/master/node/node.go#L47) +includes direct references to the implementations of each of the +reactors, which should be replaced by references to `service.Service` +objects. This will require moving construction of the [rpc +service](https://github.com/tendermint/tendermint/blob/master/node/node.go#L771) +into the constructor of +[makeNode](https://github.com/tendermint/tendermint/blob/master/node/node.go#L126). One +possible implementation of this would be to eliminate the current +`ConfigureRPC` method on the node package and instead [configure it +here](https://github.com/tendermint/tendermint/pull/6798/files#diff-375d57e386f20eaa5f09f02bb9d28bfc48ac3dca18d0325f59492208219e5618R441). + +To avoid adding complexity to the `node` package, we will add a +composite service implementation to the `service` package +that implements `service.Service` and is composed of a sequence of +underlying `service.Service` objects and handles their +startup/shutdown in the specified sequential order. + +Consensus, blocksync (*née* fast sync), and statesync all depend on +each other, and have significant initialization dependencies that are +presently encoded in the `node` package. As part of this change, a +new package/component (likely named `blocks` located at +`internal/blocks`) will encapsulate the initialization of these block +management areas of the code. + +### Injectable Component Option + +This section briefly describes a possible implementation for +user-supplied services running within a node. This should not be +implemented unless user-supplied components are a hard requirement for +a user. + +In order to allow components to be replaced, a new public function +will be added to the public interface of `node` with a signature that +resembles the following: + +```go +func NewWithServices(conf *config.Config, + logger log.Logger, + cf proxy.ClientCreator, + gen *types.GenesisDoc, + srvs []service.Service, +) (service.Service, error) { +``` + +The `service.Service` objects will be initialized in the order supplied, after +all pre-configured/default services have started (and shut down in reverse +order). The given services may implement additional interfaces, allowing them +to replace specific default services. `NewWithServices` will validate input +service lists with the following rules: + +- None of the services may already be running. +- The caller may not supply more than one replacement reactor for a given + default service type. + +If callers violate any of these rules, `NewWithServices` will return +an error. To retract support for this kind of operation in the future, +the function can be modified to *always* return an error. + +## Consequences + +### Positive + +- The node package will become easier to maintain. + +- It will become easier to add additional services within tendermint + nodes. + +- It will become possible to replace default components in the node + package without vendoring the tendermint repo and modifying internal + code. + +- The current end-to-end (e2e) test suite will be able to prevent any + regressions, and the new functionality can be thoroughly unit tested. + +- The scope of this project is very narrow, which minimizes risk. + +### Negative + +- This increases our reliance on the `service.Service` interface which + is probably not an interface that we want to fully commit to. + +- This proposal implements a fairly minimal set of functionality and + leaves open the possibility for many additional features which are + not included in the scope of this proposal. + +### Neutral + +N/A + +## Open Questions + +- To what extent does this new initialization framework need to accommodate + the legacy p2p stack? Would it be possible to delay a great deal of this + work to the 0.36 cycle to avoid this complexity? + + - Answer: _depends on timing_, and the requirement to ship pluggable reactors in 0.35. + +- Where should additional public types be exported for the 0.35 + release? + + Related to the general project of API stabilization we want to deprecate + the `types` package, and move its contents into a new `pkg` hierarchy; + however, the design of the `pkg` interface is currently underspecified. + If `types` is going to remain for the 0.35 release, then we should consider + the impact of using multiple organizing modalities for this code within a + single release. + +## Future Work + +- Improve or simplify the `service.Service` interface. There are some + pretty clear limitations with this interface as written (there's no + way to timeout slow startup or shut down, the cycle between the + `service.BaseService` and `service.Service` implementations is + troubling, the default panic in `OnReset` seems troubling.) + +- As part of the refactor of `service.Service` have all services/nodes + respect the lifetime of a `context.Context` object, and avoid the + current practice of creating `context.Context` objects in p2p and + reactor code. This would be required for in-process multi-tenancy. + +- Support explicit dependencies between components and allow for + parallel startup, so that different reactors can startup at the same + time, where possible. + +## References + +- [the component + graph](https://peter.bourgon.org/go-for-industrial-programming/#the-component-graph) + as a framing for internal service construction. + +## Appendix + +### Dependencies + +There's a relationship between the blockchain and consensus reactor +described by the following dependency graph makes replacing some of +these components more difficult relative to other reactors or +components. + +![consensus blockchain dependency graph](./img/consensus_blockchain.png) diff --git a/sei-tendermint/docs/architecture/adr-071-proposer-based-timestamps.md b/sei-tendermint/docs/architecture/adr-071-proposer-based-timestamps.md new file mode 100644 index 0000000000..793f105b3d --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-071-proposer-based-timestamps.md @@ -0,0 +1,333 @@ +# ADR 71: Proposer-Based Timestamps + +## Changelog + + - July 15 2021: Created by @williambanfield + - Aug 4 2021: Draft completed by @williambanfield + - Aug 5 2021: Draft updated to include data structure changes by @williambanfield + - Aug 20 2021: Language edits completed by @williambanfield + - Oct 25 2021: Update the ADR to match updated spec from @cason by @williambanfield + - Nov 10 2021: Additional language updates by @williambanfield per feedback from @cason + - Feb 2 2022: Synchronize logic for timely with latest version of the spec by @williambanfield + +## Status + + **Accepted** + +## Context + +Tendermint currently provides a monotonically increasing source of time known as [BFTTime](https://github.com/tendermint/tendermint/blob/master/spec/consensus/bft-time.md). +This mechanism for producing a source of time is reasonably simple. +Each correct validator adds a timestamp to each `Precommit` message it sends. +The timestamp it sends is either the validator's current known Unix time or one millisecond greater than the previous block time, depending on which value is greater. +When a block is produced, the proposer chooses the block timestamp as the weighted median of the times in all of the `Precommit` messages the proposer received. +The weighting is proportional to the amount of voting power, or stake, a validator has on the network. +This mechanism for producing timestamps is both deterministic and byzantine fault tolerant. + +This current mechanism for producing timestamps has a few drawbacks. +Validators do not have to agree at all on how close the selected block timestamp is to their own currently known Unix time. +Additionally, any amount of voting power `>1/3` may directly control the block timestamp. +As a result, it is quite possible that the timestamp is not particularly meaningful. + +These drawbacks present issues in the Tendermint protocol. +Timestamps are used by light clients to verify blocks. +Light clients rely on correspondence between their own currently known Unix time and the block timestamp to verify blocks they see; +However, their currently known Unix time may be greatly divergent from the block timestamp as a result of the limitations of `BFTTime`. + +The proposer-based timestamps specification suggests an alternative approach for producing block timestamps that remedies these issues. +Proposer-based timestamps alter the current mechanism for producing block timestamps in two main ways: + +1. The block proposer is amended to offer up its currently known Unix time as the timestamp for the next block instead of the `BFTTime`. +1. Correct validators only approve the proposed block timestamp if it is close enough to their own currently known Unix time. + +The result of these changes is a more meaningful timestamp that cannot be controlled by `<= 2/3` of the validator voting power. +This document outlines the necessary code changes in Tendermint to implement the corresponding [proposer-based timestamps specification](https://github.com/tendermint/tendermint/tree/master/spec/consensus/proposer-based-timestamp). + +## Alternative Approaches + +### Remove timestamps altogether + +Computer clocks are bound to skew for a variety of reasons. +Using timestamps in our protocol means either accepting the timestamps as not reliable or impacting the protocol’s liveness guarantees. +This design requires impacting the protocol’s liveness in order to make the timestamps more reliable. +An alternate approach is to remove timestamps altogether from the block protocol. +`BFTTime` is deterministic but may be arbitrarily inaccurate. +However, having a reliable source of time is quite useful for applications and protocols built on top of a blockchain. + +We therefore decided not to remove the timestamp. +Applications often wish for some transactions to occur on a certain day, on a regular period, or after some time following a different event. +All of these require some meaningful representation of agreed upon time. +The following protocols and application features require a reliable source of time: +* Tendermint Light Clients [rely on correspondence between their known time](https://github.com/tendermint/tendermint/blob/master/spec/light-client/verification/README.md#definitions-1) and the block time for block verification. +* Tendermint Evidence validity is determined [either in terms of heights or in terms of time](https://github.com/tendermint/tendermint/blob/8029cf7a0fcc89a5004e173ec065aa48ad5ba3c8/spec/consensus/evidence.md#verification). +* Unbonding of staked assets in the Cosmos Hub [occurs after a period of 21 days](https://github.com/cosmos/governance/blob/ce75de4019b0129f6efcbb0e752cd2cc9e6136d3/params-change/Staking.md#unbondingtime). +* IBC packets can use either a [timestamp or a height to timeout packet delivery](https://docs.cosmos.network/v0.44/ibc/overview.html#acknowledgements) + +Finally, inflation distribution in the Cosmos Hub uses an approximation of time to calculate an annual percentage rate. +This approximation of time is calculated using [block heights with an estimated number of blocks produced in a year](https://github.com/cosmos/governance/blob/master/params-change/Mint.md#blocksperyear). +Proposer-based timestamps will allow this inflation calculation to use a more meaningful and accurate source of time. + + +## Decision + +Implement proposer-based timestamps and remove `BFTTime`. + +## Detailed Design + +### Overview + +Implementing proposer-based timestamps will require a few changes to Tendermint’s code. +These changes will be to the following components: +* The `internal/consensus/` package. +* The `state/` package. +* The `Vote`, `CommitSig` and `Header` types. +* The consensus parameters. + +### Changes to `CommitSig` + +The [CommitSig](https://github.com/tendermint/tendermint/blob/a419f4df76fe4aed668a6c74696deabb9fe73211/types/block.go#L604) struct currently contains a timestamp. +This timestamp is the current Unix time known to the validator when it issued a `Precommit` for the block. +This timestamp is no longer used and will be removed in this change. + +`CommitSig` will be updated as follows: + +```diff +type CommitSig struct { + BlockIDFlag BlockIDFlag `json:"block_id_flag"` + ValidatorAddress Address `json:"validator_address"` +-- Timestamp time.Time `json:"timestamp"` + Signature []byte `json:"signature"` +} +``` + +### Changes to `Vote` messages + +`Precommit` and `Prevote` messages use a common [Vote struct](https://github.com/tendermint/tendermint/blob/a419f4df76fe4aed668a6c74696deabb9fe73211/types/vote.go#L50). +This struct currently contains a timestamp. +This timestamp is set using the [voteTime](https://github.com/tendermint/tendermint/blob/e8013281281985e3ada7819f42502b09623d24a0/internal/consensus/state.go#L2241) function and therefore vote times correspond to the current Unix time known to the validator, provided this time is greater than the timestamp of the previous block. +For precommits, this timestamp is used to construct the [CommitSig that is included in the block in the LastCommit](https://github.com/tendermint/tendermint/blob/e8013281281985e3ada7819f42502b09623d24a0/types/block.go#L754) field. +For prevotes, this field is currently unused. +Proposer-based timestamps will use the timestamp that the proposer sets into the block and will therefore no longer require that a timestamp be included in the vote messages. +This timestamp is therefore no longer useful as part of consensus and may optionally be dropped from the message. + +`Vote` will be updated as follows: + +```diff +type Vote struct { + Type tmproto.SignedMsgType `json:"type"` + Height int64 `json:"height"` + Round int32 `json:"round"` + BlockID BlockID `json:"block_id"` // zero if vote is nil. +-- Timestamp time.Time `json:"timestamp"` + ValidatorAddress Address `json:"validator_address"` + ValidatorIndex int32 `json:"validator_index"` + Signature []byte `json:"signature"` +} +``` + +### New consensus parameters + +The proposer-based timestamp specification includes a pair of new parameters that must be the same among all validators. +These parameters are `PRECISION`, and `MSGDELAY`. + +The `PRECISION` and `MSGDELAY` parameters are used to determine if the proposed timestamp is acceptable. +A validator will only Prevote a proposal if the proposal timestamp is considered `timely`. +A proposal timestamp is considered `timely` if it is within `PRECISION` and `MSGDELAY` of the Unix time known to the validator. +More specifically, a proposal timestamp is `timely` if `proposalTimestamp - PRECISION ≤ validatorLocalTime ≤ proposalTimestamp + PRECISION + MSGDELAY`. + +Because the `PRECISION` and `MSGDELAY` parameters must be the same across all validators, they will be added to the [consensus parameters](https://github.com/tendermint/spec/blob/master/proto/tendermint/types/params.proto#L11) as [durations](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Duration). + +The consensus parameters will be updated to include this `Synchrony` field as follows: + +```diff +type ConsensusParams struct { + Block BlockParams `json:"block"` + Evidence EvidenceParams `json:"evidence"` + Validator ValidatorParams `json:"validator"` + Version VersionParams `json:"version"` +++ Synchrony SynchronyParams `json:"synchrony"` +} +``` + +```go +type SynchronyParams struct { + MessageDelay time.Duration `json:"message_delay"` + Precision time.Duration `json:"precision"` +} +``` + +### Changes to the block proposal step + +#### Proposer selects block timestamp + +Tendermint currently uses the `BFTTime` algorithm to produce the block's `Header.Timestamp`. +The [proposal logic](https://github.com/tendermint/tendermint/blob/68ca65f5d79905abd55ea999536b1a3685f9f19d/internal/state/state.go#L269) sets the weighted median of the times in the `LastCommit.CommitSigs` as the proposed block's `Header.Timestamp`. + +In proposer-based timestamps, the proposer will still set a timestamp into the `Header.Timestamp`. +The timestamp the proposer sets into the `Header` will change depending on if the block has previously received a [polka](https://github.com/tendermint/tendermint/blob/053651160f496bb44b107a434e3e6482530bb287/docs/introduction/what-is-tendermint.md#consensus-overview) or not. + +#### Proposal of a block that has not previously received a polka + +If a proposer is proposing a new block then it will set the Unix time currently known to the proposer into the `Header.Timestamp` field. +The proposer will also set this same timestamp into the `Timestamp` field of the `Proposal` message that it issues. + +#### Re-proposal of a block that has previously received a polka + +If a proposer is re-proposing a block that has previously received a polka on the network, then the proposer does not update the `Header.Timestamp` of that block. +Instead, the proposer simply re-proposes the exact same block. +This way, the proposed block has the exact same block ID as the previously proposed block and the validators that have already received that block do not need to attempt to receive it again. + +The proposer will set the re-proposed block's `Header.Timestamp` as the `Proposal` message's `Timestamp`. + +#### Proposer waits + +Block timestamps must be monotonically increasing. +In `BFTTime`, if a validator’s clock was behind, the [validator added 1 millisecond to the previous block’s time and used that in its vote messages](https://github.com/tendermint/tendermint/blob/e8013281281985e3ada7819f42502b09623d24a0/internal/consensus/state.go#L2246). +A goal of adding proposer-based timestamps is to enforce some degree of clock synchronization, so having a mechanism that completely ignores the Unix time of the validator time no longer works. +Validator clocks will not be perfectly in sync. +Therefore, the proposer’s current known Unix time may be less than the previous block's `Header.Time`. +If the proposer’s current known Unix time is less than the previous block's `Header.Time`, the proposer will sleep until its known Unix time exceeds it. + +This change will require amending the [defaultDecideProposal](https://github.com/tendermint/tendermint/blob/822893615564cb20b002dd5cf3b42b8d364cb7d9/internal/consensus/state.go#L1180) method. +This method should now schedule a timeout that fires when the proposer’s time is greater than the previous block's `Header.Time`. +When the timeout fires, the proposer will finally issue the `Proposal` message. + +### Changes to proposal validation rules + +The rules for validating a proposed block will be modified to implement proposer-based timestamps. +We will change the validation logic to ensure that a proposal is `timely`. + +Per the proposer-based timestamps spec, `timely` only needs to be checked if a block has not received a +2/3 majority of `Prevotes` in a round. +If a block previously received a +2/3 majority of prevotes in a previous round, then +2/3 of the voting power considered the block's timestamp near enough to their own currently known Unix time in that round. + +The validation logic will be updated to check `timely` for blocks that did not previously receive +2/3 prevotes in a round. +Receiving +2/3 prevotes in a round is frequently referred to as a 'polka' and we will use this term for simplicity. + +#### Current timestamp validation logic + +To provide a better understanding of the changes needed to timestamp validation, we will first detail how timestamp validation works currently in Tendermint. + +The [validBlock function](https://github.com/tendermint/tendermint/blob/c3ae6f5b58e07b29c62bfdc5715b6bf8ae5ee951/state/validation.go#L14) currently [validates the proposed block timestamp in three ways](https://github.com/tendermint/tendermint/blob/c3ae6f5b58e07b29c62bfdc5715b6bf8ae5ee951/state/validation.go#L118). +First, the validation logic checks that this timestamp is greater than the previous block’s timestamp. + +Second, it validates that the block timestamp is correctly calculated as the weighted median of the timestamps in the [block’s LastCommit](https://github.com/tendermint/tendermint/blob/e8013281281985e3ada7819f42502b09623d24a0/types/block.go#L48). + +Finally, the validation logic authenticates the timestamps in the `LastCommit.CommitSig`. +The cryptographic signature in each `CommitSig` is created by signing a hash of fields in the block with the voting validator’s private key. +One of the items in this `signedBytes` hash is the timestamp in the `CommitSig`. +To authenticate the `CommitSig` timestamp, the validator authenticating votes builds a hash of fields that includes the `CommitSig` timestamp and checks this hash against the signature. +This takes place in the [VerifyCommit function](https://github.com/tendermint/tendermint/blob/e8013281281985e3ada7819f42502b09623d24a0/types/validation.go#L25). + +#### Remove unused timestamp validation logic + +`BFTTime` validation is no longer applicable and will be removed. +This means that validators will no longer check that the block timestamp is a weighted median of `LastCommit` timestamps. +Specifically, we will remove the call to [MedianTime in the validateBlock function](https://github.com/tendermint/tendermint/blob/4db71da68e82d5cb732b235eeb2fd69d62114b45/state/validation.go#L117). +The `MedianTime` function can be completely removed. + +Since `CommitSig`s will no longer contain a timestamp, the validator authenticating a commit will no longer include the `CommitSig` timestamp in the hash of fields it builds to check against the cryptographic signature. + +#### Timestamp validation when a block has not received a polka + +The [POLRound](https://github.com/tendermint/tendermint/blob/68ca65f5d79905abd55ea999536b1a3685f9f19d/types/proposal.go#L29) in the `Proposal` message indicates which round the block received a polka. +A negative value in the `POLRound` field indicates that the block has not previously been proposed on the network. +Therefore the validation logic will check for timely when `POLRound < 0`. + +When a validator receives a `Proposal` message, the validator will check that the `Proposal.Timestamp` is at most `PRECISION` greater than the current Unix time known to the validator, and at maximum `PRECISION + MSGDELAY` less than the current Unix time known to the validator. +If the timestamp is not within these bounds, the proposed block will not be considered `timely`. + +Once a full block matching the `Proposal` message is received, the validator will also check that the timestamp in the `Header.Timestamp` of the block matches this `Proposal.Timestamp`. +Using the `Proposal.Timestamp` to check `timely` allows for the `MSGDELAY` parameter to be more finely tuned since `Proposal` messages do not change sizes and are therefore faster to gossip than full blocks across the network. + +A validator will also check that the proposed timestamp is greater than the timestamp of the block for the previous height. +If the timestamp is not greater than the previous block's timestamp, the block will not be considered valid, which is the same as the current logic. + +#### Timestamp validation when a block has received a polka + +When a block is re-proposed that has already received a +2/3 majority of `Prevote`s on the network, the `Proposal` message for the re-proposed block is created with a `POLRound` that is `>= 0`. +A validator will not check that the `Proposal` is `timely` if the propose message has a non-negative `POLRound`. +If the `POLRound` is non-negative, each validator will simply ensure that it received the `Prevote` messages for the proposed block in the round indicated by `POLRound`. + +If the validator does not receive `Prevote` messages for the proposed block before the proposal timeout, then it will prevote nil. +Validators already check that +2/3 prevotes were seen in `POLRound`, so this does not represent a change to the prevote logic. + +A validator will also check that the proposed timestamp is greater than the timestamp of the block for the previous height. +If the timestamp is not greater than the previous block's timestamp, the block will not be considered valid, which is the same as the current logic. + +Additionally, this validation logic can be updated to check that the `Proposal.Timestamp` matches the `Header.Timestamp` of the proposed block, but it is less relevant since checking that votes were received is sufficient to ensure the block timestamp is correct. + +#### Relaxation of the 'Timely' check + +The `Synchrony` parameters, `MessageDelay` and `Precision` provide a means to bound the timestamp of a proposed block. +Selecting values that are too small presents a possible liveness issue for the network. +If a Tendermint network selects a `MessageDelay` parameter that does not accurately reflect the time to broadcast a proposal message to all of the validators on the network, nodes will begin rejecting proposals from otherwise correct proposers because these proposals will appear to be too far in the past. + +`MessageDelay` and `Precision` are planned to be configured as `ConsensusParams`. +A very common way to update `ConsensusParams` is by executing a transaction included in a block that specifies new values for them. +However, if the network is unable to produce blocks because of this liveness issue, no such transaction may be executed. +To prevent this dangerous condition, we will add a relaxation mechanism to the `Timely` predicate. +If consensus takes more than 10 rounds to produce a block for any reason, the `MessageDelay` will be doubled. +This doubling will continue for each subsequent 10 rounds of consensus. +This will enable chains that selected too small of a value for the `MessageDelay` parameter to eventually issue a transaction and readjust the parameters to more accurately reflect the broadcast time. + +This liveness issue is not as problematic for chains with very small `Precision` values. +Operators can more easily readjust local validator clocks to be more aligned. +Additionally, chains that wish to increase a small `Precision` value can still take advantage of the `MessageDelay` relaxation, waiting for the `MessageDelay` value to grow significantly and issuing proposals with timestamps that are far in the past of their peers. + +For more discussion of this, see [issue 371](https://github.com/tendermint/spec/issues/371). + +### Changes to the prevote step + +Currently, a validator will prevote a proposal in one of three cases: + +* Case 1: Validator has no locked block and receives a valid proposal. +* Case 2: Validator has a locked block and receives a valid proposal matching its locked block. +* Case 3: Validator has a locked block, sees a valid proposal not matching its locked block but sees +2/3 prevotes for the proposal’s block, either in the current round or in a round greater than or equal to the round in which it locked its locked block. + +The only change we will make to the prevote step is to what a validator considers a valid proposal as detailed above. + +### Changes to the precommit step + +The precommit step will not require much modification. +Its proposal validation rules will change in the same ways that validation will change in the prevote step with the exception of the `timely` check: precommit validation will never check that the timestamp is `timely`. + +### Remove voteTime Completely + +[voteTime](https://github.com/tendermint/tendermint/blob/822893615564cb20b002dd5cf3b42b8d364cb7d9/internal/consensus/state.go#L2229) is a mechanism for calculating the next `BFTTime` given both the validator's current known Unix time and the previous block timestamp. +If the previous block timestamp is greater than the validator's current known Unix time, then voteTime returns a value one millisecond greater than the previous block timestamp. +This logic is used in multiple places and is no longer needed for proposer-based timestamps. +It should therefore be removed completely. + +## Future Improvements + +* Implement BLS signature aggregation. +By removing fields from the `Precommit` messages, we are able to aggregate signatures. + +## Consequences + +### Positive + +* `<2/3` of validators can no longer influence block timestamps. +* Block timestamp will have stronger correspondence to real time. +* Improves the reliability of light client block verification. +* Enables BLS signature aggregation. +* Enables evidence handling to use time instead of height for evidence validity. + +### Neutral + +* Alters Tendermint’s liveness properties. +Liveness now requires that all correct validators have synchronized clocks within a bound. +Liveness will now also require that validators’ clocks move forward, which was not required under `BFTTime`. + +### Negative + +* May increase the length of the propose step if there is a large skew between the previous proposer and the current proposer’s local Unix time. +This skew will be bound by the `PRECISION` value, so it is unlikely to be too large. + +* Current chains with block timestamps far in the future will either need to pause consensus until after the erroneous block timestamp or must maintain synchronized but very inaccurate clocks. + +## References + +* [PBTS Spec](https://github.com/tendermint/tendermint/tree/master/spec/consensus/proposer-based-timestamp) +* [BFTTime spec](https://github.com/tendermint/spec/blob/master/spec/consensus/bft-time.md) +* [Issue 371](https://github.com/tendermint/spec/issues/371) diff --git a/sei-tendermint/docs/architecture/adr-072-request-for-comments.md b/sei-tendermint/docs/architecture/adr-072-request-for-comments.md new file mode 100644 index 0000000000..7b656d05e0 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-072-request-for-comments.md @@ -0,0 +1,105 @@ +# ADR 72: Restore Requests for Comments + +## Changelog + +- 20-Aug-2021: Initial draft (@creachadair) + +## Status + +Implemented + +## Context + +In the past, we kept a collection of Request for Comments (RFC) documents in `docs/rfc`. +Prior to the creation of the ADR process, these documents were used to document +design and implementation decisions about Tendermint Core. The RFC directory +was removed in favor of ADRs, in commit 3761aa69 (PR +[\#6345](https://github.com/tendermint/tendermint/pull/6345)). + +For issues where an explicit design decision or implementation change is +required, an ADR is generally preferable to an open-ended RFC: An ADR is +relatively narrowly-focused, identifies a specific design or implementation +question, and documents the consensus answer to that question. + +Some discussions are more open-ended, however, or don't require a specific +decision to be made (yet). Such conversations are still valuable to document, +and several members of the Tendermint team have been doing so by writing gists +or Google docs to share them around. That works well enough in the moment, but +gists do not support any kind of collaborative editing, and both gists and docs +are hard to discover after the fact. Google docs have much better collaborative +editing, but are worse for discoverability, especially when contributors span +different Google accounts. + +Discoverability is important, because these kinds of open-ended discussions are +useful to people who come later -- either as new team members or as outside +contributors seeking to use and understand the thoughts behind our designs and +the architectural decisions that arose from those discussion. + +With these in mind, I propose that: + +- We re-create a new, initially empty `docs/rfc` directory in the repository, + and use it to capture these kinds of open-ended discussions in supplement to + ADRs. + +- Unlike in the previous RFC scheme, documents in this new directory will + _not_ be used directly for decision-making. This is the key difference + between an RFC and an ADR. + + Instead, an RFC will exist to document background, articulate general + principles, and serve as a historical record of discussion and motivation. + + In this system, an RFC may _only_ result in a decision indirectly, via ADR + documents created in response to the RFC. + + **In short:** If a decision is required, write an ADR; otherwise if a + sufficiently broad discussion is needed, write an RFC. + +Just so that there is a consistent format, I also propose that: + +- RFC files are named `rfc-XXX-title.{md,rst,txt}` and are written in plain + text, Markdown, or ReStructured Text. + +- Like an ADR, an RFC should include a high-level change log at the top of the + document, and sections for: + + * Abstract: A brief, high-level synopsis of the topic. + * Background: Any background necessary to understand the topic. + * Discussion: Detailed discussion of the issue being considered. + +- Unlike an ADR, an RFC does _not_ include sections for Decisions, Detailed + Design, or evaluation of proposed solutions. If an RFC leads to a proposal + for an actual architectural change, that must be recorded in an ADR in the + usual way, and may refer back to the RFC in its References section. + +## Alternative Approaches + +Leaving aside implementation details, the main alternative to this proposal is +to leave things as they are now, with ADRs as the only log of record and other +discussions being held informally in whatever medium is convenient at the time. + +## Decision + +(pending) + +## Detailed Design + +- Create a new `docs/rfc` directory in the `tendermint` repository. Note that + this proposal intentionally does _not_ pull back the previous contents of + that path from Git history, as those documents were appropriately merged into + the ADR process. + +- Create a `README.md` for RFCs that explains the rules and their relationship + to ADRs. + +- Create an `rfc-template.md` file for RFC files. + +## Consequences + +### Positive + +- We will have a more discoverable place to record open-ended discussions that + do not immediately result in a design change. + +### Negative + +- Potentially some people could be confused about the RFC/ADR distinction. diff --git a/sei-tendermint/docs/architecture/adr-073-libp2p.md b/sei-tendermint/docs/architecture/adr-073-libp2p.md new file mode 100644 index 0000000000..080fecbcdf --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-073-libp2p.md @@ -0,0 +1,235 @@ +# ADR 073: Adopt LibP2P + +## Changelog + +- 2021-11-02: Initial Draft (@tychoish) + +## Status + +Proposed. + +## Context + + +As part of the 0.35 development cycle, the Tendermint team completed +the first phase of the work described in ADRs 61 and 62, which included a +large scale refactoring of the reactors and the p2p message +routing. This replaced the switch and many of the other legacy +components without breaking protocol or network-level +interoperability and left the legacy connection/socket handling code. + +Following the release, the team has reexamined the state of the code +and the design, as well as Tendermint's requirements. The notes +from that process are available in the [P2P Roadmap +RFC][rfc]. + +This ADR supersedes the decisions made in ADRs 60 and 61, but +builds on the completed portions of this work. Previously, the +boundaries of peer management, message handling, and the higher level +business logic (e.g., "the reactors") were intermingled, and core +elements of the p2p system were responsible for the orchestration of +higher-level business logic. Refactoring the legacy components +made it more obvious that this entanglement of responsibilities +had outsized influence on the entire implementation, making +it difficult to iterate within the current abstractions. +It would not be viable to maintain interoperability with legacy +systems while also achieving many of our broader objectives. + +LibP2P is a thoroughly-specified implementation of a peer-to-peer +networking stack, designed specifically for systems such as +ours. Adopting LibP2P as the basis of Tendermint will allow the +Tendermint team to focus more of their time on other differentiating +aspects of the system, and make it possible for the ecosystem as a +whole to take advantage of tooling and efforts of the LibP2P +platform. + +## Alternative Approaches + +As discussed in the [P2P Roadmap RFC][rfc], the primary alternative would be to +continue development of Tendermint's home-grown peer-to-peer +layer. While that would give the Tendermint team maximal control +over the peer system, the current design is unexceptional on its +own merits, and the prospective maintenance burden for this system +exceeds our tolerances for the medium term. + +Tendermint can and should differentiate itself not on the basis of +its networking implementation or peer management tools, but providing +a consistent operator experience, a battle-tested consensus algorithm, +and an ergonomic user experience. + +## Decision + +Tendermint will adopt libp2p during the 0.37 development cycle, +replacing the bespoke Tendermint P2P stack. This will remove the +`Endpoint`, `Transport`, `Connection`, and `PeerManager` abstractions +and leave the reactors, `p2p.Router` and `p2p.Channel` +abstractions. + +LibP2P may obviate the need for a dedicated peer exchange (PEX) +reactor, which would also in turn obviate the need for a dedicated +seed mode. If this is the case, then all of this functionality would +be removed. + +If it turns out (based on the advice of Protocol Labs) that it makes +sense to maintain separate pubsub or gossipsub topics +per-message-type, then the `Router` abstraction could also +be entirely subsumed. + +## Detailed Design + +### Implementation Changes + +The seams in the P2P implementation between the higher level +constructs (reactors), the routing layer (`Router`) and the lower +level connection and peer management code make this operation +relatively straightforward to implement. A key +goal in this design is to minimize the impact on the reactors +(potentially entirely,) and completely remove the lower level +components (e.g., `Transport`, `Connection` and `PeerManager`) using the +separation afforded by the `Router` layer. The current state of the +code makes these changes relatively surgical, and limited to a small +number of methods: + +- `p2p.Router.OpenChannel` will still return a `Channel` structure + which will continue to serve as a pipe between the reactors and the + `Router`. The implementation will no longer need the queue + implementation, and will instead start goroutines that + are responsible for routing the messages from the channel to libp2p + fundamentals, replacing the current `p2p.Router.routeChannel`. + +- The current `p2p.Router.dialPeers` and `p2p.Router.acceptPeers`, + are responsible for establishing outbound and inbound connections, + respectively. These methods will be removed, along with + `p2p.Router.openConnection`, and the libp2p connection manager will + be responsible for maintaining network connectivity. + +- The `p2p.Channel` interface will change to replace Go + channels with a more functional interface for sending messages. + New methods on this object will take contexts to support safe + cancellation, and return errors, and will block rather than + running asynchronously. The `Out` channel through which + reactors send messages to Peers, will be replaced by a `Send` + method, and the Error channel will be replaced by an `Error` + method. + +- Reactors will be passed an interface that will allow them to + access Peer information from libp2p. This will supplant the + `p2p.PeerUpdates` subscription. + +- Add some kind of heartbeat message at the application level + (e.g. with a reactor,) potentially connected to libp2p's DHT to be + used by reactors for service discovery, message targeting, or other + features. + +- Replace the existing/legacy handshake protocol with [Noise](http://www.noiseprotocol.org/noise.html). + +This project will initially use the TCP-based transport protocols within +libp2p. QUIC is also available as an option that we may implement later. +We will not support mixed networks in the initial release, but will +revisit that possibility later if there is a demonstrated need. + +### Upgrade and Compatibility + +Because the routers and all current P2P libraries are `internal` +packages and not part of the public API, the only changes to the public +API surface area of Tendermint will be different configuration +file options, replacing the current P2P options with options relevant +to libp2p. + +However, it will not be possible to run a network with both networking +stacks active at once, so the upgrade to the version of Tendermint +will need to be coordinated between all nodes of the network. This is +consistent with the expectations around upgrades for Tendermint moving +forward, and will help manage both the complexity of the project and +the implementation timeline. + +## Open Questions + +- What is the role of Protocol Labs in the implementation of libp2p in + tendermint, both during the initial implementation and on an ongoing + basis thereafter? + +- Should all P2P traffic for a given node be pushed to a single topic, + so that a topic maps to a specific ChainID, or should + each reactor (or type of message) have its own topic? How many + topics can a libp2p network support? Is there testing that validates + the capabilities? + +- Tendermint presently provides a very coarse QoS-like functionality + using priorities based on message-type. + This intuitively/theoretically ensures that evidence and consensus + messages don't get starved by blocksync/statesync messages. It's + unclear if we can or should attempt to replicate this with libp2p. + +- What kind of QoS functionality does libp2p provide and what kind of + metrics does libp2p provide about it's QoS functionality? + +- Is it possible to store additional (and potentially arbitrary) + information into the DHT as part of the heartbeats between nodes, + such as the latest height, and then access that in the + reactors. How frequently can the DHT be updated? + +- Does it make sense to have reactors continue to consume inbound + messages from a Channel (`In`) or is there another interface or + pattern that we should consider? + + - We should avoid exposing Go channels when possible, and likely + some kind of alternate iterator likely makes sense for processing + messages within the reactors. + +- What are the security and protocol implications of tracking + information from peer heartbeats and exposing that to reactors? + +- How much (or how little) configuration can Tendermint provide for + libp2p, particularly on the first release? + + - In general, we should not support byo-functionality for libp2p + components within Tendermint, and reduce the configuration surface + area, as much as possible. + +- What are the best ways to provide request/response semantics for + reactors on top of libp2p? Will it be possible to add + request/response semantics in a future release or is there + anticipatory work that needs to be done as part of the initial + release? + +## Consequences + +### Positive + +- Reduce the maintenance burden for the Tendermint Core team by + removing a large swath of legacy code that has proven to be + difficult to modify safely. + +- Remove the responsibility for maintaining and developing the entire + peer management system (p2p) and stack. + +- Provide users with a more stable peer and networking system, + Tendermint can improve operator experience and network stability. + +### Negative + +- By deferring to library implementations for peer management and + networking, Tendermint loses some flexibility for innovating at the + peer and networking level. However, Tendermint should be innovating + primarily at the consensus layer, and libp2p does not preclude + optimization or development in the peer layer. + +- Libp2p is a large dependency and Tendermint would become dependent + upon Protocol Labs' release cycle and prioritization for bug + fixes. If this proves onerous, it's possible to maintain a vendor + fork of relevant components as needed. + +### Neutral + +- N/A + +## References + +- [ADR 61: P2P Refactor Scope][adr61] +- [ADR 62: P2P Architecture][adr62] +- [P2P Roadmap RFC][rfc] + +[adr61]: ./adr-061-p2p-refactor-scope.md +[adr62]: ./adr-062-p2p-architecture.md +[rfc]: ../rfc/rfc-000-p2p-roadmap.rst diff --git a/sei-tendermint/docs/architecture/adr-074-timeout-params.md b/sei-tendermint/docs/architecture/adr-074-timeout-params.md new file mode 100644 index 0000000000..22fd784bd9 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-074-timeout-params.md @@ -0,0 +1,203 @@ +# ADR 74: Migrate Timeout Parameters to Consensus Parameters + +## Changelog + +- 03-Jan-2022: Initial draft (@williambanfield) +- 13-Jan-2022: Updated to indicate work on upgrade path needed (@williambanfield) + +## Status + +Proposed + +## Context + +### Background + +Tendermint's consensus timeout parameters are currently configured locally by each validator +in the validator's [config.toml][config-toml]. +This means that the validators on a Tendermint network may have different timeouts +from each other. There is no reason for validators on the same network to configure +different timeout values. Proper functioning of the Tendermint consensus algorithm +relies on these parameters being uniform across validators. + +The configurable values are as follows: + +* `TimeoutPropose` + * How long the consensus algorithm waits for a proposal block before issuing a prevote. + * If no prevote arrives by `TimeoutPropose`, then the consensus algorithm will issue a nil prevote. +* `TimeoutProposeDelta` + * How much the `TimeoutPropose` grows each round. +* `TimeoutPrevote` + * How long the consensus algorithm waits after receiving +2/3 prevotes with + no quorum for a value before issuing a precommit for nil. + (See the [arXiv paper][arxiv-paper], Algorithm 1, Line 34) +* `TimeoutPrevoteDelta` + * How much the `TimeoutPrevote` increases with each round. +* `TimeoutPrecommit` + * How long the consensus algorithm waits after receiving +2/3 precommits that + do not have a quorum for a value before entering the next round. + (See the [arXiv paper][arxiv-paper], Algorithm 1, Line 47) +* `TimeoutPrecommitDelta` + * How much the `TimeoutPrecommit` increases with each round. +* `TimeoutCommit` + * How long the consensus algorithm waits after committing a block but before starting the new height. + * This gives a validator a chance to receive slow precommits. +* `SkipTimeoutCommit` + * Make progress as soon as the node has 100% of the precommits. + + +### Overview of Change + +We will consolidate the timeout parameters and migrate them from the node-local +`config.toml` file into the network-global consensus parameters. + +The 8 timeout parameters will be consolidated down to 6. These will be as follows: + +* `TimeoutPropose` + * Same as current `TimeoutPropose`. +* `TimeoutProposeDelta` + * Same as current `TimeoutProposeDelta`. +* `TimeoutVote` + * How long validators wait for votes in both the prevote + and precommit phase of the consensus algorithm. This parameter subsumes + the current `TimeoutPrevote` and `TimeoutPrecommit` parameters. +* `TimeoutVoteDelta` + * How much the `TimeoutVote` will grow each successive round. + This parameter subsumes the current `TimeoutPrevoteDelta` and `TimeoutPrecommitDelta` + parameters. +* `TimeoutCommit` + * Same as current `TimeoutCommit`. +* `BypassCommitTimeout` + * Same as current `SkipTimeoutCommit`, renamed for clarity. + +A safe default will be provided by Tendermint for each of these parameters and +networks will be able to update the parameters as they see fit. Local updates +to these parameters will no longer be possible; instead, the application will control +updating the parameters. Applications using the Cosmos SDK will be automatically be +able to change the values of these consensus parameters [via a governance proposal][cosmos-sdk-consensus-params]. + +This change is low-risk. While parameters are locally configurable, many running chains +do not change them from their default values. For example, initializing +a node on Osmosis, Terra, and the Cosmos Hub using the their `init` command produces +a `config.toml` with Tendermint's default values for these parameters. + +### Why this parameter consolidation? + +Reducing the number of parameters is good for UX. Fewer superfluous parameters makes +running and operating a Tendermint network less confusing. + +The Prevote and Precommit messages are both similar sizes, require similar amounts +of processing so there is no strong need for them to be configured separately. + +The `TimeoutPropose` parameter governs how long Tendermint will wait for the proposed +block to be gossiped. Blocks are much larger than votes and therefore tend to be +gossiped much more slowly. It therefore makes sense to keep `TimeoutPropose` and +the `TimeoutProposeDelta` as parameters separate from the vote timeouts. + +`TimeoutCommit` is used by chains to ensure that the network waits for the votes from +slower validators before proceeding to the next height. Without this timeout, the votes +from slower validators would consistently not be included in blocks and those validators +would not be counted as 'up' from the chain's perspective. Being down damages a validator's +reputation and causes potential stakers to think twice before delegating to that validator. + +`TimeoutCommit` also prevents the network from producing the next height as soon as validators +on the fastest hardware with a summed voting power of +2/3 of the network's total have +completed execution of the block. Allowing the network to proceed as soon as the fastest ++2/3 completed execution would have a cumulative effect over heights, eventually +leaving slower validators unable to participate in consensus at all. `TimeoutCommit` +therefore allows networks to have greater variability in hardware. Additional +discussion of this can be found in [tendermint issue 5911][tendermint-issue-5911-comment] +and [spec issue 359][spec-issue-359]. + +## Alternative Approaches + +### Hardcode the parameters + +Many Tendermint networks run on similar cloud-hosted infrastructure. Therefore, +they have similar bandwidth and machine resources. The timings for propagating votes +and blocks are likely to be reasonably similar across networks. As a result, the +timeout parameters are good candidates for being hardcoded. Hardcoding the timeouts +in Tendermint would mean entirely removing these parameters from any configuration +that could be altered by either an application or a node operator. Instead, +Tendermint would ship with a set of timeouts and all applications using Tendermint +would use this exact same set of values. + +While Tendermint nodes often run with similar bandwidth and on similar cloud-hosted +machines, there are enough points of variability to make configuring +consensus timeouts meaningful. Namely, Tendermint network topologies are likely to be +very different from chain to chain. Additionally, applications may vary greatly in +how long the `Commit` phase may take. Applications that perform more work during `Commit` +require a longer `TimeoutCommit` to allow the application to complete its work +and be prepared for the next height. + +## Decision + +The decision has been made to implement this work, with the caveat that the +specific mechanism for introducing the new parameters to chains is still ongoing. + +## Detailed Design + +### New Consensus Parameters + +A new `TimeoutParams` `message` will be added to the [params.proto file][consensus-params-proto]. +This message will have the following form: + +```proto +message TimeoutParams { + google.protobuf.Duration propose = 1; + google.protobuf.Duration propose_delta = 2; + google.protobuf.Duration vote = 3; + google.protobuf.Duration vote_delta = 4; + google.protobuf.Duration commit = 5; + bool bypass_commit_timeout = 6; +} +``` + +This new message will be added as a field into the [`ConsensusParams` +message][consensus-params-proto]. The same default values that are [currently +set for these parameters][current-timeout-defaults] in the local configuration +file will be used as the defaults for these new consensus parameters in the +[consensus parameter defaults][default-consensus-params]. + +The new consensus parameters will be subject to the same +[validity rules][time-param-validation] as the current configuration values, +namely, each value must be non-negative. + +### Migration + +The new `ConsensusParameters` will be added during an upcoming release. In this +release, the old `config.toml` parameters will cease to control the timeouts and +an error will be logged on nodes that continue to specify these values. The specific +mechanism by which these parameters will added to a chain is being discussed in +[RFC-009][rfc-009] and will be decided ahead of the next release. + +The specific mechanism for adding these parameters depends on work related to +[soft upgrades][soft-upgrades], which is still ongoing. + +## Consequences + +### Positive + +* Timeout parameters will be equal across all of the validators in a Tendermint network. +* Remove superfluous timeout parameters. + +### Negative + +### Neutral + +* Timeout parameters require consensus to change. + +## References + +[conseusus-params-proto]: https://github.com/tendermint/spec/blob/a00de7199f5558cdd6245bbbcd1d8405ccfb8129/proto/tendermint/types/params.proto#L11 +[hashed-params]: https://github.com/tendermint/tendermint/blob/7cdf560173dee6773b80d1c574a06489d4c394fe/types/params.go#L49 +[default-consensus-params]: https://github.com/tendermint/tendermint/blob/7cdf560173dee6773b80d1c574a06489d4c394fe/types/params.go#L79 +[current-timeout-defaults]: https://github.com/tendermint/tendermint/blob/7cdf560173dee6773b80d1c574a06489d4c394fe/config/config.go#L955 +[config-toml]: https://github.com/tendermint/tendermint/blob/5cc980698a3402afce76b26693ab54b8f67f038b/config/toml.go#L425-L440 +[cosmos-sdk-consensus-params]: https://github.com/cosmos/cosmos-sdk/issues/6197 +[time-param-validation]: https://github.com/tendermint/tendermint/blob/7cdf560173dee6773b80d1c574a06489d4c394fe/config/config.go#L1038 +[tendermint-issue-5911-comment]: https://github.com/tendermint/tendermint/issues/5911#issuecomment-973560381 +[spec-issue-359]: https://github.com/tendermint/spec/issues/359 +[arxiv-paper]: https://arxiv.org/pdf/1807.04938.pdf +[soft-upgrades]: https://github.com/tendermint/spec/pull/222 +[rfc-009]: https://github.com/tendermint/tendermint/pull/7524 diff --git a/sei-tendermint/docs/architecture/adr-075-rpc-subscription.md b/sei-tendermint/docs/architecture/adr-075-rpc-subscription.md new file mode 100644 index 0000000000..1ca48e7123 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-075-rpc-subscription.md @@ -0,0 +1,684 @@ +# ADR 075: RPC Event Subscription Interface + +## Changelog + +- 01-Mar-2022: Update long-polling interface (@creachadair). +- 10-Feb-2022: Updates to reflect implementation. +- 26-Jan-2022: Marked accepted. +- 22-Jan-2022: Updated and expanded (@creachadair). +- 20-Nov-2021: Initial draft (@creachadair). + +--- +## Status + +Accepted + +--- +## Background & Context + +For context, see [RFC 006: Event Subscription][rfc006]. + +The [Tendermint RPC service][rpc-service] permits clients to subscribe to the +event stream generated by a consensus node. This allows clients to observe the +state of the consensus network, including details of the consensus algorithm +state machine, proposals, transaction delivery, and block completion. The +application may also attach custom key-value attributes to events to expose +application-specific details to clients. + +The event subscription API in the RPC service currently comprises three methods: + +1. `subscribe`: A request to subscribe to the events matching a specific + [query expression][query-grammar]. Events can be filtered by their key-value + attributes, including custom attributes provided by the application. + +2. `unsubscribe`: A request to cancel an existing subscription based on its + query expression. + +3. `unsubscribe_all`: A request to cancel all existing subscriptions belonging + to the client. + +There are some important technical and UX issues with the current RPC event +subscription API. The rest of this ADR outlines these problems in detail, and +proposes a new API scheme intended to address them. + +### Issue 1: Persistent connections + +To subscribe to a node's event stream, a client needs a persistent connection +to the node. Unlike the other methods of the service, for which each call is +serviced by a short-lived HTTP round trip, subscription delivers a continuous +stream of events to the client by hijacking the HTTP channel for a websocket. +The stream (and hence the HTTP request) persists until either the subscription +is explicitly cancelled, or the connection is closed. + +There are several problems with this API: + +1. **Expensive per-connection state**: The server must maintain a substantial + amount of state per subscriber client: + + - The current implementation uses a [WebSocket][ws] for each active + subscriber. The connection must be maintained even if there are no + matching events for a given client. + + The server can drop idle connections to save resources, but doing so + terminates all subscriptions on those connections and forces those clients + to re-connect, adding additional resource churn for the server. + + - In addition, the server maintains a separate buffer of undelivered events + for each client. This is to reduce the dual risks that a client will miss + events, and that a slow client could "push back" on the publisher, + impeding the progress of consensus. + + Because event traffic is quite bursty, queues can potentially take up a + lot of memory. Moreover, each subscriber may have a different filter + query, so the server winds up having to duplicate the same events among + multiple subscriber queues. Not only does this add memory pressure, but it + does so most at the worst possible time, i.e., when the server is already + under load from high event traffic. + +2. **Operational access control is difficult**: The server's websocket + interface exposes _all_ the RPC service endpoints, not only the subscription + methods. This includes methods that allow callers to inject arbitrary + transactions (`broadcast_tx_*`) and evidence (`broadcast_evidence`) into the + network, remove transactions (`remove_tx`), and request arbitrary amounts of + chain state. + + Filtering requests to the GET endpoint is straightforward: A reverse proxy + like [nginx][nginx] can easily filter methods by URL path. Filtering POST + requests takes a bit more work, but can be managed with a filter program + that speaks [FastCGI][fcgi] and parses JSON-RPC request bodies. + + Filtering the websocket interface requires a dedicated proxy implementation. + Although nginx can [reverse-proxy websockets][rp-ws], it does not support + filtering websocket traffic via FastCGI. The operator would need to either + implement a custom [nginx extension module][ng-xm] or build and run a + standalone proxy that implements websocket and filters each session. Apart + from the work, this also makes the system even more resource intensive, as + well as introducing yet another connection that could potentially time out + or stall on full buffers. + + Even for the simple case of restricting access to only event subscription, + there is no easy solution currently: Once a caller has access to the + websocket endpoint, it has complete access to the RPC service. + +### Issue 2: Inconvenient client API + +The subscription interface has some inconvenient features for the client as +well as the server. These include: + +1. **Non-standard protocol:** The RPC service is mostly [JSON-RPC 2.0][jsonrpc2], + but the subscription interface diverges from the standard. + + In a standard JSON-RPC 2.0 call, the client initiates a request to the + server with a unique ID, and the server concludes the call by sending a + reply for that ID. The `subscribe` implementation, however, sends multiple + responses to the client's request: + + - The client sends `subscribe` with some ID `x` and the desired query + + - The server responds with ID `x` and an empty confirmation response. + + - The server then (repeatedly) sends event result responses with ID `x`, one + for each item with a matching event. + + Standard JSON-RPC clients will reject the subsequent replies, as they + announce a request ID (`x`) that is already complete. This means a caller + has to implement Tendermint-specific handling for these responses. + + Moreover, the result format is different between the initial confirmation + and the subsequent responses. This means a caller has to implement special + logic for decoding the first response versus the subsequent ones. + +2. **No way to detect data loss:** The subscriber connection can be terminated + for many reasons. Even ignoring ordinary network issues (e.g., packet loss): + + - The server will drop messages and/or close the websocket if its write + buffer fills, or if the queue of undelivered matching events is not + drained fast enough. The client has no way to discover that messages were + dropped even if the connection remains open. + + - Either the client or the server may close the websocket if the websocket + PING and PONG exchanges are not handled correctly, or frequently enough. + Even if correctly implemented, this may fail if the system is under high + load and cannot service those control messages in a timely manner. + + When the connection is terminated, the server drops all the subscriptions + for that client (as if it had called `unsubscribe_all`). Even if the client + reconnects, any events that were published during the period between the + disconnect and re-connect and re-subscription will be silently lost, and the + client has no way to discover that it missed some relevant messages. + +3. **No way to replay old events:** Even if a client knew it had missed some + events (due to a disconnection, for example), the API provides no way for + the client to "play back" events it may have missed. + +4. **Large response sizes:** Some event data can be quite large, and there can + be substantial duplication across items. The API allows the client to select + _which_ events are reported, but has no way to control which parts of a + matching event it wishes to receive. + + This can be costly on the server (which has to marshal those data into + JSON), the network, and the client (which has to unmarshal the result and + then pick through for the components that are relevant to it). + + Besides being inefficient, this also contributes to some of the persistent + connection issues mentioned above, e.g., filling up the websocket write + buffer and forcing the server to queue potentially several copies of a large + value in memory. + +5. **Client identity is tied to network address:** The Tendermint event API + identifies each subscriber by a (Client ID, Query) pair. In the RPC service, + the query is provided by the client, but the client ID is set to the TCP + address of the client (typically "host:port" or "ip:port"). + + This means that even if the server did _not_ drop subscriptions immediately + when the websocket connection is closed, a client may not be able to + reattach to its existing subscription. Dialing a new connection is likely + to result in a different port (and, depending on their own proxy setup, + possibly a different public IP). + + In isolation, this problem would be easy to work around with a new + subscription parameter, but it would require several other changes to the + handling of event subscriptions for that workaround to become useful. + +--- +## Decision + +To address the described problems, we will: + +1. Introduce a new API for event subscription to the Tendermint RPC service. + The proposed API is described in [Detailed Design](#detailed-design) below. + +2. This new API will target the Tendermint v0.36 release, during which the + current ("streaming") API will remain available as-is, but deprecated. + +3. The streaming API will be entirely removed in release v0.37, which will + require all users of event subscription to switch to the new API. + +> **Point for discussion:** Given that ABCI++ and PBTS are the main priorities +> for v0.36, it would be fine to slip the first phase of this work to v0.37. +> Unless there is a time problem, however, the proposed design does not disrupt +> the work on ABCI++ or PBTS, and will not increase the scope of breaking +> changes. Therefore the plan is to begin in v0.36 and slip only if necessary. + +--- +## Detailed Design + +### Design Goals + +Specific goals of this design include: + +1. Remove the need for a persistent connection to each subscription client. + Subscribers should use the same HTTP request flow for event subscription + requests as for other RPC calls. + +2. The server retains minimal state (possibly none) per-subscriber. In + particular: + + - The server does not buffer unconsumed writes nor queue undelivered events + on a per-client basis. + - A client that stalls or goes idle does not cost the server any resources. + - Any event data that is buffered or stored is shared among _all_ + subscribers, and is not duplicated per client. + +3. Slow clients have no impact (or minimal impact) on the rate of progress of + the consensus algorithm, beyond the ambient overhead of servicing individual + RPC requests. + +4. Clients can tell when they have missed events matching their subscription, + within some reasonable (configurable) window of time, and can "replay" + events within that window to catch up. + +5. Nice to have: It should be easy to use the event subscription API from + existing standard tools and libraries, including command-line use for + testing and experimentation. + +### Definitions + +- The **event stream** of a node is a single, time-ordered, heterogeneous + stream of event items. + +- Each **event item** comprises an **event datum** (for example, block header + metadata for a new-block event), and zero or more optional **events**. + +- An **event** means the [ABCI `Event` data type][abci-event], which comprises + a string type and zero or more string key-value **event attributes**. + + The use of the new terms "event item" and "event datum" is to avert confusion + between the values that are published to the event bus (what we call here + "event items") and the ABCI `Event` data type. + +- The node assigns each event item a unique identifier string called a + **cursor**. A cursor must be unique among all events published by a single + node, but it is not required to be unique globally across nodes. + + Cursors are time-ordered so that given event items A and B, if A was + published before B, then cursor(A) < cursor(B) in lexicographic order. + + A minimum viable cursor implementation is a tuple consisting of a timestamp + and a sequence number (e.g., `16CCC798FB5F4670-0123`). However, it may also + be useful to append basic type information to a cursor, to allow efficient + filtering (e.g., `16CCC87E91869050-0091:BeginBlock`). + + The initial implementation will use the minimum viable format. + +### Discussion + +The node maintains an **event log**, a shared ordered record of the events +published to its event bus within an operator-configurable time window. The +initial implementation will store the event log in-memory, and the operator +will be given two per-node configuration settings. Note, these names are +provisional: + +- `[rpc] event-log-window-size`: A duration before the latest published event, + during which the node will retain event items published. Setting this value + to zero disables event subscription. + +- `[rpc] event-log-max-items`: A maximum number of event items that the node + will retain within the time window. If the number of items exceeds this + value, the node discardes the oldest items in the window. Setting this value + to zero means that no limit is imposed on the number of items. + +The node will retain all events within the time window, provided they do not +exceed the maximum number. These config parameters allow the operator to +loosely regulate how much memory and storage the node allocates to the event +log. The client can use the server reply to tell whether the events it wants +are still available from the event log. + +The event log is shared among all subscribers to the node. + +> **Discussion point:** Should events persist across node restarts? +> +> The current event API does not persist events across restarts, so this new +> design does not either. Note, however, that we may "spill" older event data +> to disk as a way of controlling memory use. Such usage is ephemeral, however, +> and does not need to be tracked as node data (e.g., it could be temp files). + +### Query API + +To retrieve event data, the client will call the (new) RPC method `events`. +The parameters of this method will correspond to the following Go types: + +```go +type EventParams struct { + // Optional filter spec. If nil or empty, all items are eligible. + Filter *Filter `json:"filter"` + + // The maximum number of eligible results to return. + // If zero or negative, the server will report a default number. + MaxResults int `json:"max_results"` + + // Return only items after this cursor. If empty, the limit is just + // before the the beginning of the event log. + After string `json:"after"` + + // Return only items before this cursor. If empty, the limit is just + // after the head of the event log. + Before string `json:"before"` + + // Wait for up to this long for events to be available. + WaitTime time.Duration `json:"wait_time"` +} + +type Filter struct { + Query string `json:"query"` +} +``` + +> **Discussion point:** The initial implementation will not cache filter +> queries for the client. If this turns out to be a performance issue in +> production, the service can keep a small shared cache of compiled queries. +> Given the improvements from #7319 et seq., this should not be necessary. + +> **Discussion point:** For the initial implementation, the new API will use +> the existing query language as-is. Future work may extend the Filter message +> with a more structured and/or expressive query surface, but that is beyond +> the scope of this design. + +The semantics of the request are as follows: An item in the event log is +**eligible** for a query if: + +- It is newer than the `after` cursor (if set). +- It is older than the `before` cursor (if set). +- It matches the filter (if set). + +Among the eligible items in the log, the server returns up to `max_results` of +the newest items, in reverse order of cursor. If `max_results` is unset the +server chooses a number to return, and will cap `max_results` at a sensible +limit. + +The `wait_time` parameter is used to effect polling. If `before` is empty and +no items are available, the server will wait for up to `wait_time` for matching +items to arrive at the head of the log. If `wait_time` is zero or negative, the +server will wait for a default (positive) interval. + +If `before` non-empty, `wait_time` is ignored: new results are only added to +the head of the log, so there is no need to wait. This allows the client to +poll for new data, and "page" backward through matching event items. This is +discussed in more detail below. + +The server will set a sensible cap on the maximum `wait_time`, overriding +client-requested intervals longer than that. + +A successful reply from the `events` request corresponds to the following Go +types: + +```go +type EventReply struct { + // The items matching the request parameters, from newest + // to oldest, if any were available within the timeout. + Items []*EventItem `json:"items"` + + // This is true if there is at least one older matching item + // available in the log that was not returned. + More bool `json:"more"` + + // The cursor of the oldest item in the log at the time of this reply, + // or "" if the log is empty. + Oldest string `json:"oldest"` + + // The cursor of the newest item in the log at the time of this reply, + // or "" if the log is empty. + Newest string `json:"newest"` +} + +type EventItem struct { + // The cursor of this item. + Cursor string `json:"cursor"` + + // The encoded event data for this item. + // The type identifies the structure of the value. + Data struct { + Type string `json:"type"` + Value json.RawMessage `json:"value"` + } `json:"data"` +} +``` + +The `oldest` and `newest` fields of the reply report the cursors of the oldest +and newest items (of any kind) recorded in the event log at the time of the +reply, or are `""` if the log is empty. + +The `data` field contains the type-specific event datum. The datum carries any +ABCI events that may have been defined. + +> **Discussion point**: Based on [issue #7273][i7273], I did not include a +> separate field in the response for the ABCI events, since it duplicates data +> already stored elsewhere in the event data. + +The semantics of the reply are as follows: + +- If `items` is non-empty: + + - Items are ordered from newest to oldest. + + - If `more` is true, there is at least one additional, older item in the + event log that was not returned (in excess of `max_results`). + + In this case the client can fetch the next page by setting `before` in a + new request, to the cursor of the oldest item fetched (i.e., the last one + in `items`). + + - Otherwise (if `more` is false), all the matching results have been + reported (pagination is complete). + + - The first element of `items` identifies the newest item considered. + Subsequent poll requests can set `after` to this cursor to skip items + that were already retrieved. + +- If `items` is empty: + + - If the `before` was set in the request, there are no further eligible + items for this query in the log (pagination is complete). + + This is just a safety case; the client can detect this without issuing + another call by consulting the `more` field of the previous reply. + + - If the `before` was empty in the request, no eligible items were + available before the `wait_time` expired. The client may poll again to + wait for more event items. + +A client can store cursor values to detect data loss and to recover from +crashes and connectivity issues: + +- After a crash, the client requests events after the newest cursor it has + seen. If the reply indicates that cursor is no longer in range, the client + may (conservatively) conclude some event data may have been lost. + +- On the other hand, if it _is_ in range, the client can then page back through + the results that it missed, and then resume polling. As long as its recovery + cursor does not age out before it finishes, the client can be sure it has all + the relevant results. + +### Other Notes + +- The new API supports two general "modes" of operation: + + 1. In ordinary operation, clients will **long-poll** the head of the event + log for new events matching their criteria (by setting a `wait_time` and + no `before`). + + 2. If there are more events than the client requested, or if the client needs + to to read older events to recover from a stall or crash, clients will + **page** backward through the event log (by setting `before` and `after`). + +- While the new API requires explicit polling by the client, it makes better + use of the node's existing HTTP infrastructure (e.g., connection pools). + Moreover, the direct implementation is easier to use from standard tools and + client libraries for HTTP and JSON-RPC. + + Explicit polling does shift the burden of timeliness to the client. That is + arguably preferable, however, given that the RPC service is ancillary to the + node's primary goal, viz., consensus. The details of polling can be easily + hidden from client applications with simple libraries. + +- The format of a cursor is considered opaque to the client. Clients must not + parse cursor values, but they may rely on their ordering properties. + +- To maintain the event log, the server must prune items outside the time + window and in excess of the item limit. + + The initial implementation will do this by checking the tail of the event log + after each new item is published. If the number of items in the log exceeds + the item limit, it will delete oldest items until the log is under the limit; + then discard any older than the time window before the latest. + + To minimize coordination interference between the publisher (the event bus) + and the subcribers (the `events` service handlers), the event log will be + stored as a persistent linear queue with shared structure (a cons list). A + single reader-writer mutex will guard the "head" of the queue where new + items are published: + + - **To publish a new item**, the publisher acquires the write lock, conses a + new item to the front of the existing queue, and replaces the head pointer + with the new item. + + - **To scan the queue**, a reader acquires the read lock, captures the head + pointer, and then releases the lock. The rest of its request can be served + without holding a lock, since the queue structure will not change. + + When a reader wants to wait, it will yield the lock and wait on a condition + that is signaled when the publisher swings the pointer. + + - **To prune the queue**, the publisher (who is the sole writer) will track + the queue length and the age of the oldest item separately. When the + length and or age exceed the configured bounds, it will construct a new + queue spine on the same items, discarding out-of-band values. + + Pruning can be done while the publisher already holds the write lock, or + could be done outside the lock entirely: Once the new queue is constructed, + the lock can be re-acquired to swing the pointer. This costs some extra + allocations for the cons cells, but avoids duplicating any event items. + The pruning step is a simple linear scan down the first (up to) max-items + elements of the queue, to find the breakpoint of age and length. + + Moreover, the publisher can amortize the cost of pruning by item count, if + necessary, by pruning length "more aggressively" than the configuration + requires (e.g., reducing to 3/4 of the maximum rather than 1/1). + + The state of the event log before the publisher acquires the lock: + ![Before publish and pruning](./img/adr-075-log-before.png) + + After the publisher has added a new item and pruned old ones: + ![After publish and pruning](./img/adr-075-log-after.png) + +### Migration Plan + +This design requires that clients eventually migrate to the new event +subscription API, but provides a full release cycle with both APIs in place to +make this burden more tractable. The migration strategy is broadly: + +**Phase 1**: Release v0.36. + +- Implement the new `events` endpoint, keeping the existing methods as they are. +- Update the Go clients to support the new `events` endpoint, and handle polling. +- Update the old endpoints to log annoyingly about their own deprecation. +- Write tutorials about how to migrate client usage. + +At or shortly after release, we should proactively update the Cosmos SDK to use +the new API, to remove a disincentive to upgrading. + +**Phase 2**: Release v0.37 + +- During development, we should actively seek out any existing users of the + streaming event subscription API and help them migrate. +- Possibly also: Spend some time writing clients for JS, Rust, et al. +- Release: Delete the old implementation and all the websocket support code. + +> **Discussion point**: Even though the plan is to keep the existing service, +> we might take the opportunity to restrict the websocket endpoint to _only_ +> the event streaming service, removing the other endpoints. To minimize the +> disruption for users in the v0.36 cycle, I have decided not to do this for +> the first phase. +> +> If we wind up pushing this design into v0.37, however, we should re-evaulate +> this partial turn-down of the websocket. + +### Future Work + +- This design does not immediately address the problem of allowing the client + to control which data are reported back for event items. That concern is + deferred to future work. However, it would be straightforward to extend the + filter and/or the request parameters to allow more control. + +- The node currently stores a subset of event data (specifically the block and + transaction events) for use in reindexing. While these data are redundant + with the event log described in this document, they are not sufficient to + cover event subscription, as they omit other event types. + + In the future we should investigate consolidating or removing event data from + the state store entirely. For now this issue is out of scope for purposes of + updating the RPC API. We may be able to piggyback on the database unification + plans (see [RFC 001][rfc001]) to store the event log separately, so its + pruning policy does not need to be tied to the block and state stores. + +- This design reuses the existing filter query language from the old API. In + the future we may want to use a more structured and/or expressive query. The + Filter object can be extended with more fields as needed to support this. + +- Some users have trouble communicating with the RPC service because of + configuration problems like improperly-set CORS policies. While this design + does not address those issues directly, we might want to revisit how we set + policies in the RPC service to make it less susceptible to confusing errors + caused by misconfiguration. + +--- +## Consequences + +- ✅ Reduces the number of transport options for RPC. Supports [RFC 002][rfc002]. +- ️✅ Removes the primary non-standard use of JSON-RPC. +- ⛔️ Forces clients to migrate to a different API (eventually). +- ↕️ API requires clients to poll, but this reduces client state on the server. +- ↕️ We have to maintain both implementations for a whole release, but this + gives clients time to migrate. + +--- +## Alternative Approaches + +The following alternative approaches were considered: + +1. **Leave it alone.** Since existing tools mostly already work with the API as + it stands today, we could leave it alone and do our best to improve its + performance and reliability. + + Based on many issues reported by users and node operators (e.g., + [#3380][i3380], [#6439][i6439], [#6729][i6729], [#7247][i7247]), the + problems described here affect even the existing use that works. Investing + further incremental effort in the existing API is unlikely to address these + issues. + +2. **Design a better streaming API.** Instead of polling, we might try to + design a better "streaming" API for event subscription. + + A significant advantage of switching away from streaming is to remove the + need for persistent connections between the node and subscribers. A new + streaming protocol design would lose that advantage, and would still need a + way to let clients recover and replay. + + This approach might look better if we decided to use a different protocol + for event subscription, say gRPC instead of JSON-RPC. That choice, however, + would be just as breaking for existing clients, for marginal benefit. + Moreover, this option increases both the complexity and the resource cost on + the node implementation. + + Given that resource consumption and complexity are important considerations, + this option was not chosen. + +3. **Defer to an external event broker.** We might remove the entire event + subscription infrastructure from the node, and define an optional interface + to allow the node to publish all its events to an external event broker, + such as Apache Kafka. + + This has the advantage of greatly simplifying the node, but at a great cost + to the node operator: To enable event subscription in this design, the + operator has to stand up and maintain a separate process in communion with + the node, and configuration changes would have to be coordinated across + both. + + Moreover, this approach would be highly disruptive to existing client use, + and migration would probably require switching to third-party libraries. + Despite the potential benefits for the node itself, the costs to operators + and clients seems too large for this to be the best option. + + Publishing to an external event broker might be a worthwhile future project, + if there is any demand for it. That decision is out of scope for this design, + as it interacts with the design of the indexer as well. + +--- +## References + +- [RFC 006: Event Subscription][rfc006] +- [Tendermint RPC service][rpc-service] +- [Event query grammar][query-grammar] +- [RFC 6455: The WebSocket protocol][ws] +- [JSON-RPC 2.0 Specification][jsonrpc2] +- [Nginx proxy server][nginx] + - [Proxying websockets][rp-ws] + - [Extension modules][ng-xm] +- [FastCGI][fcgi] +- [RFC 001: Storage Engines & Database Layer][rfc001] +- [RFC 002: Interprocess Communication in Tendermint][rfc002] +- Issues: + - [rpc/client: test that client resubscribes upon disconnect][i3380] (#3380) + - [Too high memory usage when creating many events subscriptions][i6439] (#6439) + - [Tendermint emits events faster than clients can pull them][i6729] (#6729) + - [indexer: unbuffered event subscription slow down the consensus][i7247] (#7247) + - [rpc: remove duplication of events when querying][i7273] (#7273) + +[rfc006]: https://github.com/tendermint/tendermint/blob/master/docs/rfc/rfc-006-event-subscription.md +[rpc-service]: https://github.com/tendermint/tendermint/blob/master/rpc/openapi/openapi.yaml +[query-grammar]: https://pkg.go.dev/github.com/tendermint/tendermint@master/internal/pubsub/query/syntax +[ws]: https://datatracker.ietf.org/doc/html/rfc6455 +[jsonrpc2]: https://www.jsonrpc.org/specification +[nginx]: https://nginx.org/en/docs/ +[fcgi]: http://www.mit.edu/~yandros/doc/specs/fcgi-spec.html +[rp-ws]: https://nginx.org/en/docs/http/websocket.html + +[ng-xm]: https://www.nginx.com/resources/wiki/extending/ +[abci-event]: https://pkg.go.dev/github.com/tendermint/tendermint/abci/types#Event +[rfc001]: https://github.com/tendermint/tendermint/blob/master/docs/rfc/rfc-001-storage-engine.rst +[rfc002]: https://github.com/tendermint/tendermint/blob/master/docs/rfc/rfc-002-ipc-ecosystem.md +[i3380]: https://github.com/tendermint/tendermint/issues/3380 +[i6439]: https://github.com/tendermint/tendermint/issues/6439 +[i6729]: https://github.com/tendermint/tendermint/issues/6729 +[i7247]: https://github.com/tendermint/tendermint/issues/7247 +[i7273]: https://github.com/tendermint/tendermint/issues/7273 diff --git a/sei-tendermint/docs/architecture/adr-076-combine-spec-repo.md b/sei-tendermint/docs/architecture/adr-076-combine-spec-repo.md new file mode 100644 index 0000000000..a6365da5b8 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-076-combine-spec-repo.md @@ -0,0 +1,112 @@ +# ADR 076: Combine Spec and Tendermint Repositories + +## Changelog + +- 2022-02-04: Initial Draft. (@tychoish) + +## Status + +Accepted. + +## Context + +While the specification for Tendermint was originally in the same +repository as the Go implementation, at some point the specification +was split from the core repository and maintained separately from the +implementation. While this makes sense in promoting a conceptual +separation of specification and implementation, in practice this +separation was a premature optimization, apparently aimed at supporting +alternate implementations of Tendermint. + +The operational and documentary burden of maintaining a separate +spec repo has not returned value to justify its cost. There are no active +projects to develop alternate implementations of Tendermint based on the +common specification, and having separate repositories creates an ongoing +burden to coordinate versions, documentation, and releases. + +## Decision + +The specification repository will be merged back into the Tendermint +core repository. + +Stakeholders including representatives from the maintainers of the +spec, the Go implementation, and the Tendermint Rust library, agreed +to merge the repositories in the Tendermint core dev meeting on 27 +January 2022, including @williambanfield @cmwaters @creachadair and +@thanethomson. + +## Alternative Approaches + +The main alternative we considered was to keep separate repositories, +and to introduce a coordinated versioning scheme between the two, so +that users could figure out which spec versions go with which versions +of the core implementation. + +We decided against this on the grounds that it would further complicate +the release process for _both_ repositories, without mitigating any of +the other existing issues. + +## Detailed Design + +Clone and merge the master branch of the `tendermint/spec` repository +as a branch of the `tendermint/tendermint`, to ensure the commit history +of both repositories remains intact. + +### Implementation Instructions + +1. Within the `tendermint` repository, execute the following commands + to add a new branch with the history of the master branch of `spec`: + + ```bash + git remote add spec git@github.com:tendermint/spec.git + git fetch spec + git checkout -b spec-master spec/master + mkdir spec + git ls-tree -z --name-only HEAD | xargs -0 -I {} git mv {} subdir/ + git commit -m "spec: organize specification prior to merge" + git checkout -b spec-merge-mainline origin/master + git merge --allow-unrelated-histories spec-master + ``` + + This merges the spec into the `tendermint/tendermint` repository as + a normal branch. This commit can also be backported to the 0.35 + branch, if needed. + +2. Migrate outstanding issues from `tendermint/spec` to the + `tendermint/tendermint` repository. + +3. In the specification repository, add redirect to the README and mark + the repository as archived. + + +## Consequences + +### Positive + +Easier maintenance for the specification will obviate a number of +complicated and annoying versioning problems, and will help prevent the +possibility of the specification and the implementation drifting apart. + +Additionally, co-locating the specification will help encourage +cross-pollination and collaboration, between engineers focusing on the +specification and the protocol and engineers focusing on the implementation. + +### Negative + +Co-locating the spec and Go implementation has the potential effect of +prioritizing the Go implementation with regards to the spec, and +making it difficult to think about alternate implementations of the +Tendermint algorithm. Although we may want to foster additional +Tendermint implementations in the future, this isn't an active goal +in our current roadmap, and *not* merging these repos doesn't +change the fact that the Go implementation of Tendermint is already the +primary implementation. + +### Neutral + +N/A + +## References + +- https://github.com/tendermint/spec +- https://github.com/tendermint/tendermint diff --git a/sei-tendermint/docs/architecture/adr-077-block-retention.md b/sei-tendermint/docs/architecture/adr-077-block-retention.md new file mode 100644 index 0000000000..714b4810af --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-077-block-retention.md @@ -0,0 +1,109 @@ +# ADR 077: Configurable Block Retention + +## Changelog + +- 2020-03-23: Initial draft (@erikgrinaker) +- 2020-03-25: Use local config for snapshot interval (@erikgrinaker) +- 2020-03-31: Use ABCI commit response for block retention hint +- 2020-04-02: Resolved open questions +- 2021-02-11: Migrate to tendermint repo (Originally [RFC 001](https://github.com/tendermint/spec/pull/84)) + +## Author(s) + +- Erik Grinaker (@erikgrinaker) + +## Context + +Currently, all Tendermint nodes contain the complete sequence of blocks from genesis up to some height (typically the latest chain height). This will no longer be true when the following features are released: + +- [Block pruning](https://github.com/tendermint/tendermint/issues/3652): removes historical blocks and associated data (e.g. validator sets) up to some height, keeping only the most recent blocks. + +- [State sync](https://github.com/tendermint/tendermint/issues/828): bootstraps a new node by syncing state machine snapshots at a given height, but not historical blocks and associated data. + +To maintain the integrity of the chain, the use of these features must be coordinated such that necessary historical blocks will not become unavailable or lost forever. In particular: + +- Some nodes should have complete block histories, for auditability, querying, and bootstrapping. + +- The majority of nodes should retain blocks longer than the Cosmos SDK unbonding period, for light client verification. + +- Some nodes must take and serve state sync snapshots with snapshot intervals less than the block retention periods, to allow new nodes to state sync and then replay blocks to catch up. + +- Applications may not persist their state on commit, and require block replay on restart. + +- Only a minority of nodes can be state synced within the unbonding period, for light client verification and to serve block histories for catch-up. + +However, it is unclear if and how we should enforce this. It may not be possible to technically enforce all of these without knowing the state of the entire network, but it may also be unrealistic to expect this to be enforced entirely through social coordination. This is especially unfortunate since the consequences of misconfiguration can be permanent chain-wide data loss. + +## Proposal + +Add a new field `retain_height` to the ABCI `ResponseCommit` message: + +```proto +service ABCIApplication { + rpc Commit(RequestCommit) returns (ResponseCommit); +} + +message RequestCommit {} + +message ResponseCommit { + // reserve 1 + bytes data = 2; // the Merkle root hash + uint64 retain_height = 3; // the oldest block height to retain +} +``` + +Upon ABCI `Commit`, which finalizes execution of a block in the state machine, Tendermint removes all data for heights lower than `retain_height`. This allows the state machine to control block retention, which is preferable since only it can determine the significance of historical blocks. By default (i.e. with `retain_height=0`) all historical blocks are retained. + +Removed data includes not only blocks, but also headers, commit info, consensus params, validator sets, and so on. In the first iteration this will be done synchronously, since the number of heights removed for each run is assumed to be small (often 1) in the typical case. It can be made asynchronous at a later time if this is shown to be necessary. + +Since `retain_height` is dynamic, it is possible for it to refer to a height which has already been removed. For example, commit at height 100 may return `retain_height=90` while commit at height 101 may return `retain_height=80`. This is allowed, and will be ignored - it is the application's responsibility to return appropriate values. + +State sync will eventually support backfilling heights, via e.g. a snapshot metadata field `backfill_height`, but in the initial version it will have a fully truncated block history. + +## Cosmos SDK Example + +As an example, we'll consider how the Cosmos SDK might make use of this. The specific details should be discussed in a separate SDK proposal. + +The returned `retain_height` would be the lowest height that satisfies: + +- Unbonding time: the time interval in which validators can be economically punished for misbehavior. Blocks in this interval must be auditable e.g. by the light client. + +- IAVL snapshot interval: the block interval at which the underlying IAVL database is persisted to disk, e.g. every 10000 heights. Blocks since the last IAVL snapshot must be available for replay on application restart. + +- State sync snapshots: blocks since the _oldest_ available snapshot must be available for state sync nodes to catch up (oldest because a node may be restoring an old snapshot while a new snapshot was taken). + +- Local config: archive nodes may want to retain more or all blocks, e.g. via a local config option `min-retain-blocks`. There may also be a need to vary rentention for other nodes, e.g. sentry nodes which do not need historical blocks. + +![Cosmos SDK block retention diagram](img/block-retention.png) + +## Status + +Accepted + +## Consequences + +### Positive + +- Application-specified block retention allows the application to take all relevant factors into account and prevent necessary blocks from being accidentally removed. + +- Node operators can independently decide whether they want to provide complete block histories (if local configuration for this is provided) and snapshots. + +### Negative + +- Social coordination is required to run archival nodes, failure to do so may lead to permanent loss of historical blocks. + +- Social coordination is required to run snapshot nodes, failure to do so may lead to inability to run state sync, and inability to bootstrap new nodes at all if no archival nodes are online. + +### Neutral + +- Reduced block retention requires application changes, and cannot be controlled directly in Tendermint. + +- Application-specified block retention may set a lower bound on disk space requirements for all nodes. + +## References + +- State sync ADR: + +- State sync issue: + +- Block pruning issue: diff --git a/sei-tendermint/docs/architecture/adr-078-nonzero-genesis.md b/sei-tendermint/docs/architecture/adr-078-nonzero-genesis.md new file mode 100644 index 0000000000..bd9c030f0a --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-078-nonzero-genesis.md @@ -0,0 +1,82 @@ +# ADR 078: Non-Zero Genesis + +## Changelog + +- 2020-07-26: Initial draft (@erikgrinaker) +- 2020-07-28: Use weak chain linking, i.e. `predecessor` field (@erikgrinaker) +- 2020-07-31: Drop chain linking (@erikgrinaker) +- 2020-08-03: Add `State.InitialHeight` (@erikgrinaker) +- 2021-02-11: Migrate to tendermint repo (Originally [RFC 002](https://github.com/tendermint/spec/pull/119)) + +## Author(s) + +- Erik Grinaker (@erikgrinaker) + +## Context + +The recommended upgrade path for block protocol-breaking upgrades is currently to hard fork the +chain (see e.g. [`cosmoshub-3` upgrade](https://blog.cosmos.network/cosmos-hub-3-upgrade-announcement-39c9da941aee). +This is done by halting all validators at a predetermined height, exporting the application +state via application-specific tooling, and creating an entirely new chain using the exported +application state. + +As far as Tendermint is concerned, the upgraded chain is a completely separate chain, with e.g. +a new chain ID and genesis file. Notably, the new chain starts at height 1, and has none of the +old chain's block history. This causes problems for integrators, e.g. coin exchanges and +wallets, that assume a monotonically increasing height for a given blockchain. Users also find +it confusing that a given height can now refer to distinct states depending on the chain +version. + +An ideal solution would be to always retain block backwards compatibility in such a way that chain +history is never lost on upgrades. However, this may require a significant amount of engineering +work that is not viable for the planned Stargate release (Tendermint 0.34), and may prove too +restrictive for future development. + +As a first step, allowing the new chain to start from an initial height specified in the genesis +file would at least provide monotonically increasing heights. There was a proposal to include the +last block header of the previous chain as well, but since the genesis file is not verified and +hashed (only specific fields are) this would not be trustworthy. + +External tooling will be required to map historical heights onto e.g. archive nodes that contain +blocks from previous chain version. Tendermint will not include any such functionality. + +## Proposal + +Tendermint will allow chains to start from an arbitrary initial height: + +- A new field `initial_height` is added to the genesis file, defaulting to `1`. It can be set to any +non-negative integer, and `0` is considered equivalent to `1`. + +- A new field `InitialHeight` is added to the ABCI `RequestInitChain` message, with the same value +and semantics as the genesis field. + +- A new field `InitialHeight` is added to the `state.State` struct, where `0` is considered invalid. + Including the field here simplifies implementation, since the genesis value does not have to be + propagated throughout the code base separately, but it is not strictly necessary. + +ABCI applications may have to be updated to handle arbitrary initial heights, otherwise the initial +block may fail. + +## Status + +Accepted + +## Consequences + +### Positive + +- Heights can be unique throughout the history of a "logical" chain, across hard fork upgrades. + +### Negative + +- Upgrades still cause loss of block history. + +- Integrators will have to map height ranges to specific archive nodes/networks to query history. + +### Neutral + +- There is no explicit link to the last block of the previous chain. + +## References + +- [#2543: Allow genesis file to start from non-zero height w/ prev block header](https://github.com/tendermint/tendermint/issues/2543) diff --git a/sei-tendermint/docs/architecture/adr-079-ed25519-verification.md b/sei-tendermint/docs/architecture/adr-079-ed25519-verification.md new file mode 100644 index 0000000000..c20869e6c4 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-079-ed25519-verification.md @@ -0,0 +1,57 @@ +# ADR 079: Ed25519 Verification + +## Changelog + +- 2020-08-21: Initial RFC +- 2021-02-11: Migrate RFC to tendermint repo (Originally [RFC 003](https://github.com/tendermint/spec/pull/144)) + +## Author(s) + +- Marko (@marbar3778) + +## Context + +Ed25519 keys are the only supported key types for Tendermint validators currently. Tendermint-Go wraps the ed25519 key implementation from the go standard library. As more clients are implemented to communicate with the canonical Tendermint implementation (Tendermint-Go) different implementations of ed25519 will be used. Due to [RFC 8032](https://www.rfc-editor.org/rfc/rfc8032.html) not guaranteeing implementation compatibility, Tendermint clients must to come to an agreement of how to guarantee implementation compatibility. [Zcash](https://z.cash/) has multiple implementations of their client and have identified this as a problem as well. The team at Zcash has made a proposal to address this issue, [Zcash improvement proposal 215](https://zips.z.cash/zip-0215). + +## Proposal + +- Tendermint-Go would adopt [hdevalence/ed25519consensus](https://github.com/hdevalence/ed25519consensus). + - This library is implements `ed25519.Verify()` in accordance to zip-215. Tendermint-go will continue to use `crypto/ed25519` for signing and key generation. + +- Tendermint-rs would adopt [ed25519-zebra](https://github.com/ZcashFoundation/ed25519-zebra) + - related [issue](https://github.com/informalsystems/tendermint-rs/issues/355) + +Signature verification is one of the major bottlenecks of Tendermint-go, batch verification can not be used unless it has the same consensus rules, ZIP 215 makes verification safe in consensus critical areas. + +This change constitutes a breaking changes, therefore must be done in a major release. No changes to validator keys or operations will be needed for this change to be enabled. + +This change has no impact on signature aggregation. To enable this signature aggregation Tendermint will have to use different signature schema (Schnorr, BLS, ...). Secondly, this change will enable safe batch verification for the Tendermint-Go client. Batch verification for the rust client is already supported in the library being used. + +As part of the acceptance of this proposal it would be best to contract or discuss with a third party the process of conducting a security review of the go library. + +## Status + +Proposed + +## Consequences + +### Positive + +- Consistent signature verification across implementations +- Enable safe batch verification + +### Negative + +#### Tendermint-Go + +- Third_party dependency + - library has not gone through a security review. + - unclear maintenance schedule +- Fragmentation of the ed25519 key for the go implementation, verification is done using a third party library while the rest + uses the go standard library + +### Neutral + +## References + +[It’s 255:19AM. Do you know what your validation criteria are?](https://hdevalence.ca/blog/2020-10-04-its-25519am) diff --git a/sei-tendermint/docs/architecture/adr-080-reverse-sync.md b/sei-tendermint/docs/architecture/adr-080-reverse-sync.md new file mode 100644 index 0000000000..57d747fc8d --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-080-reverse-sync.md @@ -0,0 +1,203 @@ +# ADR 080: ReverseSync - fetching historical data + +## Changelog + +- 2021-02-11: Migrate to tendermint repo (Originally [RFC 005](https://github.com/tendermint/spec/pull/224)) +- 2021-04-19: Use P2P to gossip necessary data for reverse sync. +- 2021-03-03: Simplify proposal to the state sync case. +- 2021-02-17: Add notes on asynchronicity of processes. +- 2020-12-10: Rename backfill blocks to reverse sync. +- 2020-11-25: Initial draft. + +## Author(s) + +- Callum Waters (@cmwaters) + +## Context + +Two new features: [Block pruning](https://github.com/tendermint/tendermint/issues/3652) +and [State sync](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-042-state-sync.md) +meant nodes no longer needed a complete history of the blockchain. This +introduced some challenges of its own which were covered and subsequently +tackled with [RFC-001](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-077-block-retention.md). +The RFC allowed applications to set a block retention height; an upper bound on +what blocks would be pruned. However nodes who state sync past this upper bound +(which is necessary as snapshots must be saved within the trusting period for +the assisting light client to verify) have no means of backfilling the blocks +to meet the retention limit. This could be a problem as nodes who state sync and +then eventually switch to consensus (or fast sync) may not have the block and +validator history to verify evidence causing them to panic if they see 2/3 +commit on what the node believes to be an invalid block. + +Thus, this RFC sets out to instil a minimum block history invariant amongst +honest nodes. + +## Proposal + +A backfill mechanism can simply be defined as an algorithm for fetching, +verifying and storing, headers and validator sets of a height prior to the +current base of the node's blockchain. In matching the terminology used for +other data retrieving protocols (i.e. fast sync and state sync), we +call this method **ReverseSync**. + +We will define the mechanism in four sections: + +- Usage +- Design +- Verification +- Termination + +### Usage + +For now, we focus purely on the case of a state syncing node, whom after +syncing to a height will need to verify historical data in order to be capable +of processing new blocks. We can denote the earliest height that the node will +need to verify and store in order to be able to verify any evidence that might +arise as the `max_historical_height`/`time`. Both height and time are necessary +as this maps to the BFT time used for evidence expiration. After acquiring +`State`, we calculate these parameters as: + +```go +max_historical_height = max(state.InitialHeight, state.LastBlockHeight - state.ConsensusParams.EvidenceAgeHeight) +max_historical_time = max(GenesisTime, state.LastBlockTime.Sub(state.ConsensusParams.EvidenceAgeTime)) +``` + +Before starting either fast sync or consensus, we then run the following +synchronous process: + +```go +func ReverseSync(max_historical_height int64, max_historical_time time.Time) error +``` + +Where we fetch and verify blocks until a block `A` where +`A.Height <= max_historical_height` and `A.Time <= max_historical_time`. + +Upon successfully reverse syncing, a node can now safely continue. As this +feature is only used as part of state sync, one can think of this as merely an +extension to it. + +In the future we may want to extend this functionality to allow nodes to fetch +historical blocks for reasons of accountability or data accessibility. + +### Design + +This section will provide a high level overview of some of the more important +characteristics of the design, saving the more tedious details as an ADR. + +#### P2P + +Implementation of this RFC will require the addition of a new channel and two +new messages. + +```proto +message LightBlockRequest { + uint64 height = 1; +} +``` + +```proto +message LightBlockResponse { + Header header = 1; + Commit commit = 2; + ValidatorSet validator_set = 3; +} +``` + +The P2P path may also enable P2P networked light clients and a state sync that +also doesn't need to rely on RPC. + +### Verification + +ReverseSync is used to fetch the following data structures: + +- `Header` +- `Commit` +- `ValidatorSet` + +Nodes will also need to be able to verify these. This can be achieved by first +retrieving the header at the base height from the block store. From this trusted +header, the node hashes each of the three data structures and checks that they are correct. + +1. The trusted header's last block ID matches the hash of the new header + + ```go + header[height].LastBlockID == hash(header[height-1]) + ``` + +2. The trusted header's last commit hash matches the hash of the new commit + + ```go + header[height].LastCommitHash == hash(commit[height-1]) + ``` + +3. Given that the node now trusts the new header, check that the header's validator set + hash matches the hash of the validator set + + ```go + header[height-1].ValidatorsHash == hash(validatorSet[height-1]) + ``` + +### Termination + +ReverseSync draws a lot of parallels with fast sync. An important consideration +for fast sync that also extends to ReverseSync is termination. ReverseSync will +finish it's task when one of the following conditions have been met: + +1. It reaches a block `A` where `A.Height <= max_historical_height` and +`A.Time <= max_historical_time`. +2. None of it's peers reports to have the block at the height below the +processes current block. +3. A global timeout. + +This implies that we can't guarantee adequate history and thus the term +"invariant" can't be used in the strictest sense. In the case that the first +condition isn't met, the node will log an error and optimistically attempt +to continue with either fast sync or consensus. + +## Alternative Solutions + +The need for a minimum block history invariant stems purely from the need to +validate evidence (although there may be some application relevant needs as +well). Because of this, an alternative, could be to simply trust whatever the +2/3+ majority has agreed upon and in the case where a node is at the head of the +blockchain, you simply abstain from voting. + +As it stands, if 2/3+ vote on evidence you can't verify, in the same manner if +2/3+ vote on a header that a node sees as invalid (perhaps due to a different +app hash), the node will halt. + +Another alternative is the method with which the relevant data is retrieved. +Instead of introducing new messages to the P2P layer, RPC could have been used +instead. + +The aforementioned data is already available via the following RPC endpoints: +`/commit` for `Header`'s' and `/validators` for `ValidatorSet`'s'. It was +decided predominantly due to the instability of the current RPC infrastructure +that P2P be used instead. + +## Status + +Proposed + +## Consequences + +### Positive + +- Ensures a minimum block history invariant for honest nodes. This will allow + nodes to verify evidence. + +### Negative + +- Statesync will be slower as more processing is required. + +### Neutral + +- By having validator sets served through p2p, this would make it easier to +extend p2p support to light clients and state sync. +- In the future, it may also be possible to extend this feature to allow for +nodes to freely fetch and verify prior blocks + +## References + +- [RFC-001: Block retention](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-077-block-retention.md) +- [Original issue](https://github.com/tendermint/tendermint/issues/4629) diff --git a/sei-tendermint/docs/architecture/adr-081-protobuf-mgmt.md b/sei-tendermint/docs/architecture/adr-081-protobuf-mgmt.md new file mode 100644 index 0000000000..1199cff1b4 --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-081-protobuf-mgmt.md @@ -0,0 +1,201 @@ +# ADR 081: Protocol Buffers Management + +## Changelog + +- 2022-02-28: First draft + +## Status + +Accepted + +[Tracking issue](https://github.com/tendermint/tendermint/issues/8121) + +## Context + +At present, we manage the [Protocol Buffers] schema files ("protos") that define +our wire-level data formats within the Tendermint repository itself (see the +[`proto`](../../proto/) directory). Recently, we have been making use of [Buf], +both locally and in CI, in order to generate Go stubs, and lint and check +`.proto` files for breaking changes. + +The version of Buf used at the time of this decision was `v1beta1`, and it was +discussed in [\#7975] and in weekly calls as to whether we should upgrade to +`v1` and harmonize our approach with that used by the Cosmos SDK. The team +managing the Cosmos SDK was primarily interested in having our protos versioned +and easily accessible from the [Buf] registry. + +The three main sets of stakeholders for the `.proto` files and their needs, as +currently understood, are as follows. + +1. Tendermint needs Go code generated from `.proto` files. +2. Consumers of Tendermint's `.proto` files, specifically projects that want to + interoperate with Tendermint and need to generate code for their own + programming language, want to be able to access these files in a reliable and + efficient way. +3. The Tendermint Core team wants to provide stable interfaces that are as easy + as possible to maintain, on which consumers can depend, and to be able to + notify those consumers promptly when those interfaces change. To this end, we + want to: + 1. Prevent any breaking changes from being introduced in minor/patch releases + of Tendermint. Only major version updates should be able to contain + breaking interface changes. + 2. Prevent generated code from diverging from the Protobuf schema files. + +There was also discussion surrounding the notion of automated documentation +generation and hosting, but it is not clear at this time whether this would be +that valuable to any of our stakeholders. What will, of course, be valuable at +minimum would be better documentation (in comments) of the `.proto` files +themselves. + +## Alternative Approaches + +### Meeting stakeholders' needs + +1. Go stub generation from protos. We could use: + 1. [Buf]. This approach has been rather cumbersome up to this point, and it + is not clear what Buf really provides beyond that which `protoc` provides + to justify the additional complexity in configuring Buf for stub + generation. + 2. [protoc] - the Protocol Buffers compiler. +2. Notification of breaking changes: + 1. Buf in CI for all pull requests to *release* branches only (and not on + `master`). + 2. Buf in CI on every pull request to every branch (this was the case at the + time of this decision, and the team decided that the signal-to-noise ratio + for this approach was too low to be of value). +3. `.proto` linting: + 1. Buf in CI on every pull request +4. `.proto` formatting: + 1. [clang-format] locally and a [clang-format GitHub Action] in CI to check + that files are formatted properly on every pull request. +5. Sharing of `.proto` files in a versioned, reliable manner: + 1. Consumers could simply clone the Tendermint repository, check out a + specific commit, tag or branch and manually copy out all of the `.proto` + files they need. This requires no effort from the Tendermint Core team and + will continue to be an option for consumers. The drawback of this approach + is that it requires manual coding/scripting to implement and is brittle in + the face of bigger changes. + 2. Uploading our `.proto` files to Buf's registry on every release. This is + by far the most seamless for consumers of our `.proto` files, but requires + the dependency on Buf. This has the additional benefit that the Buf + registry will automatically [generate and host + documentation][buf-docs-gen] for these protos. + 3. We could create a process that, upon release, creates a `.zip` file + containing our `.proto` files. + +### Popular alternatives to Buf + +[Prototool] was not considered as it appears deprecated, and the ecosystem seems +to be converging on Buf at this time. + +### Tooling complexity + +The more tools we have in our build/CI processes, the more complex and fragile +repository/CI management becomes, and the longer it takes to onboard new team +members. Maintainability is a core concern here. + +### Buf sustainability and costs + +One of the primary considerations regarding the usage of Buf is whether, for +example, access to its registry will eventually become a +paid-for/subscription-based service and whether this is valuable enough for us +and the ecosystem to pay for such a service. At this time, it appears as though +Buf will never charge for hosting open source projects' protos. + +Another consideration was Buf's sustainability as a project - what happens when +their resources run out? Will there be a strong and broad enough open source +community to continue maintaining it? + +### Local Buf usage options + +Local usage of Buf (i.e. not in CI) can be accomplished in two ways: + +1. Installing the relevant tools individually. +2. By way of its [Docker image][buf-docker]. + +Local installation of Buf requires developers to manually keep their toolchains +up-to-date. The Docker option comes with a number of complexities, including +how the file system permissions of code generated by a Docker container differ +between platforms (e.g. on Linux, Buf-generated code ends up being owned by +`root`). + +The trouble with the Docker-based approach is that we make use of the +[gogoprotobuf] plugin for `protoc`. Continuing to use the Docker-based approach +to using Buf will mean that we will have to continue building our own custom +Docker image with embedded gogoprotobuf. + +Along these lines, we could eventually consider coming up with a [Nix]- or +[redo]-based approach to developer tooling to ensure tooling consistency across +the team and for anyone who wants to be able to contribute to Tendermint. + +## Decision + +1. We will adopt Buf for now for proto generation, linting, breakage checking + and its registry (mainly in CI, with optional usage locally). +2. Failing CI when checking for breaking changes in `.proto` files will only + happen when performing minor/patch releases. +3. Local tooling will be favored over Docker-based tooling. + +## Detailed Design + +We currently aim to: + +1. Update to Buf `v1` to facilitate linting, breakage checking and uploading to + the Buf registry. +2. Configure CI appropriately for proto management: + 1. Uploading protos to the Buf registry on every release (e.g. the + [approach][cosmos-sdk-buf-registry-ci] used by the Cosmos SDK). + 2. Linting on every pull request (e.g. the + [approach][cosmos-sdk-buf-linting-ci] used by the Cosmos SDK). The linter + passing should be considered a requirement for accepting PRs. + 3. Checking for breaking changes in minor/patch version releases and failing + CI accordingly - see [\#8003]. + 4. Add [clang-format GitHub Action] to check `.proto` file formatting. Format + checking should be considered a requirement for accepting PRs. +3. Update the Tendermint [`Makefile`](../../Makefile) to primarily facilitate + local Protobuf stub generation, linting, formatting and breaking change + checking. More specifically: + 1. This includes removing the dependency on Docker and introducing the + dependency on local toolchain installation. CI-based equivalents, where + relevant, will rely on specific GitHub Actions instead of the Makefile. + 2. Go code generation will rely on `protoc` directly. + +## Consequences + +### Positive + +- We will still offer Go stub generation, proto linting and breakage checking. +- Breakage checking will only happen on minor/patch releases to increase the + signal-to-noise ratio in CI. +- Versioned protos will be made available via Buf's registry upon every release. + +### Negative + +- Developers/contributors will need to install the relevant Protocol + Buffers-related tooling (Buf, gogoprotobuf, clang-format) locally in order to + build, lint, format and check `.proto` files for breaking changes. + +### Neutral + +## References + +- [Protocol Buffers] +- [Buf] +- [\#7975] +- [protoc] - The Protocol Buffers compiler + +[Protocol Buffers]: https://developers.google.com/protocol-buffers +[Buf]: https://buf.build/ +[\#7975]: https://github.com/tendermint/tendermint/pull/7975 +[protoc]: https://github.com/protocolbuffers/protobuf +[clang-format]: https://clang.llvm.org/docs/ClangFormat.html +[clang-format GitHub Action]: https://github.com/marketplace/actions/clang-format-github-action +[buf-docker]: https://hub.docker.com/r/bufbuild/buf +[cosmos-sdk-buf-registry-ci]: https://github.com/cosmos/cosmos-sdk/blob/e6571906043b6751951a42b6546431b1c38b05bd/.github/workflows/proto-registry.yml +[cosmos-sdk-buf-linting-ci]: https://github.com/cosmos/cosmos-sdk/blob/e6571906043b6751951a42b6546431b1c38b05bd/.github/workflows/proto.yml#L15 +[\#8003]: https://github.com/tendermint/tendermint/issues/8003 +[Nix]: https://nixos.org/ +[gogoprotobuf]: https://github.com/gogo/protobuf +[Prototool]: https://github.com/uber/prototool +[buf-docs-gen]: https://docs.buf.build/bsr/documentation +[redo]: https://redo.readthedocs.io/en/latest/ diff --git a/sei-tendermint/docs/architecture/adr-template.md b/sei-tendermint/docs/architecture/adr-template.md new file mode 100644 index 0000000000..27225fd70b --- /dev/null +++ b/sei-tendermint/docs/architecture/adr-template.md @@ -0,0 +1,101 @@ +# ADR {ADR-NUMBER}: {TITLE} + +## Changelog + +- {date}: {changelog} + +## Status + +> An architecture decision is considered "proposed" when a PR containing the ADR +> is submitted. When merged, an ADR must have a status associated with it, which +> must be one of: "Accepted", "Rejected", "Deprecated" or "Superseded". +> +> An accepted ADR's implementation status must be tracked via a tracking issue, +> milestone or project board (only one of these is necessary). For example: +> +> Accepted +> +> [Tracking issue](https://github.com/tendermint/tendermint/issues/123) +> [Milestone](https://github.com/tendermint/tendermint/milestones/123) +> [Project board](https://github.com/orgs/tendermint/projects/123) +> +> Rejected ADRs are captured as a record of recommendations that we specifically +> do not (and possibly never) want to implement. The ADR itself must, for +> posterity, include reasoning as to why it was rejected. +> +> If an ADR is deprecated, simply write "Deprecated" in this section. If an ADR +> is superseded by one or more other ADRs, provide local a reference to those +> ADRs, e.g.: +> +> Superseded by [ADR 123](./adr-123.md) + +Accepted | Rejected | Deprecated | Superseded by + +## Context + +> This section contains all the context one needs to understand the current state, +> and why there is a problem. It should be as succinct as possible and introduce +> the high level idea behind the solution. + +## Alternative Approaches + +> This section contains information around alternative options that are considered +> before making a decision. It should contain a explanation on why the alternative +> approach(es) were not chosen. + +## Decision + +> This section records the decision that was made. +> It is best to record as much info as possible from the discussion that happened. +> This aids in not having to go back to the Pull Request to get the needed information. + +## Detailed Design + +> This section does not need to be filled in at the start of the ADR, but must +> be completed prior to the merging of the implementation. +> +> Here are some common questions that get answered as part of the detailed design: +> +> - What are the user requirements? +> +> - What systems will be affected? +> +> - What new data structures are needed, what data structures will be changed? +> +> - What new APIs will be needed, what APIs will be changed? +> +> - What are the efficiency considerations (time/space)? +> +> - What are the expected access patterns (load/throughput)? +> +> - Are there any logging, monitoring or observability needs? +> +> - Are there any security considerations? +> +> - Are there any privacy considerations? +> +> - How will the changes be tested? +> +> - If the change is large, how will the changes be broken up for ease of review? +> +> - Will these changes require a breaking (major) release? +> +> - Does this change require coordination with the SDK or other? + +## Consequences + +> This section describes the consequences, after applying the decision. All +> consequences should be summarized here, not just the "positive" ones. + +### Positive + +### Negative + +### Neutral + +## References + +> Are there any relevant PR comments, issues that led up to this, or articles +> referenced for why we made the given design choice? If so link them here! + +- {reference link} diff --git a/sei-tendermint/docs/architecture/img/adr-046-fig1.png b/sei-tendermint/docs/architecture/img/adr-046-fig1.png new file mode 100644 index 0000000000000000000000000000000000000000..d68712e8a1a463647493abd5ce6787a5a8dd8b59 GIT binary patch literal 13276 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 CA6?b} literal 0 HcmV?d00001 diff --git a/sei-tendermint/docs/architecture/img/adr-062-architecture.svg b/sei-tendermint/docs/architecture/img/adr-062-architecture.svg new file mode 100644 index 0000000000..4a824eee0c --- /dev/null +++ b/sei-tendermint/docs/architecture/img/adr-062-architecture.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/sei-tendermint/docs/architecture/img/adr-075-log-after.png b/sei-tendermint/docs/architecture/img/adr-075-log-after.png new file mode 100644 index 0000000000000000000000000000000000000000..359f205e490477fde73a051528e58baf70e50afe GIT binary patch literal 22864 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 zʥ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 literal 0 HcmV?d00001 diff --git a/sei-tendermint/docs/architecture/img/adr-075-log-before.png b/sei-tendermint/docs/architecture/img/adr-075-log-before.png new file mode 100644 index 0000000000000000000000000000000000000000..813b9d257b5eadeaa30af68b0ec767bb25a6d256 GIT binary patch literal 15057 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
*sz84=1L-t-%C5upmp*7WMkaa7=dR}fn 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 BY{>us literal 0 HcmV?d00001 diff --git a/sei-tendermint/docs/architecture/img/bc-reactor-refactor.png b/sei-tendermint/docs/architecture/img/bc-reactor-refactor.png new file mode 100644 index 0000000000000000000000000000000000000000..4cd84a02f600154a1d59c34b1e7f2f09ea66167f GIT binary patch literal 8105 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 bZSC!R|IZ3f5A-kY-T~^$T1w>#Rw4fd6<|rR literal 0 HcmV?d00001 diff --git a/sei-tendermint/docs/architecture/img/bc-reactor.png b/sei-tendermint/docs/architecture/img/bc-reactor.png new file mode 100644 index 0000000000000000000000000000000000000000..f7fe0f8193d93ce7d0461e064acffc0426f38d55 GIT binary patch literal 44211 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 I?OV_O1Bz9-`2YX_ literal 0 HcmV?d00001 diff --git a/sei-tendermint/docs/architecture/img/block-retention.png b/sei-tendermint/docs/architecture/img/block-retention.png new file mode 100644 index 0000000000000000000000000000000000000000..e013e1ab383a3b1c7b54246cbfef6ae353758f88 GIT binary patch literal 53718 zcmdSAcT`hb)Gr#l!Vy%Of}o;+(xL)_R8flbUV;z==^#Cn&{RaF3rKGoqy`dcQUeMC z(hV(iq=zK*BuHp?qn@MRc>la{?;Ycfmw_6Vd#yF+T(kb>+M(K-$|vdA=|CXRNtOEw zx**UAI0$r<{`etaB-6_BB=FB+TX_w65U4nse%s;*@cYF__jNTuAUH1w^yE1RL<5GN z;6WhRbr6W~5CoD;0)g0E)2el(L7;=K+Uoj>dwY8X0s#VnY;A3omzQT}XFEGP$Hm1> zOiTcCpFVvmEG(>`pm6r=Su&a2)6?_i%NN?t?mT&`X?CM*oRZwLh8!l>PEsdVx2Rh? zYnwZ?tt~Qzvbwsuyt1;myz*sog}SjpTv|a7uObH4cXoE>7gyf(tyYY#?(FVP5LSAL zn``UqdAQZ>?d{q1t#vYa`NvLr?^-r)eRFejhP3iwl!BS0;sysNzJC`H5%Ki&EG#OT zo1bs|@};t>%G%mGGc!})z~K4w=bc?$q{YS9*jNgciX0;2Dcch(w3XG>k!9NI+S-pF zKd^JF9rz!M8{4yst0SYM6_u4l5-BA$b!K*UWMM@>K;YW7Yb-1*`2__7^DC^ZtUkWJ zUz(ca?%eq{yRtyp#$vJk6SG9>ww|6|NJVc-&)QXqJGQpAPVvalu&{)#B@P~eh)?6j zzTp}U@Vh2#QH}5H{;|0^;O67z=C;;_ zooi_7(KYSXHW^Pxj7G=*n3*HshCnerihyDruvAl40KGcGc^~-YgzJ5X2M8p5dH>G= zpKLiVVDOlyiiYB`nZpN9o)8ZLpK<^c8Kj~hukSNV+6hf1e|*dhS~nBx z#G5G6nLNvotGMX7c#-M;Oz6z;jJD~p(9b4grd;Fo=-t+G5JF~&? z8lDMaTD#B&Ve02o``V{U_oOgk6cY^Ta4Jr0$j_6&ObMJLn94sXNu@((e z)>xQ5q2~7$)zwiA6`BLY_JnQ8Ql87XcUNpY} zAJO<|LO@}O>dg0B_H}6zC4H`>malYm&BTgFt7~%@ma;QcrA$5u0^K+LI1;`1a&4ex z{jutUnRgm1z~KMZheUX{qdn?5UT0dlW$nB1a&2k;F)k6H?1Kwix@P-sRqsM!hqRDi zt^jy5-@|(+Z=$ZYN=@9iVxFZ%c06ZmVhozBVT4=Q9gj4)OPrD&^2AEY0V-|xS_pyj zZ6SFEVs$cRMxwnP+5>LimRT5c>CYL_J&`ybdj_DF;24gdg;O|It7g5Ckk-&_ z(7!$c{d@&&GNw##aG%^mgD@ICQ~vdOA4@+T>i=qAPCL0_E?IvR=4? zHk>4HK#Hla=Wp+8zo<%Vfb-&0#dH3{MF)#Fitz7C=HdBC*hjSSMm!6ym1CBGeT$HdAhKHF&L5*hdO>Izc z+iWi-p!*POw=@2g@*UIofrc8)hcXkRMMd$Qf*@X*_;KI9z2|W0Lm-Kd zD&*?gL>B@+J8`}ZUQ@yxU+e9Sn&@D$(R!PBo78n!EV$JH)HtUVdQ3j~Bi#o>%<97J!~yR*8$9MK{^LFQBHvq`b8TgblDr z$v47b&?{hImWA|+3*8b&V3Y|T?G$!M+QhL63;!aceTUwyoKS6cA+IYT4+UQ=&F z^EHH_%5D+&Se%r^9m`MeYRW<_J9ohIqY=vuekC|HjadXv(KjU^ zSG2RPQu;^=aW&AQxzgFrsuJSUWJonRkBP;&pVZ^T+=qf(Em;-Nx#7=9=6C}1EBT%L zW3iEq$zlrmVwAo|Sy!e>bRxvHP38+0nhVYN(F|RIrj3}aW#B39ra~%bPo6xf)h-O# zg9wI0)3^ALwQYFCwS!OeN_VTF+2|*uZVP8jLta|vPUKV-Bc|vIqi0!+!RulUtJ@?t zM0&Id8ynQQv1!Rx;x=PW>auVRdi7m^qge@^s#=!O($Vh)&D_2RKD7=#AXi`OZe1mf zu<32s2zS3l)0L+qwViW5=qPL&uY`c&FN&}@@E$gndi?v?0QOd9Wkt(}X6(lLF9J_@%9xeisM+n}=__bELw z{GFj?RNgX|qpI0~8hJ@}RfaOvqo-)jYcDiHEPez&M18M%N*A|0tS?j%I>WrsO@qQAne+(5IlQ2 zWW0CQddq|_k1RDwyRoSxa-yJ!UL$d@8h*bnW2ryYzQs_tVaQi<3hPeKBJNbtiTKob=9pTyL$qD8ai@PrlW&Yz%dkviq^N z&|j*;^b4hDVw~`F%jx`@tcr7V$=!Zzd)=inv#Z*R_C?!w0WIk*en2i^UDdtR$|V(R zuE7fr6<=NqdKn%V>92E!XL@SG?FOd0Pp4;S@gVbjitsPw1oEU0fgF}kehD@r= z%{S@oU9J_{uev_qFF$49rAGgL9DKsu;N49b4XKIDj~C$(ab8n>Hai~h%e}`3K#EdI zU>T!9GRU-TIczI|2EB=GKP)105Yh6cgYEflkB|G9w8V=Vo^z9zHqEMh%ecF&cgI`8 zCf>BksH@(@3S?&Yn71~t)^N`o5Tj;oatxN-%2x^~<65@uf??1B(SXg0#OR+YrlVD~ zZIx_j@1RbR=e0L8Gc}!g3FYcpxGuE*c=KDexbM<7VYsGC>y3SdaP0_R&8zm7)bMRK z;S{3$%jX4~dh;Q5xkm)hCf*H(HX=+^7?~f1gvCd~Mhaz-Ep2zDHs;XtwbeHC!O?Zr zKLQt)HyiMM&@-Iy_u)|G7=j`BvOKjeeLZQ&PyR-k?t{DJ)l+Tc}@mZGeg?wmH|5l1A z4C`PnD?N_C|6b&^stk1CC3VG9XHY&}Q~h>r@m*ckj3wuS1SXLx0+p~$0!k@fmQc@$ zbo@bC95U7nT*+K>q4R+>pOYK8r{dz*dSRr}d`>lLk9ZJdTDfex2tA%cKrnlG<)*G5)$>EIIfS23udh~S#oe!m@l zq}@s|3Yr62%?gFit2y@`2GxRq{5?Y4@)9S;uzRuQnlc@yh!r}aO@nu_-S2?R?I}A% zqI5&bI?s9v*FggrL&+KG1>H=#t-ONdO@}oFws3e^TU=u;(a^qnBo?2|p}C!xh4YOw zLIA0Y6#tc1)^s-nvZe?1sE?3ok{PIB!|2#hs6*C5AY9NX=ALi$qYf_VK4qC1R0Fhm zDj!3(_$R)*yRN`*a3mGwq$M_5??fJ5s~Fmsl&Mb zc0+ty5fg^XoznWK8b~I;Vy6QHHVUJlA%X@zs<<{3JV3zyAn{4{k92Au07ny{gp4!XmsT0(v@gj9CGd2+I?WOb zh5M>;>nnRF4}k7G#;56vfiVHNp44UjECoffq*RT6H3r#rCsi3Nvk+(v4ESB`PM&ar z=!rNb%c)(HH5;Ghhn!aLgtPr5I|Z6nRxl!P@+_N{<<~+QgYwvxp1N~lv^e!!7U|@$ zG+YS(SU}L%B~5N@7-Qb<-hJ=(W7aeM4S4Hk2JgCTv^*$U$M&L+gIu#pyLul!Ilm4f zx}SaEC)a!>q}=JI0%@4LHBPKPEyomKpUPcOHZ4 zXLmOAl`CS~MN{|@{<6I{n)UracKisok8d0G@`Jys2dD)!1S`&_5yD<=d`l?X`-2WhA+Y`IBb+^ZRg({6R{>-s?TI`Bg-N-a(4!+scTvf^er62pUKWt+M=QJ5qc4&2j?*AGRY2%phyLBgP}7?baJfBq{y+xRvBiQ{0UK# z7|M^>Q1;d~i*HMau}Z~TCwz?^YQMq`5gUVK&zBObp#2`7JG39>df*&vG4SYtXJ;Kw z7|T2&ara(ZX@hksW5QG{fQsM}+(L@QF~+1-?d4ITg$!Gf7qMZ6POLAtv9-ydCSbt1 zBD}QVV<^&m-VGjEY?&%~pcvBP&nCly&g~hySJf2)z15rL z)4hN8T)^3TR9*2K61Xf#CrD$cqat+m-Q!&Vce4Lni85|>yB*U zv2o`2HojF8phCT=EEEpiEMZdwBb8(J)kXq1k|Kk2XB2&-mBCXU+?EHl|DJUT#Mj3y z@<7XxG50FiSALPq3a8i0_VVV#V{t>aZsh8#5mv$x(1AC*xgwxDrKd0-FzsP0v+=g7 z<>B^UH2ER7E1KMwT-3XV60k__t1PA6z69s52mY)cix+Ie!QjmiI^KE!?jpfT$5{>I~Y=C)t)>YtEH(mkX0;D zqDA}WTtmYVr6sm%;~9-`A!S}3I__ie0tYsVSCh!)%#Pw?JIlvF5|RiuFUmJ(x$-lM z)HO^`dd6_LpWE;va-dU#Sd77K(YoSvAE>-z4EMTUFySy(SP=NGAX;eBEjSo}gf8!c zR_9OemvG;X_x4MF3HE)U=@a%80K9;rUhD%WuA=)G$djx~Kc}4h|8|On%*V1T z@chKbxPE|IJ4CK#Jm0Uc@3#u@u!U+vfbK}o2QjtMxcL1ia$3Uh{qAPh01jRhoOQEG zkOA1Uc%yuN+05t!Q0eA(sbPu3uy|k^J25JoXP@oaoU<4%Q`~Xjzl*~zM+pi6vT~IO zIo-m6qX1v+J|O+ca8I)f`(?G?S7k7+e}7ao`qyk8@hP9#>RbDCByhM{*#o;g39i1? zO6-D}?eDVGs(^lggY8eLR7*$zh9uZUrhFEv`GKz*xyt9krZ@nQdb_yMsiBgjJv!L{(s@_8)N-vO^UL zSnpH2YlZ^)A^%5X1{vUrt$8BY|7-cu; zKp#T7gC;KoVkx;2PfRvD*i3_558S~7?5d&UT6K)f1Lp|*P`3zQE;NzMJxz$F5sJ(Lz^kZ7Cj57nYl7cLQB%skCu@^Cs7^ucJ4 z)jYqPI(|9}S7B-{nD$T+3>riRrK0;xwgygTB@!J&I0OX`fVRk5o2o@s(>&m%CZFWp zFO-+Sg6-z3@g^QEHLa@wxI{X>46~s72kw+^ivaX5?PMvUy-m&e(|o*kE*$}NuHpQ% z2S%k7z~}o)iHrb^tO%pA(->FdZj{`6&|AnWC`_5$U?Eep`}*J$n@jM1PAvUP3W;`) z4wMptH}D1~4*VZZOxRHZ%ax;_!56~E164=$Zsfkghcv=}(N{8o@7G#HzP%W5nw0xR zhQ%Z76;z_o7I#4x^i5D8%jlAZ^*LTskNL&Zm;t3fgxY(O*$>M_;8jM;dnlh1`fI2tD-ry11wM_nlI&O> z<IuUUvDcTX){ z3hjksvvWorI%ECb9=Bou{Tc64?{ApH(sqPbgoOv05hyl zIZI==UL8~pFbjoWgin6>tq&wtj6bLT!BUU+B3f@ApI4_P++PN|iAvZ7D~2?17*u}O zpWm0~nnSfbIVGPxvPQ2w&OGmKyHAGpVR!@S%zrd5caL8^BL7kB__I9Y2!@EA;=uTH4bK9N#$wxz z=jpc)Yz)MqUpkzF73fez2L{RFkJxS2FsfqIvII zfvp~Xgb}<>{-RXjj5KZ6D(9u>I#XF;Q>|*#7k*C-xClDa&zm_{;9341pS8cVM@k7T zNQ{7K6NpYcw{pOIIfqopj+DMA`{tOqA{z(g8y0fL%orP*HO-lIfER)rcFMxDEEvg~ z78ni)%@a%0fiU?Wxlvewk%T5@t!2T3YFdv)-IN$kDLG6JI?=C7DTN~vZ=2KHomCg$ z917^rYdl5jA9s!5PFk6UeL1Wmi=lrsx<(OvTJI?Qf}ic?aK%)_?cp{%hmkwSB(~l* zn4(Ez#_7BtrVKyGliR`;7V3o4k1M|T=O#4hLU=XTfj@R>-HR9NR0Q8XJ@()X#wHst zX5bPgb=rQqB!(S3>!?Pq6_85qt$+;Zj#cXmLrxrOnI}ZzIWQK`tzUp$}GtaMa0;6bPH-1WRa>|9wXs8|&id7NZ ztuL?jaJ|9UD^C$sPacr}V_=YTn3-CEaAVg%6>?9vNtvZqy&TJD4QX64KRk3&cKx3g zF$8Y3ufP(O2xq1Gj2%!OS|8ZR;k}X}{g+3+Km0VbG^t_cHF^4Gx8Q-jX)v z#1vj+DLRL-e7z<03 z=ncn*-1GYtsdU%z{ptDfm|EY?3``~Xua&Bm(asfYFM8e1V!nM>BsaYK9ZmCt$nb@~ zXjed21C5M-{qrddA?lBM-6a=D{UMtki(LBOn%I6I3ny`$8#lrJlI^hk~O+0&mJ0A z%>=w*zRqY{<(QglJ;xm{mv%Iy)QYwfXo1XhGAUi-AXT6G%ezG4XO9tXgc>&EHQJK1 zzMsV+a|r_#v-%b7ws)Z3y`zxnQb8Kkw zi40>$ma=e#XssJMmw43)1A6ltJ$vc%sEcxZfq4_*2GNG@pPBUh-_+f|Ie6bGrTykf z1RML(@9{sE(vR`cN)^!Vlb1c-=pza}ogE0~re#sBF7Afg# zM%`D584k*boITkg43(8Qa%B1ljMzG!TgAmuc*alxTwX(G@HDwg>@-Vx%`#%@)g$)J zKC7S`J^AZ>9ixXY>Lpj+=o{tF_tqG(#0A+*YAPT zUuNvJ|ZzYm7M3+mzq8HXj4pS>qxlaMb5TUBC&i$T(k5Ab8reN z#mWO?RY_>&DvJ^OYRt~v;VhB#d{=OBah+t=^J*ca6iSUsl1=FR!MHPd-v(Unm{MDk zqoQ@2lebg6WSP$_?2omV$dkj?Kj%uqHTq&1hN>AMbZeyVG0w$DkJws%9Jo&rJt-|? zpk^!rS0v0el_?8x*&%{IYZZY4jZke`B5ExvdoqWp(**o=plfbNsD%IzHKsyP3k* zOWx}~R?=ZgZiD4f46K;w4Lo5P>|~9wH;r#|V3wy@W>LKFec^&$r(O^vCC>b*ItHSl zI+xn?mC)Mgj@OFOA82O171N>DtrFzM(vmpE5`FIrO59>sdW1HwJy&c59cWKUvl;IZ z>9(of-^|Qwf~?spua%r@!y9Kk1|1Vj&4*S%W{6O9@j1%*g;O8@*85?s0DqS`Is*F0 zF{$t-d;y{@1HmgKWZNQKR29&lzP#TR4Y#m=k}@cz1Z^VcOZ0h68o)X5Qb%gFDer|M zp)vjo^9Uom$f)M2tLQ=QAykZk!YvD@F+YwYe;jsuHC8~7qGq53-m>`=6UZ5Ph|{&t z8N%1AAJs~kc}9n2H8YPn@5)RRGp;yF+k7Lcj(RJ)Al-frmy|h&QT|hi&WTV(E^^i0R@gs;iX@t*73)tBYK(IcC`$kq0b)70HQ-G}ml-A#W5AxA}YhEbps8IWg9zuOsxfQd}v z=#({6J~wjkvyX1XrEB#Mv3XW-YOnwj1Jq*)&GY0#Gr#hAUtb36t!bF z4j%PAXPe6JX!=(*2)PUo$#yGIw9T96m=Jjg@7+5k#LB(AKiqi8#v_YKL+sxaVJH7lUR zoj@u4!ku~OjdhDV+KgY^UqS~1eHw63uI7y2uCczLJVkSsE%Ae2pOyL0H)hd)o@p-+ z6BBV-oEz=ouMPgPa3D-!6fc|8C+f#PwQxctcF0&vTuHwYp{~rI`uu5b7&~fYC@v*Q zS(e(@X3EQ<=q~8`&AjruzY_&Q@$BjeRgp>m+JR*^35QwxBfa_S-#a*Ul450oin-F? z#BCaoIokZ$HTd2ca3a_=KmCcl#-bB`O~KE(%hPJ1P{*XmvuzTW40T?I+MzDLsm^zm zv9G2tIq3IPRqS5*ReLQKF)-si<=LI{;x}y*yd`p?Z_<5PI)r>)CoGaVKYt41bj57TP5}Gqr;Bqz}YwfiXZ_|}NV5Gk-iiEq%2Hi63 zF6it2LhUKB4HO;l=sOC5*$#E4JuOELinBfyz1G2)yHk+8fjsrc?-?qBG22hy98I`b ze=X<R0J#dtu#T^Fk;J$asik=m;}zS?d_=IXxW zne$sXe|&X@bTeG$$xwta1$Ep(QVUY97mlFRn#$XtlEDqeE|!|I1XRdhp@ttmgtaQd z_jht-B%zM8x4q%Xj7^eFm*ni%6RB77s?c;17HJ(82rZxi$)84NZJv+d$0G>8B7SKT zwY&J1qZ*WhYjxFkJoerTdWZ^Z*0(k2x$vWI-%9`uwM zwPM?J2Hu(@pWne_ktdFXzL2A4S!x_DolP8CZ~SH+q!aX)$GwEWnarhj7%Hl(7z#G25vhOKwxT5?w^R0z%$4T0Iu-IDa^FN}VA~7hFPW++c{}O)o|3vJ( zfh)$qWw<}kpO|^R*v29N{cV{21^spJLx&sDte83yO?UE3X5~+eZ&P3&Cu~;^huWgR zEY926L@fXod=u1W{CYmEwySIW^80!P^Bp~0ratH!^KxJex{rOUONS5M`g&IbXLRz|R{%A= z!0QVjpZ6xD;h9Er?LpJD1~-3m>jD`N>GOR3S0jgjozBxZT_LJ}z;e1v;1O^~{rWsg z?gQv8wQlbuz%?Ot*}q#OnhpBF#ec&Lmk9xBJ5KCH5VhPvl(iJ$icM{g&*8^aIZ*qU%P6X+Y*TCQDZ z0qzAX)~`pK8~ASgJdm7m-}wOVDk8?ki;ea@c!?c~E@e{GVc!1{`;aF_g|E|&$(d%o zzmVptv$xjIow?OKY@RQ1djb&F8r)VTT{5&^%-owV3~_b;2Og@3(e#4r5fQssWYhT0 zR0{C0;P=uI(wLSshx}02+9H*gfwTJy(Ofz z>|P|LPS-8AZjF+~hh7#e`gZI>K$#Mn+>#z`w5;%pL>&#mg7wz6blC;Zag;FO@w|RG zjSro$H3|o|)tI>LMKxjhrse5y;5SSCd3hI527P>dCVfVG?uukMg%P)<+GI~_bBkjO z?g4=WDa%EwQ1ovIzi$(2?j2AL0;N^TnV-WzceVh)eE7!8^YxgLTP}tZJ2A%7RMS6f z5J{9d7u+>MaIYYtzFyK7Lt`AEsW#=)r~sDVcH*hac%9kw@;ZfG{Im8?5$ot*4kr{c zTn`#q*!F?x$StMW>BvEnYj=-124qiJ1&j=P^u}X}=>2ULB*)tdmeGanM9ukS!=*Rdskx;z=$Sv{A#u&BUNl#j_{hs#lfG_4 zC3H~TfDykYZk6j=S#u@XBpTwgzDfuZ|3jQfx?8miG^n=gvR`0eieix_6uk?_p!L%V zr!}Zkvc|v_hX;=mcFfoJn+^}4&nB3Fk;`xlh>r!MNru||-W-uP%}k+37_FxR7dHF- zlCS+5Cn$u`Tq&m8jIyL{e}MhvG#j1F-B^6TPcAdY!5=L0``FU&>qMHHJ_A|~z&O-< z;D>T|YDK!(?#{nz5Gm*Y!(pQ()1wU;mjXNs6oDI`KNqP+<9tzDsnNJ|`nf+96p?q7 zwY(YX61Y1pHjw{gW?8c|&m5gWQY07D#DxJDtZVH?Cx0B=Z&XUKD4^M%0KLjj`9Aqr z0TQ1-u3RD(c!*E3{K@Zg(0mWr2yL>3*iiuAneG*IxZr_lmPgnIa^=V!dq+DB+^$<L!17fghk@` z;EOll=>(?oU$O%Jj?(Ls&6rGzh88DAUC&9KBF*3T@;G5x>!zKB7vqI5iUIB06~y8+ zLyJGT4Pkf-e>U`FM$#zHKL$aAZ2+p!c=7B@!lyy4D=|eQ9GZ;~Cu(@?PV>D0nr8+1 ztX$e$j$LPi@AZ?HVQ-_LrJFv3rCP+7>%RDnKCM7WkH;Cz1X_I`!+s|@Eo?^_ZGWps zmec5b=*c0_`|1|A_cw=tb53ouXy3ix!PHJ=tcgi#l+(4pmiBe*Amk~@EM`xgMr7!B z-l;ln&JAx`6Rb9Je5g6nTSFQ1`nI_A9)UZCRBmS?j%KU>=TIEdF|wPV*&q4IZDZ|O zDI)>O=%-1;VsECy%x*wbBPDE>;r28L7Y3fuD$RX16hDi6%oOu>ZonCFbSiuNtTo4F z$BNKa{asP-Fsu40`%vgs6!d~W8Ot7&dBIy2iuupI7Uy+E8!nNndpBJvGe|}$z$tZ8 z&tqOpy=Z>QV#mw-LJ{7zvxbl7oI27QS|@jNB#1EkEG9yKJP*y3{tB9r_Lx_ksvtL@ zf2Bz9h)uF8AK150-6)Uh$W=k?dr-r0L@ps$(uVEq2q) z48qP~1I~rxvatdWVl3Y@zjNv_{w7v@HSGxZ{RI)NIB|-EjnUC;H|bQoGg{l=&Og_? zswMR_w!evB9zoo)MNU6ua?YkgGacA+TcMhzj`Md0M zs72+#zzZG-v_G&^8n~mJJs2S)90{$9&=0+y^zt4i=(@JzMvaZH;m}TeCtvANmR$ai zN2-P0PCXy$2sn-Dd3Nln?)-@%=jwDPWf=ilq0d?r)EJDBQ$$c#sj7 za*Nt(&sq+LpgR#bW0=56@;5}s9ecZ*C+vO6XD&bY@QZWN7%R!~8d^R|!xS5+8g(6C zx1k<@kk5pZ82gKjo% z+|~5!D#mro%A0tWQ18BLGc=lB>EVzxqO~eRH4DZ&OBfrz??q%6Z^Jv)Td>-cpjHFJ z-n1-bE+a*-2qxfWMCY#i+MsFX^^E8a1s^7i)x*@hr%EDHK}!$#POW#7ui7~uxM?7R zz-46NLdVU? z7TO*uYgK2n5IQnYv5Rv$e+on8#As6f^Usnoh=EGAl{lEQggReYrj1Vhh%GtHL+AcX z(Hk)QQ?pHbTR+Kf;O?1eXGL;YpOrB9c=NhHI#KYE)ms0z=U^?ZQgj&9p~?@AVPL{& zQvX}HK;yqSwIG{iq^}Nj7%-rUW(d-?zH~qX4Gienue#MNK$pg2@)69E2}766&(z&~ zIc}x^kr>}MGmJJvuwkJ8I=eoErYC2go|&##s*)VtbDc|qzK2A%92Z+`l^qTm8jyRC zo-le0&|x{Ln)`|pXn+;?P=e@kS3vJ5p(VA1-u?~&mjO4ZwRgM!*ol+w_q;5JtCLnU zFe2qS7De#auhAI+GI1dzST&&z!os#_n=<%Dyd06a-DYk}=c;4&QjMSzT1VU)mnEU- z_O=wI$^Xj(QW#p^#hX>TM}lu7p&I2qjxfMAJh0TWOv(RJ8lZ3~*#EFDpMLl|hA*UD zCo%oo(}CY2OE34XKR|{yF+mzF$*O8xRyxAp)XHp%u@%bK9m9S`oMi}95QSsOFSZJ}d|4_!LslJ=}q7KX@ z%nSoi^XejZF3lnfwN>?Z4`uNKtos_RSKN*7Z;uu?Av&}+m3p2cqFzCRRTk0<@YZc- zJNq)Gly{T{hT=1KGG#b`hFMcqPayw9fAusG@R==+>LsMWl}X9cqrc-s!BfSeV%)I{ zUV(Mh?=!uDn5tz2CY5`U+2@s*YutnVZ+4Fo?yCZb+1hPf$svKBEjC0VR7p@pg-Hs& z@DES7EqX70>@$}aV{2Yb5-ENQ90g?(XCPgA$RXu{bG?Zk0mGlv66rWnhphzWqR+Zs zf&Y#TeK*2rH9(?zwH1sEr{RHIvvUbce0Y@Fx1~r|^9paUs&obkN2(#EKP+ipgQq*} z-TITj1XaKv7hVY5o+K<~FA*zpA$=}^ZVgyR4qmwY?fm_-4*wW!Pvrv&LnYwK)OY<; z7$|7})>Q5@Jmp}TJ{gYbDm^>yUkg`H|04-@Kg{N4G%m@2(mIh2n5_-!XO0Ct`)F*U zcCprMM@sWI^+1k9nKG6mc*>gWRDRh{H_XKZ;nqa`O4OIo+u3-^M<5W*Y65BI=H;B< zhN8qunU0sr7O(@{I7Sjk8kad(G1^|LSYqc$bYNL^Ga9#(Ue?q48t z<$nbQe^OCIGhq^w|H`v$A~C)@t3Y7Bu)QrBPCJK1ZthE&gz5O#J#Z@)Wgs(1WGn$8 zE8UOSy+d}W)eD2VNTpW@c&obHfno$X|0T90ub-&D{jdnezt2~$0=iiWkipy{``(<& z?(7F8oY=ol7Uzi#G}A_42}6WkpLFYwrpy#3gptnK7s1;J@+J12!Qz7yyM0OsMRk8s zQi@CMm%qCD`Bx0;#|luxj}p`T?x_?v^}fJ1Fl|nLFd7Un91b`YQd;TnR6hYuYct=Q zRNx@NMS<)Yc$W@Kb$gjL0Ui#j?|!KNN_1Msi`T^@CY^f|`mhJ*6Z<$NX>1y}v&J47 z{*npk*aA22?rR{7W>_-9WN`EB@g+v@C)VNg-qFhN-da~_Eb%p#sIXP>C-*k7MPERP zm2K=RqwLZ1y=A9o6aWeXR`so}l=4LC_P&!#^_wNd^P+VIQ?ohE)?|wPz^dMC^1!Qa zwuLZRHr|J9kAc zf>QOe3NtNgvoKwPv4Q83`vn7TXhL5J7n2QSYfobs&i)-ifCXhus`RQO8VO>WQovDN zh~~t=S7}>>wP1OitV(R7(wem$luoB!F0`|q95l}#VGS;IMu%!T+3y*>5s(LZbA)mvry8n3Vzh%>CXe0i$86fffe(@(h4kgYKWI=#ix6|fWj9$I7Mj`jgFWtD|EiaGLD4e`y?&i zR=nKozvLc&8Y@ud%?1SWbrVH$EXIsqHvjHr408yauc)#zuNbdY>K!>l4{lFhcwf@P zZmBH)(|M8v;PI@b(Vd?rw7(R5D=Za@s}lUCWAkvWySBE+kY7$pfDNd$tVtKbfZmKU z`YkuS^`xF#9=~U7Dq4;(dD*FI`SM*SBz!0htJ1OmhG%L7yC^e|4eN-?}^K zLTLIk)32u+BVvXUN^Qt(J6GMcg-t>?JRU``VAZS@hR)5;pGg{T?~W?(7Tze1O-!1c zyXBW|Og6z#)z;>#nuo!^om&4_L|~nJ?gbdI`BKQw_}3o@bibJLn?;a`Irlv552hkz z)X6=c6*W+qthoE}A4!z8HVm}a9c{GA)%p$o7-8gm@&?w;DB|%{U~8zDjpWy*%g663 zdyD4){u3s*yUN}T`SHE6zkce^p1aPJGt6?^KN|Zlp|)s?Ku}3FKW~>3;7sYsd$7cz z)~o$cL;6CvhMT>cZ>ywA*^(*R!WV@rlg70RbW_3#aUxQ1p>#C5ORi1kYzZG*;!1NN z@D?-h{`Uu|^RPWVEt`BG`MMXuX?oPs^kzYZRXv%Z#cj9Hud)$a0afNuMyp#rPW78h z;ry+@XE8lXD9Au+HjZ5gNbp@m&)Z;hOWR5XO>mAWjB-`|i;7yq9T_sW+PZFjJO~{H zcMvNs&_m963Vr=nejeRE8}S*Rqc; z;NF+5{|((t*9f9~cKwe~Mk%jrMK`_*_Jg}KyBTrWNL7U<=#`?Cf0Pa0q$6(*5U2%m zj+S>b)wK>G%iNko&iB9AE{d${&*EJUD1-OG-$6_pOmG55BI40!02PFlY~1_)&HG~Uiu>zWysoEioVmY&`(HY_Ccb2sE*xfLj*Sq>HHWG&BxHH`|Kw%3K(ETc0TyiFIa2l+xNW%PB{aw;ME1 z5@000LE!SKE`K=v37mX)pju?yKkG(&r6iKiAMk}dy4<{LJe%F{?0r^4`qS8}y6IQ^ zr@>IKKJ8dzOdH!vlmyYXTWByU&*Rqa& z7jbm#bBA7lqrK699qUGqJ$a#&9Y&7r#gyFZ(N2oWX1zBa1LT1FdC~|@bnD>yaRq_F zFHeW$$q<$V8{<=&ZQ;7FuJh!@D2v>d<;U1AqIe%RUB+DF&jhdarQU;uOzBdnb>adU zLL3^RW=}+J*g7R}az}ZT70CRo2HXbmERfzD-FIO^HZ&t=i{ohb&5#0oKWF1^3-(xp#2$xwC-hJFF_Gshqq@QylpqEiQ3*qL2#zAqi{Vlm~uB0_fJ<( zJ&m!fSD1~Rv6glI(dc%zt8YYRqJmE@8;i8Osb6PjHhz(vv54d7P7KR*>_(W@(!$A> z#=GRzMmPO{I%C$;sRDh9-3>F5qZSw|BLfycBZHC8*VB$pf9toT<^t~6*!F$>7Cb%u zU$yvIgrwr+jAbYVTb~($Dr92m5`3|9G*D?O$5Oe1ao`gWbQxt$rgsyTS{z6D@BK-Q zBdZ8#DF8l1mr^X|6~bwa3kqoY*(+PHlboFv=%+y1(25>?31pFhep1N20QvuB60(2< zxm{x0ZWfxZCq#(mW5V==E@$}=8my9lgpUS@{6r)%Kla)evehTA0O7&`xSR;J@&&jP37*MQxSk^qc*gz!ux;x2VMZF zCwqP67xU8?hb12@(aGBE{~h-1U`?hm;(j9X&^5`exwf`i=zP_Zi!9Vu`@h=FxbJuE zW}G_}S1;9x*nR1!PNiKaqQr;kQ93Uxfvc4dfQ$)R1C>pyK^;J+jnl0*CV~Old8d`#Ygepjf&}@i+G!Y_Q=`|4|Ac25ent*`R z7^>1C6oC*V5O^!7=iGDdyYKBc-uvVJ#?KKQl7#hLYp%IwpPw~1KNAE`auY>=KD=}B z*Os4B<0#0tBa*PB;GD62L4%s#wStx`tlWc^L8un3wu)EYq0ewmaMa^UKWKUBUrAbm z?#Fa4!U66TL#y&CG2}Zsty+1V)ye|~+GFmkZ#JPGi!Q=X{Xfi!{a+208rvCoIDd>P z!wfoPHdseP)>&>Xc$hc0?^qtDrFy)J(p zjIgf5|Bd8~77g%}+7_qs6j1rmf~CC4!-tcH!;6VK^PRAe9Jg^_&AyOn+)0Z_yUex^b`0X8IlJa{KhNuCw{Q2Uc+)~_6Rfu0uJ*_u zAI#YXDZEy1j*3;Hd`QmNAlbiU+#6OG`P?llhD3#_Vim4q72+f}L5`Rd2&wzw4T~of zjnZ-}ymxHU>I~c`f-$1iwQvSm%}#XPCw+b^dRI(sVDHQt3uudB;4es&k@=7$3R1cD zR&t0H%Pug2@$UAZqaA(mR6)hxUam52P{lDXFagbJ4y2=U9yQGQ`G7}$Sg;+H_T`)CauHG zl3?v@Rk#2ZFldIry%){}4bBG6;Er2pLFEgb`46-&?rUFE?ViuTZ3~PV;Lrp&7}N#= zh`I#6vl&)S(^8xBeqFGNI^6$lAm4DxE7k-JsO<*g}|<+Mt#m6%zakM-wySHLzk{uYDjS%=wXx!Do0rn02l#t!o~l9v<};K9xxj z0Ld5qyLC~@i-Gfi2AR9-`SCSNrC&OLhFf(e7=P*4BL#R)u>sc|UwblDd+Z*F<%x3o z$b$o15141JT8sH7y~5UDlV2;-sA$dpnMPhDpI^?D$Es|LbtF@=Xi(*p^iz0zu!`cn zyHDXopP9b?B=SByTsLrFcIy*3G!-BT6(3wD5TKLzL@;J1VQwuP&VQdMN_T-Yd#h0QGm59FpKKOJ>}-3-hWUN za&=T8c2RnfGBxYU&5_i5_dtB9V%0M^*54%Si~L<_S%v45YS${pd4zl9Q$!GYAd>a< zB}vqyw_U!=`BF%%SiOuyUH1zy85Q+OUwdS7EmT```QtoWwq1ZpM`YP|o=4F?E(_n7 zth~kP7|MC^N=~#5Z1mezW7Q{xN!}iwCD)35;^PPA2ajz~Z=uEMa-inh`-&|$b~oLB2@<@~;@Ehc`lzVA!=<59s{ zcH)vciyi4jZ-QD&s!YPcI|_{6_fA}H>5vn*a`de3)hwQ4Pfq2RpPpBcQDbX6ex^+l836`!KxJEs?<0x^!a>{5!G zJMhSX$F~2f-5VZDJ2xL=;LNwFHp{VK_~Kq}WI)8t&W;qbM*j6F+vo(o#%sRw2*k{f zT@8O#O`TYeI;|jfLbzysC?MXP}p?T;o!2&9VE?xyQQM2fzPhp6P z#M%37h1v%Y^vDX_+pJXR3ZXeNxzUa6yxphZ>b%KBOrt5Ow%X}pC+yFb`DD>G%7lcpFcrd-t z|Ifl_tTVWzF9@sD5eGHVI?GS#z*7IIp;DwWp-s@rLkOCZ33+bvywr;rcyQeX!h&so z+Kk>EuCpIav$$R!lNV1exNmEp?V+YqkZyXTtx|pObm8-=6doP2f$twPLUs$MRbeph zxDgxw`B$g#)L~0<;U&7@_*d=np;MU_;7xKuK(9OonWdde<^d~B9qW%!PYX@9Vd}|{p z;&V=jQ78`*aHA{8x~QM3_BjIMOwnRRQCp1^bM_RC{Jcva#P(0O6ThVMSnZCT*6&!91!_#@8T|I;zqrVYcKty1{B zb3drwp4`){|E*@j=3V{r(;wm<4-vlf*UY4L)eD_KpA2VSA%Rw&r_AcksYOyz5UE&vGv?Llc}cWy~H$$|J+$ z6r8oFCriyb1yd%a(o%{gK{k;X6>2kw#~0ox?Jf8eRO@|0K*k>z=KMSc&c(v$Nl0rk zkv)p5n#qAwU_8+g%Q{jeHm$r%k3l9Zx@wzCV_1mu-l<5gk9{>`Tb3B1U{!&~EoV&- zce{%*f=4ySE=Oj?1;)OWJaaI8Zu@Y%AFO{=QY^^M`XX|6?G`@2XeGU`{-&wxU*Er*F|5t6nMrFoIu)qAd%R z%+Gl&>y~mWf16Zh(Z}_JHevTJaK7Ref998aOCAf!Ew`?ek?E=ADV2w^wIR}5)aT@s z=1f2)x7CL^{N9(8sCk%9LA?ttu>7Vei0QW+y~Rv3hQg5#9+i&pP2EijV^tfTo8e_` zeR+H=3Hj>z5$o4Wk+s)KkuFsnK6KcGX3LPcELRh4tmx4D{PQLy=}8<-Q%(3dKdsI$ zihm7Ma&p1u=HuM_#k<>A?9UAZuw+3~1K7%~^sS8x&;Jlq6 z;m0J#Y4ccipRcTX)eG);6x>nr6gIO#!Lx5E=e+WZsrWZu#U>nWcZ%7*D6nLq@P5$J zqmHHmRqs?4B_X$UxXSwoX<9b-@YE{&pbS<62A2*{p3R4|Ktl(F@ z$#ciaj`gxof3Zkmqej0~JlbB5Y(9B6Z?zv7ZDh^7o{a`?-U{H{0Br%B8{qUMxXt=% zVs|>g+b@hjX(~_`@+4#4DcUW4DY#tik{M+Ph9|_OsU!VHK{0u%4 zn9&Bmiv$kAcqU;`clrjH`>q%ATgZ;|`zAc{au3HLFioN&?%GQHJvHJR<$_KRXUbcF z18WO@p*v-Q8IOK+wPkOAf@@qM7-aSq! zB)lVr!`IZoG6xsv?kRZPc0bG?JiIY33d|(u-4RMwDti1$z@pP~tK9j|+;tgdIp#|@ z22Z2zOQ>Ru;RN6ES2Au2W5lyvZwhSv*0{a{0?X z2Z+8Y2s^&^p@5L_DeGF_iTYU{e>VsGbl3v|XB0QqD_D{Jpr-Z_`6Vl? zjg(dx0XM_3Me!RGAvH3bW=nQ0f-m*7DXk(sDY|$M3UE=CkU^G&umSIC&cGiJNCGZV zyV`JU9H;zYxv$77*nDt5TkvMjsEiMqAbI%wI8SMVKASFrw9R$?bMZL@!jZSJ3n z*Q2P)%A2T=;-xXu5P%gs{?jb?k}WvI>uU5kiAOf7p$LANGkTL2K0{>VA)L$+Rmbg! zw7WP8MfO}lP&!$zlDUvo2CJgn$+RE9es~Jk^^#8mk)itjL=8+*k}j{IY3KS{V8Eug zrs$DJ8=qNA`H5ZH9-R60HX*W1O>yVBK2>x!y|x+}KCdbimSlP$zxSQ&ZCNohp;K|r zvGeF$zx`YuYVy_I;}hbZwuxLw#!UA=I}YRs97BAQJd|ZAk=-u-3{p*q;XIrIH?DnH=X zWdUp+-TtQE8jjzJ-!l7PFl}+i+o=5rceGMbXCc2h;d86&4gG`ynhAWqr?uuv3d^lR{!mGi&VBKni zF~>#fn%c;eLsEx>zUs^m^0za-HXEGj=1QtTjwx+YJ^`8d`;p~YP(4JLsZK&Ni$Sz- zZ2X{o`ZK}wbl|7Nnm*3#77XFC zDo_^3>p9sNnDQ;WjVSx}>2`7D%Lwh2E@ziIexGy1fIFJP753e%d3~F?5W(lxhEoM^ z_fNcY;9(xsw(7McueQK+9{I`th&s(gaJ^3tv#h0E>n>R`w07{30j#NC<)4~sqUMdJ<)8+Q~98(;Fhn;nzu&m*;n&s zwlQZVGEwKGVl6zD1zMM2&)_rz@(QSWlv>vAxEAm4Bx@d1*V5ri_ClnWPN4>3S8r%3cP+wc5E52>h=SB^5b^c<4V zlSV#L(=aV96jW&Db28)s7^fz#NiA>VndEHNyM-go$VWchOO3We*!nUD>=XOA-nhVz zEEuyJI_9mHo^H!GO|oDGS1Szm@nDMOr~$Ytu^Ye$sMnq5rmGc_Zr&<4hW z0wKqoQNH$V33@=xU`>xM+nqHq+c#B~ui(qOl532g>twIz#2r#W)>hX%y0YP)>7x%Z zHI=9#FUF6#ki9+_SMYMQed4<1dUNGM7X%7)2>G$mD=Es?whmkl#cN5ERz0#*IUuMOqZ%7%hGvj+nH*1c2 zPgw9HqtyEs(uPfkHfMFRXj|>fcoXVZHyGh|0OlWI-sNjS-0zD<`=$Ir1TKEy_^PW% zSeE@Tby^t4_WBIIOe8};c&+=kKiMG7c9l2HnYd3pWRfGgYDVhQc8Caat>K}K$)u;? zBVt!urs3fEsAN0-xo45BmT@XkI z)s^q$LrL$uwWUgZTAqBJ|H4yUU1O8ja>5zcfzrSXjTHw6b8TP6kaBEq8NCa-?VyG+ z6G8fi!ZEUf=w4C+W5?9g_IeXHc7*`Usozm2YL{St71zSuWFa%Q*Qr-=bM7kC%gWYj zK5ZO{I_Vk0?1WDqmM^XLl|yHIkCg0bGxdEwD=FR6C1{Y+6gmR{M4bC9F#ugF*&ebv zo#)HQg?-+n`=5MM(O`>l_mN2eN%RK?(*dXZ!fDdVi^A+4^Q@dUY00@8i2O36UQwk4 zc}~l+?LvR!YgKzcY}G${5?Wl|+`pH-CzY3Qrbo`h=*-x$k}s#G7Vo8+pVd|V zl>g>!=n?1HeV8$7fqsanUOykQygm zZQfBbMV_v~BW@5B>$_AjLX!SDnw0uDvuTJ@YO_T1{>Cb6ZssRbnI@E;iplo4{yWA3LcZTu>t9_;K(@cY3PYqX#$Qt&k&kM6CD@7ua`e-IfpfuziVS(dL_- z21j?**}vPxjmES*5mzK%~_-q zFMd|ME?$N*Vqt--b0i5Si>8QFN`q;U_x>_euVGNkDkV$L?-XT1D^7iojHq@$^|4B` zG}*wPng^LA{rdeP8}_QuZRhH22ynS_$tU82MLU-oeeSIZb+bILNG z>kti3?}Z^vOmGK?mn?FxkG__}a^f!)##62`_8f$CKx}h}sv8#)3C{zbWCfq@zKV}; z!U@f8i09AwJ3KgKH(oouAhWdiY^MC5IgZt3JkmY_dO2;6b2oX^+|R!GYQJy#T+Z=W3%5B z+tnx)7i;~~F&+Lk6GQH{AWEFG=i|(wS$T9AI(8elWk#2+H1gE(sO3Wv@hY_LEX>jP z{zgadC`F|ba7K(euqNZl3C`joi|JAOPD8(Tmmecv4nxN0N5IouGF$su7uBj@ShoF{ zkBW!HLC)g0;a$XvdRnHOdf^mI-H?>7p>pUC6+B~^O|73|YIOHV?rW)2a@v%b;vl41 zNY|ah>5m5=q^To98+F><$1i-Z@xQ~UPI+R8QDN)!VoEX28@W>TP~X*8WugAar^VUZ zc4v6{7$LrQ)vsMyJpQCdGekVYEMXBe7Q;GN(utHWJz2GYKeYza4i?;>C@dXH1D z6C5i_Zmshj-;f#HAA>&=C4PpZEZ?kXc+wGi>Tjz!i%QaO2RXOv3COk2gnEMvmJKEHSB~h@n#Z@w zI*i+JI9y5tXk%}>5~h2FolqDmDSOwq@`H^|%jWsY_IvC1srbm(xdZ?11b!|G_=LZm zNL;r*OhN2-q;98|?hSWRuJV$2obWNI=AGJLvnknS7P-Q%&7B3l!LkbAJug`oBMAVOXF zm%j+nr}1;tfDd~^f4Premx;Q8<{(kWjGtSe!}wvUYkP(93tl7i3>96XBJ0?G8zvxO z3k(zB?~PWW8xrN$U_Ik~MWTHaL6!mxr!XiDXkIIKoo*i-*tU@0X!e3tU-@b3jnvSr z`sqD2Zq9?&>vM!OmF)&#Zcw5If^)c*)5du*ShwohFT(%K;JIxx6GkTniUg{F~ZNI;P^N;%>15I{|u(A#bL0duWXy=QK|5za);HQ}FK-&-OhD z_U*>c%s8QHaW^4Ovh)S%yw`JSxZ`qs#y^wjow$%icJFPipylY1=>%#zsc7Vkl{)%A zW!HV@`x8bNWUY6;V$mTt_AodkcLvT@Uk&XH zc3d9?*xLVH{@jkK{lRMGx1S-uNOY@_6&4c5U^;5AvP8YHm*GuTXGs4V>hRng%`GS= z(iY%hdei*(FnoE`83dZJan#nz5#L=9%`vO=kQLBREyTbOu)J6YlKM@xQ#^h_8wzO5 z=HvzntpcD@16FroG!?9rgXxKVwYsYy18@5W!y65&33_k1^4t$Q0(9$-poA`U0GR1p z_ZQSDjiYLmL_%ZMd8ry`6>u9+z*-RK)?OfKM8QYBf~rJ6gVyz@3=H$ce?ii;$^?Dq z{QDSgcWw*Qzpf;YPhJp(g(UCZb3zJlHD=t^JefM)WnCR{ByGWY%?n~hr zUO8?@V0x1kMs%Wuu8zI0o2D{@Y1;2R+kJBYzVxoP7xfg#GM&|57@8P9ps23)?54!~ z9Kfk}VA}=LWQ(GI>joXc3z`LDB(EHI1&5O)2!BX2?m~G*fqswsxx4V1MO{E*eg^1F z01Qlu4ami0AVYjrG3x(5crrK0Q@ng?8IorFGBj>fVR%j$R6Okt+TIGFv6z=@Yj17^ zbKRqPn~1Ng;&tC5At&%ZCxaD7?ssHcUSCu5NG2kNmgv0${NX>RIp<>^l*tMTNqd*D#x>Mo}Mj99g zo+)#+m1+0bnI`MlbBb({ACR*Z`J|ZmApC4`X6~bJ*%^y&#tvt)Q)+G(3-BBX$0BvF zo4MljLQd_ob$?!pOT4prXFf72PvHoFsr^Zm#4f>fO8KqHwM$3p1gL z-3mGfrc#Hi1cdrEq65;0&LjxP6LRv83yq$dZz<-}<(%xDksC*W=NR+VH#**%%mt%6e)yJY-3!DUFQr)ydpvTHIK$Es`^GDVhee@IuHn>Mlh>W= z9ENA4c>lT69C$to6RmY-a$3AE6ToyX+{uKxq^UgDXuTwL$;ZQ3=OQ-X+x3LO2pE8I z$|N}M9(os$wrtVJNqBP(Uslb@A2-UJ6$jE9r=-_uvK<;2v+b=~B~-DgmP^>Ri!z)- zDqkHI-h(T|NN;yfa76}*Hz22X;TfpV*VHY8uCpZ%UJ%SA+*(JpgOqJzLIy(gNP2=+ z(#xB?oM#<1q)z;it0bwGrW{;B^NGaIQmVMQcTgUh?`n*ig|%v+3=e-!!tP=m&`!p{^TjTEJGB{@R|s= z+e97aV;(k^I??ixY#0j3L@j<}0|6^Rh{3Yuq>R3~kAYa2P#L6!I#RY~xkk0gJZ&aJ zyrs8nE`tom=4faL6=;z?c7-n%PG;NRWU7>vrxIN)q36p~@OCUrTsAy7Z~5vIR57F& z(Cmy%5@T-6MS!c1SEeR5Kz-pQ_C>cK)C zTk4O9jZlH}1fP!}OD+_gF=D|V7&{ivvp>A+`dR#el~c^5=*CwHiMDBz5fmf- z!N6D2?KRg!L6Oq1nR#SOAm0{Ko*LwxF+A3M;{?h^KQ(zkaKy83BDY zmvLqW>aMn?nr21-H>Dll-FiE+$7_Lkp`h=SYYpO$k|tYp|FIlZ%zopW8VcBXJCj^l zo!{s6Pkdpxg}D9jwF%=PJ%6p=YUU!+xX0H%f?axi7@~OUpE~vEr(&swhs?SlSA+Pa zEKi^P=q*IOHi1(D0q~#NbczRrcQKUPMj{aR@5p2J+p{Bsm;U^v7d@YM9cBNmq5ccK z`+uR-71S_a-*hG%Cz#bL!zP1M#-&HrK<&+M17YAIva#nqvNe`d7a#nmdE579?3I~- zp4V31#heGyQS+|SjEM19DoMvnq&5S(0(&{zvv?tMpu2L{z!+CVHrCe7l*Grtdusa_ zJlEbV#I?egZ{AHtiB@mH^;F&{7^HBOH(G2R;{8pu)XuddkQPUY;{d4AO${UDzrRN) zAY9lCw~}kt#KwA@rA6>i@q7ZWsOT9pq96nwf4fXF;P-^V19hC)@iv_i@bQVsD+`Os zv#$~!Uvf)aM5Sh{2*SK8E}x&{dfv_FSj(1uQG|4Oo>w$?_Li-vumJoP<3FaLA&RN! z5)9X4=D;fsV-rrz=IjhgJP^FeWwiKNmeFa@sMYnK1I^1={5?x1Xft&LyrhVC8JyKzJG*avHWz)<9S{bml%{e9jy;X)OZ)1~f^?ht&yrAkC8g1iNLe6m&g+ zkS=PU)`-1QjEjAkJ#{TVlb{XqEjLxsrAbW*d?l87#@QOY*jnscq^E?yY}{5%Iha@UA26{&wdmBUE3>#2(7x^5I6JFG)?vfYiLT} z{xXD;iCrp~$ysV7u~tVu_nijC5>tM0GV?RMuHRRS@7t+~dajSYxfRH!^{It>^PP)& zf{=lZAz}Su1pA3KbgedgZ_#OqDy3$bg_Azsy#ts_=R-544#*yXrPAC3>hI&XTQZ?Uk*-u@nPcq+sHO-Ok^20 zhx=)|yvXp2d4-e!EZ%xBh; z=hSM751*%$WuoQ{BU;l`YR#Vgg~If@Gvk{~^lBwOZ$8O1@E}O~hsVc|Z{3dN&4Ay! zfN3xcLuC*dZa*OSeR1SzbdwoWjAIb^u9aNVDndDS^o7SuEv4q(ISswvew6Q#}Q$?*Xpe$=cB za)7IDNSGyA=Yf7nDI5r{!J$82o!$#!4DI*qiV28_ty!&T<&bxeX5oAxx_q) z&%Gzf@!Ml|=RBm&wd}MPN_=d8*eN1gX79v;e!d&h0e%l4sz*~?xVXS=@DN>C1OO%o zbZllLmKz`9ojt-td?DhW9RYt`prb}!DIrYB2DnxS=DjE?gOyD1=6(x{5)l+A%H z_g4JRfP{zExT4v1(pz7XUJM~cru|OI_({=LP8o|=i#sqF@V+sB?jGYu^ z-X#ZVhIh0m8ZJ#54xSb3=0ozj*R#)Xo2X*0@9EncZRl)Jcg!KnX8#A5sz~>O{zo5~ zAuo)JNi3&jSPmR)d~Q{h`0{k(w@P*}s)4tWxk0(j@ifrx^YgqSJn;Y?_ulY~ajgnS z3B)CxQW*t(#%GvWmhK%pl9zOviK+3}X58#YgYIfsevkqymC6YbKo+U@|M?mk92*-{ zG<|D6Q-u5Uc&?IQRQrTZ2Fq`Xm;n^Gw`Et58z$?Yx@TBUH4PVM7N;;BEXpIY9=SE{ zv1&QRX5M8dl-YKr^1zpOHky6t^M{UM>uu{UEK(66C4(tGl4yuX~3U=GeK!t~F|2!gzh&eS8rd1B;L zj8SMHE!Vu=3Z67v4pse4vpt#6*9-weZrK^O93RWydgU2k@Kjf9&&6*JGiIVJ6P-mo zGvq~#zVY|(jqo&kaP0!6FCiuJoW$Ie>gOcqzN^Z-3++9V)T|2Hh3T~!*r0juw!e8Cc**{?Q^T(UX zY5Ht(e1;*k87UnfrfKGcv0isaD`<%1@jPaZu!mo&ao}M#r+lZX3&*gSrPnTV57*J|m#HJ#1%LV>nL*1V- zHa#v_`R00OakA6-FP9#68M*5H5o>A?Oq*dTGML_wXnG)@BqL~iI~8LoUl5dyGFq_M z<8U}&w!~ir8jgk~3bYuF*5vsv`R6ce;I<&d@dk7~o4s>WUgm|^)mKQHG~`-3 zRV<-KD0`o$slfRIj&&Uk#n5D*Yf+gl&62i{iLusSd3lStOT=~VzL=j_zBjjqzilc% zer3UQ2-K6b0us0r4t)C{9YwDa^ybtqQf;g81-O%AX4D8P*r{c~ORkE_@~planeI{<7SE$et-0ulHy zJQbjScn+`4G#^AlY1<@r@pi^dwItY-QflYwDt%B?51BZ1?gW+fk3$ znv+XG;7Z^+*^mz}!7tQLE7t?O$e`7y&IP9dTBL97LvE_o4!|>|M>oF@yMbmpLjb0z zIv-iJx&2EPk(j)4Epv8 z*Ni~$-5Xs^I`ZnY(^kNTj66^c_a8_4{qg**HF?6Y_x@W)rM8v6b@u4|e9*st?30g7 zBQ4_o$PZ=PN&h}QoBMO{-@pC)<6q0z(|bKCMDNF{m*LOB|Lx=7t7LF`-BicF<&P`) zIrx7;1cvfk#dPc6fc{voTEts~ErC_5T-B{5i;`sMrmvQ= z{5lQgQ1uRZFX+LS$iF-Is$w^k`R|TydYxKW_jgAwimi1*chrsTa@T*s06%wlsjgxF zO)Kwya1|QABM~JzTU24WV-Bv*H{$C5KoO;uwNY|N0+RZhuix33-LOjZ4Y{-wJmM2%oR>2!BE{Yw ze2;0;B#$_}Tac{Zzvv}T3288~pY{C4>9+KoW6_lpM%a8|=_N0`Iek4oarhM5#&Q#+ zV#vxWNe2pHqb~QijbMH2bbZ%dKP{q4A~)~!sF8-eSI@N~+JlK&?81(JVwu`&quP`4 zLBp?!>(=8;NfOJ}Xx~g?WvM3C%1emVgS$Q2DMby#PfJ;wz>V?Wsn=^<720dcu3a=z zs8b1HLzWDSDwR*x7KCK5OKtYxUAg+sOKzG-JNfin$Mrc-N?cChI~4kL>F+uE46~V# zGl`||)w={~jqmF4I6QvVT01Pf!C9`w9eZ6?ru~z)|FRs63M}Y(A5SG|J$iUaj8@+kv!yaq z*Gg9Dvt4{w+_q_Oo_||FG+xE5(|a#R6JLA!+Yhk*^D!+&#S$5a(e4B7>A|-xvlrZx zg7WS#-oU!qgDZ39Ue2gt-5l#@jQwH|&DT>@G3+!edBzbLbWyOl^v0_8z~=VyC)bII z7!q7JQ=5zEO|7fMIZv(V^6g&`IDEpxS8w}uVg2*E;ed@WB!($Ki1t9H@j&~w!**!F zK;rIWUE8H_i3``jW5#FtbT@DJ0@@}@KZAz~ODdcm;6V;2!Qyvje0QH131?;6Q0aDF zJ?M9N$J*14dWti0=gsnjN?3>LGi*2a3fi2`QpNb)X2}{XCzZ zba#u#H;Y*L){(4L_hnEXP}KrlOW!qb>Yz_{VpV+lZEyJ?FL!j)LzT`j8}{6#G^-Y+ z-VPKcefeJ1`5oO>v}lz6 zwD1}}wS607e8Xx+XMJNwd1XoOd+#E3NpHJ!aEA>!F9Z|Gu9bG9^geR1Oa_HOQq||! zUxVjaV=J+*MOg3-l)GS&lVH1SOWQM18zq;wwQBEFtBW!_SP<(R%qgn4$gQ9&RXc~q zFmk@gWrE9&hLYP{#&rML3rZ1SekSedBe3TcGVQe`?a4HQt)4Fta5|Gm!ZnMOEJ35v zYhtM>8y;O8-D9!Ai8cOgQm1gTtL^5%SpQ;RV#v7#8}?-G;<}d_n@c)d%fnypS~$#@ zSg(&|Osmayt`--Bq^HPK%L=6Y(89VoMhcafIi71Cfv3z>xYVJ~|MljNqkv?B!~74FamNIZzb zxnk`f#j?gMm{e@n_^M-VlO&Nzyndo0i~Y~wl|u75yo{dqQr{ZI0`P^tqT6lxarE^E zAnRk-Z%d`AV%=`{AW&BDk)Fx3?X`HFWSV)9>{02W6o+XIaU-yA`H#HVQRHk3Nza)ck@>5sJveDA;IDWcaEzQI`3Dpg za|H`?8E=B0u=^iRVyftSSyAEdRAtIH7J+CMPf-(HyjNUiNOnRU{9!SXn7)H7bTZUFOK(7(0RLM{p>-DzI1YaUL)%r4QoJ0WIwy0q z2}QtJ_v?j@9*gnDzug~_uJ@axk*;k;enXQxn-eBiPxIH725>i4E$qlg(N>4v5C_*O zMn?cMr|eV|)uSCL3nioTgsEIb(dr=D1H|Y+V%-ANEa3CJsmmj8{QOP_$~kw3)jH1` z-?5Nlv}mMK4mV$VeUAyU7*i5YV;Kl(zuUFN_~(a zDwrvTmle)hj@!#~cO6I)xUv-UT3K6=WFiZY$&jOzv=J@BGk2>B!f01u4vO zE_<&)Q-}LTKgZTw!`kl{T}j&`xp^E&Y8U(zDX%T8=&e%2!-JBWK0c9vUlXM*da^tT z@~nFo%BoR_W-hQ+p#aVEZQ%|nfdW(Zhwg-AWEwAFclfJgI+xb?h@YqG;>)Y4F}D}c z^2HhQ$ewr-MJ|>xnf3%RnxYdtxZs0|(gupHnXc6A;}Lb@?XOK-bBU!Nf&Px1=fPxh zWT7Q)x zpG%WV9B0D%@f#_aA2FX@VSbf*6h~1`H<6l@<|)Jkm^cv3^ocWTdRkgeSVSR4KRjti zGl?qz;r8VXv9o8Ck}`DZLi_PvVim2|=-koWlD^#*+~cXm?5-~N9{gdO4iTA!|I%%1YMc?zR+iwG&!Y*>}sjv z3j+T8-T`GK%wE57Yp5gaj9>z6vI1N)CV}$o=nLvYZ}zxWVigHd~uahl?7CW$z0h4}Oal8L-eel@0BX0bOZvP*E`e02{y zW(~dR>!v0u=xp~WpJ|WfH@OuztX?YYa2f8OgYx`G;b9todSs3b;`uB&u!&}a))ik=q(Em@^=sv|N) zF@4&_kRUX6mE?8*b3k{`54Sbmf^~Ga|EBN8`hb~=rABlhxJhU*8-LKhgS^k9t>onc zAK{9(-CLB2a2#1s?rq)DC?uC&Y&8ybYkfrj@ z^W8!d;VB$PyGUKp&(czgC_Q*K`Jj)uf`Msh%f)p^YfU(=TF>ps&B~95k|}S771Jv% z)~g11%Ij9hB?nsq;2v^N9BS!u_4_;@QmpT309wZU2HY@qJr=c%v40-Pf)}ws)|8gN z`C&jde@7~TBgQm+j@lhHvsC#goEG`^)xo~-7a^U3wFKpO+t8%zWSoiSvWfRq*huT2 z2|V@Hkn*0;V$6KD7M74>T<7)1sN(+YNkcc~)|td|8M?$}h3IcD)h4L>W6=bzm zNiM-Y7MCj`m4@=;S`IqT=ruvG({@F?NA+#vP-PLm2nLE~u2>N_WU9_tV&7n^>v2DE z!Iv-}0oLUG3=E8=Ff!7>)*i)YIsvffH@;=chO{YrI$CeE!Z_`o>SHFWJ~jBC{o<-q z^L%5vb`EbqJ_#=GeZBmlcWCiJ^@$uyR(_lE;;w6=f}fojIWpyQDK>d79j53Dn;-B) z;^3;CSJoAg@N`|}N_l}(CfK@=)(U{(SYEtf^2)zk12(-bk#?tQUA|uvTs&@d_e7d& zv1dhNDKss*ygyXPQ0;nY$e=5v$IK^gP*dotjUO= z|7*@YuItaj|KMDxsJRqvIERh!L<*DOdU|PXpyY_*^BoH{jMqp2q+5_@V)5Q5zPvn+ zn*lEoA=WW}wWRZ7NueT55pd%r;b-ubYuBMZc_yV2^NQ7cRU?nrc{27oPUVKLEC?44 zuz(w=z4)oM5gcw|8={Q#?FJsqigE^vs+DoDX5T@%@wo!*Op7AG1O8F~53|Xeu{+&? z!|IyLwQpY^^*5ba(|U@8DYw{}V8dO7i%`0c(NbB^0inWItJpvc)M;ra4&crfeBnbX zvEUpVdRGF;29?rtb{ucpJcFiIo)?DNL+z_83J;!Z2X}nJ1()t=6CChYG)(wkwKb<~ zMw?k)zw4SXjTAnA@098_UwdkY1_Q(Az(H`StQW7a&Tu^RDZH|5=%}|uwm-MUlcKR} z*N^(#HS1{<0j*VXaF~d{8|WD5j~y=~F5dO;vGFE%vwkgk3b$FnyvGkterjYXH3fut?AC``R=Ug@uk05qI6t9?Xy(p1cYVn^V zVi_~&D#Q6Nbji@8$Gr|YihQgX^y+@mXYi>9DjR>*vJb~4j5J)qD z(iCnOUHrmy(uqa)bL+#&M=dBBaZldEpO_ywFLR56&H|qD{QHlpWL$Oe{$!lM2-Z(z zMQd;<-UZ&H{^Fst?;yd5NMPnFWLGgh(AWUcW|7)ACKpmFtU z)r?fXK#Jk!oVn7oWnH1UzFIBY9RAjt|IyrcM>W+&d!l}d4N(D61VI!~TBLWd(WFTU zp#}lzy+dd!AEHzR=}meGCiEUqk#0Z;A#?-;5)z0&2-4@G;Cu7dnpv~f%v)>tC*

R)+i0r(L;+EnY&fRD>xbu~R+cd-;`HR&yFCkG6OFug{q|a*Z^yQ zJXYse!#+wxTNF>MmG4yIR3CR53PQ-bg&lrd#aR94+FV6c-K_UiU4L*Vz3RP~#n1We z;v%FYG|uNygFdO$Bl1pxgO-ZO6Vs|VnrCeQ@xr2c`@%&O09!svBia@b37vQM`h`A` z4lw2*_8Cp1mN|29-m=+=0DlY3T}z;pwNfCL2oxZ9I6{*`nEq%7UwI0Ahdcz?0B`)C zS-W3EEv%$30D((1AE5#f(8L&t>DMC6xX{-445JrAiwn{Mv%8x`CSO{>)UnhEVs&6S z5ZF;8SpH_l)I^SP;(UJyD04}gnHiE-pD+M&WCwQ z6uTF@?+N}vR^o@K1>-6XQ?@@P_rubv*%2Kcr{^bpDXxTT4*1!__Ev*d$)4> zYnv9mrJM|&oJj{jaaJ3q{Yu(N$#}0I7q+5sDO{?eBj6$HOb6DiirRpPab_WG9NlXm z`@wgbONz)*&0$MIVOW2VeltYgFHdMbpAj{(K8s1};blX4YS-bh^1bYf>FG?>CW-bY z(a=^t+j&im{SNt8a=^wtdB-xDW9$#~yfHPBWCVfX9l)oF5&_$R6EK5kzzDy)=v<8#}J;TQu(>#}xAj z^O(3y82sllllL|CCD^0sp_Vx8^}OuF9tjJbLF~?pb@Hn6h)r_?Ot=EQgkd8a4JPzh zWwo{9Yx3Fb`(WIVds}rogZi65x(z6S}A5l8A5VT z{Xin!53b+k3fCr@#B(;FNQi>1L95uXo-;PR*;6^=QsAL}!GYQ;{OPX-vnczQ`cp~h zeVx0jX+_bwN~T<5YU??pOmOw~GrNUHTn;L^{gZj)K3cGtQEIe197-LzG)Hn*a7fek zt|xr=0ZZnyq6V&U%N6em{1#tDG2Y8ioy$gAwd%AoVc3j&_Z92fzpu}pl~y%P_((z(&r@z z*A@6`@J{87*fZX`@>O_Kkv?KkdCw-PzGWf5b~f8p{WdH)&g>E#pj8A^K%WU^q*l!o zT`rxov(OjX2N1;Y-U0p6&4#>drmD%0L8e@YKnRIz%!-udey91MZ*A2Fd+#fq? z2``M$uxHe!C|G2o_b@x4whnQtrZfe$WYQp3P}j+nodbcF_so%IOAW?=h$q9@OEdcr z9{{>kjtA$ZkG2F|&PnO?swf@%Y#yVgc_SeUw?SBTbQ7XRL+!eO#5`f``dKD_q@|IA z13S}i9l>sV*V)J=ZMO}^Vi>8mnF50O0ZZ?ebof{?Mh5$w&@`-L`F-&C(Ux;u0PhTO ztPP00^-4F+^GLN3|1Gss()JXiW*kwlS=lSSyRX~PPy!~fRI_hwo}rAT(Yx8C+coV$ z*@+OhjO}Y!uL%H#8E_o1O*ExGYCu-Q9DQZvR&mQ|;DkIvbDy<}2Cc({LckfcTD2oW zx}CsR(#HhBd^K}y*J0y&Y0spp!0^mn2DDj+#)rp7NN|L`SseSP)sQ8sc}JRw58%~kGQdk1=gOr-xSw}YV4VT z4GV>-;ZB@|cx7p$-nPMG$)W8wpfueo#xzsw1; z@2LH(PvL1ncjh$}<<&P2)7u8jwPrKQZbq4!m{b~BY~o%&1d;b$3Gkrq6%^%erjOy! zV)jb=nD`ZE=Ljp4g**B5x;LWN=R+ALBO1Lq`}o#R{*2l;=KGUF*i;{y@cf$RNxu$u zD_Uj{yR)ZbtW}yn?19wim`z2OAUm1)own(`X*L8teLB3mBxOOMk=6r9Aih6YqoLdq zUQ5m{8a`N!sarC&o~NhUD!OZ%$OZ%E`pO3L(`~G-K8A%#Ug`9J?uH8YvzU&VraAo< zvpW#9H>^?6mA%}qE(DWHIM>X_<_+~@k=w=Jf)zdUGfZYau;pj66O)U<@r{GwQ0q&m ze!=?gJ)e3w`nfJa&srND!0=9W`ekSKp*GvH@D$V=nOIKWgfF8*N27 zwlsS7?XnW^lbkx6#tVQCGC%<6nkwQW;Fc&x7sxQ`ZVDhDpIO(Jyn-eo_y9Zc?J+J= z0+=SO-3&8PKt=8DoxV2!eeW|7nE;5gUHP>RZgc&R-t667-J_#^&7|?R+_uzFTz?=?81`q>nKJ624@6K+3_SO&Z zuVy>!z}+&W)G4UhZZwe?KjIK5!t$+6`@Dy;o)VBp?M;D`QUcP!Wl`vObIy=FbC*{5)iHm;q} zA`3QtF8nZPbS)cqH!n`br7IhEQ$=INrC3tzl-@i}a@>Ro^?AXR-nQ~4Y%SzQVEPi% zA@qv~;B+{T69P)Mxuxz7T{SLKjnsg(RGukf4p)gkHw(Zm6&tQ;CS3o3=Yo3Mc(|=d z_pBd+pR7@Mu}7ddeIEt z4MEbjlK8fYji-WhGwW>(pv#C=1dHq07RN_>vRj{`p}fa?20G{OO`f6DVN#FuH_3r6 z)0bSd>73grbRj3|J(XV2dU2fG&J;y_Q)~G*?M~^mGKJQxyL7?QDZYXe7nXH6}A!%*Ios%%Kg zEv51YYF_<6vJ+ojGF0zeJ38Fe=U~np1LDM)oG2`k&rIAgOVCsoHr_#mL!T$16;Ag% z*9K57N?iO(f!p1h%doPmHoeIt>6!oi|(2xq?q7 zr4TU`o+g&cNGpMdcdo)Mk9pnIU$pZH{5ugCQ01;dZ$PqjWwi*%lNdhz@%&m27+9S* zMqMGcgIhPSsSsX2RPNUN`jKGwq$!Z{wuwwXOY(Qi;J5L!zK>JiMJ6@OhBYB+S*^~d z!ym|DrX;@MtT*c|*r?pFcFD*9wsWmcr&|>1Y5|VEKahD~acj{2qJ!lupCV}a*7fGJ z(%j=fnwj2j3#P=P%a;~VXpJ~d)lk0u>fFm!t(u}AStR}_9nu{)OmT@i)AQrPF+QR2 zXqo2Jt6=O}vhmf>607#PaET;4twV_d{P6vT9Qr#l zpV4T3bA@++p(mlaL7x(XPRCqf-xPPO!+&L*-(#eMBJztehBIlV(iuy zYrt4bGVZ9(;`0i=@x2`qOPtW-msY1-1bwLbHT%uX_7%EfW2z8r*Z{K8*kOq6mjrh8s=~JOl-9O?)NAs@gKe+XdeUD-J$$^PKbAcVrl$$7 zuZyTl| zi!Zw9L-e~Rd9_P<0Y9wWI+44AFf3t+>%q)h_j;Wk)uN=NPH@Sk<6hfb3@s~3 z2dPE&uTR$%N7p{7P}#Z59E%Vb6}er)2~*7fK>5s;Jt^=`wFhos>wV!6qM)ycoK{K7 zc&7)&sYMTY(L&9)I%LPn9>e@_B_}s(?R$gn_W^n0ZuT-TLOz|O9RHFL=w5Lack^T` z3kyS_7=gaN5z(aOCMtBh9Kd3wUB4W$Jj&nMwWY$t`DNv-vdaF7A_d&%fKbBRL_PJF zf@$bMG}6rS9^FJPR1x7mOuFyiag5ex;+a6)86o5mUL*!9p9$lH^Xk=c;d9*4(&!bUQETs;j7%^JLx0w@_TJH2~8}Ud187ycT7t>SyQq^9Nw0I8?24P zW;l|vJ`POo?8OdQleGx9ge#T{)pk(*0{+mN~BL0a-x*IfUyx zpp5jqn9`*^oW9p#PGR`aoZs9F=TX%UD4(@|tJW*%=yllCt=|ZvhseeADB$4#_c{;f zeMvCh&GWE=|5o}F);qAM5RMUYkM{XU_$1-@J=Y|-q~BrHz}@3JyPHH5vdUwK3_5AB zdnsn^^=G>~bb$_PvS&k{$dkZJ@~_%HdD@aE7U||c$#yL+@q|X(gzQvJ|Fys*78Gpv zbJCRbKAbw2Ke(S+mM#5d#+YchT0?tI{}O6t>Frp5Ciz?Lf7lNko{3*mU2f8>d7bAq zv?X4KE}*$yxmXyc*e(6}p~`8}9kJe^%V2BJ+eU8c5~rUAXsA~THx6@UsXzY+}Mvip0qrW1^A2Yn`mijce;b>%F4^m)Qa2;=%rhj@B9YGG(bfzrkPV9W!>dWyaFGT+#( zhn8CAdtMQKHcTXN*GhzZOyuU}u8#wW7t|Y5$(4^{NA#K^ zWB*OqC3i%==}|N^CPc4EmrY5OFn4!w4{-o^_N z@`#N10c&BX9RrqtMROXtGaZAQ@ku4((D#Q`78z4Y{!`sdsH0bqumy32E7>Ff1ig-7 z==*@jVq99)G;_*R!=NQ zD08%0(Jgv%KT0)%G9eTVffbEqg zE$NiHeWQjl^47_LCl=QeLhG;cHy~X*?S3R>sO!EJb1=PhI|uibBm?|fU0K9$tY1jM zAtmr8(;a?P0Gb}70nlvIT~=9FZW~V6{(aTMAdyh==;B!dN^RAq5O<<6X|}T zHSR>1s#;DWjAuY(3ik^7DFMi15QWoiZMAoc&^9TY2jWQDX7OU2Fmv*6(|i?(ehncfdp(z9iPpBit zsJ;Mh39Fq4_G}nLt+uN(o1uzgNPNNDUi|V0FOB(6uHVoCMZ7tEwtf^NS7Cp<(hQ@i zZb}{<9M;zOT;8&J)L`9#Zh)oy2HQ95?jDrQ;T(6ohzi)@$TARcR7kv%!;|D^umVG?T_RoQULMXXjqF6V6&^8k zNQV1FLkZ6(Bv)GQDza=X569Uh>D@SaNeQ%kmuv^5(yVOwni_LVWSwuZaY3ui1N)Xc z;$nM&Id7fk)~WBq7*v6IHD{>0y`5m{*On4et^duxePcvTmu0{O+b2(0h=I&xn~nIx zxvDn+aBAaW6D0r9Sv*`fJxIG*&$ydMPIMeczccSKXv9@Q+sBWD<~zs?)ub5%E(j zJe>S>?nc>BTw!VKzk#tEv3M-otNG*T54R0b%Qw$Jx!H`?(yhkLCk9gF6w)-yods8O z7bVqk?OOKUjX!|BusCpvE($QBfrWqWjGbLE*u!t}7LeR3(Tql&>SScUG0YL^$~Em+ zSMTqw2QZ@ZL|sT!8=q`Nh8#*Bor6<-Wi`G0f%f6GkB(C`1i~TrNIt+R_GTSo{ooDe zScYxTxBm6N4;d*T>(UnGlZ+gK+3uP^A5bZWD=v?1JkxQjK5NBXdMd&Ho_Jnh<8W4L zdi%OoP$NLk;rM&8JEIJ$;10RqZ155Zag!YB%HxSRY>p8XmY1h~%s(oEIr8tdp0yW; z#}5C8P~XG3_P=4BYma~eA+SZD3&06_%3L#mp`B|A1dzW?`w-vXv-{7X-=1wBQ4W^~ z;Clg+5H5UIB(sD-zrNtr8HiuWe(o0~ z`>Nt}xk}{OCzi5A6Ygabk|eW#o7=Qxw1oUWaF~^*E;6$6WbmPV?oh%#$=d3mEn-mGts%0Re589F^=J8qj`$gWv2I za1ECz0Gi3U@#`%BFuuMq6%&}NIjpE9k>JAkHporEt?L2@Yi7{W4X@8ov&P1AE{v0% zwY3TuC{5NcidI0b<`Dcs7x8;eqUGK+WS*x->gc~yVVOW(h(u-+wY4Fh-pt^R<2#F! zQ9CimX>5MB?w3EXI-ePdGmV^D?UiTSVn0iBZ5GojAH3au#8pUPXSzb+_>&a*t?2^G z;K={Zqx8n+rtJlXjBgOL=pE)0G!x8|+obv6UWToW-li*CU+ux0 z=bt@p4A|`yU@ys(4VI#Qa-*-=JDxctu_x>O)+EMk*Z#!ayU-xdm9ovg?lSstTHhA4 zpPhk3lbPdz>%_82OPVw+oH;}b%ZzN3=eUN)gMLwhvKj>!8iKEE37q(7h*}DEZ}yd= zPW^m>1dTy^#Gyl=_MosMuGZr`>k(!2p+4??)J=QR#X9-sD_e9YKKh}Y6~Iw`8W^JT zyMYH%HJH_&nMX<-XudYUS-2jvuL*KI6{qO^Cv*vEKGZ1+T>4O zo6_NfZwAfW+Sedac6NEa;5*cNKToo&A>XKio_!10`&h-J{>X zh8vCq%kKXyF~tUiQo4?!0W#d@Yr>9ez>fT@1k*^ToKB$}JsCwwktQ&S5{{o|A&7bP z^V#;F;SlY2SjdHZ%VoZ6n~NJzMZVv!MFm+D2fY^ubl@#imk0HN8z^vfA|IzQb!4=l zl}eBk|C-bCvX7l9wYPnjtM}fYispJKMm!$^Q)cIbcK8Xy`EFYu=@A-fo45fH|?;%0VMN4$)*cEE*pB~hi z!31VPJlV$60t;^~&Y8>(S4$Td?ou8Ss$6CS&poY9{39InPCq-X95Hdk4k-Q)Kb2kX1OGS$o4E_+ybk{)%5k z066`jiA003(wbds?q>OqJE$%)n^FrK8fL?l<80v2gj}yo@fm$b-8~S>_S4c2sL^=Sy}44B4dK z^|oe{qkOkie;|`pKiprLrAyZTP=P^3MnPgiOZgUb7(SLjP&-Z8{^vVgfPX#EULUS0_M?B9n4cai{BB_rd=j?jK2Ei8L>?bUpcR~u=XH&MO zHGFL95)}7T9vJpQ4`kHjfr`DUQQ41Y_?*_{? zn{;U36B9nIhCGyh9VHeTcVpj>eDp%G6cDhfgI*3WC+E~`>`r5m*6pU*e=SX1#AL>` zEBWX-x*E1t9h8TE1>n6f!mLKP`U#YF>&b-c3&cY6n2j1PY~>B<^lL?~GVFnTE-xsWkUXC!FcW4qCMW+K}dNM8}O zbrUtXh)7`rd(6U*e<`=-9x7jidk-VM#kL9qr#29E&fZW3TenjLF`<2PIj@4`jmw^O zgk+A$1VJm@r1HUnDMnCRx43l-U-Zmuv44<%PKuuyqmGv;X<8o(8Er(=Ww(uZyvF)) zuYUSwpg$Q&`@q7^!`-9*U}Sq@p=&i95^Hj4JG}NFls?RE)5H?dyX6`j_q%urX4TaZKmGJG8VPGbTW5w6m&G^WHfqSyeJ3>rxX~K? zUa6gRAf2;j@_}|U<>K!8K!u5P&omA%Rpmh@_?5IZ1~RwTujWC%@B2E00IHaLgx{uO z{Aa{b4A&nQ=ix;FBidMIH@M&20}+_S_jLxYhTP|7j&vP55Im?@YV?LBS)2G5#1*-HBh##vgU&v_9NAXBssYy`=$}PvB*B4FUe71lv_E!xlZWsr{AAQbc z9pRr!O#N_FSBI_%}yK$-domA8w}P;icr?*v?;8aDB@H6h-k4pd!9 z1G#-(d30g0xQU4!>S8zn_8fGt-MQW^4pw6uanPN>Q(bGTK$*Cu>q~Uep@$ZEf*_{A z^1N&2*V2VN-{rwDpRjbCG5TZ+oqs3L zt_MRl#)n!Fy>0WM#sfJGlg2h_z-0vr%(=$bPtT894C=qjtzkBT`QG=CDQYW@b$%ld zGtyuD6osazEk*2NqC1_6Jrct9M0KeV8E1AQa}Fei>URhheH-W}EG54<*PQ97i>@)s zRlZ~;S(T&X_0kDub0sdvBYl*&CS{!YfrYk+VhPOGEZxP?gRlODNc4f;tg9jmFE>1j z^PT`+UbD+g-_*S<&A;-AMh2s*3%dISViH|T z*Uz_@o_#j{P-L2tgAxs(n}Q3&dK#N0(Kv;1igov7)0YP>Yhf0Xt%&|5#_3H2C0whY zI46pVHT?b`Jwo5nlef*hA1ANKrMU6aaFMc(U9{O5@p|k7mquMeH*PmJetAQwk2|O; zBtg$<)aGrTs*agv*{{0#kG=Ne@3fc2TEIFH&RWP7-n*loW+gIaWP3AoFK90ALoQD4 za6KuC>KaAm-CUp~;~>z;!P()@Gg50cR4tDpQYscP0d8_y8Y%F}#gT5JVlfn9G!zEd znxiMt4Y?4hv3L@u(&Q&R$gv6OU-C<58ijEX2jNOo`WuZwVtj)x&iAMu=s>F?ts^HB55rxh0A0+&M`E}yCyt*GVO%nS0W?yVEVkTpX7PW`tRF!LQs@h%rG+W$f z8kQ26=3D_=RrG)To?2;^BH%o{ZqcwHFb!T3)f7iFXtjT;=M!&R(?+L8T=gPW2sYd$ ze&}TpJTNwZ+F?O{<0ek}U^9nES_hmH z5nh+fA*iUZbH)(L6Gk@=82X`oaV+_4ket%yXNwCIe=#anMA@r@HW~eZA$wKlztDmi#pmMb| zj(ZF^in{nz*=b5t6R`fJC}(YN%IAt=RLZflnSTd>F9R3)4(uZkTbP9ZF=(TI-!QNwNO8baLAUn>zvf35>!95fXYhMyB0@oq4HxYeH8?H@jVAU~P? z^~eLvj|R`-RB+8aofkV|l{zxR0Vx)J*ds*qglUu@*!FKB+k=9Eef(^}!VvAJ8zzN~8FE`Kz|K8t*MU^S z44nRyZ$A!{qMHBgfkOFFyXK^`bxM13)U7kmMBqL8QZtgKiPDq5NW&7AHXUM{Sl}%p zO%MEvunO!b}d^U^QmfT)+GX z!CA7Or>AU|TS7xY=^l+q8*N4 zJ}*y&Atz*^E1%%>3ane-Yr~B9UNHakSA#=8vIi*)PBPQ@_6BTWaVx}AJ5xkt6Wf*x z5XAcb<=;olMzHybvdnVY_@_VvxjYpOJfE6-T1i{FTLB+5!gqx42;31BxFf75BqDuB uN?J^e@6H|RJ9lzTIzRtU4>-9zwX^p7Uq667;uf?o0#!xLhlu-6Ui=U9jskK3 literal 0 HcmV?d00001 diff --git a/sei-tendermint/docs/architecture/img/blockchain-reactor-v1.png b/sei-tendermint/docs/architecture/img/blockchain-reactor-v1.png new file mode 100644 index 0000000000000000000000000000000000000000..70debcd66988635a180efbf0fde3635458c59597 GIT binary patch literal 124042 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 literal 0 HcmV?d00001 diff --git a/sei-tendermint/docs/architecture/img/blockchain-reactor-v2.png b/sei-tendermint/docs/architecture/img/blockchain-reactor-v2.png new file mode 100644 index 0000000000000000000000000000000000000000..5f15333a0080cd93d01496d7b711e00d84d2083e GIT binary patch literal 171024 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%0AyOZVkp1ilOu3?*@M!GZ| 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 B=v@E+ literal 0 HcmV?d00001 diff --git a/sei-tendermint/docs/architecture/img/blockchain-v2-channels.png b/sei-tendermint/docs/architecture/img/blockchain-v2-channels.png new file mode 100644 index 0000000000000000000000000000000000000000..69886da95d6b00b974c241fb54a29d422f769a9d GIT binary patch literal 109340 zcmaHS3p~^R_kWa%ltLk;+)6^buuTfP+Ldi=vy}?l*nMVZTQ|~8xhIi|P|`(3sYK~c z=&C|Dg)Y)fDRle4rqB2L`ThQn|Ks07V|%~%x}4X!JkRr-cPc$NXtLQ%voT}FOePU= z%rRrek;jZNJ~eSX_{4fjd-a$x7Pr;-aJ5V;6iEeRT;bTif4RaSv5I)LD;(zvgC!;= zdhu0}iC!WFcn2=Y6nv3TB;fzO41>TRo)DNP)H@6YafPG3k>CY_@`6DjyubHH#t7v9 zj73xEMN(;`D~#ad1p!03(ITToajG#QYjU11W^=`+Asjm+G`+EC$LE(nkLnDQeD$)NK#;`k$Kou`i$p3B*3iCo57HYU4P)El6{gjEJs^ema z;XEOCr2r$)ymcoQ_RNH(3thoMJ#(l#jOtO-IKBqYa`!QaD1sH0KGPb{Y3$>6t6#q^2hCW1j=!E`}1O)TIG64a7lTp~iA5DTNLgj}*L z0R`m}VT5obQ5VZq31ob}KrBPT5>Wy2p zUP*!oG#nH%7*6+&^$q36BjDUH0t|-o4h7nVq3X3VETEtG0Q<54Vi9VCoP|s!79FnC66297NFoOxE+NstK@-3w z@Cwn1@KO|(h~r3Ou`0Y0mmmQb$S84?mczve`FL6)mK?;@GAU|?Lh36bu;L~0RNo*S z6h`un_2EVZYvn97OTr?0t6~Vqm|z+!DwrjT6vuNhk@({Uf5?VqaqYc6%L8;Ng zV2V)1q$!CBLEboTWfUs}+=WMlk6RYQd@kH9h5SA(gj}`NnP&`(W zNW?`kqQzncO~a9~iBVCANF|O4RwUx6fZ<_;dK8Z;OF&TBz&gP9(Y`3~8ZW~sed6RH zC>o4JiWDb^LZX*9>Vn&hwwx}2#h>I9D@_1G(0pGA0>rrV+g(~sT>j# z5{(wI!H5tAhl=s$#0u%)4cUi*mr0?CA}JBZ4g8!VxO>BU58e5@}k)R&77SOO0+gc6c&jL^A5r&!M*YE!K^4c4tU*(lP^34T8g8&6q{dsr3gzi}K`Heh4v<$I<8+p*~c!UYkH= z!DICyu`oUdhTs81V@3zd6j32!j*KZoM`Jm`8Xq#22oENbArv-2h2bUg@m#t{i$thl z=wN1OES0PdPYf5+*^p=)MHL$y6B8K|rl5<%!)3fMHHIz~Nb#W{1mWQ*JdK45gJX3% z6hcLnFbE-XPC^im3?PCeR6!2H$x$*XlP6b^$ðMKVH-S72~TqLj|jQJGP`(K0d7 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

_Ec~xce+}wz*Lw6oPvO3LR@35LX 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≫M?HPJVNYAHMb2hRMy> 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≫24h`bW~_;;Pkwoyh<3$`2nq%5MN9U-+we`**3v$eY#49 zrE=-is4rWt8qcpQaNK$(c(Ha}zbc+kuqv_Duur`{BSf8|;LBE!?CZXA>V>ynKel@j zxOR|$c;@f>LaFHVXxKrTZfj{!j-G76H^d9g#kDBg=KA}S6r10_|FmA?VI(?Ezja3+ z_n?MT??PnUvz0FkkM#b>B2)iqKn!K^yNM#V7lMaZXMYsg7SwLh$)44XPR}w-4#O+3 zb52q=mD5#1j>Fh5?u?xH(!~92@+pH2fx5{!LJS&VwR_4fnfOV3!4MIRp-)0Xa~s*^ zChSDOd4*}QkbwBL$5{W*nTaBM4G{a+LdGpOfCHN&Z}d|`_3o2(C2zEr?|Ej7g~*O2NnzGXBg;{QIiRRZ6J@g z(+f1$+b!8vz{Ubpnkg+JqwNf3+)Afm6D7^-AjWjBi%0042gown?2K_u0ljNyN{k;B zrzRxlJ6}?T?EhgSIPY4Xz|V&RQ6pOY3a7wRS}MjI?M}X0Owd9}{hKkGeX$ZEgKz(A zC|mk85{El9a78jnYA?c^Py64~sLJ=!p~Y7o>P$4r9wu+8$P4^fNFiaT15G*s7Pe1I zZ;V$|A0+rAR?_isj>OFQy#C@5V$`NQAAiBVg|2&N_+p242&u)gntjE$oQ`~osjKH4 z{Yi+yAhA6jN+iYL4&XIW5T*dfL{N^|fTa#lRLpjM(yAeXK)Ajh)2`oX&4Uw6V`h4L zw3RFpHEsS!(bOj1psqaph%=CM)Eqj%FT0Ipl=RPksLIJ4Dj*46GAgiBViLcA+ zgcj4t&|tiRfZeI$Yf=<6qdXnMb$PogXPBWsi;x1hxO0B!wD*Czr|5UP_xFTHrh$(9 zANG8ogWY#Z#b@Puy~u+N){h&-E2c9Sk>G2=E4W85On_sa@mI(R1>A26)@A zk@%0$^V#ZUQ(e`0)0H!bbP!DULr*A-=ln^|Fs$IUJH7JE@o~$#)2NvaVe!7|>&CL-IF zqOlQ6va?d~`=b-9<`-Fmfq44RhTGbsYP{l+ zFYgKPUVT)FNj;?I&BT7=Cpv=``s;S7?pcHiWT?>qa<%hYwZ-{max+ZYz=Aq& zF{g4!TBtfOt8`-8LMdy7NVuD)w{TH<=qC(6?(CG{nW)5~iP`Uz1fvXfe($Nhe6E(b z?dMc;oCL$OHcVtAGR+*HXSJ}Jev}N7$ALH zTgjZNs&b;uJrh}rDbqU&cS(s9pq~boAuRm#9rsTvNci;QZ6QJkwQ6PVV5kVv&nVgD zI6$RWZheqlQy4|RzT@nElzMYB-XIpd{nkGwuWvSgVNRWz;1wSAi$O6=yNdAsRvm-# zUf>&S@?}6ZQLE(Mz4guQe}2%D&E?;2GUJ{eF2f+(!2JWaHyciw{0DyxEjLcOB9|bQt_OAkM%zKgZr%8k`KVh!fn@d=> zoBit6#nDO#oZ5U^1Te_R($|Hif3J;gqsgziI+}|zO)7D_Mh?L%MQ$Y_9@_G{eI#d^ zM0P6XHy`M^2Cd$_6No9e{F6O9 zG`2Q3Ryr;uFT^@@-Q=G)#KT#JV%>iMFZ=pdB+uqhCQt4tlWo$apxi1ea~3xGYT|$s zi09-q){=~w>m@B+TwgUSjpONc9h~SV`Akht?dI2v`WIIwUX@#}CD+YyuV&o|SDsD}7{$K?=ZuYwmbE`(I)HCSZ(Z(&(z3N$J>j(x z&Pqzb_x9cNzs&C0sf$iAi!Ev?k2?rMjz|;`TsJ@7Vz&C+U?3JG_IL6K>tu44O0@+} znA9kvrFzCmdD`H8^0Tb+1_-}o{FpilH#??J>dDRO(-d6Nn(il zoftP#8)x2UFr8xM-=%S@3uaW-VS7umFj8`7>1zn` zLiOYzf%IX;pBDOV2Ca`o78(-r`oNjUFMJ-Lpn{3j-ged>8I2XESFVoXzR&pVa0(No zs?i>PozGK=DGn$-`p8w~YQ1GSTR!+U#MS4$TTs1t5qd1RMCDsXNqZHe)AItn?)vHJ zCfKrhQS!GhbV%UM?_I%wo6;2s)8{ z&4l&rQM8M-8KHGFb+s*eojuCVJ6}FcKkqVv)+~sFatV7&CxG%{hzQc8vW3x?@-g2O zF#EAAR6(GB!@w(s=9?mxU<%q7p z7Q|+@OD~hbm6h28Ujt-cdls)x<=W-6AYu~^VHK3?SKg$w+kLUhUfJ@pV#Lys3#8WdP%%u5V5n647Vq&3t~;|$ zN0sko>J|7a70*{6lT#iYrb;CfB-dG8dKFNcwVoy?JfnWfj@+N%!)QNzjbfCsSpTZF zxn`x+VQ!O?E?9m@LO!zq5${~79OvL9dQMlAxS=6p`Nn8Y5O9J>4eT+rGI#V!l1l>N zU#qk;vMS&9{u}3e(sA2a_ejniazPpyuwn_He2X&vd@N=~0*AoP*NSWv59fb2T#;FG zc#e_ANQoBd+(~e>Tv0%j+#cuOZb_`5o}pP4$WYV0jWShLK8B0S+DdHu#cipay!&|t z&zf_wAH*4NDE3YH0yr|b^z<*B>PpINp*xixc@aHI_o=`05F}D*eODe{zXRt4vc^@P zw04ezjK;-m^X0_%h!p5vz9C9g5n*O)B?__aa z$Wq?$j~%f@A2eCzemKIr74?+dswv3t&DIB*iMlR-ilZv*mgT&$11fqB4b6*LrXPp@EZa1#IDl6^CAs+hI$2-xUBHtV0E}))}_rhWi zm5nqP$`WN9Toz-OZQ-pm`8QR{XnVxrHGk@nk+lVW%)Z!&CXk80hoU|91+nqgfepwA*zcHOlKhU*G$_ z28%BMjV?B)ifA%hkwqcHM80}8yc&DiNT|76^O=FzlU4b9V|2w2F~~73$6;@~`c>Z2 z$PM!Y}uRlo~(Co%DB%Mo|8RDB?oa|pwA-} zwfTl!vSzpo)RqX7$noeDK1dB{E?XG0>Pdy(;s`Ka5_xlp(s^;6T};zEE%bWe#7{kH z?Lszsz8Yi-l}i1f(CAxm`FS@}i3r=NJ$p~Mi+3{)Pb9q!4THN0l}dKID@eQvpQVQC zR(AhW`iJ1tp^*F$x;9fKo$sbOHCe%Dp}ba^e*Nn_OF%C$+HJosQ2XvUUbMOe@P}Hp z+&b+8hT6%XuOF{(PKFU=>{sB|xm|ozHyF?JR8;K9GE^jBmZi zz+fQsM9-|TfqZh`vFbiJCllP{#3}0jjA>R2z;_G>-ZDAnK?CaOw zhKX(wzjTg<_U){}c8#y5Lf{2XagVr($E_9zLr}GQ7Iz=L-uX?FBP~GDTUeh5aEaZ9 zA5}t}Bd+cnYzW(1PFI)z+XbjKztZUlcbW)pIIRe9QR8(;d~|*e!5w;DAMtAXcz%Dqt}UcGz4p** zp6y&952N-)aTiMK-=FM!^_x&S#!EVrN8V+}YD)9>){SMYFUmcJNhMp*yB|@6KAfg| zBem;=^i|q5Ao$k!nI77Uff&vgC$mMO&U$?ZedY7d)?&c_X-UO5A24AC`Sa(``GKHf zgZZV`;;o>&TfMV3=cyXY#r)dIXh6I=Nz1z(iH~$|EYtF6 z0L4G#`}gk}UbkoPQgi%nX5v*9D0%?$cer!)`XyjDBK|!RCcUw|IRzL7NJAf^k@Hj9 zWDn#Om0k`m4W@yf!K6%B3j|n9eZtr%Wo6+m@8q7=CsPk>QtKN|)&LE{{}L+Xtsj;A zf(n3QVbfvze%+#@3KQ@9Lg+EB)?=O?y(#XhV4*nq5^#p!F=w8xXFRAhul4eN&@+u) zB(%ZOoshgDKZL&r)9`R&o;E(GD}f(Lq+d?8_+LdKFFbFRPaRX2QrK+Z!LRpKGit7(PAfEfOtsnu0K~-)am= z@S=Mw<`%1}H$U|rsFnJZpE8-J%2S+>Q=ua|Jq#r7#eifE;JRL^8Wza5UTj8;=~U%js-I|MLChXX|g96Y>kYcIHZ9KCus>D?hJ2plbt zr6XtO?ZW)a<9^1iv3#rufop1k^av1GP@!{!`VsuyK*PE(T2`Ph{r<*ShMVHgR!ePd zLb7#pqGp2=v*GU-2*EMZkwp$tk5g=Ik2BoN%uIwpPbZEnQ8cklya!0`@rh(mzD539}6`#jn7A$98}5l>G61dTTkDm!e!)nJ&4=q3gq80en7 z|L_3`c;U^;%NCu^AnZU7OrYpu<&IBI zT!55?3lL?Qsj(zvW@bkGfk{KnROp*u;by+{^3%@+%cBFF|@v zYCA&iEvISSa;$7}qPo>{L*)fM-sI25av)(o-Coh1!r2Q#)&W(t1)V1GnlNxSGNj<; zK9I+)wv)}bJk>H9Oymvu*G%uKlYnxHC7aJG{=8 z6WIzJHG?q-FK>JP3U_l!Re7c4%6GGty-vT z>lr6$-w~mpCtrU&qcPBJy4lgbUqL82jbw=g!mNOeYeD8w zt#_ayi3qHyV4{>x>hwlJzMNaUoBSfRaREmpCWIaYLaGehbM3K$vI3dw$x`$e6tX~~ zCo1ZBQE{<)c=C@Qt@5(`U6PDVoj~1c7_i>DPnVqh9b8>-J6QKYB|#Vy6(}vdzb<;j z13RrV#2Dr~!2rbaR@~<+U7?8r9z3#ww`>SmA6n(IH6S9f+>Xw;1~`!U)|j!__NTPH zQrXQXZGak<{q5NltHC3b(-|IupdL%`h6()3oIu#XlDoU@oD*1yz}=;OqZT7V zB!@4~LmMiz&NFRZbYio%@kT%(ZKtdu9I){sl&N&_QTSa?b^Z<{c6N0!gU17bu9rN5 zuO0C;z;*ju?r#r-!Y|4i_VwER(D+XO2!)aGU;hwH2i8>7hK8&bXa5fRkU2O=Z0<`X zz{X;zxVjO4e_}&_&5yvH&a1eRcYOcVS$=-}U0IOWA(k(n4m?;LFOCP>f*iz9P_o_9 z2d#SqC0aV)KoS!E0lAlV0fxK+mQ`E1Qey^tV+Zoh41ZE7S=fW+ylOE3SAyGCZ&db| zIqH zjQsjHNf$A>b&nC61{VE0HDNgqY>07Ac)pj#JxBkWz2Rk>A1NtPK++I!mn$eKkvJu< ztmpyZI;6*#m=qiwae#$4TfoS|f)2>Hh&o6?8u$+zp1pk8vmUQKM3wGtH*Klqb?XSk zjDkCsArC|xA>jPHxIwgF!azI$4m_*XLZ>89Dqd%%-$ZNQmOYSno8EnWx)!n51k7R4b`74Q5{I-z4)=Z zx6s53l$>58Seb#!6xY5x85!}&QYQvL0Dcmn>oc0T6^(|740NofT=^FQfw{Z_xn+eR z&?)|YcJh0we{Hs$P|2`qbvm^Xm5=Fd#!EqHJ(@c?&NGxKn*20DTTdB4gMl;bigqU? z{`jbS3e?}L7G)bvXZHp!ZN@2rmjo=&1FN^0PZqVMMwHEwY&u1luZNYfpU+h0p~m{| z5DEsVci(<*46*oY;T#-w{ju@R2o!?}*61xd7U_jj+k(CoKYDdULH~r?Xk^5P40?@% zl{a%eI2=kC;=%xTd2NF;Y)NiKK|_c3SW5a{W}yM1f=OG2qA^>K8jmvy^b?%->o%N$ zv^)(hZMN}n8V0FAqb93gKtPRy7hlZmtXg~fxz?iBBGS*YvTy)7Zb{0^ts6c;fMgsH ztK^<{nzIyblm> z0{RjNAqus;#)yar>l0>BGvwQ-<2Ply{RDBDJJ#h=+Dr1NAV|zO>%Iz%*c@yCA680C zffmHz;4UDR_azGVzrLHJ;4Yn+3PzNu5oGCId9IUNPg))vl+0J@;<7CCI}*E-t*EsP zJ5QWFulV_@Pa`Z!RTkg%&}b(1=S{UhTDKqTj*~J{(b3c>p40EqlH1}#)35MZ17Yti zRLCGC);Q?U=3!**h1QoY2P;SHkGKJqU2kRZ?3n8K0jH^n39N7vCcx>Xe#InHj^mw< znbH+xRn^ouvT;~ieAE$u9wygQ6QJ#v$Yo0wibv0*GbNf~sFX*p zTQy^1CGhiUeKLn7Pu7D8ptDk8xBi=yU%>fL$7y$ZhUQDXCr_TJg_}a>3JVJ}3kn{Ov2kzZM5{D7 z(YL^12SLF4>+6%geS7fwkEZR$P--L4KG~hGi$*a11Bo^gjva&sEYO+g2bgFu2%Eg1 zv~>M^&Uyp!6(z~A4D=p3L7oOVG7czjk$QvJxa7bC7NlA6C9x<7X7YN$rx=fxEG?9u1m5-FAl)ZbA=P=z~AUW>jz9srVm>PZa4ll4BD7LsDqf&!skK8EAlN*ojS9>s6_YV*I8HOy2Cspj2(IX zX%Yc(cFjHZL2=ze*UF-xsJ=KZ1eqaG>~D#9X_E4{;Z;k$t#DaHqfKKFlRly+fPy7+ z(c#lY+P6WwrKgBCA8}s_)``p6A|aCV;hn9)(;)NMTLyZqZvEo>r|)aJsvr4 zlIQnIxW_KHaL4sNf#1fYW7XFyhST=^h0_!PkJJNZm8vwe0YJ~um3vN3&XNt6+7s5E z2-1iNGyY8{ApE;})I*AZaF7ypXgK_!B^`7O@aWaXM?csOBrtOkJ+-s9N5bc_(dj>- zp`ihyBb6R-CrEcVv80&TV}wFTPL5xjFKTphvLpz}#woTac%lB=+h#RZFtB_55M=eh zfm%kOSqRFDg7R`IR@N#*3H$OXNg&e{p!*{+F?bMfbNR%h8`udbrDv*X|I}G*{>d!S zCQVq+K$O!2Y@0uNU|;7UR?uYN5J1Po7X`E3teWJU-NeGe00Ay{XQF``1+XaY+tabi zxjlgTFJ?MAI$p7xjblgTHa5DqOj&k?;06u=i`wENx^;mhuo^!Fx^w9_YgF_R9@ks> z2szUAt^D+EqpHZ**oosRmx`0A@o{1BIRT^xQSuo9f$KD%Xg2-bJvo^j-8TRCo13ad zT|GOs-!`6J+n8@3}q^s>U^CK+EI~Z+t%9m z;aRhLo&FTI2dcx!6@QPgXw-fod85f{$SRoWF_Du*f7>2(Pl8hdm=5PpBbbY@^%z=R z8)vP=kMp&%zP_QmZ&5Coe|Gt~9=`b@#crb{4yz^S#Fm}2!e$4RZiX2v;_HFJDH?X4 z)GHera@RE5-t>PRI`~Te$21oPn~s6>d$uI(jtDP~G_Vc%E#Xqm~!x@D?I%-rLl!R@rCT2gH>!;eJyJQ7`6L~s z^pklTMJ1)~-biwwpJXwnfofM<0`!br^Lea9vrnGc{MrDK!>6}bY`=E(DT(K$E?r!c zSA;t_`gs7S=~RE_NVAe+BKo_ccJM5>898O)82)d{LoOJ|P5D%0slP3x5xlK--zxBx zj4)dgdzzb((--^Ugj#P|P4SsC(c1p4G-`hS=*%KgJy&R1)VXn?S3NDpO<$F(@@p-5 zPnGx{c^)j7oM*u{J=+CA;!>FStQdx2JT<(%idG{wc) zu=*2`YO7O&i61p_JO{*LZme4bJHoot@AR5fVLTzD@M zCXwvd#r1Pv0eJBq4V}e-sECa5iS5C#@%1Hq+iU5R2dUPfl>&|%@?c=@2o0PuBri8T z|KkY5-%}u>Xb`Cllw=WN-VE`f01YiTuYUK%`(0h#VYp|}vuEN!@*w=2521*Ax;Gc! z7fp4bO#Q@Xu^c#n)Be18xmJ>vs_~oVmL(RTv0eRIJ!NB!LCr8)Gg?4dAR_9f816~o} z=8u8Gtbro|=yXyz23g z+R`u@OzJ98tx{`l+5Or7E#cEz=SdqXDbZ=&PI*fj_-ZBw?cx*_#Nq6pKZ2|&SjmAR z%7Mq#SPkK{_DW8LT^ui!KwIy4Fg;9|mQd1#6Rt`E-{zRaV{Gfhu=@hyg?CWU zk2u5pF*gmknsVCU{N4#9$hOmFCrI6k&2b~%AHCpg9LdHi-988-nD5`7767+#h)S_c z8&N89e-9Gdkw=t@y=dKfDpxb&oKW}8n?=m~tTuVVHH4LpPILzD(c_gm#6jsUxcG|= zU8bf8XW8Y|CBmf)|5gxQj;(DZ#yL^|9|I+$#mpJ;$^9``@)M=cU$n)bCxN4TYe*kt z=-T3*r45u|Lv5zkjPYUc-MF0#Fh9Dhx<25mKU7lM(+FBTMddC8=-P1^E+cfnb3T;i zn8uT)a`G_GR1Y5oiqVpI`KR`F@+eV2V44RN(l9aft9dN^>L1$@St57i z^N{ICm8NBy=At+ac;_wOm*z~AVW?z zTCadu*|z(Z#B*r;Ry6OyA*`$mR3DTGpdy?@J7Z07o!68qQtCuVll{QDfMd5P$H~pK z!Pp#&L-H}z1)py^hi326iqBhNho0vzC2k)%Nl6{kavolPy^m-ax~H(W)6!GkJJ%77 zdo3BV+h#~^wT>0te85KFtX`H=_G3y(@VCA;tR{b~fU#E`+zBZTHu2XRVMK2+nAu;4 zDa%`58>I-CBG(Cly!ymM~L3U{~6qGBQ)K~ z!(=r9gS&(4mo^-n54jQiAr839ZzBC>+kI~HGf~Be1#1mml&N+ZuA91}-c8=`=!4_>1;L;&6u|1Um}$7Bxzju@1h^&MH`h`TxJ82Rk_NeYFDeNCo!F zC(CJ^e?jdcJS*hxOx79^LW&c3)`m@p)LPa>$aI@(?P}>&6+aQt=s&fNqO)XZ9LZF{ z30l9kpq+BFRr1fVY?onbH8hsgdUt=JE{7m&m~D}QQI!3>mU2bF>ko0yA_oR^IS(7q z?x$J#n{d6&l(|VQoFfDA76w-K?2j(zKga;nNln$o_w%2D08}JUWONGe=&I_3Mc)^T}WKv|7VW+SA`M5gwd--6# z6Wj_CC9^GhkKVm^;VxzJ00%z26cL@io>zInT7NM!U788P$Zo;!bub;OGrnVQtl5^c zlTb3dK4N&s%@W)HY5uonbh@tlHQUD$9~lewvL~Py5eaX(#65vFelM5Dammfm6>7Qk$mvB8_9S2lCEoNqkXSa!ujnrNHVy%Zwl@0quQh zLz?Dyihu9Z^?yEBrA|CR;3?nl@VIJ9u>7eaA}BIEZ%6LR5@?C9&)dFDljPSI>$fvb z4rzAR6yW{qf$UAr5ry4S_xM~R^!A6(2UmAIgb~8zwG1W?)qBN=0zT;68l?yB!up+E z)_v#US7(ha%a4v}?ayhOW6Rz!&;@S^m92wg(FaxQbm>zF0l(wG;tj`zhb_N7N26F% z!!?uJ6O(h7UK-VrxJclTIJR65h|Bm%?y;@q=RXf5*I6SyGecj`i?*_;>%Pj2fDT)# z3bY)^Mv#LTi+EbXlpiBM8#DFnpGAY5!0_LY^uaAofQ?#t-+LW`>AJdd)c+bAkB;C{ zm0IiX77yyCk@$ne!jUsTOUZpdd*{o996KjR<^I+Mvow%j#JBDD=UT}MH&F)*8<9*p^FSvs#*Y4l*gVyF$~28Di2;qec+s^Tebd6{bhu0Q%Lc@4K6PBRE@A`1|Nz z{zGK>ATcUtkHg_$G--$qD86P?lS%(I+(&1?e7lD3zCvZ33F8aZ(?_j44)Tq3P|d39 zSj_utd}R@Oh^f2`g{g42ZVgw(<{xLUA+=h=O0o_$=Ic(p9ijqMYg-m&#*QP(+g!8$ zBGcK4EK6VRE=s)Y+J2Y^+dT{^=U<@2vrg|vv~~be%vgcQXC@}NH|+_5QBu_u|KRbr zt36_Eu&l)N)GedRq-vu#L}X*lt2eJm`XAtlS&)BPzfZ+0&<5T38=syd%R7_(-|_7(Rk^^7pI>!RyxT(j*bowB{esH<5=VFu8AJFDE; zd6~Yk?l0PJ0;g(=D%}exm@mq!M2m`d$SkPe^J!bdsa1qP`o!^ukzCgHdOYmP5;+rT ztiG~@v|9jWq?^3BGD*R;^SUcL+4voNH#U8@lm&@kM7$NAom{#^f{X(VLMu8xDNZpIbQPduPU_U%iYbSE zGL(7qonk^br?c9)Q)$()UiH2_0(lW1h1@F9hkbmZsD}x|cfmICG`!#7dP)29mzHSY z*D6gXwC_@VICFMj6LfP&H2qHQAuv3Nd%rgrI|2c1G}&r-wDCiIR_KP{WV%lU0@)kz zPQY%H0^5GK^|gxTDefXJJsIuQi#!9Z-&r@@V57v=E&0${l1W;S^lzh7)o{mJSm-x? zu)DP7jc|jJ4rw84y<>~>6K8j~ymV3r3URmw&fTB(RP@4&abyGttW;OOxJK+~3Fnkz z$l$jcKMM7J|8?Ym_j^cCO7FjDH`=GcwidspSkeQ!5c_#kuaa1ba^XJ^5yL#hsZ+Pg zZ|RIvev3|Ui3iw6w)-9j=s|6Kvp~^uGUCm*Ag(L-l94wghHPzor}X@s&LLwrjE^VA;z9SQfJVqJMB-_o!mY!Wk~+J`cfsweYNdFlK0effHc?Mk>Ys?E>U&ZA8ycnI7{1 zENWO0_y#md!aRoAP6g6~hmG~BNowUcZ-`IS!NEi^B~*f(0>bR&O;IV|ao>}Ru9iUuNA*z0oSEm}a`OLL8O7@XW|9zaAj-XeQ()WKMD zgwOQAfn0Uu7+((71}3D~V$+P6(htL>1wm6Xv0-cR#Cspm=@rF&@Ia2TA>*pl_xXSj(!I3n=f!$-YHG=HYvAadE?r)_BM+?_p z+Z!JN(ZPvFB{flFgGqHm!2Mb?(!&rzFZSJQUl~EHiZZg~tZOnz_Zhxq3V97KPN-N# ziE0JwG&aJEL{i8D_OW4*-ogR&e_oV1l!bWWKb@Xqs*1mY0EVA@!KiDnorobJK=I!Q z0w)CP;FEvVX$IIF!fNw5lbyZBT&;zpvFe@ z&oO?$2Q>{8Q`=Wk#LnCkWp*6#rH1-j5_bKQOPt7E#Gq)W1`l;ZZ;hiHk*D4M4CQTV z=Tc0hF!##0IBm6bpElsquVVP3)*q!GosJ5QY!*_14Xs14zLP~%c^a}eJhWY!kU$4J zLIb^Hkq*!AZEd0Mz!P>ZJqcVPvQ-g>$nNf^?bk0&EUX?bjSfg|zM47t0l#TnI*D69 z8O^Wx@&%h)tKrzpMtE9m7u#igPAQ%z5#H_^5PlF$FU${sc+Lr7)DLl6A)1MOwGcvy zE$l?1T|g$-Bk~V4rT&=ETV2s@`Mb65)y*coFzgZ;)|u(2viDzWB2@~pxM5X}Zfq|k zX*=6II>ZyaccO&!naOJqO_8pCwF-B9j~eOqRSZ&2N*wN*Fgz4pQqSR_>J6FS`wckmR}rBTExDR!g`B?DWbVcl<48RvnBP|$^Wi<3O!o7AW$p}fBQ zuAG97CXZjA1V^?BbZr?St$I-Awfb}v?vYIYxorH&TZaHg!BhaiEET!e;ygvIt_Xe; zh9EI9(-igP7f`1At1nXVy$wMUr;41heE2F@C>T=`_&s9k%WW@J!CWF?hCE|2VIg47iOY5HgvH<6nl!?E)@Bc7v+CSUq39|W(XUAn`% z)iuG36K_|;+gi5g#NJKTbp6*T;J4Nu1|t+-Vj(rT1Z>%_{WP8U9+2tv`#9y6L4obt zPW+}VbIcn7aHYkMr>X!~9xxQ$=t?~Zg&plL^h{_s!k&d|8^cgoy_%v-1$jJJ)EB`!BYQZ0SwvP!I*MdEw7 zM+ugm=17BQ3=kHhln>5O(wB>l3U8En6UE7Ur3l&_GJdOe#~nMmHBZ(!5Ib^ARn<77 znTN(hemskuA9eiYweq=LDC-;76K(=fWo7s6850Wyz^{-&52D#6Rl!)#3X`ZK+2s2?`w46Qxff=mnvp_m#^cg zvprtXiGM94SQ$zL_Oz;{ln*#PUMN`W>TkU}e)n@mu>o@o!+lhJMn%GKb;Di$kh{X` zXwy4q8I-(pZ_`baL><5L=ye8h^x3xmysrE{hxtYTqZlm!4G)KI_v#>xv7@u%x$^>3 zVNO(gDz9pz0h+8J{6+Jw@ZpyAqeybZdJT!|W~NThGgJ0BkG$;jt8=ALJoXpNU*UWZ z(5bz#SSsn*H`f&5p!iM!Nr`ktS+;bzeO+okn8e-|{<<`$W?uSyW8DH?7GMNTuYZD7 zrp8F~3L7IirL%Bj(PS%9>WnAO%&;H`5nyfsQ;@m?6Sv(^bAKnf<4SA?Zl3+U7_5$8?V~J5zB+A zoy}u^lu5Hx#`UVAoF;9KjTkfQGJ`cGIifhOa?XRCr8t_-U;Rz{7+gY|r-NRN$}P83 ziLW%eS|t`S{2-%Su`TY{0uc$z`I23~I`-GY@gmgdIS?MIz4Gju5+m#DE@Zdn&+3r; z-n)%K_6Sz}UPrLG>>)f?qS8!?xtvinTQN(Y^_Ld2W>MaeQs4O2yc5B>a7ptKMs zI=&K9$zZ}Adl02 znLt+i@bJaF!vhB6*R|K5~eo-+)lmR(>3_0IBn_9!Ki&w~*#{;!EC z*Ee5x1!)K3?#T#NjeeGzk%Rd5F(ScXbQL8k?T6#Q*yKS;pT7F~r@Q7&CjjZ9K}pNK zax47lQ&dz|_$PYz_pr2b(nED=x=hLdSm5#@)Lr%Ctza0{7|l|1wjno(d=#~yEL3tSJ^FhLaz+)A4 zg!9cI?mE{E+cy#RIU6@k1s+KghSQ2V3rukJsjsk!lH`0|HkBt9=zixbcGJ6ENt5Dr z5bWZU5r0vJbAG4~N1UO%XNne8xurY(VT$g$vQRm1R{Fh&NT?c5WZImY#GD^4HpGlp zgDyFGxM&#NcEYV-9ww&gkDd&ZkT{^$d)_fqmm3m<&zrgYCXBn~K#r8$*pwMuI-{X4 z=)flV2KH=2Cu6whbPy|R#PSlt&uzo;i(u7jN*k!W;X%E&|5e;CZLR*&fg23jzZHjm z5~nj4O}zz|m`FW^5S3_$*kj2oaE7rbOJje$%7hXT&`W`DX1{818t&K>$R3~BhRgnoc#3?kjlE0_MRR-H9z>HJ- zo-<-1{Ux|2BBdA{on%K<^Ng0pLoZ0?@gwAU8OEV{BUi)jk*_LburdAcZ7!?$cvYSInt1>-P9Rc%Nw$n5Ck2L z4(n?g^XabeA`L_&P*;44xj!3s21;G9sn`Xowf9R&zeJ^Yn)I$C(|(A!-nncTvlb6Kvw37(dVYyiz+kF?Xrm$0 zlACp7Z|QGk@NG)Pe<#`~?tyd_ODGm3wtRbb zuQxH|ufcR$pYdH5y!NVVPlD^~pj3+jO(Cf;-%~I$I_LRmPL{rEzMFkK_7P znib;U0`4E)tlU-JY%EwaWB6tbPQ0)v%9?8B`nanEDUwW`{zwOIXW;WT-OCL#uwSIl za3S(a!)6-EcSG3^buito(`4u5TZMRTbq@SXQ;#0M#JHm9!!G2q&`roo|MMg0 zwkGt+_gw9j&(GVV3r*&wJ=am}`lpUhqXeV)7QQK7@PdKaFM zh!7fO%zLrN6l>{zm~R?XfA$GvqB7EyRQVVPIlb}2i+ld~4I5!aTX)mTneChbwr1Znavk{tc>gp9kEyXdyIs`+mBGU z{QlsL@$@< zFd(^^YV&|O3An$BpA4|NuD9sSduYGn?pDWeSL zdnDx6%xblk*PN(Lme8i;RL2I07`ik$#alyRmXKasOH6*g`#*T~vn6khM4lx-m-^zw zg(rvue(cxvaEWxS<0e)J?s2mgOa6=f^pDEKBNSvuLt-`shd(3pp@ZAaV*NdOUl1Gk zi7|HVtb9A<^deePAc~&q(zxCod zO9$GM6AHTSbeDLF)t8&Bo41p((5k)LFH)4`;xo&gxer%&tn;c$Ba)&xLN3@p*Fs4e z2A3J|N)OuC?Y@tjg0@2#H#fFCGtpkHM~*6h!z==cO~in`P`I(f+h@mUp-Vp5E1-XU zrPSAJWijp^CA)2H&jjH+Peo9>$EGz!^}iA`#H0JRF)eX?3Qas^WL!FwB&_&)A$K~7 zmj`p|qt4+k%We!0X!3^$4@!~qvDzv`2qr4l)RA7~R1_vi3#4JqA=AGRM(KS13SU$~ zhX@=QB|Y!^|^$2486 z?0a)_LduZ)uEqcNH@u=J>NK-cVmk{cfX!<82q|Fz#kFCt)K?`Z5}yNLECYJun%)2@&H<3J`l>2G1o!dzTw&BxmHSgX@PRK*w{veVn%G--dp7 z=4LC`Q%>)R5m7g7^i0vvYm_M033uRQ;@Xl_6bE~6&wgKBiUx++%&vwk+|7?+QhCIN z5PpgtTQ`vVy$%ip`xU;Vuy+I3_%PAZzcTN`~LXLxJ>GyY<2kWTv22kSX2%Z>M| zA0T<6GF0u1?!bc{JJg&Xtz^&ftuD&vi5^#H`)5JG0ql5j4f9hjY`>;6+AJ^b$ht)f zJvZ(irGdELIbq*By9)Aaav0G|wodM3lr<9PcifT`o*K9Rd#(k*@inzh-!syn1Qpb*lsT|9vg08r{F(&-xYBCE1na>yk?B%)`nN6p`rH8?QHJ8wUXgDo8y$O zPCnjYCiWN72JnD~7Ok+RaX^guk)HtoEB z7Vz!)>()ZRF#tHh9thEQ*zFd5Q-YAKA|GL$BehyEN2TDjWijUCq~r0>0Tu-8SB!c7 z#?F(XY9WmY;1qWYssOqRvN8SZxLa`P_csj%0sL*ZobLFTEwZ(GSK5J982Sr65{qeO1!%JD6r9Ss3%>ub~I6T)pTfv)8j+ z<1y&10|l@A-~r#IK1Yg|K>NETBP{cQ1$tkeer`Uh^1r-}xKVD@v{X{tfsr5J{5*xz zlaW1mMu;z6YfVk>VM%1F1aNAY;J>*jwtE;DP&t{QkaV)Vp}MIKF@nuxiB1 z`jPcO50I2`Y041Pn*}y{%&%CqSK*lS6=yk#B7H~g4@yd8c_0om`%07vy)rRQ!?kBt zJH_rZ3B?lERbJ1JsUgbD%YLC9E!b=%7>4pSFb5*Z#QXuR6NTcr$7u`mhhX7{-Ok)~ z;N5l}y0#IfVINCADAUXD=MS^0AVsw-oUvz+xf=|r$MECzO_0>^TZSB_w5fmvA=~9rA?k)vXQc}88x;qr<7Nw*Fq`SL2 zrMtTh-En^F;C;XG`Nti@JBE9owby!TKF^%%Y{Jq|=0?xz9$vR;F<{4D$NOL>i-@i{ z_I7?=hnabgsCVjSu@^$@;({m%TdBaRb^c?%hcU=|S#tbt72noK;f*}_K4p$vi`G*D zLR^G>7xA};Y}a!0^4^70nA)X6xKT_HK`K<*iC;w(B2M-=*EvGeEatBx5w=C)j#6bT zam+k#`k}DA^|P&dyU7oN5JABXkv)C8P`8Km-8#dMT_bfJ^FEg4{MDo(j3I2n8-G;*aYuHCQo11b(=?rp-3iV3X^#;~^g~NKfC$anGxc?&`nd6l+`oE9eA{ z$9dfU*OPi+t_GX;*$O!+*b%X;M;0IYF5GCYM)AnXseW9VZ+qqRo zC1dO63ggEvk30RV=^B5A1(r24r7WCp5(x=?aXKG#Vv-K>w0k69XhO2!hSrS1GkUVxryVma(@2U+I6(3nsE{Z*MOH z>RqQ%X`=0~k*!r!!F**pID?c6%(7ay6FYr2GlSCrnd(o519o9jgEK0r zog$)sIdy3X3>@kR@6kUP+T4&|$4f93BluyfHBgNLz-V4yi$>F7PScFBsTS8q=_?!`Sg$z!XT=-_4(J z^dVt2C!tWEXF6`HweHhaiQ|7MFP_{xpjNb9`+49qnTP^;ch$H+$LRD>Yh=tgreuYF zg5#sLb(OUMj>#z^+Z1OlD;+36q zC`{Xa(^AJ95Vma%W@z5l0D&dBD+ejlCLZwDOo%d?gWJa0_79$A(K}E z0v=u0Wh(TqsHydt@%BATVFCVh8-Ln=*}$Qou1bvc7Gg@4sWft5=sdF-DPkr z-mGo2)L^~7zWWPYdqs^Ce5HoWh&!iTN&-Pd#%dbT^&TD#u>u7N+og8)|H#aU%zX!j~(g9{*t zU5piaw)>$I@y`*0@($dd0mz+l3M-5i6;tNslSN;^UlFV~|GwljpA?qtJshZ~iV6fo z2{`Y?%4$EQls8f4=;&y&+Kw7fSCW!v_8c)tc-sIkLiRPr4VdZ%H0$sU8^GX#q-19Y z0*W+x&W?fChQ}@o9X-Ebg+6@nteUfkDobk}q9YqoM=@V>%ghK7#s&Z=35>@60LlBN^MuiQ!q zv>+9)t)@0lJ>Q4y?ZVFHn(&ASq@<e8%M)>o>&epE`||cR5UM)KNN*O(tB42e1|EH^aD24L*eBVrd!sv*S#>&H z%cEGESc!4NBx`&2`QIul zaj1GQJQJN@h^6upW`-vgzl51{aZ2P+ShjG>F>Su?YwWn9o*W`M280 z+ZemK@r4WBfyDTn7!Xa;s;clyr~2-0uP-OOZa)or0wyD=W;qp(6R!5AS$XLDuGc&I$8^SW!u- z*!fTo(8ff?#C$WG4yCSh!SXtYtXAI%U14#}TDPVQuC;CKNma|7Cv4krml`Lz_<^>) zH{c3@U!LSySy)i89{G;+H(*-MSk{Ju6>kbjmC1zpbAr=HVWK zA8HI$tIzagQue=II7MB?4bf4H>~4m~tg#tdp2^3=do)*@dT+>Y>!Pz+8>dQTdX(>Z z?o0rBILHexGkIPg5JL7j86J%@i(+q7;vBH8h%YEO{ePYxX)TRc3!VH+Ggm;VTomhG z%zKr!m&Kpy(cULb?fC(N<5&1!xgp_0zM1Zeo>aSOV`B#jX@3cXfcPj89rsn9J*yJC zngqo%T;N{9>#pj5l&`MXp9(ql>K#$i@<*Knn5KU-jv|coN#^nH87IFpTL~|YbvND2 zY5u(5-f8fXg*_4Yw~S84#rUmCY!Y_E(E&Ohp18$D9nZ7UWCUwqo?x%V7W~ zDLpeYDj{LFT2@1YSVTmGnuJS0Adw7q(dq4`aS_j923KAfh&>IYPSOF~;aR|6h5&l3 zD=U*$T`VBJA$qs^W0nE|1-QmSRD8U|$B$1j1x}tq+S}U=jEroL`?*T376c3G&!+DW z&)uGtm!z5+VPs^ahU?ZJa4gXIFIS_C-7%7!mr)pNHpv^#>-Q1v)en;N6D+*|(d!`+ z5?rDIP^z*E3&}>S6E5nSw_xV(YjoOM=R9L8)<$L%1%_M0e>B|o%IUT0sunt_UcUSS zyBUO~10e`NtUdtl%NE!d`W4H`;UNLDf0x1VVZp4&f~(L5!(yWLayP52PzNC@c~f7$(C__ZTpJ!x6UPh zp_`ZB%<3++_=1*r#lm$RP+ow`to(?HS+VD};l5&ePqwR1!#Y*3dBW+Kd3}DGtIDOr zP7Dj`QlS6LV^^Hjx~B7K&JwZ=v|Aoa;DbPdy`aMIyj-1R^k+F@LACh`QQBAXy8f95IJ)5@0fM}1~Z^0|&pO5G*c8L1!MRwP!&R+TPu>K59uS2*S z867}$I4JkHccG2g&)7J=g8L3u?K8xr{?w%fRWx9Ht|bb<3^{asg%ybqS|~dQcFI7p zKR{hrdDI*d6ps<9-q`yOy~qnjl{m@sPpdVVRyqz$*n-+me%BUjCQ42o^NhFc-88ii zmk-fqJ>GpHLmeq&M)V8J>SBVq>Y;L{!--p2yL8X<55B2#Uu-lIii2R4navh*?tWincDL5 zvNdnw?fk^VM2w%GpNK=^V@%9U;Azgz9JhCNw!oirPY(|dxO9X23ef_-bu!#F!{at3 zC8c*Qc24Wkq92jvVk@Rl+nTLz_+PtWH# zI7`;t{2L<+Hgzro`%}HHuBK0U7Pe z#0|1}UMf^EgxAO6+KN9Scx>@7Ktm?Pi3f`y=`?cvj>+;l7J-=*&>cBwoyUMjPyLA> z5zi}r+(oyBysnftw}69 z8C_}73^8QK{}9+^WV-#+-Eh6KntTJdByEu5H8V!kQlBrS@$x=)SI_P*9;T%?eL$Yf z;uuJpK$!JA&>F7B3X@KYuaAMq&&be_2+;YEmXp5EMWg(P>@p5x>#{!~g zJfN5t>9!&#d0v?cUhlFsoRt?Ib_(4^hJ|6cy1B*iIWcy3cbiX@_`=Ty$f%Fc8)1n9 z12WH^Ju|VeFa%WelhachU`$cb(c-GA1n|w@+uOUix*DFH?Q6%=ma?{H#=*e>J}=tq zW`%4P903iF(=o&(eMd)5@N9TggdZScUi$z_$!KP`Gjk~_?83UEC*axoApe4M+9CX~ zn`3)N$7i^>;tC4bd`?gh&i&)qjE}Z+3y0_Cq}|=!8&~?n<5&%QK5TdliQ!=p6Zh?V z!Q2F|HYsXqYvX{l3_-FF5-RTBsi}JnC6E#ZgoR~*%D}KUn#F3q&hz{n2-5ro@*3gc zm_R86|D+nwv!Ur5dq7Nq&!XVlw{KAcdr~B-r`%OwL5CopEHxdWS|3av3hYF%6G7LXmb*ninX+*EJ3-@Jhe zTW`2?74%Skgre}Z%0O(`^!&8(QPS_;aj{q{nuT~5YGn2#H3OQfn!UP%O=Ve;brrhj zNRwBVET?NE0Cg<58Ao$RrXdGMF)r_c$Ia!t;#xPa0LoY-8@oE7Z)qT0jXa^lc#I2< z>W97dxkg>5F>#1xyayLNaQ~|&bGLbOFE6j$AXTqCa3%(;^i|H(>o1vWlblh#y-86fnjtgbds2K#f3Q zOJ$cqZ)h}&^zbq)lzc{iaN$$qm68@nUF3L-G&M>5G0C9k6{aH@hd`QYX=kT5(PRk)YkQ!Z0Y+=iS0{3u-=>EhieJBwD)Gh_!WpQVclu`Z;$1|>QqHr&s?^gqorD4ymaaf-+po3XpVovHqN6*D)P|g-mNhqKc%0|s!;m>Q0lk{@ zzCNAb&Fa36moUicko-*}tfc$PI58so{2}n>h}}Ghq zf8K1;9Tr@bz<35b^mxOz{5T|>dyg|rkf?kn9P%^)U;4eoY>@$htePv~Mct~0qjFy6 z$h70IMRUVapQJ{|O&d;|f4Vd6QrlAkf^P5$>cM4CqN}g=qw6+QwG+p^I(Nb_a*auz zZ;tGHTWsS%? zupg{RDOUu`V_hfs*I4X$1iI(SMstt7`%Misn~AjUNf-J`Z%kf801dw9Y*=^BNmPbB zj*AhgX?(0RO#24sUEyBYdEt!B!*_+X5b~u|p4NE7yj*jJ<(~qwM;D#2How$HmnUNA z_+26K{T9djD_?qH{$?2qzu(9KLqf@FsQqHWF@x|PQ`*?o07f#!C%Z{c_c=L;& zk4hqRLXl8}iIrO*kyFdrAUE?PJ1BqIQCBNWT&z|8xFT+Muyy|j3 zRqYepKmG4yYWf$b11~ybU0@1h~9>RH!QuO;V4dJb8kj37uPswMViHQI^N0c2= zJ(+y$>V2%gj;`<~GB7uDq$4=o@=wmex3JW3dMcW}iQaCRL4YMGO+FBISEDfsc7^95 zXllRAGK4wZYGoJkA+o?$iEy$wk8{f0GQsK zLA{en@QylZ=I{a}jVQlO-S_Iq4i0*RZ1(zU;WK&UtSBIzx=7a(fc%br8ZD!0JALiw zKtlGGjM#kZT(EZM9P$)OB>wsR_5l)3oHwuf^~DI7Eq@}WAN98CxR~;xZ}=QYEi>X7 zU3q8QS5UzIf@hk<>1IRhr(CnPa?UOBK}vkzxfS(Wz4;alx>XN!KCKxmmjC<@CguQa z+?LxkNR|m5VWhsw*V{N)6cO`fO|ACY?V7@8&g9t-rH-9g37mWolwPCo_ZU{Cd=~Jf ztt8)ITkXOSrRN-)4&{!W7%!aeT&A%5WYxZOXCbfwKM>VUjk5#XAH-VeO6dasdLRGE z-yxe8{HrE~U@^0r&sls|ge!Hi)!RQ_*&-)0c+?#nC~x=9HF_PI{+>PDoP^T2N-25f z8YjjQK-*t|2d+peJJ%Q|PNd46kh50Y^9Dry+Dw>j4bK=rJ-K!50^9h9+Tl|A)(E}I z-^oiIoaZC&d@LPo2(6#+Zuah7(;JNP%A_ppv2&Zla5~It)_LJM1bSYJ3}ChaUCgTV zDsBI$<4)-B^vL5XzGfzg>I5(K!{-Z{H_U9yxLGN{Zy0
0K*h!lbw<@=MCZqOMv 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
GWAC0_|AAt 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%0ARHVI&*dBKnfuvD zVyqKrMQ0-?KW;p3RWY`%(W+|i2(Klcuu~D7#u&?S_yrGV1_`tXajC(R`$fIS_QiW2 z3pj%HZKOhB;=x&GqW0uuY)^xq>1d|BMOR%v@;F2`>MUvENTUxZJokDWXg>#5i z_{M!gebNlxc~Xk;UHWk-Z9sPD_Tc#NXYt0_8>P|f;I0FpYlZpx>kY92+6t@oU*toXDL;7y ze^y9#K+64+f3)BaC9ZrN+8(&p@f?X*rIB5(;_G79TnFSauc&3Jb=j8PTwO}chPzu- z<9VJUgeMuP@si0ER>+LQQ?XiE$u`Y^MXf$)3f^vXBDgm`VEY z2%_xd@_!z{dln;YYkp3o-MHSd%OnM&knc}0Vc?5uvbYukb4o~)Y^7T8dXdm80g^`x z4K;yw_yG_WWze`f>Ugh9f|zG=+jNCtd;ac*5_Cl7xWdMB-L#(U5=j}h5VqKB>)DhiT-0?utEK|?w>c0yl_0o&avm22iMqxW($c#BkY!8lLB2R zdD|vwW+xJZIw=D3^T$ST-Wn1U-o4}yuC&8=$$bYyTkqE(u;%AyxR^}k{cT=UPYxiI z_PH^|fLDE7PUJb~0IwE?GlkX4VC%~r0fmU3vKlfCIJxS@E{pSV!BX|NF8)TuX<3GO zV6suLnt53I-P~ExQF)OL z!ZT8PSh|j2NJkkjpLsZDyX&5XitA$H4Ywm!fenfSG*5%)D1qx!OwE-JKzlQfG!csD z#)oh=!2vRiY0DaJBdJv9`~<(AldCvO1jGnj3ivMW{def3T$8k&q4RBYJM z5TI?v@oiqT+hyi?QBdEt60llkrgKt;3pTcCmG9rOgVe1*)xuGU9}FCBP^NYTDC2lsOx zNOoWZth0imq?!^4YtgN&^Lh@}Vwk4|=%n}4f&SW8VaujElUj9n0pNfAO zfY>O1vrBY&X$+~ll0+1~%-Use7p%oSqRj^A6i277cS7ViVSVa!)OIIqdcq|irPa>B zL>12d`}ZwZ22>1_ZDzS-#eGr(T7Y$ZY7nFJyxVqJwD3w+dU?y5Is9q&G|MX=6pe`T zrRq_$8iQFOrS1P146*CIXZ#kJ!<^1hd%>{Y%V%xd90(z0!t!xe*>zmNVYX~FbLR1%jA8TZWJL%QNCHZO8mwGB&(yHWe`i0$|3FY zjPscm*5h`vFX;p8vbWo*bt05{H;ntP(@dxPd0KjH7A7EFbKmZf&StlVMgY=BLVKjW z)n@jUl4#T4rxsPWZIt&A*Rb<4T0_OO@%oAWDA-cyMoY2HDe)del%jAv+=6r_y3s0* zj9zi~^D1Mh5&b)g@oCwg`V#~-Q+RsX4oCj5zyFjnM)Hyo0FS_C&$Iq*{?II1hI+t!~c#0C9vj*vlY`eET;g9cAhLev z?8u?@x`%GyDUm!rg~hB^ALh*;?J4eeDj&d6R7=GVPj}%<`mOZa&TflRFp}XEkES#j z9Ad;W?tH6RwXmKHtOBq(N)NSg@WUb;(wr*+d;0$;4;;Q3&o4egSKL6{%vprLOVGC$ z*{nYQjbz&PIdmPG+U*wQsm3g$cOVf49Ybu>7UxL#G!ic^h|#kBes&ukT~`VVN(tHc z|0i^Ci^wrrv>&;PBWl-hM8G`cVEp4;RXjNr+GrzuMQ&PA0z_u4Ng0{7)*nbnWO!tn zNi~ujBt`5{pNB) z>jX|IH#M<~dTj2YW;;HZF|Gv#vtGy;3hT$xm3Zgaz2@l)_buF30@j~gT=f6wK?(J~ zEL-2)uWTv6B(+!r2%|8qdzei&nt*(NdE3XM!u9>+B1hG}6ItDwmdC-R6Fpp$P#yq@ z6x_^N@FU~gOFmOV?|mfRmLRteOl4a8MhL)!&b7g(zrgfdzzKc;e_8s20T(Am`{7pyl_woZFK1ucTS(^_3!_dY!cv3MC1AB?MW35%<8wEums3M!7d19oInOO50` z_!p+EEGsbAu$yHcX&uV)u*!d9xV*hx`eu*>2^5BrNw z4)=VEaeV_1hznczjOJN-D2m*Lx0R#q*U54}}2rg+2ua72ct04MaUqV6ccU;u82 zEBRb(3aHnCyQ81_9r-%v7qyQAXBZ00ar=ch|L9!L&%Z`9JGos@@go4_-5U?sjq9Bim;|C`{HRSeSbKW_G-nQ4jQz99LB zDD?v?RcFQ7FK`LkWdxybA)mXN^I|A;C~u=8y4|B1IQT=rtd~F=(7Lc#xx2D1eE3+F zY>O7YsusG78o84T8x+>de&mY%;PO7w z{(pJFxp-66&dVJbg8*#oYk7a*@2@53D?^R&vB($zFPH&yRJU4@%l^2^oPBKzcE{j4 zjMnGKggI(J!#6PXvgs8dKfyC{qH88C6?va{948SWKYMz5u!lL{fmvsPiIF`O42R%T zs)MSy1{FWuOpMld9BAu@g!sY7$8{f&#fScF{YjKvwp7K{rDnATo3J$YA5i#H@!_{3 zf#rjR-v5uO?~bSXegA(UE3=Y4LRMC?>e#zvZ!!`Y5wiE*GfK*K%(D01*}@@YlkB}W zzx$~7=lkbnMt0iR41BwR@ z`n1(j3At}@oE?X;??k7#Phd{E!i4Icx&OCxopp?yK4M5{;sV% z>B)piS!qf7@vqn~tcOJOCCzPFLvpy;y2ff%n_vAB;D2FU`(AsM zrbyOd#+LgT#~TZG)^FD3Kw`X3{*Y0h?Yqbgk?)FL@5-44-Xb9sJ<{c zWK1g(kegZ$nAv>VKTg6>g1w)VLL)X)QF+LBJ&Mj!&cP@CxA8Y+VBxz13rvu&w6xtA zuFcujK(lc@9($Dy%mfRFXzo_XEvdA141OpE`&eGm2WJXO<|we{_oYr%`b;CSRn z!PR3lt+b$&voC&+llW=W8$aDf;HF&Wn*v3S>n-}LRq=9>3%~AF?)8|8V6BvsrO&;M zqpMg>(8yW&rPh^B97D<64+r7{^r@ef1(xJ~V9z>The>nLfRL~-{na`jeb6F~?v5h) z7ApE+f}zb@EuQM4QnQ03C*qCdb-L(s{WYZ_k1$KT0CeD2gSA}^#&L2#x{W!@TWIyV z-|DRPNG^);_@|d=j1P_~^pg+sWF@NJ_t4{Tlo99{)Y*rNGpcucPmXl#lB7^vc|!G# z0qcfRLg*GWeyC>j%ZnfZtn2AB9*q1Vvqy1s@e#=EU*5ktE8R^6rxM4yD99B4wVp5e zRL4&t(Fj(kz8qAAA`fz!1>S{DupuoI5 z98dD(r?p_)aq5Bfa9w^3f&2d5pFC48RT@a~EuVUWdr=W!s4P!BF zw9a3gg(a!F4-TcTay(EW{;OVC&^Uq;>LZ-c9zGuGk#zsQ7z*Ac-`VOm@sHm7C^qPI zj|B?^JU6)MnINnx3466I9s4tJVQcmR3bCuP{v@W@l4Q5D7fygfS3e)G(K;M9&GytsUfiT9eH1yQ~VlR&C44eii-YQ?v*s&?d?#Zm)?@RlO8MJji1!cxW*gv;52Qf zN7SA1N6z6*y5t~tFhh+vP)Zv(CAfZvp^lJidj05)XHtI-UHcWGSzCc$HR;`d4WFzj zpua|6>%xDOut&v>JNml#{E(@1@^$t^o0U55E*AS|7h7~z=u1R4*v?HsHrS{-(QK3D z(P|sfE;@wUalR6a3_}+gvl_1IF>Pu$1k@3Bu8IBUeeVWCC?TgSQ3{dEHJNuV_NQQd zk|WtKBGNFI^VT7Nig6K9==79G^5uz7|5R!Dj+FHn^Y!z2V|Fu|GHy?-*(kz9b6$&bpV&J znFYop<%jIafIW?#5fc~J6Omoiqsj|!WM`45Aufr42Vl?ltceOt)N#Pv0#PO`?)UHS z+7K+)>5hF+Tv-ax-X0*udeXR6(!f9K0p_X8l;;KFFi9T=MWx(}D~F{BA7^dU9SXT| z@x4>nPp7%anPLE+8F9Ed)$?L{m$m(Z0G%45)%_qoL*QTS; zm{|u+Wh;cP6;9`(2`R?Gr4Gg`38XX0_)nndgW|WAyizVL;X-XOmXA9u`%1qlP3HQ_@VOf%W?Y zcXHhIF(fTpFR1vp(-yctxdIT*iAqA`F_9^o*;LVXYvD#}F;~$#Oyk?t0t+j1e6cS) zs?LK17{dbI!d5GheF>58G?#NU<9dNW5Tfa2B7f=m=9O5$!t_aq(U)_UQw0X)?{l}R zxyHY-9@hE9RFWo#+ZH0P%|BYc@s|h4LJ;9o^V^l@i9(XW)UXsE_usg^yEkpo$o=5l z6nf0Pdp)TxA+g`#ttn#Nw+~*>wA(RYkW}5GW=rXfhIgcU2PnDb45f!FD-q4Y+b4;2 z8~Flpdabf}2a?B=TU1ORN?=LUZW2s|C-2;962|kteG9GKtm)YV9AC*l_~591)^V}b z*}G~bOV202GzccADV8!U#@)ZoW>O5xq;@^mg_ z-)OqmS;D{M=GRGUxLf<9IsaG|fW|elU8VQf;=3|C+m-~vYJ7XZ@SliAHQg->E&X4q z@B6u7@%KKI`{Ii1wr{AZb2J9Vl2QcktV9V)Jo*G6_)&-Lnxid)A#$X`(&+h}BsCGX z#>%ZZ0>2-PmwPk`*gXZ;seKj3c;ADz1G87Zfp64l@|QULlnnOET?G27>-+qU>DvMj zh01oV?UIas)eV)i6b6h0HZRVGDD;M$oSYVEjA)XKg!)Z$5c9wXlyBqfx#5FmwP;HgmNI;k2_|Gf{SVGY)>&)WU75uDETOUfxFQzu@emMnv$V#8S1CeP(nhV zd^|y1USF0>jF!;~ponH^sKylNlj>OK`#-)bQFb|n<2eV7p&}uusSE2|{5!Pe zDcPI+Nrl*%8rALn?Na{wQ~<&y_|4p9EBG)*TJ2nOT+donSF|je5oA14<6Tp4GE;IW zpJ}VRQVctItcO2c6sRXvx+0izwhRiX;E+9a&OBA4EeKqE;oy3dxJ+8&3N=;8u6c|; zedRC7QT&M^#F7*k(Xgcs;P?DvIE}ygTyOFi)V*|OUAJ-odi)WtADX-j%I9bDgEZBa z$mw7z55%misuYaV|J>d)RCXGu%^R)ZaVe;p)~>C)wGZm@qU0DcMLQ}UJQ&HzHKVoO zC7=-zyXw(UDz7e$p}87R)}>yGrvxCpWX8vW6*kwfA~PAOpo2Q|L4l!KVvsm^>`@97 z)%fAxE?=O?S9$-#3f33*5n!}4KK|3ts%I3N>;?V!BBn@RLPgfo2@5UP&xDSGskW#z z$LotBBBT@|CAG{QEB$j}TaAj0Mk&3A%!`bc#vN8q#%B^2e&eJ=fF|#9WIY+hKdVzZ zkIc@09GpB8tU4ie_3jHjiQEKOR3^tWV~JG(5o~XeBrj&K>l{G}T*7mSrW);b9{KhU zACRY-`L9LWmvL<;!onVcrZL2w>(kDB^>Wq@80PsEvfVEy0d=fagnE^kmpMRC?=}tL^3&UP;n>q^&)$8O_jZ)GXSx}(&V3m z&63^PmK;bA=|=27{6blZ%nGo?rZU|SeMCW@QZC(05$H3gb87C>Y(}$VN#sq%d-ka= z1&|n5SmRLE?n@dOK|!Va+4LNOBHjGLZv$Q=abRwp52u6Lk>{Se$mNxn0dKgOZPGr0 z+<-SW`6lqc$R#*!>o4Q7JD2iiQYz|s|B1mNxgSs*PjyFe{!i!rx(sv+U9)Qi?k!!3 zHo8fzH)9D`uO&6qx=@vMXZRI|Vlr!i)5xa5u4jJ|X5_= z&YgZEVmaK_S(&Q~Ly(C7wEr2o6^=HfdvPvSyn)oI^>8Zh%P*dwkmZjhphkDn`ng?`jzCfm?9dieptxTWB+~=spCh~*nMCQCk!jq4tZ&xl zyk1Ls37WSYZL5-{S;T|eW2C3GS&#)?^QVp2|F&rLoVTqVb-pVEl-Wi{$o-Au9ueCF zt>jFjH)ZZ{XV^WvuFX^Vyatqg_A}GGt5Jc;=LDAVSzVdf$SS0qfcK{6Bubom@mXuH z*A(_^qj+YIbh2r~Z#xjP|B-Llmg(mPzJ55SL3ONVy^-d#NFY&kCDgh@+WUNlh(jAB z>MaePeh~!EJ~$d$_C1HPlhcD!zmO4CiM~ss)dSOh+Nke<#5>mePd@F=5+YGSkiJ6h zhCn*o8AQIDO7D`onIIe2Pt)4=Jil)V%_EtXOm$B(OlP2Z@IFsQMR4(JSK&^co(P}%z9(^&syJ&-fJwAzNbntl$mbX8UI)Ic|UYSu`fXr?Z%pb5EaQ5%y6s{CRcnMkjhq zPxSM9=(a>m_kBe1DX}oZH%Liz?^ov@H4GjmZEZzGJ8D*xN$Hq7E-dX47;SuXGO0Hy zKkGficitZVkkTSRBv-$_DEm=u_qjf}lrSMP9v=#CaR*{_@0g#jAkm=oJATQ{&+@~V zm4B)`p@0Ss9}E=`xw?2rjpb@9M|Qb@9|>oQuOKBxUVb_?ow&0&f{G2b;@fm|@wm@G z%{!GicGw%d=m05?5)$?b3`kV@G%>hhtfC%WZ%P4b3LxqA@5(@vw9(?>OOgs8Jl^XU zmQbv}RmuZ@k3sYo`tex$pTv3wfJJW)mzwPCl+fNvNTa;B+lFXb< zAKCP)R|ur}W?jvA~K&r@@?vof9h$MfObHrun!pGRP0f&Bu+91X{>9#i6%m6x|!rZh{t zO^b&tPC8RD9-S(DA8k0~wVbNCOC80u>fqPUqOYHh(5(!jcEt)K;cS=ZpYjh347}B^ z$TJ$id|QWQJGqaE4krv%RL|=oV_5Pd^XfM=s?yNz>nDW|CGaw{jrSEXBg)!}n86je zB}Q+q6kSUM4VYL+cDxMh1`H@=Hf?FpU3-P}^mN+ja^Z`4X=}mEh)GBDgN5g#Ql@|I z@sGj<@A+zkifNSX*bwkFYN0~|6y;TiGa5~1A?u0EJ3oh6ruuK<;3%uB2mJi01~tvj z-m|LRsJOKzJC92rG@hi;tYhuYP|79IR{asRtgP(zPgTX{rMjk%*&dHv*B9F2(Hu2?E2hlGl*;;-ZQBJjINts_Gq%>OZ$9J2U)DM|CU*u=zWT`J zloW)SUapUt+1YU?JO9Q8&HSC~^#w2XhiH$4bn3r+`C@cQp{%UTwYtYOVsX9@XV4yU zhiQA#uHW!zbE>nyUt~eoH{#$ZoLQxLE4Rgg_y?aUtyBtXLIOjon4*HA|(PTKEXg*c4X z(ONYeP|Y25`*f@;fEQr4QLIrDxp|#-yh{lq6hEK)GWC1T!8$l-w4T=UYJTd@_~^<_ z*+R`?&x_M%0_`$19{0PuyCp3wa+lZFi5M6deqS8T5Y$ekT<$X!yB@ru1&a-mFg7s> zo$rV`qv0oyfM;e(VbOl?;cR3ZDbN#G<#Ka%{eFJ3*EV6@$nH=0JId=ky=uD!=VC3{ zW%0|ay~Q8mShSu8xdtJu1y$f%NhhaDtunJ{=gX6&){#@7#Y670YG7p#v49shW6}_b zV-=eZF}~|!h{MwU6won$D_66SxUl{(o=`ma?L%Nj!QV*}H)aCPe(FM5Rrt2F(2aV%wR zZ5Cl5E6V)~f9$B%o_uCg-Psb6&rixv33ag6Wgn@3SMJ<+xn(%&WwX}$YKlTLY;C$m zzf&B)Rv2ObdhOk*SN5;{biFrmNH2wmWOI7gqj)o7;``{OW8-)xA>xm7M3NK|Va9@9 z4r)JSDn$(vIGS^Iy1PzI!RG2{PEQw)fB%{IHx@J@zYUv}BnXP&b2n8^S(ggSM}Z!4 z`xd|_oXX&ZGkB0zsR?7*cxpkon9(xBk7F5Zn)3{@6psNcsIy3CTk)#IX7UW)Wy(Vy zosfV7F|)HvX=)x9-1zb12QwSn4G0KTMs{|3Y3ZF(lOLg{pTP|XTmB5ad`JpGWMpJj zm#1qxqm7q$`DfhiI^TL8)y~YtTNL;p%x*xFURM{8x5)V%fmW>}`~7FW3fZmdntB1F z23}NaqlHH)qv2%S5OnwM-OkQVQJ^dOU~6oG`vVfUhAGxJDrck>6$z-_x5YY3!r^eb z$CR=pbH&MiKx-NTmtbJ+KzV~xNQf#<&ykFycKwm%OoPYd(xc=?iaPx0F#E>n}5m)_gk+W}e|3~@7@s&Ozpx)bKwTHl_| zHDU+Uar!h#QnGKy0FFPk1Oe3cRqF9C2SSCEI~#|Ne{^h_N(JFnyp!rgP$+AOcphMI zO4^@xa+&^?G(fANtl!3_DN`{X`Wnpq4(UCBFV9#PR+}n28e`h@8V`a`cN23R!HbCK zS=#OQaVuKCs~UVtnR5T zd41WJxXn-WU1i&1zsU!!YT?t1B8N2%t$Ypl-7Y5DN~+vxr7P(~_o-JW$ zEZe+Mlwzicn4h<=Z1udRj6X_#Bm`!tD2Jg9TI)qvQzCZ`HgzLNLSVi4i>J8cPQV5~ z(g<~O4!x4{d~-|ZbWM4xfkJo;CqK}dEF?I~kH`oHF-XoL0=7P5L3kcMMP|yMx%O#1 zf8Eg5@a3`S;}l$Y_XNzkG@&$FcB=D0Eys){U^e|^GFxY{C{s@muXAv4P&Bb&W^Em$ zUnpZ>KtoPJ(P~xsc7m_&aNHuNpde5>T}(%Ze6wy(LDwE3mGkwh4)C8LvzqicnmPua zNHB?k`z@y1`>VymVMn(AU-}G%!M16mgp<(0~8FNiim_n#+?HxX33RG4oU7-!1mVR8y2*76^5A|Qmi})9AAp(wb))x zk9q}s59B8GEci}Y$#{4O`4fU4n^%W((-7fPl`oGe14o72kGF&EZXS?(oUUZQ1E!T; zKmbe}r(o4Apxk?$wu*OP{k?0H{ij7;dO8|@5L!nhRcp!X9wkjp{@=QR{cn$TJ6!RD z=`zJ;Jz^E{X^7cn*?n(dqoN*EoOZEAFk4lx>z9ojpg|^|UWYqvqX3CRlzlMj+U2Yi zs8RB9d7vR7`9bXVhj(Exq%<<*HL5lGA4N9cLsj#6TZa0F;<2oBbZ{-_r2$sw%Eh~7 zTd=@#8DY?MG$l-Grb_S+pQ5`nC;4e4{n-0Zn!F2#PKT|UCA6QT6EAt*?6h!l_>2ke znxJWJLDThsgx8eUU)bXNLV`v>OR<(pq;?IhDoJ=bLTB=Fzq&IynsVpR{(<>2#m>Rn z=zRI8e!@p1_kD!S_KACEPmdqMY(J==@5vISS@}3urGV%8W8kQe<-MrHhqlK|Q|1sd zG@wJSK!xSl@2yRz5pC0EGah(W76zoGp|R*C$jM1yQcA|8kO)DE9*1MVs+gIZi&66WS#y)vpt z*QDg-@qkq}H)pYjE%0*b8c9oIuo2^c+Xq27BplztJw|~va)H6SOB+SuJ`M7()k>&Y?v41ZqWjan6J71=Iy2lr>DryG6W zI|PzNZ>-0ZLQyEOyk@hzMmK&TZ5x?ZkS3kpJYDZ*SgvEpL;h~I2}Mm!Ew!fR^y8>S z#!`{T*`aC$)f(@rJq$b`X!90^jzb(yN+3c``#tACCx7JqwN`3(jo6xLq|wvs{(;vj zHes{GH*WV(JL~t1SG-P;EB@SN6b%HOH+Co3w5@yHto^}%c`46Bz(X&>LUZNNtjJg^ z39qsTe^cQG8pvjP-K#}CmOmGXrM9(H)HrRQ)n7#%>UG%YZ;v>{fs|q_@Lhqrd!zcy=ZyguIz|;^UMqln$2A> zXjZo?#I60ITASR?^kXu@N9{i@z{EYVmM!5cI=S%yS_}BfqBW=beEMhEOo$ThvYRTa#!|RnD?ql@UTytspq~mE|4NP!Q_gLSVI#?M1)o6>ZGL#2j~g zgaj<)aih{Oq3pg}ju#wm0)oP?bv-=0d*82FoiIPtIX_nhU8%jX$ip5;aRqvIOfa2` zA>g}mi6<@?Qg^0+E|Lf=UtL?<2{SlH1^NXjw&R(riy1CIgAeSw`9m93JAtEOTvP?E zYRRqkRr->M0a+h~vPUi8Gri#->D+za5)zsf@xIiD$vhui$t=)0xe&MhNoTF`t$P?` z?tp<;lXxTtqfgW)fl*$&!5_R0m66X%F6QfRyLNls%$Y{d@2y!m?>$brr{GfjHVEZv zZCoFC0&s^n7TcUlj8W7O`p0(-6O|yG9~=tTs=DXadvKo7*#h^V!mm53eFJrqRBL(| zy~{{YL9GSG>fJ{9=;_t@0;iXD+Z*ItCP)t+$9a@+!rz9fhF$cOdz9mb4Vt&DMI+qv z2q2}$B4|2EjJ?E2|1CSt(vFe*E&H;KeXickTk@y?Z2)hvOa%P8qVzcrsL7`y2?;#N zqkRSNnBM8OA)>;E@ygc9w)yiK)sykCK8{S)m2c`N1K|i>wN9U+Wv#Wuby_?7k&>{+Oyj{H6t=&6Egh=9HD=(V5=HIuL=MH2@Vs-v0!2N zH>7)lZiZP=tUkC2ndWyB6n8Ac!l)<5!&_^|Q6LwFuUZZ#>qQfZR{Cxm5AoNx{9EVR zW>ZNVYbo%92=up>#cpX6Z=c*S))r0IMrraZ=;P^q@T|>cDe8g}Bmk7p2k#BsRVD^_ zVm>h|8w_V%Utsl=j5u?sXB*2EVt&wn4Lt%uFqZGefI*f0e!`V_EA49K&*|W#|I~(p z;Q%=ozZ=T8amTcRrH7UU`WZJIGU(~x-_wVd4F?}2J=t)T`E?K^5XQKo`u>$1gZ&a8eWl z`$@3;Pu)?43vpA}X7{?bmt^jX#^4gR1jK0PR~^=mll{?QvAzWI;^k?0zNcoSEZd=-g8}xW_%n21u{+kLhv?N)O4HFm8F;T^arO# zTI2H-PuInTQsswH{A}SS!`dfL75Q5h4%5nC6XMsB2x|vwFf|(w((w*^Tjr8+o7_*! zVMcfL!-&E7%q@T?zTdKRMv*tNxs8d`KUECRdR@#ixd9?JNJ-UAJB$qzpNM0>cU?(XHgHua5^Z^$Qa zYq8P#nT8`2IK8;qmO6oPuNUi->c{2607!V=0zllSJ08dOrGs-1cqhVf8g+?n8?(8S z6#T+C9*8SMlEvKkqxIu6KR;TjX=Ym0T%#6LeD$^z#Z1(71ylF&EEd?5syenJtMrvGyWahH!MGrpL<3-nev8l}VRW{e( zk~HxNm=MIO`9~}pXYZB-060;&Rv(-RTZ(UpEm$3B?qKJ_e*VblS?C<}cPNA8edQZFU8_}HEGxw;MY7C|E*l-ePv6ddyzwSXe_|d z*fMTR-4(uf+M!$c_8v1^Jddj>V&e+SJ_{GHMw^0*md%o+gg9uX&t}LM-sSuESQX$l z_7ABkR^DkmIS`vXzz_ez&ivF@fi-PrQTln$J+^1CpQ8l#gr>Z;O9yQ>T>`51 z`r77d8-a_U+=6)8oFqk0Bfoeyz>Cr$@osRVezS7yhlSZXe=Nxm6`YK zgdP>EH9j6=;1}?F*bL$+w6VBAXqiDqM!d0R|8gRs0|ok|hBl)6g51+9JNnX-U*ENu z+@Nt@sP13{+e?Xu{f9TF$5$eevn`yRLIZ;vxx=VXPHs6ZQ%Cp{yTNyDcT3-a(OYCh zAS)H0#Up007t9O;X$?bL6ezW0I1HscDZCsjiEiOc{pw;T{-q&&?zR*#SC zy#7E_LbCXK9~>#ngHa2efE#iYN{rz78 z5HykoHFq6)j?5Y87t`^V_=Tk|e1L^DT-o9Yaxg&Ei_bG3GQ7KgANsYSe}1AUvlG`y z88k$;O!O)CZTqlhe=9mjhv^sIkmRUJ#VV}R^~+^Zw9=TxxEaqM&QcA6%$UbaX)Oc^^xZo8Y5w zfzprr5)vXm5=j_i5|B$2Vv|c;ZCZajC&;faMjan=*FBBgV0T{0B_OBjH<aeqF#x{ zwSScuBNcj^I2J?NqppXVh?qBp{Bd5vO5o7f8@Gr#E2KSVmD>ksW=2DdBy*;jgT}mZJcwKn$M^97K<(}Z5MMim(ugIM> zwU5EKk_441^4$UY=|M7wsqcWN9pA7TWaWtF4Y!R5AH2qHMD&rK)8^VnEr-u#I z7diaE=@CBymk9uP!OT9H!D?lY4VD1#6mfOtgFDF&Gvh}h1q5GzSWKjcAY z(Z{HOnom;NfXvGKfSW@y=yCds-%!_TY}%b)UXZ zWQ*&n6*FgFcAZsXsO^?AWISh6x%S`Rr<@*+ymn!VOp2r~@1gyl7fYw|r4ki9$!x69 z0pKxvseax#Lb>wXkp9l9w!DRM#d%t&dcd!NQA5qsh(9AzdXT z|ABQnH;-o_JQ$XhUJrSfaPKKS;HkewtQqQOoRGoT-T*vLFky0*OKbI<+ zH};TTcH2z>WK#H+vgEF6*n9J0_{4PN>Y)&!_`?Bl$&cPDt3}mF%il}J9RmO$IIQ6PYpCgEBZXdp*gYnSyQV)x z^}BvzGGxaPqI#XZ5b``|5v$S_hP)9uZKs@l9kH5yKGNxZ5hQ>}ps`Se)F5tmu*3SE z#-l`J_^=uC;PbTC@X!qpYq0RQlF8}(iOu*IUjFXn!?b#|UgU)IhUEV#kz1^l9BoVv zTc{x6?uZoEkKVnf#>*H7+p@{3?E_Be0W#dZ^djfE`5Q6@jkoVdxZV(&rIDDKdW2=n zg3>i?@R{nu^Y&AjAhdqrQVMnTsmm00?N@E14Hbk>lmp))L-2Mu1-Zo59Yl~6o(`IA z?-R4q%CzS8B4&9`{mSr9^RlK_@De$*vc&h-hUP1qs*=`E1l22fI@$Yw-Dl4_k zNzw#`>tgB?9J-I4lExXpRry%vO2wwneaf4x3JW`Y40_OH<=u)>SH~1439{Dx$&&D+hLO~MPZ$Hby+z;Aqk-q-@5CautoV$+eM0{{8 zI6vON?7%p_{??4jGC=e2^hoC8GCBTH(~>$PB~h&14Wt{Y%wyZ@bEK%(M-37taIODR zBMkU{eg03h??T?=$r3is7}tRaJd=0X@EsEhFckJkWMu26`*NJ8iYcNs$PEQTNAG$n z&n4-h`y!62f|>-nM=yeHNBml*KFV2Bb2Q3rYs|ND8ioQ5ykT%ZIejE}c)aw`NV=qZ z7`Xs@Ucta=fk>`>kowFVXzW$q=Sjj1k}8Mc-CWH2%WG18^=z1_H5Gvd%nE$P|NmC` z)vLP3qY@cwAe@(bF+K;u!fvL7>zk$~g848~? z#;mYD_C!Z2K7Q+h)) zK#BsBlsI!m>=2uWO4-Uefr|;xHCI*a9d`d&Cl4$Cr2XR>^@70QSD@wzX(~cP zd0j9{KI}q}`rBICdo7k?l9D@;rhNCt?qG#E;$cWf;Nu2>yH6hu`*5`sgpa;S$;pWm zP80g`WeP=*QzZ(tFU>AXtdLRw2aX(0KTVU}RXu@K<)c%FlTcm3gP+yR>{JFtpTH8B z$zAgYH%#jc5xziGMF>WKxNJyrZ%4n1vfBcl5ktRxEpYS`8SccB=B8R7&1zo$b#dSt zTs)zkO;bU@NxOFG5Cbp5pE_nkka0>lhg-rGSHcVIFh&X$8B0|==5525V~SyEh%0HXW`tf6M-{BPfOl4$e|@ zv3g150Yn^`frOi_^h)2a?O0}8-Nbxo3*`AHE+~(FHbO5V!t!mtI!W05)QSr9DjmJY zJAo_b_jO$+a(}krOjuGr;&z6-BLDB`t)ze+&Xk3%USx|Ap1Wl#FY6ASYr__`cTpgA zGyo;;D`^g+L+|gW+6W6=B4d#VnFh+Be-+oG6Nv0%*VHCL-qm(PJFPUyexWxbD?t#%OP2Q-!K1epIX`|`9lz3K&cH&U{1_A zT}Uvq@-mz3FOjaK4A2SaW*DsA(b?S!5)I{g7qL$< zCgx0gp4~`xeM2&7MF!bi#*4dq&A%~zouFP24vt7c6DF@@ig*_eVC3@*!7JO`dS0+o zJB6j@gnk|z5T%$Ra;tCs|9HW?ij}%F0tbuo&CFj#!*Zdd#WVH+b?yVgV#{0euxWAi zsPN9Dw!L#N4Eh)=MMC@*HW>D4z8ep{?e3R>mDniS`|`g7087z%W4P7%G7j@z4{FT) zx#tECkim>kb1GgV8n}b-XYdd9mkT>lX$1aKFE9W)`JGSDml~4&b&&$rZZ_#F5atLY zBW8%l|97zOzIN&@8WdQ~qyu81BoSVcHd*uMKeE2-A879l7;TXv7+`IrSYgz#Ja?>| zVOapY34Jr#aL?{*)U9D-+7|T%^`Xwj=f@px+pD=j5CluY0L-aZ?mN%-{_YpnfH|t6 z^33B_ICmf@O%r8pg@2q~%|+v{D=tNbiiqRa320lHuniFD^HBY>$@4LWePUL&;2^V% z2#jg3!(J(I3zZi5H4SnCfsw#UNGwkcn6my&(dn{U_J`~Cq!H0h1NLL}kB^^m1Km98 zI~mhtb|!f<420F&G&2){Q6g_p0a--HvdW90PpD7{gAu()xH?Zvz}{ zxGs*$Bl*8k-^Z$6*c~<)HKk45s4}3>5B)y+O-r zi0Jbf0nydRG_L)mBn4btX9%)0$)+WD6EX9i`09UGL!S?)c}Gd!H#}`?*=E+qYbNyD zg9X2VaJf5t!mfOu*t)PwfoZ>m_=zwF_WYH*q4I}5|NXQhZ=^B-!hl!5;kfVc7=jpL z$NnwyxP)ES384Un7fTMI{EbR^tQJNxFBeu1r;zZbWOPg!xfw3(eyxln(iJ-!eMSu? zV~O0tdf#_*6PMgaZ)*e%vUkNJPSTtu$a*04-Ail#ct?1$agLscZyc~aq*$DPW2Us` zX(IwmkQ$aTLF1;q*Aeg&rWHMRaUoIAy76O^ugn06rg09^uLkkxdv2c4h8_eOtv>*x z5R(5wp?N;0TvWy+bVzBq;`stdaxkm7hTVEbjWeryIr-#QXfxP7B4k$l9-EE|rHfWs z!8e?@2i=zsH2OtV;%_yl(96ajUq1f*t62ZMFU(4Ux(+=An=IIXZjpWXA z{#Upc-;oj59wdWM{at)iix|t8yrC(0?uLcjEBU7tPqrJrA>~6EK3_=%UL?swd$+ph z9$tXww+W|f-$ttC^EZ2d;jDmS;bc;`$2Wd8uF-qJW-%&c#hkNgl%n0#t!j?7`Wn@BZr zu2=Qcv@mk}kOqxw-wpFGwALnF!7`v-)-#6GZ$vnWX~_O6l6PX>^frb6yv=iv)RcBu z|2_Z^TS_+VkY^(C4IO$(#*?l{?VS-lu(k{|hP~|jvWkNKD=CX-?{vPOOzkTBnJX{u;wP6P9X?(nZ2)NXPcw?Toe)WX7oR;5+a z_-m!`Wg{Zuaz;?14kmwp3werHuI{6t`S)Pkq$3%?dWWue6R0HQJ!Q^+{gSkyUn@kF!&VJ%#ihbtd%9h5uBI`gm(2lwKtN}dUA z7eDgVHywbV_nt=+M4GXGyCkXnCp$K^v3pl7B#X1{2@li?-mK~Yj_2_lfme ziU9dsSG|j6TU%Tq@C5%ZgB)PK$CqNc#fwNk_Y$hv*yt?N8otKvUp`evP1Dg1yU&7d z<;*p^8FW|HR9TzY%&Z6{xGvXBF@fqwhbs!S7pHAlmbf1+p`@XfzDs)A-i~rUyOVU8 zx(p)gW=(6s3tzCnlBX%7S^RB zpSX#i(Z@e8!RR?lr1|z8yA_A0@Qi>tzz<2;6s5zIBW6j@;h&-ou z7B1w?W^6BThP2&`|3!l#;F3O-SV=*eOeEr)hGZvr+Z(`)=lr~Jqx$iH8D9K^ay5_6 z9Ya69Z^8kMOSF$gDxK znHEn+;=F-XDL@}Wn&)@ZPCnn(VSdo#FP-~)${cy(LrOsStLulZWB*X6f3d&ZeI$0s zMFQDmScnJ;S0Za25L$s9z?mvx#cN0_NU=(}Bb`K+pYM1ze{%B7@MzQ)PCykQ+f=sR zE4YlC?KyexkEoW~pxi}VrB!8k2lbRsO^qicDka6ZS#3&Ic24&N9Lep;;68XmNPv`` z9}FaL0Yf7sZBB{6U4OwT{&y(bUt1LKS@NUV5OE#vhx~(oUS$FG1kHj>UR|v$QWco7 zodU43EAoD42>~>_`v7!E{UmlZAMGzi;6Ax-pnqKLi_la7>4sZ8;@H<8kyEF-+cfWUogfpPWabHNLMzL^^wFinN@N=T8Jl*8mdVI z`^50*FWG_Fq}%q>Y21_08I~;)-wIl{s}L=_pES|?dKc_*JW`X)Vt*kVf7g3c08qH z@?WU@1s-1glx_$;46mvQEl$~SSn!%nacRcjH~14 zdrkHA!HKTi^~oY+K5l9R>~W{g??cEi;d9T!OmSA0tx^D5GZ+7J%(&>q#J@OTL#ZCA zWJ!Mc*9kNut_&>*N*2aciRdP!jqAszwHO#)xB>MBzr1lVr{@!?y7x)DL;wGA^%YQ2 zZsFP^AgGimEuo|cf|N+3w3LK|w19MXgGiTvfOJTR#L(SHBPk#`ba(gs`$NyYcm1=L zu5-p&uxEdJzxh1xBk#+4z*}B1Q#Oi&`ldR=0tDE1?nGuU{DDrjq9`SY-}D2YLZcW- zlKH944GQNLTzN7Ro2{+BST8<*kgr!dJegeCDi@B4ek0^T14c_mKS1SpciWaIoScxr=AqF; znI^yna(R&K?tlv*B{Vb1t}$t)9D0M{&~|YQmqrqjN;-QI1ox)L(Jj`csen*WFJb2@ zfKJi;tqzun_07N0bQJAS#wXF5q`D_6uSD(x-wX^6UaOLE?|UOZF?pp5YkYn@`C7It zh9uEC94-aBRbfE_qpe#Z53onoej6O87gRs+8fg5%8gG$Id;U= zN7Zah+7Vn;7!Z$5AwpJR+P{^GDc+#>fW?uw8l0VsdeD_V#tT(`HS0D_2E{KNYQ@rB zuK568LNNvz*ZT%LF(>%7eFtdqH8G8-wnjK z1?dP32H$9k=taFYuisb=(3;c5D#jWn2k(;+Vo#|Z>})kw@5lP%1iwN<>h8S@u0MFs z>3}=@_RZ%I-fayO$@m53Ea*Tz88ZFSo31sRuv5?W%UgbWirG(;!J{m3#iu*XuIx$9 z!Yvo*kavDDmfmM^>IXjae`pk&?g1eeK;c#7@4sH8F zax3@@U8CRliT@g+T_ep!tohFgIRTSVYqXT#eANioF?G- z=n==cu`9+w7;0@e(DV{F`J_qqMN-$Tu64`D?ZpPOsMj;~hkOP6bmfD4QA&ETU@JCu zvQC}=w0q0@jFh$~Q6&;xF;eSqVKJ+M$+p@vPH!df-oFFG!O&$x2pFCA9$8Rff`e31 zEXZ?A_kowZp&t_rZY4Z2@j1@;P8Bdh<{(}W^-tde$U&5-3AF>yD?`EYiA|UnyUODH zkKCo7c1Y+^?e?Z}!eF(mw}Mf;x6(I=MRtGGO{4qEoStiGbmARAABlQ8^abbkYa%ZT zD3uNj`fGsV@%L>B0pIWj%%A7z8WofzoudD#Efqi=(Kny1_1rD?Lc6V{M_>HvlPEbV zMQQR1Dy&EAD|SBf$8aLLoU#=Ja@y;<_^`0_&T2U+_)%-MJp(P7e+%o99!uT9y^%aM zA8&8(??+H-;8;~&;c#&0W{K0eRZq(2+n5c+7g^2(vyxo30j zNA<;6U*yfP2y!zKWsc{%z2)UEp(;Jh3v|OK99ewE@`3?*wkXNEjl^j^zv9BPd}8xz z5n$DCP`V%B)oNKPo!2hKn*y%E$k*W)1Rwic)1N$f^33(fjEu+b@rQH1vCcmA#{-EE z;4KSVj#LnJ1`7)-6+ntL*3najlxoFVhM&dcR43cH08?-*v_*Wmm1Lm6!^u;N^QZ2D zS9&-5NQWM_=op-C<8aLnj=!U}1d0^lxpIpDfmHk7w^jsRa(dGiu$Ic8=y0GjghUbs z%brRLNsGO4>qbfu^#bwPxQ{oEA}wB+8x{ysfBkHMYSiIKTigu?+8xJDdxNiBEbh(c znLppEtFLPV+66mcsjVaT?MF2oyUylsKc#;+IzG_rN=0{mA?NWQMb@#wgy%Hzw^OK? zjpqGD7lrr1V9q|4qMv6~EHxbi&hT5tsk~y$$j@Isyn)KC0Ei@<#flBL=Mj)K{pIku&V}RJ^7ez3F8b*Zd5x$+_PF zVYKfj)eZnqVs>Yi0*V0%3#v_eKOIXdZUa738^izrJj;2%2NsR74HpKb<>g|fo37h+ z{+6ES6P4Tb=T@hSu>feHeG|6vrwA3$J6QxSc7$P#ES{%QwU!`BOHZ~#{e<^@q7AVxH7raw)%@^D0b_hP^AyduJY1XtkXVL|`kk7XQnlP`nP+IKvDqC7JvO- zG#sK(orEJ#aNTAxwHw1d4!#w(lWo=_Jdy5`fH7JLmQ!dvLuHl!Ip$k0$2cEQa3n~->chPWSz;|o)17Mb~(XIyAIP6 zh#3wDdX454Q-0v*eahpyN1t;4*^%k*`Q4dWf66w;`hD_AhY53l%f_ui7HL(anGkQj z7~qo=xj%~=+y;OeR!_qYr~vl768=#P5KMCC=;TTghZg2Q{{ULxn0Sq5d?V zbbdo4?*iz2ne_QCwva8U6MiH)ttY+C$eioG>p~;TbZcOPN08^j_N!4}3NWYpRu27x zcb50Aif74bXjkRN+6<28cHvi)pP1g1v*C`KtKtn537o?P)2`|?VP4%H#}Dm3%!8f! zvDWNJIgPGHDDir5UR;m|cZ^%lUwu`n#e3=>)j_e0FiF+ZBVGa?!-n|O~?4*p$%-KOHmR4{n{2^it%xX0=b}lQyq8YFyf=5P_zkK;};`6ns zJrS^#Eb0!G@$vCz0_l^5EG=1zOG+-O*SO67z`!pGeZZAoUQQ?#%Pgv{{(yrN+oERk zxf377#Zg5AwwftmMZ_>`27%|Gv(ys@8K2M5(Z0>iuON=X`SG?mL<6eX7Qn*6nQORO zZ-Bu7|4hBYqII&$)*6uV8}->{#Rbpss;jFDop#@IaB)#Hnr>MA>|A!A`*|BQ&4&L} z+0wfSPy!;T?^E@1ovq0#Jpl}RdwbQQ_cxC=C;V$``9Q-;5rSTT8_`{Oe*VkS1ENpt z?b+nLD|?b|dm9*m%PHbb?nV1smbK@hOJuPu+5$`K&gVy)s%0hwV8B?zY??nsbGiA% zh5eMvdVVD^mQ+0cGZ2sdx9NdO!x;gXofd4E?2Ha*L_!`O0zpARudeDyHtlOnhJSnp zG<7ncrn|%Y9Ak5<2+yE=!y~@nr=hQ{oQDMK?&N1A^m)$L&gG;fqG8UF(-Q^8=iJ+%C+kuKvQYUi&sTpJ zTq6pzSVA+JCi8qx@)qxx{#hH?-Vpo2ptxBKTuui-{NBFjMnO5l4nz5TVBu7D*@!gU z?wy~nUUx+{^u}pU7{xwii9F^6vmkPI zeIRc8G?7H+GspI+o0H+){39Vu<*uvA)ynD3ZV8Q_LUFwX~VdGB|H2N&7B^{!aqWQdpCMf*) z@dHp=GfPXqeEf*=Dy=^NjA7>A?_n3A!h_5itk8M?1K{TX*1o~n?u&EolU5dwCcrT3 z0u;cuIs~w=avmO68E}JI!~++yHbbWKuw&A`GDE6}8DAnT$Qs(&+vDBwWplvx!9FI{ zEY!Kd>$s&4Sh8*_!jx1jmJ0=cTIwvsZ4358%G8TH^s9b(r^h31S^)-ynfZ@OF-Uruvwx2~muJ{8Vu) zCXuCWHJBi`I?vK`vk|7SiF-`$9um{)kM7Vy(mt`kc`!Yz1xk~@f zInHr4`LC+p60@=5PVJBmVkb>h-2o>yfmKJ(kJH}Btuk>AKdlcj)jmhtG`^U{os1(G z?NEG~B{h(W8(k)vwd9jZ#a2dlwFPw)13HNF7{(H{R5O^#H^y3kH};@#KadwVAM4u#<00&R{cTSTqNZ8;h@|1X^GQ+Dax{wL2`zRU{x`m>!VA(N*Ef{YAy``SJ)lS6@2pZP#V3Mq zq}6)g_u7prPSp}&V(O(cJi^24e60NvM@KF|PGnB?Hm=Sr3D7Ipl(AZ?oKpK?Bh2c@ z9fnNCz0*Z}e}#!Ol9=(2l$so{BfI0@`A^r`7-SwP&JwfYJ!t&NQhMD6SV20$Fl zqc}?hoa2n5qKKFn!sgj$+}zw|e+s?9*@^&j2MRrr9)!#q5*(zh^SeMLEu3%f7MO;$ z?Y`~mc0PfiI3yL^@y4|pGl;c599G$H!u9wJ2!4>|0G_hj2Unnj|9G-xyv+18+w+XR zemB$-W(8amQ}^7?Y>U33;ZT3S5EwQArqtNk+1(9q&jC*~{Dxp`3H%&TsPzulhA##v zFY%yYDNy8NpW6~U2PY@?IT>UN=IYP4=JhDgi4&fi&q1>&ikScn)_-cdCypJa^!Baw zfGCl?wzgoFX=hg#>0WJFX(^Wa=-8-3D}l<2HSwbLi*tL{WcPNLP;6}MmaWt24bg|FbFSD(6`Z;xddr+3909 zb4>`K>qoJG7_KE5!_RYSX?ZzZwWX?;J$YGDpAFq#biVUX#xbVL{C{6VaL=~p`5*Kx+iq7GcI^5i%;simv~JGC%bCp#3Tg-} z*=}AT9R_!r1z-XvCxT%tMt3e&{4Mu$waF{`++}FF5H{15TP(sPewQcPe~NrSBdDi{ z=V%)t2VxXpxB!v2&~aM}*2}xi7Zl{@xi5Gx&0y z$1iTz$ycukD=ub}P2v&N)1yw{vRnd;?N6^BU3dttkL2qCK%dvtYDq@MCvaMD!0iTs zJP0_K!AKOd@zOvL0Z~QV8Xg{|iIN2Op6h+#rWs&Ob8v7J+N~;p^Z2#?5_}Z=JdnId zIh0RrI&M$bf&ay7(E*bTRtsXHqoYACFgQHyJG#CILOJr?L?8IXrh}duAtxuNor6QM z#S{++)x_O#B0Fg?a4CMSA1b_g)7a#Lq1NERpP8AtJPB`b@RDMw`y%X*6T12ieAu7Q zQbtCGdc^*yY}K0h)S6hMPvnTan^RduCA@MO%mxi;pU=~%iUh-20{8az>}HA^3W|%1 zS+!eMhq4jYh*_;~IZ8qC@uaWP?&d1zlkPUK_#|Ccljr*Z8nkV)As+&+Xr6U(tj)Ha z%_+BIHQa!@lh3$iptdtfUeP|!l3X7cW`wbhIcmFXfPArfDZ)0p3wTYD(sR!NT2Q%8+G=j?90h~2TAe@?IJ#}Yr^PM6A!N{dbLDwkn@ zGH9OX8UNvc<(|ovDVc^#Vs&BchAP7%W3v+TlcikBlM1`U$b@Iq_dfAQ}x>8`i+T|7Hi?Lw|XIT=&SQc({U=JHFCmbTtieya& zrDHouv+OE`tSwbQgXZF1UifkoGf0Tcdl5Ni+^wjIkVuaWlVCjco;xTyP5YI^CmQbqs61Hx;mcnVg`fn>SP`; z=Apn#08H|bbA5v^2DdNx|G%zC?-C~l2$gB)NygY$e$CVLldSi2cu++RlLrmD{J`*f z9hwTw=Cu}y5KM{E35dM;{OrD1DJb!3*gbdf8q+aq6};YGwfd~@&9 z5PGL7%A}4+uvLvLs#R8v06Ae9Q?Oz?55Ofb;SO=uv+f-jinin7-vpssn9W6{`}BSv z%i^3AVVDhW94@H-wAl9X$6g(S{DC|V6nK9+YgMoS5BVM}6k+HXu^r|ZB|&SI;36fN z_|`R*woa?Mpug!FSiS^*)o|(hiUu!}3y-dw+^Uiaj|6vU6$RRUeGgUjY67n>(HU6= z4J|+?K%zm&ngXWG=Bt}&)sAWHx*psxtSDv zSPhz^_mf2Q>f=E*Cz(y*J-oPE?pV;9B3Z5Rb5B?8?f2CaD`uu}ltF3v@}kw5*ee=^ zJ-Ru7aAs?r)TMe| z5+W`VKdETuS??7+>ooeR&-a>*f|hVg63+63YxnCL3jVeS;T}@t@ z{=4bHzRpsexcEa97PI|vQ&!1CU~uy-A!W(C&m`3d#hwI497M%N%P|fATI~gR)A@n0 z1DAmxfp&zOK-E<5fz95TY4%u61&P<&+&dtv3$jkJEy#5_LKsgXQHrcsI-R~KyE7P`UnjPh-z#S>hm^{ouW%Cq+H1S|ADYw0w!EKd$<@+Ry9P-s zS*nC&MJ0Jny|v?`d!6!PPLnI_W$sdZHCD0T3AzjnNWtQGn-#`PkugXDrW?YLe zYl01#@Y2ebIh4ER4ykTG3@NM*&F2>lx_b7VX%RcD_4>}o` z+n-5OB|XiEl+@6or0{%RzwyvphheOBaUtgIU5!et*mev*$wD{oO}t=3)2LGC!zREG zji_o|CnXl9lo4YuHY_&;v(O#$c(0$wRMW^o^?UaSuwL-$vGm~$E*Bdo2bFQUSJz`f z@#3DFzOK+AJqk~K3r%zEx#d0gkh$A8y12a`qd1KZ&USg&*847gy(Uof9*pT7_Z8m3 zvwl^((hOrcxx{uy3iQTx&eIO@5$P4TeK2^Oi63c#(nN(dzQd|7mMk+Q^vH0so z`c3`C*ttIJ!HMaR=+_FB`q)*OQqF6tk@K4)EA-ITsx_J7d=k}*BNY||XAa=iPaXQ54H{HLj zs8c`k&js%Luau!k)?4J`GgYcr=IUjTkp#Edf`S1vL@6@Q>~XhdI`eUu~h~taJ(GCW!1)X6iDkb0p9e1(&aU{YiixjtlkAAv9 z=2Rr{yGhIIF-nIYs@f}7*Tq1Eg^HGRbI32PS0*tFU0bTyvP^a7>JRj=;a`?T#ZKQ^ zAQ?$6t_M6%d%pMz>iA;^6%+MOPD$vsTi>(Sgq@V|FT~2`4J|hkpUsAYxqLWy;S*_t z;U0D%o4zu$W==AcwK`};X6Pa@RdZ;(Yf-A>A6T82+^*o7zrApG_0E9x8Zo#SO}^a> znwQMXCqoUbn~K@W&_(#}iA5vCB&^71Qwz@e6Q(DRN!~MI~e|^-wXBFs|E%93_Texh#{&Yk2tGcAE zBenS~okD27*UQyN4J^I))RgDE!SO9%uxtU&?s#tYjqiCqdK2ZD_j&p>Mzpkre|aLm zun)ua)KK*nd=?q4&us(jO8dv`P+~{LRivoZn%?hqJ^5a{f@*d#qy3(k^ciqQY$~T3 zsCp~&ojoCGxRoeh{Up0y4i3!lfbjZ)22X0hsT9>K(-f0c^Gp;V_C-xW-^ICw!WG><^hso9kolnol@{nCp0hLDgxNg=G$}ibj7aVNJQH9o`*}i zU|sSeCZ{UkzCV6EhfN8dsg3LG zU|F71p95iD-46NjE}D(1-Lyf*JyyOeGvf5A_4AIXkc`Ove zi|J)Wl~}|t+V*WrN8LrUsQzF0mVub*O*e-&{K~#1uPh zUbv%Ha{U$=wxrCO-6U!%9t2wTE=0K%?q5H)=8D&Pw)&3tyXmuRU+uF*RHWJjT?=2w zwdsvpo{HR$!whzjVSyFtbLhDSg@|u@6T&7bqC^?@#kt>I-&x_bhKF?)p{2b4XP4&! z%4pS%*DNx4$6xA+KMnraod|@3^{0!mC}VWrt1?95)tG+KCH}I=JZn{%teSe;GA6i| z3P~e7c-&y<{#<8S&wptBbo?y`Ua-|hW{T~CZ%PCi{#J)}ZP1|#^7Je3CqgEzUj!+q zg!LOUD;R*T-jO(Oe+pw8SNpwO3Bsq>6)?cf z7)%k4)CQ*0+!h`j^VmVkpm+j?bcLVuL8oya%kIW6jl!YrazQ41p#Een)Dqz^H$an$ zcdZS<9@uS#cd$4}v6&$Q22_6__&eA9Cmtgv*UWQ%8U<@`GUnVFk$3e~dXooE`K1F=sDX|S@2|DTG!ttZvi zdU)&0lG&+F8UAa_6lq7p*@aBJLZ)AtpRk<4OyOs@EVN@<2msEd!)%e0A9j6okHX6_ zYHEyP)CF@p4nW-$S+7%#MF{V8tRw}|4jxHfe{7$%?7g5;J++aAEQP?1(tq&_SxLDa zBj?j|$*g;1#?A@Ym~Da6Q0eJOrf{k>d?`CK|^7!dl-r@Q>pkVVPoK> zX10P;y7SN4B)ckEnKd%yuGet6#Fd5oiufC<4fO$`4}$5+j-`oKP4o~f6f@F?>#GwN z&Z2ql2ywMyg9K_$^ReRAh<#|6fA7XS6tc&J803|NTLQL(D%G8OJRHK#RFLlm_}zyo zS$v&nV1eSr9x>l5@80b+i5jQ~_vx=Cp8L8td1ueVQ56HK56;fkZC$s_^?N zn`&`+|KDVE!R)4?Jt0BFSd(4#_2|hs#I-lejYmM)b;K!SGz#@%E1S%{4~f%5N0i4r z@hxc022O5A0cUMt^Y;ZMwN(#7T>`|SU>c5>Y;4cS?c2ERb%^>rw=D->%EwN0$D4b0 zEpmCvyp)G_hRx%6M#qqe+7$;o_`?UehyhiG;A&w9RlC`}hxJ}Ai0fy|;d`ayGDWy* z1y(?Ud+Bg(1H#^^7vDrh#SC7{s;JDHBh8iq$-iS{C;o>nsV=(+EBY1VTLTj$)TFX^ zcfNoo7&du3of{6LK}0du^o!fci+68Tj+L8BW-;rE1&F)+K`x+jYuw8C1HA_kkqlY_rFAUbtF@LTcv!7``6+0D4o`8NVm`!WZn`5OV=;&uOYa;z?Hyt-Uy&; z2Gu18V5K5Xfymo4MF9n7qT4EDn8EDB*+bge#Cd2lcFVUFlxO4 zeun*Ib`#{QWr7 zGx326kkEAiOw)I0RWB@nI{`X_Al-2#2Qo$aSCVv!#FDrSvHTx6wu0{eFqQRmA5Qn4 z(GzYjx}7w?$b$)Mc~%5X|q~Z$7QMbt^Yez)vrA7dW~4|62^cWu|xH*1UgliZJb36Q66e4vyw2) zz&aFb>`Sp3>t@xeG7}Ns<+^Xj^=Ha$Qj3VOOC>wpe1%V7>k>4al{m-Ni}|AVdl`Er zret#v=X^CDC$ugTo55WSYCVe;Za$(31y+@8&<^xn6nNw2Np}*v_=*~kl6lt9Ld%1e z`+;$1B1tq#IkMNN;{Ps+y?O1PE53WzYn#$VFDRq!Vd>PrL%rDYOh!69p^}8&jSfx7 zL((g9(x%pZ)~79O*I!iIt;oBQKQqbkZ8e+nacKz?4*&jLOMYw0P7y4x)&xX1w5Z9* zRvaQ|6vuwjwdDu&CuZ9jLoTo|9$;E;Ha^3SDPXkw=VT?lSy<|DjDZGS-d~BSfSy~q z!CaZ6{_00iY~FDZCH?NJB(KKIk*j3oy`K}jH-aw)nXs@3m)^qq`>n~kNf8oh2!0h@ z!msFNT5G*_r$bbD!8>i=j%^lv=?j@KTb`*o9;TEW%3a;5XzPW-L97`^Tnb^z?v7;8 zG92nGo)L-WpVfJ3KyhUjew`QxbV%Ge2lIGJMXw7nZLj|oV(_~5pL8CMH7F@_ZQEbp zzg7z2?G_F!4G&yhD%B#i4}4-4-sGP&@HNndXa=OzEr-4yTbONtvEZK!)bcvyKF4yN zU*Y4enk_C;PW9&azya|6tZL_*XM0z71+NAKuQ;9BfL52e*>)mKwH^ z+NE3+Hy_p%hICtA@fesg+g%^Ch_s6>Z;Ryttk5(r;*+tbzRl@uWou_*{isS7k0CDu zUL?V<5UIWC@{nQ0{+H~M=*e_09aMw*GF0X25&Xag&_mm_A>_=@sQDKT90`A^#|RuL z8E$?(lBRo_>^Y4S{J~X$3776!&)9x;z*${`;i!)`-8eZ)>USH|?W)uDg&1b*ze{r5 zt40q`>yuWsGcuHC1SK`B>~a>6#TMF`r$NUW>?r8DH62tx%>(gcNz;b2|MeCw)eh4p z46etIR6w;heGgWd7M$RB4yqi30E|t59hCrW)56nM4h`7vitzlBm1KUIPp=%_=;~Rc z3>AI=VBT?+l=pr2k*}WUhBs-rT%A{*%xgC#L@!$zK(=~$iSiy{sDZwmZU2M>cutC7 zjQ$!<*^Re~`J` zJ_g>pg|p*w#ixFKI@Oc1v2~Mf#;{u(U5IYQmx)1d)Mf1zv668e?&V9;ZW3 z)carZ{wbCeKOA3mu5E>_q$KW(rv8;ych@(D0k?{2Hr8YHwtLr9hoO;5)GBR`&C zI)%W4aq}PD)zV2I1k)u}%KIw{q+kB{0ON*HxI+Z#fi62e2=^-yEX02P7ic*F; z0OUc{n*drA_iIv68#lY>=8(GvuT|>0|L#{?`*N}1%Kc8j6*s0GGF40xH3(9T5uJL; z%k-|ABR20PrRsH=KQ6z~(veW+og~kDO&lO?_HCeD2#SRC#cn$ltC4B+1|CsE>CBht z-wzb1s1$oRHb2*s;KHn%lV8A?!zCSsAE;#>QC@WUL|004bt=9835HeiTOVzj-q4w< zrn+;-O*JNokh3T5uxePOGww#%vF6Nesb3T+-U-eww4QdklmXZOdi$HfDo~UF<`#~Izmc* zINhfo55Ft(DF<`7FwZJ~h!%w2#+OmEzcMHT?z3)knM_ecB`ca2+E-m#4z)B-X8v|0 zo7X?zNfOoe+>~}fyKIeR`uSRI6;1-pz+$5yzlZ;;i)C>NIp4j2AIqyTwgD!?A0r*A z(LmkX9N<1c!u3fXRIETHhS~kIVwQv^;+6{tlAs+dXSjo(F=`&+5Q7nWz0eOI%J!ki z1nn>g+Z@Kt5 zYL~(oqhEWPX900i+V{dA)45xND-W`G3GhK$5~22Mdk^()0??}jt5V7VT_aMzm#x6{ zUq`l4C`cjtfj1c~p!cWG^!vKgCh{TCz}IxQ+U;kgd|2rg#?|lZqClygD#t8!w6rb> zdXW%H>_kRxy+KD&un(g*P{$mz{_-(z@R2sI|NV`L39QDo;ZyurGzqc!RrmwH{UlMv zPBcrtGnsc`o2U!)!yVT&~bY##v8h z`5XAIf4A@mo;M#BxmR~GrFI>h8y+rmg^GCTH=|(9RcUD?QZtQ@s^O>BUp`JC)M8s$ z2XKOT)gBxI4Y$ClOj|m8!m>PkSC2FEUZsW`LJw7YXj9(2vHP*Gyj)_?O_<#c9$Oq2 z8%PAfJ^E3`VK+2o;n|>U!34$I;6(xl(+4N0HgP~kt;fp#p#icD0f`3oopg;`?``rn zKVQdE=9jwi>~W%O#u&Wcs?f8#ACj)oO_NJfswb;>XT$a0y0;HFZX9;yW)H19Hq`WJ zsrvL9@Bqhy6ErP8Kf!Wirn_@_E*$Yv`Q_^4V@R?$j{K}8eOD=QA+;d&esn3iz`^`; z0>bE?T>kzTEftIYTQ1;35o2_tQK6%YHvq6q|M}m;De@s>xD`0M77z(Tj&94gWC<_)YP8Cau$T% zH0404P7$&b0~9V0u#;jRjWZ&ogsgQH^&zwi(l=8kQnU=yYmC@9cWe`Rz}fr`$|?oA z#OMU;!<&#cq<%RomXDh@1vmizYq_bP-eIP0Hw-U$Fl5z_imE4aZQ z)W0&@q2UN1xP>Co9q&}5#T}D#}wsO38GhYDi@=30o^|e=VSJT+rWrBx8i!gZnX?S{`J6v%4e9I z_~cFeUsqeAf+Tjq3_dc71!uiO;=kQ8m068Bcn8TTW`$L-;G1OB65j^y!;xhS6BD+= z!_C3;F1~~qKC#7QU(CYfvZjP<*!xHK<5Tt5tmv7qo`P{j4$0h23E`Lb0rr;T+<6p9 z+uF?~GjR$%z^sHm&bx%6G*r}N+|OrUy6QWF$hhYRIX+=NXng%GF0zr_gvt#C@&{Dx z|CY+8M}YqNan}>n)OR3|5y=V}oqrA2wB|*-yKi?tuT;GA___V(Alkup(8X~ERsKV8 z`V0S*WHVeI=Bs0brusk17sa-9c^52JJ?^xb#w#hZ30q%dbbMnyd!D^G3GJ8cZdL87 zJqJm`fyZp+WeF%7z5ACQQofJ%3fDUV{478be+KHgJw|`) zARQs)KTi0tHoW>~2}9F~@Z#=J^a*_)3^=-ZV^W8i_|^m9L2;`3A}`*q9(LE528cv9 za*Oq|*CmPOrd;C2n>e6;)>Lit^*m~@s;c`o39&i#Ep~A4*taP};expbgxF5Sbak;E zI{(TpTRU67Jw6*et{uH1{g=KHWpaQzR8CU!qyh*!me zo$i>NwZ(RmpoY8TZ>EU$EiAI8RP+QA3yq$fe4^@}XRyM-pdZWjG)~#kP9c?Eder z-A-Cf`!y=ybT*0*l|%lsY6e^`Lb z(VPH&muU`co^P8AOw8!1HAMuBailg4v`qv*zcG*ZIR(&CZ&3>Vt+O*cZ9DWB<*pUzA;&4YrarA3 z`Rfj=9wA~egdPvBT7e?oz5m%Y zvJ(-8X1=G%rva4=edSGW@0^;%3JW3Pz}IL{O{pjwsuxit|astf5Ta{ zupqt)svR&S03HEaGN+8skriW=RPd1YdY&n?l&0uUvg7UI_v-T0Rjhh1F&qgOlS0Mm z7k_RUa#x*m!`!%UCN|9P6K9!zafM=%9vOjH&?%syBO=@kJIokW+sc#Nq-9g}R4q+q zO3(@X*a0oe_GNt^$U~x7UGD2bXouN<$G)WbN2CmlM)7u7DVY^i>8PT;Yn45^%S`Ea z!%w##&zRcM*!av;lV06#68<7T+7ligv27un0=;uML~8^v=8G1=3skNtyZcj9 zQ!Nx+C)VVBhXMMLh)p@TUepHDIG(v2eE+iLB9Wd=cJr6+c!JA~e-2ja4k%cnmYRYR zRLDR4R?i*N*Uz&@IrGo|hD^8h4?!D0KwMfQ5a!pNNu2Leziz|A_0iG5Boq2dMu7sv0 zO#SZzpsEuP`)r3u1qJ+4Qc`23#`iIBdJ1si2ilHw5Si#xi*9cscT^ES2Jh(p^T=I| z1PcEgcQ^X^75%*ugi+~U#Hfrj4>G$kX9h5V& zRiIsf5{ZEtD2PuxF=y%aQy8~y9!F}LI7Y4su$Gn>$;j|(Q9tmSnPZl0Dj{}t~s0>!rq+bc~>)1E`T^JxicjCsZ!R({YC(0L1#Tya4xRynIueq4XCWdgx zmQLh2=efczO;-C&0J461GUWjD10`ALC&CLKS8kA><8CpTd;r1SMBtOK`V(7Nt(vo0 z{VX!+AbGA9DDn6MKr(an3YEux0-_KwR<`PnwR%|5LK@Dewrv1bA4o|3DKW%#oOY%M zEFg$saK7D;lEmwH?-tt0#j;=@L`Q-61P}oe_P&T1aoXz$DPrd2Z|z)ed!|%Z^YHNUo-WV}c0$AwcN_|rl}8Yja&Ld1+vULM zj4Z|=$+m%ayEbYlTh6uxn`C{d00SsEx}c@6uW!o;L8utQ+FVUd&4oNZ1AWEBL^41uJl%_J=m88UG55`og$>h>v)bQ6LqpwwieCHn zag+qj$w);#=iD@MmlD~uJKtV~ygDDNbL9e(TkU;n$SRY&)Jp>nR0|;= z#0f!M$T%vv1n?I^9;-V@&+DERFz=qA&G{X&?@FMS2OX-Cwjb&Hu=CK9`0L=MGef9R z=7|BG+&iav?yu-Sfz6%MTwrEEZ+xA#VnMcoreyy;)QcXorL;r)kCbrxfbEvK0nl8h zBAm^q-)bq|;ODv&GAvg5*&?XKqy@@ z)jlVMc(*{oEImCP#S5?rBYrLj2l>t3$Xm z5bFYDHb@0+W6IQ#y@~x=LxoS ze;Do&U9(-EP_tDXtkaJ(4MDE?PG)>oO;5HQ8@hXwc!!ofW_^h&XZ;?WjCx+GK=dCi z&rAEQ%6XhCz{dUBa5>QcI0MVoTR=D#C>$PLpEIDx3LS-zGcvxt4r;e;R|HUoJwew# z?NU*#cXK`?YuR)J6sEmy?W;%;s-|lD^)|PsJ}DIuYouG;!}HHN{nb&JA2cG+xkJ=5j8q?kM8$x%*MU_f3Y<)1CXJJPy-q| z*9qtdKv~n)6&R1Tp9U9LfnG9jsWXm4A71hqgr~_J*uyphN+W7AXxueaG})aAGF1u5 z1jw4__vDKo`*ugoEm(o6%R;KZ?PQplTxN182ZkI-y;{}Fi>z8QqsHYv5T^8rtErK| zfFfX8S(*J8*FRIJL@ZiZUWjdaLBSNjF^YNWY8X2)&|3w#pR7su8`sNxUI38%q|0I6yG3P{_ES<>X!HY6Cg-BO%#e6MI%*&^sLOn;Dn>AYh^So zLGVz!eG`+;;(KnFB9;QjC!u}!JS)f5(ngW@f8hPWhu$ji$M z*ki&L+iPoGZfWk-H8oX$(R;EE7|5)M?EL)D+FDx--~U5O)CQWxV_=ei=b?&cD_6s* zOc)t=WYe8Kb0E|RXoyb$*JTb6hZZ2sKOkaEI{L?nevOEPC8ZmLeD@+GH;3@dF&fwR zA{R$0t>S7yiT!U2u0tbg5ogBMIgn28Q!~_g6cJlFQ=91*s<=Til@ zhly|<_ec8beGJreh|R`47?Xv1KOIFD8T0=Uni@LiF3a_cai?E>F)dwL6(zFWLt2!W zl=Q2WNV^A!1O5RVmOeq`1$T`A3bCKACvK?s#3ta^hOhpCC_@aX)zoFDHFJQHo}2H-5Oy9xS+14s1(5vKy7 zsj)pTuF5ZKL<(OBy;Ljz+kukET0GxGkb_dJ{*r>BJV>zc;@&C~q_pSKr=X^0*$aw} z8Q`eUP_c388;s3XJ3aAbNe&)}B{UB&eea^7&+<66CM~+Rnhq8Q5NV)2X5-=9tTpOL zW?mD8mf&NWRe(5)%V4Z-H(WClt#7GU7{3P0h1J zEqLtFkpmE6D`E=%mB6(Rq?LEMJomX478U@5?R#!XOFtk#Ch|E)0-4*yD0;bKKz{T9 ziftk9)`{wOZVCXV;|}21CW1Qh;J`o=7@^Px{qYyP(7oD3T!pGKwdKO=yC7|H7R7%Tx`Bo9(9Hw@K)bSyB1 zZX0@(4|cgLH_Im~fs*WwOC7|N{PRZwXj=k8?4L^@lL^EV(+Ud00F$0oTS{EK{qwSU zMs;s}c~{qKew=T7IED?(Z6({PaO(_yAT8Ra={VK8HC2=I;|CRK=-|XeH_+`aWC{lS zE9SZb1!>z8q}GA9FtP~fFH+dZP}hky9OheE17D_~p&`vgIG-NOOnSrz0~Aw`1cXuW zcbzV$2%218avqFw#H{0Wa%gME9vhk1Q0}aRj0tWpI)j>U=ekMoT^_wYmhY4QGId+| zdahV@{$HiyAW4tQ!7_a!V8eWE0Y!PfJ*wY3kbxyOtlSYeDyZUJQWVkWaor1D##}oK7Ne+-0VB1QGD>kV)8<5`eLciXwv=`mX9gr|D)=w!=l>Scn1&_DU}8R z4=5xc)ugFZ9c^P27_W?Sc*ny40i{qWg_SU9)dw$Igc%a;2zM!mQDu?%6g^HjN! zF@&+WTG_5Ix_#qK`QEVk!qF)hL`u9)=5BU(Jx3WgmcrY-ty?K6QHI%|Uu(T-rCq*R zGH17Yz%Cs|)%1JMYT6a~7?7RmRa}-@d(I#NBwMuJuaD>_F10o+`+FVCElZ@e)SHF6 zEhj)Hp$p8JP)4ilneC@+iNL<*zdGMv%lizSSb~Yc;9U}u~GB|gAb`+Ih_e`zUK-nGfi(H6g8URCY!6{1s+`UByQ2u5HRKUPT1_aCPC zgRtJ`Vy!P@UpmQ+TUAXhzx?mw;=TEQpWdk6#*l2w??rc-m{9#*!}x}>#-@!?vLnX( z)7Peu>Nmp%ZR4CNro-0V+riYqsmc-hV|&-?1oT~T?1|eFuf7;g?;`<&t+@r_#%6%p zM;+{2l?4|F)pKG=LrXhWVyxtr>c|wiu-cbG?DGp$2s?l@?2wqnN*DmR{i_HBnigPe z0*WT;TNRZyfHI7zod^vo2|;LwgG;92_LUFFj&>36EC zBmjX%V?I+Ge|mbVKUAkI*`ZC`9m%;>cjX2pXv_%W5bo2B4(UCYD_mBVlQZYqgsbiK zmjXM3&TYyhc|WRsM9oe{ALq$(#d^)ao8T^&3IJs8nNxnWX^RdqFNKAfN@(5A4XZ6q z6|k^s-Fgz|xfHqdUkfXCasTaR*{-1e{+Z2UEEB zv)r$kAIYZ36O8Q4xXlL>##J3x>)25$7GwUMPXdXQ-_jVf|Ix!sUC| zCjp@oe>y>AJoEkBCn}cM;K=0HJo!yTShImfc>>cs?T>T-k~C1XgAtRG&I8_eN=AlZ zQ(1-VN{;Q-7m-Q54ogp+Vchx>W)P09vL0ylv z`)xq-M|ml~J91aaNu0(S#=-RpB{P6?z{%-b(wboC*oTkP6}ayE|Gk8bc%z^5X*$qR z;{TYoPWhM|snVoii$!T8ICva!W5?GkK!cf+w@J9?2~$}>YtWrnQgz*L6#1&`TbSsc z+yNx~%f}7x1Ox=mn>5eSK|KwMiy3g_B(R^9jCU&`UR6z%ygK&MrJlr%w8kZyyS(p6 zooJjFW=a?Nd!=fpV0EX{!c83zk>+ElI;@LqZ+M6~zP*M|hG5eX-d-8m9fSa{#$W&B zqeWXBN*hZRTkdGHjbb^_-$g#R42fhf7A@k5)scS6-pL|JMuF6KRM{@eTF67v#2*11qm_%d6gxRQ$=ULP8(b zz=9>4BIoc?un4cM_;+%|2i7t6*G4w}T85wf~4t}i8{!^3X>$ZYB^=SOy zKV%|kQyu4>ngXa`uD;u`+A|JQ14WylU(reDl~f>eREzTqd9>ig4)8MH2>whB57>!cSyfb*i}-GRl#!~>bCzUA{>fd$%bazfjx2=##^_Y2LaXndGb^`;@l zD|(#tL*i zE2NTl2Zd3RH~@rQ=y=GouPqye8>Up6&qY>W*juf>V@Rekdu z>u3(8Het+4NiB_YIQzg`MWZc>?&%S`zODl^q7E#_;*K!w7jSd=Rq?}7Tc)9=x;xpc zMRWOJjtF*J$uwiGxr*7!*NQ3H?-3e&ef9v8{7dz;S9q**HA}tH{YHzb*2nD1DtM6- zO^sQsp+a~kx+0&-BISx0n}={~y!xk9G0UJ76s3MUflMfoYk;1&r5AjKf=D=#dYFls zx@ij1)-`~42t4S|Ci43Y$qQ@$|6Qh~7ZIM)Rz|l;^~3wRN-bQI0EAa%P{JdNXU;Yc^kY^2N65aVk+LG+FKPXpC=b5<6GmLs1TLNhEHrA`-$#U~1S1A;3zWoh1Oq}6m zvutY0rA>Z)TxL_2=6@ce|FW-$WPpy+(@w4%B z>GZh6dhy^PxB(hshBEA7^P~24H$5g6bVnvA%0H`P)DLE{I@P*H)fxtekjB5Wh}I?+ zwl_;!9;VN%O}givyPCTo6t3-G)*M9=^YHCE;R348(y|SmZFfid>G}GlaY!1MA*_d! zh)~iX4D8S7?qt#z%tQ!11PG`zvWoSuq2pVxqyn4!aV-@Mn;e+A7QOmA8%N02xy!gt5uyvGysTyjV(418JbBLr^;(uCjMS_;;H^B0cX&Y&jTdu#Dq>CXm8!J%#L>qN za4V(L)nS!on&L9H2h}U|b=g5#mzMnhQ98RH{ur#bJvIu5@@=B0v(aa4qT>?kJG<-^ zBvY?%1yvZJi%MDY&PI~wc9@9%sP zTQXQBfrnhx2*4RCg$?^UZ9WFATw%b>3!<9Qj@7d_O-bc077pCbSZZc?gn0`K!lLpY zJwFVT1b4t)NT1D$r8~Crqr5U`?b0&u^so$%ftlwD1>Bb`3(Bz?7z?B`pPc+!`*mK) zrfey06xx-8_=-musNnrs(dW(|K4fmG@UM16-I8`xZruY zPAzqw$`Id`#!y$4EA5vREkn$MHci9d2q4ZphBcS$t^N`lt5n3km$kn+%i&gp={(yc z=I>-5#ALiku-nRZYg)X=LbvL63z6&-OCFPfBMWRg{8znvVACx#xd5ow29Y<6j?+hj>Gx#?ivjyJp6;aaH?FLLV{lOOpMIj{B-SQZgVGDGuDFlg80w8!Tg{Yr2w=0L>9H8_(kltS|Fp@lL|eb>Fo#U3yB*4@$gs7vbpDe z9xvN6I3st)Q1D?sEmb6CgYaS<<{%6m+yU;_w7&bsU?>t$sCC0N;MH}?WpcCc`J*~1 zJ(}AN2j+J|N`(Kw6I9Av5@01EuPU2^`*`d=#f3L5>=8nwEL(cD4YY@`#UP6Qw-U%d zQA#2mIN$Xxlq;^Tcq`KWrGBD=W9jDbBh_3K(hSE6^i#QfGtJH34Jy;UP!IzXtN&f~h@Ij_it#xy3A?0pbv$`m6(&SPtyK6% zDP*o4LzuSDD;`Me+ZJ~;kIkd&_1cRNFW$>AKBd-1$!&@Zjx$*Z%py9hkBCpRLfoV% zohUpkhU~KQtC67_hAAX)*7`PgC+`7f8?9Jt6gBBy(W!~N)VYKlW^p1J5M@aavhkdqS=F~_@ zP0B!<@F0oS?KjU%wN{F8h*>0U?bY#Usdaq3c@1R)3)5Qda8;j>E2v8_zx<4Uw{r$^ zy+eC-kqf?~c?{$o`FODPb2&ZHwfiu)8Jvvz9lK;yWphUKi*%?j{%VWGOilwgs8&ru)O)~w;3>ovEfVYtJ>8J5N&AARM>!PD4E zt#woD9~PjVuzpQXg)~aL$Qjg_J$LSbUGGOLN*uFJ9Ub4S0o+6mMjyKV=z+bJl@U5j zh-E_74(Ak7U;MmEq+~x?=ti##=8*5T=!wm&(2so81;P4NCVj{fCq$b&zm_uP7Oy(+ zcI(;Qw*U)EKQxy8hcg)~W1?Z$=ipT20q`z5|7yH0#8II@Wf-{j%I2Vu5;h0*^*kD? zqWd8`lQTVSSqw`e3dls!^jjpvaVYhg8?+l<8#XbEJ2#TrTR-j(HpMtz9N-q3#>)A5 zQx9Mt|7Jbdgr7K@bdbo+*mP9An93pkz}K{!UsJ!DREu7hU!EP5o>&{SS98YK2TIU5L$DJ6@#c%lBKEj9C?f`fW7*w(lA0rfV~Pf=h*dZVCS=d~sy=3z#tFa{h~) zBOr2u%eGRC=q^mzV3<)_1(f*Vv>meF$!_)@I+~xdBtC|$4PbToh|rgQn`Mi;cMvuu zWauqooYIA~JwCD2DF*o^3yYeycCVgJl-#X4fT~t(Dy_MtXsC;56q|S&nBgK@d0EGd@9sl zSBsQmbElgcVb!#frvBmRXoioKO=DxScAl0%)o*SNwPG+u~x;S(vAz*ZQ@U^Ow>>9A_w;}mgv@{hV`mfE3{V5KKZ^QI!p#9^7{BNrQ0B>S{;=SA#-*SH zlERdIO^t;{c(t$@P1u!dt|MmE)jmr5kqNyPNX9_?yV3n6sYiX5_;jp0ne#Cxv5#dN zBD5>1*c9KQ^0nzqN^c>w@eS|}eXjwn*ngEcxITgM16;PheymLpxxW1p=bv22PuQg# ztH2~GE}BdT7hHC0)YFgCcU80fZ-YGD)#=OHuV)5y0erLS7I~GcQW~q5_OP3|g1^i6 zwPold(-3JHC_6U;vMSbxJ4%{97MaFg8U|Y*xWjuodnd`#lG<66&L`bUDMl-_Uy|el z5#l6(Vpkc_DO65+^VODV)w1@+w`z~>jI(Z_%6si)i zwgy1cMlgf>8f@tU(b+|GpKEGR6X2+&UBbtA3)L~Jw1-7v_Ywc;daz7bIL4LzcRG>q zSb!6!{s>{#vVfU;I(^5~>7f+j>V&D`mh)bn^{r}-i^UR-X?sSqnP#Ve<@KC=CL0X! zP-5TJFI3mEnTF+tHzD>CRz6qcCBtmz#uaiTxk~4zpQhtU9iN~6@5S)G8;u?CaX_78 zHtUHNCl%XF^XVhV4@#KpM@%cu$7w3ii;?>Bld$puls6FXeC;%dinDC)jqD0al5TQE z7Q9zbxW|5|fYiOO?ghe9&hL^N{Qt>Tkla*5<0!-)0n@y0qALPegN2OyMSM*lr zLfR`N0Th;Ub1^*T>}2dGDC{maBu`S3P?es5TOgCsDg|l^?GlXi4CB$Oo%zOZ08})b zXN)&gll#v?7d;hmX+qlavx_T)fb+o^@R-0qq$>IkC}HruKDKzj^H{1$nk_7zYLQX! z$`kyb=dIfYCil|~4xhL?USsbTPx7l zJE3k>um-o8_}@2ga}4HTbwdTD#P?q|luO3-bP-0@Ajj1%a1GXg7}lRnUhVS*G!I-K z#M7+`tJhjy!c5`pDXXR?ysvPf4ot}5Q+$hBrI@yNsj^b`eS67tvSEU375Ga_QnZ~~ zBE;r}?9&{5oaL((pmIh1T5SCY6$7g*AdHzmysrAvr%KV3()(Lb&(1ofKo@4+vHRW& z8FNdI2+fM{i$tg3kI9K6M?koN&`NJLc! zv)eYkIMa0Ei+6K$f>DcpG;E`MEuo`0spAoMSkj@pTd>>=U+9&(jO{m9-04@yTF^kF z0V^2W_mTCW0`wFn@W@9?v7d+iPA+;0wQLT9YW}1JCW`mm#ofr2Ks$p|ME9EQtOr_t zUd=`HD8x}4`fTLP5c>=vZ5hH&*I#7P+#ILn$;@~BBA@SBn5HOc_8!8oyI8a@@H^uXmi3o(KT#bEmn;k)(4jJJ54}fj61rQ#HV^p zj?;*;mI)LK5+>5$*g1-kCTgYn1FoYO0gBwhw+Wpw|FBW;{U8C9y8CAAZeDBKlh|GU&j!ZCu z1(j8PAiA`fCXTfpjsgB z(i~Z`m6KO*AI!RUKLEVeqZ*ZXkso9@qNx_z@8)GwSDLy8b8VguBOaXQP-^K*!p;lt zDqWp!%4^7Jj{b(8tN}W|wfdx-fm0g-2W0coe44k7{PVU)KFB_!RrTFR_|y=*QImsy zlFKU-F0rjw2Xz8iV|<~lO+_YUUBT|}_C7n&!73Gc?Q)rusDS%53fC7bKI%6Mx+E@U zv=(3Yuo%kSQj_|T7p*tOvWlw|hd$ZAz#}Qt#2t9eI2GYCOMHjf?Y6g4tDo*RysKcGa32+SjbcPLZ z?T_Gco1oN}n%<8`GfeEk`>r$S$j-9VUSPZ3l~d!bz&Zr)E~dO7b%j5>`Al6w)on>J z@8U<*PQ-ip9Pl`E8BvZW5n(?|Yyh~x!P)IccXHAFhz|p-23J~4We-0l8(0g&=x67Ft*f^G>-eDeIcoO_zXH6F;XBev znAfzpiotgO>?hcYED;Zu8!i6i&PpyXa8dFHR5;=}qGQ@a#Zq@G&>U*IZ`C&pWIV;> zSy-XwE7c-y1}Q;tL-Ixb72rvuGfRZ~u93iBIrc>q=amtTMRd(E3pBL3J91uCWgC-~ zpC;MQ%5lqp_dulq%!F7EKI~6w_x+4s7M{ci*rJ>Ao3O}tGA-JTGa+xwCwuoVVa_E0 zP4C^o8^U*#zkFWI0_xJx>m?RgJSEZ++VG_d>(AlZKxu<_Kmt>a=sI!m&&pyDEThzH zC4s~F1-Q+oRUbTjyH&j#x%$i*%T*Jxecg);rlj6a1HxKMqi|On|?3PY(DJUCZFC;^((@FX3!-Bx;rP=0kacx%vgT5Oh!~ zLD9rY`y)jLnG>D;)`*5Fb$4Clg&AD3FTF!H(uBcv(~>Rg!CxUIHrkC?1OurwK=J+G zOk7q)hM-Uj9kxkr`sXOxK^OS6Y)iPgY5VF139&Hse=whnQ=$iWQ-zP~q~hWbyiTXR zxW8^T?A%KyY+xxc39D^v8=7wR$Eq9evIfi87V;FPQV1BMN$jg0?HfO8p?t^xTBA7P@4Zt2r z*|Tx>`l}{xPwKlJJ!qC65n;@N}x3$@lw>P4GYFurt#}ix|YoSk@BBcUXfEM=y ziK3kpT zjmg^qNfy%-Yq@9dmM_j!^eQ^zM79epVWpg+yXb@QiqMO*EQ}_#@9FRgG!uvKT;yEq z5Od`=J5t)kKj7=M=y1}F`#K#Yk=RVU%>uYb-%$zX8p%QZ}E}QzK-&gH1f;#VjGuzeHcisbKEaB zK{wsrGv}Rau)qV*s?)OzQZmKxlD>A{HHBPiRVR_dEH8^jGpe^2i@d zW6z|>gTo~GraqAU!Iuh8KU~KhfOCqygzf?B@0g$=`$;y<{U_8Rq-jD>qcq~N@&@|% z))gIILsqt!IPJ7s06$}#GcywwvqznTIhKeC2@A&j0QM>XtBWSkXzETX*qXTg@K#|Tbw40I<^Eh zsv#3rH$5vq^Ks!fwgS?2J7A_K|4mu9?b;-1ZcjcYkN*a2TB>)wQ8F&C7K%%wleDPyeF1^ z{j>r#Zc3o)9>OyP-b{eru#}#fO!6N6JIx@hSnjR!0_~`h>%h{uY=Y^#>T}tYO4e;j|Hm6HAGPMxcgmNS+GNVI@DuKU^OiZi)=KoLq`37hh8$f z?&>d$0DrN$HDk9w`$U1z{P6>eS4kzo6m$?14k1)9`X*$?>%(|d#DEI^L*j#iv{4cf zI4`^KaOYw$AR$`_5qv;!jIEIrn9{}M|7wpxA{<;aj8eKYkEeI-7$z32Kugz4^PJ1I z=K)$hCAQ^$#!PXRS2DCM3(@%l0Ou@vRolYpt_Px2E!fj?%sA{Yzu5K}u%0eU{@b&C zM-UAtVHvb{!08OYGp-%26p;k)qF~@QD7zKp!Y~60Y8( z8Hn~=9VaHIDw2PNPUwX@*62c3&Kz-v}l6K z8(;uB;VPJa+u_*xSsSnG*XZo6HY}jMuX6UWNf4C+EmB)+*@W#wm=g=9l`K9i5vd!_ZLY+EPFTKQc@IoGfd9z>V z4cg}T5iKQ!Emf9m4ZRAd;J~nscQB5hnW}YAV#C0+5sMiBX3tO^(EXQf&sE)?Y>Iyt z7xEq`M)-e@Q~KVD;p0&OUT2ulmV4L0e`*bDiS+Gbu;$;rd!fGV+ z??ZD-JyUDmfS0W+%^Z>v1I}V2(iiYRCqjQ2dZgcPgQ?dsAo%EUVuy$jF(o*U51tfbIP7|L_f_4b|$7vR< zyev>ZL-_(mz$q$4DW?eL-;uDswk9hKPX$EO|LsA^q^wSifbr6!7 zuY%S3NF`D!{MnSqt@P6Z(-o_UQsQkMf9}N=1XI)NaS7b!!Xksqa?mcVe80cJdXx={ z8xo0~1-Qc<`js!u)q9a<+K8^M$aA|tYXq@M&^yJ>hfd=TSzJSkh(lU)}F9{B+ zSR`q&VxoyoC)xP?1>@g@iUp(G-9|i&jcLZ)Td?KPUB)9v8?6Aio?tSMN>Dt(rgU4F zKWu_tKeO99r8sRU%%rZy+ovkOHnj|*juue>3`@*Y9Gn^{qtb@VSG^stZ7C@lVlKE} z3cXSJcRDeF({$#wcbI()qZ1-9!8K==S1IbYEe%4w`(#gc>MqkCQQ)FsZ$n_Z<@ZxC z7VjyCs}5Lw&~R&xmN_Uj9bk1TzivsWCl%lVqG6SKCl}#kp0F-W4bHmaRU67ueYR<5 ze2@2%?2m1MNS}RNb9*;2~*7?e^eou(!j0!|^=E zDbr~+^hF4TUc5#YESM8bC5dzkN_p*TbrF62&@h#omG?csD`Y|P7qvQES&;v%Zup5) z$nU?91Fpd4egULy%W4uT&?PAJz zdla40`)yf($WI%Vx-fuTfSS0Oft)KN0t-ak{%+?dFyFfKFV1xt;#MFx zlVkpr*@P9klOiVJ3+t)Xg)Bela{lVN znNX=xAAYKqa>!JNrW=n5yf2hX1D&}Tc-aMr2sv3YpJd;RD_B)N?mO3C!dALJEfap_ zXwbUGzqnWaD+$T12?}DgKf6JG(WwhdN>$;n@ebb5&OKbQMIlGQwAfw`>>H} zFeA|yQTTR}0<*~nYzkL6 zMcG^(g8G|QBuw|$fJIj7)A7dP`5$1YIGh!hAG|nn$Oy1!(7x`#JL>Tk!CPzlf44Q; z1Qqs;8WETc6x6JwKy>IpE$gT+{k6nKOd5k3VD{9mx%X^gAk|u`rSE-L_xV!DD?|Jm zo-mMemJ6)l1fU)?N;6cIcIx?$TrSRl76ME8saF|*`qdO*xBDD=;<|W1_N2(f;xUFX z6G9JFvkGqjL~dL(W21=5HX6cm^Qs2ZC+wc#lWvMmi<9tk|7 zgR)le$)$ZE4NL66tcRe==>K|5bU-m)XyXp-l!jN_Xwmy~YqEce8v}TojR4N&mTxGs zgFc{4M{AZWk;ar)yKl6*;JuA69$|@Tz=q8-aMy^nAn8`cn_6gzR9BtQbcr0y94Pz= zz?~)HzyGY)kKEqhZJ}HV5v6F;JOb8x5rBo{`0G%Km&;Zl5U5|w5b2g2 zUpBXxJ|!yRp2E#>)&S}1X?i@)PP(b3+@U1M9fpg$hqYl;1TSe&KG#kN8I%v4VRBW(nX7EyrQhhxAD4d!jM=Uo7kAwSGm4SJvr7RtT`p$>ys^zLV6?kPZ8A=qV+ z`oS{`4?qb{fJjvkaSKqd6CCC-XlQ6o7T}i)=bLV8Z#0uLGJHcr??cYEq-110s)*51 zVrfC-qf%3L0f8=PZ%xcx+TFZ)6JnePYZL3SkwE52#kL4V918x{lwiSjs2&COU2EIh zD}dn*rX=%x2%Q~@P`#5o*i)g~$(2&;s$k5#fASoKO1@}UNEf!lt9#eV& zW(j1;gz5=fSXjU`(=FUDDJj`)lXeRQ#Nw~e4VZ9s0BUwmRpi{<9D4AC?3HO8f_3P^ zV(V-!uqOahVB6~Gy$T^rf`OEf>mC_vxN0vaTAVXd%hleSjF^B^7vj_FR%{mp5 z7*FQe^*ZtAe((XX&6E%|wgPdnx_B`=30BWoya>vAau-Y@y@f;?hgn6=N-wmu?pzS& zGtpE+S&L_1U)9g}+7sC50i!-v$uRhd7ksvK!fXMsyfuakk7wNB+b%17NXQDV*7fYR z_e+Nw4I?9?%$%Hs6HD5+F0=J0R3W!1PwHN2mcLC(z5z>d|m_O7dL;(Qe^b0BhwqdwD=;s|L*PMZgqU0K0JkF!Qf1 z+=>_={`OYI3I&Dp1}kK>3;h{*4QA)$=>YPO9$VW&FuWW3-GT>6xRyXVU>CTPh5!n0 zP)352QQL&;LMCpd3Gj<)mciAXHwx^p(o%e}}*7c7Z^#iI%H6;pF(vP9sZiUcAC zOXtWQ+uEGGN`DXt2c+R$eABx)cAMiRxiwI{%g(bFNUx;q-qh)?niSyTC(( zAG=>2BQIvITq#_3UKkh{MC2j^BhIRov!|CH)S1r+f_)B|=$@=A)wN4GMSIaCIS!3V@#uNWHO7fQU zk>B8#5)HS5Ix2(;vZVFR;sH)-uWE}kU1?t2`KBLG&rxWCsksz^-cog;;a?izx%o+i z2*GgYEm1s~`V5(7auvuYE_Um};;mld@NK)Z_boH7)Yj&bDJUoaArZ6c-B+(fMI&t` z+}+{8Vh?6AQ5u+(lteJK416ZbHYRTDP4T<$61j%}>v)%wEj1vD0C-pnz{3&k;eEfI z%j3F4JX)#Vv9Y!;ZoYWS?MeibR04mSAD(rOr|CrLJsjVPr3h6P$uJN<+B-VNfFuPN zx)S}I0nBCKe|)V#(E`7;1P+63dTj1Uo#0<{4Zct`$OAF}v-{*A3;}D*l`7FZ8)kZ> zxzKUL9^*Boz7YISSxjP1FT_dBO%Tu>S0{>OJ-X!|f-WBnX`bSN-V{BRP z`4&RyC-WFFw6!SQ&n+o{QqARh{-r;-!PTOX+2gY|y$CmJz7Vmyw{H-hGvVK1Wo0c~ z-KM2g%BcE1IEW8uvZ9o(He)Sc0t01aWv$w}%LrH9$}J*wf`O(DY!rsMg8U<4Sb}&L&{RUl0nV7Lq#K-7q(E+LcmNeZ9U@5sw?^+})?b0f<#0 zR~OZC0W%GpS3Ts!W;JPrfcC6t1w3|T-@R++uHD6UThDM?j~n5{(tRO1ndZQsupbn0 zi}YWZhPTeFX$<70;w;@$}{a;9ajI^9Qn^C%_B(h#dYJslESO zr1T>CeZ*0pkeUoK{Tczl<^4JiC)vkTw=*b}k~qrXm>>;Sj@M1*T-wo;X@8o#&``3( zLiVg(B8{j9J8~|WrpPNy*O!L?5Md?Ne4KyTj$iIMFB-(*1o62q-}KK;iPW-}eGekD zpC2R#175qKssJh-4nSw1ZOQ83@Q{^*qp`L1 zHaLbkxVZKpQI`Su#lR#83do6{3<2O5$!6gLha|zpB6m= z$2+Sj!F!M!Eu>Wg$vL^44kXf$2Hp>D5r1^w#@;?mDuc&y?-3w;%4J9aN-DUOrNJz@ zsC2)HO~Dn@o|$9F6rRFy@!s@)!tsuA-I4KVX_xEql<0>KYdn-*z$G4f!ytk=w~yG?u3T6p5`~B@#vL*pJEHG& zviE%LGC=ObudJaw3Y@6*Jc(s*)VZ!MHM?iHL*8h!@wM$|xZi%RkQvHexc9B%1i>1T zW>XrpJc7-5N(Rj&sff(nlsQ5GQa1G~mNRFq+cgWjs9B}7t)=!*u)pFFKvJJKd$wGo z)?@blG#z8y9V%~ic(kYAPSZ!(a_^CHJA!Yb&aTnAMUU{-i54}A_Eow0&+zUL~DQBPt;-5UpaS#nFMewGLyMfgi*SlCc>U%(Ju_s z&gA4JM|x;K`=PV_ms(4d>N7n(?b6akW>)S=r0H_c11vkp4Ud)BZY;m;K=f8(!s0@ z!NJDv8yXT35<(*&kjlv0+S+mnWMpLgSyF-`weu6W+D=bvzyLX&8}E)c2+I4%t_EM6 zz`0mcQv-gv7a;BH3)}<=>Z1^`0^<=TP*hPCf=m{ul7PLlJW^}eLlN4xSac+-pwKis zt95CK>HYG}aLMSj4Lt75ElRWJb&qqcK>EPi;~pM<{!Ty+hZLHA{P+R%mVwW^O3%pB zhBi-6K-#*%%x>9~9T}vg^4`d(of1By(=(CA<e5SksW=0-JIB)$1X|f< z({}7VhXS|i&DD=%H}Y$se;YuGVp0YHLFDEO3z7E~j~pIG(4$ z(PxE}t_)u;pJ-mA#)?UTB&RAPp zA1|F>K5LVF8I~t5HF4%9NWo7rLt}`Ha~7g3qut&|@*f6okULTM&MgMyUocUO^anTN z-{T3HJP#2qM~I%WvSz(geK~dqzH+I;IO4vD6&j`sV5G+H$)_4DN+M54Vk-_yX1aXe z!sdbC%T7C@?NR@?yqtxux@dS*UCp+5?Y^%n%1Hntn(V>8$2*G<6b|Klao^cI2s5bp0yOVRoy~XgA)-pXZuVeZ*HTwXW56$Y!+xQyeqY4%2)tp4Ub*=2dgRS ztH|j#jcO@o%JI_|m&o8N)Oz1Cx6hbLn(wW>t*BV7X*8Wi&>Cq6200>jJSQ|v?LiF* zkO-*b+|$jpl*Odj)w&De)gLy~xRf5r7Hs{+l08*6rkB#+?%iMPWY}C_E^=!ktOAdk zC+{SqrB`?MxB_LB@-xcaE#q7DD|=x$NO3)#FSM_o?B};`CrYMU5IDC!>Q7A(?+O z?l*WBHJa}jjuJHT$)I|?k<9m6(sLjW@--$VA<+gIJdh94ILua>J9OG)5?}l*0I!Y* z3jxzmzcQjbXOAyf82hBI--eN0#wp>#hW&gXg1~q5+5t?@?LYg6bqQjkreG@Zx1IHI zNV%4^&WwBvQrl~NbKe`9$BJEhWNs!ikD^P2Ec$jXa^H0OAcG zrpI0F>qn{^=mPi_TUKUfYj7qJkBmU?<#RXJw)FrD;-K?HJQ8n_rPiOD#NGKLaqqNs zul2mFsOWdS_Yf9rI^fUq&knAGHx+G$PmyhTJO%9CE4wk!#%|rsc(&Mo$q)BpsNbTyoMb#1LXm^y2Mhq78qSI6O1dXR-dQF3ez-q^IZ|K8=@8<^LrW; z7F8@X!ApJ5v#*iZo!EiU<4_;*fyoq@o-EZ-_B3wNNlLvP(3bHX_^zGur`Kj><08dO z;X4$iMFlNj{J&LQvMN_muOtM6Xri`dHn72{tXwd@b$*#StTZtD@8DQ8`oY%Chss5v zxf7&n{X}bV#qLber7shFJm)O#nr&+CsO5A3K}^3k%sSV&q?I4K;qkIUT|CA_D<7f0 zq?AtG)(NKyJ7#?vcms#M1P1N{GKA>E*tWh3LoAQVk~D_^j@-A#u}uer?x254n6E(0?bKl!m_Qp|OD@0Pw>AiDqT6_CD+i zu+jhyX%69L87KeSDYNuL$DPaCho7V*sD@0DSEpLes&3?& znJF~ocRciHx*c>LUDZgip?g%ddd;zb4AJk%6WO!0C%2TFwrYvHYlH9G(&SUeYuJ~c z^;Uo2X@6ncxjPE&jrf~eHleFplv!e3C+7JRf9y;62WbGD?gU;8$x**A30qcD3(1ga7y>aD0vAMt8 zlRFx6$XAsOKN|bP4kT@4$ztG*kEmqdKfr0Y6F^fWOf8;05_x}&`;}hiEl`;@5!en! zC7cUhgfMX_n4uX2CNb}Q?RbWAyX>gPIj`|O{t9L8y`u^bzuooZw94GDk98*KI2i$j zTSVet-l->ARWL*uxW!J&Tj0akeR-zHhgo)bA4Yp66*-mGtN?)*if;fs!6S3wa233d z=!m^K_t-vDa}x^+YX!Y%-wfT6+tEJ{#|n3U5^(+LeA0T|H)pBCp{15Tr8miam1?mj z^Za_#IY<)3?ipWeEYDdGKNC=FWhdwQ3)p)?DV8<}V zs+qHz&1XP)ILUTJe0p&#=!J_o>9g)XXnaR_^-+o~N5c_CDl&Go_2F*ey`r`oWAdRU zbmC0$F~vWkJ3?aO9^wVdsHsSDVB!YqlhEbJy#+=Ji#LV^`?~iVCQzQ0=&)yei?^!h za*L$&a8T4;UE29s!vY8#f9Ev;-y7NK8DjiLmHouD{|>?KXjmiDUEZeKnv`_`?C=Bl z101xniAvkA9ZOFzl*xq!Dzrn}7(@t$h<&^~GCq0G-cXJg$&j=sM1P`g94Hic6d3B) z^+oDdPR{!lA->(p^SA2{D>#K(Rs-HRnbLZVMZx|?TSXbLVtjaWHDgkj3e0WGcRReGfZ79GFjEejX2o5Ob7~xHdpR@EGGXC6H zoD|xMjq>29?=yifaHN@DvPJ**Rwj0)l=m&}bInwGO6906&_Jr}9v|kA{B3Go6;SKY zGq5O2f`x?|ncHad(!Sg~E?R_e89SoDYJjUcNw&XGoUIK_w4=EpGxeAj$5bFQt-G>x?6!00JG`PjH!!$6dXITQ3;+B~; zDhoh3>nk8lGerLnRqp{#_5c2l9~6jr(~&@8{#bACE^LODTQ}g$7Hy?#s+l%aP-1 zjPTf>RD;$aM(0y=DwvG=Ee(Up8-8j6LRs?PI%9%cm)zGL;kt>*dOK4GjY=8YnCoWa zOXGRQFIhHgzEB!TaLE%s@$RlVOWlh7IHFkzrGx~A3e3l(c$}$UE}C;J=0AS#QXi{v z$Y_wvw%r1u_9niRp1uD{8MFgU=>BEIVqynStI8YG-z zz|>{bf0Qh&U9Q+u3I}8z^XO|;A+gn>La)n^Two55^{-xOD3c%?yKq#(_hRy>hRna9 z=9OOEVj-wjYuC=@C@O|FZ~vjy27dlPaqEOn!R%OZF1I%U>n#mT-uZqBRg4+kFWRb2ku5YYF7 zzGFF%6G~F+KF)J#{?qY_rW-tDjd?@*wgPZZ7s@V&YgBmp_ICXWd=D)hupHad+vZ#6 z9X_<11%o7MO#2r!l=cJUsHdlF)R818;p)*1M^MFF<%q+Hv+yJoQwU?yA`6qc^dXo~ z#;jB%wEL~h31c$ss3;q?iu?I{RUmlIs1!1u?Q8i+jB0JJCHlIBp&~c;cJU-4}8fhke?hhX*mqY zuCEGE<5m|&?8eqd(%o26xxnSbCG57yG&j$@BFpSo zcYKuBFQZIt>`CAxwJ^V|rk)(Mz+7Zmj`Mwy6W^XXX{ulaLW9>X$X`q|&SKlN`==}V zAEt|iCfV#K9-^!#9_}p{);YX*q_1r9-cV7jc={0?$Ade$iP>Y{V|XXe@yD7UiEu!U z)3LpUe;95iL|{8;qs-jtQvB^U6F~q*DY9GHIvQJ#awlyX7yc!9mkht5XJe;{KRyV1 z$1d^j+h+2q+ss6YMPl^|lqBYtEe=D(o}Xi?x0lB0@w8D)qI4`;qV0n3Gv7`3v6q&< z8+h#r{*L7aK1D}RdZ%7DylY#~ZeMfW+Veg_%P62_C^e#y*C{kT%|;A7Xk@Tlk2_lz zo08rPo0#~Q46;86FNS=Q^AFB8=GUT8>uC#NPFh~=iB|^mQ`{zxOM5KRv!c_ltMmOh zCRg%W^+Fr<`$MQY5HCli>-j@5ov+2*qI_^p=*Or@R;UBq9X5DH*lBt|yk3Q#*5I#K zI%DYlIeeHUkmd~kzfW5ZovhS>5Jl6vt0DE&j$l?xZ|k?a1UT&g@oeIW1c`b=Ooo>mkO4YB#@- zgfcgpd>7s2{lnnnXXD6RH@#1VI!x%Wtllb-a=nr-aU!~Zwsw-_cw|t#-_J&TGA81> zW(b^P z;ggq5H2il$EXfAAfJQGM-c<_1diaOzOChJQ#c0Bmd}F!>%u$$~K*OzXqII;rDgUMwI@Mle zDoH;sHRmB56rz7*4>*qbNAANDP0tGv3aj=AAr__;{McUiGixi)E?N>1CgIVjOERfI zqWrdaEjZ4I0{!DPjzkt2`n3Dy`g?XAhrdD0)N$B~$}8a!EYkTrSx2L2*)gR}6<(Tqgav^v$SgBP*m+h!*qY|Yu> z0dk7zD}^u2m4)jFm}ClRp}qIG(dMd?2YMBv1VGR8cxRPAu>(3Af=fx`QICRuZ1C?d z;W6*7ar{3|^wFRqYz;aa5TuOG*Ui5o?}!)dl&#-;nWJ`kcF zOvv5Sa8t;#$Shql9a4D0^WA*9z&!Wq5c;Hh64onJ9*KIXG*y&s)qi?&Zq}oWl=U{v zG>NYG5~ezFsG*VSbSn^LWdhj9jE+BQ7MmH!Q&$K)=d0NkoUe*~92so^0>+fRXANAi z>-^0hHQ*j`7sgppQt|XsBwSHyT53%|Jr*JgzUx#m=zrU~d^<+5SK#kvXS29h?ckMU zs(6!u(j}_&(+;swl5@y4Eg%e)BYGh~%aBTz%x!Q|Grs!Y zn}0>EH25)pv3YvkIbxF~S$^7;z2}J`C{ChAZ9&d!i)U71H2omt{pi86C8-}+{&&*i z3sU*()z@f88s*S4XG~hOZG#5|rIYJYn*OE z%A45eAWSS+h?-6p{+_V0OR!ZlwD|9Zq+_hf*CMmGvbz{=acW@821+7*|LANk0C1Et~fx z={aAkJ7u^J8yH5m&(Fe#w+zp$=euZ!cNg4L2AxB~A#29A;FX%14X|6oCaRXiTH)ivK$+#nVa`u~JiJtsv-@4<4qKh~Q z{ZNZ(Clxh2qkOuKtS7!Zg0Sh>v&)U?E_Z;&ie}|}B@wi9u2mn@I7{q3IkQfgxk+2# zPMh2F^GYMv8XH8WQ_|`oK8sp!)Uep^x}GSMv0^6c!;b9eG4=fL7DST#ZbeYA;uo0Z z?|%mpN%|n#LX;FwVn1LbC(;QnUJ#hR)K$Uh0Wt-%gpVk8cm9FO93N5oT(6jEXTwi@ z-(38F3^B}8pB(reNnZMSXD$;Mp9s<^d8Q8I`5}3v$1n536B})DuBLdYFaN<*dtn6W zWb6~1MfYzakH%b%J_EPQ->E+0R2bBdrTaiL!G&w|^Y#Sojj^LizrCXwIPIjXLMyr| z&n{{^517Mhjz&abs+alxss}}Vy`DfL!=Uuora<}&*FRcing)T_X0T~F310>*1@7OY&6O6|6x8-N znBisndOp+4l6!0p$77}xR?NiYl==AiE$h4QyEB*YD>%kw=mWMRD9a~ZM5eprtKYcf zjyUe&-L;=EG=aoy9C;4SR(*Dr_OTrhryhB1I&R=8gic{iD1dP~m90}_*Evx0+57{6 zVl{dx4DX8PfJqO5=YQqAqdfRxY*L-eHy;#+N9DEGWn=M*UX)LNu$^Y<>f3t00A zQYV%wD>_`SvWW=0E!7D(v-EnvHQ<8A5E)XxrOAuhnaw}_q}u9pFKGIUuw{7JCP4*z z<+vkHsrLRE1`o3#pZW_=Mo*t1@oWa3bZ}5{?}EhC%AQ2%)KklVJ>_&<>Df5Y>aBnr z1y~f=49wfj6op+Qv7e3Vz9}5Gg-)m7NlOxeyBN@bX`=jZGsq}5zKyF9_hYb64}yt| z848C8LXUOtWo9I_e~GL9GlLQM>C-24qK2noWL^pj6JZS7tf;;oW1sic(hMK=RgoWN zYAk2$KYKL=S=+R-Mkg;r9ZCW}xeWJjKch#ub!2&LQ%STL80^KyIZZ5{1uV!o(f>U|8~n3yB>}+R=}E@d02KL5&D4czrz%?ET>X=Rd-k_@{LuYf>4h~_ z3f+MC4lL3esrVlTlOLd5cz=KAL8e&hxnDa4g&!n}be2*1#>66l86GLtX7a%2&9-YU zZXEL6efyJ}oXC9?IA@QjK<-^h-hWvBT%gZ6Avx|QC|b(-O7S6QEj3W*Jzm|94=Sd) z{#W3_j5LWL6q`nd^MBP4Wv^N>zF)iPr+Ujm=wLeBxL8qbRt+!4=)E2O0%mOt5s7iG zl*wT0et)BT%0bw{Q}=gDDF;$fZdO5yZ>-!w>wCeMd&mvq3i{Iky0510VOeMM3?qo4 zb<+OJI()^ABb-#p(hDtKT3QKntT9)O2lJ zC|wd>B`K{6G|asXEm7f=k>P-OdMyUZ;G~eA<&kK1hTp(yT>iXbX6-=bg&w`6sX61I z{ph!Y_4%8{LTHf|Ns{YzjA=X1H7ARD&bHo|D22m2*&DU zs~LiWxOc-@Z4%ch?*vZs!9HCP;a1$qSTYa}r2ovW`czKY@B3~4 zX@_U0Aqzs2Zk0)wG__xM_y@?q1EUk3;TVFUens>!=L)F;%5?HnVy4~qjIMo)8g_@M zE9qdQum~J}>bPQmKqvNl?9t0|wWX^yuu3|P38xkQP*3kvr-ig+Q-P}N)>sPF)`I6e zR=J_JsMx3f+7y!97KA>)5HD)}9|Y5eEjhu%8j{c5p07Ht2gEDFeRI6BJHloiv@6I; zv`PB5nOw>S!+#cUGZkx@cO$;GlcsIl%xq+uZF_dQ!>rHB#~>M1M!9d@H<>VP+{JV@E`eH8J15^$)a`54|52a&c|2A0|@%nV_ z!qXYTNx115%AwZJ`~$I<6GoYJ+yl>1TioK;GRn;tTJ#Mj$BHc4ElJO_NeFQcj*WF? zQg9;l{^&*v=WIqBZhAh;f1P)|RIreQ*PD;SY7wTy+k{Gv?l0O1A5r;XhL*mXc1r?<>Iw8*kRM3vCu> ziG*S+d?#YpYRu`6FR~nR?}##JGNK;dW>+5D*PhAH2>SZa1-^*bF@M=3>L%9>m0Z~G z`Af&nFcod_8nWnvq%j5!j5O!tqP`mfwjHO%qn2J$FdZ)z1*@ZWdtQ{MtK{c zNccq9^Zk7p(|eU`91o#W$(;M3R{1Rmoa-uo5fCW-rRdtxI83nXQeflFAS%D&dg{GV zR`lrJUeC|s#U(B*E;y+^MdHD58o#fdEYsI zG$>2r_~oSwIxl8 zaH0tN<17yM%aa(I|%*w-+R(!0QC$x_{fcKhVtyEZJLI z^9`&GCMJ)k7T1g#Hw%8pPFpziy3uHgCmQVXK^+7%VZ_qgN4jbsPpIjGdu~Wc9Jac) zEjU={HPJMDVW|P5eu54^%;Zo{nY|vrBMFdGW_G|^V5oUv@JHcfSReeow~Mhfu4yu$ zT)xgePdRF#x-n956_(Z7QSPQE+jV1+4)v?22*4G@kziCQJ-w%|0E6E4`D7=*@eT;k#~=tH#45O`uY z@qpS`#^xV6r|lMBtgWHNIqzI29o*zZ@T+4kgbK3L0;bc6o}e+lqc(-XtM^Z^TX6IG zcKG?52_u`9S3`}JTo%{7UP{0=l0vnl$bALcwY)z$`p#pulJIMw(8C-cMW*}sg{aal z^#r`=g~g|;hfHQlv_M;{aff*xGEbW@bBwKM+rASKTGC#KYJ`8W7D zJ!Lpk`&DhRFF@1Bx!Y^4KQq2}(S5ZcV`){Yv>|==zO2vvzBDYTrU9}t&&FTspSo52 z6+Y@P=i_d1bDg~GH#)sgjVes8z&SDA5wd7V#|I0<@_tVb{UhJ0MqTKZ80GVutjA3t z!Rh%duo$2#sHocczFk(3vw+NMn_W!@h+Nm^TJ}Kvsyw;ROjrB|J&lFEM6F@bSN{64bvD7^?5m?EX5`KRksR#8 zBST%$=R1*1EwZq?dZn?Nx(7EzU-v$TD-*BJgmNwbSFGY1Lb50dAmKO);GWp}^-+5k z0J?51xcENO`)t?Vv+U9hQoO+qx_vv>HfT?Kn2QjQHo+Pr)43#u1ydQ}3$`IoMOlMN zGeGKZ^D0WpL1^rE01d!=j7`PZ+B5%6#N*zMBR`lah0nmyKIp5ICLKaCN$OG$eyv*#A#24S=zFc_%`GJ*454 zEu;I}zcrB$h0VqC^~*eHEqZdaM zonO`^Eq5R|0FZN7-vpWCx6U`C`K-l{`&f9m16fXpYt9@jR+Bzk0$6;ilLVpiH+^aN z7vDPbT6BXs2A6i67m;ZlX&=>a)~E=j}E1b&(KS6Er0Alkp;fpg@-bp7It z{!g8?&B&5{^u0kv_(pLtkb{|DOe6?haAa3_)jBrDWA&}_wpjNPowqF^b+6A0Xx@@R;wriptSm+=e@BV z>pw`h@pAT?@0sYb?vRj&@RcVdg>(X8;dZRyNr6b7o8Mn;KuZ$#<(n&-d*K4v!aDXPBpTIhpxx=rURqmn54rj9 zyVn^7HE!Af_^54<8i1tboxyFDkxNq1Kk>XJuH&P3k!QEtw?4U?X(qLnTZ_M$?!6BQ zRcRw8M^DZzi7K#*${er8@z+k2zwlNyS)u?T{AF;Rm*l5_eLm=yLNR>L8I+pJOe_F1 z{<5|7;9`u7G03VKutZ0f=%F~**4H0W!0VCje>4J^+Nkf?87?l5u&22)@!O?w?c=Fn zjYiLCa+s#@v3jYrZ?Y2rQ~+?M$yvBdwwBV=Av6gbPK72rGCyF>5)GJyf0NXO5a|pb zcUxb-2Bl%0HJb6}o)-w>hiw!yU<+z2Dn?cL3bQ9D{?YIs&VuRyePrmdi`l{Cg%VQhfOCaWzy9Z%TV1Y|TqWom%gQmDOH(C?~~h z;j^SFm{idCQvuv=lnjNU?9q?}A|}Zy{1h=6d!VvW`rz}Tn|A6ndHf}2v@dgXv?^ml zW(7ZCU4p9Sl*1pY7nIPe-WD8pPaYJT108v=)B^quN<=l9g4*wwGS+9ebbsl`$|508 zjJ7_(WSQwH zqrP7=FGQ7cotD>%me6iK5b%rjOjo^;t>A=Esc_SQ6Osck?faD3{vhR?S?X18^lUQ` zm6K8zn{5FBP{S&X3YJqDm$~|Mb>FBn={l+1pOSwuEqzlEAVgp)A~x>d0ZG=-^V-i~ zxsxS*==i5iFTSa;nAUC?TM`2#42oY4x-F!HWJKESWy#(Q`-7$S%7A%4(vxgx&Ethi!EIFh$WhfEZ1?mj-2^c zn}wBq_4oEh*Jeq@=X)sNg*y}fHaw=y(Ry4Qee~jQ`W2$Tl=-+%Ij1zct>ho*HFpJc zQ9BDq0R=*u;H?{|G1@I7N^)kri=1q@x|dS)y~VA^PCjM5b04m*Ut~>LVHdu>acL6g0onO{77z)AA^gCk> z6(9%{MU_Z~kZZTyv#QfayA}Ze&dl?QmMv<2uzGyOk@oJMiZ%nZ_d?ed&%Brar&_|BKE-NPCB`t(o5cs2_8b4M0lZGc&iV}y&=OeGS;u(jnFE=haVUvKLDUa0(_p^yNgOJlS7XU%q8#>KiRpseiiH_DdOw0R4BO@U| z4YqC1(p|{*Rr!#sU{yKZ$)@jenp6L&P@-_vQ9Fs}hyTGjZ?u&mKQxQ@i zKok|yj}L;|O8yB)&t2h49N_M$(na+f0H}s$29)a*Ms8|9r&v_uM{r$Tbe+eLf^z z46UU99a?E4d-=EG0kGA(Buu9+WmX4`rqGQtVb(Y$fL1k`Ffq#g&}RuYB(-2xG!|y3 z`E?=!Xj1p2Gmd8XPkOyq*B$jzLSE}@90$xEoT`$zg~j#Tl*KfhuZW& zyD)k=8)_p`o-#wrQX0HZ4VyZyyk0d>_g`cI&ng>pb3z}!AS);wS=yOOfqQC7^>x7# zD{_3cXTrdFR?$HnF)kr=e)ssH?PcP~tA4=|M%sf8;7lVmF% zm@YTXq9f}=nvK2B(5Z`Jn;t!6aC--b_p61-lpdcAr_kpU_{;Tp40C|4IRk#zEpcMs zt%WNq{T`aunLMT}^ysp_5@hk_9JScjQ*kZ5cuuh5Y`VkLaj=nRDCu~JFNSYKcL3uJ z0+X3*G&!^4R}4^R028y}&^Se6HAVL?RS=jE-+Z#vbKhyTHDOLrs7rjN^!n zID10Z4e1Q44kb7F|7HPxff35?C8lp5uM_8MA;~qF6&d5}`ResVb4!;%PgqNk{iPtG zWNzN`U37p9YWr@_*-2cx8Smkkj6w?PVReJ@`J>09p>&}e8+K2hKK=CRQ=9L7%22Fl zYHCd~RC-MeXInwHh0WE~uj`cC7%g@uhrU=fO9A{7hszK@N64#2;$jFn%}yvLJ~k%8lPeC!E`vNCtCVFO>xo!Wz+_TA;E@s`Nn zeH#`*M+GNZ_viPJyFMbHZdVEXBo6XTp;%s|ja~Q|)37xug6!%hW1}0_>TkmfszwNj8Y%rngKj4_h7Y5vr zyQt7?7%yyTeSN->;fxEA{dFDN?|4t)FbL-PjraJTIYDGMZ*hjGCvOW8d$}-gAWX3c z?&fyP(^m`e7LI_Rh67oyL$0XZ!mI2E;Iv%|d~G?97{}W4(@j)=e*oVhJhePRK*@5PH3JBwV3P7|}^4vj>+ z2M10^^Ks~Pd*8%x+6VN5Wu1sg!1txfV~baycd(U_k@18R?+AA;eqDSW;9KkE<#p5_ zSNpbS@pg2(10W8-soUjgr2^e#%-spEbH@SOCJ-t6!m zk`Nb1NV_~W^2}Rw!<4Lx!``IaOcg~_xYN-m<_cFb9(10M1}ikQJT(;pjn_YJ#5m6? z%CGs>{cB<|@|p+900__Y2x1w4tL?cZ`{erzQLv=7Op(xpOdPIv(*1%-xVH=_9hsL+ zV?QjgzO=@v>>qrBGGz>9;iGuM#g)xkaG4TxSV&)fx)FK9uHrFo>tkGxY2UM}upm_P zjm;Cm>+`wW%HgaliIxVP9WfNYbM^OFA+>@F7f_(0;P18h6JqV|zCSqy4&n2FlDM#t zXukj~Zp{uh#`*a8U=9Q7n%jr7k5fq_vwH<17u2~eXS5fX2-mvuFHV>n8#xB znA@Ze=6DF%GP~^nMJfi}gR_+|^dk`HBeb-%>@4PIXHTsfoC}}t8Jss))b8Ei_<`=0 z8uXm>IoJ;1^nRUaR~<}i|04>hIlvHr)&sF@7Ye5nCo#+iV@}FvV?b__8pvk|O&+#9 z0Lm$dI^G`9Mj(LV0Xd$FZwD*W?Ixl1fDGkims5{eYxskSHlUs$4#I3lsupkZ{0wMc z?2kfZ@WZi1aamPW)ib)Q@J(=|i&V(N%kc_N>u~V| zm3qbpv>e1C*GWO3UP0oqcBCI2!=~v7`L@?go<;z3U+ib9s*QlI^B8dH$dH_9z4NHS zdjVPZ$6D4$H(_-~f|X}x3}06+x%>5sfIUznSw`7)oHHW&sVSD_|JB$F1eE}mh9u+I zss6!JLIg3*{BM7lDKNEy*0`-35NenI)oBiJjp<8Dc0(S{I?VtVB-IpVt|+hn|3J=GQyegwbf3Ry>GI@7>&&Lvv6Oz z_MFGCmr_LE!`8k$=zkp?Tp!H8uSJ4= zKx7n{365KfO_dMzN+84s(&Dy z;<@rIqc%3ABu;8+(NZ zX%A7;(R~3{&;VZa(YD??@^-4`;b5X8o;^50`=)Hbgt)n1_beu&_nt7790n-GCne2+ zPd0y>;i%1MlUG>y>D_BDzR$u*c7^FuMkFR7YgVlaJNSb!2Pwqv$?nqe5#1X9QJbuI z1Ke$_KK8zj7I6FJh+BPsLRWA*UzI?1u+wq0)WGPjUHHCu)_#m`ABGtuPjC7lyrAiu z77M?%zr((Z+6Tyt>$3nb2%I&bgHlvgQeZS=T%@INxAaAq@t-X#qpa1%Np$g0{GtXG z2FxcM&`y8MocA2v{bgVsm(`TT_S8~57UFSgYdz5Bfc}g2ov5&9NPJ)~p6A365vPAp z?Xv2Q*=~(oq6XI3YhzVT6Pxg^ZOV?QA6cI8i0-x2O)7o&*MR032+7|7hi9;X2m5b$ z6%EblZF*8EOPumOnDj;`75tDz3)k)*M}AkjM|WO6D={o&d@3;p3LKX#-$TD1kyc*N z0Z|N3Pu&P(WyvxXmFhVIR)7NPQ;w@c&?p|GBL?3+uU$3jJK%8rU&47BZU%Y|fCXif z=NTUk8vN|Zx&r>F<(m({_`;X`XI+2*(sdk4P5bUSN=>rYj0abmmssT+JAEXtZ_-L# z4yKy3zijGAl1QCUd`QxL>fReH1`cEpk>-!&nVhO*sa$_BA9?nKB})To%*~;x^ej0! zxyhIt7Z2}M%{UO)sji_SzN72~gkAvC^N7K9b0WNP`ZHiiuNKrqgmP5B1JrB)(s~_i zd@s*zxR4z!Copgcnq1f57q9ML25Ckz(E?^PyzDH6Z$o=6I-!0 zzKMuaV{L|nTOxfiCa}K*@7>+qDfAIF14CA6X*AG`IXgW8+Xam!VGeNuc=AY<*1n21~>ZdaR!ji z=uP^>n8_1jGmkKDL%2+0&%*EnRp7*a2& zi1A!V0yqMYSX#ZRaMSo`nf)g6Y-KaMkYph;n!nV0t@d1sInG>l zpyRNYO`Lc0sG7m&HH#falQ|G*$5tgI@b*lNo%c*6x3JV3OB)8CVh*GhA(rE~HOH)rjTle7B>80Pjcp|<_76fPQfzGwDuv28SVS;) zd25HeMvoE(*3>KKs*VfXSf^WLxWmvN=0~%^t8Y9Mdl8$ zTJ)qem)j~O2|i*XubOtM?RRq2Il4NnsbM%P$QA8DLz76*Xv-#r}Diu8$hsp3o z69*o+x&3v0i<%eT-YwjoS+kbLHbR^ip1#QHAgiLqK#oh$RWZ%0d`fs5ZE+>xmiTGy z`O`WzG=gjdQM<1rA?J$0?x|Iq4cm*XJUm;xOor+8nPB@?B-vZflg1kJ$TG=>0ahfm*B&A$|rwM>MzU2zmue9EmVAx#Tdp z?r)1B_Y9s8ZoYUms*Kq7y{#H=cDE|g_t+L$y|KtqVa^+n3~HWxh}j1Sljak|uB`9J z$&;Uxvr-Jlq??{YH83DZ1L;&5+t{or#o~`u4uUV^ts}N!p0QZ(#*&IBw%B2tIi$QD zKHqw{Y>y!{8{Kq9BU3T0KfHQsM05x8Pb>^h*Q+C%ralkxmyKgpzxhUloX;LVYhvKMBl+0ZVqzur%mJaUMQW?ny`0mF9d#_xC+R_rkhN0u%^Qb>S^-ogcqZu}U`}S|6~G8XKoq zu4y&ud40MY7WJ+Bxl_(toQ|5ZaKx$dtDiJ5JscKIqLAa(QTa@s4ux0Pqqc_e^?QP5 zBai8QG28q&7C?swvu}Sc5c4!Zm!owPC@d7x=#N@H$Z@Ipe_ut(NSFG;Q4_Dk5Mc=7 ze0p=V|Iu^5?0Mut&P&46a&@h29=H5Ub@kCW7t^Hg+A?FVG$*baXGja@MI18H{$oW) zjTRxZ_%qQ@_kV!!Daj9Lz*V~ym;0O=E#XHTs5tf{tkXH(Gfi4>CP-%8@O}HYoe~qm z7B}oE4|-Iy_1dy{<=k17Q=#K}RiUwrq9QaUmKT7QGXE-8?zIy2mx7{2=i_iNXnC_oJ_PZ+R@ z(r;CJGNcO|q(9HefAQy;qnndh6vNLlG&JgFHS5WN+?gqK6mq-aH!Ie9#FB-`JMu;5 zuX$>H-}wDXG^=r-?Qtb$#oNhe%hVU|q6JH)t;6%tvfygC3i!Fo3lg&gmm{rlJ=5v7 z5sZT~>EgL)*{tv`D$I)d-h>xxP z;#WbyCW=4PZ}v*dr24-lsMoF z*UA~cFe2)lGk+6=rktQ9zQi6JNE{}gUp+m5+fHa!R(opw=JDTU!4UVLWG-;=xj~;- zYoVBWq4N&5Tf9w3_c@l4sNq-sKg(mYuiF;nx_iv>`n>$}FVJ$~+@GbE zwHiyn7{!ew_rF!;BGo=Foky)+(>Whdn#>^!Y?=5)LXVMwY}eQPCbgXpo46dX{AQd} z>~50V1;|VeYhN?GDc)IC758mK-LdR4$N31ul<-;Qv5D`jy@?DaLUVhXen->Xj*-1O z5#_h&p+MC-5-sdqW5HhMq^fzNy(^kf=AHJV4{2QO&pt_WNgHnu`K4{%3Vqi$=yuEN zwZYjSvUwZB*@)Q+M)v3gF|0eN)876=NtrKP2EO`gmy_6IgG4+-OWz0E8xBEi7kweH z0Fx{WLIEo5DEr^?OC%)R&x~}i+rQJ|6lYoK^2R(H1;)?v5(lY|VX*0!@sFt`+pmn* zRO8Fue|bHzUovWgsfpZ(4mIiOSW>y>erh|bTd0enob5qe_iLIWc9l5pUhoMX_n9l~ zd=}qjqPe2g7h|9k^ua4(^&93>L;7mdzAgxKGn=7iKElpsB;I;@=&gQtE@_@hYG$GU zZU%9zGU3v1cY74VqX+|qCPdnHZUX?$dC>h;QmWU2s@gg$j6wML(L}}OPk6!0*|#|B zz`7ETEox5yaZA4JH*Cu9@rCVl8zm``^c89>x}LObK#OsM)McS-)zG)+d3RUs+f|`3 z3(jI++6cC5WL6Prg+oQ_H@By+!NyOYo3{|CEna=k7re(TS4CD*MKi=48zh4VvMtrw zE(yLDBCg+L^ZZfR!_OWDj&bL=Di%Gi6?R1n^ZhW^0~=oAYI{S>sHl9^##yZqc3}Gx zqm+P`0e(iLTng+co3oekxUo01Tx*Wne0qzj_>yMa47^epM2;%ofIBQ%?$lT~tg;Z7 zOWTMP@$Q*8*us$&@14#O(D)r9Fl6SkF``ir`56x+f&UU~l~AA&DaqsZp-{kKatyN6 z_;dkT3J)g=_v=DF1~v~uwUyr7iuPMH;-?udm$xaR_1iTh^m|`Geu zx0sgR&E3ccI*jN)9Wdujv9{iCUuX3xYCIEHX9fmj`wp6L@o_N)8NAKb6^ z($qNh(yjz97K=m~-%YuBJ%YT9UE%Xa_1r4IIh#zu9BPB$J1=m=T^j+eI#RXuf&F!Dk3izT1J-*g7DXV{oa1WozzMF;B8L8W;h^vM z`KsTp9|PsyOa8S$DZ%R&?x3_bD1O9YpyT*sVi<;nN?$#){tdK-TPM%`yIQLXtd(dyN^|eD>y=Ui0enn;N8V`>MVO|jjq#>3?pP{F$EqZp3H=%=+2WQT@ z1LuxQ>w>O%Y_Q7fx2T6~>@Pr5)z)OU%wsL^T>P}|)Cd0eY&y4ar_k;1h9GHh|JucN#&Xgx z8{ZlEJljnBZci@-?GhxCyqZ3ueeFpC5nY|#Dtp38q|q?qVd?Wy{IBF)z}PBNa1$&euc|Rn#HfGoi;a_Io*()b4Smf5Z=T!Foj?HDk6#CDcG_#xIXwu251FrKN z-Q{5q@LlpUHwKS(OObU?>@NBJ)bl!um-Y3O^K-1ZT9Iu1HO;rMB6Rik5*G2qB(fzI z`e=-a@{CJvl=*-7X$lm3)jlek-d<+8D6mbF*A(INiJE8RejV|p090-(pDxRvO_8Fv z{O&@jNF>co6AH{Gil!5@y`O&;&ctBXg zbiTj6Kh%)GAPy{7EC1l`-9hT94T8mLGSQp1)^8C1)qrtC&x8X0hDwG4>)1g3OX>3eX!3*YXDOgCS!xiP zC_%%ay4Unncawdkn&WxaV|t{27R7!e?(%DQ5He0z+*+3zLQJTqJP;Oru2kaZt#7f7 zU?Ew7@%I(EhAH=L;)VxSIYlG;o3O|60yV}qj=|<1KU1b7K2-Cl(Z$`${EfYm{`APV z+>h%mCAN&Q&A}75=xHb9Yc=NGdPI9dc`3rEO6FdwD>P17R;Nx_hLJFM`E80hkUYlg z28FJ1$0+-hT5I3itDKw<}rXZzZvgPmDV|W8)Jz9z?1qr5MfxWL?2y92VowsZs6x z$gJVB*3@0Q;JIG3q(scL|!s-*v?FG{em}I3mS>DYmTg z`h55JYLox11vaze^jG^#s&oo_J5hKO-5aJWN~sYbO(~Y@B^tPIoX-Tr+hZY~?NUVg zB)uLU7s?ssxzCPjaJ6LxiRvnqK|(zmqYcAT-XAx#hSqIV*B!E#U>Zf>m$l73#?^lg zAyF=1R^CfBNQf7WO>xBbJDD}@;arPI$U7Uyb))B{GX_Q0ZyV+uU0m-A?1ssT=CHd` zDjv=1;^C$PkDVO;K%mZiMkg9sbUn?%n40j@y#jj5@XaR=h61e7xpq_~jLx#2?HUW8 z?%!i4n8LE4GC%xvcxAFupxXGM^Uc_)>H2ZeS`*GzFI)}LZbQ-bXQJ)8Uz;36<&>FP zPDsW(@FG)cR7+LnU2#xe9-mT(*8?Oq{Kcq z?yNt&Ag?t2_1()ApNp0RxOaARoqVR|#&5iV2FIfE*~nh5vj4f8U;Oo59^T)=S9-9o zHYFn|-UDmMiMm5~?%8CpQXCLZ8}0P-J*xXQa)}0k*XJpyAg*a`M?oa4hE=mc`t+FU z5EpOu$MGN0m=MLaUvr!tmItd&M6BB2JFgsVzW9^m1i5?0k%}@YD86FIW7uYym z;Z&;279JqhWUR10e)`(Dh2)f8)WyjF`=W>*Q6R4$szpB zSs~^!OoQoHO2yB_*F&<@9TD$yIi8iWz0F?=iDa1UlXppb^2(UL2hF8%!)JnFazwZ1 zT5E-m*6%%0{p8e{s~L+P<}0ibiyT!FHwe&!(_-GE1^#sM2ZhH!#=~TT_P3ULQxYf6 zfHdll`BrfMPqI+S97Y`_V3~sx#Qbu*1#F4fWxKBxq4B6sps)ErSKWuSW?s+RDzi%5 zy`&I2mw{_6VZX?-`1uBODEePiKW_`+8Y>I3uIkX$7pySP2H zL6H!oQ&EuaPL+@jQ9>BHTe=aEE)k?bX%HCc?(UH8?(T-~j(>RXeY0FH*DRG^+CC2XTEF&W6IoB$%`XzNz2bo{xPy%o5X#>+R?IXIt=N!AyP<-|Q%$VI9-q&lLFEY~!7X<82r@bt$;gpS z`j0G6*Rk@XiR$GG!T!wEorlccZ(KCE3QKPn`R2&)mk^W8>45d!7+IEIJjW99*;C|V z^wj?YxlnmwX*r_|eV>EQPQZj6&{(Rl{I-u-n?HUK*rVL(`e_sKXRT|bYjw$DjV*V_ z0^jjof(vHh%b0a}Z*YAH%Ej5P=jA_Fev~UCtOg$M@3jiH$h&4X{xFvfdvy=eYLi)M z_r@Tz5w|^;K%nq5)B%Cpv7q)Y8;Jd7jD_(vlgAG9*_R{T1subRf!5fK{w`Irv8ydO z&R9GqG=M-#bzU_+e~h_62zu;if`3QSVdqJAefBipzCq>(V zJ7AC*f3I#jd-?i8sRJH^41JD9hISu5xdA^{!zR((KzGjpzedde*@T=sY@aXAeVlr0 zp7Zk-W$5ZI10cZ}SO8sKNj$?b#P305eoQrWdf z>^@3TJiqu?o>5b#AV^srq#2Y-U=-Dxxa*8fIBG#zL(OO(VGUx8-+<49FYQ(*G2I@z z)XMk~geXr9)?)U76XZ)0WJ$gVpk}R1Ch>GfAD;`2Bio+YSEfVZG&Lh zU-_Om>9}>pqybM3Oozv#b{mtuKl)TCKF4`5GcMuqYRqC+Sr`8_u>U|ha$jm&$~VQe zHLy=FIv6+GzF#T%K#9P!<);yR&pRMxr zJ2_r(lh-DHD&xVwC27~}^=Ua-h9_|viLS9(4IjYz@k`SR^)rKx z@CEXIK-ztfh7DOf;7}h)u@;~w;(SK%j8CopppN-hhI3?9Z~?2Q(7^cpdsbw%q(0M^!6JdJwYpP9^j25b-ni zJ$^`{c0UUOY;d@Zn6Eo~e}2JOpP$pTD<}`B0xa zEci|xi#$4FQ&e74Wu*jeeC#h8+bf$lSu0pOat&oS6RtJG>-0pddvDxNpYo|u&FV4R z=t6K(P@}HNMYTq`psb?CubVJp;Dl1N?op1F=InDLr ze0CK(*VyGZ@=Jw-8Mj&Pner7tl$Ckm0%3=l2FOFtMhD0ZlVTBO6BAud*WP*rM5psi z79F!3F8S~VT8KVp>g5~(_|*;!u!iHd34F}6o1ZrPz5$Aq2BMaEzJ8Omx9E+tZhPD7 zp7f*E;_~kTGi$)O%_5L6&x&rOwbiBR;tBJ1##@_m-s1a0^hBs?j*;ZnT|Muqe_o*` zeXG^vbRr*M>uh~+RP4>SLN@?PDH{1cO*$$#zu03`Iq1j91QVDnVW10OVBxagJF5I! zjGFZYOpnXss;;_9cf|cmx>z^plFnJ)Y)}08%*IAZG;>ayBoFBg z_#R5CWAeLbbJT4wY1!H0Q^cmE4pP=~1%HC7UFEho(`z=7##}b#NfIzaa)s)wwzsB? z{)Kan;pZJ5tN2okt@=SDO7PG*+^)vCPP^7LGqwj299w%{p1#DqBtQ_>EOIPN1{s1{ zf@oa9d#YSh#<1xrC6_zPe}CXT|9q74Jw#>K*1sd zSX`G=8q_tI6ARA>Ox{1OZ&k06wPFEwfs&11YsWTYlppl=>JZGLO@$iXi%wJ}6I%_& zU>`YH8Un-F=WK1Du^q6A1Z{%DCX{H#AO|pbZN-V7OQ6TFx3(*7^78vR8QEm>33*Lu zBTXODBM#J`Ca;y&?pOhl=3IjN2!FW>P!@~%?D;cV=-8-jtvz)TEZ(n#gQaXugi8-OkJ&bq)7dccRWofh^(J`8hk>K4JFOY( z(4cO%&h3037{q{o=jJb;T+TR%3owW{Scw0=`-UXY8n;0=X2V}{!pElqSi9UuD)p2J zqAm_4Vhv2v`2Hir5D}M()$L$buCNr|Yg&>}EOLT$k6so6(ljNTw&nFy#W~8>onUk; z2B8jh<0IK$KE{u?Hj>$Ys1|~rC^@sokP(}<4=WOHccfd>4q{ZV4`M7o86@F4bD(*Z zqHQjEy_L0QPTPZ9sB@WCuy-@np3 ze}oiPwe9iDcw~-!E?RIIUJVP&WwH>BGxY#Id1g3QOz+_PPS49$)LC5gqD^TTY_XAl zQ6t7!mHR_2Uj`Pd_z@Vhgfwy#{gcM3+R{3;G*Hj-Ygh9CJFV!`mJr`*vBY75q_wrb z1$joAu70Lx3I#(>BqLN>FxPSl&WPj25FDj*=+g z5xYT}BQl*Mm9Y}LA)JBC``^^LwsVPl0FuKc@?p2QaqQKFbBLAmJ`I3<^fsQlNSL

znChC~9A-$7+(xiM!9H`hf}?+YkNL9aBt) z$P5cWzEaB>Dxn9KIN(94{|Js>D}C5RzS(M^bKTzG7$nVbx|p*i_gESAieFVLhnq{N zPMvi*2_F2lWY!=-sbiNGv|6;>_iXfdGQiBIK6Q-E391huXGsf+PrUyW8?)d*ejQm2 z91dWAq3>y#vi<-r2xj#E=VgU0JG0wpz>nbXXpIe7gaogc$?pBCoBTLz0>5dHXdL zp>*weXGWW}qep?xiLK!yj0c)MRj<;AQLDGbZTIFY zy*vpMYCckjyqmLdzw{(ud4JQ6pktY(9F!dyGspXd_mIxyrs$t%*V_OBqIj&E=llYdlEZi*o-WI@JJat^$ddQjchSq z$Ijod_Tu<3yZh>k*Gq_BGkwMPXZzl~;dI`jy1BCP2S3(6Y#8m(e~f7dAzmMOE#&Zf zR@Zl$-pSK@mJQ+-i8s3)h4GzToR(7F&s}%hBx-bbunSSw#O8j%e>5OoM`7o7t%ZbP{~9>QAX5rL^s%`;Gfjjr z*z&0B@nt7?7b8~qLh+ac$U9RGLA7?9I4pFIYOR3EC?|$%DXt1@d&5U+#?fli8fn~5 zn=lVfLt1&&r>35fJUG)<$QWLG2c{`h@sFsJ^A=0e!51%97y~U?fTCFh4JUX_{~P7= zs@I;YcL&QGM?^EouznluU;8d1GL4fljv9zeas3Ahbype8op^8Nb#43I`;p-$q1X|C%@sTbGFt1dJ9IIj?co6o$P7xFaGIPlAij$wcfwHWhv8J_qbC}AC zURp?{IVbw4y)^Qfo|Hghk`6sk`@`R8mS*R<4{C7WCK@+o(}zbDL2OofSDbx$BIVI> z92Bhw%OPFt=U40;Xs3@DsSSrWHpFO`;3zo8EGvr)s8G z#5I3R$vtkS$>&98s!4OUw{cW2k-xR{S)vyz2jbve3S|ppW@dv!0z?rZe|fZ5pm&rL zRB6GH2vRaL%X1?eH%b>zUk48t6reb8I*2!MQ5hu1otVOHuv6!6O)?>Fx=@s^Ipu-m zsGz>A^14)~bL|@;Hij9lfQsorzq=S4ew#8IH%z8Z{p`D_8MEkd!@VQ3hZz=69^_U* zPjo=vth(Jc@Ly%>k=>2KuYH}qi~_x~FuXWRav`T8M4cIAxw|jY8zK-u$=Ot6&88E9 zM8Y$LeAew^I?y=Ul;kz1B=>CXpDZ3gP~QgxwJ{7c5jax9UsuUbk-l0DbvqO8MB%yz zwq+DyTmQ51hKY$^kgX@b@3o<{se#9mDr5UG3)r8~BsqI;D^qkxM~SB{Ugi=jM8tj? z<%2H3!?V7kGt|`t+lRYt@0ZsCF<~lFIe$85dJZysR{Swfa>}5z;}hzJ!vy9Y(C&QT ziCEjV!dN?9Wlo*A_*PD^#eX_(M-r}m$@UdN68n6zeZhD=oR5iBs6(0~PZ3EDibO=h zwYci!uPvjIFJuqzDE8c!cvXTi9VuqY637d1w$;M>?mcxegCahLjluGLs(t0mi4Sj- z{-fEkWz|#$RW|9zhj1IRN*j`gbm$&@=e>M7qT%^*EL|xd)b!86sbW*u*_bSlujHF5 zZD&7}XQamh%-v(up3{#HtFkLqO{EG{n~$KuKcF)`hcOT9(oq&A{> z!z#dtV)Qmk8P=RMfeJBlb-?k)c@0?37^J?+j7Z;p{^_fwlhE`~Q?Ye-qJBnd?#+ikyn2sl%iLQu z+s6AtsZ?`hNRp=iiqmCizs+R^Td!{AwbRkth0Ac1>2!-^@LDY2q(?42Qm(1HDZ6w+ zJsPgmxOa@U?TJIB06PkB7{7~B|qk4+-DD82>El=lJnqAl_-H5Z;Tvdu)JnSE-w#?NP6lB&d1ifVyS#bRh{ zzMk=m=VLIzwS={H^I9jR$57)OxmOlyK7HH+ML7+-Afq&(p$Da7Yqp-QpL0yGOSu}J zJ@$|lc1z5dXEkmor3Y@lGjbm9pBHkaSpDMIN;Xk`=yP~&SXd$Wg=}_~#%>wj`yaMN zLuST7Og+~5hdi+D{LW+)V>C`M$kWreRps~%kY8dsDQ><)VrKqA7P8^Mf$A+yKZ5B^ zaAb_uNj@TIwSzSHWNx{}+gl00e|q}C2n;s{`iwr-V&h(HR*oR2;NJ-{JSZp+XcO3a z4|GLkwAUmRu8P|yYP!xz7<7n28V~}>dG;RcjN2FuEx;Rj|BO=acl%rJmv{a&%wYx$ zY9kStP-z4cZ!VCn82x=~2H099?MlThq~> zADO0H0;}Lm9`{wdx52$~h!&}EoPiL)cz&151YyLD=TcMHJ@7P`;R{a-ioMz$n`zDWs z+;RPmU~CW9JrWPreIfvVcAI*xE*HW>u^z7OgE!VD31q3R`j--kv5o=K43&#D@=u$D zku2u~E~XpZs$a%xl7!_x(nkPU%=tdfl zITci|4g70+4&&3aJg4qezruz94G73H!x&ODGIa>3#MBHGN-dt)Z!`rXQn_dJdAg88 zp2ni-cuQ|qNZG@{0bKjXuHMq3M4Gj~dhwI94w5u(YkS1XF2ChapG1)d3%zp+pg=Sr zM2YRKKd%v23a>|<2bfRmbust3Fs3dH5`ha}SY^Y~q<)Ry9(oPS9=btCXKmdlX1i}Y zqgRZHqeu5x=t>%}^yvKVebny%4Tb7Tt))t3s0n$Y$gLB7fky>1%{?s_Lxn4HQN5Hq zU6${r47oAvEq;%U_30jl(sK%Hn@Jxp#lkC=Lv75AIR|uxUIRZBG8$b(Opr*f)~?{p zI^1lo`xh{ONM@c{e?K%aLFB+&E3bcZou=J?cx08KmN7|o|Is93 zWb~bg#hn+fLz~qI8HG|1U~BGBe1up#CMJQ8r?%$?ps_pIRFe_#2jc6PWk`B|-Hcv! zUsYTHsewh!-ztU#3%k6JDk|4oyW8S&HVN4VAkh*#uZZ1PcTLoCT?&iGy5wxtY7iYI+(JK`IAPF;<`YHV{y_|gQGVr#H z`-T=hqeo;8wXzcPA8*YurY}SvV61~&UrmOW(EeR377@dTkgDh)k@CW>*ba-q!1NGJ z_3*H$hE!0f_KjgbC?Rqbn#lCm44kjHj8fiLt1Ov!~Uk?U*!gj8Z=_)!Yq)z>!y zKVn%IBc_R!52X2-soepK*MPd<1U2@9Dz}*nUO1f=%+WE@m`tTYCfm5f{~u5x%~eXgjmzZ5Vv-f9AcE^!0raXc>bSONbz{+9p>G&m6j#6;f&yG1;EV5$UphJ)A#8{0yx@D&Xr5D+YaG3~ zGu?aTcJis<=Ecb&Nh|A7f87)#w!Dfh8!#L9bRI&Uoo&CqlM5L(?SzQOh(5*&{+qv4tfMxg zq)Wx(BCT`#)2ju*86Td-;F6=qEn4?r*0Cp6cU2gw5cJu9rEJjJUF9$k6t%jeezqL& zgVb+_%;Q_F`>uwdQ*NNMe&jm=ht6J4;7pp~nAmFT6f1Ss8MG`$*dA;pXyf@VrD$C+ z()bg#ou7+yh)vZBcdJV%mfB^V%wmO=no7|!qlYF{f}Ptvf!jFl5bDT``k!2p_|8R$ z52RJpkAA2wcMbqO(0mdMt_CTft=vQrKyPe%;9O?!C6*=WXH#oYZkZI`hlEp4g` z8&txNdy)kN+?kW)GZp_-etlzbAc*7z?y-bd4psp4PiS89%0VB~#W@rgJC)y_b`Q)n zA)(EZCpv!J8DDX*mi1B8qb_(A!?>hw^J4hD0zHK*Y41VV_v$(UB+E6pqAwe8#pqp6%R*#6>4b>cVGKYJ zk(b&m0-CwLicYlj;ZIcfXal)6Mv1cL-3Up&%3CD@RzeL^pG;yXn1)$hkDTQP znIrFsB76_Sfp~u`8M6b)UTQe4y|-zzY0y$D0n=Hn215{=azf)l6~{@jbl}z01y4M0 z)7+qTNGc{933-k1k4}5+{BhnuUXXCbL>$ zNaePCR|(>SYVaPrrqDIw|GcDVzYp9Yr(Tku~%Yc)C>bF zwgAEQg9IEXE@DiKRg-t3=~SY_^m-jCNIOuv>6AajDqn=CtRoml4~@+Uh@zMr}u zFMY2zn-QUvwojL4QL~(mlm(gQqeq>s>-N4^EO8+#@;OW5K8ke1cEuC3z4jxY)OXdR zYF*~%^g*AFNLgh$ilMJw$=B^n#Zv#bzktJFOUu- z-6I8OK=<~dh5bwW!dg>uqsAPniUgV#>Xv#Dm}7bVz>8xak3s9mV{_=6HaQLCx`3|_ zFiF39qo&~k#~?hfB-nxi&9FbEu&teU?1^C^xWjfUx=Gbc26P9!bq>M3F8uc4-}k=Y zofrVc4K0YD>c!U})~2bgBEC!jj2dp`mxc28#JFa?=_bm?W$5b`Ua`=WIgU&o4zrBc zLs{CDoF6g*w#Lg6rOLPF3l@0Z6X(uwO}2dhCOu`|XGNTQk$}wMa3#zR_96FU4f{%e ziNTL#)NJVC(YR{%e6RQ;RQ8Ueahut@^h;lU$=ym(N*(KGCU}5_dMcC>sg0$Y(^&V^ zpqO#E^$Uyi<$_NR^Xq|+2k|1q!rRR9-1M+KM!XS)3{0&84`LTDf+8$H1t7Vq` zztZroEzR4mt@49;^O2ek&{6gYz7A)C5_!IP7MiVbZAy7}H;CnQlO_C%kJ zcAoaz5@pI~ahJh-jfuM5bj|Dgtn0yqC+yesolPZB>vHgFe3ZB8O)42{PcOrzajqt0 zkJ0vqO?l8T*USI@K6*Rx=2M#UTz7m$j#mLRU7krk2cKpFw!sD&Br=I9x=pH}gGY2oynb8Kcrk%>21ThB&~ zp1!F&6n1=8h--3m;-6C>S5z*?{kVY@kDTrC3$ybir2+ORK?CNH*Bf@y7G0Qn7v!@M z>(?8f#u!1@8%L?n7H_w_L!&WJnwOPD5dUc28~I=&n_!(H(hQTg*#PY+l$9dI{pVL= zsQ2HbHe?w*U?-Iwc(V44RD!9Tfozc5XiNi!a%oC@$wtLxxmYChWttfsV{&HZmXFxZ zada{42O@<4vwOE^4ezg)oUd5pljS>EBg^~XwL~R-Wi@RD%uIaA8zC15GSZRP(>FJ6 zhMFAX)tzyAd?5*=&t&888`;OoiyM7@(TAuiDXaGM%39}*Dv~$yX&R+BBEp-bhesDSXBo-_Bx2=G|MQ`JP*SGPgE5YSwIomri2f-63 z@eB%rQR+Y08I1$v6dW>dlJ2>CFh2eG7;nqJ@jY;}eih>t(zBYEAnJB}nZH+_x7y29 z+rAtk43R#$e>&NvpTkm$^mv1j49{-Kdq{@}YCB2M{-9pvn-;&gTvgPxBPO)p;>(`a zjpIsJt;_k2TzYsK~DerzMzEf|RIn3 zW2Rs4eiZ2QrJUu+)A}W8g2ESp#voWPkTr}5`CPX{)tq2XD3B#td`(q%9(|`6A4j>p zR}p+W_jKRCBzTJ>A!Za>WW)Ve%%v>2M4XSb9|Oa80(^xPbn;jZ-L1PNpmDv<+-|PK zWp}*V(VUFm9@9RMG^#teTc_JLb(1_ako}Ajn4%vGj@5p;Vgo#0XOlh68d3mKz7JeoW z#;PcSQXxpthu?c&GlRRBS?h&4@*5O7yGFv?yAwbWuazoy$$e zHgm;JpT^X=889X}xyUN#mt)Tz=0; zZwFAS@Qdf=J;^jr$-2B#Oz?h++PE;%kB>xYy_-H6Pb^S>$}|~=kGF*xhQZ}Cy|Jsy zk(1hmQ@uwvy~f|=Vd+K;@onyab}}ZlY*Cu`-e16;n}3M`hFfJY^|#j7coq3z4v-mV z2#m|Br3RN+@oj}2vplRRH)HG|(U0Kkq_H`ru|cM`Io%s`E6cT*w0H1m>-3sf@0gtS zi0e)sc;8Cv5#(H>L&_qDiVYTyYAv#4Nf+oR(2Cu4aB zvmvo(uSbno-_Sw{s)AE}rjdm!t(Hr$D2*}D*D!1sN$79R;-wq!X9(DHiD@Xm&(6Pz^CMpK&i0X_Z7X}HZR}f;!9PO_?TWkVmkN0Hg}d-fkAjl5F!@>K z)S?z+6qvHDf;@5YAzCEb$i$r0a zOI4v4WshxGDlph#W44-bJ8br{6>&Z-E!CtNnnBpx!TZ@;70`vhf)|IIJs?XP`Lth| zpWcKeXOsa0dyTvQq16`_{dDe8hi}zx7u*EAZJvEVM6|skfBLxoS~mA>c9()!ab+y3 zA&)-T@$vfa%V>A`E+fV|A8^BeJ>>4RQo&&j%MYKCnSYO2Ll!vK(iGaVHY%VjB8z6I zv9hJY3#{nb45ms*|dk{%c~3cV*0Gn-G5*A3chH9T-o2i%UUVa62a3FX|vS5itoP)MWZ`#%F9srq*4;&i}vGYZ}tfDPc=~xWeguH3FP}WS zXP<#vIUq?9NrBUKpZCgXVa>(a2U&n`Uc=t^QY&?LbZfGB6PpBY^ix=+izPunHU;-`yD;C75fr9b6vF+&Wg7zZ)(P&&1g4h29e!*K9;-#t^?8YamkGE z86T`UfIMXfV>oHH)PEAbwj@A4k}{F{kI@ugb2PVryn#0czqutY-o0V#BzAO}k%AQ2 za#$}f>QjQ+_luW=?RH4T<)lp&)(Q04Ju3G;kHqm6KPJP$^Okn#-)@}y!gA=YX|ZUm znVCntHfKfdAsF4nUI(#Ib>s}^Zw%EgxnM=`ZK4Ka!9>Cr4({o)Cg{10*mIVc>zJ2tFNp+{kgTKt?)s=|9rEi z>%;PzNWgo3{~?x3;}A2${!gqv)9ftK%z!xjp%HMf)r5-9jezBI5My z+5;o@_=(8gxSQz7tr0R|y#VfrmL@JCSj&3CUV3=3t9M;kX?xXGD zToG8@L%@Q-_@e`NlEd`A za$PhgZA@^Y5jW%!DG|{Uac4WT7!J`JXq@qz;U&P}%jQY%j~P|=v^=9Mc6hX&D`3%m zy$3u0cR)SyEWK&)XtTu!Q*ZUm)+XS_0$5?#aafrd<=J846e4P?Pm61^(tvx?z0Z0t zMvmBqM`U>ukn5m|YLCqvcynK18_(w_fw9$zU0En>=GdX>Ru$%_2d#a+*f0LlY^#;V zMi?XRjvN(^m7VlLo;%t ztiJo0SQR+l;Qs)$%Ctq_dT*yT87Q&mIrk2L-M#}a?Y0D8vK;oqg!@3-v>eT)z>?L+ zB&OH&oInH1_b1S(h{43WjryKtprw{!ru_>@dM z-xZUja*&^RB6t6L8Y6A1=xYh%`P#yo&mA;fA4;|DZdJ zad@XIXqw)JyZmbN(JI)YVUYlok0sM=`vNAMI~tmOw#rBqqZ;wFwAknnl& z`A!P)F~>Q`RYwPAK&6W-O}dWZ(|K9(_ABFB-+?Pf<>M;Sk0QQJo9lIZuM)5&aV#G{ zrDzqqB}lQe_hjpJPq1VU`zMD~)g;#|;_6|B6Y#ZaVO$l9LiY#r+7!(E^eUb zLW@g_R%!ZWJu5>3X2dRp!{PR|(6%634I zO;@SGt-<|Q;3p*$eQXFmrsv1tD*3ffUqy*4iJWvs!mI3e?fx3@T3#qc$_Pef8)!7E z4h6EHEkvKdyW)Wth1u;*@D)}1*1)}J14F&}9+{U05&luc;(diOT zJ>L53Su(KnBY@5m>s>y0V99~+JqQNot+Y&n1H&*1)T-g(qVLgDhO7U-bv_Yn=x66rrecF8y(y*9kC92=}DpFLL9FFfs3RoZEUMl*sMM%J%!>H5#ApiZ|lP|;In$e}~o!ArLOW5ySiNQ}r+({=73NqJ|`>u_!nj3>gVsDmjb7Wc39t zZ%3VphqP`t)YUb;h?fV$obvBR_HipHPrm|JUefov!C#QyUNcJyJM1ANp}$uQ1=a>K z*n0U+@zGw5$vs%W;(XGYKX!g(Cx?G;;bw9vF$YMzm{VgLNX z5`!45CY6Vso=Dc`%x&Rjzjf;7Ex)CQ;YfV5%zZ%5>S%$K`~fA!S8PBTvJT(IKEjvl9UEg-yC0+n^ej(gmq+5E>)%E6 zzDPA=zj!hg-Tp$wTDxBdJ}Y9cVKzfxr>45!BGGaT{Z;vte_<}_XCqsq&jbB4=i)Q6Tef(i@tNa@o2SRv z=MM~EC5j6{lTN0+A|Dv8{Ga-#1^>^~06DPz|G&?cCEHrVzC5i`0mNvUa=jO?DW*kv ze{=)|JMiZ5ZZ_KDbth=}HKR5rkFgvg^T(MX4j|TD{O(!QKVXLRkM{K>b9TN`vHjWu z9=zk3t@SEr0q9;jqEw8LUt2zAxU@a!9UZA;a?vbjt3y8!>d?1~((c|6gG&OfE3DCM zZOG@?qJnZu+^TI!du+vjYrX?}84ka}N6&R{bQ1FQ`~UxJ(@~anSaMRkac=WQDsHwP zRJd~A101xe6t%dlBFlpQoQSs|xx!y<`VK-Hz0Ah`+rE*A+vcjhcGKSY6!iZuy2V?mBuF32t-O+B>xS~d zvp;F8b|WfR!cbd?76BfK{&o=-+O8 zo-y?Bl{#3vvFX=Xhd#|($2xAv|AH`Km+1~Di1=y6<46nLX#rx>EA|3|p4}ZCVHNw} z#A6@8$NYeT=?$tqGYLly@j_=+Sf%js za@M>y*qG$mE{dvgP0Vf zcrbS^fsc|!U1e}s2%95@QBcF39gajV zhFyJ2#M8aPn{}1~Vw89Ny**OG4li|qG#a~*f;A-%P9hwao7)ghWvW4*vcQaiAAHr1gYiPVZrlb8utV6J z=7O})0XYi6xM-UaM*$_Ffrrx4XaTn6w0{-Y6GILTWNNkaJ0<7y6QvWBUj9@$Ep`>UePd2*A9$J^W=<1(06;O-eJ0!}Fn^vBkKe*)Ab}#Zlvv_l* zc*ft+O}xv2b#Y=BRtF4Jqj9syO>5R4m4DcX=CYL7+49hb0E!%4mS+0<4 zi*3NkB5pp

NI20)umCY?$p}HM?-{3M|5q*5wXHU+ge!B?{|v9`nXzkFzL`_UEDe z@77sC)F(XCga!JEuc@FtV(VDRE7YZPsdV_xIiP~p8AeV`!Pcv9Pidb|mhJ6sbZSW=WMXey&0gE?X@+uo#o7v>gCQo9LscHrng@SF-m(=hn=8w@@!mYAcp2C8vu&-#xI5S;=)}YQ`;(MP zhBp`2f)Jv};bcwt{8I{w#)ENzu_bv{^#(~1S)ub`)qjyQJ_aijr+il$WC@_72GH3B{q^yLa zlK;f)Hg}rqMRm4TVQ&Mg)5z$MQ{HpUJIRT=w z<&IdGQ8(V@23i^?Rr@H5ZeTNJnsOaomkY^@Xv~VK2V#S2sEFx}MR)?J{dy5AConx> z8@Y6{#*WtBQv&kn17!lA*Q^O0Tgm|XfX7fk;xsj(D`AHx5M~dvL}DckxCNjzJ*K_h zqR%BjA3dQII9>j`Ff?1d`=cX;gq9FTdlE{#@H#b4i+TUb##qD{{|K{Ioo2MlZ{s~f2J^EWVhqdRu z6V+V)1%lC<3GF8i3RVSgjICB_{Wp<`>oh9R@^5L)9|_99e8cpC-O3gjv_sVD8f}*0 z>#zd@4JupumOi18OOhR1i|0e+$ZpD8Jd+pGH=*}`JVG6oN((Rl_}}wrw;l&Bl>XRC z*3PD5!xHrIXVT+&MaK_J|0&|6&EU8@=__#L4x+p}83;idt00K-*{izyKItCVFOkz% z4AEDlLfO61p)p(?Q+YTc*1eYOoFIjBhISh1#B$s{+0VR6l*h~A? z=a+g5axC3ly2P|Zrz;1wezihoKbdY$GQp1nk85!hIOC)m!TA<-c68_Dr zkiL6J7&4e$_n(FZ*yLrT{afugla+jhT6L*5Jw5h>-gCTx%U^!}@j3anZu!jFtx=WW zGv&^;naZHEnRY+me`^0+2-Z$ri>LE9YNgkP*qHRz*AX1E(69k&3O-#Id{kvkEl8Z{ z)ACmR{}#c}!7SO9pfg;`Tiv1N5j70^-A5^;yQ`-1k%$Ce_&%x3(saHc`` zr-fRh(XKr@f3wtQ;d`vhzp_lAeR%XWgv!ZPo!yQ~o;zJ|NXUAcSNijzc!kcC>)MY$ zdCoU<5XUVIyolb6Va34akC!-aDR6rkC+LqAwxr-FiNZ?7CPDPc+UWz+j{NnFfKNtp zm=K$u-!x_4B;l({#HWA&PyGtN1U`!wbU^;=6VW4y#cJ~wJwb-+hr^l1!wG*FbGSxy z$Eq{?xLXUm!75JdCS%L+okx(_6OYqWu z`7DtOn$pvI+tr?xazDoICKvEX-ImNvQmVP^h~mNFy;oNi;N-e8b;3NxNmCipy+(a( zmE1l#v|>?d+2jV#_N8CQs#&19!Qqi#0`Yi3r%mte_+mYFeoo9^;MMt0_SN+?ZF(;t4=YlUiI6Sfq`J>;bJM$W}1Qe;r^bN{2492&DV*C#Gx18=e? z5*y>eV-~-r+XoQDHtC6EsEq$?BG>7TI$63aE3}17-D3_)N)XKj2wx^WTqInf#KAm+ zj_lrS{CJwH{#le2C`#GsIB6@4fcq1Ml$rlGf$Dp2jKeb-`mDTFm5G@_QR?Wku8)8I z6RT6CEa&UD^qo+?p@fMn9^M%waC4-%T7V2AJL_Ly9jMVaO-IL;|1bl=vB%>;w!?Ev zGv|_!TE4d7x8u(7*8U5~I3)D91Iuj*qH4mvqr=6)BD@a?;`!E~uG(V(U$&LAR2b__ zh@XMfO^-LQg7m+F(qf^S&CeuuANNg;+|J-%e>CrYzLC=we0*~PMWSp(8By54ohW-@ zFlhgLbH64rfig!#gerC$TFLsz=SN+R>MM{Tf{QR7SoHP^j+q!hmYQPoF=Jw)i$xDy zcEBSg!JERJY_{p{4HJLKl4rFy7z?O*tU?u}ic8^>FAPu5lZijqq#pA3W<}{ClNr zG7*mp^#71|?VyBIKD!)VSzDha#^ zji}+s+v2uj-~_;MZ{MA}OY7y_a-*yv-PAuHy&9J;{A1_ zdG2%1Is5Dr`)zU}TXpI#W6Jda(Od`U2H&(X^;9K?tTc&ev17&Q4{Ug{guu`qA~kl6rZ^5+hXMnkh}QV;2C2nx&ov0LiG3J{X)# zBu+`qi5WL611nEgK@mVP)DJn~w8k)F0OP$B7B ziWK!xnw@KKWmC+N(MPNf8h%)O&X6c`2&9GrFD@RJ|8#lE-u zrM5mn-rh(^f-Zad=U7ucJw58@%t>(dF>Wt4uIM|)@#E@Ba#bkZrul}TmfEcR{JVwY z?_6C^KUh1i^u;Qvszyq<=l+1fbarc(@NAlnC;oe&MI~W8EIbOm^TQR4HQ~ck&Jj2q zluJifZ$D0xqtKV-esV`F2PWS-(bHS)d}qjL`ZEMAvO)N4R(YQ<6)sd3VLa^j+)sVVOQBpw~Ukdlhw zm+_*?_9=QfQmTqibM6LqejL>f&k|(@til3X==d8+t^x9(lUpx3$y(uSXn~*uY$?$w zZ%}{mT9`c4SRghh{Gq%gwH_z}LQJqs5V0$|G}b0mhR}!LD__^`s=7ovPC0{mM*TJb zr3@<4(%4N+P1C+NyRI$$tdoi5xVPeUuR;LodSYAS$0 z+wTpoe5Efenl)v%@aCtxrBeu4i?68VMA7$BHbnNknNC1W4G+w13HM|VE@~ti0Oft} z>FUZ04zTfL#xl!;6?ICRj3?mjzaft7R2}9=tJ9oQBL<2<#`n`Fo1+;|VjR8u&8IJDL1KZv%v%eH^L)3DZ z@;ef-qu(HHEfX7~y*CE-puMnOuk%Z`g>v_|KRD7mDJK@hG9V)*TKC5YNJZ|+Wn=t42R1b1JfL;`KpbH##1$Wpg_f)kdiEZ=w>Q|eh4r|*Cmma4|ttOA-ytIB`$Uo}8H0223 zW%0U+zBoiS6c&a~>Uf6l%t9kCyt?i7b`0m^dc@iH-K9ad+E7Gw-73V9`{UnjRm*vG z)^&(>0#x?LS))Mmg6dmrY`H<_y*M`Ah{>(L+J)`dY|AKFDgtU`b*Xpw>Z*yz#YkiY z_#zl0?ezYg+du{9^7^!e0o>-8^vh3iam3&|e(G_{c*Kz4-aZhYOByd!HKjg9{Yol^{$M>T5+xUOFlg(82(G>c@`r1^ z4C%{20M7(?QZ;7c-TE!o>nr$8DxixTcd92HhJ{bPANEaq`M4G6#z~+g4KIB} znN&-Ry28j(yicZ`TwM`=0`Lzv3rih<03z}Hn%yuGWylXg%B-e2Y#MfWd=Sa-7tWhw z1iArx-g};4Hzw1Z7h=$AzP?(I8k~IJx92EPJ!b9tZxIoAj~+d8+sKZOIMZ4kO4Z!2 z4?luEJ4xE)dq{#8R0sYlO4p9x>+D5o%e6rI^-*q+w=K*Exr0&7rqh@(G&J-v>H2{B zCJLNFq&s5uV9GGk9*8m`!fm|_-^zBLXv(;|^P`mYP|_|g4XNTZuYezPTpP-+uTMe= zF6v%wszOl0F3eiBUz?jnY?{wacx>j}enyZ2<}8@K(XQtq!l!NI6aH0RwmnP+Dr@Qdz3 zP%|8$EaHK%1YR6;QverU%p_{#)fPn9-8Ra6#>Qsa8%>A$_N$;!M4|507nE?SmhaW^ zQxVqKcLzX1G?J;bF}lui?GUAod3ox4!wVrIBKjMfA_RB;09j4FtBd2R>S~~`gZ

z(?_g_8}qS zAIWWM{lP_uL<#yxdZj_<9I!z^)biNKzU=nB#6rp1@d2oE4%G4b)J;=6FV7L+Qz9KG zwM5psXKE%jaY*{>jxpGf$P zkId*YD!KxhPDF6&D}mHiln4xBZFmhxSn)Qv?se_BnCb>B)Tn;=(8j-((xKXNp`7M( zVSWw2LHb?}!Y>C2(*Hl(e}8$^WWV(0dL#Wh#P=-7_m8P4l8i~ENU!Z9h6L0)$z7KFa^_*@=8Z=`ic3WgyN^fX|n z&8G)-!`?PZkyi`&zCGa0w133FUSD7T1CIMv>xu)r^QO|t_B49yVrS@qM-#Jda|-7W z-&5on5cB(JS=tn*s_PvK^eM^wl9C=Z!Up2Cc#^|`oDu%?9)sw)6fuj&Pn6JKj(qx% zsR)A1!qPHyf(!?zd=o15EfKY)4}>@@uWTpXM4c|VAUi->c#Jx_RlmHFt| zSgweKu`wOc5kvitDCI8TRvdwZ=m8LBx>d&-2l#g^(Y>J|x!tBy9hCAaWOX31nlyZiaq8EW_CC@a~Om6bCu5u5rAdX&DZ2)L=7 zo+nl!$mwCcd~+a!CUznioyckGFe=Mi4vZD`g(&GX1WM8j3inC2;~UVu?9_d)9D5#p zj#5t+blJ|x$_fAyYcsR6`T5U%vfVsA1%b{O4RD4O5V_o#`g(zh5^c>RQp%0BBQ;-N zB0>b_IaCy$cm*9@?c&HIsO~iAG#~VOWz5c8yKPfMOfFZ5-7xMyxY(-iY*0C6Kcl6_ zqN2rvFPBUnKN!%z+GTwDr@}n~0GX%|0}nksa=gYb=1JRo)3V;g(%6dGOkUF7iZfOO+F!^kLOs&IBBUj4DNHXsswiUnFU9`&qUQ+*CKXyuCTH z$-r~$Z8#+XC9EW1Z5mo!Y$*d$3=u1;WmC3`d zUsDE-ZU`9!{X_#A#F^RIpE0nB%fR&pw&Ey*bmF7Pf|)kY%xLuWqr}UGgY`!Me){9m zfc@GkUd!Pwz@cqxhy}#C-@sji^x^KIR6+1vF;4~duh2xjHM;TU>Nal$D5y-0dAj=w z1aV#2qYYqLDD7!y=Y`mrj-AuDC`D!aLGH=Ff`BL|u>YrRTdft~Fakd_ zu0E7Vw=D1cPvEG~?!CFdB@PikL$=&_Qu&-MWQvw{MvR#G%5^UaTWG{=@4(!(W=UB( zK%a4A?KagM${Mhs9ijcJpdV?;`P+iyZP1p~U(qiK6kS2pE+5ss0d?X=5wZ-Q%#$c! zwPYP!>_sY8Ltm^^KlmxpkPv$>{PKB>aNq5#cek2J-h!D^(^v8TQXhkf2Kwm2MW|pm zil9)1Zj*5R{81ly#a7Uw@U$`fS$k$@{g>B(k>N0v7&$gFAm4#2fM~|>@ZQMis2GrC z1u$L9eI>TLYS>Viq{?ogef!x#l+{$(_YB9ym#qlb79=I7>CgZS_UqRRBadFcwl&;{ z>{Xxw{Ba2-r29=GG|(rmSJ!kjM;0K8{RF70iVBa(uyN54#s*)Q+%*z;u~oVT++xp{^_!SCL&cp${0C) z;+9x8d&caMf-(z7;CL%Njx8R9+=gGDK;<{DM>n`Yrt;K<o_2g+A|DK_xio;>%CM&CKrfRDE3~tn&F26c zc*Z(_uIfNubq~sPI848}TtjDT)=o%er9&bi;K)W|x{{Cw;Xd=KRDy zC0#O0!ky{kKuR%cP{8qA6!zL0^rcG~@ajsPaUmd)sn659YDN*zhSX1(XG8;G1kYgQ zJ{gsHv%8)8jzrq>MqB{4sFfRFpk!xb=w%m^EK3$pBC=A&-y0f`!E64H9a-}V3oUzg z0){a@zy3~ma!O}3qz)YKO1!SfW;ewKMbC(ht3BTB0ueY6YE^G^ zW52m5z3CGLl3RwPnBLyrW0RAduDe<)r8ynLXQ7ZP7St+BhY-dF{q0FLZD_l!R@l*%e{=$fhL=h+untEcIGp+J-eH zgF8*ktkxRobCk7x#Tp+f7KBHD7X)xC>x?qj!+Z8u$CHSBdG9Y16BAb2B-&0RUw0Ea z#yvQEDkt7JFcQo!>ufbGRv`MrT#W^AvD@yc z5-|q@ck7_3IxjfZnP_1VIheW+#$7ffk_38DK zM%eegSGl87G*KCqm5x)`Ah_zS#%7pv_8;T zZQO6i)^eFPrj3yTeg?o$ZusRYFG#g--$MHfvVba|nG=@YLrl>4ApYz zr2~JbNM$Q{lm;cu-h2>l3v&Or-rmB(!gcVw-4#uQ$8!-T^C2D-5h}nxc8gxK0~31!PO))U?x&|AE~aoRppqHpFuff=TO+LXRd*hHfqxQ)JS(FHO}^g?Iw8#L>;x zza4m}gj{T*G}43$@q8JisF;7i?OpBw2~r+aCE#38nMLNvGnDc? zT@;c?^FC2;KFVgZ2gv64_;_buEYsbfj(L5I zHF+V3n*QNEc7RDu1`=M0iJ`Y#uCS>$d2pj#L#sbJ%9a4Y_Y$H03o(TdI6-)nizr*O zZ;;$gF(t*E)OMu=>|r_()8irKj+T8V5qQdx`T4me)I$DL z4-^H2%RBe}h?MAG+8#jJzbD^w=~J#r30fwF@Ti-w<2E_1v3IQ! zeD(2oC}=)4t?r0)~$i<0jF|T<1fboGF%Xgp_Lwb3bey z*w1Dnz>p~vZecuIGf;cFRZ`f!#?)xH(+S^woXRoHvu3Q}H4Cu|w8+=GiB~H-XlqFd zg{LD2s&g%|$nl!cS}{0TjVpXFzIrUR-50$1s-EjHB17L)=+h$rrvIqn=e9DOg9Cl% z%&8~4?0gCwR1{lqHguF;D_~J0=WR^E`x83&NeGmEL9v2odwmxTBp#+|?tvt_UMO<+ zFKe~ebPC9G=stMoA%LL0j~A54YfA;{8BZRCAN~@<|DdegxjLB4@3#LK5EC1txriXq zOMj5tHNcKpK|D?na_2x*MyAURu|WPnA>{TIBp&g7eeVEakZ78=0A#J70$9FS(y-fZ zKsM9Kn-1Sw1BBM9KNi&=l$FJ*>gXRVb`GTQ$Aq#qCs5yJgpbD*Q4au!&1gDl zH?a0h@>mO~X5Z6+0vB9urd?fKjWKNfBNXaP!GYp7YOJQCgqx<< zw{~#v(*wZ#JpeMt0Ln?G=j8(uX`!r1T^|wj@&73YD^60o7SpE5z29J5izXxa2G$*owyAV*$ySajhh_U0 zuA$Bz(epHt;`9XbqjNyryiFXdb|1>Y04G|xl)DE?Hy{J-N(BcrhZNCxI_?2HUAhaB z($sp7Gw9H`&aF?`s_ z7k-|q38uk!JU)tAozp>}Y&VPu%eZefj|upT0gyyMz2dKueS^$H4B63@WRdreC!0e# zuTKmhI_`g@8=W!|bG@s_#@H4NvEvRWaYND0Hm;K0PNsz+my>LznMKSbt?Z-puD)kC zQ(N$^IJ#jDXB$7itS~yH?P_)|=hF&bmm4A_<<3wVR z;$P}~M~B^9hASbLo8C8{;XY1^>9lLHqT9=Ly4DzfvRu>p+p%-L{qOtVVY}oE>YyBp zA6{(OyEe%0C*Y?PD(DxB%*f8p)|)%^1MG1a87C?V$>E_YCV&~hFf5SIiLwxmT7W9- zxHgX1_wY@3KS`CNcF)!i3z{qhl^T%4qu3u{D~<{$?)4QKR^RFvpF1kwattkrf7=OM z=O}0!75pt{diFwl6uC-=(+Nloo!MCC2KN8Z{%!<3x-tAYrZCtFe41e(3d&09q}KL z$1ZGv=ArvSwLD|Pj0tT(91QN7M4hsrnDAXBaGxPJ!r;t`Wsg-YUfNJ% z76ElS6UzJvLZTF=ai4B-%Al|qcM7Kg2|0=&x=A9DxUeN?WLZU6p8bwKgjpq^&U6y= z9H3B6lwxv!lKG4Kau%QoN9}{!(VYmcck6)r_i(ZL0MJM?a@P>Fu`=Y>zs`Q-`NLkC zOaPCJVT%t{9g|5DN<{fv;BzE_;qV)HC4EZ+SNccZD$qyz`2utk1-1zHr3 z#059Psz!)JWIStQPkud_5yLXar_5v%;nJg!eltZqH+cPL_v0*XM@GA{Y_YG0Z?Ka< zH7s9-HQ9fdfbYq$ytte#=y^0?XZ|tBu|-4Eodr1Z=mRR8(Vv@kdeu0%p;TYQ zr)?b#pc?$9zquH->sqz=zTFKKpdhxYX&;$tOS@k>E-csnpu+-j2%0kWr3R;k$h?G+ zq^B8WX3x?<|8;YvvJmJ{Clz6yA+Q)^RduH)5{1xQ2~pt#RA4!R1Sv5VKGkxl?j=o* zxdGs?PNq$St_lipWv?ru{`LmI(OR_g9F2!m)tz{6g1fOWCYTwV-5; z0JK2WnDJYxQ2p<7s1)H5<1nd%FEd&1XUUFYr%(7J6RuxR_P^hxHwofKFAeNnUJnX1 z>~129L`LS#<{0q5c0B1>NU1lWm1Z(GoG3Ij3VKQrN9po&#?~rm=QyzAo}|??1G?fj z6+dvLvdFebKP>K(QgPBk79aaz{yO!BD|;(BPsaL0g>SOD1VBRQ?{)7XHbcBPD%0O# zj*KU^T;7DxuOd#kWn(&jQiO)^*PDv=B_jmT$38vEJCw}B<9Sb+mn)zqAJu`Z^ARC% zud3UY_=dDdP^UEIs`r$jBZwNdXmdqQUy_aV?yu8j-Muu`-e3J znUDjwN04+|Q?dfl-3!(cn!e`nq5Bf#PC}s%OgB)))6u@o1ex# zGBaEMjTpNhxl>MH&xBNg_BqeLy)aRp%PwwtxZEGeEoRu`2Z}f=Ioh^oZgVm%4V1`o zG;j>f%{<(&Vzh<3S$w`eCqEj7_sr^SKhI^n4_;K^tz#t&8a}JdD>|CEi$xU^m2Plo z>M%8$byn7+Xz^usJrh}CfuOf^S$sk^FWPpQ(OMNPFt`=-ac!&u?|hVFU|`xh9I_W= z-aJ_LwRQL0ru5-JutH!?em9M)f>St!hi1$c7zFK4P9wPIOV)So&&tS8v?rT*jFqi9 zaF!zUN2bT`wt76z`+Qdi$b~iwqBk4E`m@m|ibbO?WrYFC1Gs-B5+%0}#moVf0{CWml8 zjdug(-x9JcPu|%i50)ts{!TA6G_P6wrDv&_b!?!s9EwI7iR+ND zXygwjBqIZ|(>_Eq+5he}*6I|gAVcpq**eV}BhpU|KVwaFB2G46$}dmP&aA~LD=6!ZOFSUz6i|%adjTC`@mRWQW=>`g-PJS)XVQ+wmLFon#tR! zl03oWUM^hBg|4Mwz1<_F&`}X0{#%M>;gUotx>u$I*W0Y}-TJAgZ|mUaWXM=jc-4R~ zt{;OQ27wJU1M5x@g2|_Af}}Tr?9WiF1h0X;g5?Ci*En6nE+-UquW!94darh*ZTk7bk#)Y;%4eh!5+pW3`R^+Bez9$N{ z0}58Ng!$Y#DsRXlaXE-7^_XYUN&FycvR$>@j)|I_@s6_}cMZUEf{)FQgIwRL7F<75 zt(!iGYFetQ%fk~-P@^*8n$cYc(+Gx-$uytxa7lO=lBxc(#5nyeV)yz(2odqsftu*X zH=;*;(HdDj)Bt=l*AP9s6QqUHg?XOb3`!bCY>R~(x;g2}5Fww!3Nx-67UqlczD#UO z&N};EO2*Kx+;|5=-@#q|ky(~?G{##%CFtqrV_&UHY?BG%e0-$`cUA7+Rl0wm`kv%j z_sb^=032X-TEj0yYN9?Ej|^v?Rvd#Cj*3wyGgG?1asveCM?w+BEy{}<$G1Rd(bGP*6&x2Qj#{B98Jw+k0}id+`o>Pi7NJI8SygNqcPhu+dHm4;5B7ksfqPq zGH15Q{azb>VaF6@#|g9+UW!Hrd$~9-5Cgey_37XTvIB%C-{!9#6GRCnH2ucPkrHSM z6I|{XFe=wqCU%ZLdm$S`9eENn_`@!l9yxkNYpJ_myiak2;Q?)l|lmblq0Dc4B%?K1@eSAp0Bc;}8A*L2- zD^|-A*BvRxsZZ4ue(pppjjT_EH`%#u1yZ*f7!-as-2nHcWM0g8xrGhjDBfwNN+Q4&0aqk$ad!F zGXQRNjyHZVk({A29~EK8Zbm3fCT?fQvaJ6d+&Kv|)g-?Fo!G6h!9pT`Cl%eptZWT^ z1ssU|j7(AwrXB+?7}kkNs=jIbq(i_mqj_%rkAV93F$Ixd zglK8L$IZDh3$!j2;5fKJ*Lj`3PM_fyS;ngWF|!a^wyu}$B3Cc?({)g{v<8* zjAvh|iM3~Nd`f<(oSCf%wK+U{&baCt;f3Y5?nUAEzK+**VC+c4M(e|ZenaOO*vLw$ zqosGRM=klxo@hAnT!$_iT3!Gz)R$Z|!4gJJb| zAQdb!b8$W6@tRHV@65wCQKWYvc6B#rk=%i%H9S{MMSnc-gs zB!(ksfy50Vxhjr`k)J}~V=_miY-r&b2r+LRrLe45B+VJ8BS%+f4l2c$5vt@?KlL4> zhjK_map$fez|ewE!eca~^rAbTRm^lXpcB#BlI$=e9P~FaAuH23%89ftLD)gF$-Zgp znChJUc2=KE(v?Ft1%q0|TFD+)M?EPwu*QzJ{ruY0qzIBfYMxa^E6VKAfa@LA5!zkn zIeRb;g1JOC8ij;lOAIsJs+u$_`g;H`(e$+B5|9&`ouf;H{S(&1}*5z~;EF-Y)rXJYewfW0;m6rE^tGIlssdx%88f304Bn*>4qD;~5dniCi zGDXB1y+;CKq4PK_E(nzy_-b{DE$dE3_4XZ|+?KD@Qp+LwQ2so;F-~G~;O-;MlSrXR zfzV*DdzIA3XkX=6m+q)!ntyx`#YM^6CL)*PZll4cw++(A@VX)F4Eb!A=oo)J@o7h_+AcFt$u|mz3 z$kHrh&ZJFY5A)~Px3(|p1cul9m;=hCFbxQS&uZUdrb(MoCu=pYG!)PpU@-Wp2zGf> zZC)waljlUBv!P_j6hFi_L zLd85sG@k#&q}xoUT&hZSrAuBkj&=NLXTcnYY5IZ*so!6e~60v;slgjCEtG z$Y91F-sCB*Mo{N_+=&Dit1M1S|2ey4FXapuIHl-mrY1;2(ZZ2!^Y>I-h~5;APdx{Q zUx!JSvoo4sre1FZ;z(AGgD}1GMF#Emk}l<$i;az^+7UoFqo3;dfjaqdd7m_SqI28> zmHSogs+C*ystm+Ew8ii8+Pdbcdm<%}j!X4rjG@Hsix>CMNA7m1nv!WIW{V26{oM50 zHU2T1!h^+wGr=h(^T)-7&)OtGN7IPD`BVRD2EUS+)Ca$(#w=dQR@Ji`pIu+iKj~m2 z>$3fdi`8d|@jy@&Z4!zhFU0r7o`qCx$n_ghTazcpXes`a**`G#ES^0(cC)sEaCu_t9TrG!jNy7ZA-yYtxkxce}@ zAZ3KwY!6!1fPVRc0Wjg-9q70;Blt-uKFHK@=?|;^h!anz+kl0buI^mme2ylyCtXc> z*Plb$j`DmhJ|_!n|FFcXpG!D61y|Wzm<49{lt=FuWwNVDBr^Qe%!)rhRrPJ1>SI>4 z3}t4Rd~3?7S1f>%HKUAzf3u@=*WJ z$-u!nAlc|w)hIlZLk(@w?>mu8(h8lqhI^>`+>OP5_q2)8N5jn8^g(v+ zpX+*=vOYI~+xRlX+0fR*V{0WkQk6JW11#>g+dUo>nU`J1BP`*StfsE+Eb zYiEB4t3cfN`Cc!YcjbaFwKG1J%?`6w2@MZd3q{WE&K;`(YHOO@r6Xd#EQXzvmh)aH ztgt!K!~q_DLdn+B5Bqx!56!1>1z8(njOepbK2H4a^vN`5cJsTmq z39J|F?C-0&3F>%zSNO1@foONQ;>#$c(f=H&$4NkRI3ihrE!*ti4uv=RkM4q&R?!`zZZjsq*VcJbulS-OLq2Je>TK!*BxB?J z<({wXchJce8Jv#|eZi?RyZNHJTriQV3@T`O!M7b|>3N{jR+uX*nruOUrC;uQ zrdOT8>tfE|EW{ygB8>6Ues=d}7nfCStD4MZv!mFx<*|H1kvT`RfHXMX=5@ZSk-LG0 zis@7DU@veAytAtUEvHFJvYso+8kRjO?eKQt3?O@c2oti&(fdCe0&uc;-DVP zPt#QJ&bg2rIHlk!6E`tThxN8{gMcO+aE>5$K0+Kui%1FK1&oRM57LvQrJO%!;+UE9`P9NKh3sb!& z7w=f+%Qu&MG#Hpk*T${t;UcBC?(#LIyA53Nk@L45d{Gg2=W?@mE#-7037*-OZ$}QI zFsc;YQ2!o~W zvp*K%%O9dNG)A4EJ)xj>19?r0PX7yK{d~;OS zix<@Q0hs-@Ak_J>;~s&ES5eaM9l%-|JNrOXR1^o;)OJ25k&C$_<(cu2DO-XQA&vRKZiMr(W?@wvSGw^EmM*gbgduQvE5^Hox7d+F|a+DuAaz#z>oNHb*syn=+hKzU+GqKiGJ?C%`*)%Hht0Op14W~}z5%d0%Oem(JdBy4 zdna+n&`3)r!9M@Kn6V(uavf6b+XBYIJrs@gtyhpJYPYo_QSSvPgAmj3T zxm%L9koR+AeKX4(sSCJPa)MOxp{51JU%p#nD?-ltE!NdH7Y3tv(Vm@tQ%tll^{3Nf zCC@en19{Wsv2$lGdze{1jX*& zfYaD!3DOs4RWKg$9QExiXx=*z%(rA>-T$|ghDuj6R)P>iC!}X-p&T1EBj2;sX3Vyz zxAGiMCGD0TH<_W{0zJy^lCFZy45<8y5{-@WBcrlKVCzU9o&Jje<=i{<&K){b@|c*_ zZSSequ`wzIm#lF|I{>zG*dW znrfTsz|+{teQH}T5<)^hxX7jEWl)P2M29+yVcx&BIW#Z!MkE!6q^kCNk*z=Gn z96@gX)SaHCO7;npILI^MTF-sD;<^&# zf9}?{%$JRj7UUH387Sl8j)VBn{bvL_5cSY&!{&3Sw(1yyi|B8p^fcqs~V zh>NgMH4qWY8jt>{B%|Q*1k~-J*}u(MRCj$;gR{m>`82#S%L+mP7Rfc;eI)FtsxGg| zq5_2$L7is+gKl4T_z;Ux?gNR14=s~v$efh-fe1LLr~#`N4Fa!}A1kcWh4hFqr%vfz z*N=Y`nN#WZaAM?LV~VirG*muua!YAcn!MGzd1+*m?!PUB{-H4XV53j5$`ik`>gXwi z=GdQ7)YfId!*BOQ;Lf*NG*T+{p+R0Q0OC1K0{!Wjm}l<8f@VKdEqNhQJL>E=zIRa~ zn8>ANx{ACt`Xlr>sdkbB)klq<@t7;)YLk9<^!XY)ma5t3NnxYW;q3H{=NCoM!b|g~ zB5Oli&wvqCkmt_d3(X-SZYoUcpVj!4{vO-oZ;fp@rn_!@gfUI-zSGV&A05rJSm zszdXS{1XS?&DQ`Ws1@k~+;T2HO6?LOrGbA_m@eG&yA`9gfFp_h_0gxIx`LNqBcks? zRMzMrZ%s!V$r^Av@hEt(ZZ=z?WaRS&6puo-aYBczRft(iv6powNJ+zPz5lRFM{2in zLK%r$9#u1QXNO6+Z0iCVB+-wzS0v=&c%e|TxpDo4Fx`!X>P@fAm+Pt9yd;5j)h}d* z7oTk|LJ zFA-tr{1bIr8Z>lW>k2__DmeY8UgEwyjYAF+B(8WTNEvB*Hn>HAH~cN=n>uFl%Yd6~ z>GzqS)+1jmfPTN%#s+tEX|DMAiu3=RQ8Q49Qmsp1VTQd=v`oI=rm`6=n zQgNCV&=qqj&2QI^f|%)w$S>46JAN7Pf=^x=PNpkv7XB#SzJtXiH=<*Y)4eM8ASy^b z5&DHDDE`@+N@;>QWT@gbJv%rAWqfJCdvf;dRoxQduJEY?&I|mul*O@8OzS$Pv zg^AT+UNcr$i{Vv&N2L|Bdh9!C*L=qMw1`nr_}!O^=2&R12MjuquM^cZmoF|MldG7u zBBHGpjOANCE*)8&eM5 z5jM7BzCp-*8i&2Vgkn^8(&%a?cy@r;&sM*~jU3!RX;#K>B-IV;H*u+ z{>=4|*KSK}m-2P_e^I0;5coV?UFnh7)6x0@XS00}6!P>O+!KltJ58qUH8B&o-wAJV zjkTKb$kTQ`;RDh(nlZ5*z8RJKaiuFWQVY0aF^&IbL-rpt#TmtlYg{G}TWVpKi zhsf?%=F=0i^AJLB0R2Ht-ez87z}nJs{(>yWoTKa)#!Krwf=EZx&Vj^G?>hUHd~d;3 z+d(awm}-q2ssfJ-x%dVDWNGnpvzo{)1o~V8wGlrV+*veeP)^hSQ-|>&1+#S~w^q<> z35hDWP|I!hHa@3431py;J?vKL`hrsfhVaYT-af$Eqkb&+{wcRDWv1}_(4tLuY4*MPceDaI@3&pOe;LZ7-|&G-BU^>a_^I*wYdo95<}p`l0h%C9!V zS_Gip-o{b+=T8iJjVB8GrgbaQ*DTY}Tel6da>LFgM!DGs|x)(3IGwwR-2@hThL`4uiDe4`efY2TBc7%vqU!fwghK@Px;cG?oo~&h)b)TH1^NOER;vq3k0$N& zHo34EEsG{J)$b+;j3IzF z`Q}D#CHO0`T7q@(#Lm7xxulaoA(=={wB)yHJIGoh;-Gf5Rf&H6$d{APfxR6{Q2@1e zvd*EJDPafDTta!tXoS(j# z+$JiKP0jM$wJ53H8QA3Gyjp4;zkz;p>*H5Ceh3_8W$Dplo(>%l-Q+W8eyNmM((wGu zuV*7hu{tjvd2YS4q2TxY=tLvu^n=>3b5$iLOQj6)a!ks7OT~DExAYp9e3}-*AlNJ; zokzzz*`Uth7U#Hr0w zma!bhr^H8-^utj@8nGYbMf`lxc{!e!3?18pqlq*@s?DfPJGXr8?=JtM5)rqzWaf_D zx!bzd%!BHq8SX3JN$X10@p1osY-{-n?y=a`obh+r@8OR_tF4}g@=VNNciO*IjMJat zl#5Qw%pgMs9Q{Ue%TV}+^jyOA*JCFNKhQg|huhQ#=+s4LOuqN-(ID)vKNI!u|KJp# z{LV|X53-F5AO%w#~Jqd}-gre2$3A<(KUks56b?#)GF=&6@sAJ^wZ=KGR z(~&I1y@RY0VmqBQhmw@dQe5_N!g~d6b@vo(E)UAq&uZ#s2J6Uqi5+I~D4F}iIj6bi z9Va1$3KejonFBI<_};D7GBTx9i+Ofm<3(+VRbXlsx9P4M%WgN|R^v_U&+Y0%ht6L` zH{5=<9mq1NaIJPOlJt6MJG!{Vx>5$#s&vBLbXya{Z??9?i0!vqxe78@Ror7-JI&}7m|hPEAPh@ z-BOxw`QCC*0T_YXA2TrC12hpBB$<@RRt5JAtmyE>74^kCvr%=F%_i*C~y23>>!<{EzuFhj)Jb2N+fBzbK_~p`N(=d5w74##O zRFnE8LjhQsxA_HAX>?BeOm1b>jO&wkI2Lhi`*U#sPKuUsq=&w1;0wD{Fo^gr!6Y-I z;qu9^!L6HLq!8E_EWN(%JUn>@dIP)4z*PgziY36yFjCxtqhyzgu+vFvW!gMM5zNwhvQZ zPJ%+k2*0=gP(C&@J<$I&;i=_!3`ypU2XB0vN%$vl(fnFh58H%s%7f=rNNh~p@`FI& z?>uA9Zti={CM8bwz|a<4-J9QcA;ca<@3Nrpq}fw!ILM_UST64DKyLy3B3Q?FNqExD zyDuO_VIi9AIwVdrcy`7JvEHF`cQlzW%5$Xh`*HzE^NW$``q5xY;OEVvFO*iSNx*Bu zy3*C~St57HS>L26?u2{Tbvxn4?xbcWQ5=J=Y_G58z`4$$C#nXCi($d5_v z+6PhH0e_ign)Il_vJp^0jr$#N+1>`%^DwsJr1gke$flARrHzpt<#dfrt1G84NwmRaaHa~g)2NnA67yi2i77B&r ze4Ln+{c`Qa%Akq_Z#rN&<0*`qz}kFnDfHD9=I>8BT||^=W!ZnD%>yH$YmUC1aa>Cz zva_X26IC`-LoHA>UNXuhE0D`}3-Gdv)Hc%xWDYFrJ3Iwx7Q>)7k4%KZ8ygZi+Wmdg zRAhyyqA2G+hI~ZFUPE19jd&jbD2&ZD=JdUW_^P=QTIitek|}h=2$y% zF#Nyma_)9Q5i~d*tz5DXo`d+a8~^WoJby6W|IT>-ua9OI=?_l~MIp$WcG(IOOu`sI z9fCsQc>_6I*-q(1#yamgFO@FUqS;{LEwE&air8>Zhc0;ta^HP}4}zGVWS5PJqTyu{ z5ltMwjb*?(M;1^KP~9kUD3HaJrNmaEprQ1-l_=wfNJ}QzB9ExE*VN>*wfVEDWitoz zNBvO6^OnO;z&p3I(*gC_SPOjRWF{t_F{HOUnJKe-U_s#h5hPDxpN`Wy5ce0 zQbohw@oznY-%Wgdf=jCIwwH|L)P-p)Rs4J!u=dLFAh(a{+ek~xIYZSqs%6xz$@h5FBB->!(*HC^;C*DrDs8GPI~67Kk%Rd16ZVt1 z@sF@w2LzU*Yv;M_H{kl!3!jM~`_M4aCe4$>q8EM?t zn(EIp=5}gEugiIknp907c0~Mnd;gEBw~ni_`NF+7AfSkZbc;wyiF6~4AR*l)-QA&p zbV*Btba#U^NOyO4cb(b#{NDE*KKy}fgniFFvu3Sp)_r|THt5}q%%3Bu+wC#*@4M=s z+|OMJ_1khyKCbSTOd~WMbdYgv48C}L3iJi1tcPA8Tq>JyED|*T+0BTJQ&HewyU2W#!4@@hNw!*YvXomg#P0@H?CPL zLyhTVw=(^?PyUNRiPsvW$>vVJh6I{AbhWLZfK^Z66rJ1?1?M;_OcIN3l@N_1pd{QmxNLTaBz$U1``m_^KP=|u&bVBY-4}J4S{j=ch5vTmizE#aFUpG?PPv` z1V|+Q+%aIO4Y<(vuXUPy_}eCSvgAxi{7U3?`Tsps&R%Xs5U}HO5OKJ6Ep1%{W*~+B zY0P`h!bD8)g$0kSs);`*=j;G6pj*%MC}m)?^OKe-4<^~>kB>M!7}o(TM!V0Ch_ zIIZHBLoYU0+$s1pm3yIz+9E-4qBf+}%qq%i>Pr_!NY|S{P{SEi%Tayk1P|Gym)zJ$ zanIspBM!YN!%cx-Qa)#zdf~cIyHWH4J*Dznb_4@)=fu zxEot;F($86M0w0>kxR83W|c zGJwbVS~~B%11pQc4hGF6FRNzWgpAL16-foI==#3q?!#WbIEs)4q+zv=zq1cwHPJ+p zVEx?d$9FjA%_awPUN&Bbg4dQsk2@3Uy`?sg0j-j}gc~<06r#Bs$L+Z-wc6u=pPPm!Yr!X?KN0-Mr;cK9^s(yV@ZvMoC(oKh7`6j&!#5`}5O@!{&#f zDavx$b_}>=|8Da<+PeA>r=O+Ci|c=>C+O3r#PtMTPO8wpxJ=5wMrx=q z#kMr;bq%HM=RK$DNjF|CzG`uCB+o-1sQ1@JIaF@pQIz;XdNrY8Lr@zW$I`NPx8#BN z6ylFLaumkf-uDH@=%$mYc0W>SV0iPmWUoYy_~{5^MJSCa8k173x*djB)e7s!&J|iX zl;%1Sl5S*C4T9-KmLBkRoAGJL*_3>rzPBG{v`?YD#|`TFi} z6V@_vZ6Tm(aZ2e2iP)#Uj<|;s94{FOmgSh8hU-fNPcd*t$3Ix*_B=r+$?+9uOTOTy zljRD&if#UQ!|29R?N7lwx876cC;7bNm4JJJ?);ew49`QDL61SfVN4)d=&<>_ z5!*xyj}pXX1?b?yYesZu{F8Sg{3M4o`c6M-tzKspm&T}XO!TdXDG>G#vAFscP1CR! z*F%$=?d~ALJU68Jyk9(}pwR}1oIu!UKaqh77VtklW#YN7zJwHc#m;PoLBiDoN|}fH z*ULVuKfFS4;B@&M7k3sN9AWRJgX>nmt%lrmYzafP=!o1_rNCiqV-r0+%?=R_i`twI z->rWy;nsmio)hb?+F`*2yqJQ`VTX)GJgz>>JK`)Lr(%H{C>_1`G*HSwab#0cWxcK;Gj`GJw#39<4Yn)xtj7m+2xDx4ngJ7g8MDKSY74JjS@;o-`nr` z?t}t@fFLcZ*~cYqK-O_JI|*ZjbDQg2L}vMrEm*wqEi3KF`r$U^0VboD$@#Y8`|j07 z6OL0|9UR;}JuT+E)=TtSzPe^o)StGqz1g{vbzU^iPH_}xo?jFu7>dqh6;~O+2thxR zC5bl`V>^TlG@uKvgpAhZd}mysKoA@hNdqsE1$W8_QTdV_pa1smS3l!6Z_eQ9LmQKx zBNUOxI(uHRERcAFfO9l51?f}yHF6WdPw<+x+*I~y*r1&m99*i*`!75CAvL~1clH97 z`Adh3h``g|=;lW8`Au%vfGxFlWr!nU8)1S?_&`>?dV+2(hxhEkhSIEObOgzR@j={4 zOosF3s?eAQJeR{pr-wyE)E&GipH2CREz$!+Jm*Q|A=TX!Gv6p5M@YNYMJj=*ZeEl zvZ~?tcHVu;#YoR4|7EO@&_URNWw&=0>lxQ46d{!m3&@biM}>dzAEb`eDIjGO$`x#C zy-t}Xx{bQI_sGl3BVJPlqsm+U@bDnO@L}yMlItIvmf`JaMv(6O?l^W-RxWSl1f696 z)ux}fi&vfYZ4-;QBm$IB*@zA8(oQgH z``zyn+R%p|@)G~W;S-2_BMTYbA zgn`u0imxh3t!;qk^ib&^MKu$W4ap-jTebY=4Z19*oSH74HV>U}zxXiU=7hWb@B?%_ zWZV*brUK%Iv0St;j0=OMLW!lqf9n0Wp65XZ6VQ@EbdjhnUF&vc@(OCe^J)?*iNxp5 zS8?~`!J_BEHn+ykdc=c_x#*L}@93VCvN|1K7tr7DT)0_$EjxH=^sl~1EVzf|RVw*S z6WgeWV=@rZrRxn^`M7lu9+&UuYPJnQ2Yz<3)>>e-|F8a6XtW#7O5{PKJbmOFD$^-x zt!e{kiESJ$HT>baX2o_D9Wv7 z>v=wd1dQRwQh31f$5;P=!=gMHV7gf~eX|h@W8}1sTNIAtWomoxcG-#QtatRH%mBN- zUp&6}2g3x>dhD!b`i#;IUU3}v)4Jw2uTQqO9=>A+ju!n%Cz*8A$A&0Hcz1f=3_#_f z*Pp2t09gCKUe22X+`m|r2+<%=$caO{obL9%T8@Iq-iyJvJkduEPO2#={%f!c)9{oM z?RX|N(exXfFtS%Ephbu(nddxfdk5Nk1E&6ldQ=%R?H|_!6OWhcqH0fB6gD?PMa6^u z*9*{DU73m+8#T%pzEZd@D=8T>TYiUw*c8&cp__h6S*w?an%u+nSc{qk$%nr`HdlyN z%pgG4tj>#{aKyx*zdRZ&eo@|Jp@8pxZT1Go<$Ak&*X&neb(5CS4L*XJ4lYxq{*vV& zoVM+Z@%6PKu2#}&aoysIcP;_wa}Q@>(#B6Ln+2vMwN1IGM-6}m z3RN@jo(E`maIaO(o+HO!S8eF=nI9#a)Gsz9=-f*ASB`~|`t|qxE!EGNcemM--w(_=AYSGar)T7(sPHqaH`Cs!qs?6bH zLlQytT`P{ws@dBft~Qhm=1Q z*T+k!FuRL+hGYzzg`Ru+yX}UBe#Z~xg?GbKyA4bZSQwG#cHg#c2o;1;lHcZUczRxY zwi`R{_xl1kH#$1RtWy#9y`BM5%@04p#b_1DUDKlfnh-IkE?CcwE8YeL&Y^;u6$B_^ zTVWK2e_3?z$<1q}>;Y^06L(Of!sOE()kd(fvz;JBKd6RI@(ylyOGG)zm+s5TB&dvhIR`@;I{tjeLU2zz&Ie-Eob!7EYL|x{p3haZIC&d*1;LScvo~%AE}={v z7J*3)59<+&GBQw)*)`jx5_2B*E8&JSIET!no1S|(hruEh^t@)Iss zo+lCvGP}j_+UckFbBrv0DT5)S+q9OAEJ*zCwpQAE3iCcD@x^O9x0uj)?nEQZX(ARs zjLKL%5NMggg0pWY+oeN@)r@+>)Llpe3(8#^Jf~b_L#gFAyT&lDHp{{`txh@pXmyf0 z`0q(sKTtq&e5*nq0nH!heA}uT%Z#eLXs8<`IVBzyK*P*D=4!LSC%?56B}&Rj9YbwNB+)}u*%mcDYKdb_X@snF zm~c&|kfl5eBffqGy*w%mB!pX3X}Q!-e&3Q=mepK;22E!S7c&e!7?495cVq#lR!kJ!kd&AiF^s`{J@ilkYyEdztYnLxkv5y|pu1D3#g z7r!Fu^M4zdz$qtBt@Z21zvnwQ|I$w9Ryiuy(e+{RvPuE#K9ga?m)i4W z!8Eug5t5i=yd-M*2wxP(;&~UndF)c4cofOT3m#EGOugvFIT?7&AbA0&jeE3SZ00K_ zT8|ySRXy{E#3}3N3KE0onPIifY4cT~A_RoG;>$+}BzwMthHmkRHd*9~Yoq1qrlord zixRSzwmr3$vGaGW#YdzMv9ZnjcVsauio)61yIN@!Q%-!be~pfLTP{kBHlCpdU8pDa zgv?4SVOjm_KZRYgHdDY3feP|k|Ar%iFuT8Fc!!CwkXMkIad15##mZvM9(!fN`^WUS zxaRJ)smItU55B|@o`yyCfuDp95d7J`2e-#_PTiEf}r+_%#^K7WbJBt?&A1Zp{_m_!fu`Z zEzo?QZLqlxOT=@7;8So&q1AF5HAGcafRN9iQRe7ihz~qchq&b1S^RmAdi6vS74!`X zQfy|cB$R(kr;9picH3PXl2?8H8yrKCAU7lM|JLZ6gnH zB;O_W=iAH5B3EDfhr|_&XiFj}&W0-T9{>4P*Ml_B$$62@Id>fgSG}RbPmgb7XN?0K z0ZK}OHHD|Tw?SfY-%MEO9AmiCETm`cnifmPuaOgPq?-)7=zqk&0FAx#s9=ASy7Y9x zur1HqdeD0Oq3~ck>Zdd~npCz>vVcRs+?G3;dswR1*7anU<9>pvQbU|0Roim{VjEza8SrL^7Ou~fo>H)6kEpL5bD@2Ecvg_F@-UcWjnMBA=k+$BpW{gycR zAc=8*FFT+Whme{}-7c41_-ZGg$FoD#1YVK~HEG4uHXu}c}kp0smI0f41-n9&h~B1XXy3Y6z{QeZJYf(!rn!7j%32-yFK^GhUp|dT8BB=qpsg+AsiJ!(Byun<=gjKknDN*omAY+7t%0 znatoduOrD{LNj8$zZvoOx`(^-xti5ktsY-K7|t%l?O@fyMN_j!KG#d4g)w&)tGj%< z=^xcCowK+E<%X?dubzE<6aM7AmqA#S@kv#`Ndm>Egz=#U=Y%0vSLS}Nz3F#w;&D3h z`oEF&2nZM&VhiZzFT$|Q)i7y^CK2W$qAOIS3n8k}Kwxmh|-+a7fpSSlnR zzljz4aqWd{Qu6olJ`wTCx@M3li#wDQwf(dB_htgK%olWY#2bT)aQw<~5zjC_&va_u z92Zp;rQ>`W)RnVfQLD=H&Aq?reCH&?hAF(bR|WC+6GH=msa*E zvs3a9aA1JaD@xJ4D3pj6vD|tt;kAZoviLGSQx5SRxK-e5glF)&`X*$Q#=kbQX8Ty0 zgJy`=+$FJ4{~Tt>h~=ztzs#YxS|PSPSAecP*nxFqs!Mo<`}yz&Rco-$uTS_-_Fx&FKSljw8`cOg&pLPE|C+zS*~kVZ4|-0;x6QBEFyyUN~dxwyVh5o zdjU}o=Zt8w-c0Hq`#S{w8AJPrPY#t}KZL$vKVehMcrx}p;|r3@-{B#ZV!&>E28kUc zS`+hOFBb=w2Ax&xI(;{2B3Z$PU;a2k}+ILBErlQ}zoo5*5Pow0V@R!Z(@sg^~B zR7@8y_ULdAcj`x0p z?|@91A<);;R+``WT3YHonwTa0^QsDx}BdRga+L>7V+}Ks*udWMX5bEk978&9-Irx3Esr~SCtp5Bv1XJB$ zPKR*>>^&zENX9_>Cqd%&63>sM|CZAZVI0hwIxY6OGaTmn1OzP>Tf`}tyc_-BY9mF_ zpME4t?_~f3b%*)CP$c!%d!YOGl`L{FiEw4(x5~`LA98h3*wr(5#TBLDBb`d|<*Pj3 z$wT$+cGm5xDG)ezn6z}KT2_Y2vR+eTW3AAJUmn1^Nu3KRPgDdk`ubJToj$p{a~*%} zW8t+&x7v-lfhu4a_QitD_xx!ki^JWz0 zA73~&W#k%>K!)!>i#6}KK}`0r+)B1nsHlvX@v~msu*{pEu<=8~@oU_(+r|28EYEN< zj`P6k@fC+W;WCxBIud>Je+#ZX*I~=(`I0P4;@pl#m-Kblp=6ELWJ1CmRXL$rL!tn zE7?J6bOx)Fy8O|HjhEA&c;9b@uLAH z?GxA!jmY~=lqZ% zGpsI@rO@RZfnC&-EM+3Z08#yD+U>3nczcE4(@>>a2=&1NPBA9N#>)@4hnv8pze9Xh z1Ug{WSsQ8T>EF=FM2@BnQ;4j&vfEZ~g*vS`_rlOxQn~!H(+0JQ9a^eIe)>zJKDS~1 z7aaZD;x8Pr;o}1}{Zm#77_iTsxG`~XR!@nzYmb2`7wCyJ5to+c+h7b4A?xYsF;tgW zg}Zfs-QLlGj)&*m+Q~H+5vpbws=xRKm2#qVga5?Sfql9bM<7w{H7%ohGD}hyy?c_Y z2yY9BBSx2=AM_pBj@_4)`mPQGRcI2&Ti|f68f}CQiwspq{6$P=?)C1({g-EJT zPat@c$ijvrtM)U~m1`IfI|Ph)oJV9xv(|DyTU9z05~TS`-_wrs1x$0R5`#I#l9DBf zrzvak;Ebe2JO0Jll#toCfN(T8myQ8QLf9G_4^KvUZ9%MyPGhk-@jwoMu7Ien@6 z@VJLuDk`^hN6RGyAcm@h2ez-W8mjEBLhkhOlz1`jHMYaN6uFcw< z5h=FjtONl80hDG9WE^)j_7uvSKL*CQ&$foWL6wJ6ZOh5sB>e?ByY1mAIrY@?J-zPk@6XK3 z+a>xnXTb)gi2x(wz67=~U|0$9YHbzpI1bWE9nFPDgc{{PJ{&$O*V!4XRr804cu($< zv$4hg`B)hlIJv72?4#B;HekbJW4lH&C5(-XjApZ>vNL}D@(CeeTd}df_XW=OCI5`v z2Z80?jK$@(+uHhisrhV`Lx*v144oeM)8@{(xw6e~3i9*y+P=Tg*l}_CbWMG9kTV)RYK_~8Hhu%=;1>j9P)u3_@YqdF$q_Gg&7N%xsO=JwFm#C*C;kLCC zZCK@i%@BIe;|I!J`_%khFj2(Cp8;l1=C5CCK5I=C6;Z&f8u;5ejNRi1_>&E%8t<~+ zOl1~Z>tE2B&x>GTo|sl24cu%x*&J*1%`*nMh@Q)eUjX>en%LTK_zIHXMm-spnMvrq1-w({a;MT!C8i?)xofPE1d)^FeoU z)94#KP7fjMcsWtHca(=jtV#t>ej5a?6`_aeG5RDYJ_#&em?%_Jsk5U_b-3#r9OTQo zJp@b~z`_ZSjBJD6^{NnH2Rey{lg%3z7!*`{x!?+Z+IZHGR%VcL9~kT=aXD7a$ABLO z_X9!&FcV-p>~nJO*m3Uc>~#0^7(0gM(g5f88Q!+*d&D3o@Jpskbl@E78~3Z`=G1}X zUtl^F)TtLtIY^=uB>|houiV`2oLR0B51PPMU})ac-)|n2M$?s=lj9FiKKD5UyAhpS zXk0n-v`R(l)0ytj6@slK+9iK7WbbE*$m!|E#>`v-e6FE3<*(4#-D(_w+hOa;datpu zu?}EZ0DIMHx?AeO(l$Nz_(3Jo0eQr%w9A{p!uS}6LOv%HW?SWI(B1KO3HfYwe>L8M znfqEap7WH{W3S>ZHXR+^dfjf(Du|xzi;oX%@$vCdF)_sF9)M#3we(us+=RMpL#+#e znISyCogH(mh65fjRA*0;0#^557Y{9!=BDT7peD&}z#RXRg9EFuu<+Ko3-o;+dR*35 zSwrC{B|2^2t8UjfH%|ePRYhFQ?47XoW~s2?xz?uQyue$m%IJ{y&0((6R_xSd_J0hk8+x_+|#OJIIqd$W^I z{r2q&Fl}B-c0J(OVT9hrweE-l_1YgJBO?x!5nTAi1qH!S#seaWTlj8KeNpeN&6f2p zZBb}w?pm5H5f4f|zLFtF_#KJogLL~YztUuWPRda|rezqYdXnoN?c00*ql~Jxv3bWPHIS8FDpwi@5iR8?*Gc$4vC&L!7 z6FEklI&0m0(y${e)M!Z@#(1YKo7r`^*%3lxR7BghZ2vB`Ed1x!WA%78*d*!uniP(6 zZaWH|iy5Rq+a{RbgxH^E#Lk&)%|n2T=R)R!#f0^(xjRe_mD!hT!+Mx^%9WU?bj!7c z<<`4NTNU^s=i5DPZN(Wy9`LED!$vjwLzV$$?O-pdE$+*klUC0Rx~<1rxA^0y4@W)PN6oBWBGrPZJ&A-UpNLB?C6g zXFwKyNt55Cv_?UgZ* zZhhr(d+!0vCR+osXq4+6=*UEZ0l3881sV1$1emlggOo12uC8vrwmh^mC^-1bT#YsN z^;)F5>wcxYyu6*U77Cw5Qpfl(V>Gwj{POJAP?AL`Xa~6BXP1@zFidg3$Pu0=B_&n2 z8y1E-utIGLzjUJk$5%wcN83Fy#>9fnd^E%N^AA#o54L+u7e$1X%JP^xV4PtOaFB2IMYNW~@+mW5|C@D6x+pcg{StJg&*7r>7-Tc!|7# z+AK{>iI>3awuO2ro{c$0fbjk7Z*l6MyGSSeri&;y= zu>ovA5?DL*eB{c_%~dW`1aKj1{(XU=d?f||aFMdGppT@KKCnv=ojC-yr&_-uT5D9gj)!GOjhLR}qSn3@ z55g`d{Wb3%%!%Pr2vaEHH?6(UEO}3$GZH^+Vz*U^0A9c^#4cZe&4EXM-sVccw^l0_P3 z3H8eQHmSlz^(o8D(G5=&D;CU-{Kzn=wNLzO#$Ca0xTR<-Mo3M{QgS-*5JtEW@g_T? z`gM~18OfGpx4i+1mjrJaDF|x1If?HTagekn0x9&}_%MZacIVh+U`?v)_Kw-o*nU2H zg86V>9KxPt(lRw>tRf_wV9n+3_7L{z$sH117WRdPYHM9T`I8H2IZyoyt7Kxn=-3JF z@4cIlr83P)rdJ2t5Qjchf$bl3khs@{$ev%`x|B!g`)V;+cF}@oWt#1$NW`8>bJdDt z8aDp=^#s!8=q(zB^%&p@95GDaAf6x&w|aMiJVg|44@QW!NdC)L`3rz zb^9Ri2f4cEne!o(#`XI3w~~@~z+@R}ea#PyJ!ft5$7hOmUwaK3twC8suV`q3M2Ve! z0D`D&R2c_wg8=zus?MGUa({bC2@*T)7FdwS&N>{Yv}i-=M6W3+{npmLfVbwj=+4H- z$S5Q#DyOMA!1s794M|T=r=p=T#W`F?S%iWCWE2#Hi!~b|_6R{xatK%mj!wwH9$C=X zm|DyI94mF;!a5aW7ocId$|f`B{?`jYbO?M)SAh#NAa2B8$s|`CnOC0Jrq?*)ttLl-dtmL1DMMD^#nt zX?wv&c*i`GNX+R%NL-Xr!`a(X8h)2AwXw@Dx(hHl zLBK?v4;ojJ98kAS4i4)Nc`X`_MR>24;Qpoqr~Pb>>>EA5s*R6+s!^NMBLBIl7w|?1 zBE`&D2>xLD+w5t}uWIcfe8!!=xEDKv6peV`CGP>B52kP0aRW6?+f$izhy8TN;@@q3 ziaW=q{Vu~SO67*NVm3Pe^LJE}qYcQY*A&)EfaGyqX~Otf!xYQbu}^ooC~RxiogL@A zA#kj_fIe*hf+M#|DI9b7^oy_Oh<*pkYqBho*|(Fj%FRSF@3zJ!1FUQ@4I1IgNuyfp z_HoY*>ZV_QBPv5n$LJ@&?S8bQhRSQ+9`5G#msPGmcdkt)4e;|W($6bKikol`+a(m~u03B5(KGubx@OoGNHd%N2uUm^s@hJ!H6%0vVNu#(?{{RpfOY83&Sph>yAaSkj4doEXla9g{CG(r z8E2(Fdq=(b14WX2As%GLE?^Q|+W#ZVeFl0DKEm zKzY}zB#%y#dVuJ6m@_XX?SQP|-h^bGHEKL2&|{mc%5RRR(cQm9MHfDNC?7!{}{pePb3dkzl|FBq3`Maa)x z-Xr$gfaz;ad7jc;)T?8=Baz{C+m|wT+3&d_n3#l`Tqwo&KB1;FTFfSlKH3w0+F0M2ik=@L|;zbeNeX=vx!sfuT=bK$*dd;6Bmr{W{RTw$}S>y8pB6iIV zL?P}l3@{yj;)XHQTfXce*F2i6535YDyyuM{7r7{P177ges6RXUeDK!f0( zrr-NzO`8V`i?B&{-Bko$JBnoIv~pXh@NE$DIRb*zH48X5X>Fz8y%(ZuU`()|d;E{@mve=_v_Iy^oNc6`zI){{mMflxMg+|`L4;ocf>O5YJ4;YZ?8)2lbV?*MMR zloK+dffUC?sSkU?_NAx81>$m|O39vTF)Q|v5%U-11MD@Ue+3vC5l00e=^So<`2^0& z1_E`5L8dn{H1xYY0Atvs(#OvakSs#kGb4Jwq-SLz2+M{}wH(PrL_}a>VGYmC1^2GE zZrc%C^Hk6F12^jys9}6YC#U<39kJ6A3>5taiW~sYiIb!NKL4Ch*axxO(FZ`YwB6`~ zYG;S4uyspE_f4RV0&qFetMOtFVK+B!;xNRF;i+w03<^nYKrw}qDse+P9j@7vkENpY zII?~qDu{-)746U>cD>A4dmL**A^c;;DyOXMzjz1|*fNRBZQ4sFgTAE*QDPmiM zmt_xEFF1~AJltRyG@BE=UK%ANkFVRVpk7%y6V=?)yLq6}H)B)}`gR>2l$2D`%<)oM zq(pWW@ep|mWsm2>|8jYrCPF}pKtL)&kcP1P@M!LXTj+ytt{k$gjGU(YNe9<{BLkJb zT|5dcxpNH0(H455rrh)ctK&4sY~eY-xF9e2i|aeKL!trcCZFNlSPbLqW1I#gB$~^< zuIqY2A) z-yhOk&Fv8Q6i8V7o}hac+uOzWSc=}PWu9g?sR8F7hMH+4L3ik0=Tq6py24slD)L=M zWt$?GA_3WvRhpaWdq)RJq+AuU*E_j4kG2n5;OuMqcHh88O9K-4O(b8Z+dVSi0QB$O zg{f5R>Om^->DZ8)l#qlwjMG4U3(}lePzJ$g4Es-;WmQ&24-E~G6q>$|KXPdVN&`uy zcE3qw`nbt-l{o=5H8uFwXyI(cb7|hYBSA3zvcP0C9(hCTvPBA#8ZJ<%`3-Ki?Vf`~ zLFfVS5l6SvaqmFbKqW0DsbnDu^$}gCd?NkS%i|KK*CPO#g#xUmqmEW;VsQ~AGJL? zjxy18OUU&ZnR4~|ZF~H|kghEJdO=E0=jIEUC^a~KHy8G0#+X;4Z~hZT{8cL>x?F+kAL39$BHwq~mt~M zbcx+hARt3`V^9c;0BB}lU?48H(>ovya23tPg24e-Qf9OM5pa$>!6+^+Kcvu7?i|J< zyg&dudy1^#>vkh@@YzQwUc(WX6Rw;tScgG?FP%siz^?XE9Gyoza7)}o9(!AM`isyd zIg`UHl~QkL2IpRnYN&lDhH#17fAlK|H^PlN<1>Sv{sh%M5pt47zl%4luQrb4iI zN;^EY(mU>LUFd0`SgY?@5P?+6fnZM{k)(?q$>)qRF{Hs)ytMIK;q0$zhd~&MJ2SAu z=YfIk8skuy)_SsgG-GTtE;p+xu5bH{JfxmFXSOqRC&VmQz3rwJ(`w5TjwZrA6 zo6-?HUzD4m)byoU-qlyo6R}q`-Hyf&T z9HCVo4aVwa>&UkTr7lXA_d$te|%dzaNtdq;^VXW^9Xb%r}b#{DsVcS*SysF#KS=lJ9<5Y`|Qu`n%!)$ z^e!dygn(XrXkR0lzwxJ~ux7rn#-Hnb^XF;!2@9=_WGSijEMIw^Pn7S6SdIzEhJ1&) zRR0jhIPF%ojunH`507Gpc~9i+63nY#i`inIH^9)J!UyF_BO|~aA0NAcY7*BR!BqxbKeIl9Eqh&l@H|KH$7tSRKb=iVamlq4g;_x$krO8ZRge7Z6D?u(3N= z!}vlqiwy@7Ie^HtbnLV>oPh{M;4NE)Cnpbpdantm$x4L0lFS zOsHC><$2F?eSHlQ&2NAZp4FxY)nEV-RD`lGfWj3}Hru!D z-Wv_Q0wB7fOn0#IO&#X|$9-H!eZJ1#6g*92Ow@cB$(;jU=hxIEE-WnkVqj1P9(Qq= z4G0O@KRVt&ce$Qye&_&|w^jW-5RN>z&Q>%5?i1+8-or*;z@Q5W3qvKRw9)M$lgh4h zXcRXnzxLtNlJ?O~PQlTgZzBBoQvy(XCM(THM^Xv{tH#QXxz4|hreXXL-^IaL^Z#G6 zWqeU_w7(DyIScCfu`CO zxdG)1q)-Qd*~6cNO+`w&>?0ZJUJ#0H3hJ1_y!~X0H>hu&2@zt~NZF;jnzdRso;z7z z6S8v`*0`Z0E-0#lzV&9V#zJ;?lyk?yhxG+T!enf2k4y1@-c%M{7GDg5&{tz<-^Ve( z_hWwT$4qmeXYtiz64qts!s?_u5cj7b=QE6P^2JU@Bd6{lQx5LT6^ ze?P{){6gDq2P;^NxJzyKAvOeyhRRqbTQ784>nU&T;C}F@=C`16X3cI zo+|5MT(1PdE~FGTDTRcVzO&s>eyf^Sd)tqbdom8A9l)GH7nCikLQ(-k)O?-tA-pVr z;bZ}34EA0t>GJ7xsW;V~3mwLbG3Btk8Fu*uUsveP3kax@E$~jb%IZ;h ze5Wy6u=g%EEvgfs0AFhrkivqmp?nv%MYr<(ix1uiQ1sJ#x2q#LEDEbLWw1pK{JU>? za`Ao{<}~Ew@If8l77zKzJL0nww3|Hw0pB1&Yx#EM5XR{-P(}I7&@sE;+0smZzEu}; z;9-G$yuIA=LJZnAA@FoKZ6pTiKrK&Gn}cWfZI+=X9+-3NWbQ5^6&Gc*`fjj`eu$WpdZtE1~Z0!?i^jq?3T^jRsA>Ey)s`hh_&{~s>g67 zNxU!8(YyYrcn~kGB8Ltczd&l5yTH~mzeT;>%dBZY0kWe{e0q)ds&gTr zhe#s)a&0OE?0-9rL7>I#^NhTZycjJh0u6Do#6Ew)IEHaVD78SM)EzMc!NWs@DizXM zor7e(fUK~rlk@4@lM9QkaT(FidMwl)T-DMKs9ed4*}jwUXUI*Ku$oHGclq36yawU; zQ+h4h@DsXs6tLWmnpCMwm`$$l5B*NuJ2(y8&e1RKM=z%O6m^jhbP5!+$&z_lFwA$b zc?Vr_WVn15IL;i;Lh-~Nx@e}(kC7nEsxN?+LS7ZY<77XsMP)9(h^qE!`R=YkR6Gzc znW!<-iJBJ|mp9)xYDxnfE_QDVY#cZY1ftc}WbtAyQfdFNE{{q_V9U(Gw#Z2;XS6f> zOx5SlpCM15z;1p4eP}JeMv1wLU&_FK2wofOUX+3NqWdGMuG&S^XqoiDzlj_@ z6Z5xi!IPz(DL0gMx!9|5KLY0>aX_;MM}_U{Hs~ZIgFxDHL?YwfGAd0r|9|F)8g7LM z=r0f=)cY`<=9^KtfDNJwbVHsCsi;XXI%n3qWFFqL_%%KnJP9z<4T@o^;i~!!hju(6 zBIV8OtiewukQMdVmt&~RvYxhnintB>IKCLdDVMExkJ;pfQ(qq-qC^M!z)Ev<$=fg( zRz`w%{ZXRRhqd1sg(RlfJ=>(z5csb@(|!7Vg9qw*zw6P}T!o987|I}+aQxZhvJ>(? zd`qjd-x#c}3DqYb>6wkbHPUEgjc>)xU7{?gb9u`czPSACXOoXm^rhqsYoyPNMe{VFSF#+y5yJrD~W z5c^CPCBMb>G)9W>KD{!VHG`Hv)h}wpJcb3QufiTbm)dYa@RMRlFQq$YMSJ;T`GkV% zVZ6j7XdOeG5|vHEA`^K?J!pYEt#!A8Lqw1I1Qu}XP5|~Tl?q9E%leF_4HMW{eF&qejePem@6m^-TZRHyr-t%MRS!OAp5T?Re0hB?IKgkkP4#P#uxBUqF@#GRJ__o|MUwUaAhFT z-r5m-bf_i;nXAP~i=RX@xUPiVH8rp- z%{7FDhZTc)88SYe;5v243$Xggsx%RJ9kh*zC9#L^2N}vXsu9r?xFW$(EDC-KiEQpy z4w~IZ)V`7@BdO!npWHxFP2k?bB7)mN8)R};{e>)>oYaP#a^!x zodV|_!JU(_=1QQuwmn$U`J%(S)$V+{gQ>J)A%7n<>&NHQkLir`o~pfc)TEO8=r>#o zir`c0CxD}E2$Cl74}aSq7vbN;J(u?AvFD@9i}yDRmaRVo3;nlcU~LEn3eQ7ZdsiJ4 zF@vCob}N1QBWnKRYX18I*2etLw88q_F;44I5CuIM6o!pA&GlcgmEge5_^I*23698- z*8ZBXW-nB#KH7vC->ma#E1fI|&;G~(q;tQpBSgSGWD-R;4!D+$9YGL%0i10R6R2VR zs(ruJakffEus0T(QK@x$T}1>BHYEF$j1`fKCt8{KsgUJHsDO&%qoe8Vig-R_@K`tP z1?z!<<*EgL+W08wq;SQ}7$8hc4QpHDtuD`}h!vASj{f8d1D~-lm${jMwlbD8|5Tk4Geg3L##qQ=C`QlOX~1PKnF2qtvcl!3vE9V*igCKL=Lh4UdUU@@kM>)dK!Ni5 zuLh2AGE>VA-~^%4Ym88^hU15e(hH!tdj1ymA^-VK4uP&nBu}julzku#3~e)|thT|5 zXM~HJx)u5Sn#uE{YP(Vehv_GRs>bDJiHyFddaI1gcOSwjj|X3{CpU+xt%Vlwe~PlnliBkb0! zCH1;&vSr0y`uE_dDNcDB6{3b5&9*%jGLlgo`}Q*%t1?CdZ`9cN0V|9!}>xZuIB6!6j?TpGg|R9fOh$7au|wz@Y+-%VKv2-eh7K z;lHkTjO=;lGehfABhyH~lWzzR7nI-*ZBARzR`B;WuBaP~;8|ZKvbz^)`@L?*lL!=s z?zGm5?{@{?%?fNuZH}6|-V=j`!(6)yZqdk|MQV$zU}XJQ3PYlhB2Mta6U;~S!^5+x zm9wg{;!I30d{=mc#%D4!b)hqT=u?vD6*UC8*77p)%}FwPxKfrhppjfGXs5p>d2)!& z;_6xd*R83IKn3PHlUzqd44FHyg1$>-2xgCGEPCpvOXZ6ev!EFVq*Yb^Sh>*vWnORo zL#qbagTNHt`^po2mClCK{3rhjCf1qk+>gJw54Ys;3slVVwvk-y?Ay9NX`I0 zChQ2!dL|?Dg7OIlS;j-SSJpF6{iJ!jeWU4*QZt`!y25|`sD9?6RM);zKDJ%ZwqYal zIljw3`AcgC6ATwMaUC_4{%fW4T9#?86nb9&8{J^;yu;6^`_ZsT-$cW5u zk>8oTu;aq5u8x3{BmA}=Z0#yl$W=rk3JlZHBkkTwb2lZ;&q4>e zY-Ayvjxw>NoGgT%QA%s_3w;T~bDI`q#tAjX&XHB(n#Mk5p!I+1=~E(a{;|oQXXr;p zX$czOJ`3L2-Or>{B@)!LR&~tM9l8QCH<18hRdh1@Ut0Dj0u}0A6#VO~nevvODes`b z+&WS4-^vRFF!_Egc8A@Ifed<+|0W;-+xG!2V&Gc}4V-pZ0|-J}fL>5qX^n&zip67G znh%Eg&+ndrRlRzuaTk>Cx!Senu!`VFzbgT{gMx#c&u5C-f@?r(!fylbaDtC20}VDa zXk_k!P&|Hx(=C&|{JkP~cXiJ@{O;f|8;TPC35FUk1;F+dI+h~v5(9S-DRC4KG%zdh z2sE1Gja{5d1kqL#+I`w#xqQ$&w@yk9Ey|5(XJGkl)8%3AFI0x{U0XaTECBsE0RdAX zft!%_Esf^<_73yU@l|s}nAgWyrmLNuW#$)SS3I}%(P3#JG^f@NS6h0f!#}ghi=G7w zNsDF0b{?1u?{lR8&ZVrHt%z$TSc??3Q0;mC zs90vm)*t@noPeKY+Y^^Zhn^JOkuR(^A+vUHNCMDF+ci7BUyaH9#|6Oty^Q2IY=Q`C zYD>ohkg%_y-TB`aj%1DPGVD-;9`Q`&sY)nTsBrLvVViNtG@qH9BM>sJw(sd5jO|Q!+o@9O%|8Qq6=F3931~@MzAaz#c^M=duv!pXbqB-fFM%4kZQ^L z2gU~OWUTtuSs1P=!p!Y66^Y0JQjO9eH|I*5d@!;TXl1cgHPjUubTDJUg%OJ2t4nC4 zp_(-pe<8i*_x=(UJI=LijQnrpi4^1th8Y|++P*X`>R9_!pR11)Kh*hmty4bs-!^mE zIjO%7`w+ks|8JwG@FRt(fSzU1GkMi7b-Qv`eu+Fa&{7=3D6(W$(oUJ<}a?a#AD_xk*@;P!&qN$dOc^kElOf9*tt|<-EyJ zaJ!Hfe7SFru)hZvK)t4(7ma$GGOmYfTizujv!+|zB`uMK8Hy#qcnU{Ug_WmaMq$k2 zXH)BecIXlJX(9_N;|A#o9=UUOxO&)BX>(itVE0wOk=nQomPdCaQop32Fcy!Xod?tWT2UIJNm1BRe#tRFEaxcAOLB0dsJWOgN zfSMD|iO+%ve<68$2&%}l%EnD=`cn^e1lT=sE(&)MF{nUK|xFZrXCt zW1m$baLX3zhCoL z5VK0v*3*oP;e;81m21q3-GdBdabtOlT%FM3zjq38CnBcEMwuhg+Rd1$p6mgw-#jt{uG+T^#H`t?DCI@ z;#=pH(%ECX+t?0-g6N&kIK-@IgOLvgyVsBZGyp+)Gc8HYP2zHyv&T%|RG(!(+}Kc; zqC!2x@Xeca?Ql_z*D5gnaCFR2Wr`B-tDjLs5K`EIz;C-m_!&mA+-B!tXN3h1dP{OO zKG~skNErcd*f7&U7v;u$&$oy+WfTT`u0Suo-mkZVuT9Y7^D9cB1+-X7+f-+#kwRJ{!pZA z-{s+!TAcewBJ^X}8OJ5S6lyuR)Er6n#*chyK={86(mD{y?K*;BTTWha+qyD5h%fLg zS?dwjh`7CH>xY^4f!xvPr(AowvWoz%_O)uAKqS~-8>d!BqYldQCAi{t2+rZ*$F~>O zrKJ?|NWZF^6XoQW%&*pLDCa&wc?uTmDeOXRnydIvW&hM2#j9bb_o>lauyT6(Ho{^cIJK(rO_gIm$nR~lAygfr9_ z?3gMus#2Cf28DZus@=Cg>`L6eP^~NoZbu^0Se?QR%?pZ!%P`~dh((A0IC%SQe>Y5V zWYp9+_jP4NQonFN1FLQR+yN$&XOG(vDJ}K&IJs1cVhATw(IM94zPg0e3>vdx0Q`$<;Y#{+ifB)M$L1mx zIa@thWQ)S(qNl7y&r7$oAQ}4&_5H@b za31J1pedjD-i0?mdR!cGOZ}|teS8EXVVAwhS%rz)s6(mIkDOe}o-Z#-a6Y_wBJ}b- zzk!;JK8D=~U0nT?r4aA1?EL(ieiWDyQQH^Ertr@qe0(B!cJ_Cqj?{0RfiU1B|6Dzm5byLY$}w|CI^N$7J`*F$VrHjf4I zRu|;-qvSb>q)JC2GI4mJKc%1g3ychAupGQGvMUj%IcZ4KNhaa{G7d{g87DRqHj*;Q zgjKz}URgy+5Qv|tLh!gAN=mhqQ6`mHHY&{<*QpV$vzZGwPF}EcY=5eM0RJWwuAwsL z>g*F#0ra^V_rtqf#Z+STHy!TK!Z>+?*@oC73fQG;L_FW^`CD@E9BqlzdlV-fihk`3 z4=Z?g4m%1k5$JN6ns)VIGDBK9DShONd&1B2x3~K}+GDR$8+dZy@)VIR82)az03F7f za>LvRf=)3XoLbUi$d==@^GyT)h53$-xA{>AZdtD)59 z)!`y@m_Ve}2rrhY)H0P++kr`zAtwC+?RYND{t2d|0^5wIB&m{E({^W7%bZHjHjQM6 z9qjaIbQVig#|w^pb_>{<-3`Oo=fYE0C1`I)P3jVB$^%Oyg=g=~xW~?z6AQQ(XFoxw zJ+O6~hzr}iAB&YJii^m{nVr*;E%}Z-z9u6Nub3v!`*Btxf;IZXC{M=pb^${8W*$>* zav2A55V@^lbBhOEW9SZxf#u+K`2JL>1muiS#NBfS&r(dm@-Aw4X@HM5kdL!z{HOBq zdD*3HX)vP3z!wtxg2DRZ->wR>RF2rriWWK>C|Hrft=lX%)itNUrg6fV&H7iJK7k6MUfRlF{(F!h|s8*GBBI^&_j4~#re32}ja z-&f`B#OAfYH>e+3Leh1qX}YjZh5n|*p@RNdaK`TqF7i*=iw<4kf*>i1f_ZhA?^?DNU^xY279Sd7c0}ocJ;vfCl?DsnZzF8#-2_z!M z7n$U-Dhs{lhGj}7o~-}M!&L8B{;qE_>m&KzYvmsqp06620=9}cg*SS;m9ePM81OTJ z3qs|ud@N=<`M7-ca*mT^bmntbw0^d-LS5|ScT=nI&c_N08BR#}LA_^5wJB^D*2dz( zD5u#JizfOE(&Xu+aiK4VE>MSr0=I4g^lk$TNZM^swG$us^9Neu6GOMMFfQE1nq`=+ z7%0`W1m6(la7{>cO016D$2b-KuJ`&e+ZfxeDs*#GcRd=t7PT^k-{Y#Qq)mP)nqe*|K1+d;Z^=h5Z6!>g!InrWRa- z6o&N!sl4d4G(xYIWz_Imoi1bu9aCC*==j}f!u>^cGZ{YeX(o!>c1^e&;DeM|tqB8u z+SfH+R{V!r4*W!y$N8m$&quM>r(35pL+)|mZu>e<=N9|6BvPhtSohb9h#mvi)7*-a zk+28!dkyHw@;=X3ohebPJd%esF{f1oYR~mgPqfXvdgCKtBh$EXwm;KawMnZe-9K!O z-JL_j*a4-?6*5ck>sFs2=hzzFJ~CAix+~ud$Dk@B&S8ZCKc?0Ue+O|;{T<5=yu7B8 z;VZ7QH)$tmy;QHP45grj6O`??7^_zVeYj6HuS69qXrgLy0$o!+(3Vv{HT3zwI!XjX zFpkOWfiD$TfJ{N`fNR9`ezIRv7yAA!=kXP70xmI&uz`bNS z+~qO^Z72Fv9Bk8eQOhz~!N&`fO~B@ z{%2QXgUi9%)V*FF)k?dcM28S?*)QJ^ILx;+-}N;&>{&_2=mn$$39b9hSUPl3jB;B<~-mXJzMeVu!1)R{5bffe~O3d=k(_}l3 zO<1aQvWe&q;RdqQ$z_gl2$NL|oL|18Hh2!&qL}O{4KuO{_G?A;Vf4&sFe<(falxHU zX1UUSZ)%#AsTk9VRMWZ7@1S~>iuGhdpl4%b4DZR9_+(-(PYJ?+$ubR!PRxz00>uC( zQ{tE<1Ncer`UpM2Xrm|LyEHgr;dSD3h^pq$;j6dlgT7wDG0a5Y}fLg>kaUo@j?8|X4UHlDGvZYk-gaAYMC*2x{L7vZ}r!RfR{ zTbgKq2aw3OV%!-o`E>m*3S0F6j<>VJ(Skc<6k@}|kee&mHgEZqHa-|a-UNIy%dJ$0GNUna z2$>(K1=<>%PNBfN=A}6YRhmpOn$1>t+l%$2R+QAx#Dr^m?E(-xMn*@ye(tFOEoMw?EYfv3ea)fH^$h#`>E*o5P^s&+b?XW} zpa;_MrXM9Vp)7I?Mv;jlU#rlM-@}&_z2Qo8PYrE$OA~Nj`k2348=ZJ@iSW5%OX1Mv zD&E$ib9hZzEiRPm%X)<*LBIKsRtmsEAfJyEm`>*`F^MPWGpiW1_Rm z4ZAMbOVbdc2Fj_V6Ht2pwrIp*X_<$rej2SHyCr+m3jS3``-!}Z)duQ$h!6yXhB&9w z&EwP~a4-0nG+%1{VO=mFQ!?rGVr&kk2J0!i0zoGJ3%@7S>UA*?#TyV*y$tTSf`oUn zc(qo$DfO;Yhs7SCkPGNqYxv!Y@bpQk{5#*d1O3DKT2~;;G60X=bx(C^wz$fawJ(Lk zre-V6WdX$YuA6Ijjg3{tFM_-<#0AiVh6o!sOEJ`Y~N&tQTGNQoY=y1wV< zXXNJkxg6H|1IDFSVQ~{4;57s7ri6h3g+_6F7m-JbI9(&gvS)3_niVaOnGiayqngfb zrq~PuY5UT88_@$j0v2^fX6Dz~SrrIfhcOZH@i)pNKV#xLV2*D1^W70EsoP;L-5)vt z)gQ{Q_g(d1qkpckBu>g5nVf`B2ZsRJ+2MbCHjORuHb>AsoM_;)2vaeg>k5Kk7~Jse zY%h?Rb%WzpyW;oC@$R_G|4x}e?XvXF6yMlfn&%v&87QS{0YMbPsx~w;%gN2%%x^~V z!`qT6elB>hG(Uf5t}!aiU2iycabnE+_(1n<)&;i8$vdQ~Fb{SLBo-RgD^ zx1Z4(y;*0K2#1LYQJidxi5*$R_&zZ%{o8!Goxgjd3urUmWa6C9JOGSf=o zcwV+-tJK6o*Cpj`vz8LD3aNG|Sps7O*!ddq`x*h>)~0v*<0&2ebvEBm!tpvq_SWS= zQUmubyL!pfN-+|V#7al>cYWMKe;U8EnAR;+8sxiX|ERGLKBVBKgz%DH;7XnBN{#I5 z{Ph!(fF(@QW%w0`=duJ{kId4)UI4Qr+PtqKr=K>9IuFjQRqnYrLmN{{@>Xk>@*wfj z&)+-R0{14=J1&EWuihGm>hA;x#NnSUTC(DheT)G2XC5k$q6tL9UPehN&b!~CAV2)j zXmoxZ!#X{u#nncCG3VZasq_*NM!8%c2~cZzvu^Eb)gUTmsJp%92PzO(+n#8R@I4%d zL+G<3;qDlo&5yUuUCfd|JtiS3iDZy!hXqx==uDM}B#SkBebOO670Q%GUh&%y*9}N-4 z3CNCS%JdMRfCM!QY)5h0+Gn2pujyYVaL+qJ_WW0VPk~I!_Hz`y{5n79McqSxjoy3F zPR>~;Bo^{t`!nTEzgu8uDvZ!otIc@~CB66D+4x=wP5@G23y{eKet6>wEDWAOG-;f> zN8Xv8fx_9asbey?9-1?(2gOAOYZmDgGm|_eGe+Cb=n@B`{AkVH*1Eot;8xfYR>O%s z!Q;%9FgnVjd$}BFM4YuqEi}+7FBw!N$-38KT1Z--iJGI@B{%l<(W{I8t`P?rL2_Wt za_cP~`SU#AvB}>X3pEI|%*9`254v7le@AAauia%PS4tIjvrMrS<%AcsyYI&sy%%q3 zZseH~;Y=sh$rWACnx5{egbCklJAz*waeGPt=)m}v&#m@&#niOC4o5FZp`4jhkdcZB zGg#^Isy8?KJFio?Hc76|qO^*{A$5G$Qcn%y{U#gdlVK!^?7SFc8O4@PKACd>LV5*- ziC^bYQ4blSs;aMYa&8xGA+e~a$gI1R0J+PZrO}NiRxHzK_E*&6(KvVn-#$iPfwC3? zTHTw;EAVJGx2zq_*G4BLCFu|jtyqH2?Of)ZXfX34x|YcGP=smnIAN-Mh_~;cdTEg8 z;WzB;+?*58u7>3wuHBbgE!a(g9M}p1PZ!|6JAx-4zH_UYZ`Gi26mjWMa&KZ{f>QU` z(=DMtecvi(&s`ZJZ?N>sURA*`nPAnoj(5_Q_Wg``mVR&zwIzmWFIwX>Iay~n+O#yZ zb{J}dIInX47HiGU`)^gDSv6E4T~p#6H91#9rXo{il+MU=>c8wU=?Pdh`a*}!mIrVR z-RXXc(WPaiGbqR<$UD80E0D_WSLJa<8HIbJDjGdV@iF=Skx@Ttd~q-F{hZu2dykrj z!Ei;Qqja5aZHhU#CxW-Jc`r};6rH~HKK>l)iBkUK$)cNZ(kwqocH2M-(+x>YrFXL* zSqpgs8`7Z&VCB$riwSwx;91ZQ`p1s_u|pm^5_n{UIKBv;ZotKzdq4W z8zA>-$#&OLg7dhb5-JiXr(FHyv4hL1h6zLcer4FpID4gCiT?NIoudNEPfu)~?VO*v zfyc3V^gm7UB=zK^dm|R-)OpABjhiF3mZj2-m?k`&j?P08-z0|1RV;yvoRSLG?47Ml zG`QL-*pCce$cJ_*g!{E;418=Cp|m zO5SpVAzsZd%}e2W%G~#7V-hLsk$!%D-eF*1`vS)M4#ePGpm6~8u66I*Jj8hoYOI~@ zZE*V!q_DOE3;g6>Tz$#o@m|fU0}~>ifYb~S0Yo2NbBZIkl#UJw0ygbB*U~j|apMKv zz`(%Wl*c{xm-}6%aO1@x?o&iaQb6IX?xU>_DF(W72n$QiX(RT-8&t5BZ2055TYfg2 zh#fYZNl(C*w{2;q8#Rww}VV+5-rcrP(-fF-oz;v-8F)0aekoVRUI5QX;8v{X|AF!Q(@c7H^ z4^$v(xy_+;lrw+Pc)BlxfN&4z-!^YMCTZ*7a5|}Kk!gfiu0PPacKrLhv|CWThI1h3 zNkUD2*7|{z4_%_$g9f7ibgd0VY-}vVq2d|z6JQ1b(IWwK6tJ%#dk9EdUr!JFK z?d(|6fenR`iHQ!xwFMCC?e{;Yxt@Fk@3OtSn+0qj6bcnrPOl+d80hrX+|DO{sMp6G z9-4#yr8IC+2L}W+f5cs?Kqs}<6>b1h9K_86G>W?cyGQ%`^GCH#=MzdODoRF1JMK0J z&!8DE8^Md;bqMz~!^gO`&Vfe@zAeP41zmm0$il(^aP2?G`Q{q^P_0H*Q20oSHaRoJr))sY1yK<~#9P*b99zEwrCp)h=)-Ox=?X)LW80(!EF8+T2Rp&R z-qs4n>GL`z3%#zfzR#D1dDC~d%_TO12!+@2aap+%^Lj--c|Y3utVo;{*rXg#!;8=> z++yU!QtSPaEP3*n2R81QcsuXLir3a`%r{rxPSF=RBUh4TFOAV=<;GGN=mFI11LJ~i z-t3O(p|*o9)f`Fk^n7{Jc`DWCv187{*)Mw6hs`ImKMkCmx}v$8H^RB+PAH`<+3*21_U?vFDKAxe#idP{9?f+hZYy52JB+5z3o?%hz9Rzv zUidrDj6#?vBp<%#d5L)t*pcZNB1&rtT-%Z>4eG0$^rkxryRQBw|P~`K-A76Cs~4% zL=^}shmf2HqnP;$!$qBS?@%OQ&U zr*i=28=!MPMu4EHX%lY&9GjHwcJG=eAswplUh7RWkl27gQxiT1RGC+Z91I*5rpje5qiCgjzlYQ(nKZAAe1BtUW6{+0v7Zh99BQh8owd|oK`tN(Iq z0M$f)V52r}IYO^wyFb}j=fAX65A7NJGre0mo(;)H=wF?>wi4GoFKJSi%K3$bkNfd( zg;pdWQa`ey{|}7B-U7V(fx`>%KX|X80O?SioUYx)I}wO|JOwyKIPvl-?O;{e%(WLb zLo4hLGAYn0#L{9ENe`?depBiq#R`=B=FEOZMsPWTPljiuyeFWI%?j1R8n(d_Zt_&A zC^dUUqx3C7L8hb>6JY{dgyW+FnknEzNB{V1gxk_lU7aHK0)6=>qZ{dZa8)9Gm^tTm7?)bWLwmjL0BZWdc5vqE+ zY+VQLU7SzCuHNj(sk7ohLLBg3*?-&`ajTJk8b21AyW7Tt3E8MGtb9y`?b9Pe`?z3f z+0qqRzyRaVpA&~sRO>@UaJ39(BQSgt{X5ZEeP*-hw6$`1d!7DxO$6@?4J4QwffQ-{ zvN0>PlAx#TC~m$+M6pnQI-Q{cMOo!_zzk`7MNnyR!41o+A!m2@&p1uFA^FW1yER^91@uUMD>E78fz_i>5iN>9-*%+f!m2O{dRuKZ~wD(2?MaF>jky1 z30mN@^qcWK2#S2|ng+o-z$6D!4Gprdg?zoQs|Wrd#T4m7I?7nUsFVlvJcp<}7ho3- zAziu$fV5!NJ$EzfqFi-@G+TXH>egki;;>IViA|i$Sc)doZ_HkXSGChxrglb0k3xA* zHCqUW;@m2jQ5o~@xkS7qYYge9M12=^d?pOR5lMVx1OkL`lJH_po%LVoZ?mS2n3+Na zFdCtxFx0Aolo(zZlf@Xl@156bb%d)CvrK#k5ASP=T(7B>NUq2mZie|*x9sSq^c@y; zP!F>{x1w z)48h4dZknq*?@STyKyf*eCtJP+~w<6i}yD&wI8orADWm)yj}lol&1AVI3Q94pjD8s zqsXvi?+16CZG7F6l$3-rU1~~wj(`R6=@Szdhp0IT!~G$6rYC4g|M-cm2GbF~#NwGw z5Oe~jIvjgH$}i?7=jO!aeJaN{IHY$5GauO3({x&+=KN|Lt*JuHc0INA`>YK3pxOZLS+;ehsVWXxq}`I z9ohfM#T>+A=;<<@$29_wZ4(zN73;6I2a23?gZaDb%I>F4C6Dcr+Z-LEsvpz+NlKID zRvY@W_O>tg`XUE*))8Q;v@hwj(iJWB?qVu#zpKg#P3lDEhmEMmzm`KK&QZ4Ad;TJU zy;p*{$n%goD|5L56Cdhx#y8m*#Gui@UCU*8f*O`ow1o_EnYQWS&$)5Z+NO^9+0fZ< z&*h=+Eqbv(-M6?irM6TBV~pYkIiXXrOxu24| zzg52G*5?!?j&7^^q2nBKppD8D*(&iZ<21o<`W3ZZw$sJ)kEus5QaE|cZHuebun~sbPd327&NDrPvq60xy7U8HnyN}D`K5~T-L)3pgp{=YL#@)0=en6ll>PP>TCz1f@gJO0(mHgBNra}A zqJ-UCG#E-xI`pz@Qw+D+W8dK6VvvcCl+h!=C#t0dL}?rR2-h>)Q~t&qIQJcOSS`jy zFa#ysKkh#uK)-J7R5-hw%`-1_9+u{{^CQspjf`4;|? zaz_2~Fif$X5_xaGF^Wu>6+{fmh#GVcJ4jS=fmAaTO!#{R{%Yh-gSmK%Al}W;ohWH3 zxbLWK$BJmo?a$M3)l3CQ#8LAzw+(v5f1`XyIz;5)%^&mN58As)wf^yHhk^4%?dc#F zKuO0ZCal22(8Ph^;o*7a-SYJw^o&Ce&9@6*_dq`hZr>xENI0r67$PhvEJT?;w6C|S zzkF^nJ39+g7v2Q=I`9Ta^OMul-N5_t`5CPEQd7Ds?+|bZtpVnd$T*KOI*3@o9e-e< z>md&*A)$^48-o2#jMW(TI-P?jFMbjJ&qBD}MQKS2)8N`uJ@9lKbj9+$Or zDrND_VhSzFwN$YR5`&j}8=-LWfxt*5nqkuRXtgx1`Q@;BOby~YZas;@l-_SAZ$psS z#$MtFk7W{^x?(B_ou1Q?d2nN#l3(i<@bM=}$TA~fSUdIW1_^L_CrTVS+%E6=%HvU4 z5FWdoJ4g*g?HuwH;3=rLy?AcrD|Rv1$oIM67RHYL+-by(P;KS)q2&vI^1MF-?BkXS z4}+1&85IZ^pmrDwSM_+OsbD%fLR{~J94D6Zx!Iiuh5I)YRHUeG^YV9K;ENWx z@6gZpc*+N{ZDg=mR;P{7sA`ydiU_a-HN=8fGvF$zIq$^L#*!lQu< zRveb0wWaNd+edqGe(t-iMb~KKf;d9rL&kTG;Q?mfMA67_3I@5i*2koZ7u{0ODo)Yz z25jF44@rKCv#8yxi@9l>c@ilF5-l7FqFm9pwtVgTsR^a@5o*Gcz+DEC;{s6mamS^` z_1ArcbQW+q?a$IljFM!($|?ERzWFZ)>LYSeq%oAYeGYs{5)A?)q0lMXt&%?)UD3(tr~l8DQE^LOv9KLSrbO~rf!gG9>(M*JTuJ)3S-Q7b z_bp=|qO@B$_iGecML3haf0FEJ7wqCm6&qyee5X?LLWM_Gvwto=d}+^O7w>23Jnv8R zM@yrPgLp{IiDss@$S{mrc|BgB^;7sy$MND=gTBJ;C|Jw@C_U2t_rw5Y$F%A(+R9I> z#CGQs@bdKU+sFc5xR_Lm4TTJ_CKeV%)^Im1hfTNUpeyadR8nIoDFU-BgES}oWoLlN z0bC0fzmO6h^5`K(EU&4ZNp&RBxD$cH>S5!hhKBpK9;A*02ab=RY!O)BLx!fn3#ZQ; zg_nJG=?+Z*F+7S9<+S-X>ZZpEiK$vusFM3BY*o_@jLQx589@5Rgys|9j4gf2E~M%f|GSA-Tzhe<>QVF!}!mprG#qcjN*OSaeSa9DcKt_q4=#;vI0421--d z<=dr4Ua{WVB1CSs%`dk#tITY=2plXgW(**tE5qhF;7{q=bWvF>OO0j4jt@~C ztGOO`KylyhmqQ*GKt-WIegi%r<4@Lzj6)o(Yt`-!9h!9@)?dH@%5_Kl3+MV>wZ)Q@ zprH3NaN@g!PK|U7c@JKl*^xS3Jn)r0d?&NDuiX|^SQX_Qjz(@M73&q&>t?op*)!L^ zl)&H8t)n2qK=tMfBj{{H?aWY!v)8nBL#XpJL5NrdL&4ZUVxhPw26Tl#cSRiRjJo3c z$qmxAiXI#WW&<|k(rDXEe@9-C`XpVGAK@(OT#ovC>2FzFL#R^QD}bO{*$sxQ^Q(FS zUqA|>gNMOT?+FQSt|3-8#f6_(^jqu5tHrR~djg5_NXptKoNL`6HB!GsF(T^*0djHT zXtIeByAPMe*W51k(T95~#y;LPUQgz8h}AODn2TYR@^#xE_^@XhLZdom*=@~g#38e4 z-eKVr#jc14h-W zm3KtxHMg8-k5^V{jgJhIJXHY~QlV8Jkiu|kKAE2#_BeKtTDm&oM*0X`){W@0Np}1U z`INs$rV{lA#U}09bR_b$Njo^OitTS?>q}k z*c%DwS6=@dZj$-Fd8+B-RU_~O6gp{T^g#uLBWjCuuZSMd15=Bb2l>)Rh-#q*Tx0fLt5dSJVp%!iHBtJfjb*MEbxm59big z=OvLP#P;m*nCOvVUhf5QSgTUpnZs_%KMXb?Y^Kr#8!SE;Fo4oEJont8y~HdT@Dm`G z@OpY=z@GA!;1aOUqI+~LqSTCNz)Wt&Y zgUR*apcDXcOTP?oIUIg#Y$O0zlK{34eTbV!cM%xFz@d|8?A^TYny#@TAt1Q#>)ELr z1k^FuFb^TEPDTS;cDr}G{iQEo@>>=*GQdQB&hzqwpAeE|l`;UfOF8T=~D=ciYm_ zpk~Q_jDoLN9Y>r${xnWt4o@(wpeUv)`Fu`%p`9i9$I!>lLT%2dZF?&7oTm$iohwlB zf;r;{nd1j7MaCg;(wb5W*C{Fv7ayDD??r!KlwH<-_HyNZPm4!^9UL7_(Ice2o@G@Q ziBoHcNOgG_ukZ=uISAT>zjb2#=r3qpEI>>UyJ_BasgEn5z5o4`5Z0q{L+XarqHSk% z1{K}CC45a10eDU~YFC+{6=5y7=VT5VMPw7a?M(G*s- zN4FC0@R(9iNmthBfYG?aIA72IktJ$YS*Sy34=$zAZ{Dad(99ysKo9-8NMSnr4e1`| zM@||sM2f&591})Xn|i67OhYs{vkuNm^y2E2*&@~n6PJYAK}l&dnmH=*=|j3G2bXTY z+^BI1R6262vG*h92GRxI7xK`}hgo#V`r=E%4<(0FDW7=!IkE?J1a`(z>wT_8^R62K zJ)vo~pzZM1ernW|RJe*xj24e%3VUv@l9_Y3lzCyy-wbJ?biC@|f!~-}N?U1;_(*!9 zvQhmbsJJfesLmDRh^C}+5*J@2{v<4O0|$)QdIV=Kj$8a*Xp7#yMF=M+^J!S*DU(3J z3i*~ndynBadn}p+p{gIdFc}35um8+AAqB5Ct=$sr{Hc%);4f+GMwM(coLsxgD-b+{ z;sfoR2H-6*&XfH;=Oi**RUyfbk8@XZIz*c}ME9OeJbTl#Y;kJXS90d?iDM(V<12i( zG-q&gZ_`Vn&wd{7t7!P1P8dxixwRXsel(QXbcjBymLpVPZ+2tNp2a_lsfx%q>EL1t zse*mCG%GLxpK5cbu%G|dKwo>QJ4+G>SHqR<)%PwfEI#ou{kbCDf(5|AKq+Ee({t>LA(^CL~hMA!C86uMXvJ-xwbe_B0BWLC9MNdX2jq=QtTm8 z{Kff_elBuTdt)ryM?3rI-F@D5HzQt@pPD`V5#ujlt$f8{s&F&W)H0)ppZ56L`U#K+ z$Fj+?P=KhKn8rJ=rv*9^uCxb)?7`%|X{yb&B5J;6M-Dy`AIIjNYg{YFSKqZp4osZ8 za}c1I)5)8$|CX&*jAO9ALN=52Ujjb{py0s;6J`S*l@EkP+otaKa`ov4PM$wNKnQ+N zmSv}iwAM{S`f1nWkp~?2DSiFzyBYLip@pO_bsX_Bst-H~(2ZG@F!9O!l1hBSJ& zqsDh0$-Xng@0AA3wds$*q2h+WO^fiwYQKLQqaieF~jF7ZB$-#HzR=?y5qtR672(n~CEtQS$ zDGQDa1A1eAw^|rSUYn;G*W6bk6ZqDARLLY`*au$@o9M)Nu_(q~5o3o&@9dCZ2Sy%* z%5-lcbNVGp=#Y<*s?P0bwMEDqF6HQO}B+{s7kh z3e6W*);1iFkwZQ4U(f{d2v&JkkN4DWE!fH~qH4LVrkc@q)x^b*96!y?9+UMkj2UF4 zZe?m~!#0+h#mJM^TyX|ZsM?R6-r%TNqzLPu+0Pbftkxy#77ZL0u=Fpe^n7>G|Fqvb zQtyVa)5C*|O!SOQ+Uwf1^L2_o@FX&Y}OO1`+u--{M@fFOnO?msFdQ zjF5tlvQ{+3l(gH+BUL;_ZC>zh3(2>+`W^LpRL~hS#parH;JwqA%n=ybF4IeV3t1LNyuef;v$WV2kR^2`9N(b#=AmE6BRVL9=qvovV|w|t`Gz9xc0&RmWnNs> zB1%0HCdc9p7%;H>vc8{e`Y#IYn)-aXQiV>ZOTC&lpWOqeZ_6d$kp>-x$+8 zN*?=r5G<31yglRx-d_U$6Gk^wka|?Gcm~7xnnkTI3FW7_q~vB;^~rJ8Zw-)Eq3WGF7u^rJAsQGGfVAA^S$_{59zJvp2^Jx&zF4zPmGKwxxNc z$-|vJwm;c@*AuXU^f;_(c+FLu?6dfUiRP1>{in~d zzsi659b2KSDeBFXReEE}iI)h&;=ZD$(A%7j7R%u9l7G%CF(Nh`>mHrfk5$lU{<=4v zmAk!M^)dWZ#3KQrllqrso&PN{CP{?g)Ne(F<)VU&O6rhJ1}GVPsgq;UYh5&^#7;0d zpg|C_TRy8fR*cQQZUFT|U)ub~us4Aj{snS**>y;iSnn15o$Mh?+0B9$pSe`gfDRSk z^|9^S@BcxSj(j!pAW~ZW_@_9u@(~MpS+AqI{n1X7oyV43bq05)zf7GD3`-I7{BJbT z*ZT69IOint{uoG9N9M_ob=h83X z$D@1CN~oGrWxooy(niO9FT~|@!dReV8LcG_1;L@I34e(FvgCXpKYdh_OwKnMbLl{xqlyfq!6-C&OrafLwyO#m9DM zT^bqbf`SaT%Z{{68YS!IY(1&tNVfPoA(cBYt$Yw}{ZC2dfs?25>L!ViOQB-`>Wpv} z)mxTm`9G6S3hxe0mb%^b*=T>>WhE?1S{nw>nYKn;M(UL{@sYhQjz7SEKM5~wXS98T zz@I_05L>>)V??6*z0Plm!n_i5bRWa^pp|G#g1XE+!VK63V6 zwb!0&PR)eJ@T4JL`6qSC3|L?Z(_C+KfxkwV!8>sEX-WF*qhAJBpy#N|NhY6Zd-^Fb(f!tbmhn z;sH&I?nXm{J9Obh@+@~TLTWx`reRv&kgk@1F72S8*nm+s6;Dit!)QxAFsqt2h|vt` zqG)JS(v(_SD>u)yWil1DZnVv)R;DvM!(22AC8q8{*u@EByqZeN#W9WTO9u>T zwW9rvrPAhFCboR4A(ar4E-E=lS_&8PZ^zZ5?2`^yzodWHZ*Nt)VQM~@xyG=xj=;cr z9MCfA-@7PHJMJX0KlZ~b)1M*1EXn;?)(0JxEDipKIjypK*+ zClYf70~S1G8|L2x`j(T!TY2d{vXT*X$->!uq%x~RCKK^BWRDI?(4g1DAePv~BO*k(PiRoqYWXy=dogy93~ zuQX=7KKR0x*3SjCfF>{9g(~o1T4p$Yj+*vAGMI+{uj#HtW*9!VwIlCOri`CIzomAc z7~RXer1B*GianNI<92zC>_{F~g-5uctE@`30MF~pT!)`y8@YT|g>HwS{T8=8#xNq9qE1AVc9Y9dz>vNKS&y2!+ zhc<8qq`i{-+jADis$`P)zM%8p{ZKh-rp+N{qj~Tl!uHJR>Cug8>Au?HOGUk*8xNtz zl1ArEB96$?7;&~9cFJKy(7NO}?!>l|xa7^yi~g#tBB1q&BV}u{tlEN1i;%(^^&|`` zj-Rx9Yxz(qS!OtE#XR*z-!NA_V%el~-i}9>B>HPz9bU@3_|R_d-Fe?b0r88Di+E}o z<`ew*En*z+tW&8Wh0rXt^f@+c@ix4f-#yH6}i_7D{<3radheMAr=_o5L5) zVF_=&F;>0WRxRVA=T_6q@&QaqN><$Dg$#(Tr%^m6Pin zYwvHxDa|EQIG+vO+6!ymnD%YyMr^N0-||)I-DL zZ$G7wKJYKT@o1xk3;7R|$G9(vbB^mJMZcr7py)?V0d@-nBlc9+=|>AdpH1$;+Ft2` z!ee52F6NbEeJrwWYeCq<dgMU>)NkvKMs?t4?wGG_#|@2fRNphA94 zN$n*b$1x@|8P26nd&49BW*}eFP#J0Ojry)faokm?lK)eGJ*NXb{rEpVebw8OhlIil zdWS}x8CHbBM1(X z%6y?Jeh)7zef9nli80^qXtSkyh@)V38Sx*)WTJKUXM&r(v(H#5d=ri7E02Jb_22xk zqRn*p1?P#IjTGR zvAhmW=$xqf6fr^IS*aJM@pJM%;4T!2=wH}VH=ec@V0e8e1Ag?v(7*W?-vi%M_ zwzWc#oQGIT`{OPRCIqImS*)zrDxYM2R`77iB5yN>P&h46F}{hOiGB{eiQny~8Bwjv z`{x8@rFey}1<$iYwAG48&LJ%uB@jVcFZLu*mA!YdfIC!kA`dxJwls8Xr?CLqPNK>SexLTl7TdaHPI>s*JUdI zd`)Xrvjdx5sP7y5`UOXs8|nI}G6krLcDTGk%j}kA_JVt=@# z^Hn4(i4%BQEr_8J$V>X{mq=R<8wN-$Uli<&v(!5&ll$9=nVvEDA~L_XI0HVBj+rIB zS&)^LnTR02UmWg|q>AW`G98P8^McHAxUTJGAAtp(TzW+^(B>vY2#lJhvr z{5tVik>GUdOaiZbLuDYX54s{-&x|k2PpbjAwBO`R55zs&EX%OQL`{h>Lz1`LcYpWM zb7<&WK)_D7^u&;Kg5Y<#m)F7X2hJnYcuq*Qh<|%n2@4&o%sk>=z`2Mn>d3E&y*gT) zzMuL0Sx#@s%3=E93^yo+Ett2h>!fu;oZVTqN=E+cvhnf->FU)hD*}oOVMApJUb-O* zsS$Bz)?!UP9nOHA)zP5po}8K1ae)VkSPHVCHk!ZX`UOWxnZDEdY0lof9LfjfP;)Y^ zb*9>Xd?cHo7cNSOCxFTwFb(d6{j&pT&FfZ6M^hH|_f3haT(q|jd)!OsIFgvQ)lG~! zZL`k&#E%q$Sovu*ykhTV`2@sLy%f{$dN=4>X~G`XU1k#vYrQB&c=FINYX{qPpQBo{ zui*W5M(smD5<;1N9LJwyBU2@cV`Crx*0{Sv_j#I@<5z^7`DGRgWeT2$!pLNvh3$;?*K-a}1?y;Er;%gJ-~KIJ)7s$HGkrY}7GLdFQ}& z$|NJc-c-l8azV;=tlLS27jZTw#Qd#AZsk)dXMW_R-EQoNvj6q=AfD@?v2KuSh#yv=v!tfw^z=SC|y+ditgin+X> z-Zp7DFyJ4L#C#Faqu!~D+^PGVvYU|q=iA2#Z@tWoK!$%~-1!P>bereqGn+mO(xC#&qtBA4Ou(G7sK_ z4Wk>rGn3Vo==Cjkzyhv!7Nql_85u^;}!?_}k)2sxo;) zjlXC~3%#^0_N8LIZ!Z)O{z*9gBc|GQ;E9(exhusa~;d&scpyWShQp!Xv$%NI;pu#2?N5 z^g>aB2P{1Bhm@0;F!}22{@R+7$9a1ckTK48QZghI;@5)HoangG%{A>-u`K4qwYImh zVoxn<@#uFM^QY-}%4ZBO6{MD$ zqD8EBmFH>Go*y9acHhO;`8-5*vE3u~Es0I{RQzzcJ|-fPeJQjy*1}|lJCdW;+2=I4 zo+uT1)PI9m!j=CvccC+{e~`guL`8wzWBROkP>P55d9>NbQRah2Q+zXBV=adk)%v_Y zr%J4rCeRjc23vf|tisfpX?|5LqCpcY^UWcr?l)?kd3R=CnZ4;Q>m{WGh~0=Sk#s#N zh6HHa56Mnhx>EY2uae%cg6IZxZ2p2%05OHKWe-Ky{T2Tm2BCst1&=H0giLTje-uQ} z=6RM@bqVA@MX#q`RXu6n0C`I~X-`^qPFflnxB^vz-T|R=3xLCg9|9w(TA#H!Chi|? zH}5_)@Cyj|hlWxyF`d>B9;&-uH{M65|7LxO2oCk~$9wr(+mdV6_l!NGvmT?fWpvl0 zm4`MWMzeN6j1HIpk3XMRJc=CH*vD}mrIm8G$P1U>pUP>`x9GY(8TxhK)JHnPsFG+K zKX;yi4egeE(yMP?C0^u*y3@VowH+kE9#K7#tf@538GvtDT9@GW>_D*Vr~QCva_`wf zIXo61oxAgp=$cA61mJ3%ycl^Y1K)xQ0z?q<1{l^N4sV8^T zqSvFG-R_K>M$wHARi5YxHi2UKJvJqBW1Q5b+MiA;oYb0nEY~{h{%rI4#R1Y8!_~F| zWEt_*a}}kyh`E$(s>C*?ZKG*fB~j1Wj&y}GcZqEn-DxMUY*q6lN;?or$RLa41Mwn}s2tk%?VN_{RJth@-}D|n#7VQr z|HW3F|N2zP>M-O2xc3Gyn6QL|z`VS(gZW#(%SAx*0T2;DCS0yaxrgU+P5`(%u8K8A z5~t0hU%!62!$5{WM*(P=N&2D^LEP5Mfr=TpE|*NQBg2Xm1cK1JY*koN3@fZ zlbqb#RPgHGMdVs|n4%Jo7X;iC;D5eyZfsNSrCY3C4A}j8m>blV+O-^WytcWS{^q%W z4>BoGHYVnAM90P+*G&X}@#4ivekqpk<_X79uIijB?)wgZ$>W1B zL)NRXGbd_&9%AuI%eqNR{*BV-x_Sw$e&62R=E55A!yuZerXYfj%5o**UOckn>Y!+% zuv=O--*2WVXdQ>wlFR=5Wwk5XObj}8VTt#ZNe7CPVgwXL>7r6|LDDxwl>z=`1bfnt zB;iWltN0-o1Scb=61)PzDa|c(!mbX_hd)zZ<&SKhfoA#Fji2Blws z*ISwW++64U;pwB@dGq47DwLZPDuNB^_@OJh*U4ycY#R*3vsZ-us$40$ZXH@$2df3` z{?1Az@xqc!YOKzGMvE6Z36PAPA1366)Q`KI-sH;u-aYnz@EW$cTs>h9m#z;$H$oOb z?9=H>chg+eN?9_n{Z?U#2qdZlixVU&X#HZU0i*$+L{Dew;@aMP3`=z}Y9OGMus*NV zDq+%M^%uq*k1ZS$8_&nW^7vMt1{wvX6awEx0Zr}V4`|g_o)Opham8WR@exd@T(*0F zqGtKmDN|EWB~Z&02h-?R!upZ->XUg$qwM}av7+i)634HuT&S5(<26cAllN1(g1RAET4g`tV=B+WI_lIt9F!|GfcSTE8v!<(Mz3;VVt4x4q zI*>B^DqDGu2Zrf00P+)HdsDJgT;svWgC=8KET;`MZ%XLVkvSO6BU)KqbpSj#aA1(3 z9uTS6H>kq$r>gz(6WxJChpFBAiy5P5NJud8br@^I9GHj*BIF1MI@$CfT+!JVL8{`un1%ClMVZV|ZjF7EAyYrU?$CN&~2T zhbg1$_1g<23!)vKC=2!qwN5Jlu(KMMl|LR5K+~YdvtJEnvj+lTaSU3Wq=(Z0dQ5bA zd)FMB3|ItV)6{Cgnd39AGtTew(5hE%#&?NRkc4EvGC!#veCDoXkp|j{e5Bv#i@#)a-Fnr!>cm{pW=&R1401$bxs8?`uPmgb} zW$2W?xM|uvy!cFTI$KbV?};~}LxWkDBGNTO0#6TVn1qKQT9_p7ZLr`Nnr7@!!= z+Y7BZ4l;6}zJJ2Z{7`<+l8k@(#sNiWjd`uSj@6g$B*yZzZ8HL0OMThOpr)R)3L4ux z&vsk0GV?K!=fX9*zzveJqG>ch=3y*#w(o#Levs1d;T+sI+3nol^V0X%uU80Y#Lh$4acZ46&G2YPU__v@^Q*FQAK-qH z6c$E+0G+!zfYzk>Ua`eC2?t1hQeZNB02Qqci~;6Ex0gas;qop{7q>4ad{jr78Aquh zPyI{K7jL_p{$bt+ZE7tJdc`qvSW^!hRGTfew)+7R*{ij?MdU!19{dun0Lk0N>pa!q z#0Co+#Z}EFh>H~sc5%H%XNp1T0jaFp!+c0LG(z=qXrBCfM(VY zaJoH)MD(-+0YA|%U(x}?(3UkP?D3kKntmZ6SrrwLZqVCBcQ=n}5Rk;{o6dT7Re=B? zz@VP(tQUWfR#N(6Xh;q8=XuwhO6-p{fl~GLNiQ8-cVC~e$!4YX_Q)dl0)Xk*fl&%u zZsI`Ha(fNDRoJ64zO&t!&Wc#s~CnvgcVP|GA*Diw~AV=7j&a zfiC9A1n&6~I3EAK&@&Z3noF58VE8`!+V#6QE7Srx`h!|H`U)iK;@bo+4ON5od2!wo zyJv?3pm_cST!0OFuw&!cNtN7NRsgj)FR9xmNU%(6!{PT^%)AVm788@qTx)R5OGu^3 zj?9FE(hABRDi^h;KVmE9G6$8)4X?CUqql z5odSou8k&UCSuISoSG(o2$~$&HPiVz1R0OhslW9JnXg-6zYL#MXxcQ85!bjMVDo$G zPgNxECOqf#jDQ6CxMP)kH@z~JzX18!$D-cT!kt@}GCbYiiINTp&SfeYlWRP(V{uyF(4^(AA2l8B8>OmXpH)q&hG% z9^YW;r^|Ng1UDDaG~bga1+^-nNLwxC)*nYMlzG zmuP8enORscaBze*G)MugoiEEOzJG(9bCV88(uOuTT@u^Y?ax+MSBb-aC&6om=!#Dpber;_axzlkauB%I-azC{DAK@EhtWia) zwM-AfQUdSuvX0h^s;_2isHRn7M1#vi4xhWJ3wB|d5?WIX8oTzZSy=DZaq}I+2`@O~ zESx-dRaWbt(L`}Fpfw<{(biLBH=4j6J9!_URl<1x@_qaf^DumEnB}H-2H!acXqN2u zA3obbm-us(JjdirBMDg9Mb4>$d}8~RV zc;~L&fLfv0p@YURU*$vu?MC4ZBUGUcBUhryLyM)mz8|PK@0v}j=Q{zL>~BB|cnx67 z4m-KosCDnj$vr`xVL7Q{w|s2>6>HtD3!DSe#LIG2Nt!>onhbV=1Agch-v5dp%71TA zOtOK#Y8>DetOm;LfE87{Gw7wV<8~$$3!oT6;I!T{pV|io3^p1%zPr4<%udKBPiG7a zT$*Uf9tj0S2z1Ri;`E4*d07*JqoY0L)wrWqD-jt{5%qvnazMZ%RF}br=v9jplH$^_ zT!b`FE)Rr{8$UhGJc;v%ZHH`tL5z}8@5Q0u1o@~zC)F9I=(jE@Z14-32St;FJxeP! zQ~K9J_1xA6?qzx4`h<~yX?YH~ucMbfBW*X!wUP<@enmtOAg6iBT&0L>8muc*%>=8P z>3fH((?BYJEd{8@Kl_XAbsT*epm^s-%XMk{p;G>Mjwt{4@qW{h*i9S6S-vFbcwVoB z^Ux@M9;IOZ_6Zx>!@E%9E8O_3;O{*^XQp&O8UYQ=}pS^OtQ0wRm0g zW+Sv?9V7Le^~){Hj{+B1e@>a<&-)a#3z08o(k|UuAZ;<%Q|aC96IL}(pdp)PAW9j_p5;>(i!XW?n&2zPlgHBC)#_UT9!5N^B zHT&*Od@HWg!xzu|=;?c?hr}Ndf7=fmMj^@IoZrKKMa0f$_4+RhQxnv6qDbXSR|wIp zGso4}-Nu`pcQ85~S$P#9N5>nBCIr%lZq&WTu?1>yo4F*3Q~CJiHZMJ8^MCC1k3_@& zDU4?%WPv~*NHr%Qu&J{qlzuM+l&k23gm?KSv^YqBWD;-#wMkU@czOMr+=T({!2u3T zd}0s~I1QOVfrPIGCw_O4OzFR z+L;N_ogK9yMAd`od&e;$vY+u7l@oFPIJTeL>@uREy?A<%Qg)Pcfx+)59pxh|(JwK9 z>)bUEfRgil7E!)I6M>P^f)k!AIP!BV&?b;Lxd!*ZjsEqFB(wv%C$>>Pj}2bDO&2c9 z)Fk%~z82fErIh+uI>wPV^|i*M)PIvPw^uP}GT3q|kq#?APLn6d^(Hk%^hXxzK* znt`@0g4u``w*J@qJwko^yOfoU;batW$Um#|k$!Wu;qkg~{T%cOs(#6JK5l~ZF;J5K7a$nORV!)e~AD8}nGYdMQ zHtJ?nfV>5BG6AP8S;0YPHsHK_>uc0fT2=fmj8` zsgOx{?|$w_K|DM>6u@v}zFgr7AS%@cy9S%DQg+&}ggs1KTN_M9Y|YoPSy))qD8FBD zgSvns4`yNO>+7%wuC87KQFd^ALMGyj?C$;qdI{}-?Nrd#mX(2lArg$78&A=vrKN#4 z1mvD!6Fo05F~Ov{(-2A4yqLcJ8}QfnKyi{1Fl-Y8=>e^!<{uzU(wok)#eC_)CSvDUs(`O&NM?(ABX6F11H8gzx3ziSZ80uyfb7;7c)KR7F}r&2O0D`5?>~g@lA&Q&NV9g?$7k zA5eywgt%2`y9(chVY9`Q6dChCv^Ya4Neh(R$xmiaTreEC3?Z@Xb!??70`Ncz=I_-9 z*-!3((Be}$$Pjrw!P`>!N8lUTLGzsAqZMstR2Q?*{X5X|OloVkyZ1?-J2LQux z9a*$b_8yFsmQ5F7uv70|YkUoD@F1a%ftYu=J7`B1WaW?|x+`_@^lZ$~EG(`<<4*ca zBd%s&PM%obi!7c4P#F)E=8eAn3Ps|-7&_Hd!?Tn^Q*Ep7Pu@#1$(}2= z+Zt%>c%vx03_s#GCi=?5J24N1L;3w6mnw=IlCdZo0e7V)hY(n12am2(c|3NNE2wCa zAsc-nGh>J)E>JvbaanR4v^N%&I5S^gzik0J1dz>(`_5=Uy&^2FMaIy5A%{U}7GMyDH3b*h$FcGTYWl#`g4 zCyICYzDDDUr@n0aS$%+S=5!$aj(FneZa5^g_A34VzcCQP>$@OyvJx3_6BScBldXhZ z<;Zo`M?aa_UD%901EYJ_n0$F&Sq?uYI4ek$V~zC(2UdTzxhg%NR0gCeSM!9T^OASQRX<}EbC?asZ@^XP9Va^pETGTVK4}9F6;}( z&AbCW);XxYvm4xmBu=i16>T4y71!R7v1g4uFy2s zwOTZkJCza%sZ%`L>J#2eStW(oi`M}=@ahBZyRl>UiI_YEX+%h4o8)oD7%N-dU^TO& zZFF`WY)`EqK$cRX)0&uQ$?w(vEPr(U4)pq{H35-H`}5@g-S+6C>C#;j1Z2@un?61D zok!m?_hOg*q%(Z+87%DWel;Q|GO2_jAWqT%T=_qMa4%^)-55vyw89ln!e=>fC1y}Q zU|hn;?8>e6Vt|adUc{XYwye^JR=Ny(<-r9Cm;r4IpG*u;!g{&15)In)%umD*aOb$! zE+({x&B}Qm0@F9=E8s}Ah*dS^b#&#{;|HCZ;)y@>scsDyQ2%o~wM z`@4pKXpMH^Q)>mO^%hWC*IWz_NPaaL5js}4VH3hR;28Xzjg;1UFYl~rbBM1E%BW2DlVNon>em^aBdZk#`wkLvK4h(VU%(BtL3ft+cA^wmt z4x=1%xnU~SC+_vN^H^+qI<|*MN}(@@tAX#4tdfeh4yYI+$ z+iyBGtEud-1o|F_irivg@A8jg{h>a!*IGt>xEJG8(G7YHyxk4i>2vojC6W7^{NOsD zkj|1~&e`3%s&9s72upPEK8zLVO`o;m8vJpqi$q455$y1L);&$nx_;%>SFSre$G4Q| zbN}1KNc5ShNS%Drh|*9#{pF)DEyVvm{TXWYWA=afF$A4To3I-I?$^Tlwc=l12L42J z&~S?0a|rcqY6`I%Ng+*VY&dU;7{_bh@-moXSynv2gE9js#j9?t7fXHs95FUwa`yV0 zk5b80(3ULKIYmc>v45*P{`2N)hrqZSBY05`Vknx{Y3T=}e>^xtebC@-Z z|K^iceM6A2=Wr+zA9$~Zw}pw_zwUzgXzAqI-qDJhShnTYsFlbcg%yFedkfjfBLhis#_*RXp;oLfo#xz5vFumE2*E|`bMH=?!+o=IrxJMTFQth2 zhCCf(P{;F2?$Q63O;66d$1Xx~U}*s{t;KcZ*4 zW)$v}eDteFW$>MWq>LVVIr&+kZWBLK`jo7{e#-+G}H&-WLKd_xxlo3t| zFpKIXagWGoZBH*8LF_s3#Y*SdM_M8Si9ooex_XMBLte}yD)<6Ag@KZ(mb0glkC(E` zP$H{k=&Me@*818#c~z;2^hBHjB6ztg+_n7hIpdr|N5;6%kjG9;@I}vj)<|l3gjLZ@ z#}Wg$M18o()On8?_?i4uG5xm$S>fdX6Udgkl5fzf5zQy+4$G=laz{2l$q2mS)XRsqY^*<0AFt{KJ(B3T9i${I&T(IVF22N4)zSW~& z0wRa8AC-Cb-V?`P;4|H-ii(xUz=0!j#B#mTph)&8%x}4!3Wdpq%*~ zNcv4LuJBaqKLK|d-l9wpH;UoR>vuz`TBc=9It^I{G(Bq5j(3eQk{2;{j~MxsgR>sy zimdfdQc7a^>G5S(5NI}kP$3NG+r5TVU7_B|7_NEF>&i9O8q2F=$Pg;ZytAz+C}zJ{RPKAC7lWX1MU|H{s9ex%bUJz$DW)|t4U{i_Szk4*P4?F zk*pilMWH1f^p%@Jb9^?WY$2|(Oe>wg%n%EA0TRzToZk9X&%Ni+c5}8zcG1r_S|a#v zK?1{AtWnvFl*cp>!em|BXft)OO^o)bG>C#q8EWW`j{e?$}(I{%VAGeW9?R7@spW6?hyL6I&}OX7xjeA*}HdJ z@;T9qS^u{xm~c6^oc3meAro4v3wrboWcN{0c4IOn>}F^HFZs2I#1)OQ!R_18XpkLf zo4VW~{tc=t%&Gc@yOzJ+frgL5aP6F3#=oN$uvLMLt_1)4xnCP~!QjRyQSr%;-QGR~T$?doqlNS(MGo;;K*0j-WcD7+?y!`pG%dli&*CC6O zvXRa39No9s#5%Q=X)gqu$FK7BDS~M;#gd|%N1@5>UU5Bm1(ZY91)_y(6ZtV^9EC63 zjc!st2GKrsH$ys|l9hhq{xN&?f>f&n|Lz$Q$=RDSi`^Xr9BY@w0kF_Hw`YB ziJN|4!Mub$m~hHx0lk^d)p7p0Q?)Go5XW1O?vNI^Krk%=3p2yKM6on^1~VE}IQ)B5 z|G<~gSAKyRiU-!y{KKV1zWKJ=Rx^NJ|0n#ya`sW*WQ}w8;x;xD`g~(MDQs<`EHCIa z>%7w7>_8d``d;SULb-F{==wDm9`7=2kW5Vx+sn>ndJOh~N9gTB(a@9Zq@n{pA_#Dn~uL_k2JbLd(xawU0=e2t+V)e zY06ak<*Z2_AC5fjp|Oh;CE`D{J0E9R&whNt>7V`v;CYhD`)r)=)h+(>qGB-I6rZ&` z?(94L{b^~+e}*Hc+R=7#a$aA${fzkf!O<<@I?H3?{C2hvs`aOLj^V+8(mLg12?w(| z9AM~We**?WB7c)#+_$(Z_E7!72`-)p;^FbJp~%O>;d==|2`<#(!_W#OqqsnZT#V^R z&nX9tt7{lmmqNyVM9$;2<^em#wCw_%ALVOMqf}?A2g+PtEpJ)hQ2Mt7HR5H zny%%obz>uQv_bggti?);eU6x@(lx|ubxCVvJa}I(Zv6H%i=IMixvY`5HGX%P8AWJV z;X#~Nv6yA4`|AhK&~nBcD-Na0y5%6L#|d{4?%<>?HL_>MVa6Eyn{^#k?3VH=-~2tR zEbaQ=ZTBP3&f$~CVF7u^zhzUlXF>Vdhb~i%cI#))J`w(xcKR(rQ&19?cfS3*9v1O= zR&wQJo6^Zw%aqAVPHaXeO)bkN2zS`q;c2%_c1N__toJ5G#J0HiTqtJZIAF$Z_`zF9 z@g@7fB6VZd+sFf==OCt}JDf!pKGii7K!slwe)QFVE;WN8G__O@T`TaBx_FNxmUyZs zZG37eJfu5sFg<5`Gx}6?^ZHU`v|Ft{xBnWGGvpO@A6PxJ?eFnKQH8twbvD0t*M77= z$yZJs>Ynpo7VNs3o#%>ou8}v;ZWRtJ#(1Nx8TZn@~_J2N;QZfJ7KV-!{9LUS7^!t zA4H4{>|#xgoi^^q6NG48*H7ngQIi+daZO-|VUBx)LD)Jes6!t~y&Wv8YpAG|uzJbN zhtZtw{9p1OO^gvt=Fhj(Xbr}tr;MkcooOf;cqB5)B zcLg5^d^Ki=bmZGERn~o<+_vUKpj3J4o|U^dcPpDP6;4MGx}g2RH{@sEJoowDZIM0(_s^(e?6x?HTFDfLdQUWu01T`pD+6Hu@|q9rjrGO z;(od1@S)Xr_Cdh5KV;&wF=azj|6Oo8$wo_VF=P2*lpvxFviTTze26a`IVZ;OH1uaf z4Yij)d;&cI4Wz)eDe)lez9h~AZc28$7@3pP)PDCNcijMz(SAW?y=ZInnXT%9B#miH zlzXzNVQ@Xwc>aKOQ*wtf8C?kxQWoIa+)(Vn;?BYuX(|onbFw4em~dIVde<5l?GSFBY+k)Ds-u2tfy&ajkP3Q$~*j@d@aF{D!;%OV)IXe5M zRpX*_)X;epedDChRj%azl3nAKX-Iv(cU6G%Qx?vM4f%%-Bp(YSg=IYSuhw$S!b z*f-}GiL%|VPawzGn2T47#Y2bFXwBcWeVT8c^T?`}(fM%sZjDiK zXQ%h7!|fQ-1XW8;OXq8v_{!K~my)s~|1gbqH3&V%+VG1bIozQOa&a*(DH)9ahDJhc zkMr~*^~--)0CySI9{EA&@GMU-STC|mZ!uGH8p8&7jp6N&e7j+H;;ORP*kEZe!i=O8 zWY!A72SGu>HR3YDq}5{I2QN3LJ(80})myv7c()%iw&@h+MzU;@hY!rqja<58G~ydV zM5PeT>gc%^>_ETn!m7(<-9Lt>CbQXkh4oPPml3pTFVD=HEd3=mA6n-=9*T-lV)_!G zK0^QO^Aa@#?x<)ZI3S(xJGdVXz^I$A#@chO z%*yxQ7aMT9<#AOUb!zA*##MT7p{vr?&T~Sdg;CcEkK5cQRTWp{-L{{!c3DPtp5i`k z;^AmNnGqfzq2hE43dvizbNbHFKb#CowALRzkmUTIw4IM2LbCTiVr>C zUr60$0&kpcFv|3``E6U851atiiN^4snQ!s6@62|O0iF;T%0b$nG%~Z`)-*GzH&`p6 z7x~Y6S*8TMew3)fIWXN36Neh2jwd{9FC@xxOF*KbHi}W3XE&EB8{pT?_0iyW@WVZd z*QSvIiuQ5;;OUkx_0>iXRxWz|%^YEW(@?*qW27jQVr84}?OekuDm#mGUwQn4^Fadp?1#hxLFU;pBTFrgI$uc?e6YpE&i;tj-0;) z{*<6+r6ZMpeX+nBPjrHbLt;lxneDJe*1@M@99$$hQ z`}&X?x2Pv65mm#luti26H;#XPL!7lIgRDA6+WlzGN&N?@v?U=k*0J9Y^#jqV$^Nssp$>IZQg?iNsa zMsmz~9~YsKXl`FUg-E-(Uo&9ABosKiU=3)2bf& zQ`Y82EPUh!e$HC2A~YLT4IfT-HTKF1?&EY3eb4pttB=@s$oWwm6Q%Laj&|+yD+d?Q_|%ThZ1~f&A-P3E7%jZi;TPWb6&?HTj{QA z4l{gDo@(o}%7%+|TjrNi!1`5uE-ELW1>76+luuLgQslYTI6SS)Ir9sAHO=exHx_D< zBj4pU?zWTR1`254kNS@_T<=pwIBpK)h~3hnMzf=@$LV+n_XHzBbnjsbRIc4hPc2Qf zYpM>uJah9flW_L8X6>leNoy_c=-VGZ;aZ{iNgC|ktYT83idFWUy34Lc1 z2g?z+(6>#;jnI}szO!QXu^ZDTLPCOTdCIb=oHz54;}fNObW{8PB!^5$9c(gEecUfIfdfG+&xVigfAFo@HzOh}fFRvX6BwH>zHcQ;<)56b(y|(y{$ewO;NpiKbhYay6gk(D1e+93%u_l>%y|3!Y$;e&N{;T)ad%cY zv;Cg<6jL=AzGT%Lp0b=X^Pgp@G(io_vfSpXc@b6@2&x0{I)ogb;Ztq8HpfWbQL3?D z7(DFFx#`$TQ%GS_a^@r2J6>jAw@Rz6q;Q{@am?Mk&a67&s<#BTr?kg0_d(Q~AY!~F zd{J~?8%yLIpQ7$jLH0x`0{*k2c12{#^5}r2il|Y=Vbo?J=-1SdG2X#}R^Gt^WSlB- zO3ZU#N4QVklh4FyO5^6`Bt%v$>j-IU23yQy5*B^ zX19;iN*gLs2iYcG@)a zy3`q+}#NVfUox8c`7F9ZMHV%54L*__drHxI92{sW0)}}DMW>(`g{uZ zHpwjQ{z>+4Xkfl!Nsw74IzZdd3fq6^rWK#vD%^1R&OduRJI=z9n@5{j(Aj1=BotSe zm?uSoBac6+L9$+ITlUg(yrVK$?yR!zc`@H%FQUM^J&9WCSxC(i38~BVA-#LNiiyIP zQ{3(PVqAIXWBrT0E?ru9b<5*S+Eo+D{ddNLE>P#;*k|@`PPh<%V;|fN-GENJ$%)a; zq9;r3Cxjo#2M~G3dfaY`B~N;r9DjD9p5yWtjlQ$ub~6TOvM7?1>%j-V&Cvdm#wT*2myRf*2s?8MGCN$5e}KQ3mfAZ8 zPj0HM^-{S84!Ueg-yP>dyMJ9`#VPYf0$l%=`K6jE19TA!9UCJ|Da%e0MK?b?qv!s<%f&LqDJ03cqG$q#<|B2w%Lwp;(7#bB`WQ z(Lufnn{Qpubas7kzrYzh4)fgS^}OPiJ7}Zm5C3KS6jdk|pVI{`bQW)R#1df6){!e> zx`MBQud`wYkwwzp7OP5v>Vm4rsAZ~p$3Vnn#(JA=jKuU=i1hV-`>vtP7w1H{Z6o>G z>pZi|GpLJSSi~@3rZ4~?-_fcr^mnQi{;$1wW$PjX!xg_4*#GU)j4I;RA+)h_{w>WE zGH;PySBma^I7D63H=cFo=7@jh;`yz5lMt+dUrX=wr-hud!|>L#lM!?E&V+^NMJJ|c z-HVFhG}hRG!SoPDw0?0ajmPJKonagmFVx1pyc{D;YR?0XjLDIYX2_3^hJ=X?;cv2e z-7|3e*0vS5970F4>#th~U`Lq3b-1K5G-c`&|GFmTUg8V5;QH*8A9Cc-9rH56jzrVV z+RKa|D3|jZ|UdEYa%&oWbE_Edi>Mbl~7Sd6i1pl0HSsQ0ZJE^U^^UD~I zq5X*a*exI2VGFcizd-cVQ=BvWk~>6rIT8pq?6=k{ z(5XKRMXtyRcfoJ=O|>qDf2fTEwBIern9%1hS{Q3xyGV$_Sy9^0V+@)5c#!Om?UEML2ZZK?pix|_K}wLNc+2a3qHXqsoKKL zlM-~&$ppdU^1|xDw}Cb14gH@Xj=dHHtl9QF**?;hA%`u9rXVRVH!Q643GIe%eSe%` z`Ef<(8)uUUC1rM{GT*^KC9xlo!S}LRSy;kxoMRODb2oF|0E1Wf+;c*)SJ#hpSZ7TO zrrQb-)cGy86Or$GNlD%hjHnTeqYq&Ct*Z)h%h2IUM~K@QNg+?9zOR!h?U?AFLZDHXN$`l6xT02ciS|tr~K;< z3Ojkf=|NVQnc4VA(OxztFP%$al6slmDVr9NOG$WuGj6|WgB~I?m~eT4s;zUMw)*Bj z7i7)a@0c7!%P?++aV*B@2co{!-O#36^2|^Mh2Jp#OFIic6T|iScv@>ZlzE!2iBqes z`$!WyWV7A8HJ|uTEjs)Rl(|C)Di?pDHS_`89gCE+eVK_A|3T4`V%AycVXl)$e6O<9 z!>eZug)#@dPFY(X2r(5029BOO^~HPdpmmYqf2nsMJeVbhYKbAfE}U*NkK`C5wWOXx zG&9p0icFqZo<4w_CSzc&D-RA$UK$KLkLvS3#2U~yuxCgiPT%Wk5M2>hpSjpR5S?HL zJ^@;P57#SORUqS?`U7O72}Esm_$xoGA)pld9wsH>s5P(N_G!GV+3u=h z!K7iIpSMhW5`xRDxm>4BX0#aoCf7mXsjL_wrmV$o*Ze&JoMsanfcMqr7h9>Jcb<|a zFXG`_7JB_DZYXxOl2R!@v=R2vMw0vK7TcNWnX8o7gb0%mwXPqA+3q@GdZ1gK?H(5!r}&2s_72=rM5V2T!>_UVhf~s(>Yfa6 zi=X2c*XX?HIGj2aTd5@fvb>A^ZtUz(cIo4wz`3{o1z=@KOrTwlTi|>64pw0zO|*;! zWW_;&?JsXLvQwNehu^!S0IEbuc{Dg#R)=5KA;M(-w8Bx|l>SZJ!3wFSAsxqiCrt|b zCqd`<*9C9z+z~LbP0v4(qx2hbq5ToPnI#F9Cw2UoSEP?*j|_IgTbq>OCX5yj{5DLy zZqdOk6LW6r$g~JgWp^5UIffIp(|7aUaFq1-LOzxDaNu`|nWPpKBqohlU|lNn!qs0z zNPg8_%<&$VSNy1K$QikW24#fd%D&E><3N7yt2>`KNWuH$cRt*2?_P{pnPSpbnUmG@ zP)$|zV2EGd-Fl%VytZ~dtvE4xL_jH@%Rm6Ts&-!JQoc2KsO+0G?`FZr4GKmWI!)5-IRO-2R9Io%=hY45=eSY^A7 zk8O#T2c4L~oUp`Tw-rQQUJF)K>$7Xl_rdrSjYfe@8pJizYeOZqS~>_BX34VCkkVr7 z2M7E~5pUYthceM*V;oVqM;)K0ZxYXwqX*|hnt4mbVy3%E0jK6HX`aKBOa1#HJ8>cd zpI>@j;*l%2`NGSVC11|+$Ww8UQJ zxzX=$=~St@de%f2MkiD`kP2=%UJghMh(;*E2F-;8BD6Jb++t<85^?0Df198}*V^M7 z%QK>+F@Iu~$iyE;X1P?7&bVrKe^g$VDH&nAG)G7E@y^H=DcZ0^;0iON&2{GW6%@*B zj95@Z#V6R%Yl8{eC4DSd(safsm}&iG+m6IF;bKA=pUmA57fn1jdfy{i-BaM-lGY%m z7%vu?AR6n~P{6FD7UzJwFjw_;ntHSa_kOILo#zGT2iwKUEZsB zU&zBSbMTp&%Ik~@O-UCn95r2Lt%HZ@7gGTD<8qHW=8 zA~cPCyaEqXyEi(PW0D#4??t~ovJby#HLs(ab+)`<;HB!)a0p+>3u!hweMf)Hysq94 z_P(jR!5@<+GMsgovwh#+UoJeIDA>$N&*&6wr7%35JBdO3b&ML?DAJ|g+}Q19D{*+7 zZAmrt*{H&{I2EFdZwz^Op&Be|VyE=HGhfndYVzQzaZD&XNwN+rpHyW2-auj}Bk5~= zYyp+7?+1Vc({1#mQ|w1@2*$;wcJQ)|iV3{HKu4U@?aXD9 zB&XAgyD3+nnYoaai+Hulb43xG!gSTx%M&MBF?6TtGuY!85|*_!W@U3T#hWNrhTOD1 zvkMOuyWwuJ1Bqb`nN>B5^pvym|3KruDKAx@gH4pwf_(7hAUi?)lw)$=7ttnT;W`rR z5%{!RK*cT>6wuA9XIrE>Ocu<{?@itK0|H*fX|)r>^td2BM7(M^kT|z_5tqEc@tSXm zirDM=LB5lfwegQ#S zRq-&?*4zV+57nx>GW?eXoHQ@?A_fgvSXfdqQz<9Y|4Re*dbung7e=vMwT%r<83Ot* zV|a}sA?v-ej^h*t#`Evh=;~N#KfMB>9uT;VmuDvR=wewq3}cJ;@@-4ND;6v%MUq~ zj;COhwtf_}f3Ta~xG zUUmK@P4i%tK1^2jXI$dL!=xris|DBagjP%QpxJ##1@_`HBdPJBlHsR^&VHX?zNb#i zXiQDKMfz`CEFm_|PlRWr#EsV+rBDHR=Otu1hru;7dZqBMdTJh(kVEVt_!AvJLuz#D0}zNSAWXivB}!-nK!hI?cs*fTRP zODdGr3k?1+hKSI73K)O?vF1U-v?O1wE|VJRLr#cHwVL^(P==>TnjI{`j5tOd3UC99 z{Re0aSIonscI75>Wzc7lJwJ5`XZ=KXdV5VBYgK-U^44v4c&8b6?crnMaF!pmUO&ey zc{m#WlI+EPYjuag($Yk_05>vL1eB?wL?i2))G9AKYwrOg;C-S7qVwL-ongop3jhFw zM2}enp6hrpYA?}ivvTyGD8#|92cG}NNj}@N8Es0BM}9Z!6h|-U7*VmH+1~CwWGcix z=n4=Wb>CO^YQGYiYLOG-e`g9|x(B$HZY79}C5dI#!Tp_%SguC)efNwlV)lP6rAX0$ z(e(LVM1Mx{>nvL?isv%Fs+Js zX}PaeK>=P_Q;@zmFda+4iiJ+~S*oB-rlUG+^GF~hybGaZ%z!r=RK_r!MUi@j3}aeN8rYl-vps0pR#A>0$YbQa7H{3?Hn zO64U*aVtMdK&+4?&YyXZ=9ufe!hanh$%gxQNM2Es!!si{iD3QsPG97LZ(8x&<~ByT zqq%eKyEg7;S5=G*mty!q0Y&?CwYB+wx7?i_%-GtyKmSgBPeIjoM{hXfssCi1-(+29 zm{#1ISRe4^P&~{*JCYEYwXv}%7XD|t790}aWFC3l#6GLP?4^Vu8^}P_p5Q+s2aC6w zL?1n`pn8H|nc8&H`xQy}8s8Ns=UxK}p#7@<#&s;V%b3&$gbRMn2|mXMAV0kB1KTrW z8jjA*ZC((|5KI{hewdZ*(9*uKa@(sjF4C;L^0WW)?*7np6K)>XK%4~J zzL8OPIPmB`DHlPH!*eg-&;4y;*W@)9{0)(Y{s2i@eIwxW-f5zH3G&`=hA6^giZ`|7 z&|fRj2T1!x_8q&YIXMkGr|0`(J28*8u-;dO{qAn3Es0rZCaSMsz<(y#VCCvM@4iW; z`A+C1pB-)Urp@nTV`UXh!0R@~P)7FXwm&g5>q9H%XE-^jdE|@NKhQ~7znNar(?j8Y z$iR%$36;BT)ryZ-G(>IwqpvjsmYdcxDq~fIZTuv6{=onI-}&F{%GAjpb=OgAV%!?O ze=Wi)8Eujb>kCpN3r=l82O)ug79c)>7V^UK#O?MZL0w zPuX_;!S{1r?Yzs)f32!TtPWvh;nVw#2YY$kE1PZ~rEvQNM~+Y4ao(TeP4?LBVo{ea z=OIC3!SeB)Vw;cN^VPS&4iYm`J|NwkDGl8Ybd0$sc+|13BSqzsLvEtGKBbEGROcxak!-E?bmysNA$LEOU!2X7{FX=&->kKe7}X8Gu6l+iLd z%h}~z9CACcSw~)8+HLRjVMf0{UK)O>eO2~KNqGh1=234_$0B%yL(-;Zmw~wuG^(!& zrJsfw6H?r~qHwA84|6YgkRbE^35c<)`Mn$lzVoB6x^4*Eia#iF1UI}2oOlf@aCwA4 zDD64~V>5Vc{x+iywYoL;Jm78=x5&lYEB*$o8aYcVM&Wu_KLeV^J%QNtz@qIWu$(37 z``&r}fGeoKXA~3=Q$&~Lhu$CTYjSlc*6C(mlBCrh)vK2h8nK)Es(An2-sxVd%_80i&B)}NuZZ1hIOKvx^~-a7&3Q*M&S)}*3+9MH>W5H9dDR6Kj{SvU zjVWv_=Ak1ITf@&_$p+)q28&#YFz-tkutli^F*}i(nJi^E-2slQWu@J2v#x=i6efJF z-2O;ythT==Bl+;D;!P6GM`6jH^L^(kaXK$$U1}_MMB0AV&3vE6kdk8cyMOcZ!!arU z8M^01?1XKNe{n2^^)1O$z+{L`daZ_htqCE?uT(#Iy8o9x=;DT-!2yoYFs}T!qq{3C zJ%?n#u?>km%vThaEa;XU`;yX5d1r60VN~k(l>{}B0Ub+w_crhS2I#X-7?nxJRWUG>NDLg9NOmlZz4cILCl|i6eX}D<%4Zj%+`oCEKhWKFPw*fA{PA0y7Gs10Sc}sGv zjU7~k_P3OGYxl(Fm4MtF{#uPNg)Tf?jJR*-@s+wN;>F&g))&9FJ!+z0+&W2>@|p23 zQ`kSVLC)+Wnd8ap{p2_CFqFZfE-ZioQv_MXtC;FXCJLXS(;>evh<MsP!K@C3b&gj~So&lavx+p`RNS|(TRjg~C&DnVm7SfRU3%(4tIlnH|+ z^@MFp#d=P0xdn7BM(p}!5L+IGs3;Xy^&_~Oh5HMiZv~aqMUUBy?1}Jq-WP=KHKhO+ zyWu^EPqPS!f$pr)Le|%dS%YzhD;6TG6fNC#hp4aSj}E2p zE^>ilQ_1JPk=>KY2GIRmYa4=)I{F!w1P0Jze(yf1+$q>KYj(3ErAnY;D+{cH=9<(` zYWmFUy^0=S+f@JFn52GI0vqiX;dv(zX(X_kzNk5OdGfuJ>UwP`<*tp@#j55rd@_oG zsxbIwLAwzaaT{$qj2rDc*YNnPAxtl<7&(3{$OK$TLte=Mn zYW+q!#a@v6pROz8&(Hm6M0~H^>Bs*M+6(2oP@To}X6^r#6xk<7Sp4ggtb_q^($oAp z>qndPrT;7(5kyzO4WIO(AwE!k~pQn$Qd>l;K+wO47NvysbeZ<=93YwBV2 zK}>N@hedi?efVb!WW4S${fB2#prCM-K^F4N?%(7G-$ysF<1H|*)zF^QOk#`=&6A5oEv`~H!!K@wO?6? zI*VPn_*zw5n&V{}vbF^_XXAsN|2xaKdR&o8;BtHtq=9-_1mJ>c+1f<@;zc5*r0@Iv zqWP$tq`hP_s#q4eAD`r)3{NXb+v6%y0xz!AXL~R2c5jsGy?faw(y-{?)bH!Fu_uS{ zVpJaQ*!{Gj{FPmgEBEOM+Uqs0%M=IJ((`nXYH>b#Os7aD8){qY`Ej#b>$qKoJ5$2Xg zOpqsYiViFWhRfybX9=}% zsV?rSKi2iRSO0<`{3>?7{&4nnv?3V068rBIlAGGtK=q*4}-!>WJ zQ*4leHVerAEKH|4I)SVPf5)h)2%5W31;#lNoTX+Ey^7gSrxM8A-H|WC!v;bOYU)bz z&hvwa+QSC?*TmALuCyUFbWdb|W#}u+X!^RWohth7otrt&a*ioDveca8`RP9WHTVU- z&rHmm>$q&g|LMNINS1QteAl|orU*~8woL>Z-br|`VMzj`sJ){r_CZ5{ zHM))M+KDDE3VPz!5P{kj6T)3ry7{+{gmLo2REJl`(hQ^78gRWwgCiq~U#1)}h@06vO4)n9 zcN+Z~T#mzjipB8mR5p*4MDfE)7GcVH*VQ>ilgp102i{0|-CD=-;@W-Y$3Y9=DZjwd zkfC=DmM&5%&zr};eqH1T z+3Ei~I{S|WK|6rDK(I9QgamptoPSIY@l4Awc5|^O^gH(^Z07YSWAEio%hWXJ{qI62 z=4x=)Ij-`X(Rr!FJA5AKp74Ovhz3tm*W@(2(M80PLKNA9o#|T@_G5ysPp?bQ@h4S6 z9&F}rzwIxJnJKA}{3O0o0JYFo9aC(?oeAzxu1b<$PzZsyVnIaW4PJ_U3duK_+k2Z@ zn-TSna?ts0^`4NU!sLre@sH|lX-Z`w;4n?&AX$%wLzdx1OD>!TbvYCgMiIVy1BIlE zMM2Dr_?1q=Gw!2jpbZAUzJk_-4pAYR@!zQ_BGrIq@Pk2oZZnJg_g7gy=>?gT%1PE- zswPFdf1r-cNdPjNIes;xZwjFY+aO#$vt+=x!;B`OC;Tj?bu=0K@A|{O%_kPRB>kq44k(r*1^%C9W}O;~)de#m|+CwhQxG^w=Uf?Se5XaWeM{_?z#+X|b?6uYE{O z+zn=3P*;P97>E|N1ow3_8vo=B57Pr@Li_)KSx6a#OV2ui!uwfx{=ZwhN*+6yr4lSn zkmoz-*QpY~s6*JPsJ&9IJfbx(F0M$CG|rF04V<$@eA=j>(ZbJ%_$d)!%Ii+Vaxp!l zF8FPc-^xn%vaw#;*(xwF2AhEfQ+ zX*a*TC}OA`&(!wTA)5PKDFa$u_rkm)~0s#_41tO6L>2#A@>BU3PCeos5J+=leiU?v}l zfqOi(MgFHE&)?M;lO}SDs|c0j_cLM!CGoRbGt!MpSxNAX<0a@m7>TooZlO(U#Mi_& zb?wU`(dl-Xe)K#|T@_P2Y70C2%eV28Sh5uF@nHirMJ4X?hQpinUbDP~gCV`y_QTyVVA>?5E@n&Ow+&r@lc1Ofq|Bs# zcv`Y%phJzXxB7OZvI|w1YbL4L4qF{_D^9X@?GM&6TPy#sBOIu#nfkI#jA#=z@cB0u z-~{AT+rB!)_;zy~r#@P5ea0Y`^~qR%(p^*0lyOh7!9f8rsx&SIhGe;p2h5piKu|fQ zbcVW1If0YS-i<$F5SplmUq{Bp26-iEAiDeG1k;Bla$mM`s!8$ZO=z`sokqsK^qhAn zevQFcyzS&c#~B-4fZzY)Am4YM?<=agb_%YxeOU;L%D+cJ!zHi22rp<}k}F!*lD2s7 z$^<&~FlbP$%Gza7TeHueT^|kWfl}2^Q7~sTKaQS=NH!2+lM!eT%PqXl+mHpfWL4{T zHw{`b#8O2%W~aZA)d#w&KE&T!-~i8WpuPI3)8e_EFsW%5ybyiQbKUC6+c3&MJj?hlpN zTcST>TCzD+F%ic?Yysb52J0m=sf4*pb4zo^Em{=S#Pr4Q_1OH-nD|S7yT#FTT_;XU zTc!stOr569e72}Xar;g)OKHKIyHT-?uRiOreNoaDbr|fLX+6^&_Ol~!Eb~=h>XSCO zDmJkm7vsOmmH3_RUPgYuY z)vD$eCQkHP&E&b70m|J&&|;v{!ZKBYL{(jGO;Rx>cpOMGUTclv0!t*(lDrn+)&M zebvBzFbZx6kQoU2wJCwzK7tKsX6sT`W?oQMAhsGEziH8CT2=vhWRC-h5)&$i5-Ufe z8)qh|@Q4n^LhlkwVr)58M$lJ9n!N4mCdBBxPb;YM#9NmT42Jbu8oq0M(cokmeJS){ zzvb(Xd|O#huNWjcIUg}MT~Jo*&MZ`S^dr+SC-akpy9vrs+-qSWy2blXmdxgf-&#U* z4A@Ai}bFZ32HZy9{d;kfr5t=t!4CVoGYf?BW6@hE4IL+t4HkOi@(52#N zw5Ra=S5B-!Jr=EwwxnvuP*qqvm^(x>uleS=9ZT^S2YE^lP8GFp(~qwsy&Aqij?FAL z`=q#M+PdUtmG3cH+YwYw#{2*bFi9`hkK8_UR@c0|s{XAU8+P)eXEJXN|KoaytKt|? zGYCYax-=Z$zkh!u7zLCiDG@~?>)_C_Zx$zLFzntV*JGTAd+yb^LF3nz2wL!cO3G5Q zx@lP&0%ZV1@BbSquzO};PvpMS#~{9;62iFNmRjPXq!&cZHmeMCrOHl^5K|@zDdHm5 zu;frIA5|IloBwJTq|6N7DZ*M**s;Z**Zj@1O5H-q@H*1p(v@|ra=b5-TdP@q$Swc`k>oJP$%_mrFPn&$ac-33b>s8=f?@DSere&7hneq%EB0 zctbdg^x)C--OJ4XDaudJ{ULjF=`Sj`t1EJY?TiQcrlcn|#-C6rn2ah_4S#_-2;R=D z^+)0V7%F|U_oz_4EZn{pt?+w;5LN8`_y(@6ex5#vT?jmJzGBH|=*+RsQty z@J$SFNWGb2e9fU$KJwQreK;EDCs*x^0we12i2a<-Gxw*XMwQ`5F{^E9yi~#_TuTd0 zDMN?P;wJHU2z*4;^Hk-m1)i@ITVP;D)I6tfcJw|x7FzH8DE;K#LugcSozQ!>a*yt^ z_7dD9Y3eE{!?umJ!V?)SMh3Ng1`B4WwRT7Oe8pjdIT!JI%Vps!zq8)`5Z)!*|47N? zn0}f&Zz~!bdei)LZMMciD_B4BzN;vHr~U&f&_z}Y%fMJwMo9m^^Un9E^UiP?aDdcO z9R?myX{=cLz%o`OERI%2{Q=(DW6@SsK`z;^l5u+Dp!pydN^Kxq4~xaXPEm#Nz6vyqXSk z7SnuInbpz>fnRC-;Tfr!r~7}P%&AU+N%ZXKXZW=Gs@pDYw@fL=+TFue+)zHqK;io09!!YqEd{%bgTh zSC=sIFrg7HPT>)ia#fSkwq$cq*K}2PeP(^j1$Th~As$bv@P{c^a~puoUA(XKYITavoH$FP-9<{iuh;zvC5erNxmbz(X)zg9GIC?~(?KJFwE>Q5wF91nw`IK0 zCUlTV!kvEkDZQbQM=q8P!%rdTB;y zM;RlhJ&_yM$;}3w_I5MxHT%SxPeLSjUlhE)R<`_T{VhhPQnfp?Ou6v0npN2sU8kp? zUaM-%ddm9FfA3p=882H3p6LxV^(iCr&-`h?)nefcEFWXkcbq&ooX)4Zgv5-EH)2W- z4{a~6t`4tm6cp#3qmgjH?7AOCrnGMy&-Z68aHb8vMXg~#ho1XIpLXN_)-mSSi; z!dLtJp3rHo+?@;W4T8o4-vmHK=H&dTsexQvTvRnc>xNzV#HewpBe3v7uL7t)is0R8 z4R{%D;4Q%>VKeX4R=CVv7H_E#qa-h{CMV+}_ym>s3df=*R+x@;xFFUo{HXKBnugui zN_jiI5)3q-psOG6_Qr#1CAlZyc`ZG$oq z*A;&G+|xpT(I-A1FkQ1}-(Q7pS2b{fiv_W1UIUC1P%L$N@!Jctq-W2b?JhQ@DA09W zUkh9z;9VAtB?mC@Z+m-t1t70j0rd#+Lc(r&w;bXd8-?QIV3YEo8@`qV>@J8v{q zuaGxaB`ORW_0Hi2Y%cSN<>QM$p(^vj9W%Jh#?s8I32^a1owRs%?*xG$Kw>o>!m=iJ z7}c)E#(z(GV4@vt%T>E;WrvZQS` z97RB~W>!@92~@CfOtlufT>I3fd!$e{Fmrl2QJa$)UIOB zH3V7?xhiEvZbjJ2ktnaXv+K$?G`Lq~$|Q2qmZoh7BmMs3< zcdr=Yu`Cz;$eZPrIz@OSUgEwnUoEycwvme*?U1mEmZ1B@k<@NDdzn-_Jl<qaE69PMMdTC z?b{d4Bpm$)+d`&T%-Ft)y_A7`GW)uk$uyYZM;1Z@XXiK|vj}n_Bq?eB=#qZ&`<^4e z+u5#*{Kn^1B}oJB#=7YGkmAjgKVc>>o1pXJ@hlK{kw5!?aA9A+$z7B0|ENgGM&dNLNKB4l}*FckAMhT-SW zpE5B&E$%iIXEYm)I-yfjW8D3uB8e~Y&~i&B@Qyx-4V;Uq)NndtTwES@abuf7JJB!U zXwk=o*r=`M>90Rdb{Y)s-#itBeWb>Fg&*{q{B}f&`4FY(3gkFZ(&^yylLJ9=2)`4P z*X3wR9H%+H`9#4I5Ir<%`Ef6xOAyF$Dkvx%oUer05Atpt0F;met5|Sa^bk1iXVd31&i|qVw}_sCFxXjHnXp$@fm%gi z*&rXL_wusdAm0wde*Lj5kZ&9|iL#unWHlRm3xefh->In&9Y+AI8RmJ$P9vKr0kZI< zhW(SiSZ0c$UY;1k;TJpY94kNdU+Eb|NeD<&lhasrJnX9d1^H5&_P#bP>1SG!gDC%_ zu8(J4UA5L>--gFM7F(8C5}#j6zCDY6jns_S4#)Cck6uCSdSx1;ijn>oLm6+yAQBrD zrZl$(jGzec^kxZ@Mx(&}folwbIy@)0xWAVbEZZ6{-3-5=`M3SuWtVc%8P%$#ypO3p z)BAhogDfO=;ZgG>8GcCTk2oVN|8zv9FO&mqY*zP6-w&)5pFZ~sw73{i`?u0AT3S%n zk2k&nD@kOQ!Sq{Xck>=&Nrjp&78RRdcXV_}rwApb-0T{2aB&?0F991MR&Cq!I(F4v zLx6l^&K|Y~WHyb)a=y6V>}YRzAve6x-qO-89jDw1aL?JG$7(tfNyRc5f^%Px{iR2x z`)z?w$0&%Pk2r$uAWEc|ny&4@nj0s((3GeIgP22JZwSk4Y7U^@>+Tsm8#rXq{r9M5JTh74=E znQc1sWp+=6ZIr@yV$3zCwd6JZcaM&bAwnK}!q-bUwtPu*U?X0iRW%td)VnlHxPtwM z((5yJx88S??JF&93_Gnoxv6E)ZcMcH*irwtusB}l=qMu-^U0#U)AIzY+5nVcL#(zZ zQTAw$rqld5+&pe42u69EQ=}qk_{A6wlewwb-n(os`9I=sX=v0>3jiD>c);^59i61b ziMI2SZ=&0Njr(!J;_jqAymp6a!Sl+pGmJt`Uj7-5;K@@o;C%wL8Y?ZP?>0x#%D;X4 zRtKm(OUJRiIy?uiCN@jH1V>=4Yz8#P$&|V})%dFY|K%a|N{dtg*kSJL?9X4kK($x}@Btu?tYz-CThfJRPRGR52}js> zyim58P&GchfO#e3Qi&aeSi6G+qy*KP->I(w;@QC3rSk!W`|oe_9yhxu8?dO(PO)`Z z3JgdfW1!rYlr?PcQMe!6LH#W!aEQ@#-ofmAdxLm%-^YDhJ|(T70Lz==_Pnb=y9s42 z!DTfk0SbM}3#LnYjiFxXLT$K;fMh#X_PjBKCRN3i9#*9CCdQB~${vmr*5|({FVU?2 zb5UKo1RCW%iS2XWz2o^s@7ojne7YP|*Xc%(MuwWH6oT-5d*8_tYgNo+iC#nq98VGzrk8-I2lSVZgsC5CZIM{}UhR+G! z2*Y6UoS6P?EkG^G=H> zgs!UX19F@n@OU_0jg-4v3?Q6H0vsi1z2Uxiz0Q3xQPn6)jkkrc|Ku@m*T7xckX4I4 zt*ET5uZmwaXD6k%co3s*r3+F<074z6mV&Bd@Bt6l1<1jMWcibs@JU0kR8cW8b}jb^ zY=D8piVe?OCZ_$-!&J7 zu<_(X6an#z)HR?uXJ#nq1dw_}pzjo-r#>STa_0dFQy&-(SxlGuhEs`?5Ah0;%Qe9u zWVSm#ivOSbmIc>9_)-aGm_CUG0TXn>2g!~G+#xW6qqUj|B~}OibP4Q2gDd2 zo`0{>S&Ur^E@?0veV+hjX7VRVp-&NT@6#R~=;mOR3G(+ky`z2G^Cq{T0yZnJ`uyedt!_g6(`f2hO8-ER6YIvNEUpL(%Ze2rEE6iSia>l!O zG3fM5gi;k@cj@*-6gz9IH%(~ryCVL4eOmaS(iQvPC^@AkCIr;~y7r6nP1BFoYBaX= zp`$j~2Z17?7LS9FKA<3DTh;Ax0hRT49K>sHgfDt@1)EIcK}&>C{Zd?A9amY&wS34U zYkY*$2@1@Q7M+DMNpJ!HV0sz*vGyEUx4Za{u$^x< zJfzo$VPN*YB%H*$KHR*h#t*f7i53&C`Z#33J9V;HW*s*kv|`>4)dI>wo8kZ_D=sdc zmZUBh{fitBK*mFV-d`gTO~%XZ0Z~y=2Um-?$?tvcvpVF=*XCv~Z&fwjSbBSH)*9-? z$@V^`JK$-kt`$~!z27!$-o^u4>1uunOA2eVS+-wW;?Qu`5So+4vGUKpTC_S6@I0Ek zXSy`x0sD7skDi@26Q=9kXM<~cGK6dSXXBY;IX~LAUG+47W5l(lWn4^8v27 zZBC6(>rz7#k7~@;IQ3e18NjoMkgLW2Mxi4{kJ9+C4M`JqDgpU7Dhyy!z%wtPJKr&ehfFuo4^ak(r zc^U5c_O)2;K_cVCmbn`H01;PZxviyBS1@k3Ia&Yu^=lyaA8f-T?cw1uVT;pEuo+4&Hzd?%NpH+kK*+uR2=jwIk8%!0K|Br)j$)mbyI@27p6I**pllgLoe*$_ zd#!!ZtL%I-EIvwS0YuP2Q4$5c_r_q-gNnSj-c{*w@FZJq?j+9#w~pJ)qsWViT;UCE zAzSkqVP%S2vLZg@th?2AlTA+))Mnu)^TF0(to{0C5RYZMfY29yf5>EXd@9+4S3V75VY}<4h{4x zMMX^OgGqe=GCpg{7Cvl$rs00r;W0R=eI*2EhY3W2bQyMWyzyot{F2|028eMljVo&# zw)s5)F`=%mzTAiof$L1COe##iDns!O019%fc+@N;TqPgBTkLYxv;e&VH!$}Ep!+)} zbNz1>hKZd+0Ly`i8UO|W%EDZezq=0}9lnsfm|L^o_abp+w<<9Tzd;bbesNDBbXW5b zH98AUP(B}IIn)QXj|XaHFb}FDswj?e_kk56y3R<(ClqnHH>r=ZdI2s)k9acYGZSf)EvLFNvqrmxJ zpYqDeWyd%kHDo1Jmr%oDSQKTj2;h!j{q<2F7P&wi0NFMG>>L0CjidDh z>r&elF#ye&9%EvvR$36DOhN!AlTPFbZ$h3zF?`+!1_qi~TFPjYMal^gLAkH)f89P7 z0yhnX1(@p(?xK1gsTc-bup$<-m5e*)pVig-csCN;zzKjcx!1LAqU;+$*8{&sHuv*` z;A0Q4ae#;3ufajt&QP*GP+CFbaQ8bJ@DVXu{$_4&-gmJe;bFyYJlKChyvaB9f)5TH z;7}U(M{9jGfHDClzkTNm7T`0f0|V7rw;O4&!XBX2E(JRs)r-JA5p^Q!=N?c*<$Mqtq3Sm_QDmOh z4kl;i7sNUp+I5Mtr#`4t2ahi4?EkWbK*dKT z9V@M=NO4$=Pwts6DhS7u?ZR$R_ADr}d(RQD;60;q!ZIv`tALK`o}#Q3_w*D(-Cw{! zZU9yQNDNbKpt{71k=Vv|uxy=qiun)k`v5c_1Bky5sZUXX06L2TjhcwdOIJWojE|2C zoQ}zZ7z!0eI)hq9$Y$^mkWd6DJDK|WMDQx$0s6_*loo)-R!rstz>0tvu|W}R%QmY> z*>5kO>g>Cnh`;AvtD256|?!^+0*RQ^{Wr%UIF37_o zl(^s=z!|`K&;_F0M4c8~{A+9ZKqLY}LvP}EeQhmM5WW)19}0pRas_YtXI~0HIJ@}- zgBHj}1<;l_R(+JgZxbNTPz@9}D$&a4REY{?x1p70QWosbg!u2Rcc zEV1K*X~km?s3WiYLfI`;k^n1zu6P=cvQ&#B(mKHtAvH`_w+#v=w6 zENz{lj_8yWsz0VhldZq7S4d>>J6mUILV8&bkC=FIQFv-#z{dPpv3Ts)LxOXzMWCm9 zn(AG%x5%exkxdTxRO_e6R<${{i@96D?}n<0Y~_Al{8mbx8<*+6(8Hx+{Qx8RNegUy7)MzASbmspxE2CUE9D3HIa zJuXkS0F~wS7wj({gPq}_g#KwvXki*&ky7Nq=Pp)m& zVb9!#OOtC|J@lGAz(8{vKyoS)H5NzqJ#+HxF6G`vJD=Ihmj99uw444dqq9Ki87;DQ zi5G1@{)R%~!i|97Y532sun;>!{~^$vkIZ-=0F#vlSZQ!<_Wy8omSIt7Yr{rRP(nnI z4(S@Y8>N&E>F(}s5Cmihk&+gWmhP7B?v|2}kZ$E~YUomRle zg30`5aOa+$vHH(j3dHDl`16A1kEs@yn&JTSQybeEl9@@oaB*5j#%vJL0oP`aL>pFP z5z?)YlR@RzS5l2)5H8sN8h~!+Lm&M7aZALl@v{S802TkM@oy@45^KqR46fD2U(Vc0 zv*TU6JP4FJO~;LxwO3dB&#fX$el5Jb2#*aDC>OLO@KDt$>+oX#;vP0;_i4ikBTUR3 z#grI9KGoKhD&&hjZw3Z@>Y_GV?_qQjG+Z04OIq#N?qk;~c-f0()f*%=!82_YHnbq( zM~Mw(aX(yZt85Q!n)JwR)kAQ;KbD2Xzkz~6nZ65citW_b(5~~hAo%7Y#;J`ow_NuWip^lq{fQLzR_sSiYDMKr-zAr!szDIKy1iMt zO937X+M5r0Ft;qqpYz*nWVvSm!|djVsMB2*Hsnt#-fTYe6mE+)Pnxg7r}Qek>)!@Z zQAMn+es?>R(iI7MahSEA(%o3iNP%Tv;%tv6Yn!Z;EzVjr6dRA~)LF+G`QVQy|3gCs z-i(p&hM`KW>4j19fP3_Hyu{2@WU`i`9EA9ruGg7N8<*H+wtxSw1@AMLLSPXgC{xoH z?3V&smm0rIUH-Fde>O8C9e~vgQ-pR4&QnAclWRzIsgWq!NIa9yS%G3lT1__|J9Qms zqOVVJK4hnI9)B%@K}bE6cclXb3H@UbSlOfD+@>~bz^lh*VEJ2S4Ph^5{>y4IXPD6 z!LxX%*xGU7t%6;-vUP?|pwxl=BZw{$5N-W#i@A97D|PVkjV7c%|SyO<0%2k_ys zI6u_Jik~6v?ItEsaaF6xK@*@TfF{QEbe9VnE}5yv6fVZqG{(oc^u*27A8zLM7<-)( z7_tzadZVP8Z8WM@o#4mM1_=`PVql+4ug;Rs%njpQebx{8WvAN7Lg~KFjau)Z>!@lt zSqoe32$l32ZT0cr#|C=GEWGRXDGHnn3kW}kSvq2ru?at)+!xG*7_Hhr7#dkgpD%)HJy79^l4U&3~XL9GDIgtSrklH+dWl zk7=U9eDaFFxU{D;s5xXKo7T14zL`po-P?3AHKy1^k4+x8?nOx(E2i0&9%hJ& z8tO#}R}pw>B9I1?A0zqXvrmMZ=!+wxwp1E5PjI+!kA~s}YNj;q$rVB@!0UK-<61vjLpo^H>k)!SJnLKDSc;_a zG;BH5;qe#69&GIVXl*Zpq~5O5>0HePRoDwmh&fiKpLu>>qOlzs4Q*|yICTa`e7^{UHD>q7x%!emzl_WX( zs#s`TE_WTi8h}MIgSmLTt|0gu3ocn3BZGeOIFYRqO~7QI^W+MjW2{G+YoL9%bc*F} zpWx!Ek-ijS=dl3S{+b6=XM$2ZvV=MGbslZ*`hemVLV}MS3$bD{ecuG;M>l3+_acI- z1stk{ecH`4LzSjRgn}!!g&3t^;?K^1$9UZFTQUz~0qTDK&lbmWeBiEY%NS{FED${r z6(FLWc#V|e!0UA9dcNyga+=3z!5zK3GXSyPWKqnI)WF7+!)={d5_k|fbn9|n&t$Va zvgGwxzUiI7t0iX9X-9~Hdiw9Q(EBnnl zT~g4DKtu6Kms2^K#mPf#b!87Y5%7@u?QFQGi zkX=jK9TDzQdBW0#ChH~pca%Ky{9u4P|FHbPvVV&g{y;Pzw#%@o+%i_N^CzqAjSc-5 zwVhN>!ainDnua!X$5H6q7(42*Xt%fI(q6(s>9rnQ{s+hXf!VYrt8aMHWW)}syeSZ9 zCdMQiXVZ?q@*&%2SX2>wWV<&y)v)Uu#fU2vBnCP}oi37`)fUo@vXd2^-%L{8i<40j zVpCQK{=lfdr0C~=@2*ZL{VuYC$@r^p11XOms>Q|TvL<36IFIv!A|NZezNc^LEa3HoJ-dI_eqfnwXy#khx+#Qc3@-!;;`ZGZ z9>Kf5w4cZO=lT*6jYPED|G?~KVKrZeuYc6owPCQ+A1YGD2-`l4sM|MaP;qHxApbzX z{vY`_D)lyt-k#9nczBF-kpi#534gHNUaoRPfKA+QtjYW4P9QFqF;PW*Jj$J~wb#v3 zQC;l8()mT+xJxm^^YZf}IULv(@eFt7`)mnKJoxT-T9J+}UapGG@aBoE6DXbsi$*BI zOV-ny@o4Y8VAuZaXy@MU=|=h!YP6PB$CHD{f5#@$wf^Q-_W4KCrPUW0|B7eu4zhfj zx1PEa2NgXuk(OaWi5}WnZyWjWkmd_Jp5JN8+)Skv#sWIUx<66_W8_fJ4yJb)(Q_me z>9Lhsq^Upc0(~F5K3hrwkuWq8wD`M%3zOmH^C3dIlN{JJwnl1jfvpU=j44QmHs|bf z9@8(*MscTl^$v@aQT-j-?IEwg$JIAlpcwuVpjW_zV4q_}g$1Hd?5K4vSI?`HXm^*D z<~k*mG_GR?1ySnu=l)#l0>grhG9=-$26huni`llFc)zG%uExAYw29Pyb-aL6?JzZ9 zJEmr<+U0Okj^-_=hV_y#(wH!MgYL~c1sSw=updLX%bNk#?pBZvsu9=G`^ZI&UFfI& zc*UVe-9II1O*LU_w>I;=i{Q|Kxb{7C4yX~Pj;u%Ahr0un@|ih9y&21DWgT*_*5&DP z(jE%;P0H+C+UYmX0xa0~9est&de*IySJ+dxcG$OMS97b*Ng6e)e70pqx2F}o847Hw zYV0#bg2`EBx%#+kuBx-!j|={8EFaidrdF&PhhVYlV#{n}IUKlX*`n61QC*gMN!R_u zAqNZL4TITBvV<)z_xtq(;)QZ3HnN@{RXBGfsYbwrs=)U2-Q2^FZ&vN@gv6cRzsf{u zoOYGa4Ld(avLz=}llPC;67B6kf9FYCw1hm#^16zc2}@#m>}RJMCgEEiv*BBhNNq^t40O6^w2CeO0)ctv8psoGG!k7=VcXHNNMAGcsnO^c zW#*TZ@SJoH#!GU+GL7HHPiV7@>#i+JE%ALsX=3M5ShiTr5U9A#3s=()Gm8sNFR>-K z+*$Q#%}D>-Ip(nQxbywTRd`jONqdudgOhr&!}8mP(}ANRP5N)G>E?v7v zd~proc;O`{DI3iFdEA7Igz9wAPQ_n?%If2rMUceVyhUbI*#xfl`i4;VHC2)_M^ge5 z%j7DFSv8_rF{`zQT6>EdGS(s_ERG)}z2O24m%kfEh|davJ-u-Iod?;rcl+by8`NiX zbSU6dF`X8WoyyCuu=y7|WAwE)h4J-42@pFscKtzOni?8vbxvEt_pPEZwVoTZ&-g=| z7#wtqs7^L$Q~7;(jVcBg(cg%H9+`~L+O{@ z+GA)U3*Y#b6QAb-mzDIBrOOHP>mlv^^6MT%X8oI^`txG6;v=~!8RP!(!-|6zTgd1C z)B=c0jKwdn1&~o}70?qa1$~_YQje zh>|+{EHHt1ezj(RSUvG3CAg#$boBH{9#3F0)#2fv+QUDnWd#!IYEB%pvDsuM7WEfK z#v^tRO3}p8*FHP*Qn{Y4f-OPVyqZ&=b(!fr)y5^wMbhXY_?3V*U+xN8HIp`0u8ZY< z^=u;6>6Esm$kg**v{|Dh@YDw#6(zp$`H?DANfVbq4w)Sb5;O=ZEn()a>oYgM0}Ht- zb0svInNw!wKbPh#4KXOYZ1jNZEx3LcPA3TYk9tQ}btSk|ix^ZOGvEW$AOI0r*fj1x zgeMKMOiy(Q$%O)6IE>ZyJykU+fF!zjN}?#aHl-;zGV1m0`vw?`Z<%QZv_-q~Wi(rF zdbVaH&_Pc_lBgDGb@<5_#=oQL6-I!-GgNo3vsdh-|El$&EWf3i$0nP^?bt>YJ&Swb4HQHzSg@zw*Yj!=K366%8SbXIpe!C`i|?Z1l4flpce-M40tZh`wphVUF7 zzZ-Rmsd|8|9WE<9Mn;H2-RYJBB&E6aX3Ey9Aq><0w%tmE$1SI5qP&`{scfmN5_=`N zL@IVQ<-SOqi`taqGT)B4~UYJ$cTq?MSWBda4eyXIu$9xKA}k zK_ghf&GfAl@L-QsWQFl>~eFgLO6yTu+A z^@?(i{!VmP1bMciz_Q+*bjAC{it-;Wmm>noU699j?U^@5OXvUS=CF8qnV&TxF2}NH?Ct6ujLn4vvf9${67@KC47g1m!G1O& z18+vk$5k&?pH7y7#k{VtxwL|8@BCjS-~T$!M!q$KvckHDI9urdn(yRkW5EjZ$Z;S1 z15z~SLOP@UWsB+YHg`flz;(M`c?=*ti)^QX2oU$dwdt1}`tFkxKgo%F3(hStQ~75j zdoySm)>FhidWJ(2;dHMKdc2nT*q+49wW!d;quf=+rfHqg9o;oWnQ;p|+m=mSX| zgbnqEmz?P1s#UC5d{Ywlqt>17>5oatWru&v>Q4ds zbOJcAQ3Yi*dHN%Zb0h$4f3hYySnvG&qFjKx0a0&c274K1(To*0_P)QnqQSs-#vP1t z7WW*0k^USiwn9KWLZGoN!_(Ed%+Zh@&M>n0Wi#{D2HQV}U}bL)Ig9g{%=>SDHf##4 zhur+QMcfgsPf<~~Ijf(uMEeg)TW@*~LSn_*Tz;_1b0Wxnee8$E#Q#d7ZLs~z8%g?i zk$jHy@8H;g;Iy|dmFyZrWF zm29-O^)vu~y$~$xQ7R)ZZ!7H?H9gct%&|H>(s_ndskr&m!G`WrKRjsJcIg$SVa9^L z5?nPK(<(pg63TdL7ZK_!j7bynbrWNA)a|n!{%rTnU;kAASkbG;odi0#W@&Jg03pJkq%ub&hjbt)xonmyU)D+E`r8-uA5&3jo; ze`MWuoH8OOwdg1yrG3Lb%t3p6Vy(X(6I~yGMAkTC%o-?ur||6gHG|!+b+kBe_(DDd+OxSNJMGesnQOR;mW884>%ex-G;P(9_sqtPfW*={4;I(y{`d^>eI$BqWv26 z%hRVB%QZx~Znik|OLJoSd65Ze`M+w$3i5KF7^TPoL16T?GH93c_(Lk(Q*w1pqc)`a zCsi}L&k|icID*JMV_`lL7_a{?7m73Ai69*cF5pDoe}@qj_S|~Yzm?SG%~x+zLTQBf zw%ErnD#Um{ukzpO9DNz#Het6JQU`&?x&}cLts6AdU;(*4OR1Mw9jk*{DOfLO6HuYN zNAv1k9~57I6;wTaX4WpP^73RYS2)qa&YC#wYRdfj=WTiI@#R)nf<|ghv9)c;RO)oM zulJGj?Qeo3_luDec8-UR{ZwG7S(!D+T?j5;%PGw6_AN@Azw%A|PhD%&K0w(rDlEn-FK)@?NZ4Q*DngG!eLjfB zj!ckPTMO=Q?0xvJ4x$(V!Fh^x_v0m;8Kr~fgQ$`0zj|EU#?)c%rTi0ZlGpR0n3jJ& zt44pnoxzrU0yW8n;G+dS?<(@LExzi~b)&3T^$n>srTsN&vO==^VT`SqmccDizlb^)$@2|ufhZaJB)7Yh-S28@auiryWqL>3RGh^&EBj|f zUtP3l#{|_oV$@@?VvW%o?sYqz0-GeWiK-Bjq#eW+6G9jF1JBPdMCY!|MACH7DqMezEjzHSZrhe!2IcHr z=xDy$Y^Cz*FmBw~4yA|?cr??Np$#m)a$Da(rOsMM5D$MY5wzUR+q=w+%T}4pqSRM= zPOqeXp(8-jR2gv6cdFOP070qxzR(v}>FItMNsq@_6_}TnYcTruMU3)sQSbeu7&H|@ zb0v_gBboFZX8Wr$t{v>-pa;=H>Krfsv7l#2@~k&AO`PCV$sE@HN1r-m2a=)mGVlxH zfLb&4ee$K)?~qyIU1>s7WT^O+0@}E)cDUiT-b&v#ONM=%pdC(m(*Xis-X~sF(=y3C zHYQKLvkK1RB0}rUD|K~t=jajRV_UwCRY!;UtqDR`4-TS2eHDh;jxyKnnTj$N48n!F zqJ+ZViSECK3UYIwFmDASQ>8KoCbD#J6N)cU!)_=KT;XzDyM1Xju3uI5Gffqa2h0YN zJYwtacqD&8CJqz|U^{OAcM_ja=@TQkC&-cAO$(mXH>~j;VFJ?0rJ2amVl21I6yW?`0Vp8F&)6!Ipq3XB3(bbSutjbXr%pD&R)?M-amWCvt^49vv0tM zf?Pr}YoNwhk);gow=+t{Q?s{ukXa&Z4pf9@>gFl_?A3ymTG(yBZHi=cA ziB#Jg$4Dhs14sZhNjxqN3KfvVmkR3Rt9IGSZx&Q3D$yFruWHOB&&QqN^he%ZJV2*T zW(mU_#1*H(HQc>I`>xRdbtc(MFBlV)ld$}9wlQ^Zd(BJuGyv?3i|3Vj0IpyWRe-(T?x$mYS}C^6ii)=aP!qrQddF(tV5^N ze^31K^JviG>d-u|V9Y3Tr9tn(`5f}}b?=yH08xYQlJ7y!{xxoJpG?Kr)6_aI8&uO% zJ5$yEqT#LIz?H5R`Kn{OXMYeQBd#i`nHkUn1OiKX3gf{joJ>y;X-@8!csK`r}F}E`K+JauI!L%z;4oXPFZeFNY+s`_3eMj z5oRl(o&MX>|H!g1u&||SgsyKKQ_|W-1reyQg zcSxd?n6qE#He61cP^j9t(eFBwNv65BAY;$z(%Khe6>w(O$dnqB1VJsI^dEFe)0-a0 zyh0^WeVuwY9Hm28Kem0o*4f} z#UQGza7%{ieMfN>3;ctPv&*;IZb$`k2B&*pP4(k?Ge-7$Gh`!Ca=0ArSilJy(hga6 zVm+GO|I_K~lVqpKrn%%5H5z63q%SZrKXfs7elke@xD5g^P_2&`wm(gLks#H9%6KGoD4Y^Y}-uuC%;%RT70 zQDou4?dB!hDa~NoKkfjRh|fDy(+~x8Qi;77X3MEjO=Vtsbas&JqVEDD5&_MDqCh@3 z25}*gW`;Z%cz2hy<(X+QnJtEtu3TJL+G*alzsBeLIdwm<&+)1iGU@pLr_ z=Bt(L1L}di4t53?E1UI94$qk~6DE?v1t|$BZkDP>p8iBiG+;Ty`Ed;y2a9*bGCLUH zab!aOoL3kFm&5^L39W$t$p!yivjN4g7efpcPlx+cAFRn717pT^FXlDeNDUp3gc&Km z_um0`o5n=k9{1@Ac3>fM%E-$-Qc}3&plE9X4P2*;1YF(Cf%!%LQ4pTl1y=SD<_~5< z^RsZ?4YFC+iPDqsc$QV|iX9(J)fQUy4GU->Os(h+ZcJlT(%W4w)N1y*itTRa0u{Dl z_sxzQ)j}LciLLI-m>}D8KLI|zX`pxq3KFNwsuIAzp0BoPvjFES2?+fvl6`hu-i#1^ zL&;oXZPAllGDKA*JMMShFyOlyD5oo2&>ermfr}-&GvqjCT9BW6zlVh0;9Pbg{(t8( zGZ(LA%kDV`DSqU$FqdVTu;o8ppcd9jy*i#H%BX}5V5#~lLR@B*89KJOZJ1sh#!G2q%$8=~?jEf)I6_Vh>-MS3lCLQ$H(v)QM|6t&5#--II<`&wRgYQ3yX- zKOX>o15VHXILkEnkw15AYKbGnHg}4Owu<&zXV#3)B4k~-D66sI@!qFKRlRho4m?{k zBU*YK}g^V?#by!E=!m4Po|z5_c!;p#@d^h$siq& zCUUrktlWRcS_Zt!2LVN9I4xg@uusMV?e?6(A<&%Uq;|n!RmMiE2F2w9VhI6p*?3YF z=|g9+CfbpBEHuQ&w21^dt#*95n&-StD~eQF=NA?B*2_kZE0`r7SCCUeG=BDiEFfXI z=A37Wgb%?b!tyCE9#39aRCF&~y@2&t(Mx9n&D^>1-qUb!1aiaeR2|AWu)<2sjWLr{ zI4N!V(A{=^Zsr=~OJFN-l!c78T;vPGcJHA%>df7~jpcR*CqA6sWzK)Fl@YQ<}*XhUDbs&-&i0it`YFj(ANG} zesqf+n~Lknh?ni#(~}C96$d05{A*gRizK+|^HxkZgpM%&qlWgH$(Uzmz)>R_S?ko- z1#WO%LH?yymx-E_Zjipbj=HeB@q;lrnW}Hra|8x`vnGNXW1cWpi(dk2cm?Wp`Amcs+RYAk)kO$cn*#wWUWfn&SbrxlKV$GsUq)J$F|&JABV z0!CRMg@w3Zq?{UiQmZ0~l3bC|c26wam+X#IA|i0pS|bJuUHqIJQAR=%+@$$UM&+ko ziD*mAYWY8B60v{>6NBA9(zYGL>MnP+v}l;7kTF!nY^i!YVwZev=GT*!-@5LCdR%7Y zce6$fea8|g1|)7%^23Kl%~>SzXmfu^K#I;@e`Dy|1)z_p(}Nm=3n!xNdW~dtM^rI zQF8wVacQ2*Riz`Dp;f{^`-8=7VSr~TG%rGd-!Z$TKO6|oX9dq_YsSp%a5Y85kwYM? zxe8dH$vRxhY;rAOVi$k>>wlD~UH-IXA$+QVR?nK%wbj1S+jKHQECZbDi6BrQBu#jg zj0`>PSO%J+EF_&AI%>1O9a3iL>FN4t6dS+Fbr^U-W)w5{bi`~k2T==)g0W0XV(wXK zqoMpkeOZMOw{kbMtXUPrmG=HQ$RJ(Fi9H-*2;Xat#5p=>KeM zE?()}Fu~K3uMD%YseEaET|*$Jx?pI4>#QT0jboZjKL7bSHp7m#JJwhFWGfNfp9}+a zsYT-TWqHNypK1y{CaqRRaOsIJ1mcWKkA3&Z_-~AIzo!pJH)_xbOMGjN6%*;%_`_l= zau?ZsRFB7!&VI1?pdJ|(Li_l0^HhdmXL0eBl8EW7p-2lZNHhZp)#|W~SNV$H2 zT6DnnjY@dtlNX}u+>5u3?z5-hR`wXRNzAdVVn0$4VjINe9PW!E?@#7&1Z{afETEh& zDl!TWv^rM4EG?|q=GymI9>IZyQi~C8*tP93S;eOqnI%R{IRXk zL;V-myo$5KI3V>H1THZ>#6zAZxrg&qKB1M`I{{Yv8cx79c*1(Wkg}m&$Db-4*LLQ$n8en?{>_-j z#4;F_prW8gH)wzTS+m=kx%im4`0ddO+@M0RS9Kb%?L~>1OTYE9PTnH{;r!{KMON?g zhV_m0F`mP>)z;Ss`U+njhw<)QFWpHmRwY!Q;5*KN^_^qmQ zdEuX4=3=8uuTyJg6qIewBa1gUiEeMIsc`L{zFstOq7hq)vcIgGk30452>mwWXLfsZcY{_=URbIyrjAwK+n6EA zbUJySUtF)w?Tgyhesct*>w2gow1ENadhV-GZ^n+z1yKnm;dtZ!y9cIJEvUg7Cqa~ z>8TGh1M=`D-sDtOGT~5In>`s}XOb4N4Ec5X_+;SKw&v?`E~F8q}?}DvF13|A0P|bffwkCsqEh7Vk!_^+N2j2dA`+xqBu$R*bx(H%u`7=0CLn z8R=r~sC_N8xTt$6?j0^JkdG;@w&*GSqS4AO`i;U|W5!Q}PaL8ssl_VYI zz^Rh0A7bPVL#4volVX{V*URPVk=K2{+=S&VVYpUy8g>yN@C4EGdCcmG`uI4K$vaAG zGc-jdl9w9$Oq$C80>0+NQ|B7EHzN30q(V?ws=~Y|{%=AD%v$E`wGFVW^T6}h|F}pA zq?&e`6`I)}{NFAz>hX2-W^|O8^?zL6?fxV{sJAH`=fo=alHEO@RDfR{L?_doz4$rW zMVZFme09(x_m4y0CXG_T6nP_S@c#>ZoBGYST5DoY&S+?ONttfSn_~ zdc81N{G+d=&+=;o{0?@;doyCs7))`-SS4R6ez{nLqUCJ;4jp>@InL4={Zk({oeJfL zUj0$C#K%Y#(L)bo`z`{n(cCm%jYNgZw9lmj?h zCtL|Cw50g3X?-0-ilu;p`K9VZppE*elqwb)Uzp%T>rCw zdeKT>QTK<4w~}9C=gUg82ir*j?pt{_pDXPfe4u*cQX<0t zY#0xhbVWK7H<;$Tzt3O6?rr}kdTC%LdS$0+r3){*X!Zs-+R&dx9n&;XnuqD)y2+q> zx*W@)K(m7lv+T1b50u(6mg)RIjDM2(mT6hPtoMTqFuH=&XNS8+$@eb3IB;_hR|!(|g|!_&)%|+;ok58D#ZW9= z)YBLA(NE7PL(p>Yh~Gr@VVUq#B@K>Ey~ru1*Rfy1oOnx}AH`V}v>u0Pseqp)c@lUKNCy)*rnvDCe918l#c??IY`{lL6cPC|+@Fg^# zr#W4J*iD~ICcy2?EDBi@BrNv~Yl10$9G5rODlFSI-34 zgh-u1RP<3#W$^5FkO#u;N`#H?I3AV8>_Qo&!ml#$LODie^F*a>$cLz?02!=fB1FA5_6-1V}VWWov%)x;crq_7$EfPzOzp{2=gRV_#n29 z#f+M3iL5w@xROaZQo;3X?6i6IH5!y}(Hq;ZUkKy0&NP3vZlU~Ml$NE}j3+qmC zduy*MPuY9Lj(&V;UNIH64`mQD1fb zzT4PDVA92j zvr9R&>}7cqn3QRV2xRM(-y(f(7iSH7N`Xft8U0pSkjIBiS@MC`1L$nf%Mo4@j__9* zl|B{(2!WPfq81CGStA-kQ5r(oS;)?0WTqKJkwh)_U-i}ws=49V5qot@Uc#nI=D>M~ zjY60U@^sGsBe2G1hdtYD)W&I_9oCWdm-cf%%7Odw+1YvLE@4im{^+7bQSDeX-=9hm z0WL5ge2mUtHWojumH-L<1qi>bStY4WqSbOD(pSe7>(+(#Bi;F(H!e|(I^)vE8(!UA zA_p)vch}9`GC_R5vUA1ZF#vVjdxg!j08fhUFCR1cDAu=$HIF}2gmxtpuQO;gEYdgx zE$d@fS=du-TaqGTx`AvIRHrVy%~Wrh^xSweYd^d2_%|s8FToN2I9YpFyL1&Y`RLE1 z@2ZaA9eIb(gh;7(#yD`|-a&SS=ziIsz*UAF_wL#@!|mfB9eyhsl3vWx@i3<9zjXKblX^ic8l z11~lxuBZ@_mM42B1cH^`CL82dwCM6ckeRI#3G4QV`hDHGCjGs+UHr-A_0(@x{dubGE=`#CjX0&cs&{&6k;+k90 zw#(<$TJ;U-KbO+2V9U3!11)bvE#~R6qBKa-Ln7_MBjv}XzD>$;Z?}<*n@a;JZg_Wu z5QbJ0J2l7j zImQ)vN_gH`y+WS=HDJHx{Pp#;+<4*}R}ps32bZGpiC=QC|4_O+x--6*TO7z=y0q>r zkG@hN@ZeE(zrhZ-*2kZtt8PT<-mvO~rjLq3q^#Iwyx66@zMtQ`No-dOYIln`SIge6 z0y1L6A1f0fFaL}q2xoCZbv=(-4_YduR;`!mEZDkeeJ7~rNr36(LdqCELi2_9g9OPiOtsag6P$mBj z7h?VRp}AIVT!D}y7t`XEOkLG2a#z*N*|6{M-HIbtQRCNR+{*NLF5bwgZ%ve<-cn|h zwJt5B7=6zpYn3He4fnVO6ZO3yBCK(SUhE=X{WnZ$4fhIgjB(}|J>vgKpqIK*7uG5A)(0Awi zzS6&gpfeXYzEttJraPOjE}IY7Pj<~a8P$cybATwO?yW%0II*$3aEF?pYve?`cS?*= z7^pulh4i=$q9tJ$#MLdCzKPg)6J{!#yWq{JsprJpvHA0(GE>UWgG8IJ>{_TX;$9EQ ziC^pM=GB?gI`N)dl>qxr)po}eZT*t8QT}k>~c>VNMqf%=|VS4Xwg+z8mLGj6>?1ibOEeHI#LX(ZNyM(5c zAw`-&WURP|txcc=@;`iykvJ!J%~Jba#)?ABid%$k4^eWghd<9P z!iZnWibB9$mrTL{0=4EVx8X`FhbcwD&k4?Z2MvNy;pu>(jh0o8&{s;fwDS0LJ|vIb z=jX_5rpH&=4m=n#PJB>B{FN|xI8uGDY2f0zj23>m_%!q}(BmHlhFtdQ_LH+tDdu6d z=v^>ASh`v~I|n4EjyML*5YgVdaD~D6=4)dZqV5RBYJSIX^u5gU%%%wd3CdwKk7K#J zW9J!(%Bfvx`zk?nSmXK9D=VZA6{rkH$i+?@?wyVXz#yS zeUt8A)FO(LAUoM%a~x(g50?XsvGaL!iz(g7!Dw_6M7^m=9Stb@6ZW`bI_}g>pg)xJ zHD%s`0QI=Cwxcf#NWDQUyl+E~5S4mHYiPO4;myBR`AZ32ZXEA<#UVAFc71v{GuIam}jl!p{u<>1%1X!qx<>WT-1 zd7?HBghNr%MsFiFXx4TyXC)XlU&b@QQIoJgswT5!-l2S!n5(i)ihF?Z*yC{^|9Jp0 zP||wSP@&C)Q{9(qq__?w1;{yMqm8~XsR4WY@|KL&1Yi)8 z8qo3i;0;xDV5l~NAmH)Au$Iw7Y4gE%Fy|VM)ev{mLc4jq~e|iM4@~l&kHb^*11ki`?{tc7& zGlP-=ed$y|W;+BWggkvXe0XQvn)Gk$zwtkgUxq{)&onxIi9v;yW4AdtZE9lId7rHaFXkG|@N(AGg z!TrMuiP`f66da+<-sOV4R_`k1Jx160;*Q_m*Imsv6UqIhTkhPYU{zQ1s|qnME5M2KBU6r670c~NC|5*Krm*W+@+(6asF ziNp?WW<29Jmjw?C^l_MP=t4Tw(na#kwM#{%@#qHPHkPyux%#6nDjUJ1w~X>I&yx4T z&yCbJ{{1&h{n2;xXwfEAO>%2*sHqWhwm!}&x+@;czukAtXf^kOAb3;X{J{fOnNIVE zA=B8`Svt+i$cY{|(WLKeS?utUujad?`%ygpxG})LLMKl9Fl9Q}WQgIed^iJNpURCW zY_0SuYlF)k;*Of5Mh22iL)JrrK7qP7=Wv!xHpVyWyAU1iySj&KK7jb@0Hbhjq`1O} zoO*MdFh-2Eb$N3$ARMp&dRf}f6AyPl!mQcOFE|IOfgV66sRb0(^Gyk%-pVPRKCb2q z8QA}Gm?!5Qith6#;Jaq^Q$Ijr`!g(pu0O}=d*Fz+&FUEYMKS#7fp!x=d{I|FJ<`045C zs9>+PZC@P2y!Y9H*RG}R>TlgUUVtH82ZY?z6SWB6h5W*TQOo>|^ur^&hSf8K*rlaf ztq1^kE&rxS+u7N9KEEL-Atfa>v8y^eX(g0api;=Y{D^V=jLZ9dn;ie^jmTTB+IBZ{oq_8Q-+eZa%(Q*&JG?_f8nE+3Bc$o%sI={x zu|>WmRPf1CFI*{oy+clJKLfJHMlh(>NIN-O&r#|P>>m;cy_G!1=0VL1!XtE*x(&+=Z)^n z(;pnojiFq3r;=4C0$n(%7X)yEb<5-p&dZt`4j&JBJua8q=I`W~J`K&f-J7?ZRyL+L z>qlRjza4g{V)~EH+0=)V0Qv}Z1yf{K8z3Y70A!qt;b6h`*-Fccg67MD{78VcHl4^< zCggPr0h|?^nq|aAz<)i0J#hdxZ`X!4?{l@=0C@kI06pFT#fg^9G2L;TDKqv0lnWDp zA-djOx@E}B%mj?$SdDRCfZ%LhJ@`{Qo#yp< zy)WJokR+cyepqw0SC5B}Z?M`K?&Rt^Ha)H8+ziwfAS^X(2<$Jh2IERQdmwvCm?H|;+8jm^zByS7KyM?*&w#Xhlxn$@hfi~N9E zq-HNve)Ij^)dl~Ix6Fyf?G1=U@+|r`9WpO19Kpfq)*TM1>r}hh;7~Z2)XACl{q+Y# zje@jF(Hf0C-uxPKlSX&vlbDoci6Pcs0i6cI3l&|3T1(R0+lDWbHo8lKxm3+wrS(zw ztj)Xp8KEnbkG=t+ubQmG;JKTg9*gwC^zDh)SE1IMmN)*PuN3^Ej+v`g5ex9&%iw1B ztQ0JYUww!_I*jw=Io1{GDn)6JAX-lFy(ZX>FESXY7ksnYTd91;MCMTTUZ1JO?gF`= zI`dO?&o|_6pVdcu_!GuO&&ScCvz6Qr)$6f@2TV}bSRW~V1PV5bN~8v&WwEb0Wm32=MyFR~(xi%xGL*7PbD$eTFOOZYBJP zI%yxeEMwmn>ZGY(Z>uPscoeP>a!u2*s=Dy|JhWT7BUt1o@oQQ$N?5M?)4-!1pG=(n z#HB@lY4FwcE2#h8LxEsJexEzR#5wZs&0fR=oYic$3Int=OV<}i01E^|V*#G}0I#o^ z*<*m#1SeqY;O6Frx^W0dSO6^s4^Hr>cYVqJIQ9Fs`IwyK;xS+ekA05>XB~xr%f<*C zR6l|kdMsqGtGOi;aPG1UYXF_ft&49_0T~JpqxXOd#MpSO$jirPZf>5QmGuD-kHp2r z^Mk}9&$`JYKgs4?^fg~g!Estm3;X&C0XR0307+LfB6wjWvKDkT_NjQJSbGB8Dx0%& zwC_gatRc_LSx{=QYVqh*ePLlZIP;Nc1e|ui3#%2C*sg|d3NF;$E3ZI~kSDfba?L%u zp%6GbvHvD**o>h13dLK7{Cp8z$BHFK6s)VLSrU>*i6Ub{&)66ODsd_ue&R4;xT3C@ zT>LbFu;8hM1kqJzOUXQeB5MAo8~iOtDYZIjcT!>oY~WdbO_a-VVe|QCR*d1^%QU|i z&paWGdnpZv;-?|eC*T)V%`Tdz5C_K3#4UL;Kt>_sls0%KvGf|G0aOU~@jcS}OT! z{9|vvFl`NTOzU^JTR)sWhXUu?EB=$h-1UA|-cKt(i(bLSB`>}4F1WgqmCMLs&!Nn% z`mw<}#ww+J35kSdCHxH!6zz_uTUdy%(7Cwl^pE&Cty1OYT4&};)98S*TWL5NTrH~K zGuRr*4d*&c+4l;*r(3UJru}R|B3Ucz zWAs#>OB}FV03LR?r7@m~d2%&qN%;2sf8xkmEro}_DzDpFSKVZo9+CH{xy1Od*_rDY ze)Z`zocdm12-S3pAs1P%7E0wWEio(e9Vfy?Y{~A8eS0ZeQf4;D$oyIM#fBK&AOfze zEE<$^phjqXy7dzMnpCRDozK(vaR1oK7ugSl(D@HKgfe&E_o>|sE|HGT>NpF5xL~<( zx02P_p3wT-U^dE{<0Hi$!i!`XMy3Bp)?YwH)wTcQ@BlZUQU)!dqM&qlsDK!h(%s!X zG>CwJfQWPnC?MTAv~&qbcMd&tGyM1Axxef7{k^jm>e3PBoU`|}ulU5hNPC;E?>7v& zTyMB0C_YfRku+Wo@PkfN;0?N;gKIA3-aMKl3YkO^fWHV^0LSTL(r(co(3>ao01R^6nD zWE$@jm_9b49c2G@OxHh3O8;)1PBfa1_ltg|wC#TX*h>`0KTjgt1gn6I0c|T0) zTiB6CyO%m|ssq=8x`87gZfCGLt}voCd%U1sq>l|1Y%enh2cKsTK@ysfsI?Kwoo7Nw zNp_iMXm5K>+S3~~TI2`mhC^SF@-`%$#y~Qgdst$B&Vd+)vN41*jl=Fy86q9bbN>zv zpe22zCK^y;hscOQtlp258%#*Fyfa1~tG4Ojl|WX|c0Y!XAD(+2RJHSGkvF?6RnDE7mkFJ?;S@FtF+9qD*%8^*(@46{RH1ddi zdM0RrAFP<*X|nR-*FBzjA+ztZL+Ula)zC?wVW1Qf-wIE#g z+6_5@{<`$w;^NS{bX_<``7wJs9Ga z8OK2xNI=k~c3o@IW3Oj%&sFraKYUKpuM4+iuTwK{9K=a0 zPipI=++{>h;PWaPvPL=GUcxy8`OZRZeO^2S6KR7lS&x=8TjbBEy<7obN6dw4r2TdyA^QPX?LM__GwzhmRFzVXln|H2Lo++XJ^zjunl4$z7aJw-QIpJT=euY zaLDoy^=@hdO*QsSrvxi4g>ad^=8eAQoe2^2nK=p-?zv&GF;Ni?ZU|&-LwPqxB|5)6 zZ{f)OybnnN%n<%vw8E{R$yp8-Z4`O$y3&I7zvV@*dW!c39X`XEnta83hPKlc8OO+u zPe&`I z-`P4pr%y^z&g(C_pOi>L*h9)xD@zk7E@(H2&ir7LNxes<>?5Lvbtd%+zlQ9*w7{xC zB{w;KzZGsdB!*E4U%~7}Ray5AAHOgn$MLm2`Tb*wV@D-xcnwe0h-v!0LU}cFgS_0A zslEdMUiogIM$JRu1-pSAIQlYvR5w^cIM9d!z*e%XZrl!rpUg$O2aTOo&SxkI7cM2M zI3>;oJOWMC-r^%IVDkf1QbCcabsfcGYN@aFF7Z%wwRPNG8lTXX~w|eOcJ0*BDe-T zvzZ|#AN1mq2Gm>pkoO7=25wKtt(j8l^zlvto_dbKjEcR#4v%BrulHNs+ny|_fw!TO z1KWg7o*hXT^}o!Dvj?RkyziwMRWe`6l&4vqvu}TH&2+h1w!f@}ikQXSQw$g=DH+I! zvDxtjryY5yV>BgE`BsSYSt4>F1Z|t$iu;bhskTR0fKiUxVY!B>$YomOOdWWXRP3Kt zqg0xChH@5aBc$_&)nAF4ME3OF78YrIogb%2(B7R9bA#v;f@RI#hrM#=hE}2sJQ4LG1DH= z9sX3?rK5`+wX>gx^EPheG%q;^QhwP%Jzg;X*QcWZ$BE`brhyqt|0ztgz9T+Fy=r@n z5WN+MYHDn~qj?^GsH3CPcT{&&8+?SCs)>QR1t5Dn#|8LLqb|~EFv>_i{PwuJZrH)9 z-h@(wD1Y!octrr;aZF;F$uuqSMyP0W0yDo0j>41&qz#tS(wg^Xg;gR1OP|7%qEtGbc`+;NA?)m&be( z6J*63r!E6_J4)ok9k`?*Kp1YF_%WQ?g9@l zKHn_7ahxRA)QYi&K!7h+nS?9DJ{VSGM3fZetT?5fg>n1 zdR13tZ0%=>`4A&eh29xB0tOvjW@81=7%*{y*I)j7k8~y9n%h@M)vg+NUB@*NvOF*;4uNFkuS6WnMhlU<;3KN?Yi_*!5?I@uZd)PryF95XH34xgL-p zsYAkJS~mf9Y4c5`UcX=pZN1V-=}X3#dr@+j)<*pbsd^`rtY@Q_Z6H5I>~3S>BTBK_ z?8s4~O?xvZlx&xaGir`Q1k97?q#koCPsTE#PkTnyrgxSu1>43J&aE#t7{3q+njWZR z`QxTOLZ6wUR~;pDfk6ZokW(lIfHVzK6%rPAWE{! zRMUQno|6cHkim|8KkSZRKJtkFoV-{~VJxz##|ATa5$ z(sDn*ZIa2cw?2*9+w@dQ%(FwZAuo6OwzCvV%)G3=g9&h2v1#Fx;ME+D8|gKwEX3J?l7s%j zMTvJElk&7KY|X!M=Xk3I)qljZzNAy0KG!A`-lYq(z98|JrW8s^H#t*)N)ad| z+4snFPdHKp{3Ja9aguYeT#7KJH6dSve*rzMuUa~-6F9S*Qts3-2`Us`t*J(T6_-K} zPlYGKSE1FOwdB(iy|+R-Mj7pQ|5I$^l&NE3WSDmMbZ1g9|p7md(cCE|Od zip{Pn&f5##6EcEv$e$^+%i|i+as|xl_nFuD2|GkxH0E5nj<}RugmIq!LDH=qC?z5J zty}&azLXiVA_N_oa^2L$hpkEtwNeqy+OqRM&IfzOaTByD z_@%soE)_Su(L7mp?XV`3?2c!6qdV*j^!B*0Ozq$66n~ z%yYLv{>Nj$bKoo945z)HQi4&rVijUMDV9vlknG^CVop$&JY4oK0)v&tffF+mDt-S; z;s=Q{G+mS8?Dg{m{yfi+zh{HAwKcubldJlbGVwO4m3@wjwpX)$vd5@Z`01ZMqC2&V z{8ZIn+^#|H1pIOjP z?>FKQGk!$-ss6WcI=S;iFk5)d$`Pj3?qE4_hic;RAK!5tLDt%M|Ad*>m6B0SAP`S~ zbQX3dhK2VTUPSGgOwJ^1u!K(hORtS^_}Z43%dBp@ApmrVg&qXdFp4+z1g&3_?o~<@ zW2jIXb*7coRci7ea}empL8IdTu=LVgJk0T|<*DJP4@y6bw-e`t1u)aTh$CGA=OYZi z`Q9i$MLS|XpoMB&=s9n~@@%=_u;#=Yt4e#G?&G4=0saBelJ~1040i6=u*~pm<>yV) z-dhAlu(9&CH}D_f!c2eOHWf)?PMNWK>%HXk$%XcZ#X6h7>7NC|);3$Jz*Nr~it&mB zvdg~u-}Y!p=DIaEN|hv?Lmtp!jc{l_lnVdaN~T>=xRIC+Fc^6MJsBfuD{-AHPKCwL zzn)9RthBakQaP9I@yF9NZtR2((#bOqh5SFsj7s<+ZWixV(H&2hu~oW}3^SbG+6)_cuMF)8#JSqo;&yEfb!zzUe#6Tp2?X&n+vDvsJ%849Wjyj83c4K73MU zGgDWk{r)4OQ8NAQ`1ts;8^tb8G=TA(@mYtQMEk!b&1KXHx=@`bhehl4gP3#mwCux* zyF0ezU8SIe=IxbYE>v4&bdUjU%8Xq#4{h4FHnATI!Vm^nvpiiYxzYr!uxmVWMDY0N z#^nl@`Dt$v2~mTAvYg~`J{6!sz=Qv^vW#$0Lp1hAq}2++Hx{a&{5B6GAE@Pi5!ApQ z@Rg7=oAkg5kYtFZVcX-?>P5)JLr{tv;({i8FD@H-y3&a53t-zTXuCdN#(5HQn@ z$rC5R!g$hq>>#A_$lD0Uzb}myA%7BV>0I};*qhkrrIf)?84Z&%o)w`#ld=%@N?6hMJS5ChfC}I z+4Kx^oNZG2Oj6~hS)S&U61e@nns-=ML_{MGRHAIyQY!ZL8O|_PK6Z;){VUZWFeR+e zOMtWjiZwqa{=*{D+tiTo?~RUDs_031zHQxm!aOM6*lR#Gz(o^7Mb%tH4SU|hrBNH0 zE-E9h zef=M;JrPfM8632S-Oq6!K$-;5!UV63I3S}^wig=uOYe z_a&AO8Qd_o)kW9d4>2VqcSv`MuUF%lX}R2A-=j_SKH3AxMf@~b^8FNhzx1Mf@n6-1 z{U_&Z;YB-oYP)r>4F zcc3Nm_FtW$2!|LDCI7~X#{;amT1|t*`bidFldkzcDXR>U?=3~2P4~*x=nL_%D^ubo z7%QWgM+H9F5?SRi>j&Ol5oCXX48u^?`7LaveLf1Xb>sbtc1cq^9k7-2_8@;rmgetH z!-ZMkjDGSb*!Qi|)>zX%+zfnVt97=F&t26dQWat{DCiL?z#ih9zRp_%BcRZn-b|+p z|L%!ndSTz+RJ6Vz;edU=Bj7AHh4s`y>MM568dLA)Rp4*>cQ3V9bu~0_OIxDs(P1xsh%+bvA`U@j5*{X}%(?kdnaGC*uzG9=qzXTEV#rTCVNaxF?iD#3 zFHX7EwVr?rxdko^ zVJC9g#cEG+w+-eO~EZzx^~vV%D+Qywo-q!Lo z_GT7htf^9rc z200fO08UjN>0IZl7$|iU>9OGb?J?atqUrRf7YUzppV94Mp?xT?Awb0pPJ_aWTNOZG z*`x@ay@v6dZb1se^ak(k-K^J@iLt=ur*7MyEpfo=aO2Q+-#?D_RXol1al`JYs%RmC zkS4`<)o%NkN?4S=mXM~vJ!J_iyzjp1dg8zVl(Dr}H5$0Jj|=QxwXpshWDbI9MW2xW zyRvLboe#c??4rP`(_W4N|KVAt2rJJ@fMlKznGQF`ok#OBu`ZB!euTAOD#*Q6+ zwaGW^^f7_J3fJ}ZF=&tcmbuOJ zrMHOD9TEbM;A8A!#{lc<=W~u%NpgZQyTcWULJsAwm)6~43{eJQ&8VY{uVisNq2p2Os=J-g1)H@=p#wvlzWhj$ z)e9n&30PlHmIxQW6|bCvQl{1_@s(FtXLk4P7cbByyYY!yGioaQ5DG{W7|^ed`|bAqPGXF2Q2M zG2THD-Z6M>;)dJK`MNiVV~grr!S+AcoDNRpQ0`(Mut(gdA$QL5@B!CfRe*G&bl146 zaAnG{V8FBT&koIL$pDbt_5{chlnqBsZK+P?JzP8ZaP8QaGo1iU$X$Q1@!2Rbd1E{r{<(Mq47y)M|X%K$H6A(jY80;8jvzUa!FC4JHwK z9`3Lt2U;@gpEpTmDlr1b3pI)yI@WM{YYP2AyVPMZ>aDZQI)gAj1;Es*fOZ8B4O6HI zUI-0!3W(hj*?pT7D9i>M>?}OR0?X4Eq}JAtCOxP@O-LvdV+2}PSnk@oU}YId5zg`x z!s3cau(B1l-ITGE-kjKG6X9EJ@q`@itELCmIh5ZyD+nY3NWk z0_c{8G^T=-TbzKA;7aGZ)lWyfYt6J3VxuX%e%@Tv!T3EyQB6@6LWAglK~TB)QHYnb z7)2XxyWeJd20gcxZ0hW9_lK>c^2r&)kMr=-nYE`HP#znYloL$_6XRFmeo{~7gCzC; zlW(;)5}Ynk@tso~NRq#n!C^)EYjhw3S7jVytltoPifZ*;j`Qu-6qRA*!hCA=z1Hz; zLd=oIz5Hl_e|z>ws7kNLP@}`#Y9%~bLUsRTk&&AMyTs^vj$nn!WM0z{>1KmG|IUY4 zZCaU}kwFl=VR566q5HM6L`LCdM6^@aar8za$}yLJw^mo#{}633&4@b21h> za$rBO!7k2LFHu<)N>+C%M}Vsi_&L4kF3B27Yr=kjnfjcBBoS<0r&Z z`SW)0=4@U?{vu07UIX`mP!$OI9}{CiHiO-kyb$#k! zDIw;hh2HR3xO1Ya@h3`emJW1Bp=lM+o05?GIllO(a0TK2mbFq}bi&*7Q!*V#IT2C+ zHTZkc_eRe%?}W92)Pbqu2^&9eTd)I}M0N$2++u5x(WJbkyW_K=s&{eq8P@7ur_z>R zBgD_h$7VXfE`1SBcJ5OCItv+1hlH*;v_~Pva;gcU? zCg_BG0^l=R_2dw68q02sc(!6&< z=2r!Z0F6N!K`lrL|H4>HbKP3&9@`46d8_lGasTBidgF;eyih&99Cz zYyUsk{c-n)f6`|MW0p!1lZq&v^Eg4>BhG2+dmZJf+< zGM;M{rE>*&CWy0ZbhwArd8;K9r!FFG)rB2zt}9);31U}(iI?*=STnn97Pe>gXXAT3 zuq^CaM4jct-1hXXL(6r8qY}@3r_h+Bkx@$H9!VC<(aGMDa9SgXnep^Xgzv+u+#ZBv z86ZRhc}&Uk;Z0j=c}QQaHgtSh;)2|why)G;}vFeBY8&YjYj=P6ov)Ju5%;e8ASZoF5oSU=$T zK7VuLt46##+t<6+T}$P)rL{j|U>DC)Z$^I>F$_=YDO&gymh>x{x#J7MG=(CRJO1Dt zO>Xv3lFL9SdSUazLwI*~9r*VqqbQ!}3Ga!f^vweSM-c(W5FEO*5`)Vc^;G5VC-Y5A zcU`y8q%U3!Ae`De%T$z!Cl}B!mqS*X%f8L<2~+6jvB~=q&o%&=ImQqgG2R%ViE`0D zL%pWnM5(>J8#I00Rk94|>K89g-N;wPBs}_LgL9Vc>t>#pOf*o?ieRV!s@^V|f}j8S zSppV}n}sPIk#Stuw~Fs#Y=i!J1P;j(rdx0Ni_^oY*=P+%astWkCaINm=yPQ0s5Z?H zDFKwVq*5N4&sOdI@_INdbD}l1S8uY#IX>pAy!z@~09&r^&RX`-nf=w{;MOlOY)S*? zDoF=m}Jny`Gz^5gV`K;fB5<48U|rlg#~tO zdg02Mepapjua(Ej34X`6v5F658EF!B<)|DGw|(@;Rdadu=k96eU=YSS=rYuJT^NvR zIdJhFb3Q7+V@0%$2Ds5m;otIWm`uZbJa`9 z!P4Qq$TkjZyvkNJe-x&w{E$H=|+R%TE%gKKH zl>N)~5I0RDeoHQK&t!ceWWoOKgw^NQ&0PiI_Ps1s6(c-UyoIP<-&hR);BID4=KV*SzigK6asCV&vs0wJtdfe{=Fpm$Kad zVF8+LJAWYwb>r!4ZE9tEvhifMA!b{5z65j2A(9J~iul1wnwKw{hTJ45Gij5l%UCGp z6Sz3o3NLinyYFlz`clQ>^G^3J_t1eTX+gez#~R}r=~rolQdbwdZhuvj#B;k1S*8(m z=A+y*d6Cw+PzV6pcK>cODUwnbEPwQ!Sbjj>Rq9!={Z*eQSCOP|uEExY zUe_#M0+$m**2O6QX~rw~;yswJOWC)SY=O@WDBkOm1kR|i-_<24CvUn;x`pBkO_A`s zr}i9pwSxg-ULM&-qU1LzwEt+zaMmI(P2@n%)nR zA)76Vl_qsDw>w(6WvbQRZ%lf8OiBP{z&%cbuonH_g;^gSS!AnKTN4^7N$HGv_6tO9 z*x=c%rxc`BPYd1Exavt^fQA%sxp~O;AIgvNPNYP+Qur&%$kMo<-0I7W7~e7~!?2pC z_CpVEuWd3UwRgLybmND-NV|CW#o*~&;fk#bEz^3W@XT^kq1tgzeO-sj<<@OW=dMy$ ztq7pHem?YEA)}))Lb|=IF{WmI^+Uuj_U0XFk^#!HZ{9ke4v*voFE=bs|;Tp1#bHvmwqRc&?ji?oSm0%{=9EapNOK`;cL~I!Ud#CrFkhWk$LIKr7ZgyUS zuqnMCJGr;PN-%CYr9?bx8)o%d9XD6jly~?wX95L<2s$G!fP#r!UA#UW)c$w0Xyul< zy)1Fp&ET~yapzQAp=n-4avrWu>n}r{wyh02NO)L$fkX%c^W=SOMn^juBiqxAl!a0M z=E@lD+|QXZ+a;Nh44KVqCfWX{RI;xV^ARI<_ioe2^=e9`%0H0?jh8G|W!3!)c2saU z2lz@_u>ub@@oTj+k)5v1vPj?jp2c?bvUeYs(vdA+ks`j&^3y%LiIl|Z0kcTYn!wSW z0Ssq^$LHrs;`NEJKVr`AOyj%@ z!A3kpX?0EqV(e+^0owQk;Go(A2=0cNPXU8M2;LISswH@LLU_q?syZscrY;URMlKYi z=e(>L@M;MkWY(+DqT0hoG{@k-`X=t0cZDT*$dpvl2}J!+pl1;}9X;v1KRxO3Il|VX zmC7b4a%tUMwK_k3xy2~^9B{)PJjkS~;ko0-B@@YQmb>!eQH0B1!4IsRcMDOH1o-o- zK!|yVci#!!vHi?Og<;81J%CK92j3{*#i2=?m(5n8DO^X#S<^|GWQ6&K?M(f~y||YS zGepkYEj9&h?D&K)0w~@Xk6+_CzM+D*NtuivGEAFayaKOL_7S)d(#c%8QQT!)MW54f zaad7r1Q0>Fszvj$Bcf5+54x9~ns@3CT`nhY2*g_quHSngWx!2^%!?tylz*!seKGb( z>U{Fh*4=q>Lk0A0qou!_jZL?O#SrZd57WE|G{KR;TC$GL&oe$brKId*Tq1T0xpJuC z^fNl=GH+KTOUmMAd=U9xifbkBd{Ckd=(BZI3p>-pbw!4>@`wZo`&AeyYuGx`$1*YHVs5*Nswoh+pOQ}5M z8iAP;-62iNVqPn)e(a<|oXC_JlO*I~e|d4V2Qi8O*DnOLX{>7xl!0w7;n^f`thMnz z(*Wkmfioy1(Orcb*F0^dyrK# zu;8p*iq?qbG9hHE-M=j-dh#&k^iSsY*#+e6`1R}8ZNPwX8&9SMysPY-oT{DHyLS9k zQjU4yB8TL_1)3g^JAkG4SARURFS41g+l{yYJ+C*7aJ3vQ#0Y6=0v`+d%PQbn4F`Nh z0oz#^fD+&V?7r|`H`mvg7>7X_J`!P_{B>DC7daiNH@-w)XadjcT%CG!p_reeV9&+T zjGTo96CEAhU~hy)?dC+q9w3En0~|-2qq8%_HFa}$Cvs<*nwlE)vi3iWLYZWb+`n8e zG-xCA0%SdhIe)TZ&ok%OZ{9$rnRbFnT!(A+RjMV%GQBfBQ#CFQGoD9!6%&wMHDp7) zy0$hCrVi<4Wl=z)hcu-RkX9xer)%9^7bB$jQHZ@t02#(Z*99j^YrAJh8VV~cd2UL@ zhcn)rrdfkE7&&lcn)dFDCMW)qz9TqIVc7Nt7rx++CGot7!U2;6tg*OjAEOiB@ufnE z?MGt$BG3ZNP|z((X_)$$n8+LmDCz%uncTh;`5~?o?fQ`8hEI?FquK6%xC!vhJr7{` zNBA&Zr!l)@VXk4k7a-`q3AWfv=9-KH)_mkR)8m}@&9ebQF?uB?qSeP2a?TvTxt=4p zfe7!d^3(#>-T6Y|x{&i(xN7ORMh;tdA3MYx0|uW+2*xBSDY*fF$wJ^lKPI~akSM@& z_CXY1KvsJpBSQeJ*~iDbQK!vBV)zXJK#c(rDUJaz>8mF?r=Tu)WF4|zp0sPDhJk08 z4EZ&K^?L3l27Jfo+5lUkbT8ofeb%bQ+q_oezj#J89VFZ@x=lozGh`AVRvKggUUi8+ z!+_T13IK_6rJUe{&RQqVQPS@8;}a3Yr_D^vMbD{L=Hr0p`ba;9Je_rCbV=X~XAA9TwGXT7pTSt%CAE z3LyZmPvSuYU3D}RM>d&e`Vm5FQy?p*2Poaw`(ef<$b$2Qqqoq$}X+<{;cGzL)`E$KMP}gtW zpyds}% zY%o5B9@K8~(bNbC9z6&2PVwDz_IbRL=;IRKPY4{<}?M20{myi?#*Y;AM42;@PA_EC{$mwVN+=DwgIF$u}s z(V2kbiaal~pq{SoY+-!@q(`7y=OLhTHa?Oea+Hx^JiPYwAm3x_Rn(9c=F;R$EZ-}AsJEOK^&{wk(4pjQB0L;xpkO&Hw4LP zr|97P@%tHL9@vUie@#SUV;{Bx6_icu2Mbm!U0Q=oj=U#GJ!%{}BhGm8#z;D5%0wX7 zy-XPL;*dx;gOhfeWF$&X$e4UPh%LF<1?3iI%H83c8Spr6J>71r+d*cChBC3ZZvc}k zRp?Iyb>G1dSt1kX5Lw+e_E!C+SKZ|W$^oz-Z4ZW2`Z}wnC~3f@JtD^+0L)8UZSXAo z{QN#VzkiPI@OCk`umFTRKoZVX2E3R=U3PxD$ATK*=m&&NKzDwttn4h&2X>sHuC5PU zSd{MZiT1D%#fnq=#~0}zn)TM!P0%h!w)F`B7fy@b4m{s55nDK%ut6S-=(KG*W5vmD zY*x(lLL{2c()4j$CcS5FS`XUN3WS=bH!q-WMrJm8CHq-9jz-A>_9HxFCmZ{De4-Zk zh5v=6dw#;jW-3KnhzDVGicYft+3@euO8g~pXmqkDZB!!NItyCB4=ds-V*e#Aw^Q^q zv;%7m^2i~ft{GrcHS>`!@x)Y*TOc^o-Wa=2*Ra^!qz-sYhShD1s_1ZB?Vj+9%tsQD z*So*JI`+NBBWu%WVM;_~)D~LTWVKTB+-l4&Nxi)D?eRcNorGYLv8ClF&~4rUwDP4S zjd$;wpeO=Zu!J?%3JQ0`E>`7S=YtsFr>mJJRH)U})PjO=kgiR50IqFXadGji8xIf9 zq}zJl6;&4;KM0UqSdJC@S2-Yy0X!akl5!dM@?jGIv5G*M+j4J``*DcabA^JM^73e= z0>l@gtxCTU9q%N-ZMU6m@O|H>gMf1|Dd*1S=v**DM#S#++ z2E9l>@0mF#0Li39FFSJ1ix0At-!<_*GyynImRzlx=mPJH^}%Fsh=LCUJmdfte{Gaa ze$jJ(SKMkW0lT-J-n(VRLp=aYT`GEdCg;b_Y^o5Kw|9tbtOS1b)m21Y?u;?Gt}xVO zU`uYwGIfpg%_(?S#a|w#6WLuLqx%sO&)!0nlR$}DXa~8bU>+pgKMWysXN3C`{?BJ9 zvQ4PAU~j`$9tvfJHPpIkPoDxC@TFe5kR^8%tqbi4?i2_iWaa;I%crd^b9rp6B0 z=laD}S)7Mi>qJbLfG!TAWp-i;#*A2fp6HuK;b5L{fjB+|dGGV@QZm_tlA5+}(Zjj* zVA~pK7-)_6nTAc8t7Tre>ij6Q=SIue)2tagyOx=zzk04%kTj_9bk`TCy zpFVwpNH|da6`zm*cw~VDGOhX?0fB*bHB-OzIRM!JB@Y-qj8Xa^DFO@~u&WLZ4xk%c zUe4Ru)dlt%cpKoEsshp&q>X|{$_&mzc@>p5kji&A`r#IhS!%j2MS*vLC!Gu zo7nNoZDx`^wJ0emi`(cTt^rn~Ex$DQfPgE@pVW&$Cb><4<7yJV5DHFGkn{x%nJ*cN-$jNoVXCGTBuNdhAiU;Br&qGfR54J3rBnre^YmcTwz<2E7n=u5s8s|$oXrsd;t2J#b->1_vJq*e4_nv2m zZxs~8U%k2xc)p{X&eDV5e?GZ$%*MoI08+3qWOv5cIV!wevH#_JT(qmuPs8}9{t4md zNF%9(vjk3sb5msatGFkMvSPJ#3`5;+vL9ef*Hy|4W=;H8>h@i*MLIIh1TI>yJeng>DP1B8+0C z1_u8p7zZ#sYxAW%mKJrBSqSt0+Y&=-6%=Un-?tP1Oj{u5RXS&Izt~N>W zam(&5qv*lXo~q|qxA_lx+jWC_edahrHCK`u!OLC5NIa*)`_*IFjI}4j|g$@9~9^+rw85np6-A#x%dT^1 z<>d3R37F==>Z4qt&dxNeRNlJk9X42{7uxB3XRM<4lxFF8Wr|ks3=bE+S!Ipm_QIH| zAc;(O=to(id%tF|N7$W0aVQ)B#ms_3;qC%w6TwT5%VL{%8p0(BLG2Vln-0 z$(T)ld)&~t&yEf!xr07om(7WqIp3C9Bl{;SJIO2X*!N{@k>PD0`pa$+xgjn@iUcF! z)4YNru=DpoCF=`Lx&^yHx;uYBUA+OA1R#|xw;XE%vqo3IMw>=iVFu2uuR2dhhH3|X zqI0DVGueC(-6dviL@bo$LbP*HYvipsE8}s)t_5ls{}gZU#nX$o1^t|VzEJlOb*JRz zb=YwVChAVKT5G%Khiuh?gRTonT(mYIsI1KyGw{0a`sh{3*#5Jv$#CdGQP309<$?X~ zUy!MwOodp(CgCE-+gL)N2_4tiH6I~;wpxlM_$4Vf*`AqvjA&u~9|RYZ59asQ+n){s zF}8UW7pEf4;vEB;N6mA)FJF>a1{|w?@jlZ5aw;}#O>^=1api#l#S1t#-)76411Cxr z)V&QFtL&G57O+tbyB^O4x~`-KUc>R@=H}ksACy}-aGS}Tl5wf5O}0jgjDfu1@xCAe z=san99tzN0>~fhMhGJOkl zs(4S{+|aggsiYIiKcLmBQHiLo7Q6z}fM#Uk?O_0qi|4TjTNhBy*X#ggbNIS|L|C8- zjWt#SJN~fd)N%4Kq}wh(k1xOcPW9CAHYK?MSPHyi{Q~Jdh#qUb#^4*hHKk#o;aoV* z%wYQOFhVqk_Bbx=Q_331{JG+1Yz8N^iNWZf_DP81Av({#fXek$)br(} z@;hjp#KXS-(Z`2FZOc*b!cVy&EzW|AMN~(PF=H73O`;f ze#kg8sd>l+c7f9aX7dWcEarFx+k7a=wGtZW@ZK7N>@FKgn-4 zSH*@X>o#&&@qFmy^eOMaIc6zm0A^T18=e zGg?XNC|rTxbt}lkOc;vW(`-)igsCPu2WMlt9&z6yEu+M7(x!zeIfPVQFd=uE-FYKr z0fR}bHZ1*5=d3ER&kGy$0qnVfAATFxh&X7s35R+k?9kg)xKFdi3^MeN`8dA0uATC}_Ddk^tkggERU zgp+F@2@O#Q=}5G%-eS@SO=n`xG_p-E>HIe;*MX_>G`a+SJTpUoOK#5(Wl8T86*Oe> zdnKg``IBD#H`X7b!Lai{wBP_RrN9}2ub}I0C>MIA^%Y$WbDuL z*T0$>i{mW`jQ^HXBrQ|7{Q5`n*4$0^*5(_{bRype;@EnyBpn=*8E7aU(NJPHsHD_m zUo@zGO&ulwZ1(KZnzquKCa^kS?9_wr!jtZUm%!@|h7eQ1;KCJ68}Y^}Xi=9uiIOf^ z3L=Do8Edpo;@QQ3-Ux?6=|376v1GA<&1`ph;Uu}`yX;tRPsPjPxfBB!&RXcYO7`xJwgEl;qFreh5*QRb% zR;^lApAy{)Cg>Nk|5y}pF=l{aW7WI&;po7)Z93pwufKfOP^iy%rh9ldK+kqBC0Cc9 zIDPZv*_R0J# zId5cPU+i!T6C12MXd(9DxQ%ryr3QDDBt~?`UVdxxeD8cU9ehAa-<?`Gwfz6NQ*5%~2g;7cxq&M}wsCw@C>W z^GVIi)QG)FjHjpQndeOC#y%A_HpD zenfa@l%?`P{-OWbj2OlT6`GE77m?!tbC>xcA2wbF(1ylpK@XK#U@o~uP?=1x(KBl&kK;F zPSK(uvLMem0(TmRlkb?BS&g0POlYvB z?Te*negYYdbtdYm;W&p&QPNP%P|;R1f#M(HeEt7<)}h#PB*E;O@Go&&deP|s(KsBe zZ6O4I?xC4OcWH;IH$C%O{{DhXG8{JRWljV z98+(ElrZYAYSGp#Kc_V+4aDIHCcsR2oVNH3_q%RaiIyt9Ujo{&rLm#i)GOaII-PwlqAq*z6V*K*CKla{nw5{djjEWp%Vs?M;4bN~A9Gk2-L7%(r( zpreBEIL4-~8_XcPqdC=nsIR72egW)A%smgRd zp+jDfq`q;7?+W(>0`3VV)j!`RHycs5^ES@AW8iT2tM~FR>VH@uJQUPpy>!~goXYjp z>~hTk=doQ3nda4r$SXm2yLnXXWBCV{|=F0;#F>P@>t{ecNN~Pi4oIa z9^bvAUlZfzO@~WZ*JLaFDd^QJ&_7K*>?q8t|H+Bc9tXWY%7C{(uZKBmvEd~-SZ>7| z3j}y?jwijf+KAAnB>Mdi*@TCCUmAY8*sE^vaZ@4znMuS^M|7JIkld^*6uumHRkdm( zeK|Rn@{?IzOHsz(+Uv<eKoc|T zzEgQ8A~NQ$lkhv9O5_cBb+z zbDD^gg+AKb%ZH}PoEl$(xD#kCa2r;Oiq>{d4b)Lj7hzZiaoKBKoiWsVXjv6;&$r1J zT6h}Cs}JI0EyY)D$5fp4%mYZj!A*{85w4`r(>>%oKiA!Jxa1Cm!V$? z4Z~z-`&^&>xMBJ?SdMJ+ybJKXu^;ChIt56b`imP_xb8uvZmVb|ETzkmqS-s&mG=ek-6akS`Lb_ABySuwv8Y$`S?k?$;?(Xg`>AQ~4 z`+e_o?`6OlLx&vq*?X@4nzep2GGt4|y^uqMFdR1WCL#ayFoW`KN53?s&E`C4v6N1( zs~T`?vKe~ea?r=|UDMwV{iNd&w&J+C`#6dbzL@%BPB*@D5ct{WHRs{w&3rdT=eYB| z5k{f#rE!TF>n6QD(tdA93@JstZ7yxUb@Ni+9`03yn7A*mFd3VQiz)4Y7D>y0*82$! z7=qp_f*JeC3WPELdzc4ArkS5V2c7h$5AH}D9v;~tw7;Fbf`&+PMjz< z%reW9rSJ5PZhSHVavM)}c9>z>@PZAGoq}0Xv2y+(tz&19rKCJN_D0-p*uEs{JTH2j}VObv%1c)!XB5vq`_!5Q9=MjSmyoe z;QZ{{{t#T(hlVq)Jfd4a+LZ}Ccf(fWz#J_E?4Jpuu z_+8JTn22^zyAMWdeDQ{<9b|dIlj0J4PaX0%MiCwRQZfbE(Ibs^OsUK~?=L39!NFSV zxxFmih#NFK*euvkkENsZc2;_S&30)sywBILU_X&R{TcO4Ii~RQ?m9OS88q$jP z(v@m1SI>S4+EFhR0DH|zJ$WD!qWzlfpC?|G1D&{R%KCt0es%FgLjj@TV#D#O+`ggQ zz-P{DD6Co3MZke{PR>9rwQ%{u){jLn?h}Ps?Zcj}cS_+#)mD8#Xx5*TC9{oo2C8+? z4@gn#o9FP;!&J(^+g(Co%hup#?7wa&NBJ4KxA&%qb^*ThMds z&|G({-IQoG;(&N>^HuGg?~6oNwTYms(!Yzy$|+&em;L{#wkT@nVZme@YACcYZ9J=n z&1j53=g5C4Y5>kIsJ z(s?CYrFtjzmAYHcq6q80&9Zgzp|pnCb}(KVbl8PH8ZiLDVt<&)nugGpr~)HgH)uG% z?YY9obTL^hEUYWi$A!UYx9alYlkTBYPB{Q!bpsF4+aY!}sht%b21*@}34;sxyJse* zWy@j6f(`RuA$_3&Sx7(tEEX1{b>#ux9!*j4t2AxdLA1*tf;)nYI^I zF;9Nt1;07yV_lk(iL)nwtVmSLN<>iqw8!T(ws^;4hV&Nn?_-1hpS@=TSiY@M43t`8 zNiphoYq%ZSpT2U8eY1D=e>|^}jg-ekR}lvvgeV2-*QhhS=9Kjc&DQlHPbCO&ARAQn zGJjV3t`w%E-MQa584i%Af<<3B>~ERVj$;n6tKnH#T_eIXKJo-B6#mcW>Y?ZYo6pWu zTE0P*|2;S+C`X9?F-$Bh;D={a96^4tm?_UAn8^#eCVk7Z8raGSz{+(xjxtf88y^W| z!hd?funEri6kzO9t5AZJ1&W7MOaf|7{qj5re~1sQTn2k=)jm`DdTJ->`*uK$#p1m#9W!UT!CGtxCW z6Tf_f#sa&Q+E-$}wAulh>7cx7Beui6ITL6AnH?BhWbh{uu$*J{W^t-Ga}5Sj%?L)a ziS3d~Dxxc0Tq;XA(^gyfspk}ic;|M&{;SkhjtWGRc2Cr%%Vz4$rN^PYeYcEIupB_5 zuEcU=BG~2pvQxn{8hZ%3zszLg&Ah{4=}jwV$`d$~#1#;c3{Kl8oTdb$G*ay>@;i68X(#un);#$i$i>O<$i~lsGB#MB&$Sq;;q^{ckzg0_VqET4X9U@;% z4Xl?K;j!6FMW~aYtIs~peAe2}7r0ZLl9XGHdxnr%QNpC<;N+r2jw`LU1GX8ahwP`C zBO2M|2H8rv7z5ae(QNG!; zT}0_u`?#3&Jf||zTur6dHbqs;w(;uup$Pb8US2Udxjrxq^lv6WNDCU?Cxdt$bI~f&tp;n8DXBF?qK*Qn_P)fADVPh2jVRiIADchJ)nzC|+ zfV6grjpu&mWQ8oy?&XzUcQEmFJ32;SD@d9J4!NJXG<+B7%nw=MxjRT<>+TYmh5!38 zh~fk*uFLwJU*>do<@e$0=`MUPJh8Jjg7Uyvy1pd_`;Ttp?2l^0vrsk zZjN6Cp_C1piAx~(2%Vs(HjO_qdFGl-&v^+qcI_xktOny8g~`&SLd6sv6zY2LJFgNFo;I%X6`>T;QV!nM`2goplO1s6>3I%?$r4K%*XB*CQg+}er`7yJ-qR%%19>*Y&`SFb-EPl z3|sz_(5s{Miu>xgVqXL^y^k^JmT5RSxj1?2WY^H((pgyKoDSK=+l*OqPr5gaIHFC! zjImtMkI4)F=b7PsDbOu1&z&6(T(`Tq03eLNUtw1iVPfHeIiC@p!D}#31a*CYel!ca zyTh;NX}{fI?mFp3WJpvwu2%OU3v+67u}OQTq;D}Gy&+rZxfrtq5M2w3v1A)AuZf$E(?a&3W=&}Oi<;M@B zU}*?xqM0fzOc4C&(0GLi6MrWfSr6ZQ#e|+2ZkYUM!|dUKd`RCb{ZQ-Hq3`+({VgHonf5E6z*34&3mwzD(@g~1&kpQT@e)#O)Sq1g{=28PDPC5_&Y#<|j~ zmf>j_`tQs?jIHDmMB_-3+T(hq2K-F9IDSH?De_1eYfLS~?OZCO_;Si;C{>*2W+)U@ zJ6#{ky^;?#(?7tv-Frby9IFFyIhqNTq0_f{2Px`n&WGoi5L!+HH>JMj7yy%-t*2*E zQ+3_-?73q`8IybDj5Qx(^GCo!~4d`6IDypJdGK5s|0E}Ye}v9+Rz8KW>3|vzRCQZ1ucx1`5Of~$Lh6QyXRcC zyE%vf*4Jqj6=gsj!Ro)q5X#$5UX#TA^lA^k)}TZMCl^C5b=%VIN^leU!dzJy=c6Fv zraZ_RHO!19+pL$NCPaf+C%t!D=7?gxui$+6#ew0u+$$$YNT#JDf0$PLu zjaZwAR(wSF>dx~MnblfVud&@0vmTfG{pz|>1saB7^qF}qUl7UYv+5}6TxnD&Sk9=- zY@yGvO(T$-CBXYld|xoim{#)!zh-K?T3vrKJ^yxQq5A*_SmgS+9`<7*BeZQp?7z<3 zq@dPwm}k%YbkobXBfp-z#x3XO%yS$#@&L)E#K2ul&&S@Q5~tSWz3? z`;=-9nQXVy4OtuWcR5=qr1I0kV&W?f-q7zqufeOJi+9*M=?9R4>Uf3JkF7zQ_WX*{xbRf9G;a z?KO0h9e#)g!)IxaL^q3aQ_Z5yQD>}3(J*XhR4B;RnG1{w#21{s?pBY~K{|Q!KBLpf z;+lYR-HU;uMT_YoKchF!7}%r%h2UolJq-#$qA=L+zS?iNPd=|G5TU_A-0ygwqZRt1 z*9^dV%x!jQl`WS}TPhqVl!`EIw#Ba<8H*J>OSsr>`Wix#kvXCb!n0*lR7 ze{d*yj1`6IfU6V39J+TZ&)?=FNLk2FzaM!r+hz(=NU9zJYC;nip)nw}y0!9nL@CuH zVo;np+D@s?9@AAJBz`=|OCvHygoRAYh@oRZ!TUKH+i&&F%M6}1cceEz{6dB2E(4V{&lgbb%UF|@&&b2d2oT|L=j(Jdqtd1Kna&Ar*EZRpRG~YC?%mgjAXmHC2G=J3cB%=t_oh zpAUHdbz=Sfb%KdLD!+(ky!(kiSZxt{=~v#ZveC592+j_!*&D_D*|jRhHQP%Ymlcb- zhcVQT&tbt|;}M1K~x_tTSTd=#od@h*IEc_V_gVORBsl7AY-~sU9e;x42U<`d? zw6B&KpxoqmoKRYHDvEjaXo|^p`vC;I$xY2sltZ?bodlFR3mX^H`_WgrfPqeE<$|~S zdhAq*8m0!#pw5#&jbCpg;my*gS)fcJcP-s_K!CtAd>H8ueMphGy8LA z#kwf{VVf++FHOO}wd~!qk$3kaTsIkB2%X&LAxOgn5G_&+qBt?gnImX--XiVVBkf{% z2(@n@+~}CzBTfH(m}bzx=M=W!)o!)>l2t!qqEyP{O2TC5E~$7IYYLpa5wwaFbRm-7 zp~rY1jzt`f1zvR-@!z8oXfm>M6UALylYSMUW0JF2a3JGyxAA}2UMYxunaJ*fM7?o{ zdM8G(QH76W2ER|Vupb+k=;4npc*O+%E9G+4h-?z8a3~N6 z2`ap%7R@BVAilLYVjw@XLt7%|jCg9!#) z$e%fWHt)*N#c8+`RmAXRp}#2k7$-Ii*@a2X(|P~$$h>c?vw)0gFA)wT9eOgF9sC4I z#T-b%S(ZN};!8`tx&#T`H^}s);Lr`B)sNZp`bm@6vv6FD!J8XuhzmAMedl2O?nFh? zg9*+y_DT+j^`AlFt_s{ocM3B z{a;`QA%zKkTsphKXb(5#P}@aVws-tw9kp!l@X7Kz=LMH*$f_YjOHTkm$*MWOQF9)V zWTOrfL;Zn>7J`fxJc}r)%|Y*PeJaE<^kujZd>)AI^*Bf0BWQg zeCRg8c41$od9~j2hrXjwS}jN^)631k?BYmd(ckbf$wv3kXMXt1MuF2`2}6hAwfQuP z@5=XO1;Hhx_=T%{Zjui3*w^w;rK!vFYn@v3jE_HF$|b6|OE;UY_;k;H>lk}}n=${G zk;M8aflJV2_-6v2A+qqQyfN1PGCO;>pkH+^ib{&Dldr=T-%J)B1RJQQh^;Va_@gjr08h6cr- z+!s_(koRqi467o8ror@<-H7DKq4>Z zG$<0!+_m!@2Dd^%KZ)TEH(ZY_Dq3>&wDE|62kfwkI5dxs1^~tM zucEl%B-k)KzH`;pCkDJsZ{6m6=uK}2bxTc!WAp)&Gkh~pQr@Cg6q43qKWLRx<2Wa~ z&uENvCVOH4s|U_=IsZ7BJ*)Y&Ks%lSp?)2S-jEys3Vy*KNhz3HrA@XnYN$6yLkHLL zma30WBfyE`QH0BoQ$YHEDgIa;MQ*0h(i^y`RhBrbep6LhiRTvX@4vor;gnZg%sw*r zv)$ogiZXVmAM+=syGv`KJZ9poryKxH zXbmh(ah=kzPW-owbhAUPg2;aSw>#JeYs-Svt{GmL{Tb%CNUn^0A-=MuP`=OO=+v>6C-szp0BiaFC!fm@(7OT>-&psAsg|cpu&H69+$L7C1{o$w$>&RVG}9(5S(sFP)@#vdWcB+4 zuQ*d@*(dTo#alVg zd{%ldeZA%g&py>N26w|ZF(oCsXJ>U&5V4E95kv^{fu)ml-|2aZhN3*pP%{-P#QJ^|iUDBqt zQvFeC$zBkcI7J&NCWDpVOO7Vwdc8@ zU)zTuUN!_D0Sf{CW8QnkcB&qm@U*i0`kC!mFwhOQquT7o2+n@j;Hs8 z-YBbuS(3sEGX8mj3Nrt>=iVsTVZ3i)ij;yE92hHs1-;)ug3;&)9LJ!>ooFGH*Po(z zR3}dhr_O_AG3aY4uvFxzY}C3c5Suj_X*!~dYyR}l&l#Nf&=6ouK|X-SGg-30=((iW zDrxzbMptB-BP!BQs6cX5=Dv7(qvZVxUa>LP}LX5 z_Z63PnMA+|0#oSN(b@CG2#4Kh@1960;-Mc{`90S7!nFl$V=L4wqh7WyPSAYZVlIVJ zdxuzBeg;iH1z3TGL+s)(4BK}%Cmyf!m#?-FFKB6YS<;Mm=$YXLuHP!3exlpbZ%g&T zAjUHq#nCrF=kCYPX$=|E$cgSP?2gzW`jEj+EQo{6M5w^rFQIV#$jM5#VtFFNeXWLo z)H2+$H+vxm*Y6mIVi-oO4jUeS_M5(LICrog7t;rY+h0Ui(vXLmR}K{e{eKLammhlM zPp+sl-(K(XmfvqA1l+?-{9>|Q_=|8H<2O5%QKGeKWMM?ZS>7y3^g=AE!9wk_^eL+~ zw{Bc?UwR3Unz+1Q#C40HW7rC`1qJbcj-@XCpI!hD?V42N&SwaIQTf>u#dXrjED0*t zBxcSUu=4XN-J4rVGfj1Y4iw*h6RcG|8tROl6{*nE2uo1n))f4Nwbv@EI%dD$iUo~ug=-Fo5-s%yk zS+gZC>9KU`u=QlKT+N2-|!ljECKR+yl`Ww z9CRHLI*i5z&h8Zc92otxn`#-OKlOXlh7${9i0QYa4SM=yK2`0CmEd9l3Gx5%4cF;? zHi@R>KY{}O3Pz|iT!HzChgept9k0STu9f!LC(2z>M?WtZe0P1lIm09@3`Co{Z^V(v zp$8K_aregL#j8Hq`meir8Wt~6eFj}%#>voS?Yc9qO-^fR=d45CV3-mZ_Igv~i$`Fb zOZQOHoy|~FZ^qAUm2Pa+8)ogrJ;k`u+_;0hyC9#Ax8$Z?4+L{6!?jIeDO*$n6D3UKa<_>C)rz zn+(kjdTqYOh})(*)Pk|keY9v}?~}yV@F8g|)8aABU|JfC>UT9K&->?EXylk;U77S! zT9la`Qk(%~ym^~S!u)D$L1=M$~-YfoR45Z7Z-Rv71)^u%vb zll?jK)kw6kpdmg+`74V5wZV}oXNj$(rnSbn*n?eX8rZF^Rj#Frwi@Q2N$sHEnNcGUMEFI`>)i=J4RH$43MMm{2{b{4*>@zrE4>>=~ zNr7oYiphSNES$@uAHZG??;5{Y_G~*7Prx{z`)YT5n{xO*N=A*EN>R2A;%Q8-FwG3k+T0yLX@-6M$;B2~OcX9s1+mf0_ zLDJ&%iMfFW)~!g&?I-bU?Y(%FO1&o1HO!{i>@Xf;89DQ6Y#Vhs9~vdwcg1C`d+4KF z8meMy)QvK7RP%0Vrg3%Jhb~Wd&2bdUsuP8a3(`wv^66l~mC+s?=*J6^L?T0`7Ue?u zS?;-dIBc4eX4Iss^=3=l(?<;*R<@iSw>B>Oo5AVQwz{F_trUU5Ia#(3+h% z`sojf7u)o|uoY9lat`hj~yy=~_)^uJW~E4(^K_;w;4#H~3kZk0Gn% z(`wkm+J(9MvPExDASO%5zu6T9rf9|^Ps7F8G3Se)tgi7N*RikZJ(8?pn!8DuBFxP) z%%TbA&png`sBk9MSAgI0&9CN#2bn$u=OXSF!=JxEuk#m;Tp{_IMuwlgnyLPlvnvtW zC;oQW>ZVc9F@c|HCP{^UX7&sT z=4)f{8CN5QBcBBj|1m3>ALO_s);xR&^mMa(Oyt~egHTdRlh*~;>_o>;hd20(iB9K+COB(cM^veZtWu$~v0kdFafxrc3hXHSICb2Fh z@_)S#EhUH|IxmYHG3k`lYaWzfeyj=p&z%Etz3F*2sOqK2Fgd1L3WPxDj_{rWRh(hh zX)1e=d$?`Ehq>WtlwrX`8)V9)UDlu-%%8)nfne1-w%c`SmZ_Vg&eLIq{9`&E@|3w3Z^u_OuZa~8a^ zBTTvUV~;F$OUG_6+j|GT#zd-kim^FIO=@MpCg0qK8r)^j5M(I!VLmv$s0uvQGZo{8 z)wg|hyZ!onc;_gqeM!`>`J?gYJp;0+AFSF)y4q3PeI|Znz8IPlapJA}J}CNVjr;<2 zMc!7*J>J^i9sHY?VH(r8Zn(Y9U%c9eM;4u(WyeAu`#dVtF1S~FZxj{pVojA5%`H^K z7pVY8T7@pD^@*^X@%r`^(1JnL-Lfn0ta5OBzx~U%YZ)=!rqBEqVJxTAowNGQ^9Cim z7TZhM&>sIa;!lyzCl-nyNh^D?;M*saiDS;ak~J^CX?_>T|8tk}u|Y zfI{r5O8fE6vH6iljVJN}FS-zkO@3ac`xkKLZZ$c;edQWEd_QW4h4^v$#Lvv`E-j&r z2A7T&5kalg{)q^9?AlwUr;g!u+7%8)wB5xsQ zZ1hVhps3QHt-%VnluN=cs0dfm-|*IM&rr*PGc@?wbc}MJ#`Wvj{kh+(kIy&O@}7ft z`qj;xjF&Ez_nTouLhDoJv=nDuQ7o$Qo6hK`r$K7P=Q!3@za5T*+nS8*tSH`^1Qt)UZIRkzK&%JAYi3ZF5oRt?29Ib$8A} zuxv|C=_yc%zT2fxC@Z}sQ6Q=)67E*v z^SGQ)SrtsMkTskh@Wg1Tr?!cvwsj;I{~*1GMuW$%*;?H;nt!5_9>AWj1>AHcB>;C1 z0U7G(Z4EzIb_Xdv1GikL$R|=M@Kf1aDI?%7Dv?eI`k<^*yf@wUiH-N>1Ch-?TK$Cc z9R_bO96DJg8RChKC!R7k&@~x~ZxRF@>&$ql=P#XU=EU|o|i}u6W1Aa1bPImOH8*@Vwx~3$Nl>8s zCXnGbV&UoT;6OgLL?1(+Qp^We4lbP$)8t0tj)oJwch^KQddYYOs+&(waGv~ z0*y~=^1H|DgR7HJQc4eFj7_U026_CmF4Qnp#y2aeB?)%!n5Iosv#v=tFKz_0Ll?Lg zvnwPvNOQCbeO#h4f~=GSp2vBkY*7RY@q`hl5DK$zVN&7SQzZHiCj-BcRQEBbqf4~*=VMvJjxTr zcMx@*TQySvsS5Jpv&CVPk1SblU!1}UsC6v5c)_mvIAgg5aq>D+pxjnwLyS9!Ppp$p zbiAaEtyFQ~dx5DY$;F7GKlQ57rM51?D;R%thwelne1YJ+?AD8YTpL{=MpddU96r!u zGY-aJo}PD@fEYt`bn!E{TA0t4TT>|8+-==ntL{36kgyVTC6}}o!`v?Iy+|!>8}tm+ z&(7cGbns|wzlBiOtzqY4P|xj?~Fqy0^-3xj?YZsMEUCxO|FYx%P{F{D5!i+L|UQQ&g zDi%%|HmjNt_5}WYhoRu?F#H$#e`~%6C#yFcdOVNjh|E(DJZbiU03t3`6m8HFh2x(4 z*I9wT83}tQSu)B$p%&E$${B%E&pZ?h){;Bzty=D>S`|EE;@yXKe~?>XskE$s$mU{j zUsed&5ZAEZWNI@pA&Rf!%bbmhi!3pwx@^D{MDwcJ&8}%K0X8J0gz;BQ8x1);HEFtI zO~OxV-vPsx&GE4*^mogFs1VWPjFQHI9Cn5jkVc7*lB)xj(;+fOZ%JXmvSTPLnHF*SCPBM!gA==S3Fx8lfREHO;`&+ppplGwML+NH=<)tE@;j4gXf^Mm3#4!HuTgGe)8h8JGOv(v6-hR^Z-qqsP! z40M9xsp5HpI5?RMj4cK<%!l(J`r$P2|2~Yu^3qQKvOprtd@yTVN-(ZS!BF4)Q|7#y zCyzPELv-x_1RkRF{}oBT=Jf)RRHe3gZfAE}x|l6~=KJh`a68iOyELv<*et%hG3GB6 zPM~t+(MaN~Td2c4z?FjO!K{x2TwvT?^Oe836sBH~vDyq2enjxl8~O}m6!k+%e=u^- z03w<15nHMEqr6|#gLbF`L^>5W(i63}Jo__~Lx5y~XL9}%$GC!J7?SBYr1op>K3Ddq zx>jeDdDrge;f2i%+h!@<^DFUv-N%q8hkq)v;*2t(_kBjAl$Nvo>&9m6D$c7jxj~Vt zAzrf9&Ef$VMg%0ew`!k1tm#;nYI>*KYv6*w-gc>6Sh)6#I!0LHtzdQp$X$^<=ixc| z9T_T}C-XM;G#3KzE5{P~sPeM=Q+yo=RkXhtA&xVWM|Kr59S=2t|-~5itFV)1n-;a*}8x}@{+7xMd1hmaI!(uT5EKdM3sjXJ);k_`BfQ* z$QUsrIr3plx@Je)rsNUh`B#_=aNM%vq^^YWcr$BZ1uGGzF=Eu8Hte0_ z!J)!+`17IJ&^gzhEWQAXWP_qa5bCnyn?LMw0%h5-?@uZto1MF=Qk#BfWwYC( zz9*71*=XkWu&#*6F^%l z2z$Av8P94;=Q!JSFqKQU9%oHTw;=^W*EaBWMX^H8pY)36T|R*~Td~j`IsY>Fc6FZU zU->E&(JucS)LdCII-`vPPaaK4=Y0!>adQNivMu+D%X1bU!Sp=swrI|N=q1R?4<1L9bG=5 zi~WY0TxAP&20j+l_wbA%ZCr?aEAqNIt7uM+L&9bG`c#Oomz<0$rOYy9d}Mp2=h2yw z)ais?cK$pka3~6i_$PCs-Te$8%!NZNsogE zPgGQ?%GXL6cB48Rwi^f#aQZ=(O4qFhf!7!NHDWLebsYQrs9R0F<~%fU0`4sM$9$VE zy@j1J(?33yuBWZy{dqwNZZmH%G^!{2w_Uf^qV9u*WzcolB$geOpK>YbyvbT($9sL| z4_JS~JKlTObD-;GQVSDD`*K%dU@@%UZsASQ#t?OrzoTQIfyGf)Yh%n-!qOmK!e19= zmMu8$z$nI>Pn>@klQ>EUEi|We`odz|PkQIA!MKE!Zca0K3#a@~4+bHM_)HaNTAm(z zJ^fXvQqVcvW8Tsh>6P5vc>;xIMgfgj$7(PbTU6=OQmh}=@bWT7+SitDJq&nZ1=Q?# z5L24WTNSb22Irtccg4%fv31jonYl0TYa@ce8t;<*L5?wV2Cqw~eHK@IQ&nw5o z{|bEL$p+J*Adf({agB93IPFux*2uvVwgUS;TZ2`kU635{L($qLF8xa(Q$865VbYpV z*$-71(i($FC$_L43=(wh;4m4@B(|XLkOWfkzphD}wx%S#Q6&x{%!v#hOoqB2N!I&3 zvDFdMC*ta<0!-O8+BA$^s^o7%Q1Q>7Xq0?PwCRrqE@Gbs(GXqJ!fX=!;TnrFK8a}j z5`A+(XDMElQ2U*>H{V=WTRNG{c44^5`S6Vg182%2445)&u^kW8ya{db8=+#oKPMJ zL`VWVuXJMRI$$ssjhy+Bhh?m1%Q{UQg4KM{gosJZOEF>mY_)Fb)o(dT&X)^6^)jo`#bvSpq*;me zh6tnDPVVOEuCZgmz3dH-W&a62#`>hRLA6+2h@ChZ4DlsgkkZ+BAcnLN@ZRXcTXaU! zNAgDu#<2#J=#hE1~?@JWUf=@CKM} zh&Xf9W|2AshBM2PoP)u=tLq05p~>z%0%yobCtoM#;Isk^+X1`V%>uIj^C(OU^a#JrgeU8OK9Mu*EXTF{lP_?#&GXO-=HwHaR!} zbaa9rL4V!pX>s|~(8ZrpVdvXRmMgs8B;vTD$<>y(rcUr1+OmS=-T6P|n0rfi)|b{n zIn4K?8Td4axQT{ zVrPYO6lYnk$&*=EwQz09DI-X6;g*Zt;)2Q1{Z9#Q0n#smn%Co|8?Sg=|756b#50{` zv&xH5Ci!l%wZ~F0=Wl(|RP*`LTV(Wt$ z$xtdIII-6M`y%whmPPgV*=O3p3ERM(lN0461lw0n6n<4FuI|Pa3|8eC)2?`*;_Tl5 zpjYLpsCa$oos#-6w)WtCd}dB{1B+2>N@g@`75Z_O zf;@YA&5~iMv?h64m*ThJ3{MA&DB7E(-O&e$J-c!jbSUJZ_cx{4;eI>($AxS(-@7ftG&Ze zJ9I%89AiIa?>W~eL6oX=#G#p+5HsX*r;+M;tM2f}rT;4gBjHJ)s2_g;`{lE4qSu4V z`(j0ahoeb{L;Lu+Uoj*FI8A_8DSk7nKk8>SR%aG_T}5zjo6s9jD4Oht#&IRX=*0f9 z-0Xcwq<@yfEjF=2+DN{lv+{jVa1_9$UMw5KY)?29=Qmh&b>SQ$pHvW-^gZVrQkU=_4p$5I*FEBHo=Zpi01yeqTW$2kRG7|veb_XA@P*mXqTrOjYMCTObEHGyW-*1qDe` zQc`+zuN5rm)GtEc?%{gt8sJa`z%2+44n{yi!ncMZZr7U3qz8=4OY&HeyB}Erp$o8m zgBHxT9&V3v0I@bk-7OBDs@5Ys95vbbkcq1CT*~fXmQPF!35=wE_0mgo^y2CMQgaIU zci4?;LpdDxhDJt4A?3(&hD7KKd}ofdsoEuEw|`eloFY{_(ioIA1hppsQr4{7{{UA#H^#HUC8 zbz%KUU02xqUXv&T8Kc4*EZlgvJ`IC+dv!(HXXUsm>v5qFl(+gZe1RAz0A+Yqk#dg! z(8h-g_1C@fO;#$Qjevk_QNQ4FV648j7Rr&GnfbhaK}=B*8wSc$h5`K8SIgjOtn3z) z46?cbG}^SuSHM83g;H)6s*KP9yDhb%0?n_zwao|q`g+Kn-An~whXF5W`j;&^10c>> z4qOPU-=IQqetqf>GypiO)$WT312r@R6G zty$;-AWa8=xT*zc!tUU(11Inw0IVq`>&|DqU50;3RB(X3-r?f)@Hm_BjCXT-f#r; z2fA=Y6TT)5yM(A+1-KyVB!n{Bd*6RqbZtV1$>8hWRo1H(y6!um)~_xp`DMr7_4-yks=SIPB;7=Y-BK+@oh+Wn46-Qj-EW$WI3b>mWW%`^RFa5B1& z@SliI`_t*!qvH-)j#cWRTf)6w`EL@?{uV}|?@TcpF9H?Ro#~OOZlAil&nz7m>^=Cn zE1kJJSj;rKV|B4n#RrXS8?H@U4&2QRs-Ip^ax53iKX^V?T}Zl>-!?mD zXv0%3dJ#$WC@RH)tcR%2->^bT@xP5U-fKeWl2t-Ub+^p%{-|dHf*+-0BlIYoSYX(i z?C|(8$)a!)bX`bkhnaZE(p)q?E5bXe)AdT|P*g6*-+A5B4X;~fOl>nYm*U&ryc_8t z4L!QUY^vLRwRVV#+;xZG9l5Jw%XG%kO8agQBSzH@drH+F0(6hs{kpIFA{Lw|KF%Px ze;v`&@ymA4VK*Y)mgyd-2_YH$?{H4N_J6EFxXs0nGZ+y4i67E0U~hS6P`)~ESTI0BPgy87F+KY zr?RHzte3pxcu)Nir%_E@Y;fgATlcR;M27hm00YK`Ky=r-f>RtQXZ~xEF!&D3Pm� zVVh2)N`@yUIz3;&cU8GHt%nQOZl?z-0Ai+HeNspW5*?1{->_El+$ZW{bml<1zx&D7>x_ci&&Fi*ti9>!#&BGSyH#F4SX`QOtHj~?F--@!y#tIprbW2TNIv(xjAW*TA{ZZs~2I^=BexRkYcTkkuO_rYUWa*d!4 z_Nn`SGfwo0gI4MFUxB=ER%0Xx`}ca0j|i|YMs^QU2bR7S)OhKcvovk5EcKnpc*;SG z(@0d%p{pfrd!2 zmHbkmxx0r{()_cvSXf@7CM$yPO{}?%76WFgWGJ%KA7muZZ54H`*v$;G1+nEXTyvI$ z8Ph5S>a(4QpFObS%sU(68!kshBhE{>3vbR(hP@osHuc%HBBmhYERxfI5X0+(n$-Qp z)F*0ceehJIUw+I1^_vjq{twu}{CG&O%xau_OAX}ZF_HY9Wt><@WEU5Q0GjHG1tW+e zcAK3V@pHz$iHnPqP&oY_8R`pQ756*8y3#IF_%m74^rEGv>4I{6H(({>L&?I(2p8CB zo$fn?+Pa+^KTNsO7+(_^5ArAbwVO5H+d+}g*2l|Sz}V_UP|gehlGv}E%iWy=Czxc< zX~Ky9@owm`-wT;tkO+0D^9gq_c zVVRL@@~xm!QK<1JRT!!0zJu;te>0(p>BNPkO5rmMC^+d8OWzV|BK}qo1}&eA>M+N_ z{={FUVT@hN*9$4|Whyo@f<$3et&zvTfmAK-lCK(BAe?38*jmz)zxyEcr9a<*Fn*@m zK=k=47k>me#De$mF125B;PZzL)HhF0UZYQr!cLu35g-LJ860{)h5%ng%uM9v#$RejW;p z_PqVxFSr4gra z3$qveKyH?^6kz>ZfUq5A92E+z@vf4ar0LACr~@Er2AI^flwM+Gu9g2i7GW96dK3vO_biuU(0B@&HVO8(AQFd zq#EImv{m0mtCci!!o*{>-VV`Tp@w=;LqKs|5iruGYvY@=u>upc=pE ze6&&Wuv;QgFkwK4BL_hKK&!98K#P9hck==K$QQGwYds<19BLEm^Is(ZPx=>JeScsc zAxK0@Ntur5q z^UbX5zH`khk2@M%Vfi7E;fJ3~HS7X3Nza!nE^0)KC;GuWilYZtOy|X;XDxC1t9?t2 zSOwOXWKQ(Xb6}?@Kf2u4pu>jP_ovmA<*&QQ#i;(q)316i02ZYGm`ZXFUvf`pZ+e!; z=we;pl5oY>tOz&AO^q-u`m9U!H?eu+`g5n&|JzOIuXzY)Dk< zR~joU`u5uL5~}ASq5v!m1{PGXL9508D0_c#Fy!bn7Is%Uz2*e&are_$TRpj#yI8X` zFIy6Eqz8IVr=BtW7DCmkyJcYY;Kf%azK$Ta8MVF^a`YgtrwAtfY@1GSu z&ZwfIEX%T!=vMZq&3%G(O#)vtpoqZflM$cHiP_jn_4ErzM!@T{GmH}sXLo+)BrUN; zZYrur9mXs7nl(*Rcbe+P)+iBc$Is zVIq2X>2Nl{h=l^+~qcS>P+AiG&HaR$rv$+lpyT@(YE7BCnk7m z0wq(@ps8thqF`rlkEdY5>Y!>0h)S6P1sGdm0sPEz<0+~|_ea-3jz<^h!zP$wo+?of z1;J8AD0|z{RRx%g0(=sNB^O!{u>Bvh&H}3HuKD)|QBaXkxFzvqH%NDP9y;$nzW0CM=lS2Y#I;-tPwd~`v%fR*nVH&~i>;mn{;2xv zsd|auibdvQ`8^0l4UHH+ibrS%=kA~f{g2LPL4>Sr`q2V1_RG~wOiaj;Ap@qI?pFux zU{^=J(2^7vZ~m$0gY3z@uwVc*zIu)03%c+Jd8%(EBqT<+!0?hVQ_jG-y^P%4;Ly;} zB~6S5(BqjyuR>h3wR6?sXfpk2zxc@-3Kb7eRGwCa@y#yzVGFMOuR+uC5)*8&|L5c8 zu8dcm%a2!ASBJ*N+JRL6)N8y{00h|JMtXjL^RoMu=WXSlR#>~;^c*U3AOd}lRE}WT zF@f>Y+FI4_>FuGE0IC7R%5`7hP&$u;JCc5LrM>0`RE)ey{{5|h`Fz-h@7l$VS5 zsV+b0R+qm9ws~~z`|eVmTW5)IHg1Qy?)u#;+J5eO>6(I|7IhKT)FEqw19o`fzUqyA zXM*;-$}a-pZ$Bd?M+@<5--rH&Z3{Z$ESBwiQ|8LQKMn0BxvKa*GS z!Q!97v|x1+AOZo9P*mj995BcR_hfB(*&5kY8BEuSMLy>fVPMmKMn)cjKJp1&W_OhO zk6CXPS^KJOvJ8 zH)fYKX~SloRa^AD_Qppfs18+#up&hp7R`E3K_D!eJnM9^8D11?X=x!H5iri?1JbX( zy+UNT#x@kKxt52xRexU-wRzg#j9ho%G9aC!GcXY%>DZNCt3U+K@}BP5BBQRGEhXeR zzP3Yu58Us53#!GoGcF{mu`{-qYuIteNzbhRu7rat*Qtly3L|D~Bn0Pe zn;F7kXx+@{)|vy{9e0Y}tzLn=10WS{2ChX{4=`*uV?c7Dsg@6*nD3|yn7-hIfBW%O zOyU>=ESG=*NNRBlQt!rg^-VWC!|OT+~ZDxB4vlL1K^>o~F;2lwJ2VO4BopXVLf>o}upU(`+5P&@yEktnAFp z=)*HG7ODkI>j@a!`dwW71B@ELi0gF>H0GHtTK(tR0)swL>%svd6fgPsmb~&|bMOQZ zwMzs;uZr~>??_8a8@mgMkrkZkSr}HzKcHpSQWMp7TdB&=JX>{%omZ|? zyN^~iCn6;!Wg^iJM=YLAQ&ZE}?cpMWYe=XIUs+Fg)(S_NTDV-s#=|4qhT*193j`-& zoJ*n3fN>4JaL#Z--#glcG-Pvd2v>xj=R;T5MwQlbU!@N9jM@S*7()Y7eEZf`IpD!R zQZx6PY-nrshe!%Hb7QV4>JL|IXRXA3D;hkz=PhTx{Hx-7SA6q=j9$$X0+lS4@h*Ba z0hCz4FAyYzzTa9lsP+3!4GGqK5pl8|QDhb4#bXI4h(*7B{XBsR2OHSaF!MSwvaH(L z_yW)4oDxAy>b}n|XEu9c6(RV~H|ABcwJ8Uge*wfPD2* zsLJ@;s^kk>)hOKn-PE{2m-udEEBQpvi;e%grfJ2;8}h#u6+rT;Nw`jP>N820*K*Py&KJ?e27DSYN76ogn+T*~~mpNX^f5-8z+@id=J z70vd{he(P-%aYOWe{olb)Xj(qfSU0LztV?!Z5@r@(MJEcL+$c!e+@xrHDiO?Ub0br zd;Obt9dYN~UQbM^fx19MS}zZ~qb>_c1a!;gxw3ou4T0|DtzO#DO95!pXuhnrs^|Gv z79`n=v-WK)X;L2P^8*yDsQMAGt0let?6L2xdd|1w```abyy|^%oq&>fF^KiVW<@fQ zbXTY0kjsePW2Q6h4MKE|@>~bO1e9GHxmIMocmE&V-XFCtPdbq4u$EGWmum|8eTF*c ztw>H0>rq7^tnw?GJkt)GMbT`<;TGNWDJ8m^`hxNlGS}SppyOr^Z^+doZCl+khoGWOsR<5_jMgiX-wxx86`5KCXq4=-e*ii9920d8~#G7B;y`N*$@Z%E6kU-&J*bUXx`zI>bKY{RXy@ zH6sijr0nn13tm+gq_DMJT3_79j*qsD+r1TC{^VB_gOmu^FvSc`EFdeQ zq2-VBel;YA`8gmY=#Xg8e{u^SMh{gk>E7xNGF zxyc7@q}~S{k6B23RQ)%^A>kcqhe1jCxS?{-${28{Vn|c3i>UUFJzL!BC{gA)$2Gnw z^$%U0GxsLRf6|y0ezKVRqpzCr3lYtK;gLl$!nbW4Q)nR+IdW#=NpjDKRhV`*jvYDR z?^q#NbrF@4W=WGm?o_x0f-MROb;YJ7PP`>LdtEX1LLoHL>dLr4T&EI%7*XrP5 z&IR%h!U!}EHRAcBBwXw?z%OSs3Yl*K^Dj`gxsUnD>?<%fpZ=Tn4Y1RG8qr~~^+(gf z^>?x9^TcPld}IXV51)Vfq+N%)Hy&q&E{LwKVZ-++G`WY1OeI`}K&6TJoQ^}Td6~K| zy$JYw1pM4}215wHW*_ILT~$DcR2dE?v6B&}v<`QO!kBJv28H*dnCkgi z9pAD_W95wIbE4vG0k9np|C}f=*G8;{8aH<$S6KCR<;bCBEg!$|hQIz>C09T4KQ1R& z8fM~dur!mPt(NlBHy@apKNiMuSgzakN(4jTg9ejr&w)=3K%+KoQdfVMCZc5Lc=$KP zd*-3$hogr+3slXi29VX2WqH0mZh3Lznl>)V1j&BA{42USueAc=N5>`R`!tC{`*=>w zXH7rH{@Tk4*f5OrfolpRx4Ou$_Q_UosFVIOWbf1qA`(#-_*Pog11!(5S>ko4)rtE6 zx`^DT7~$)a)@bHxvlw$u;-!d_UV-5w_S8;OW3RfB*nZZ^uM$;u8AfD(Pu9fZz*J@F z(H*e8AQ1UK?ZDk|#3a{WoA>m4D$NrQDnNkC1BfqDP2KiigB)Wj%|loBm^yr z8z@*)R0W?ig%uS=d@~gjYBA>^WVs z^EZ&8q?%Liz#kctb$Ri3^VIoOqgr^C0XL<)!H8$9f8E(^NT6yjDrQXRl=)2HxsXfd ze8?Pk(RH321Z24NE`$l++sW#BT)$d9_s_>Zb7;1E6z0lt*=^D4?m62FqLQ{lhR9n` zEIw2l4Lv8Y-$do$9CGA~HX&&5t+R`|P4ST`J^<1s%T+Ujx$Vfr!%P@$rx9E4{o4hh z@k5w0$7&ICSS(yM0^h$y0d#zRmZms+LR#l=Uti<(Hrb?nPJxdy z^j-s~H4Y)yniwy_FO!x{C<#P7Bq(O~LOJfswxQ;tzM*tGC0AGRxb?bn*_Gbyt>lTb z5JP)Fj6=oz*jKfP<=05{W`3$>&UM-3@pbvo?}YNX?7Y0uPoxzR3YovQWz{D>e5+fl zt3q7eR9e63(D(Cp5x!Y)Mewa5_)cf%7pBKt>RTB$NO2;>8pIw^{r3uZA8hA(p-eF1 zJQbsP^`f+Tb7R!SC#`NWbtJt9rRdo!IZ*{XWfdc@6@s>z6B`1hSw{NhI%t<3s9#>ocAU?Af}uT zd4xD4z9@H_<`L_Xg(fxHx28cyHf0X(bM z^|35c*lt=6vHhh^hb<7ZI6Df0copPnl{-{0JdfAjv#;fx(UhLjvC*=J-(MO?aQK2l zBc%{Z_ezkWpCSKMfL-`M?gF;H1;;arEza4u_ozJy1VD%4bvM)F5H|EzxZ8wHmA{-f zp*aj@lj2Vi3h(aAkq9trPVUxyOC+*r)8jc?3DAuS%I?F0(E0hD))eySd%Zw+xBQ}r z_8{m^&)c(yJ9T-rN=GDeVd3>wZt;{o7kYGlSVDlr`+}p#;+PW@mWc3sfgjSeGS^3P za9{A$twyIKYA^j}z~=qW70QQ^y84W2X>k6T`@DIm zKQej1K#`l6y0h>?)CQ6!A(Nb663AkXZrP^#^pDNmU{ZCi(!ojbnmR&nyzT)N{J^O= z8%nD!hiQVNJaqRkCI1Irx(SXiuqqO6f5Ls5E!SAJJiEhInT=}sT*j{f@`LR7!BK6x%r}@Gw=mEn~zAR586odRjl(*G- zTCSG?9goJ5Jw^I%eXwfZ$+bC!BqUTMm8TQdI0t3hIV@I&?b*_hp2w1KTf>Wh{`3C2+op|!*)NDZu5_ZV|6u`w<6dsa!GF8C zm4vK$*5PYaI0@UakoI2{WW*1-PG`qCNvj^Jc1pn!f(eq{Be*OJlch}i{O+^#f7O6o zh;Awky+A^|^?v=urjKvj|8HuEIrx9XvVY_ zvUsb1fI-K@9%QDVA@eo*%NrB2l~nM#=prP1i4y;L#`^NAJ;EGFVBem$%za+7Hd4^~ zMp~Bf*qdr;P$W~=P(PkN(pB1&n=4uVKAHV3tv^%Hg}Fn^y?fYDNfj08Ni7HwrA4D2 z{}FA_(C8fj|EZCTFPJl*;jH(3`RV7vhIjPMchDx?w9b3|k`DH_^}gW<+MrCgG2p54?pS&WoVe5D>^vMWfivQx&crIjhzn6=?%M9fI4Yka&kMsHY zn1Z(`I>>WPFAK@6=)2#l?(1%3!0iOW`#LOR#`Yu5FfKf7{sRU}hN=#-GcrfKG01Xf zGJMcm&h5y(Yb4dIds2=!xK)fg`!UTN%ko2SatL@cVgp9xPSRB7J`lAHF9CeHmyrV4 zLN?6*+(+>l{p6!0wT);&NyNwCp4$CIaYTU*X+*hhCMXiL*+x^A_)VRb__cj|D$kW+ z&jOu__8DF;4vKGVqFgoEY|t{UIE|kUtP@#ula)+QKyYt>fn>MO1IK@=ao5k%o)3C< zovyckYkY-`E2b##EWFs_;N+yFsK`Fq4GtiiALp23$?l9IYLpEH8G&W_o2_{0^qu_-LX3Cd=M=oR&jLK~;c9uSBi# zKGx&5m+7zM-n)Lls`?%SkE`{?5#LhN035*oQUUymzi~y}&Qk26y)p}mP2;kHXbwJ$ zDBTvCey}8xvKkf2B;eSK_E2+h9NMx)X|DLiYHD^QC?_nZUU~%T4dl1vKN~d_8ixHI zUO&?XoCC`(BR83*ctvW^oaN0u?A7b&Hw%39Wvn*tlwMbC;OD@U6wrPMhnMOiM?aVwsH{L$Rq|=x!Jg6!_?Rh7^aLk9-P!ad5}Q-JH{_=q@JVjB zT>03G z?M@!Nz1dd+V=C4oY*^e6B;BVSpYwMi&6r4Pyt~A`kd%eK&Qm*uCN-488dsP1-LUbQ z!kx5JTI89tYd?`^%6z_`=oZ}nh{j3uDxhy{Yj-8rRT70`}`TgM)+HQx$tM%m=kgwpGp`v-bMU8{#59KexF){I#vEfr*Ju zRBV9;Confwbd4`OX|L#}=4ne6-E*qXZ=bL(XK?JU`TBY-e&0APrt-ux7XJp5sTl5R zt0up)JjIy4>BK%CiM(A3@9H-zFAG`h^5s1}`cJe5?Hh2P{(2k8T`^Wc9wvD(tCsEb zoM;Bkf&~3VtQ-}Q_b(v>1rsOMx?Y`@C-P?7qGVS5w7qT}!CiD2Ay7EDbZmDOU>rfqM?jJ!xBnl1U}8h;%ds+>QJr=XX&x33fCb z?XrAX4)@tK!5r56j~*RepMr_94<0RWFdr9}brOWgg$3z^fRRp>loBo>4_5CQ2gmgsb&&n&p>b>eiL)k9 zwkQ7oTTv-;BG4L?>@I)s_!W7ndG)@p1Zt?C1V0n0f=WbXpYwAWF35J?)HExQybF0& zIE!n-AMTgV%)a$0BlQkmD*eT3{$gKH?m>cmia##{*tLvXa?Cf$%&h8u-Ajub1h5lq|F(dqrks5D?Im;1@U!GX&ki@eE#yTtw6770wo%h8*enYFaE zKn4Z}8^b)0Xd;<4nrNf67cnjv1I5I}QAb8bmRDC(22B|l8I#k~{idh2?V;pT<(ADB z+~IL?TXCRftI*@p5#$*H!h{b7WB^)5OG~THOz`B%ll{|E^j}p~F@Tb33!{{O_2qPq zIU*wBXH*o2%i#yWNP*$HA52VAv!DC=`bPH}FD@?nCBQP5^0Ts%%gZB!gCE^NMU`I{ zH2wH-alX;#&)67t^xF6}xyB{(D}5{j=NP+Y#&g=x%*tx_6pmSupByTy>yL|FM8V(x zSlk0nj)i`HeopiVjZQ9p{qhRSq|gJOkWfiW3qu3|Re(KKRt3GO2qeYCnjX}tWmHp8 zzw&zc5cmLT{&aTTX|RET;g*xOI*Xis6R)=qtVTkzvwxPUDURxPn)_1X7(6nP{y;ZO zW7iSV^D2YyJYPU8zCToZ4(-|V=PgwK$cqHqNNGkk4F;L*>Y@{5d`G**g5ohzDBrna zCbE}8O-hK6g+%Wdr!XJb5BJ_&>^Lj)kVw2On38Z%qlaWsH<$i`Sswo9BC2!|hCo9S z4YN{Jhus+QT^PrI+x{8Vl9s$9kHLrD*Hhf3;`bY^- zkS&1Ci4kyN?-xKkA_($D;=OB0UWs7lvjU)|z)0{WfYx|S)qz3cuOuXjz%C|W(e6Oz zgO>7-!7%U@km_6x<=@pm-bAuEo>xnh2!I$Ax}91PuHxFDJ2+LK9h za9|!?Qh>?RUitu4MpmAHQPjWY$b5EKq0m@=O3!F;OhCTvwXEz4qF-2ex9Ax?{i)lW z-=)Q)qW4yFMI7;^pjvYBVE6vbi3+KXWtqc(!}w=kjyCGE_f{_UfyV53_@Fg zeAxm3ADpMA>(jY@;oI|mT+f0hxVZ9Wf?@#+68BzNOAOt~f2}FvUl&A<={7N2=?`pR zQ4KkSb3#)?r7BbacERwBS9#%UFHx~2p^E^GG9+mf=cdvabx;mYgCEJ&Y* zAUT$hyD>H-@Q&JCl#e98?M{Y@%1Wn>{E*ciL|@@>7lUi8_q zn_Wi?uHEzwiEHfH*6tdk#S4TW54|zT>GEqX1-8Q;V~)ngMrQRw@75qfy9uMHgLxn9 z#DQ{oq4Q^e=c5u7Oo)sm(Dghwf?Qo+gLy~EDJgfnx3?|s+_@9YWllg$Obp*)ty+G9 z+%aGZa@A5OKLqsirJ`!MtQy;}_bG3J12(3kt7{RkVYDnPq39IO-W?qsC`+MWCir}^ zKSc^iQU(OvN5aGabT>6OU-G(H^K#E?K%x!r4GpWVPo^GVVzydv+jY`LS@&{{6?$H~ zB1<@guJ*+nw9IUf2G&m^OmKH}R29rv7CvZ1r-ZyTXu7NGb?p$zq61xa8~F351;9RC z$>RR^F)?ZB==|0a-LUk>uVZ?RS?aHBkslxMHxr=jjy(RxUQ809Gq4M4g8;`xY_-~|gyn#wFZaS-5<&q+CXzaMRu1UD%h#`o&Q4#=c@TnWdL$%JeL?z? zdc(OWCBaA~zSYK#E$jCep70F$q&~oU0KIF_`GXc&=Kx}mK#}d%BIJ;q;^frSIXEnp z=c{q(Ggg^n+_bbSrK2F^!#7K13guhanErk&3q1M>%_N{x+_P)y@XyGt=%+|e3hNB8 zZ>KLwG#1QyNTRxf*BQT@#Ymms|H5l`QI@Rs`*9sk`;Y(TD%sjx1U#66C@_Q2_+^|q zSwxb%cb;|Nt&nD9Ki3&~0l7;r`NQ-L4Kr0>WFp$3IZrX~mYnodoq>XcLbN`Gz}?OL zO2$14RH_%x$U@ldX$yx&Q!Vc*HTAix!Y`13o<1#EY4bt6NGzTa6dmZPSKBj! z8pZYv`@^ZZo0HtWy#wd<&CN~1JLJKw?~_3(OvO})YR<7Bj61GKGw-@hGf$N{G8tye zPcAAd3TmEKd*l2Yt=}i$1xwNh3JRK7c&*)WA(xYx>#vYZU6{MQ;py$|{Y#00YbRH` z>hR~uz1jVBd^PRHDOi0kum+VYky>aoR+VEX_Q+@F@bIA-HSTMSn1%}W$N^JJW36Ti z?mt!;nLAY3*^8<(%RKns=9C+RPvLEM-`*KcwXJ+f7Z%-+xg-yqo?Mua{c^0_eVf@K zGOqySX#op(pBmnCQJyS3l-_PxVrUclj>`(~UbXghbINENmbNM^qW{+yYdi^qkJ|!! z{qZw+oZG*at<^c9RNq9d=k+=wO1YMxWU8QT|-Yl~BzhMHmLV6vPUv zs9wtpx1wg_J@`_d$NX_=u6`mgbxg})r-_NaaGo@)*{Y<-3LQJ&u1rl$d6TdGzI^$XlmyVqjQo774jXXR zSgNY3e9E);nE3c&z`cPyIRX@6r>m9uEQ*SXujS;7uP=@v;MokFPR9(LR?^EvH=G?T zozLufu3fs!bw&Dgc6BwGavrvk!jQsy;c_Btdrt-$bE>TCA3k=9r~`r;aKxg{&b&@D z4r6cBxXHJjR`}=6vE+eJ@(#?QKh#awbp;%iTpD9M(+`6EDGZ8*m;!;e1dXxp_(Fqf z9tsk_bL)Qa1PU$Jn0xkN!_T<7gVd}ua~yxFv9x4uXa)U(eZNcnCF(>W>-=vp75QL; z%`Rhucn37^G~mC%xX*rfK+`#3bO%2-Xu|)aEp8@Hq3KY_-I&@uQY~z<6h{vf$b%@E zwjTmmC2aAS_>`yvJL^U;la~-BnszoOsMSE#*obm*MHPj&`A~5H`#mgZU#hFK$6md) zOZ+oU#Y)}{bCcbBL|^1mO(eJP*-!9it}}>BtcV~evTL$CzV-+%Jb#beaJ&d*{MoZ> z?pQ1b)R(sx_QkBh#%bCTf4_~o^DQQ(vusS)O?7Ry z0!9f$SURZtiQzCg1Z8bQGc&T%(hrM@ns0ZxI63zhgIJ5rhUtXPmvKE$N|K7erkR|a zRIhX80=N}0ra-3^sxu=sBq+K$auo!nV86kuO_Z1*kgqm8EUu{d<&sd3o^kJ!Kz6w~187%pF?A7}-M$8mY)6NB%3R0sEmjK=i; zU{W;YTCgr1IAEh%n{~a9{P1Y@4(ypl?oB-5sgTdi2!@EV2i~aa08U(GrLp!;uWiWY=2&OzGwzh z?`Km7e8e)QzINW4;(rV6YNke$pk@%7KD|1s49fb*nmje}wjhTn)r_4nvN6X$Gh5n5 zivzOMOD&Ejfg-JieMUj={~>-FB{7}PhLCMGz9*dDQ{GaI3scbH%Jw>}l5dM;mDYVF zH(vs*KGD`DmgD}M8V1VCv#qnXQ#&b6hUyx|B%YusRQ*51=Wk}iI(~2Tq4gr8e&zlJePj1L#T5?@7RL!+QpvNZ8wtF zUHnQ9F8UIu)O4KpM`vc3%OTy=Fm0q3ze>MT&a-P^K4S$X)A{QHD%=n=bqR;hXYyt+ zdgMF4J$^-v_AfO?ett->e-BTa8y$iY_%QHu_TaFEInB^Ark^7@RuBoz=fRlJa^;?o zgzii9#EkZhmW2s<{RX@rJw6p#*}J=G-3yq%)BV3-LstWaRAJq2_k5QJj+FR%hM(Z# zwcqx6#G5z?cZOE?^3Gu0B;4ZBTHc%f=|X=~y)dQuH$8R4=c-eCyp~X@GmD7mu1}C~ zmYEOeRU6i6PI40X6d0JoFfF_y^d2>AZWmtrE5hs6IEa-Ywt^~=*2#op+-bdR2J^~j zte(-bU|-M)B%|O79)fgy^*C#vmdflsj|Qb&&KCUHh#noCoE(nT-$YDLPnVQd-$>?M zmzLI@{1|K8vVdb{K-ECC9wbsrun+)&!404D&P&6 zU1x6O(+=TC+2mM_s(45$AUtB=x(!;Ov;TIpl&*q@6AI{=4 zX5HFo;BAMUu!FENNKw)vv!(m?yPZ|vn?~8WM|brNcd#b6XS-Tu%L!&#FMpnP3(-y! zHGy!1qK$HJ_DzHYD6DKL`d7@1#7N&rpxHH|W7HtOg)xw25JPYC!6Y$-!Tp8HV_fE} zEA!LaK?}>Y!N~>~&sA`aV!=XosrkTjAAiHYY~$uhevZMIi3&vhsVs9f>@c8r#hTyQ zeQVEj-3+3yxvXpzV~?<@U>cuoC>Gvr*sw;G((K31WtcSBTikPtEGiS4`Ju{jR0$+zAn?z$p7z|^GO4DN>|tN= zIq|}5)cEyMPi3dEI|C{c+oY5~U%p(JD053c2ZF=-N*{BuSv;w)Uhl89nU@$<&2P%9b}2Z+bR2~(^f6+8GnFIR zp+z1;J(6Co8TWlBSfSz|gZomW_7&<84SQ5}wm`zIQ{ZGEBw9bQ0XzM=-jiqSk@4w; zrtamIoPgC{)OSQwn)P`vYQL5v=kChJOt-sU<`x&!N=C0`q%-O$$D8J_C2y(9hFKq- z^q5bKDfakH?pWl_?U<{~@$kB)sa#J-Z#>g_BIR;c^T2rTi337R%%Jz7ey<5S|Jkb9&i*4?U}P zAG5rL$I{}$L^8g=WksH-4eO(7=cUsrn*0;DsxT zRrv$T<@6{xcYf~twaMwifpdQfp+*LEEvd9kTEH#{#aK~Eej}&x&FHFXLeWj z$-e%_y`qs%H4QD#?uUN|DbnWh>@ZH>?}S`2=LaP*`f@}oBSEY*S>UYfFOwnx5u`xI zc^|wr=XYbO{wIG=a*!d~0j(4&{IPlyvYvfd9yYdKc2^Snk@?TkGJVb!{R*o_y$nO~ z)^^mUlzVwns2Ll{&HfT$$^;<~1E|OQZ68YU79Xapy=?r^g*f*z(Hph`d<6dQz2X8h z9w(Wbd}U%J>?+rcjF}vKtAHv@mNKlefCO5V5X0p+aIPT@nH-11#KP1cqV2F%R5Y%Q zA0)vS^2ESmtIcwMby1UD=dl8bJNcFRSE*&KJiCVnh$@h|Br2s*qEIbWoNG!H3dJuvL5Z9P^}nLGb$}kjhCuFqb^xuS@i3f0v-~uc))A~ zAi6+|bz4^n)0=jvWvo6bh+QmU^48A!9xIviV@RE3f7l@fHJkG~L5x+D|BC!tiD90T z2T5KN&t6

A4M@4J#}h>8sTZ$$RK2O2#%-dL6#_;GYrJ^Xcz`+_%9Z%3fTrj?J@& z*3S4n=Qq#Xc8`j}n5AWT84Gqs6@wK)^3AG(ZXIvZ@m310h5|L(KhSWtHZv}d=Ru1o zA`aCypqDC%<)fuvDffO=mJ_+foqo33KkGobg#MZM)Vp$rif1?H4>$ZyLt9`3@aQdj zA<_1(Pd@wQk2|D+WAkynij+X`DXS}1XC$ZY^yQ;-O#XKY6Y6!59(>pxq+Pr`#Kbe4UCblXax zA-$U1B5N+B7iee)C-UxxvkNPqonnZfpD^C1+lltrGke-1%6KttiB$to{&mr~_72Yb z4liN4R&Qg)r&A0tJVR@<8L&c~Z)gnOEO27Hsn_>qyxZu9ynzwV8?uPf$GAD#%aErakzY}rT>LiuJ+ zL1B=A1Riw>0oOG)AH1%!4I>PenqG_QEfPfObYp>L(>WWb2M%h5w2-mO!9#&;r)z?G zeK^Ot@nMRs>~bU`U`CzH@D;b}=zc50Ie$88sW zy?*}YA@!KX|Hi)tDlqG&NC_Mm5@zW+AAV|k{iAouY~3tvcGO#E>uCqx7rocF4>jb% z{JZ2}Z%6-pdxs|hV28D)wC?k?b`>2sJwTT-`#z|#CQ@|56F+$QcYjj=-!p8OA z&9*$D+_h?LeYdJ8IAp8+$6?FK!{&Ww0tE!{HZ58h>MZM%y}lc63|vAi=;)H_`M&RU zuAaiKo7F1qSLP}vj6AvKo5=S!@HL~4HKgvsNo-c^r>pK5L3;bddNu#K!}T0R{UEFD z{l=bG7O|F=7MU|`gj`wxzPl?DHrzJ3*_)d;E0e|;T*cQdVoky(fTQ=dBtMsgxS#+6`f6!_qDQp`Q>Ey zDdwj>axXq}>ACiWT_ekh%bzYRDEhU0cfEE7qUfZxFaW12MxW63IFaABedRkoUkp+V zq#WtQTcMZfj0lunhqc_JEi_%^=?qHbSll`rG&v1BBLn89Pse4@uF~rQTgr|2dRt4c zIooLV_H^qJNxs_$=qGAV6MHNb6_=X^jH|WzhkF7f@=Y;LqS$e(cotDVt`2W3CXl0eYV!`#y>))7#BavRp*xQx(6|e>BMnLa9I}+ zK9oZP!>>zdD7};jHmDbx^K;TB04qGs`X#d=dKlVf_Z8raHj@rLUu&XI19eT5jtMg} zm7P=${+tN^ph#@x+Ti*Agx#hz3dsw`ts2tWG;t{9aSn z&q&RAP-Zu?vE^^6s~#(%k$dTD3Bm-bNX?^8C1btyQF(5yp`98A7CCdx^(S@GC3(F( zo=8lj3yxBvH$bdYK{Pdu#iQxtSQ-WPIkKiJ03&#{?MPxe8Xi!5B0Z`KGxq4^Mg|a+ z?NyZqHF}HxdzTt)Kl+UMDYe$thWprDyZ}^51sMKIsy~`cHBj(x-@pta$(^Og^A%Cz z?euKq&2xm1T=CzR3nnTAP0dpc20z%{dbdk-s+A#L|b zpNm8ih+;FGOhqCL-z;!(cN)El{g|{?>kK-z#gh!6k>1O*29M3{09mL3q-@TnBzSN%!10&j_zPvM6_+JYCY5jn$D3WMBr&mbEv#^Yx4rIs^X~ zf!_CPW7uzY=hbm0FX#j}!X#<0>D8m@b!Qt5>J44OiIBkdm!OeFQNOynyzbeiY%8q{ z0wMRfN*!*py5DIUaJJ>xE=>$~ln~ap7#GPcciU`kk0=#KReQ923*HUX5_+Tdx;Y;O z`NuqVLs3g}Pxvx_(7d}g;&CgPYI=6lb4xwV`?7~Wdc5Io{+s#@du&nQ6S*vEV+1*t z9~~aDR_OC<*V#?de$_5yI1lbq7|?8>EWiEk=!On?+;-oSdx`$pUHV5vQ==c2R)lwc zWshsIDJ$TyRJsf3)iK66bqTNf6pvJ@z%o^GOsj00)GAqaq^}%+spu6WdrV~1WZ$Tb197p&)lDP2 zYZiFsY}4%OQ-N%BaGR}G>saJZNqiIXt}1fr2}_a4jlsK|?l+bd6)Q@CF8k$02&KsV?R+(qcWzEkHur?r zdA(C2J%IW#Ficfcvwck>99#EuarDkCi?eUaC~9V=MV3Z?WbAR8U%H*k;gj@NvU^Vc z0wM<8o}1O?g*7`@A7{c`OxxsN7pDaeeMgGw_OaoG`Bo{O!O?ZWwdiP`(45^)p;SA- zjP(ki3I%m9-JufXOpry`j;W$|Acu|s-by;QL#QmF&j~5-LXWn%D-0q_ULv4`91q-fh z2q6+NA5i$1qwl&u_|DYKEoW~?E0ETHz{MVlk!^LSGVmpX&UWTaeC^q}Pv{G?32YH> zp@8-Ivtd4v+}1Qj6Rw&c+s>Zrn({4BoKd+a^2VIn%hDtGmE9A)x4JUAJ!GYU6%M0> zDmg_^HwH_lrrqL$@wVHQ#A);x0zq?5?7z|ApEH|_D|)cxs&vx7G7536jTd4Y|3Y4- zASY@KyS5{{O9j5hB3t{jrg-n@x*ib_=|?f^>Wcl_EzYB#*2I_X_(VT3$1}2cCj!3K z>qlkPd4)#U-bZ4+e0YcF-SpD;hXGj8gXb+mjD|`$SM_zuR|JL$d|@cKnG5OOW4JU0~{w*Y3z2ud>LQ zc@>mLtQ_I9^P6`XD{=Y;J-@p)qMJ@zuuBTr50h+V-2rh}Q1MP{6iY;=I417ai2&`E z1K}W{VuJ5Adrp{*HD{5mQaT;&iTYNN;FNUjAT#$?o{vfIMZ?B^;^{gjNxB}Xs96&W z#azWOk7|zTx#m!-JI9VR@GLos<*4P9-=%$B9dg8zNNyi~6PAMu!PGn=8el?ube7zX z{bCmJksgceBmHyN;4cO$3Cb=H&6Le05%2y!14#*sd0s1Ny`GSbpz$f~mRNDp3GE7u zn*T%9S3p%2t?Pmah|(pENJ@8yN=r+3m$WoUBOLI~>VmyHS`{nYSU$-Y$@%93@5HQmxe zXD@bL8w}x#-Kq|+p$+2x+K8)+gfX2gbU!;j0X0o4HO>9$**yo2vtebM?1~?Vnifom zQ&Y=M1y|=)7UPA7)Yi zoN|-_+*~AOie+}pHyGD7WofYjVD#NKv#ajbDreG- zG4@RFJO){QY0IiKsJC}U(jB?f>k_z0%ib|s=+zku4RYq%Sb~ORl}v3wew2D{gCGlJ zrY?1Q)~&2^W}Bbr>HeoJ9s*RWJ^gB5AXp4n5PDQ7{L6~Blm^z3+8l31RTDF28PB> z84a7*;e$_y_I8uZZeg4N_KwI$n}8SnA-N&mBpJsWTWTxgwyIA1yR%DSkg*5_Yujg> zblfJNiJ5`f^2-|jRn5jS&~c~ocvaRCZ2F)#WRH;}VclCBQ#e+g#+n<-XtNPk%ABonQz z8I98M5#K!V_WTg5xuMt7)4xibK_MD2rse#b9m#u{a{->n?_8c=9-#YRAQsWSBO@IEtYeRT5 zNNc0!U|{=P*DU!skL0;#sQULWJlR&_ZJBT4zP-ED1*flj3JC$|Dh;VBmaL?D06wK% zY55jMary}iB?ID7-XdRPHvIh&Af_Z2OpO>=v}TN8t-a*e3rio293Mueos|NNzxHjr zldGKcF>@R0=^@tVg}C62#f`^0AA!g{ykLU(inphKKqy_(`+D3jQzbr@D`e3~^jf^p z9zm#xbSm2;rZBohq|glTFMRh=ez{d7?3AOz)ZS^niCmPk(GVb8y<_=Q|4yNTEQs>W ziyHcE1LQzDhfpS=sxiNYKA*~>_yYvONr=v`qK5m~HfJt%1%ce?r|?BOes9Jl^uA+& zyOe|O<=dI~EaG`H-XC$jpGc|c7mpRrODlFtmk(V_Y!wwA6AXRPp+aZ<#W?!?^X=ebK)fY3EE$ zH!iz+E&8G@`=+~>4|iS9%$zp*6YYN&p1YmT9P)e?_ZAX5=UrG)LgEmq^A~y1xz2js zXN*jc?kv6fSN8*5!2XkVe7>$mg>Th`=UbUPRPPNni%*F+sU>W*e3jDodzstYmujMq zJk{lSR-|*gu4IA(|1`IseR10f?@z$bB~N zCB+kGRaU|9%v)F)KW@Yxri?$KK&628IeEoLoJbR#^tSSa#|)PGNaYC|`FX>Tc<%MkziLaS4h)~_t~G0 zr~$|Wc8#4TuXx>zrMm!OL3N;+=-Kp`cY6o4;(E)C`&rVnCug?@7RTSaz@e+MLqW;!u-c@qxbR7;^St4ww6R z)xU(TnGI$xfPoH3`_}A_?|p*n$YCsv@2wxeYx7-0yU5i&U30g;zB{Vmao-}+N;=Jw zQ%hkFGmEyh|5ZU?7G`T$fN54u`Jwua7&{*MWE%Iz1CD4*>Uw*;yDf+Oq0df6jrBY! z8M+6}5)2c}A`zNwQv_dIPsXvUbnTa){vv-HS%L_zX_kzP0`Z|zL&m1NB#Xs5gLRd3 z=Aq7dbBJ;IUY27O(ge(LY=Ql2XTCk#muu}^yUV?q7c2~LuiA5y|Bp=j%x7p@%BBiG zbwzH>FO$aqQ_`4n?492!v~29XpykCRbAs%fIBU|u2*V|A70edd%t2;Iq~YZQjg409 zeik_8hjhkMeMuFMUkbFE<8L~y!b`>e+a0neSd`BXo*!`oiwipSFmT`98%}RIh^*?0?GoPTycmOghx|}d69FM%-JX!ke7Y0$&hZ<;+6kMz71BuSc2>m_ z(#}+c?vACju(p{?FB?ls!Re|LA?tgr^Oc*k2TN64)$p2-A!MGIpZaAt`=1tXG~v%D z$o@p&DZ};V_b!BxFB!f4ffi4#?Bgzx@r^0gGonT`w};e5NI%*x#>^r`LW=eXAE}ei zMm!i{)jv7YKiLp(q_JUxJE7oBb%oZ|DZh)ofJ=q;6@tsry35fP?M(tmgr-M#}dHDib!Z zx>9@UTiAFky6F*a5zjA6<=#Nk*0z6LM2?7mi+ptF$9Zs|;-8L_5ufm(T!ZtoPh@`; z6YtdUytzC{`RQuDP+a7eG1ASfE#iLg_(?^UJ%R%d=ci^PD%7No01s06F%?PS--*bF zFdytYGiXVdNLPf+k?C53_E?|8`AKR>{^{YCoO_iP7Q+l={wNg4eZxiDgY-10MvN#t z9%^r5VfLO`Z~j2@YUj$ie|aFt7^AGNE@@}S0%KEujNpfeCQDieNIiARPX(^RXR{pX zH&dQjO#WH{7;4Vp(|N%VEP*cJ!{oMYbI>`rA&qYoltqlZ9Xk*a6znLIY>%$LDnzk# ztD)_OkMlC(?qLXCC>+9cc`x=_Vu}>y*V^_czzj*!)sVYsjZL~Q-FEcu_Vvepe^ClN z8K%cZFUczjX0g{sKYcS86by=jBhR{YCVu>RzIAoMgqFVFnY`K=v;ILDiFm6eep7Tp zwy~=#$W;`3h}LL%I^}^R!ROfQD3^s zA!dwb+A>^|qQH$(wR)wT@lt^AYN8&f&1CZZlMp|#*^K^`V~k#bjNKgNV5pA!BWc5- zuK623!kWp7k|SnZi+iPok2wsoP%GvcOjbFf1K-0}yQ#7weTIP%x1{&($F*!=0gw+X zQ|pr4Rtlz@&Qg^beNWb@!5k}3VAgy7GO{*02t&|7?F=ej52bJcpr7lh2>`5j0j{hz zRQMRmn}y2Z5AyEPLt)W6uIo4l)vKt*wL7$c0f^QNwDnzq4M`b&X!`x0DIkEIbO}8~ z0g!75kgAOVJVB_MJs_2JoKNYZc^j+GyKbghF4V>XW$nhxhC_^JPiw=i0G|wc+PgI9 z0FKoa5ajJE)o+8EO$-U%(gXE>z#D7?8p6v?b+ekD$0b0X|-m|kB2q+(vy|>J*pZGda z9;L6`1t@R7p`n4%>j=TQ1Ev;KbabKM0TtBL64IpP?im0a3X$~7H{H8GFZltw9GO%w z1)z)fgI0yWku_iKmXzG@A@9~tnq88WIMp3Rehsd|$nMZSpnkP5BZC911}OIO+@FoP z-w6n~%y*sC*;Uuz2ed$i+<_msIbak4Qxs}IpdE_zOS^Fe08Td##;yI@KrnjNuKf<| zJnR6g$QFRdp*~5+{cJRr;&_i4Z8hdWxw3;nGQ6ht@1buh;n1Pt6ycha=?h?Qk;KyA|g zGZpD|FFGOitUETx6!XtNcGJ?lWGVH0V!yE@k;mKJxV}zP(0VQR__AQE#iP%wwYD>S z?}d2xrA}B5_jS+w(8r{ShS`yl$&zJVWj>gz{TW>&@2;t$0Zl%g<+50zpJers-hA<_4fn1HeKkhFUHM zuy_F#((^b}m)T;HK1VKn(aO5c`EVmzicx>PH#Q+hQc@D>u>KS^J3D)u2Mz2K;I5Kn zx7uk3SdZnVLnN|%`|O;S({JCsgB7~pmYacC5dxv%X^h+3`$MnDf`Tx7wg3RsCz-fH zYqUXaWI`oYmAg#t7vQ)QCSCQ|E@V1Q67+D3^mszA+n54H^p|+uhmzhcBSOXVx9t`H z??cONJ6mAU6l}7Qx%sp&Cz6vznq5$*GYLBNxS@~P&5rBk~Bpo5^b=zV+psu_?9LW_6#kK3^t7Igtk zf7cE}1$7FapZS*Ob?m=BRsY)eYfchl7Ys=j~?I_vxG z`{&P35r)<)(uNc(I9q13C-$rhe=uf6&xS2HRQqu|#Qx$(o4F=&$Q6^^Kp({CjKB6X z{WJOV^U$$DdvyCOR=dV({^7ozffW+?lL`IA&Y%eCbrDNukzIs125G!*SIm0r82*EU zDev*Ro2@DL@rIKM{J?RBdp75PVidP)0;Ff>M&_xI z#iKhY3IFagvZvr@uawo<4U(&2Oh@NxkUa`m^PKfK3)s$8T7SZ>s!vr%$-fSmQ;cj1=-xd%BxFWzS3%U{kw|s4LGbS}vh8Yivmeny0 zmclH2FF7{?RXL*rfuRN_k8?*If%8OZDs_k@KCnj0%*yi9V|GzmeV}O~6bR4C$nXYd zJ&XA$1tYM-Vr6A@0bu9bJMOLg^vTIdoy~E@Tj5PN8tti?l>ox4)AYywyX#YRKp6ov zPVIP3&n8ltF{rawHL#08b@w{wM1XC%VP?8_gRA3Y&%O-jE%IjauwYH|_G~{z>C@A0 zb6d>!48(CHHJCNINhsctwoh+4y20P`r0s8$u~AGfi%$wm^+))rLtX8`>xW?UEpeA> zDy9Sf>)2KQH+AHpJEH(sA#0OX3KCWc|L{TDjN`M>!`pbD$UtPwA5Ww7QbeY?t*2xI z-`am98@`Wyo2rA@s3liGU{;Kn>;Lv|b<|G%Eyt{%CZRpdSMuqqReggqPsyRWmqSyX$t%uZ%13lY*RHr8glu8iQtT(j1@A{D1 zqwO+ce_F9l>oy1d(huu-v)=^!!VdG>qw)WOD}8@CsIkBM#g?}sQCo%_W9vcNj)nL6 z)fWy*uh&gWC&*Dh-?`T(Uz`4t zQ$W^y(IqA6wt7H;s7@hEj0Kc4(0m74(iA8cR-X>?2~Dy9XSF}aE>-tdR#q7Z*U#838+A+=DE3 zqWhu!VdyGL37`@rfgh$fJ>DNeNkf3`bTNG}Y)5*y6b_y*5}JB-k$R=fS=WUF0?>8B z#+0IvVQ1L3;w?~PAYT**E17&OM`krjoa9G-elTDhk<4A+d$z7H+g{!74zu(paqQ-8 z-kBRwF{m^`0=XXR!$s(oF(y}()NRkzWQCfpg1naJXKG`r3YS(EW-rY`NzY(0q*}(< zy%mVrB=?Rha*Cp-;Jki}s0#D5Df6h<(-@iN76h5V-$8Hk9T{8VcP<2F1-a=IAtX$F zKbPrOi&3u@t$)&bL8yZ&JAxrpLCzFGkn92%(J7;x#nckj|0l$I#P0X5NoA+6hGuV;mgT2-?W=c&)H>p+V77fY zd1#!dZ?fTlYk*T@wnQ~WO%si%+eBL@jWAC(`*3+_Dzv|Wo!ZGaL1&vU`*}VQ8P&m~ zDT870o#?Lh=Xv%1H~d9X2}(hVQUBEA?;v$-^q&YsevOw)MEnd?D}|erUbsLLM8_rm z!_-=WD4|yQo3enWXUjEl=0s1?4SuxzSG`V2Q-v|1?10}=YUt8R4$sG-KMcS}1&NC| za3*;52XI@cvEKwj3TlmCT;tJaTL2yk5^24l9@yq%te%h)JSjYVr3YAO#=YO)EL=pA z3Z?1Z@2FD5ND@WB**F5Bg9vbhWZS4JDKT5mS7#ASc>;|Ae&AwecXRQ>o{;A=1xTSO za6=uDmWT&~FvwlDv*X?Po#^k0nF0r8Haw5@2f1$=Bf9EoX=(9T4B9c~h8*ijUqRM)q$=Jqjk)zxRsV#E)yq z$r<=%tu|0_Gr=x`s+7yA=@=dBSuf+q{9cwofY|c9=^e!|tdA0*vf>es@bXSLru<>-hSnllu-LW z<255*Gm^33@kQKTLH6>Ah9gqG6Lijx>TEPl*PjE zTEOS{AiFwtA<~`#ZC=xK58O89tMd}C0g!t=eM^tK3c7zApg#Ena$RHKQwf!H0Pd9E zfK!Tbymlw347;E)8md|&7D)olI=kgOPq1JL3JOZCk^z%(_4GOqD9MzSMS+(IIGW7J zejw|GN-Q*957^{*p#~1_gEa~DD`5gDDzqU5b_MXD0J<;3-_lO2?N$LTGaLMW5Xzw< z9Y9^AAE+gCv{Bq&BLynu=gjO8389G}eu$nAJ2tzNn{Xdfi!uI_6cN`RBx0a`}ObPu7DWfrszIn#8cq0_Swok~TDJJb+jpH9OqxuU9YgeuQ zXtyi5aAlTJwKL{EHmbHY<*_pbe{tyKJ83%b}ezj88Jd0<5X8~@`*hs?6xyKNhCA1y%?SWM6ZX%0`uhh z%1b!kW6q>ZhI#(u!d&TC1(}fq9y40UD5{IEgh-U+SB^|DaaLmlHo4upZ=;&Lqx;G3 z`8CLH(hW$h@)7^Dd%;lVOM%DwgiS@2IaW;%4V#lVUeh+~7dZQ%@hUjx!`!K8p88h{ z4~^?XM|Cohut)d!Tz04JeRb!qQ@4)>iuMAv1;@FkjKZq!o-rq;haTy~44QVI7#msc zojfmB?x!I#&9MXfri|^o$SL0V>9xh$DFxlmvl(nx8)xK!X$EC@z+r+8dT7HwL+}HZ znJ9o=jNHZyzJP(&KR$4XG2=gTHNI6m*V;~-|ej29%%1|(%rWqd}XLi^c zX6#cuoUIJiWA5G>$pVH!Fu)r&O^-P!lO~LqFK!@NQ6D&c7$hYpZ*OfiZ#zV%rY=~y z?)hzQ*m8qS5)$$pC`&+J4lqFjk3Tv;A2zpdGM=XZwV3rr!lL??oE&PN1gMXc9^t^W zkr^aLfWhp(XY=R+JIK9?46$Bt1KaBQ3)ofx0Re3hyUR7oN=n`He8l_#jTaMhL)*iy zvGMVwkRf6|Cp|m_P)y5LOJW$xHc%+&Ixj0m+ut5UCD|$chYXH9 z4t&ajMa_6rlYZc|e70MC=T z5+ys=)=rx$UY@yVw@DxAmT3FwQ{km@MR}z=qIu1o@h#5X)50i*YJC0oV z@dBbyW79rFY+N@r@N`~qoGbmZ&M=UHGdX#CZmTH8Yz7%zzLtG|fa`Qvn4S5F$$d8| z*gu*g^P5CM`v3)tfY>N;n~Ej7sIaP|!-S8M{97gG{3|%?4+z*SMMmtah_S4K&e)<4 zzG(q*1b+HaVY$93apqCasLQ02jo5=RX*$_xi zxN(l8JEgu0 ze{+(uxjBVCLgmAg!Nqk4ycNc-C$glcA+n||r98+eKi@}PemSy_oBSdnYC-9_AZ4z? zVrVaZ(ty82af*F~-e@&9U%qzx%VPe$@Xtg^xXz4>(yU6%KFFIs#+7)}do;f<*Y^TS zWH)n}iiZo#|9g<0(e&Xov!lF@`)Yj!8-&=#4M)Q7im&aP3FFS!YP2Ov@k;~jmYJV{nZ!2N&fOLkiso4QpTdyacfs1OBv?!@R;P8!Ggw%}v3M?9;4Pj=L&U z(h0+8S$sU~laSMjB_T0!ZvUuKBn~Pwi%|6E9Z1f26qQc{Qk#b{DN>N43y@@Ah$_pg zT2QEJs!>SpP@%5AHB;bFPJ#Gp+Qo#wG#w2tHuLrsR0(ebYE6Fy;bZ&}&4gukon zC8o||gMZWvr8F^fgrkh6c^G8b-i7%Wg{Gzx7|A%--x_){uc|!1hr4zEK>a+$_(wM!F3& zOV85hx;>g2<~-pgJhVjM_)~TB@3l2%0uSKe;f)`iMO%L447dO8og!cyDk~^_ALqH9m)F}TRnlL3faQQGYqYiph(w1#c zn^hCWviAokU%{v!80f*l^j)5l;4<_bG?Z^$43_2<^Sl}4m4_|ncE?VCbB}4G!Y|jp zwVWR-w31wLD1`p{ujfS9pJkV#&+;FY6nNn>KYVJ+B>EkW5)z)Rh6nj-OeLv?pkewA zyJD9E+xb)Ae)-3H3)~QELpr^>=zN+2zQo=#UV2-NjG1XhEKwN`@d^b8K1b=wvIVLT z6T@99ZmTWJiu7Wh5oPMyjn*GL!^$sfb5_Ua^FjhNFEas>wSk7l#gg=sL!>{+j`Z850k+^{jB+wt~Y&rU6%zFgWm$f94t)_qwrL1z#Bo; z3*%nGNreSSOs^hKiRCTZ%ZQqdD`~Z}9)Nsc9)RmfV=?Sxwq5q2{B?1#&i z{8gZh52~Fnf}~mEk+P9cMY-{b3D|E@Q7z;7iY&-}AU#6!2FB^Vy}h-+;eZMw=#a92 zT#uv#sGd_-`2J95|IMC3``k>=U7DyMq@W-}1KhTPf;?KYf{;w#B8`Ly3M5R5qCqb- zB|@pH(R+;uiZ~O)x%}0fzV?H#q}c+QkCC|-ySR)p9h**n?0Jq0XgwFcF0DN2lel!Y zl{mLO*F&2+u-(KrdD15BjlnBjxY|~DYiA~#l7tm`Agrp*P0Xm3gc#ozeqg&YI$uqk z@13t`zcSgdRe+V-_H}NhE#EP1^=Nr?-mKs*Sp07@IY=?QAWxcz^PC-~VZB9W$oVJxR1w%}FiECJrJh3igU1_?h?Vo-I{&0c)iM{CYl1FFM+*B{K)I2;b2VS%5~d^6-D#tW~NANnKXAH@qY zOZB$!@ANGwbF9h>tQkyEQpKg{KL}GGH*dAkztf%3@X@D)q1n~)eb7tVS)LuU-rSUW zOt#HTt#WSc9{v?2O~k&NC8KgS6VA2R4ThSdRW?oc7Y=G?K8Pe4nVHauz$M^p6U<-}50 zcSsy%u{GMqafWdOsm2Q2Vl~4PEm8 zumE%T{O8M)4b?=}^|eBkODio!xdmypj!f2pObea+M}Nk(x}5d?lQ9QHb|7*T+F3A4 z&l!1hRrRsJf7Qnqbs=Ibn6(H>v`eGYm8QYiSnAYG(`Z;xGqU}iY{8BQ+ z@S^T8U>NO3Hg z5YlzqrUYKa57xKoZaZ&)D|K+!s`iBqn8&}=aq)pbH~~Z+3@4$ZZqUAgNb$w@b!a;; zbntAZz%_&E+22GA7$Hjov0Xm|luY1v3lu5gjzCCfw%?Gpu33+BAVsXII~$dPtp@N9 zq^D2nf%c%5%Svt)tsj8;e^6E`*Ge?1iO@>zC`HyVct=1!z%B-q+s73NXT`0mBa$LC zFjc0W8Z$3`C@qVv3@04Dtw%-6vhT%^P9u_Xcj)4IGI#`}J z@6#;Ru@O6tgiL2J!O9@|r%gy=b19|><`0Lr9C2ajU>K_6>%!{Rzglh?Ba!JRk-17f zAg8PZkWVDJOvE%Y%1km}r3JQa^K;n}cG`B&R_(5iw(^bq z1~DU(nBBn~c6)A|B0lw{>cnptCYpUdrCVDmKuk-8J-anCX(xl*-Kb<=Y(r+PB0K&_ ztmE~c9-1cIbC^fL%dU?|yN1}Pf$G3c6k?^Qq7pE*3)%>8#ls0=HEQt^SPT&WT!Re; z%$Kooh@YK5+-(YNLgw6xjZBlMR%{c(!osY(tm}`(3JMGB_T{Kz@(SGaf*EAU6Q!Lj zRORKtH22*N#8`d%m~;o&tG6*DTQ{6fl0=gBm($bty{4nv4YK-*{zoahkQc7u8u@I) zna^a7GknD4;_EKBYUPDiXtDdsN{&h~zft+q#iJD_*?*bJw7J2si)L}#(_~fjK@o1p zu7*e4^VF88BnyZ?=`*ewSLZ%oM5B9x6|zS zZOp6f(F%Who<)fSxv+}OhZ!UU3u-TwGrSg~QNBOJ%MS?=zjQ{6;q^#eQmksIMXOr8 zug*#1^(y|Lflv}F)Rz){+T*ZEa_uh*^tX9@vM}EV$u-#z@&p3FOxL{tGMS*t$<4|b zgPO@O3%w+N+Y_9fSYAtb`R0T56sn}@22-xSMeWWZuUm9D&T9GFi>1IAovu=f7FM`E zSQ!rY1m{fv9EwK2&&iz<${l=c{15XL^vLYgtfk+=TDGDl8`1j|@Ezf7L20$xrZ@wl5?0f6#6$I$yO7JvsNM2c4)XB-IRvT<` zpmVw~Xak0w4GpPad_;2V1yCmmTsAuCo$Nro7Amd?8vi6Y(uqL%uD%&GddDqp!APpy zdVyC%Q}eo$t8rxiifxF$4eGKE6qidp*f}_kFXn8po_~do+OHNb8@p0?PI4;1>F`2S zq5E

Ttkt)cbh*KF8|ggwDVLL}2gJk}!C$PL(RqDdpARAB4`8)gDGuX5^oT zL1irlLQs2{geeS1rI3k8Fm)E*-NF8%(<*SGF4X2b;*eQdF*}8gWDu<*=v*2iT zByHOQiV$NKYu)5RQ_qjh$xBEDJBXe~1YZvqythE>!g;Ikc7I+acJNS-<~hq4LPzEg z?%?ww+&!mLL*fUdO6@k5SESfx?pzY*#cE!W5<#A0W4omP77^Y*Fzx{c33r0J1RR!ZTzLVhS+SC^h!8)!KEIHQBmoVUk6?&q6>SZKNMjz7_@ z!rI7sNNSi=`rQhh;$tde{Gyn}?_drNDf~F?POt+a%^Ndqptj_>Rcx%RSA))tZ9v$Y z1({r18T;de07~1I(*uY@^Tz6z!VOn{Lg#@yg9ky3KAwM@KD$g-Lj!SqpC~ilUS)%^ zIv9sKXy*d4L0C9cr3P)Fj0na28Bd;37(b0w~14#tmgL>PCkOB;(Sn zH3O^RTXrXK8aIq#he!A8e>Xy1{Wa(T7RiiC2Sg8EGr4bOygv3~aD7T<&d8$A2?DX) ztl9VK+P7s9bf&LB7+5}gH+Ga}AobIt0Ir0fxe!tCqfnd`CfjR~%RtEinh}wNJdD?~ z`1IifKL!t@{2+?DWkzdxC9x8n5)_8NJCbhM#o#H4iO#oS`D=x6XeK=J?@@&WRX;VU zqAfccgJqF#Yb}K2ENH#UTM&dtHhJitK01HgPilu@h#)KcV{>Zo_WJ&T5oZkSaiYZt zV!j&yfI8!Iy+7JEDuL02BhoY1v*3gXw@mU~TIlh7oP&sMde)s1!Al|X!F>;9>rq3~ z5Eqi$;{Fsa%!>8dk@SPPSEN`_M^zpf|k^P;7@~ zLSyXaHa3T+pAVo4x_O0#t3zH7Y~M649>6qXyOMP)(KM|Gd`N=c4OCMe2M1@{5TJkCcP7goMzgviyDfk zAd#1U0AmCq%ekELhLH2{bGErize6Qiz(9&`>&jN-koGhIzq9bC@PNEbu3t&07v_+1_N?-s9|O-;?-w++sUU zLLhuaqu$Ls!iA16i7V=m$zbtlh|QxLz_Tm5PKN-*`QaqKi737daKG~3Zm+}rdY|%P z?c9%hqQ1-&f6kY$=KST<#ihLe*2_Tm`+tm3-@~BG{l=2#NK#7uhDn}3lLryapsA9o zBQ9cq!M=fWAwpc#;I==~0{5BnyM*2>AKqU2;8vTzXq9t-sIq7lMd4mv7Z1BTg{t%e zu9r?7`W)nXY$x5m5C4*d{&wpY-D7NWG9btN>OMbP$FJoT93tvdz0seN{1?-P+Ypdc z8i6mg2fYA3r3NUSyX|{zk7j%5_>$-?HF~VA5j|tu+}s4t40A==0Fwq3cDZ>;OF#r* z=X47Hz9+;9;A003mpahM17Ku>pg2P13jpOSXyZey`bfz@zF_#1=0okx)=Md-SNc@b zxW52gMGV}`EM6tJx1%4*i|xpF3Aj$`!oBpg7R@%W2aQx#ke{SCQ}zoIcQVwv!37qO>oy^7v?W#A8XCOF&&=T-&}iT$z2GR2;?NfVXX^l@$nRpt04iwi4{ zE7^`GCdCZJzH5%1sbPY%F;!M2J=jsXfP%{cSi0VDVAA3;-YfaYDmK%6<$p zKeyPBsl?hni7mh*Vuo@P!&b5x*w2FkGpI2^ojca2ad9ag_m9%QEGrlQar)!TJuFSw z_xqVU@>xQ_VTSP*A0|?gK|XDCwz@W5L>i~& z%^hHK%w;1n~m&X;3R(5)M_cx0+SdIErN&goqoHjDgF zgA??~F1s47dZ2Tk;<}Nzy$Y4o1!Go9sW^ExwQhhxf`v9{XR~>?en9cTP}dRF#uJ=H zFw}MUb|w#UNa{2f-~V=QpN$NqB*g@~u0pdqi%y+)+SO@jyHlm*)+m~q5W^W3e?sY@UyD z9^xF~D;`F!CuX4>6-Jv&i66NG*~Gt;$qB*zC-s*#hF$1tuOERXd$J$?Q7C%~QzpWP zp9H52-}l?>lCnFb_85&9{rSQ~TtUV&`RI|#-Y8*5Td|dG`l6W#ef6tzbe+J()yfOV z{_8mDudWE05vxW3r zz8oRSr^YkSq|}lN;0pxx-~`8^yhECpZPr9rdcc3?(;xx=NA2m^yHRO9imWST#H6HJ z;uE|)RCr|}^pm*>Txpxg?%spRp{w~fc$0^)5(&x;IyR30k#F3EhpUYJwU64v52E&B zj&MqGNns#{^nsLXpq4Oj)?PxHDEXZq!g1Zweeu+)a3JbBFq+soo(6s<32df=`nQh{ zmrY*NtMNK+<|VOj!Ipf_Sbx-NeY;@I1@JsyZk%jZ)46O&K&;$_cnxQ~s|OJC?KyBv z@0F#3Qzu6E?WO(Xuxkp31Bq3z(_)EwOI>B(4DPRHh}G*J8k;@WP_B#mj^(!)>BOv& zY=}c-W3eMk!Y@h5b2q5EcB#6Oy~Z~|*=+V&M3Y{^{nuBJ93_RJbG-lEpI%kdB(-!lnhV|ZwAnv(CQTb`wV2GX>AYcd6)#RB*n|UxGC($H9}PFF=iTHv4nF zIkjCLub_bUP^?d?G)HBM-Q+kuJiG}q&u+Vn?0?&h?YR;EBFN}RVBZF``Ls!YrPqXG zVXun72qt|N>ZF3paCGCYW#Fk<8pZF7?=DRGXB0b5iDA8UC4G0avz);R0!$qxCT-^h z{3UN&_m57_$Gn=`4j+UxvSfZ0dje))^_NjDN@gfCI7kQOXzlY%H`8bH?U&Q@_2HE6 z@h2^fXu-)ypn$BpXzbH;UosXkLE4O`2jdTEhx|1f!6(}G(Z7*Pt&~K`@vNj79Bmx* z)R2@!K})y$6s7fV9h4W+IlLED|ND=}>sw2zfyB;%%Z0HeMd%m;+F3nD`o~)O{Ws?K zFnKg<)3CF#uNZt>Xz2+eV9_~|2{JKY#LncEu|cn0B&{l}bDCEx$uHiyX%N0`Xd82O zeh!kHhk+2`0ZvQfTKns&u?Nzohh@f0u>`cjxMg`qMiMXbkk>wc$yH~v3fP^S;rd?| z@vIYUQ4W=w`U+!hJ}xN0H4j1-?hF>P?#y>}tM#sUQZ&CfMaGVOgF*OKl}4zN;HAT`$mEsmUZ zIoYbYk#fog?IgB~>VY3L75TYMY;#fNhOzJ%gPxd6_KBlTiPn1xd`go}Fzd9ahiuAhprsAG z6i<nb^n8AZf0eGktJH%kC8qYTOXtAE0g2C0yQX3963r;NG&;!Fv8tlCQ_TLRc z*8XUEIM|l;Yp^rY%XFZhBBn>$39}sY)!r+bCr>`S3$4pkyLB3yO>dmg&^({eD4M;2 zsH{8YD;G}IIw)vXhP;r+oiUE$fGv+srH|=1O7z&czGq>6MxoEr15+b3)!`^}!au}w z$+M|Xl{jxtN`^q@_#5uOmkgYQXC97(ZiNB}O0@EYW*oIgq_Y8y3$SlP-r!c~cu5o9 z&T7C6=X0#7TlNp7B6UjR?o5TkkacmW5HHd0*O2BKJEp2C6@mG-H)^`w{albRXwfFz7*K`4f z89@IeS+>Z~`r<3U^U5j^BsUdT!eX#q=xQVM?7FugHCC0fV=DUZ{s6y@OfQN1KXHrf zsi2n&p__92^KimHa0p7DI4I<4DkQ|QAlK@x9m6hhbQP~BCeYJ{I&f4AIyCk4*Q^0>Rpoo`@b z3NOpaJ@G(YjmrJ6cghRyvs~nV5 zOjVGAA7x)Bhg&I5@{)o=j3oKo?hCmEC#fo9c4LJP+@cAq^dxLP?Txbf$McXxMp|ND6F%=KT(ab{cs-}(05?|$P6Hkp5(mLCDL1hMYl z7k!978?J5%OsDNT(gNVfLKLo$K8*|^*=Wj-;vdS+Y(3SgV!Dc58IOHR)BVGzXTgJG zb;G@bZ4n5~1+YwB9-V4NnBpVx=H>=$Ogx0&nck$LhW>erW-H-BC$+B{mX}Trh!;@r z4}(3Mr>}!&>z6e&Ca?7IH1s3W(BE9w)YM!87Foc;0nfS;Ir=gfd}=j&!;y{s8rWDF z5+>9IeH|B!^;a8>9#6!Rxf1~rGFNl@z;sTMOn;kmcdj-DSf&6PXvkJ(;lTj_C_>3+ zPEJnAWzZ@1GLUix^tqB59bljZ3;}_&k4X6ypm+MEr>ECHKL{EHwwF?F*Rs$-*tsfU zUH;4#|N7D?$&Qud-)60^Gs)q(-4rjsF=Iep6&qroJ!4nX=$4}^m2l z&N@aTOT_dZ_<~?ND7i7!z~Hxu2lpU!qg`NeHeiXbWh0UerXhv0d}f- zt=*Yz)!p`B)eS%JYf;E8mzv&|wBH$zk9ZZ|`y>dD4K+%1%#=qctr!d^!F#;FyE$^; zZ0+c{5QzuznG=9PZES2l)ZcHPtbpcAhyxO*bf%*^V(v%4)14Bfe)5W=n(;S=Q zoFiKP#681Tf@@LDvv)gI#~VreB+CC{)3H}?`B(x`AHQCG?t$66#r(dkYqzb-)ypf7 z7bQwTAY^Uw%aDNT;1h&OyN529d{H84{S=zTXTeEKwz#p0Y-w)KY#yKfz&86~Mffm% zM#ii_O`QJpO6ww*(RS2oEH-{9Yhb@p95d+Fu1o;B6`$dQ*g1OIl@Q~Kgp0#`B6P%K zV8yfoUv)Jz?{;jtCWDEt*7cUndN7M|2uabOAYZxkS?N?Sm~xR*P`sh04hA4tw3_jq zGZ{5C1YXdblFW<%#cCL+T%p@0b;$eRPKx`=8+dbFkdTtTce%ECee2eFa3QOvCJvl~ zwzjqaun>?6{l<)Rfp-qTSq#n2_5w#J;w}%IU;wG0*tO#TM9*d|x`a=8KR@{o56b|n zozC7~5^8EhcR(WqSddTXK4HYdsbjuw_Ll&(9uOL;zdKnB#cY74cX&iZ@ys4{8vyDg zK1tMbPpwE*A zl|nQs=a;w5Ox`2c4YUk}?87=XG#DEh0R+4*AUp!7`uVh-wDe2p;EyySdt%3_=Aohg z#1m!tw9cx*OVB0=1te~$Wkl!B4%l2* zT~e<6z+niWQ%Kp^emjMUW~2fNDcE@ccJOHO_g4m*m~T+yPenyxL&JAdQ&X$!zLZzM zHwgSF&;drkW!_Earu(F-DyFWE4_s`)6AC3+UmPri&Y9`A`o9F8g^!AKI*WynC%01>cS z3=9p~e&HC~@8Ji!0I&q`p#@fce6LYh_y7CW3?+049FzPKIqU%sCzjRn&CU59F)b}} zJhht5(xy_M9)n(K^^8+#CU-4IB})m-+<*Y^N2Q5*kto>#_<&F@A=p&lk-)<`soCs45m9 z&}Yq9fWQM0K&l@(yqT!1tULi)57D4y6%3lX;GIM5eZjC1#OjSOJ1D{gV8C&z3)0iQ z?dQMxfotGfu}%lD^^63p2{oG`K`P}ElJ^?V&GotU`|+T*QZ=?avD_}~h=_;~Mn*;p zpgM3esS|nxB_V0IK8H3b55fNf6FvLGx&xQO3GP~4dti{PsAdTRwioBcto5wjjA@6u z7r;pXim3B=fw~xwr2+1HVcd>Jg@F75dSi#6uNGunSag?74-U#RAq8AupS^~l}VdY+WItdhH11NjrD`$0c51H4$UwgAMkdTnjfu{!DRye3H zsa}6V7qp+YqJf3*ERMsT<{K96FW?16Sy1H(M#-=c;28_%qa6TY0hz3K;Q){1z)8UW zv*qAb{bBP9s2Yy*3hu%pRPg}9o)`lBz93q~N|!yF_sxJ_jZ@veW_1L}H6_5EeA!Vn4o;7n*{MSVfSjc3Z6AP5f2SRe4#swIk z$%1}*v(Jl1P#-w3O5%y^P7aTfvQcR+i=kgyyrz&~CF$7kba z;ei{aAhN<>=nZtsT3K27fBUuq5M&rA1xa$is2M!ZRIv`MqQ+O}xx~6R0IDrWgG$#bU(BZ&l`Tk%Iv_*jtF6ptY{ltacL-IECdg=uP zmQQjN7?rbDFMtVstT-t+$xsU|$GU>5s#uU16`M@Gf32qe70_d#t?$;>52&a}2U?6^ z!;TuA(GP?|={Mj@K{9l5wUPV>ftQew(0No`Y;BD-Z6dgED=#rKB5_ayoBGq3jjYH zxP>}^zxk+W%4BqWoZ#ibPzb?=Frmu_;13N0vvfhSXU72zssKWARuK9T3i>ofOOwCkxDDSL$pnX|8O(q_0N*ml zy7~_2>2f;XZPF{XT#HhCZ$AIqHJ<_=$PoRf!UTGVr?*XB7!nC73O)-IbQvUcy_oYg zUAZ1KnlIukj|@T`(^9AA1aryMLdr5hu_>w=2*EbT^%cQ-(YSDahvwF~kg3Ba&sGsO z`?YBWL8243ajW>G0};6-WBoF@=#PrPC428RYrSmMcOJFNr`DykLARU=!wT)R6A!+A zEVm)s=hNiE?>-D@Yioz7GQD_BMn)!MIJjoDWWz4S7A9Uek^CuH7?;Ti9dJ%NxXe33 z@Wb-WJU*@g$mN@o(o*6DT5|Ffu-G%q2+y9lx?Nr*q9vxKMMXyowHv*Uy9BI~P!UYd znme$U=#56RWX))4X$uG1t#VelqpCvp4@?sLR<5@1T%Zyx;Lt#Ys(@RbTd~ww8Eo{E*!aY{hZn7C=gv ze1A#?06EsZU&&5>*aN2D%8H06`?1TMEWVg#{do^(BS>It^54HAB$U$8S%F)KC$lEJ z5E@@Af>OOfl~4!)d~k{qo#vtX8egtpdk`G~Kp5(?o+|k5jq1n+7O)xmr%`}l<>A$p z8W_r1W90EfqHigR;upbuO$XB}38LADtLL{X9~ROi%r1}_>wSkW(6 zsRqaX3P{(98W~Z5xy!o=O}9Jub_>$_^IW+cZkIlesdGu#_sE|U6B8#*D$GI?d+VkY zp|{j$K(%Lsim|k{wJA|y+SKgZtKDqloHJ?&N-F`-9XL-*P75~#j&(^OaV}iYj_Lll zP1E{%9%NI{HJv@q@jlgRxh+gYiBZdiaZanp-n2PF~P^TO!6+K!ZX>^G1+mPk< zuorZO!I0mo$B*#u`|ELgC(=hYt3Nm6tI=QIgjG)t6(v2Wy0DCe43i6kqM6^nNh^!Z zOEckyfq?sg`C#Kefv z;ccDF#KjSyNzwwbqfWU>c2*V?4EF06>FoaggB#Fnns++js=wPaC#>uPpwwd^Vk51r z4ChVx^O+YPv~UHpV9!+Yr;i^&BU?fB`j3?g`&1AC-^QplgGkR0L~&5&^==)YB1X{6 zL|>nbJNdx>iZ$x|y1OecySJr_r9!{epvo8%@w@G&C_; z1!>KOFRs}l7>(*}k7jd`2Di1gE?(RinwoN%)mmCwf?5HJtOsHXg%h`6>do_W;vT9? z2e^SH&R15D#~u)~%J{33jZ)y%3nfbey&8?=hI2RDSzwO21d?1WXs*N>a`A)SeqSw` zR#OsGF@dQcD5{f;oLttvfIRW16Vyx?kaKs>mCP^Jhg_1jU8r`3PpUytsA^X26K_@% z0CLPzhdsrKqRb;`ZdX=T1|6US67tx=*c20B%OAGfO#`Uxe}k>0@%gzZ1>h-8|7u

Q-sPLcLEDq=LUd$do;k51Ejo%_yP% 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

Cd`*CJst9qNkR*iNrtt2Z0w)$fI#cB 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ℑdyCf%dkC71-FZJhzxgI4 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 z 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 literal 0 HcmV?d00001 diff --git a/sei-tendermint/docs/architecture/img/formula1.png b/sei-tendermint/docs/architecture/img/formula1.png new file mode 100644 index 0000000000000000000000000000000000000000..447ee30f5734f1b562a26664f16025cd69265b97 GIT binary patch literal 9833 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 pKwu+9vx2t#M;`x6DG$FvU4vE19d12Dwb)i}B zmKJYq*{3`Tr}zkxzesaPdWHWz3)GvBW_4o{ln~7_yyY7B1GDl3_j8<)Ac=)W;*iJ} zuwE@@nC?oJ~;VC>pU zRBf>5gb}B=wtC1y1%`c(>D*9?xRq0zpw-59OhMh1Rdng^S8?R*Nt1F$M(e(7{gj$X zZ^0WiO6uxB_={l992ZMMq2-6#P@z0$ny{R{OXkgq$S@>@4Rgw#5w$yJkEF zJ*eWpayqMkjk4k!L`lv~gE}@Mrmb7Txv}P<{TZB=H(b0nCq=B{qBwNYj^DdH-8Ry_ zJ?hHr?~h;_bJNW{FpUHM?ip3#cP@LBdqNLCpAKq9`x*5OaRhQ{EXMrOPSaiT+u}r$ z+5g^bYTMj=fZ;( zc0NwBN)Xm1+i?42Xe4~UYogb7ZmCr92`@0NIPtVAOIZd=8DHj*;b5!Ao^sXx8c6Xn zh-ku|g<6}U&ce9kT{#;ecyVOHD|#%=t@m=}y;tVAo@uttKvowD6{1P|toK+%3OzD>*^U)~uim-jm7*Hyy<@YXb-$kLf6 znj_RyFnhrI>BQlT(vK(YFk5~L?!XQGCd!8$!H=bOm2cLwT$2trf_Wi*WIwFwJ;C{( z3&jpgF#qJayD*ifx^F#{-sPS6qY#}-5CRSJo6v#Ujr&sv~Li{ zyi{`(vLwHKSX67CrDYe~(*41kl;mr;d(&Wu{keBpp}qk+EPshhV6Dir|Ak=)Oz!ER zr)Y_Zo>BI2rJ%|2d3$oBltKiDmJA*0;eH)^h0y91j6z)Tjsum*aG}kx=?6%5Ak#sL z59;twKK(C!k_`Q@6YpwVJ4eO;%H0N8`_xGe5GcI9V&j1)Fp&~EWv^I`6RD(k3R&MT z|5%oZx^P=m?Jy_h zl%<}}FqHBNX0t=%|6%++Z!WNeyeIp?u&ZarEsRdm5xu@cL`7cjm(vcn#C&~;oi6(%jGfSC%nagWXmYWfw4&%{;dyhv+{(=XgS>#mp^ zx*Ywdk#F}*pQkMKLqXXTP3x74!?LC|Bir zI(ASe!0Ou?yj;1Jqe&v08k{*Y5ge8rK^|)v_sqA4LzT7X7>HZ_CacV&aw>(b6K%EN zX}uTECH?d%<)_R&!VUfTAgt$e0>uInW-FKy&Cr<9Q4G$k^?G}hg?A<18LGQYDVrWC zCR~iKKg`<0Z2T-1lCOomMmFwdB%AROw#CTo_3k*bJ)=Sed&5n84|2dj)rJ!qj{bI{ z)_7tQ)XD;VN<}31H1)z63ptv_?u0}3_^aW*CEw+hyldk;Z(r7^uDWko?S+#}pN-e^ z)tZuQ zO(Ln3n3z*h^^{pN0d2+3yISrc3$)-xg;eC2r*zrW#f4X%B9AwnMEX#HQXUae@=Q3w zEq&;Y8Vg6tnft3^pkChFiaueV<`Xa_eF219BaU?~e%|`!)UBRKtf7LH=ExxpX>4@? zF)6XhToqQ|m7g-fg5T?&h_Ncp@70yT0UBaJ;_t^y`e;!lcrSex&!05dB(ytnUH19W zxyd?jR|Lk1ikDk2viJuCT&C%xPjyBi(yx%}3jpvMc@C6_968%o90LG}q%_JKs$PA0sr zT-RkA7B4XP(%MJ*^I9<-b3T6bw-jlJqELvn9R1Ew@r{5;c$W%}hn_P!81cG)wHIk# zWU0`5c?1&k+(#JQk#hDo67PZ$M;LFd_y0e49j#o z@GqE$rcXwzj{=vR@@^*Rek*UowCRRT284g2l9yeKnzABk-M4qhJj!QNK(ri|PGf7h z;wD{LsZvl-m=zs;t2`{chRSH*d3C61aPdswM^h~M*4675g_|?vuU%o`;{Hc*`TVnN zhVf3;QSi=~l`&U~fvoi5>m6&FxaIE4&Eu}TfP~vg|D%^3UzYXvCM1sVnN;s6LX2+6 zgCr4y5&IE+-QnqU#=wNMB?o6}{?W%3iLaoa8!yi^z!}q3SKIxn zYFjl}8vB#HgH2PIg!X=Ch&sT5P#O)H_l-J-3h*9iWc{8defx=>;Z#zf;L)$SrdCvS z+P%fdolv@Ytqfc#Q9QaO?3PS(J8Sd?PAxc$b*Z)wOi6`DyTB(Gt?`=+bv zHBc#zd0vMFSa~mHH~Ri7`70?JQM(@0Y1DHZ(jPbKi1WUm<9+(W2kJ`sQejrHbS3hQ zIW_QbFu% ze#V!PMVOxrW43YJj(Tf?j<3D%*I)d^2>x>xMAf*3+P@2M2?>6Y?X>%wT)r>F5RH=~ zL+N-T!nWB}1co)K^3~h8mu@w@Vp#ixst$Ufe%taJod7VxoP~%7BKf?xMT0xeNcj(X zV`6Smhdb)gS%2}c&T=eI|I(tIdfH<%xDz~oije3H83t&OUep`=*IuG+AGr6FsdsEI z-{WUDeET-Bmh%iAtgd?i$7Iq*mqF!yFD=ksX({8P{#{zXY37$YZ5np?;gs1Q%jGeqny??_xYP zh0ATuGXZ9j+`HLLoytOYF%G@_qb_DjEprUa>$Yva<20z`{8(0olyW#)Z+7&~w$1~k zN=hKXusxEtv(Cn6Us91MjZZzvxzR&}q29r=C;Qh!a8g`nU%j1HrWGRlZvfrfrbFMO zeKF{<3{%}vnr)B#jEoolOudb*@%WxlLAV)7#A9YNJ>QjDa$T&kbWpSL#wfA=REvZ$ z?8D@U`JUUB1u9N{D`Kc}1|v|KJk6|O2=1ZnP>^2a=W8tcB;tV@G$WFNLZ^P%u@QIN zYqMK3P8&NLt8QhxU%UH*PEB8!_)l2eX}$_~T!30v&UkmhqxO^F>fep6k^sbS(gC6u z)QxK^Vg)-IMAUcl0AEtN9i{6;TmE)Sc zfHvTR8=peG#O&a8HS$z*&msp>RyNF&l&Im)k)p-^VW%YO)i-y4!QQ7Q_AZTRNO(L?a?G!`?r@V}PS5UoL*A!4yx}>_FpACVg(tT*pg@&BFs{W^ zJMCs~GNF0VpV_S;u01Z39FXKQF}NIe&y`M4a;85;t&r7V($y&`i^O4hI6FOjGXE=}6=Svb97trV$E~0! zqQ_>Sx|KCRw`ssjDgWA9{z#K}WAdcTJZ&v(L1)R07{it6L2AP$=svzOz=G+#lom8b zVL(u^AsN4L60mI~`^)t}Uto9wa%iUpqU$A=8S_(hUChz0f_qz9#$+Aj6{pRESfQH!pZrLx?~LwztR_1s0;)4qZ$;Xcdjh_@f9@;qoAiOLaZ*-Q{d04RCD-bJ zshdCVceuP}s%_I?drWZQ7KaXnO4&u@jJ!9sW1QuRG|fH1i0fm+`uR_x1m|7GQL;iI zBCo)rOwpttuw#+vGj&$CDQpX*eZ|%#tK@mdhnK~#w!&2m0EYV#*4mrn zV&l`=|2azozO|ba7vbBTC$9*)RpFHM|Js&Cglx>;*xHVInBlIcfXJwKZjk@OgfK8Z$9sCQq+}} znedlBmglKr9`W0?kdTukvt0*Hv*Ob(GR2fqy^bHysOnQAVCSn_{-paG4*Ml)BeHkq z^ifM^@VQiN;qpXtJQOLk;8|f?n+LE}%t%5%7;s$5EQeuD!s9XHRO{C3!c*6nrlBM0 z+1Fs2Qipr=&a8Fb)FI;nSuhZG+A^Efach{G@ChP&|wgl(mHhvVTQ5{oC|c0kpTB%8oTbiBSMM zpe|hQ5ksm^euR~f8ry0N@(DrCj|kI9VbMHDxbBgic>0+Gu@L{bt3RRm|Mohj{y+Q) zpE>7JCi4qbFSW87UvDvUx`XV;x!j6 z2U5vW{L0$!fhi$5N;*nPD;uw_p}JUD*@lt}CT;Mx;et$IRg)mX7!P=F$5lJr;S?(r z%K1;&DMJ2?KLMXLso@%KP{xvUj#$PC4nSfe5rvYP7<7Uos^91$ZC78#yM>J_!HyNS z@>Lt8#Is36rkcbnq0?G4al24wl8PjL)PjPV$PTq%xBHHU?~7ZL0x|iHDrX^j#5hT3 z>&TU2(;G1XXZ&Z#3fqUTX9J8h`Z)0rxlry1IrXiXHxLO@7sM`kc6!KM_S3__@g{o? zA))e^wC1kbt6alce?Vsro7D5&AIW3-+{M~b5L#WM8U*W)Hm<_SJra)HkfhjhIiW4Q z7P(m&CjTvEEeSY9{Cm3F0n>Yl-|#vY&HryEBw<~#^wQ^pw$;UDz) zkBO>$V-p0a-SUfkDLET})ne2!n&|uK=fegy1m3m!=^&6&_Xdf)4@P?HqoRpU>5kzI zyL?fW#mTdI#0yp8aSbxsVl}SVrEXar4R(piKCcAmqi}>MwICcn0n^Z>#_~#u~SXbThu_2-2NW68i zI)B!9!L)kWe=acK8-0NPj^>1PHOsx{xBPxU6PWvygYG|&s!^d>TO>sgfyL;(LhOwV zLkz9Uhb8BKPL*I10oXKV^6QMBoiyS>Wab+F?#$;`hNv(we`0J+N^4ElY^Svq2)VX6 z!|s_6f>z7XD?Yx0nZLK&;{MWX0O@MvJDX+TP?4tcR=*Z~3k_f2tc3irC2gYjaj;;> zA8ySFW`HhE3#(}XhTiAO=)$3BM3%$vT>FRR2#v#I-pQC9GYm%x`WV_rK|yidJ@N4Z z1$}pT72oeED&K4hmZ0>QTMigJ@okzOV}{Yo=3l`7mp)qKF?uupMY9giJ#B@>_e4Q| TrGQ6-8x16{CRZh6@!@{}Sksjb literal 0 HcmV?d00001 diff --git a/sei-tendermint/docs/architecture/img/mempool-v0.jpeg b/sei-tendermint/docs/architecture/img/mempool-v0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..dc3da6e779f2e0cf91416d7fb46fa9a125c22ab3 GIT binary patch literal 94476 zcmeFYby%BSmp2+JP$1&S9!a1HLo0tr^Uc!6NSwZ&;m3zT39uEpJ*Vh`>TTnfdD z7uUk!dCxr0yk};CAoWk`e!9rf0n%e;L%;dr;l+T-%9!R>^yq%n1IT?W2EaWctouY* zw;ceQJ0b7H`cvM&5;o4mNB1A#-un}FdI|twW8K4gfOjY7QylCEH~_4B_a8jO#vvkp zL_*K|jFg-~T1PhqGlom{94w@+ZHkTt3TipKc|=uIR#ET?$hg0c9UW&B)-ZEhg-rs?}~90q;?7gPp@Pv%3# zAHUkjfwEd=uIQx$x!YL){{6dl6Wu2QNC8fi|7!Vva>q&V>$zz-d_R_|PFlBzLJ*wD zdp~#cPI&r8Ty8Xxv46u@y-O?66m#7h}PPf#M86y+oc0}B*pH9U6Rr2kSjo+4WC4Z>%WW*)gm zv-qJ|zL20-=esw5HgQBzBY^P@uO6Xx=(0erYs_klTiK(YaP7dZ6)?nCzH15P-zDkX z*g`UpP7_NPt!3N+MXAc$O=b&1Eb7Tg5MZo0tkF16B@;=I)>W{2&al8U#bHGmnn;`N z^%1Lv(_cFf9!#~Y%8T!@d_wBH!Do1U45c0mqKv8C<-dccI;V~R=m30+8?`XA$nbua z9$VIBvRl9e$yzNuJ(ydBKz&ozw$V3C(i zNbu&@sY=-9oj0;;vtZ)ET)^5F0}VY%8odT_3&e0v!gMads^Z5C8d~UiWJF$1s}F;r zE}fyyYE^C$=j04W7?eA?p}#1IWt3L!7I3Xzy?EeEw^2+r|DW`(|1pRkXmHS%+&v@H zT26J|$y9NqvN5Fszf3lrp8TorAI8S}{Zzn3$ycg&d_l1uS*cx;Hs2yx8}W4^uvVm2 zEAX6ZWj%$vEl4oS|G*m4(xFF}UQI-6FiAEaEuv#8UQ&)g$KcQh{N_B?qQiqX&xzwQ zlOE(}T4PM8UlQB;)~jAI^01zJvp*eSp^4sGh1qy)X=oYHy@wxE8PLtMU9Eha{;Xc8 z=(@&o#@9b->3^;xw>>>JrX=ntyN>93t>nrwVW3b!fuVttlqd+~#V>=mL6j-)nr-gk z?#Ns}wOS0@{;eHJO6s7J(O4{^vPG!Z*P?B^#p44;6gVrJxu3nM1Tj|EI7FdP8Jr2s z)ch2zO70Ik+de>71ROTdiy#8avE4VTo&}_;ll>{vB06G5k!;?NgCS^*xQ^wi)-2Yc zPkFuUvIrCx*M-!uX2U_y`}!NzqKLHg5G2WD}%AvK_J+Yv;`7Yr$A* zR~%N6OddgnB+0AnZ9SGW@YqRf1MpeMKrtH^ioZ0lr@zottj8B=tjdPjeoZ)KFgQqV zeAL&sItMk(wG)0;;%iTp+>1)yR|@0|`~>!oU0$r~fvUR#!v!;oHUM z`vZQ`K52#Z#-^(4^I6;_mDK(Z-O82CqPEEsB1l>6pNM9&W`hv>My9O$p-rlN%dl5a z^clz3Ro|V@HpPVDO`@eFsTzBQZL#|Zhd)7+U*g`DRzsd3zHk;7Uj=){3&+m zaSm;lPO^+)M9s$Y{oqfW%+5D5px&Nt>DoOk@HLyV{fN6mDdi4Q&NBcME2$B&Y73P@!^47G$~(MF*mKf5pMK%qzt_3~b=DQx$Ld!TljX zoo(4~xh_Dgur;Hv0*0T~m*;amd8I5Ox<5H|+VA2{Hy-ODxkKPFR0SG?)kl`Im~58d z@!3eI##?goipPDAS=%opRyZ~dFP?I_Lkz8Xa=LxyqG;K}ND2jGjac>Tk{p9;z|7C! zaBm7}UsRKMrvTm4t_%K6qjBn7a9_o9%Q|<|s|y7g6{w7%20kXHcp?*?5QWmnrtK_G zGoPWuG=8LAJ`NL5QW6fZA7%Ush0JrW!|9uGI&UorKW3FyG=eo zvIeb-_A7MF$*mSo7nHb?W5~7*RMO$2jL}wYN-_

@lDVVp65ap=!a592}az0Eq^2Lifb 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 literal 0 HcmV?d00001 diff --git a/sei-tendermint/docs/imgs/abci.png b/sei-tendermint/docs/imgs/abci.png new file mode 100644 index 0000000000000000000000000000000000000000..73111cafd445983efaa4dce94f0496892bd34c96 GIT binary patch literal 44405 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�&D^D;U> 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 literal 0 HcmV?d00001 diff --git a/sei-tendermint/docs/imgs/bifurcation-point.png b/sei-tendermint/docs/imgs/bifurcation-point.png new file mode 100644 index 0000000000000000000000000000000000000000..dce8938d888cee6c0fe7b9121ada1f1fb5f8d179 GIT binary patch literal 41104 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 literal 0 HcmV?d00001 diff --git a/sei-tendermint/docs/imgs/consensus_logic.png b/sei-tendermint/docs/imgs/consensus_logic.png new file mode 100644 index 0000000000000000000000000000000000000000..22b70b265711b04c5555b1a1ce982d32bc8aeaec GIT binary patch literal 105454 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≧1Aed5Ns;#T_5JQzsix- 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

cA)=n<>wXX?}pE3 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 E04%{yEdT%j literal 0 HcmV?d00001 diff --git a/sei-tendermint/docs/imgs/cosmos-tendermint-stack-4k.jpg b/sei-tendermint/docs/imgs/cosmos-tendermint-stack-4k.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b10ffa6a22f733290755cd21e8f23e09baf259d3 GIT binary patch literal 640210 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�E`e7b~D*Fiwiu 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 RM~gCOBo;ovz-0V?698YsPIP(!~Ueuys2S{DlS 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 literal 0 HcmV?d00001 diff --git a/sei-tendermint/docs/imgs/light-client-detector.png b/sei-tendermint/docs/imgs/light-client-detector.png new file mode 100644 index 0000000000000000000000000000000000000000..b098aa6e22314d87a8a8760ec44dd55a93a091ad GIT binary patch literal 37398 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�F>OVYk4$mRbn5s2w>2Oo08zERL0}Y}_ZuJp zC(Dj^`=E6W55%(NS}%H37nYa(OFgd^R!;|}1$RUo?&Ip~$0Vj&LXXV-Q8L~0Rl>BP za{lZPw1nyyTg02%)wv) zvUP0eLE+V)AxEZju!zZcHQ6Ql=1#16_%osimaNsL!24_v>Z%v7kPN0GNj@c&JWRKk z3dkYP50`y#@S^|NO@kOmrBDJYm#T0w7v^j^?>b@`$>?kiNA^}sRq?{b4Tjj1PR=auKV@6%MCPvacJ) z);vLkwVVs?G>>KL!fP=|1g7ct7+TmE@|6{ve|QWVT|1pJnW+>|jeC6`nOOY=S#>NkP&%kcb*qlS{_~r z9c#K5q#a=r2Lwr(b@3Xr%~|n$w#Gw_goMy9XX{_qnO-zctmRd@I1dTtDm6yc4_}B5 zWLZ2_zlVe}i|^Hw^R{HE6`w7!cjMNM_sUfMm~s2$DsTQkV?^BH_awG^-03V%MEZ?2 z?&;1H8U+Q0nXpE9GhO5Cq}W%m4Z2!BD6_4}n%}7EEN98{^5I3edRp+1IFa-DMDtp- zHRFovAMWdIOlCV~GUC&Al3g{nh7h{xt>sR8-#_*Hn7^GfR?iquNL&)@@dE6Pxx`!p zmz-OeF0+0TazYi+hGJ(&d&f0zln9Wx`N8?W{w|e< z6EW}MeV@W|!UwTaURSEEq_#oQg_#?l83pT^!`|G*9%q=1=axTKsnwN}g`ApCH$KBl zDg0u7|DjS{F5<|k$A%++%>~G%_ys3?dE8{qN%KgUo6O%G;hCr!BCcdZ zzplf}lt`f$K0p=Fb0aO&rdzfwLRN3-22HvhzR1@&g00vmGh+agqydBSNynpDt(lo48nqt5$%u-=*1 zeg7iiq;a)HKV?k5@);47uTS`+sDSuLey}pj%GPD#b39l~{;|r)mLa`PDN1*wDgGpBq&Pa% zALUsJ>NepMU4UGKX0xZnkZyznfy^=th_n_3C3d;})v_srn?AGWmy#1wXUWVunY z(DyES60rI03FOiRt@n6-yj2xH{vBG}IE#gybnE3+6|e;8D2e=z$agHS3o6kiI{jbQ zp`4$7aNfVEniun!4sanAa9g5F@L+G%Wg2rbqQwGsNQ$87i~nmoH}ZL41`enlx)9Fk zMyU%(k1=5zr?6S~!@W3*e(-q|yM`{oN?$G&-=+J3>7M^<9GUO@;Imgci4#))WspIg z28irKV075Jz>}}oSWWwNk7J+b8zzE^o&%NA{3MwZeAayd;wg<<82gR`LXGynyn)Al zufL-uOQV*n*ETPot{%&Z{a}5v#Wd|puXbOyG)BOCA(J@> zFpKNG;7aNvFeK^w*~>w>BY~;-tIX!W%vIHsD%Q%?nLJ4LZZ{^-4^@7`Xc&B&2quJ@gR-XZEiEjmLR7=jP^jYnc zsVXFMKdeqNg3Xng4v20&E;&xgh2zXB)ndOhK^h)0Yj{h?h@s0xw3|}Gsj=}}&L0IN#!C}lp;FbpZ{A|PWnvpuhs?%`k~XpPRDOm-5|Z(0-steF zk1bj6=`^1o|K?Tr%_=2u<|`J|0TV_3x_W2!Cr#n1+jnl*hz1_&veo3t#jw{Be_%g< zg0VS8*CeY%cls`&U^*e@U3nm_IIpns_Opo?*eXi_;BCdwn|mR+E`0m4Vn}{0ujnNP zPoYj=q7H@IjjzNm?p`E z%}2IhM8s^O@E3C`9b@m_=^Ut55U2Nb5HZ$BTlNX#k-zQo6#m1UpI9nZmBj#KE*4?2 zp+8kPGG*H$h0h7{CjU+67oyUzds&ad-&RalKB`IV!0@Ph0-OB=R5~XEr%fj5#RaKU z$dL&u@-oQLH#qrDtya0qIP&f0)6MJOOXtod%e6{!=7((?T#r$JK2&CE(sfX>{oodT zAlH1}6^vG5Fm2>fzJ}(Gn?D*hHQKE^faSfEc8H&%!98!_5Eh+E4>TwmkX_|RUqwG^ z?6=X8XE|98-_IAB4!xrAfJ}=(@%HNY;iu1T?om*zclXPGtuYTjCHO>{^GDHlmWF8Il3s{U`r*! zDhoEi0?erKT4CH4DDy5I{et;lkci(ih}S#BzYEZeU%;cf6vN3!Fysn*Q)HorHPOSI zx1TVTV8|%mFH1_XVEt*L@>QYT8wTV&LzSkBp1g^g^_=nundO3j(!P0>zBWE=m^iTj z=dO6E10zv7$9-Th`-tqUS>*^JMZJzPQGmg(~Lr=NoJ0_+%;muR%)+ zdBF0#3napBtd$~SCfF>W+V618M-kS{(hnWjUms2=J=;iBE^Ckd@UD3u>9yXvv`&9wYGEr>|`{$n_WX7NEuVEm`L$4-4{hRglo^# zG*<~D%vjd!1?9t!BP(e1z75Db9Vw*4*XQiau_@#!h_LzER{-iF7>|YWG5b?ajI-e_g-j10`LBn*zRkYx6p9L1uX`X1#)HpthM(h&Aval6KAJX>Fp9@E<+Xbs zn-&yr4nmcbE9lWf^!Bgb5J64<(AJZ*sUk4c6ZMW7CC;=qsTzx-&@ zT_OL23{de{nsBL{kzvaLs-urS4jP0Sra>6Me+H2KHeliuX;j`ByLsSYIF!FK}k3bT6|X^K`LT zu+XysqG4D16(F_1v^opMEciBW+u8YrC#eCJ&r_nBSkLY1}#qb z$W`jI2|W0@3sz?s%<`+2Sk#V)WAwJZsLmj65`|(tVJ7v8A3qbbzh>)QT=fi{d@cG> zby)9gXP@+faph;V=g7gZpXV(*#lgG68XRp zhn;Q|34y}h1f7(j=xDQP*VsHDOLA(Pi*wHyHQl)p=Tpglje+d{Oi{W4!1uWbVIWiQ zU@MYFjUVAUJXPrmbd}n=0^8b2>7>O(qr2!>p=R{5WE9o!QEWhXXk{|id+i8ljJVT? zLS8gF=kzrz$%}?+>3AZhY6t(c#dgWw;fz&mH}BVFN+WRx!qN>ynVMOc8iKVeXo59j z5FGv3%mZ)A$zoZ7ZTHoTe&s(D*BL-|^9;L*O&w^jxaRuGUr6@>r z8Gyli{Yy!A|@6BdU@NggU@5xX64`eqOC1WMRnWsTIm zBNSr4wL8QEOh~AhaYJzQ!2EQUPQtBArZ+3Nn?U2=Pk|X~ho2H5MT7d~oT7t!H3@@i z;r3uRDsq+!`m{)aFr{{=c&(h}f$<^#vDq+MepOM6=jfijiHtEZJ0x|;KnFW|F&)NAKu865bD~J>Mu4syOEB`VC zmxi=oXV+66{Q)CG!q+^s(VMi%3=XPz?q-cJfut+wV+&^n5Bajs{Q<&4#lIja8JOiah|%v38Uf3ra%%_(;l|}7=|lgw9)s#Yl@wD zI1CqpvX2dCxywDh8U?P%yAL-G7XTm9JP&W)o2o+w2QKM!E;%_g1yG ze$X zbU4-}RB0+{23JFy&8b_MJ#_ffxv1@DyqqtVaN?h`*G};lndT_SKDwhaZ{Kva_}RYO zbrZK)t8e3OOKLMc_pZ)-aw}VRcJaVx5Mk>fvVH^QC+{BNk8kdkkT(g!rS+fC_3q5g z=;G-Jg*?P%U3?-JOBvC|U0Cf)zulgva&MCW?p5HmF{NKA58Od}s7t6Qn){+1)fx78 zzRB}OrkR!PWeNtO9d>{ijzBFUyyl1vqE(P@3pCetaKb@^7Cpa+h z22k3Gy^LUNkq$_9L3iWj#dc_sOZnC=eJ_j8R$|=?{?KW6KD_?miI1@zg?w?hXNt#> zP+LtKAyTUylw)tewV95*cnv9w&oMmClo0Mk-~0|#&jtoN&roxPA?@xVOTtVCbZ_ds zsps5rc;6n}X1X-W*QwI_$=2o2k;8|P6uYD_Abec_4Z5_^`N`BlspU*C?4i!!0-cnJ z%C)rYHuoU??WpR-M@94BA4u=I zwPh(|Z_KZzeQ7(f!fdGpeIp9v4)?)D&Vdg(6F-vcb+%_@g1k77?@A3<%i_ZhXGLhs z(mMzYa1nju5%Z{M^Ch@w9go(^7KcFR{=GF36?}s*VghdOy&Kk8MgTBpSTas^kNfIF z!>s2Y@^1N8N3XO6Yq#YH6|Z=~Neao~?toP5Gl1M(;aNIPP*}fgQ zX1WF~v0g`;qEHuBrIdztLIg_E7ZagzC0XEq_+I|>Z8a|28c zfJ+5CEZR^ra~?!w3#vD9%G@AVXZ6h^td zC6CF&3?Q2grd$!{>9F6}~E2c{$^zTT{CE zdZiQHZ<)v7&@xag;5;&rz&l52#PUz7eX+5ZBWhtZ!s6^4o$4gL9-hR^akJR(k=fh?h&(J2 z7HNx*NmK6TGy$M+Es6Zzrq@SK0aus5C08NLWMT{`IpgSg5AhV~A@H{iaypNwI8nL? zm24O;q|6QjKRng(cQTNRGWELtMDR)utN)J4a>)e}_BAj(Vs`SEPI2c9;gDf-mnh5PewTe77`AeDmk_(2L)i{X?IVV9ed9oRnV9A2~Fb zewkJ*MsBHKx&4r6$4Ort$YC|u8{*6}3a6&;@moau+|r+L{>0@OZ0)UJw912qlAgb( zRjkq{ojc=f7uqIe@<*q5MQScIs^mj(VbDYY0mR;Mo;t1I#Mt9@qMVb^R9Y(LYkmxS z7Ue)6!?Vtsqra7w{)>YnvJ9t#$GcXXr8^vkDQ&V~?9sVvLR3(AxXXw_r;xB{c&hk%1H4p5b!=x1txZ?~V>M5BLz0$-GybZw|)h)N? z24pSUAi5Y4ehE$$Z`UW(+``5)e(Z}B@jqX<-Z4g2ussDYycdhjJ}p);Na3Do>A557 z-&12t6Qy-o{DDNR;-sV0&@#a$3$2$O)x%iZ}6x)^(_27{_S^% z`cJLPeff2p{kHV!xk!s&8b!2kmB5Jh(ZReY|HdOK%YR1XFaPU(Q6$0)SD?O*Q&){A zk-EfNm*)<{V(sJsWH5!0s|@2STOyJg?dO)Gl}T<4Q-8M?HIo#hcX~eNX5%ue^Taob zd%!sl@vooXE`e5$Q8}{R%m&^^Z9t)orfC0gfc+yT2D84|=Yi5(yOLgCc*W&SXa5A| ztqYISZLX0)7&n|COb;oPJ}tHGX3&n4l(E!o;T5g2*0{>-#_xVLaMnxFs6S=?`rHdj zE*{}3ED8~IV?}m%@{Bx-_d+d{3#MPD(kq+XU#krt{5pyYfv^({IQ|Y5o8M{Q_tM(m z2}RpKh?z$qEc&81T!h=$8|rbXx7k&O2vad1(SFY3ziD_RpEw7C1(RYmJcrEv;4Lb` zJ8y(YFX_DaJRW}hrrd|s(TdUtBanrZ^D9&JW`9SQ?i|UNp2tOQoNqTCJWtQu7&X4{ zv^Ntq{uxDYJaf1mRpMV$wK*>KX)viE1&UCB;j6A-a^D&*ezGCa#q&=}x5L^buF`CC zLhW1Qx6cRG(>o?YIfpJUSk4#s;g9zwk#FB2+UyiFhFs}lq?yh(Oyr0Cg}Ke1KrErU z8wM($qk+n1l90Yee+uM?z$Hgl=w_NVWMdveOt>Xyz7~+J?l2x zKcAty9k>=i58o;ms)$X6(@L0fIDsw-y@V~eKK~K<@~q!Ma+~ERE+@LVPekFy(@y2Q z_|a-v!3`m)^U$=$sfO9NnVr&zJA3@y4d>)p1(0bVUujQZY;eVgb7iw;+~rKfD>k>E zXy*e-h3Dg9nHP-GveiLr7|=lK9?{li`JiVWE|Nkdw@0F5*J87HyzkdmIrmnu3I=LDR2y#{C5q57 zwa%MRbgdjtAMUTY06Qxb2{z{|)yg39$1rS|_KB@#(n<2Fj0}jB?=MOi4@~`k%>zTB z$>-s<0TI2VPjqCO^Hv!1x(F2!JTays`T4Ui4h%G&;5*Bl!iII{7GmY;ia*!)84HQ> zLiUu8YbV~#8P9xv0hcbdiiqfs*ps2Du5+Hi-ZYTmFP9TYS0Hu#F~QuN{aA%~8nziCKmU z5_tYovpn7(n{}rug@6F9kM?E~$tQBW;Iy3L$`^~A3;}`!hja+A&5!N9o8L90f*$G|1W$oeUoI~3!GATSW#3Lz$ywTzd5PKg2UNWQCk4#?YawwZn5T^|&_ zfCROF&M)u3sFGVsAURxp?#pA&`{7&tPvPa3zF5I>;fzQy;bHj9%>yj+a@BWW&LxZh2@HOeM{T*gl$;Q)w-gm~D=F&SXAzukFV5axj22nMCNIa3+fRiyITw8Sk-TM` zh|#x=P2B@k3uQ>Qrw6h|oE?3M;ceh;bI@wJz9cm^TgqE(Wz6y6Uu+Ij4%gS6rdN#^ zJ40mH^=>tW+WHE2ohV^E?d_WPmfXs0eP8GK_I9L5vogTh9Gfr@>HZ4gFIljP-7B$_T`6*g^Wx32s?m=@|rNT6Xe;U94do zPqQ{=dXK|TI5N?DZ`W$M&qY8y>QBr=DDuV@x{zI#cX%^YOLm3W8MK#{ur|VyHRmjx zwxO6q){Xwd>jMT?SK(x+64*A)s|Z6iuW(JclWJL*b~-R*WYt3C!L?RO(WC9z0WR)W zAg@oi^Y%uKgcD1kkl=OMoL?XE6PYBF#>sbvM*7WLxVFOF7>>1$t?@6=4mKKZ-*~ju z9xHFj_9wP8R2vtlFvb^Xg-=pkciz5`{$1sMltbh9UA;BP#d7dz$iCTB6@?dc3GH6| zN#pWyJLEyWN|twyT&|mSdo9b6+&IBw&H8ud1(Av7SPeRHaoA(Ete6Grfd)BpdS)$@ z+Zw0r#{y&mFCw2$=d|M8EJ+o*OLXZ*xbP!Dt&aJSB`}*lN~`W`#;uobCd<-62izat zs&Te?lNw{Cb2g?w8>p<`-;6rR)vP!q+e(a23R>M`l^jo~S(@uUBTzr%mLAu&-NyN% zE#JPlB6fOe6n7Cde!JSK!{+Tos$!}Bpk6Loj}=SuyiE4sS5rdDh5TlG1G+>zT`I-P zu4K*TNr!N9f7_eO$NJy~J>Cn9V84T=gXK?G2OOj~7shqR*Y+FZc~rZ#Rr`?*|2FAw z4Q2V3!t1GzxBAHKxc@0V^VK$|#km0X)_Ui{NB*OIRVh@FPa^mU#oFz-taSm!B5HoY z;G`;f*?a5}w>W#FQmNfU3hyg$v)D1a#F^J5xrb}B%kHmtBYR_H>(09+-nLZQl%y0t z_C(H!(VbHoh77^$5z?P-M+SdW?QAMa9im|>7-apv>tJ~hIK1{nYh&~jDo>9kJWig! zUWdreYO9aeykX3iAvW^z*kYC#vBtqE=r|sxMx>Clx(xj~BoPbc(69wO1$mTPxNkIa-@z+8@J9Ktx9QmrJ7J`}%}vO~ukcezha$JU6Pop2H?2}*@ldi8L#Th3MxwtUo)MR3MHi7v{>RJxU_LhW>Xh$Pxb^N*zfh5^yF|pT1cB5 zN^GWF=(kBlc`$y0S589id*F|}(&+ugp&2CCg%Y6W>|C8@wuZ#Gc>l(`it`tvm0!9D z!JfG3QWR1v)QIs9BLP?EQM5>s@GLYP;C{kk-;UyLP+|*XpSxTTE0}H|OU5P0unR<0 zJ8Z0Ys1tHyJ*Npd7C=uHX}vX3tsBT4k%nz&+~qzM`f;VfVteo7=#2!ZNLGmsX&FSv z=FTCF}=6q!g+?!jwk5AQ>{X0?e5Rqs0FX&&n`(WOz6 z<4;0H93bM?PEt0n@NIh`^fkNGI*Oe$TbQJB7a_|8A*GdHCYDIZ#Jlu`D+=%O`G;h# z#knQ8SwBiK(?t-Ev^`hjl_Un0B5fUJHQf2a5`G+{);e_Ere!f|-`O`6)$K&TMThHg zouQRgk(ZNIowtkV2WH%cbU{vgQANz@ed)J+0 zYm7gjcl2%XWU1#H-M^1sQmiGE-P_&UvQ>dYM2U zyYpGim8qB3a6<629K0UEB&uI(t&MJu1Qiusyf#~&@M1B!ZVL~+!#eubCxJ$$#QP(~ zWfNkROpZDf{`4$`2AxzF`cSTRF$OYIf#&9HvL|Hpm?{^x!}P%pLk)^M|5k4`ZuN=F zAy+sAWL`$o)L%`=N1Uk^x^-@bORn1Xs7}lu<*VeyiuEutK?I|TExkqU`+t;PG&3P5 z$CiM*(X05_!_Gw7bJCSKIrf{&^Dwn~VkGV~)bc`_|G^$D)Dqg3$H#uUJBX5{O%iB4 zEsS{JQlSxP_Gy1D;O+LF5#S!nj_bdko?Y*rK2A;Uq+^2YIqY0m_jSs5dRL}H+OIyB z&3}qKE=TVTOWu6>ip;E4*C8a&khpq@W?cqcmp2L`kpc6~%d}P(?w6i#E=EADKfUNf$EOa>g?Nr%>Y`?JoI|_c8A!QRkK{j>sQHR z7S|Q6{V5&qT8e=e;w|$7d-0y7zh|q4jt@Eye$Tj0G&rYwdXMIxu<3U+hIxNr{8u6& zO~_&}#i#^}pk7V6pYG^E1J>uhcs|VBR9#cKn!qx6I3^^+Zosb4tXnr-LBeAd;+$RQ zKO5?<%LaL=>Io36wC-JR@WlxeUR|FxJPlSE~P!gS;YE<_$=bS#CY*cZ80p(BVnFV z(+hr&<+19YQ!i=2eL5}=vu(I@BNku`owO@I-yhc`3AiT13>_DLxL|4E|FEpCF8q1Y z6tKqf`H*$#J8y&q&>S@%68vF4REAFuaOH&y^;1~ys`&vUloYiwmk|s zBv3=wGGo-_H^_FX;h8W~W2!t<3FmG?*nmF}yZz^$9+s9!4lE_C=^YqA!VrU?&40>C z4Us6D^s~qU@5hk%GW+wHlp6tywyb=k9d~QIC5Kq?=#zIOvgS<47MhSrA+bqydoGwC z2+J^1cJ2H8KPAIT3XPDcw(M)8Hm`K?@K^zb1~=XDt-Ic!xfajctS-MeZ_Sp)xOGKY zqn0iR2Yh5|pY5O2l+30Tygh9lytUweMNEWg^b_3F-C7_L~^hhg*#sS^-E_*v?;rm zBkoE7%#)_01GD_Fj87~QoOxoS8+4W{9y{^##Hd+9e@*FW7hzOzd-zhy%&q?il0l0o zQ%v|F<=xOgF0KQj+Z;8Oer2#(rs(PO>B}i^HUifp`umwB$Hn%H03K{#PX zx=xBbp35$Q(bR9vqm3*EzXPz(m#cJic@o*JelZD6XSXuvUz%-6$UuZ2qIlm*$BgcZ zI(0bhcb1hNNph29{q!LXfNjXIdnq;a`6guKydP~J%wNwmnC=8KsM4*E%v?Em637Q~ zONt+Fou4GcZOj$1J5jun0L16jj~s8&z-HEp&We21{To)*)EX7-bu`sqC8pz{I&0!0 zHzkyab`N3l%>bk4^B^Dx(FkjE>gRYO#gWrNOS;MUF*_-rE0M`vlI;+BzZ2KtGQDIX=5Zq?OS`DjZ>H;r`uEAM zfHHO3?3KD$kV=6xzM2Vo#wrp#c_b>Hvs-Vw6fCwepM^2zRf<*XY}ML@3l0sZoZ0Md zo4)Xmq3uv?;I9@!b*Y9e4aw8cGl)08E2)--XsCfP$HMZFGrhaBD>CaTMHIEI^>WLF zXy%ZKZmHUPyBmgXXc;BXo{*n=x2lcVs7Le=y@(SK3S|}`c1pg0HT~9SB$iwv$$t2; z%cV$3{yOm*rKZv}pyKV>XN?n-L)Gl#(3o^7$KmY7cl1wvaj-#d%>APs!q>mAAaU|g zBdAm4k#|~!j(C7!ZIrN8b;hsepL+%l|K@S~MZ*7+4SV6c{6b6q`cu_EQjy`mJH26N zL=~oh(qbq!8L1;%Y-qTA%`YL{`M$e(lUt18UZ66ngimAfFz3L}-e-sHcqvj1u}L0} zsRze1Wf3G^mHyhaz;aL@>8nS%TD|M(C^5t)mFjAAa*7_vrWcA9ohp}BuyP`f^( zb%h!tlh5s*+OaPIn`wCxdg0jmH!Kgi*-odZX+t#F30-`ay9KZ|3YZOLUMM3fB6Bp(7$H7w!o;){y)4Z>VDf#;XiaG z-a=@M`yW=54v>`;U;pEotA-Vg8)L7o3%DCJ=?0BTgq#kB&*w^UowNBW23TIq*tx0UPA_dxD58?`v86+lqH+`l9Mlz1#nzz3YsMYT42t zC?HA@$s!20ARtjP2q-j{AVD%nYBG{@21O(_IZGB136gV0au$#znFa*OlJnHTdGp>l z^X{7aXTnK6G>v-X2-PtAvfXwGGx@{ML77E}2>N+bN-6ifrh<<}0t{|?1yC@x|fulPDijl z7fJO}KcV}Wc-r?Q^Qi<70Ml4johR_bHZB3-`@-20iO?0)(e9IGB)PNIPs+naHKhj| z4|lnA+yi`bMjFhy^+jT3m-?%&U+OxV9(Ety;aNMjHlKd9=T#l^HV|knKZ335Y2REx ztLn5TZZKSbnqH8dze0Uf1|ooT3{?DVRUK7oR-L8xsA^2p?Ow4e9xK>xKzFavqr*!+ zAdK|Gf6~YOY1^+{?GwZC0nuKY4Xs#yX2v*mhU_iD_9^&ttLc8~0)rn0km&bHdh_l3 z0jK?`ZlNc-%-Jy^GN z+D?buZ>B-ymVm=mLaW|}SZR_ci4^3>5dY%fZ_qdsGX_vj_b4)2vIVy3{9Pc+W^Xmb z=rwvPolsPct2H%GYn7+s>&`U@tVq}P!~uwkw*r94!8a9Bk@>7X3ckmvMco?B2Q8!m zAvK0 zjjSua@bsPYK4Gh~Yd~Vw@NVc_+(?B4IM^#~i*cHUb0A5sZLJMFN-JgaoI!K*+7gfD zr3$1cZ2IujFF(KWY#$UE{j%afHt=cOB2)G-N!}SB@FAu6tZ$8g6H=Im^jxdcc9elE za;}L7KpnawvAu^I=M$zb;haW5&?)J zW{xT}j0q7HTf{tMhB35t;;11P_EEbfwq`%aX1Wr90?wlBR$_G7IzLwJDQ3BF-UlGy z@H0zTd0BG3yYFeOaiQvMx1~GGZv}DA8TR+FN`GpDA`Y*|R3ULhhgp<8o0M!HD#7h2 zonsw;#8MP=IB#fnNeblhFqjJ}5-48Rmw6to<9EE0=HA~qy;J#|+X6IsPT>Ul75*{7WKOSTTjRFSI#30uBF>Bbmk-__myGVnkJ#vCU+e>=_?#t?m`dF|HdxWDM2D&7I1GIk9WE0_C;=jq@LhNl!6MhE_SZc|zpxk@L2>3_> zuKecD-x*uk@ss~la(5NjBEI5aRPnnemX|Y1`pD=vv|tiOI-7d2?T0jscIZD@gb~^U z4XGm2e6<=QxO-enN*p=knc=@_V$;m%J1@wS3?INjdz`hDW03#Y?QGw(QCtg9M}Yjf zN=KR&$MAnZ3o69oeSqt(LmOo2vkxnE|EP*(j0@IRGh`p~iY>Q;GI%UlF z`U0EucPYQAmYXdj+<)r5I`xXhz4|$-oP=hlze+aW{k)K~%ttsmI7v8rj4Trig$50h z679^_9yQpD%_UQ$^uglyy{9jPl`0=sBJ!I|x<%C{32N#QL_fHlFX?zy;#kR1hg!IK zHg8em={ZmLjuxDvUF?0mswiyiK8&CDjE(p*nU0pMG_%^#rg)By6^=sHb-Xoz|6ArY z|Ba31u-8^&XlVFOhTQAeOodhRl|znj>v`E~%NS=pYBgT?OT{whp4TzwA%2NfKboJc zmQQG?-2$obBTK+$+3>;)wkQO@i61uo$ zJENLko2+OSI1fUDsBT?a8oH;k#|o!sUSsFWa5%pq%4sw z*ba(-nniFPQgMJAC@SXbJI!$mj$|31nN^j)K#CHgz5wdi9?^WkqoglITE<9MhwQ;n z`E8cZ`(%?fF3v7sV#C1wu?75(KHf-?>glX``C<2k?(D#>$-&pbJ^YDlOJgJ{YX`Rt zPrBX>a)zR!JBs`Bo;bD9FN#QeG7h2N$kXs- ztMh&NrjnXnx7*5f=8y!7^Xdeh>D$6q_)m?sAx-VhXe+L|HhjF_}j?s8LJU_RUuwV&}uiZ7gSPMJ3I!&jcc+X*lj{QN=WwFy4|L{Zz-o3IA0Mb6n^J$u4P`e#KA zuKt&b8h{Wil&edK6M(Kk$A3h=BlMKyMMa9X-_->ScgAS^YuE6YeQXUqW_4Q8gnjV% zlStk*aHARh1rk-Ebrm$vZxR9SDttNlCHzmY_45$%KVLkBioYvE{r@NjNZfUA8Tixx zCa6`mm&b!BBUoMSb-FeM<4$p=U`|7wmarL`#(hb-Lu|KwWcgn+O9|ZYL$(@44igUv*c%S-(&3 zG7yk_>3}r{_AN%{+U~&qd#Zoa#QtwDpz@b1w7{s4Ipv-&qf@LJjdADh8oTZ zczLFEgxW3FmYDP!Ddpiv==M*b^0T_(M7IsU$M3k|?QcUEIMiXlp|{wqeqh<>v?p|9 zisKe)iVQbc#Rr@<>iwuN<#pP-#Y}>$AvAr1jviT3Zr2jjxO7!H#03;8U7dTjs`acf z&JlG5f;#9ExM#E4ejpSdyN72323A;s8P}21kJs7zDm5>Td(+``xuO_uG}h}VO=jD857tDRy>4QG zr72cm2cB}Lwja<;#P-Nv^6#$bs_n?TG3>8>#XqGx8awYHX1$Wmq{IhG@uUgK|CI_} zyZ`kHUX1UZzw419%g2#Rl)j>LR}h^QS#gi7G(6eLT(TcbY3+mvr8cjeqew_x&ZtfpZfaWK!UZk<@RJEi_20p4r$=0I&z?oJMLCQg!O5%c@q{>1j4ujc`dr zXX;P|_3=AI`QE-ErI;X)J^ZpwINM+c+6WPuPA==?gHB2ZHkk`vwcFFiH)oHAv8WM~ zduyYK1!&PsN?}oq+85QZOde7w2){>%gw7*IG9s>K{8#oVUe!H0ey1Obhc|n^HEx=# zSx7Q2e16q}zeIFrC4FPG4^gK3Z0D}YLyhi4VY+&)fxWvj)aUn%=)2)f@K6E!$+?FJ zHWG9szeJcsZ6}@l% z*!JdAx8}BfVC+x&@u6C)Ru$hkAwb)2BNcVxuLQSZMNTIpS98s;EpZdn9_>E%TVLC# z%9&2szx`R`^=!Xu=v3)s#Nh_&_;i|1Z~4;kBWH_wu@h9XZVfkz>%@3gVsxtok6EJ* z`{lx=yXQ<1R-mvJkACPJSgc@cUvD8fr1`uKIcSZ0KLd<)ZSsoKN}#{C(AIAG@twzm z5YIyX`R@9-$xuaMH!N@{rg6!cEl|#qvmoS|E+!4 z+GTh5O|i%~&JI6v_N@A_-R4b?#Y*`t&R)CWdy)gPiE?fg=}7|IvKsEHaQ*;CD)T1US{;o#%CpV! zW5;0gd^~i^hySN4e*I~2viHX9{P*sEz4QX(6I@XaPz6dGRhkfm(d8Ps=p-We{?o7K zF&^j+m~fG6eCkuCK1k$_e<1NdWrgs;Lq9}%lbn=J92JyqMcD%H@Vm+T|4Oz0Zl&7! zi;Xj%cX`{qA@yTgB7_57#Xqt99g-mi@KmA?M>ui~Et!6c zI>ZpKn%|)iBHF^FW0$798JXBggzJ?+`p(Fdv3_o(sG3I_%TA#Z9B>#qsVARh<@e>c zeHW-PB2~-(vD!nBV(>^n^`0hfNR+C|kWk9rK|85O5knA-H`*o7o2g`{{?irq19LU% zs*V9~J@-FWP>b1P<9bth*x@R3ITYRBn8^srAikf)3GcaHalPmcCV@zU7n<@MLSF#qZ&)r{-yOLrXTv#*_GgwYSYcD#aGr>Vz`_@9Oa{2{q~ctJmJk0M z-+AFEwub|9nkHLC%j#~7IV;bb1|v}WrOr35(1PBhGm5YuEh9cWn5;ZlTuINwuS_ey z?^M7i@WhroFFJaq>|xSUL))>z6zAakcQrEn;_wb!Y1NKW;U889%^Rdi_G?1+jE2i4 zgq+vpS~0O{yhXfm;(m(rHS~VHSH{V?HknQ|hw_}L9VdRXr>U;MBCQ<<8;j2|{4$eP z#E9y7bJ*D>wa}}H)m{`GZ`<|7d91)O!@x?7Ze@DZ&_rl|ruci8;dY)+8_B(?slH7E z8PH^G%s8}`rA%BGW<%qiCpb@Z#3uNowlYVwkEOIql8r+D!aI8?k8! zW-i@KPhn|aO_8!V3+zATHv2r97O~YTyKJW=JXU5H$?Uv-f2{7i|LfOe)s6r#k;A{< zMeFS?hl%v?-RU6lu_G+@3N3VDuNne^KbD|H;Ri!QLpR8YVcR5mCeE5eOVpmB{U2#i zgd#Lymw``B;Q;}fgnJAe4IQ&i0`kc8M&pbl!jud`5j6BbcD5AsGpFE&8d68#vTLf| zsz`L}{Sz$;F;RGURFI8@&l4;_U!3OU=7_$j&L8uGyvhdHvq%@ZpTvcpyw@wv% zB!lpJ6EXV(_d1XST_dW=G$c}VoFXJNb9?mFXw7ZVJ2?q! zr&0syIdiZuY!9m4&C1n>eQq-DT-^;pDeoO+4t@w7T{lfR5df2r!2HrpeeY=#5L0Gn zXVV7FR&EjLS2<-ZQ4W5x>*mtB%RxJ_*~^q;mNCEmj8EIPE_dGCRLMDxE3<64?x92L zNB5>kPIPEC!$Ci|ZEX|>9mOHXQ&7-)$KOeu^cnU} zKh7SzIH1Rfc)z7e?0wzT9WIC6XUbai3pztmrsAdUo@wvqPJE?QgKM=Pe~LMI%kTDq zPR3SS_Llk>oOkpdWX=q%NN&?zDEqktQ5_p+*^~%i0&m#P&Ehn`&pmF%Jhsn@d=47nB=DfE$ z7Q<(^$Xk1r=rM300u%6FUC6*2hCD+UJutit@)5|9!i}Ndz^mUNnIWc=y8@mArhN@! zp8Vos5#U&Y7#F``JKvo7q!cQ4aUbTlNVJyGWXptND6oM)rIHEVfIJh}k^|jxtFq_~ z1b?8JQ2;Oa53vg)sX{pN$hGA%J|@VDw*;7mbcDaG@7)z)FUuTX%)KxL3LC-y%#a5s zo746amIZ=2sh8?R11>DlM$LpG4T9)(X!jpXw#2a=urDyoOo;MB)zi61`2VDWTOSbVgbm?)^g?C4h8?aZwX52jj}e0@dn zX1b`z8#-@qJ@h~Y$)y}bZtlk@L)Q15EAjbV4UHHuA${Mrq?p*~u5b1E(XVx2?L(9K zb>>sc_EL*KWYohWSPWx3-xnC@C{AfbJ$Z9ITq1&+#K}gM+^c?dG=)BiR={P#rys4w zL@8_wjG&S?Lh0&JHklpw{2v{euz}-mY8^ejyV+!Gj@2i0YsxmE!L=+Z_f8kJ1E{H3 zNpco6Gf(E1=!-ZUG6XlMKPH4QCh;JFyamCzGi9 z?f0=P+7SvE5&5*frnCliZWAAM3~1@rh~@|g2$VV zsRY_=B-dW|)lgEqD=Bxcqar}Rma+8})#aa?r=jg98Qb%DZW|F#sHr1_Wsf2a>Poc{ zN6ieSJ2rs|R;}2W1Z=8cI9#thW3Q?|KjE)DtpwyKAB2mbr z>`vr?*xY^{@puFmE6*FmL(Ql|0ud1=5q8EFcP(V+TInHg%jjZ$7zWLkMKDnph@XM^ zWSEFhdPOLKhCT>>g53x6NwM`l97bjXhD8euOT>TkMO8rxe6K5>=?=fPPnOOghngYh z%__2}&OrnP9}xl&4n(a3Ze7Gd=>7K#N*i6oO6*HudBtW4r-K3^b{xG3`&;7FfD)6%kgYa#rl&fdkxRxztrEW`gH$HI?;#d{P-7)w<1lyVlwQD?(UycX|6um35M$ z^b>?U@9mdk=ctZI?)Ri#x^%BLbS@)?MCXd71<55Vi%I`thH6&Qb*xTT&JKr8c@n`m z@^j}-QzdGA^STguHKX7>@;v>d%_6ZU2JLWPE6T{g@ zJeM@2DLMKm3JY#tcOIyl?7 zJOX`)-?=S#NA&E0|J?eg%U>Qf`sYzWLEc}V{N>J{Pm1zjM)1ps{xH|sRbVf10#Tm7 zZ7)th@lkIb3riA9NmfeN2mAXh?&S5c&!?MLyfqXIf2}{T0=LDcs!MOi#sO@Ng|1beg5A+cqBE$Xt964dj2Vsq-GB5 z_cHST+`(6_BK~*lpfgFW^Z3f-5wDY({?#w$HKZ>7{7)MstWU9|qI0Thw10b>^CS$c z@5KMp296vl1FIIfm;TfL4DCGgH7g?(%%Ohl6C&*KW*TX%Y|gg zYE2rk{cbpXk|YcI-`l_n%>mb03GQ*o{l}bPWZ%#IW_)}GO>*ooGC51T{Qukm#t-~Y z8~J>;#b-_~UuG!BR=PXzN{FX#t$Cx3 zqjZb1xyn4~zy>=1^eV?w)0;wphdX7wS6e0jY`O@iHi?y8fNyC# z5h8g7e}&QyEj>30&sU+GC{TL^nHTrnvfev6+PH@fYZ(whHDaH`Ypk0vo367T&KciZ z?U0M15Jr=|=Baa?pY!}ad1qc_H^^nG)`6S9zk;JZUnK=*J-T(7R^%>vEXm#3z}UIY zXIN}+W^{LTlqG1U&S_#_+&j%oa`&)@CG+lD>0xp}dEK}>s-n5V*tK=nWV+tji7Or| zcCx>)U{gOIbhICoKd0oiR*ZU-1tsRQ{nVYaGMuY$d?4{9v1*%Q_6T)h3Z7Oz_k?XOo!sXua8WDZ_ugM>h2Fk8!`*%hdd=1E*aQCvN2% zO{)d3zS-2B7^B~ zUt7}Xn1T6gy(MiPS2km9K}>)oJHOIK`kLwm2%VwsWY_N851+Puq9D@EPYb%Ip0F3@iL?1>)wAvc2-XiKl9CGl8CX-_d>FKx0l+E zBGOb@P9b%U$#tfF=>cLhgKJ@=b(bGft4TDdJmE$L?c~xog`T?rvz~Lr3!1cyYN~8I zWOoV_5YucR7AT#_gh?z`m{UIQqV-PqKRH-->SaP5SXW8f(24nZjHA9vkt4hbAU6|X zxkWv}ZFy2mp2IZS?qXksU1C_W&}x+3jMuW!EAcXy-P%vl8?#__qk<0l%wcVTN1eFG zKc`)1Lod*+G+*h^a4*yk{rVxwzprYjqIn%j=ko=7;tjLdqsJE;&Xya35g;v5WVAL@ zh-4~3I3b^DI`b)fiy<|~h0drl%I2yj{_4?2yZ7m~#OW2f!)b}*uf*yLf-B$9^QR{b zu4A_?-=C)xSbd)IO88Mh3{1VTDB9!LM9tgGZTI8D_s4%nru+fVepWfMPKb~XHJk`@k?Cru~h(Lg^>J$)IMRNy-9Rgz__6m5oN6Tm*CXPJhFjDvlr+C zNa)6o^eK}ZBeFeTgC)0l1pgicFVfmvNLy#MsG4?Z?%i%ou;{SF18pC% z0DX_LyZc`rqwB%0LUL2rbO5J3(9o&vT>-{gLLlkf_%-rm8{Qrqe0pMk{dysmbzq|S z1p-@#(_y=6gG#eDbzLZt;N;ua{_9OfT^|pZ`rOYZlKB>iT!zxwuWFn>W*!aN5baQy z+QT7XD-*qC?{EY{tWDVtx!CJS?f&>H5v8dQpB% z1alwzWTjrHZp^hVbPXGLj-!j>g5>+)Njc_dzTwI-qYb5{VVEaM)tzP+qIS--4gGUE zbtSB{vqid13l*;l&#_8ol9LMAZ)Hh;_@2EI6|JK#%xorquvXng=bJLhkYpM7_yX}j zvuYblZuQM?dp*Li#!n3|gSj1rUqpxTobV8QDSKlAmu4MMv1tO~>#5OUH{GamUG!6nP%7me!n<&t1w`%_ zJPZ6J@I8FJtDfm=QK;?NzCg8+N~n%K-b6n2*M_#VvLt&UU9q7W-Y<#5R#f z@n9fao71UDGjh?H{71Jem#`xzG0$1Pm(+&E#hl|RNCwckCKBhc1JW)Yne^Z%T}EH) zSmi5;(}O{D00Q?2$NB{Wg633zgj5o^H2%R%uYPBYzhg3{!$AX1Izo7wufJ?5W2&?K}+ zE<5>VA#$<|4QJ-tP7YDN4P3%rioEk>Ld(8c=G`(QKBUy?bp?5MZs~R%s?@(Mb~u<> zMwA|wtnv^%uxVu$)_dS1WmS3I?IUU1tFVkw-NwUDvY|qIqnRi02vKIRh5>q>WvXynP^z0m92t$17a|8Xo9EHoX3zfs zDK@N{hi+Gtp8(XSn;|JE zvSt-V-P4{R!)0(~6Ftp;ZKHYi!ontm!b0I_BIcv|tdt`OO$)wKb? z$z_(Zep5_u$!($2rnO@Hc8@c`UY*9R#DYXU!nhxP{Pl`k2*`#6Kq#9>J10e@@=H6T z8iTU47Wd~Ne2OiG1}f1Xb4q8%D%Tuw$?6#ikk%lU&u0bHmpyZ)f20x;mdqve$?{!{NI5PS z*XhwGpK8zHwlV7a@dxM*IB(BJ8c36Xflu0$-OkAt2Ppf%1~h2CJUQc(T6@uDo5&^RZY+1xSi;_4Mp?Xa*(`8(%qL5IcYb1$X;aD^}3AnaYIWhlwbmv<|J_n1*MX%NBPJE?XM2jVEgwoo=W4)}Yx=V{~Sx~X2BR6;7 zz9UDjyiJW92BY-yPD!oOH2#DF`?1WCI{wr1{lN9qh~vucFCA6)Ex)XXM; z@i6*0X+$?}3M?CJZ}BI{PZI~jehm8wRAr^b0yr|e$?iE!QOERze!^3MQjgIA8u9R5 z_Hu$$6v;Ei%g>98B@%D!vGCv}zIz@YY~^B;#^dmGY!NqTJ>q4VhZao&%*SJGNo;^1FTs8rjk?;6DQmS=y{fA`QTRA3!%#X>_TAA|}xBa*e+N^^t z4`421J7&}I-`#Weib_99oNN-$i%C-+9j!HF64%0$&1K9dezF!_86ghd|Deb1vYUn% zN~AP^3cq}4 zCuGP6Pg%?0S!3mXnp4GUaB5sy?9uS9z)^%P-b*q6`q6!AMk8Ei>7WA_fp6`da+)LX z^qxHP%0#O`+5WLa9-);W-bTiS#l}lbRK)_aygf<_2H`i2`{%N6I;A?%kF;G0lY|xN z5I!$5j;7a;u@YH%uf3aRAOLSxfI z1o9|-jyMug?JVhX5BOm&TSAy6wXw{CBP$|^B4HtGWmj69FzuUe@IgXn>(D+=k7PNN zaKU2HpLp<$I!&qv+~i0Fy>b+Au0GgmO4ky&zmItso8qR4tV+x1Tyh+OMczb@6lY1> zBeIN5SJ)>>@YY9ps(WJO>(Yig>Jy+7N1may-24K&wr{S=$n=iJ+a$JMk0Si|<7CD> zCQ)td1MhAt5v4yw{L+rmsDI*Ufn(~T|E}R^JbP8P6zNWHAlGpbzF&lmv!C)y5+QG<4&Y7?s>R2 z8@0wqVjt?*(JwXQlLp8UyCk zcY;1&0V|Z9wA;C)%$#i$UwK7Z@Yyhln%D}@b5E_}7-#gB$!KNDZZTe+qaq&jPR5VY z*7c|g8dzmsm(ZL~ZhIvn=N(54)b*)8SrDS`ScfvjS{oJ8d8>{ZpY0$fz=zxSRddFo ze_c8xzo<|38iy1%R_roKkj(@yfii1ER``0UXE?XJo(3aUZpA&z%pu;0n`;VbcVvTy z--fs8N%P;mfBog*MEeQioQ5Om(Buxv{8YpxFjq7uRQt89OA#AeH|2;3s%!z?pDV6Z z?wiKG`Y1~>CZV%s=n|DOay+kEK|Yo`d93bz`{c({P61wFcq&Nh$*O5|oCE zQ}nGlYkka$VX(M4v|q!LixW?Tp)n2*xUH4slvEFvHzCGBwJ#bI`@z6Lw zp3-q=(#GNuXLyAqk!c-d)V`h2s;7t}u>eQ!p%O}ql0H_&YIv+L+s4ZGjQIBtUHWO1 za06qfkh+jg5>1ZC`1RJkxrYs%#=D#27LQ?X;pQ@(Aw_paamYH4*Gu4)FSHS)Uo4^bvMZ=q&sP6b$5#S zL;OnSd76yT%GGSSh;)I`4gi0@n(N1;*!Ri>n|qSsup!&BZf!BL4%a(RH_FL%H&hrC zT`%5^Y@abQcAu}LxU2MGCPZa@OF&HjbDYGLabWdc3%hXZ9F?iCW2QqJ)CNnv1;r{`UJmj zfD04yghADUy^#Ae*?E#83v8m>-s47g9mYi`Cu#MS1$pKriS6P}O+Wg4)Halkd}GZ? zV3+Jo50g#KnX)756MkqciJoF0qUhQ=GGvbC_q@-zhb#r^$6&2fyXwgFK_66S?U{Mc zdJ5RS2vB<$5isjmJ7|CXGPAG~XZ&qeyEk+@ep{PFLNg>962)u=SFs!wwL@se;)0 zt^~rotai$=^nmTbheLt=T-e8OZlSLS1uc3)m5XgTZKQ$@M~?I=d#X996InK- zFxZOK8N>CMN+ewd|9OH77rl4Dku5(r;o*xUc+qlgxN-$KMG~~8j|Y1)Wu2(@t>vjF z%V&gidv}y>W|pk`fweee-2GWc$If{E@h(z@>(#v$0f&066*2s3!l{?8v;Fw-_8f6| z8M>T%ou}o8w2=E^_r5P~sdUVf{T{$uefP@_QBv$-2+vRvSLaR%2=;LebV*#`Ez*1E z)zl#~m79spuxWO7#_cvIcM|O-L@- zBy5awQc_=#QNk9i`_ZkI)+)b18!q8&4pAzXPROM3jDW4xPme%MUmx_|G)h4dKwYP_ ziC}&JN=&@W+)}!wb}{{xN6YA!vYw<%512ET#m`*ID&g${+0_YBW?5jdmJl4WwEJ4< zz7H20xjl9Z+oq8xSxd`l<97fq=y*bUBSGWpS{vkCxEoVKgreCqmdpuU$Ct|d2Q7GR zoXL5F_dT!R^SRmo#P=*5il~6e7u|cDmKmkbD3EMSX$4kG%7$`wj1l^<{2kHhPNBpB z;RB+ZMTE!Jl#itzgMbQi=`(}H9=I3(JP_>lCtG1Rsf)yb%F(e2DR zRWxxPD|;iaYNVKd><@_&fwEtH~6lxjOiEIQ<%`DrFkgs`S(rOvwQ zwzpAC7lxjhH?K9z-yW2hUu&2TQsd=NYun;@m|JZA;nPh5aeJ6SAO)Nj^?_KzgFrug z!JtiaCmlyFEn7}$W5S2*@KY&aTETgJj;sAMiK-Etq3k&V+nkN4eI9D_>^bHqL8Se%l+By|i3f{waoj(6hb4UkmT1w`naLV(p4LvA zadv3s9iN8vbQ#Q@dPr|>S#C)NJ;$Ckd89{Y!_ zK20*0g>P=S1BzJr7LuEkC&if9?>hR;>uB2tPg0^g)w^FAkW2O!eLC1u6sJ@pOpAtC zEcV|xu=cQgojf6Rfi@{XxQ!n7*&FDn7iB_Dh^)MgDzvHoNDGysN={;AlRO`M8mLdF z_2rgR>WcJT)b7+csaZ_eJtN;0DY!H970<3>zDj$+1Xc1DBLv!y$*3J-z>jvELpb{L z5;$5Xf6a;EE^*#eg%hzm9Ta)0jBgcY_&FZ?@ejz4JAIXUIPA=CtmNaDY#jLW{TskT zc4DXz)_vXO6Ph~t9@%pLZ!I|#l19FAp)soDCQr?YQL1zDvn~NfiG!;_QE&|L1bhp6MdU)iaI|1 z`1;{B9&bOb$!+tDCezyqrUD6l%i@_wZHsSqo9H3y_7Y{~>1kKx7u1Vv9(S&=>W^IG zbR5gUmVVSsQl#oAkWE1qC%W~-wN4Z4Ku?XrDvyX!CFDgU60 z^BIQ#D>}kTkbhQ|wtp6q=2B`@TQI5HfZZ>WCBByT4ZrB1joU>aMs}yKX%tuA>H<>7 zfFL$Mn;`;bP~`O3mc554fZR@nre2@OzL=ZlaP-T6olIkxD0=uWEkkOCis6(3${ zE^*paq9M$po_;O(vH(84Y2Y6telCmysQz}xw95Uv=%^&&nC*@cK zY`ln$Ur?R5vCy-KBMPZH+B{ByRl4`oh~#YJDBo&jLLiC|452%ZD`KoW)^%Z;3)SqodtkAUc z*K~4jQDyvHqoQW`v6!d<1L^$u;Ea@H4)#ONGu43R7>KSVu*1(jfAm38MK(nKTA7+Z z5wo5!{p?~`WC<4NSvHD!4M*~!kQnL*o8ec~yYD&4#=0)z{_$*yNyr`Ml7I^q+rJA8 zSfPLZdeMmI&(Z#UM~@p+270}*1pgQ+ z#)5y^?fyleKY)s&e%Bvl^#TLy9$bFAbOU3zzgq&>f)jM#kzm*Q>%}wMHi2x1eI9!< z;P2-D?C2>o=-zOvjPjq3&wdMKrv!FF+{1bm_wPPJB&#th5S5JG-&G)*2#oFj5B8FZ zzTZ=0_IvNZ#96Y*8(0s{Lf)?(b&!GXIeo`te!U2WC7Db}l2o)s8`A&xTKLmoS%w%n z$p2+hbdgI!PUD|iw|Y5jUp08FY71F)UaC1x8VBW@T#TqcJSUa7e_600_cqpKiRh$bsxwOYhH|_;m|L8I9i~_ zH|rAER<{Oq`1JCQ%SfIQ)JO!iAb%_Ij)V)R(VLH}M_s)6ZZp>e9Fq>bo1W9~)+zTv zx%hZ;+q{$xq4HIG8xLkC$c(pF&5F0rhdt|!DTH?s3F=C z32rSxSrlQ7LxLRFY?5`wof|~U6F3o*Z}R)I4UXcr9!ylc)*}s^HJpg+ErL~Faw!f< z%0zav7pJdHH#GDPY$T3%5sk%qqPw*-GqojLih@8D*h*hQ#AOAi8#!4Jmaio-<34*G>^yJG|wmq8#Te>+%Oj1tWLH=r~=4RcO`1HA6S1V!Rz zgd$^%e3yPH0VZ?=QQkg6BVX3t*^nSgDTLo?&bznMwCm=)AjwPrn&US^g=tW zxeFp)vGN8=<20T#@iyze3ggm5K3Rm1))dBMl$g+~q&GHukE0>F89wb$_&VUCXP9AkN4~nrZilV!J2Hr}VFn3GR)^9N%JOlX z<>J&jKuyy|L0VBzGAN51vMn1c4pABH7+D^}-j@}gR=c-8JN-Se=rH51+kGjn7_cBEjrt^`V6H27Yky8T3BgR7Tx-Q$SXr|Nn-Fd{YLiyR%Z*(&Y0!6L7a}1V zE>-XF3g!_aF5M&Stl1U?VHLmthnI{_95XxJWM+l%i0Mp*4j}GP94QO(Z$8Z^WI-@~ z(W&3yofj&sV~eSdpnFpGUmhn*3HO0Ww2;FKBdUM-%`+Dn23(|akzD=nGPzJ*a^Q+0 zljUFh$J?I=?lxI7=E1q&TeD#WUiA`3EYp8H^hHeemrd~*?_VzlJbtexaD`O*)N=BF zxc|TXF{t8$VM%knA^P2`CuM_I<}KrY`iCs!A5SUC45VvC;Sg(@zkJ6rPL(b6ZSjuBq`{1);_2#`@oO}`4L;j|mfaJDT*D8wxa%uKxf<@pE_9X|)wJZ=2-nRXav&BWe|n-0FLqg|s04cHZqSN&R85Vc zy}<4*;~Jfu7`^MV@-o{h-9}rOYg_dL?{`#*cWGYBj-Bt!%X{7x5_k=On9X~c|8NHA zQ=)q6<1gYQV=%yoQ{&Tyjl4v4cMQjjnrV9UjzC1|rI2fel3Dg`psD!DQVAR?F&Jqn zZ#}5Q);)088y;7Rx>O!U2HfQjmhTk1WN*nQwS>8N&U@sHmFRIyfI?!Ws4mzu&_iu2tg&jw#R%f+KRM{>^rE)Ex6i#9yj4-a*TMVE$x-$9d?1U( zS>c|6C_`&g3Gm2!?>I!zO%+6`aSRxbQy>3xIriM$AaD~CNhe)FTydwY5;kV_#_jzb z3}NA@Vdk!<$B6Ow-GQ%&k)dM$=kou^Q2%gB|F0TgE=I{LZCoIja~HDdCHH=deSy3s z8elY!L*rU|EzFkJFEg~vDC{i?;OZ+DrQ|XDo+jW#@ziXnytm%EhisG=8k67K1aM!& zgU@fmE`4~#m-_5LJnv8|(0D^;DwuOSDgU~sQ*xQaLhqo6#u;GI42JGn1xB#tIwg5+~-HHO;x@P z7eoziZD0ABtu5|S^ej7F|0o{WDKe-jAGSp%>0J==mMF3Z7kVQ`pPJLRAV* z!!H__?s+1uq07KErng~X{n(ZBg1ugZzT7G0sHh-4xG zNs_&`i+H)ji+_}Pegz8vD*Y>q|EH@^5cQc9AO4=00Z+&dJfTw4{{~xOaFSG*@qcV$uMKXf z_4fDv+Vhzy832I6C!5hve>+)iHM`i8$l=mF$?&fRvb4`b^m`+#Xz>>bj=xd1KV0aF z^Im@KZMLpL6qMd$Jpsab5-{{2u?>pqUQ+7dpB763`9To{#Vl-G%4Js z$O84(Q(xY|cOoMQDPgI6b}%-b0(h8iY>Gd z*)`%0azOQ9sBdIoAW(+dPIGlJt3Z=#ZNNHn7%gb(h@pHn9{1BTkXz-Tk(85bukYbZ ze4*Zmox+g~YP`Js4QI@Pd=9Hnoq@Ae`_N^m zK#eBxK3?B_Iw8=h)f+DBFv)*5Y4ahnbQVy6i=1sF9wT>L=R_xR6^Qw?aBp}pO%&^} z)QH;kry-{5oR+7~wkZx75VrC+TMT=7Z_Lf+nZ1{1zm_e69LZPlDfwayp0Z@rD9s~; zR+u)!pj^(ETc?6OUQ9K6yOuH?`augjmT!?OXVT){7xDUjErWeupQW;QaO;}}O9gcL zHNfVSS7A@;IhVhGu0h|)O^Ty|N$S1cLynbx31qR(LYq(yAF4u_1L-`kzbT_fEkts| zJxm%zUAnc7Y=P3Yj1}!&0e1BKSCA8KxYG(H73x(Py?fI1XgLk4HQ#)A$rEIIWkDl% zUBVxoE6tJx8~GD^#4{3BtFw)KEi}iV;BEc13u@fdd$xDxZau-DYgbuY5__R;9MX4c z8nD^HY$Q(*0d{jzLP-ChXMU|*67DZ+oQWU+y*m-K=J@UpiExoA*w<^~E&m)%iC2&` z6{HK=w-mDdbWMVy{}5HV0eZdH0Mx+CMlef_;-gWZ30^f8b)?OQitm3p=lw031;!{7 z*$6oATctk8UblrpP-K_-!z7iNgRD1)c4I` zIon@bz^Qj{ys!Dk2l$@npAN@M7-y)TeozxjtZpB#VwyJ(r~;S8?icG-A1*)QY2DGz z@SfOU>r0J8HgraE<%iP!q1+P$ZtKDIp1+M&L=Xztjj;HJn08#<|-_CE`$ ziyv6eBfbH7yC+Zk@f#W;m-K0%VzRo@&$-!sBd#&{^k{w^2-UawREzvS7}>qPIvAE? zq!n~DJr4syvW|8Qz6g_t?{H6o09i2ubTjK4r>h#lTRLv*KwIGgr1G&7*#VWH2zR;< zDC(!%dcH30XfJwIqeuM$vp__$-2D1FkgTrnFU0NjagewVitX*caT-qqBHqJw*233b z5K*TQz@4mPM4Ed*fVRI^gzAl;G+WuItQind?_)RhMI@{1#GkAvNVtQ#Xksw;@#uGI zp;?ba|GimnG_T)0_J!+TQi%G(jXjB8gpO~5>R%&sPTo4mm6@wM_xXxQbRJcf?P#NsQDZz7?0f{uL(LlhN(vel@i4UkvDmz8JS`?%Ii zE8E<`Uq5}#Z~a2^JD1t*cxSz)on7L@e*Ty>bI&{lS}ycU+NmXLKMX#=sAIf8-RZiS zxr8C|G`($EM?v+yiWCr}%A)PNYQ=S4jcr%7z!JNXV0BTql zAffjHmWrEwcY*$Un$Y0MED8wJ_Lz0O@o;gI$Y&-&?J>{*zuz`HkDC$pBlzcMJG7N) z8LC=uq~jP&PLr}%b^t--cOd;e@l4+SUNh+BXqvs{aPKO=mM^)9)<`*B=~X#XP;`X* zNl)*9nuIT3s~xJm;pcR@3n$Xg9jNci5|VMq+D~>X7nTJwqF{aYNG)7VU2aU7OS1y! z^ZYdg>}nFtKi;S3{Kz;;HP8 z245KN&soB(PXX{B?{O9gYS{#}n99Mhk|wDFhhg<~hqWNN)eV5bUC(AoU6Qw=4{ zuY0_xFwXzEHhp9ybOMAXFdzqbUtT}uc;egdMLGiHJpN$9j}90jZ5JCsNDds5=2Ik3 zfWLXmR2x0R88FJAGp7D4P-cfWt;+q0p= zAknK_08QnTro{ePM!`P+05@nWF?0V836PG%lsg@5NNhh0eWFsPCgJ<^#OOKv3~`RkQX5^XI6)w zmx!o~vt$(0v~^5HlE5(>|KQTiYy8)8wcX_}16Rd%_Yu#!|IW(SlnL^5#>TIi`|ZKt zv`briVJZ(lMR-DQHup6mwd_mOuF^HG;d#7Hwj}v8TM=1LU?uPdr>HOiYAjvUXb69e)LKDXOIRh@y zWjIGJ2umgQPIfJrn`UraY5yqg&bOBBfk*Af2%bQ!FW~&l?w}I|asL!4MBHAU(DW@T z%$(1*NG}3nAMVl37`5L#AFv%upDTS%!V!<4AAclUCaTJ?)umz9%UFUUGK`v_(Zs!n zIY?Q%&Tt4TLmA_qGX-vXP=5AZevRIyPSUorwjX~nf4n4g(v)`M0F5vx7huo1O+0|Epx6urd zqD0o%4SE5Mi_c7nbR`F?`)Yp5AvW9Ch@>gg;mTe9PP3M~>))~i>SB@KviZT8uz8V1aFS&&&grOdodfj!ntoBo z45%=|Tra*ERln!^K~3;;UVXzhgaC&?o(ohrxD2b_Hms!Hv5L%eMqrSDPKA2<-QnVn zffVzg)jcU9Skv9_nAhw6HnX{{u@t!5&|>9HL{H0g=@hIY$fwsoDq^n z`1Wl-z>}X5sEw(YL_<6`s9&=4vpB2LHEj&1WCmd);l(=ZDzQOjx60B^TLAeUJ8)w! z*3qlfwxsFNz%sYNeAko^+D;);Db~d`8J=!@Q2e}XB#BMu+v-KGEeuDNXli<$ z==$BEoG0SMrax9+YV~#znerD6e2@&Kps55%SeEluZz)^*a~Y?~)_OV8Ksr!4dHr+s zk&ExlP)7>vCM#>!9VSN+7v#(Q7=fnJt6|Rxl@HB^61(fvQvev*=We z`xHkj;+At|y>TdRputLG@t4$$(abRO!_n<2`VZ(IhJy~lLzzhB;9i}$v1EmJ4U5c4 zKlNU-tZE!dHfCP`UN_|Y4UMn+27q7XidptK!9ZdAUM@5&JI|bdXJRrh@qA#kQAP`r zP}AI=$k`S$Ex7Vgk&=SKe8o~s#B!u3K~GcK94SINdNEILL@6BE&HFa@%Kg_KhGs=< z_IbPzJZ6t?X+yZ3g z_?=vM98JkKj9Y}}4bMtrHhOkTT8&cdFdzjKHRkV$R2Z+L+~I8wRM*tO#J$?E5w~1(lIM00mtOT4)3OnsE!__`>blEWYa6muRqjWI4-YE3S z8j66)-Uz+wi;mc1+t1o2<4SB9Lz6sX%`;03jgj8^+KR6Wlk8KTm#nY!!`*RGxf?ph zBOMVyg$h?Gju&-zk~W8diq0Wf-DTyK7~^Tv`NZ&&~ti z`1HlZXv%}?j(QPigRu>~Bg7_S>Vn667oY&UqKL~3syZv-V}LLfaS0!^Ubic)j;pIQ zzQ8O^#RbgqsP9l|p^@~AVOn8ggKJprrOxcF-n9-inGh+9qse{-m5SC}hDu#@Zbr0K z3}(0apOM3)NEWbwPf9j!qS?M=Nw%Djhv4sB{b9f$9ok3oQnS^*{ZcS5Gh>M4Dj-}~ zXJOgaxCADiV|pI*tV5cv6A_s~S}GYg$rH-eIpKwk?UpJRUk9w<3~d>Ryq+=io*%lH z?YT!}x?(K&;d1Vx@pzp2O;0c)>9RyEgdM=e5!RqgMew<`X09|)d)iD#XR|B5jdX z^c|_UavSYYgCc#CCG|4Rf!D5H|;Jq^=;v1OlM6eeeOPuSk z{*A@3LYW9x-kXLJ;Zl-69D#N3K6oVYTa<~g!FUxsm-CMZKwQ4;f;p>SYzz2a)gIxZo z{a1X)@LWUq*mbs=Skin+MRj>Nm#^f!lW7NMYwogUzYT|$y7pbbC6az9wIEQO|NI2* zs4aDF){%A=EY#xNw*R42HCH6>*^a1TN2HAcf z^b1kNhQIR7)Rd>~V2MT|H!+Mj?Xzs?1tPC<03(%)2<1(cxG2dzH21D}vW#WI8j3ic z!#q|sD%lvaEkaMo!!_fj4xHp)&U}$JMJ;-sC$WcMm?c#I)Gy3Z5i52-bxt)MdHB$z zP#Od>nh#iyBkCK{T+B#hSoW94kh`ouve@oleQ4-hH+HOB&B&0wOdhXT@2BXMk6#5z z$zWk1m2H&E^1xKLTxKgP zUxbDP8h(L^JYKUDAD7874XJHSCfW9k{yY% zizNZ+t|G}qPX~@PNInLOhyUd>p>=%*jzQ1UNhGcO-Rd%bK zfnWY3ILVJ7f1=3|4NiNPYlo@77CES(diCHp)df_;v&QrBUf3-#dTC2Z( z@C#FK!3j?Lr?G)mCH`=uWm{d;_9Mu_ntRju1D8RzzefIK5)c~bOo-fyFwC~>ea98x z*FJ(NNV}FkCh+<#kj@5-egGoZt1a3@Wcd;TF}2DLh~h1y6de|Ei~{JhN3z<1QA)K5 zvg=K{!*`jIlpl85U$t(r7itT`eT!4>z}1RVbUXn?iLYUpUGN zFWC4Fh}f0~R>*R3#4`iU!Fyk4vcQ)q>;@>T#pG+rBZ_s+YoJ_B@RC-j&(+Y=t6vh| zXJ}UAOqd6^(o^{X+LFhI##5?-M{ivG1^_ zbaJFkpavPThOyTP)Zzz_i;Ae)dicqet+GMEF*_=vXSSvif7HYCK|Mz}Ss*rWwggjT z<+sVa&LtsHLhoB(>EMYOIB}PSbGx3lj<0i#C)$wi@n{vitwI8|Rxj?dGFh+?iEuN` zr0rX)SZloFJjE~J6xsQ7NR^sCaOVX*2b1@yUSAaWQiOv|MmW24`3(>5JZz5ST4Hj@ z5{S58o4ZN~m8g&WWa4Pj)RTdZ&l6LfntsCEtNR6+FWH@0xE`t7Z+@r!>PH+Efv zE9>&vv);|d3KN$}12qC53BzB;)0c{N7j`imyLiB$IRF-RZ_`g!|8g9WgDQMQIE>5; zBOgDDg3oZt1CB9)Ddq`=sU6J8=B94q8t}lbT)*Z>S`E%QABBX&96dJX#JFGBIAz_{ zS;sgNjQr!$ou0o~bkJ02CqYrf6TI?cAiOUgyL54FQLehRCDj9+H$ev$3C9+?_DvPdo45Y23KXs4rw6R6lA45q1Z=qd6)EoBCQ10L) zvS@g@wjC4@%NM=sY;;>NStoz(R8}3CDQDFk&)8Pl32`b%9PXkF?%+MZ$FP4XpcPoS z5A82_6AwQC2$sPsfJJk72Q0=L<7WQO^v@=NL1(_adpz4o;|gZ2n|9?5cBzdPCb)58 zppi|Tmi<5D(Z2GM*GBpJv!R^~WWkGR-W>340YS+<}zhS)ZlAupgJK;sru%DyNx#Cw(y~sq(I1{$o)PL zW4_REFeT^lynlf)-B-J+CRiW>G}U`;nSFMaRLLz z*ZdkOU57?ZD%%ZaVQ?QWFaGH*OwD?bGAIv%SF^<75~EV`fv=+R^m*oovz%x9T0(Ek z)T)p4NY5O7H3sjGKmr&-gjR7*D>A}wC!fSShpG7kQd)IrRsn+=h0|Vuo5KjQkHwVq z>S2-6jUb#Bv|$V?r{yc`z@DWFo25MA=S`*e@@ILiqfIUaErVmx?qH8_4^yV^cI(2Z zhV*_EhxYZy_hbyCIiC1uroL3%?kd%!pG>W6rYO$|*fr#R@z<;mzKmE=vtxdXafNOh zPzu7ov$q%IPx(v7mr&z6QQh@(v^35N0j%&9DF0qRybRspsBkuj> zzZ9;!%lm!Uu?!#`|H2J3T-Q#NkAN!!xq^IRTeKHdp+q`Vuqc}BHp}|hnFmh__i_adnW~@<`knPG3z{$J9 zl(59q57CYuKcUgEN#-}>p3HSqjkBv6K1>vEZl1wtY298WEUkjc?KX>wQY-LS0peJ~ zpx`lKN-rHp>^0dvC-KQHdrjy2A+1))Y<4X#@G>}|(hR+qY^KPZ09eEo=AfDmyRk3KIh>{weoV&CHjWa4x}KyE_@&W6roC6 zEAR)gM@W8yFrFNiBsZU6ZFqla?2sxZA_^G+Yi#`6e;ID_TEZefrPCkx_z@KqClF&+ zxm-yspqLd)aK8Zo$8uCnKRdUS-8_+~x9*Vo;bsGViP-;rku1rFWA$E(TT}7RX0w(d zKkY2b29f9Y;zh}e=h7k*<*sFlpt)a%B>ayDfWbUe{EyO^@%%Jy1FZJ7^iRxb+e1TAA6lb zN@qW8cb~_s|5n+!KYt~dEOeRKrxaW`BC*UukANz}zx!Vw6cYFm`1r%nw#@Ito2WuK zSitgl9P0AX?X-f*o9t}KT9-Yooxcn3b*7G9LKnPEBR*a=>A`x zjWHkAO31AZnLCow6#VwKZz${|`2Y6nJKy&MYPM(i5oLz~$;&jK-fR3zg{S%55nc#D z+=IgiAAgv;TZ1ODv|kVV*-G>ED##`Ad1Nw|7m<`Bf&7dKtcUCWtph)jj)YLMrWNoq zvqDmPG&GE@2JBXzWH-jj$Ng=hW^JZB5-q?Q$X|E-0@9U>EWZRqmp(Dj6F6`J;)Ws0A ze+5E999opbI6(8ZFc8g#kXEeH=V$N(T#ts45p9)8h9R`kSh4_ZKvtJkgpt}z4<`LT z;SFAf=ufEo*0i~H$)5PC6@nQ z3+o>M(kh}YDw`2EIT&bKN3~lFS8g#1xo&sGSHkSMBeMkk$b7*G24NwJ+Ngh?rU_Z- z-F#xhoSg3)U_bnP{4FZ9WbbHWfkF}?L6pPa46EDD9PW}%L{_tHcL$T4@y{FK-B0qd zd_5PfdzzTX%8X6eSbD+JS{ai zm=e>@-MHK1Bbg8FMktB|E6kxqxi)0Bmq}d{7`#e|8UttjiMlX=o9byO$vM9J!$<7J zLG9T_T;4R4Fj>S3;?{=91)>EUtb3=bVeD69S05;Kbq3lE!9HL}=vacD*Lg zu}pTdC_lRA`h-ZP#o7axXV6Pkfx#o+H!OT*NH)XBK2s1}SLFfpOqf5k$M@1Bio@CV|4*P( z^>sT}(A|#@1e}QYS(UCyPv~dKw|enm)LJ_?Se76EQbPq3fP9FwS>mvU?YcQMy-u$uNx|shU#I*a|7AIJ3W(4ES|O=KVjNqoEi}mh@X0m-+x>4~qt0QY)QDw^}*c z1-dRi2C(-MuB(X9)QXq4IT^kyGbZ|NWt$ zFLlLnI?)2LX#Ez=bCK2Rh#xHChxUyfm9?y>-)o@=kZKX2N1&G(?zNhd69 zi{ZM(OSj}N<>Ub1(H{moBCgxHQ!BQ9 zng*8mwA7EX-7l&;0WN{&pp(((=2&|1xGiP|M&)rEB@F_R0MIp3_rMTS$aUW-U0*Vj zlIJj}bEYw^)JTE2MLJ$4J7wHcX!Hk9ZV=E_)1CS9cz%~JLlIXcb=9HX?+P!w>8-ow zbJwEH#xC&B-x}rnJhmCwV5JXct~HaMa7kFj6op@|t8=*V;N3kZ+9Q?G?vtSvr{w-d zKg#_-Z~TUdpHrf#(F4USD{FD~M?aW>ZdkzhXqCJgRwVx(7xxTIrA48eG%~xC{Xy}1 zKB!-AJ77o7VQZ7PfXolku_9bwY}sjpIS7FERr5u68SFomRVu;UTc==JOoYTZjHI(G zU2)^n<+J?EL4V_s8Wm_!ng&y=N-ne4YoLsRG_T`uX`iGhpfe{9QA&{eM2ILrJ(e{bx zx2L9omJIrgQ<;Q3d!g2(Y9x~nBbn2`>?aF!X2n})+1zO5{F_)jdp)E?wM?6&GgYU7 zQ&>1`a75{D$!rz0Uc*2qn(n@-{HZhm;Z^{p?n=7utDcr7_P5#QfOe;BZJ|akF?N?& zs==-9r)4dSe3imbl%+>sqNcJqy|nlta}JLGWXno96BHf9uzM2 zxY`pQ#o)46fw)_kgK3@6<-~hWj{^=FEdVEMCLhk9l;Yqc^DWD2GW32W0_;AE#f;AC z#Y0SQA-&b%@~p`(^x%3P^)e#*P^od=^WXTFpop&}xL@M3uSeW%IVC+SfreGcj@aC8 z4{!ks$dub(tSSDGyYD`WWVhJ$wtN3TF?BRDxwXoRTTE%G9yK;(rbIMToHlwkCpwsFoqA@X6n&2ugb>2m@DVC1j##+lO)MD2YbE{ccUt zahzn51OaqJ!fjEt!2PUCo~Htm(U7r#R{-$$Zajm`&iAe8JEWpNoX6ic0;UYNuG5SE zyT14==kS!;eeFqv^_{*$%>`m|iswJwT`JpemiB*!m??DJ$DTsVghp1{BUJ9+8}1}h z;_=h8sQ99|!3(y>c!PA!IHJylMQ}283;gV4xs>4-8}8`j-&s=@JGw zC4Dddg0LW54l_|Y)5>un${h`gAls+;;%Q9h$FIgOm>6MZRqWX5gRARwP{finy_C-&2=HtTvwfY z;A(<~7?gnLiD#F2qD*o~KJ;$iV)@HDa>h31!f#BP0-{y^d|3}X2Rfe%dW@jr$V!Hp zW=I6~)Gf-G*PleDmuh~C4Zo@Rxa81Nz-2J{P-3#~!V8H|ceFPQU@rl~3TO>;7;&*B zN=gp}m)~8C&DCdN$jEH>wII)i;zl%&rG<_#-{an?a>N;w*RHRL$E6A5ij4WV8pI+bou4N?$3K{n3{Ta;s4#Qs_Nk-Y6fuz zgR|&@nGkXC*-)+A=nR)4khR$X2Feg2qH895$$=g_negnKKxn*z_sw8KQt>TNvw3Bg zq$-q)spm4QDNL%z`}l0PR?m4?D)4BsS9V3&slr!GT$@=2^fTO)fy!!yB0#@&G?fdWUpgEQE5oytX5)V|!n- zqpjTvAgj{eYrZVgy>(~7Zbj$td{f?qxn2j8*xnsShGdYKcl-6!sIxTsRsO})kvieD z-k;&VKq)k2ylCf>5_W#ut_V<%O9NX1pILRG)r#3Zn*pU$+9cv~V4NVn1+UD7tq(KY zFplq&#XwQ2ih6EPOJ*gi=90`{j_%`|WttA^eeYZ(x-oMMdDk6OZERZ^anuxA*`X^p z8m*~5V1|x9*Ijn6JW)4!eXDTDVlv(7=Bn!6bUS-{r9U)&LoPcD;4q(OqwBQnF`D+& z38=l=yKZ5F=4IML+TtW8(9(yBHp;awAi$=-dGDlZ?A+xifol$O<4)p+?}w0_oamCH zAq#kGon9^VMNl4m{Qb3jh?qh6U-W&929l#cxwMNFQ&-aq>BKr&zae!gKX};;e{?@1 zUv=ZP-Lc5aEfmgoxgoQ12m~R~DN6bwkT4g)0raV&;ChJ4Q<@ZHbpMGNu!K8(;0OI) z_mBAgQ5dFr2;1zlM#%1QG&|*jhbB=E6*#fN=K-*7@}7Rki7QK%*iVG#i$uOd zoNdD|0DAhL@t_#n(+0PS&t1n4TPY0beTsfCa2~&C)huZJmd|J)OB|Va-PElS80n_4 z@Bf4dBoxXZ4f)1T9R@TIGaw2+EmME%rj4}uay$vjWZSN4KPn#eKF70S8A?V217TZuZg_l>)|msYC7b) zT2v;BSf-%AdY_hh!(dR2dymFQyTLj$p0fpf0X}@zrCyJ5$}d%K28N5Xi)^)TqJ?aA zOcrJ9xTMCqd9`kDx(gin@!Rtv>HaiXUCb9HNu!Qo#CXC3FX!#mgeM@vzsZZ zE)@3{EuQP4dHp6C{z&TZ>;g-^mH53B8l0iJ?hkn`I*Q@`q-@ClG~#!T8;wRBlm zA&{Kw*88t2B*Iy==2dFSdl?qYH`Rm=NiI3wGm5^(zv2Ty$NKZj@ z#YWL3x*EL|LgQc_!8P0mS+A(LjRSfxpgQjf>8R{E0RUc8)c_;aDb;Xl7*e!eG;#p3 zQzdk)PkJnQukeVS%1T?fFgOq}2=Ug$E=gaDta07bOw+s-LOn*b3Tc-9840aa@l-qg)f1N$!%VQxFp#nd&^ zmA+$Mwmo@g=bejPNpZJK%wPFdf%O3tRm0f(%d>jmWh5lr6Q~vifZU9Iy46rX>PvnQ zR{L<4Fm=VN6#;W6N!HGyVwlf@;bZc6pxW$6byb%YgDx-7B+P}MratcPc*0C)*HymO zd3RW7XMP;aCN9PKTO#PCZ??-yD4UM)nWbIVzinrSk0d?e5=?&Eu20!bMLXyFW=pEG*#dD8AinY}E9uViva<$IvVcU$!APfN$2Ni-Ydf z{R|?B>R*HB5`76Olr3K~5l)Cug=0PpX`1X5-yp!8_PAO^s5saD#AHzbDO<52=B)XAeS^lU|{S%4#RUhg-&(K{UwbXDk;G``l}dRhWtrM9i203 z283&6$O87mAV1ih5;ljxQ3|0*vk6}~G?XXr%+YNyBu*vYVF+q+M?UKCPY1LK#@v8e zlpyj=4Du-MM7rxPNN|?w$Kc{xbPYE=eROFPFWO~#>%1nV%SX38Asqf9ngl%kwOihdyN0V@ok81o%SU-tF>uBadK$^y20zq&?uhvvD!0D!Y5x@6k``OmE52qM2Laf=x13~6Ele) ziM!B=NoM?6Q9ph#){$_b7K@8dGIDR{LZX%iJ1mZ4;ef#ow_WgVd7~>XVvwrB9xSJ#!%Czi!@|dU! zuE9e#Wq*Wy@|f@#!ajn#*gPcAGGz3Je8#4g-E6njIWHi+se_Z(_@Mg9N`RA|F4KEI zsk?gkGmv!^aOdNjT_>1unZao}%g$I^1EA>cD#pbjuwp*Bt1LY%M%6o4j@A)XutN;e<#=rF7FTe1DXVnep~_?`ejDcX`>jlqqXTK@(b@d%pc8Q)nBWt z2Lb*#spVj4t~PM_VG>iNo~uzZ_CLRM9{rYVNG!3`zb*6-eS%-i^9=}vJBiS`ulxCS zsQLqHH9}G+xVbcjwrI8Md;`zxAiq z_ZPPU6LsGujdWB=O;RYgGtBy(#lD2zgIcm8y;f9xm^(&@L)9%ecf#l)%Co^kU~2Gt zZ|&w*^SBvP{cQ?KCE07hf^ewYnw73=Fs8`OT-H#ubL;-qoU%H_zFjNaQa0i7wTw(N zaWxm8pv6X7kY4dzveIgM4?ae$t?M8j6K-_k{?r$vtgAPMm26R4Th(lhs(; zAJej8@=}?+(CLt+4n9egrLVyd?%?t%;RH}g|iw*q5$I~mBIgYe< zDrnE3c_=_WOB_8tL5b|GtN7DDO0sv7ppPvJHwx(o!NWWRz4ombO1o~9@oGZ;S8pQJ z5XoNgb>dA)QtOHG72u{QVr^Ay{f-`lM#mTs^b{_W?u?I&fzC%^N(70EpE)FGjv~*) zTmtEJyMlY6&F(&~KpnFO>EaK71{Tw(pNGOZPfti3#@!;`C3PEL-M{=VsvAhc*L=Kt zoBS}NSOh1$HZ!H>LZ9f6&l84(lxVQFmK@dIdfw503+3MzrVG<_ka z<gm<-Bhz0!*GoMws^$Let0v8^>PYFiZ%l=1eNSH$_#@&Jeb2zD9KPB- zaKuUhD8F5!D2ZkcCJ0Ll0H0ay(-p5G&H|ENh_QqA6ygaXiAkzy0q00V zBw3Cuf$iz!zcB3RBUPN}U}I~Jf0^W9L?%v67n<(N2~X22`tSH^jxie$sY+w*e=tT| zyv!O6yYndjHKSwX#eS{Zdj=ffsNVsz8*rmkUYY~$nY)SYHgEBwwxr%(fi&Q8=O>6| z-ouk0hIU@4E8`3)K?uT*+23F$su0`ZR2EafLu`|$43yV1Vp=mTLQj9X-W)2LWWVqO z;lSN~;ysH8q?OL*KgpMOmt8XP@nI-pwcVuaNrRnwmuxG6bsw3z4OW9Hx%{AH0kJjk zpW)OHlcD7@pj(zXhwE3Vw9>fgyj31zCD}l-HKOzyo1S-3WyG)v#xS_&yquVyuNDdZi@q$|g{utaA*p1J5t&WG6BK)1mm zapC*gJ6joAYECpU6`qNDYrvo6pG8D#B+Z-y`0wcs&uz-4kdXr9EcJcaSO1hf7>1-aPVxV^9wRtK%^cVN}JBi)W?;} zTYp%c)BRzZMV{ELw+o__V4LBKBMeFk zr*O)%iJAB-UjibCf>axK^otd1s5l)z?=W;opC$dQwseDDfy9b@f8)AZe7*CecK89N zA6j5Oj^Cv}l3swneD!LXLJ?rCXB(475d?337gb<>gF`yD>&9u;U+_Vi_v+z&AqV1M z+_4DhxTWSSC@b$cV_Kf&vOPw3vCkup$XZUJ2LZHsa!P3g;JhSka+ z(zlweldhdN|AM%y#j=U0+%h2QVDP!)z)p8xGU%6RUmwv0Qdwkd>7;K|{1G@;%A`!H+gxC$ z^#p-uqJ@%;d4!BpywkoJZR6r|3lN|5E-kcp6(}*?5TxNIu(5?v@gTSd86fD`0x-$w zueP>g0HzU9R8W$B%7vZqL{SBHE)97}Z2GOJju2cwt-HQK z)CU((DfOt!UMpPMcan+L7oX2&rq2&r*4kCI3#@*vuUpa6mfQmVUu6d4O5?BKw7#aq z)Z3dgoGz6AVlUG>kyJAJiNsyVx_4WK5!0C%=jMuVGQ(}_RY)|~D8>)I_g%q#rIzy- zIXI7ZOu0O-NRFq&VPzm8Uu>H_iMP0hZDumuj*)fPr75p1Fi|3|n=n`})|91?%+Z9% zMftz2uZG~Py&k4(mKrejwopf?ON$@s4Ia7jWN2OM*LY}z5!;v8_A zD4+;#6OH=ZZJhP?qI>$8NnRaE8hTum!mjc)dqYy?obtb!TfqX(H;J&DzgIq(2YA}} zUC%NdlAI$6l(d64C5BqN7}!WH#OX<0&*PFAAYzPFMk`<$@_(T`Qahrz+_Q&Q7Y_tj^4*?6!p8Q zOk>zfrI4Om?QB&xW?V@HIR)>qjjIHEnwpf)1I;bAGQ0nvhj$4~F|l*gUKO*voAHuK z95lEbP)N--(;9Ncc*ZBvlB(tWYk}13*S^Gti*v=p9O##4`1V29O)j4PbcAY{-w+P> zFKdndu#!+<@3k5ahU(Lwzs;aKR|oG4WiE%^KIpYn)Sfksz9>GmG2=+aK1cgvbHU_R z>%apbV)RAGj=g(?U=RsO=xc2qtX#2B)v%CB&i?h@&)+TtH)fVf&k;uO|9s|x$tm`k zzhKR=>2gx#gZ=BAMe-Dec5l_DUYrk)TFGD}a-5;S=i;E*jO z^#7Cv@ozTFwRkRwE)T9xHjvYGXLP=O1=xL+zCrzMpiXwVG#@}7kZ1crh)dw5+oa>P zEHSl-x=_;+)%_8b^DGq(LGIyQUaK^X#-W>?Z>36PwPvq0QgxG5p5`<8z{KJ>ol;;a zME|?bvP;<}a=k}d*a|b2U_iDMhr(p7g^K#piUR9+@b87TD6UqnOQ5mo>@cCah}4{^ z1OZl>zv$J9TFI&tRykzY z{hJyCBncGag@zHc3m!5yRN7k4PFK2z=vY-HvG1ymyF)2V+xi=%ldi^o=N>mU7J>g`TJ)0O+hDK0L#v7wHV6_ zg{(>v;9u*coAZlgG(EIG#4D+vBy)2=;{HNXMB+yZLLXU_Ej0WM8(+xuWTvjoUNOA| z|G!4-OS>1>#1PjQzy6KFOlk=~GA`@Jdc7EuFJ$7&!#_yo0;-$~J(a$LUEXj_e}+d= ze?VtafB5_I`3O{zl}AL#9t(H>J1yxX6jq7^*&_rcK+tQgk6&K zf`yxmE~GrE-!_KE3L{c4SLHPa5H<0d@i9Q{>!JY=)T^(fku#$v97J~Nw8Q;Mu?*B7#R+2Sid4yS}l zCl)fAk$U;qx%lWc{7C|gBBN<8Ja0s)nvxv<*9bme<8{F*J|6Bbb(R|Xq#P@kzNBsB z7FL(zj$P$=PV@z52Vy~glh<>>o7G~e9qXRAzew7K$W-?eb@(W;mABL;G@v7%6t=C#U+wudB23(@Yc+KTWmzv|aMm?Ed*siCs+9v{ zyM4({XAk*gV4!2pNEMs-liACSN_DNLDYh-RdqJRHxryi=a#ztLOn)i=Jf6>@u)wR`=B zroUvIQA>iD-rQaiT|-n*#zy&w@K!*3%kP%;*i>V9^L z=Sv##&6IN%fkcXQ$a5ueOnu*Y7A8?kBNkQJPpzlv3LDVpqO%uB{7PsPGt z7A`$E3Hd9@ZU(S~(yv8+2%4)DVvKo^wS->VuB+llYggVyzoaC$^%nPr=6I`GrA-s_``MfXDJTV%XwgSjD#jfGE zdQ$=2nLCwql;pB2dx8DYO^0jjxRJFU+l`GO+ z3KazNat`M9QJgevxS^`OiLFxY{=RK6i@{D!Bln_r0GOhuU5|`O0%e(D#(tA>%Rk_~ zJmuB*HdAej1DIQKfR<#qblJp3)r-@vEc*LN%H=4o&$m392GPR&O1Oq_#)uN>Oe9XI zScqa43v6<~0Myp&9G(!%yDBkr!Ky*`DKb1Mp&0OweppK;GCt-^2m`tuz!Tk#eUYKX~*PR}!Fo6T#@U41+ z3#w8#Q&2Q5fF(Le1XB`cWM0c^pUm91s^BQ4=McN?DPg5}s=x=;B?d@C$(jDucg;>%5 zrt6ZwF@Ox^UfF>_h~=|nlDlXU2xQF3s;QIRXtY!xuizSU?Gom$YxG?)lrL0zUIAr4 zUkRs1(g%Pu^w(67Gs}kVXV#lmP#o;gUcze3x}a_N{*PnR;D^O{JQ-HmYPU&UT2)$!2tAJF=!g z-xi8En<_C3GZaT8*Cb3PKasNYSi*UubT5{v8JkyGYza$#0UH5yi3Vi+^yJUy7%2}& zL?m5)L|i$d^hVY&?zWmz@@vjXmG80yxIrs6bhQfXr6Fs(StA|c1D!u;ymDkU!@ujS zD@oTCy92$PtAA-uv1PkX3rQgL;xpqC0o#45+*sRqTb49_ngZxY?ve-mjy=mUs zQC7nA?CIEsQn7cC=ETjw4!rpqgI9df9Cmlm-JRc)NM72kI zim-Nn_EkM_N9Hq<{h7W~p~6g`;+&vPq2kD%pZpf|?nB~g%gz^mD}&cD4)iV(fdY0D zlNUuP^wisYc3!3jlDb61`)}x$5Kj$BZ3GC=`%V0j>64QuTTTq5V1MmP#>F(#YBRP@ z=xmtMBE3=T^msF$-8yLtEH~5nzxrwY;n({mvuBcdm-N!apm^`2)CU;6gTMs5E0E85 ziQT#whVq3SS`SH8rH>kB_fCu^(V{dZlh?0ZS!b?DBn0VV`lT_?Buf~t3|u^!s!S3z znIym7mETNZr6fyCNTDvAecs9&uDDH>Pn}D)otmOhc7>hEn4u_*MF7Z_EI(dJ-e|h@ zb7}%e2Zf8}o%=@5<0S7h%nX5Wir)EG_!9OKiRd{T2eiHp6WqFB;Wt1K`XVJo=dTeU z;PGaa!iH4NfEg7xaUfb}clWLf(JTKhTSDFqW!2yZyJkG8cku5BT%-tQ;d@(}e%HI0 zIyS^$9%WP^6MQXqnea*cM6&riK#E*xzc=+xQruaIEeB7ukwHA5cJQZv08{CTd z4BX*@E-q#YFHmMI4^d{@ZiAPigLQ~@XyS`qL4vSsT8~2{!A2|URNF^uMLK6d@_i6cBAS_~&Oyq2!>?4zM9~}(wsHG2ATaK< z+K++pO}>>`CGMBlrO8dhuY?XLv&uU`ZzEj2HcRvyLN;q69?{hd$LkKUmpC1Od?Tbq ztTII(|9-;D8=Y*uM!7!+Oykn5-;sXl9SZyu)*q6X6!D4a45n#Z)(fG(lTW`d2juIzy+iXn}jpUpZ>HbD z4Np0xs$KtFa{{~mKDzgsmZuyWt%bCeLT$%-19<59=zaHlIZGOC9kISH$*iG znQ`7heZ79S^9AE$16FU+HXmC#hoCsiNkIeeEoCNe(rIyT933c~G0^jQ^e8>N*Y+_Z z*IaP4E$bzJoye=iizrSvl`#UZ*?9zECe{c3m8hOhb&e~Z`#FVM<))^0*z76>s zMi$j)s(@tlBFB{1lGluE>i~SaJf|PEQk4vn(+XWQoGox-VozXnjFJg@GeDe?OrQ7i6LZ;UeX3j-(mjk>*J}L$JGBYq<7BGi zcUxfwb7vJ2{0YE)6dTF!6Z=k15rCAzjyopiTZgY^CGR5+y@sWNa@6N!YNZ%YV&dR1@q~P$hS2Y3% z(IK|7DLX0e9xx=iKX~gJ;)!q7`)6cjn}+ei%N8*eMX?ukz10hQAwR?NbKd$iux z;O`Jvp1=D1p+nKVvBIePdF(XXl3o!l#VTDns?S0im*k9JuFp?L%B{t!{NPPpxGyNP z=GVy(YVJy;vt|dc{KqQL2C5jy0ZuS=`jKjV?R@`zZ96p&TFQ)(4x)gf+aoOGGB%Qg zNtPj@_nI4_xNCY7vHR4+DV)$b*}nO#x_>nslIRUn5|>X-pYfcNul(U9LNkpNN%cg} zHPY#EP;2~9-d3S=YdbW=z>T5RioTg)Nr)@rVELVE$OflM#&D7K=1o zroa4-LuB6F_yB4uj-EHGNA>y+W|P$(7xP8?PO}NjM3Cs2i$FQIL@Vw zGI;dnDF2TUxSB3r*+ux@-K@jmZbLWuIgiN~6S${&-`p$C0cKlY@nRRi>-ydb^yi;@ z;g{~Z{F{?aa07>-LfggYI6X8upaIda%%@-(yrzF3g5fP=P&*=g!V7%U2`LN9XHGaK zB2-fdyJm}q?#%In8lt}imOmu&<1pjn@t9eY`Bls1rw^9Xgj97AN{LxQXC%M}}1_pyVmu^HJlL`!2 z-Qf&?+pp?@p>Kk9dRC>%e!*;Q`a5`1MXQ&X^!%d%oyM48bI)>!;VHWJ6CFI-&qoV6 zJG!e-?I1tC$mb(?VmyM}Q|b)kSzxPxCZY|dj8A~r$9v9eo{7EqnD=okW&{YB#4d>CXt00);>qBx#qw zy3=#ZtUDucG-TO&T4I>REet`?7;LHDt4@3xkC1U;Qg10^IGU@;LoV>V zAQ$Z7Wd;ckQ0cOUI-P7@jp2scR}9}`sasB84f+s(Owtn_1ylUTGN4;}fe_QE_iQf$ zb$~e}>XJk?o9q5=0$-Nd8jj(M7vf7&&;a<>0cj1riWDE+{mL~r6wMp#i#>O*6#xNm z0HAB_717Bd^4YtgEH~8m?<;W03JOH8uQ{|mrbuRr?{El5eV)^pl}9z45u1y6K48YW z+QIBR@?LOMN4R#)@kvn#^FeS7CgHVyXhDL~x{X5~z`Q3WQ7kqvC@7p*S<1CKfIYc` zLpCx_G_94vc8$;Q#n$Uyj_?OeO9NU$6`wmt#hIy@_$C*$&`##_L z4@waP{(yD<*N$V_TtEr>#8-Qu_5FppOH{9O(5p{@v{F9+4>BjaDSE;!I)w%-zn445 z#o{SG4B`KoT30B-e78c^bK>}J1@|y_VR^x1|JjSJ$#CMI8ioeDo z;9o3HR?Angp}pWqeDoMkp$B1f$Vz|yBzzRK0l^3btlM=FhX9m*g&@4FR~&?#VGgwa zQeYQ9fEf5cL@v-fp=YI8{B%9}G%6)BcVIe6Z&yxSMFxq;2pE*w$N=6++6jIjSlVQ5HeZjm4f4Cp_SvL2$5<_UW%z%;HJo1R zllXvh{^WA1(2r0MSt93kBV==kxWLmGL`1kMo9#?$St)T12PeN!gz6?dFXO@j{FB+P zDjIU8?<(~&!aTT_ud`s^dI~Y;gXz(n8TjfoQUzl99l?32W$@1W4q^yIWrf5WxBphvBy8rSp{CoXk8Ta>1_QUtV4#6Z!PgCO znz;QrFy#)pIk0&&fZO>$3_+mjQ^VB)#kVgVUoC=uFHg(3?#;zAust6D0`oX;zGhjT zHjqQw%I<(V;{SM6lL%MvL;Y=`Cm295`{Mj*4jPdLKGVfwfv>Efn9^6*aoc!6sqq_# z)KSzEEiV|ZyKTRu*sf7k&-N92 zPgEDc{>2&?aA`Y&s#xD3(u+?f3%q$8nK#l=3VD14@?W^Epr3bu=okWHPIt`^RF1qI z(+T%aY}IO4fRz>W+|beWH$w2zc1)`xVTy7M^;4FPtg%qBjZkVHolBgM_@dmdBpt@I zWVmJM{%Yo) zO$GMrx8bj>j7wuB-P_#N)SRs{b zioW{LdTZryYd8BH@0Y1-D~_HWD0YBmY!5bd83e_rG#x#{B270OGo}Q*UkGA_B`!+* zpA2PRSo&~kkLDPg;V@%%wF_dGGsl>EHJz2)GrB0WnNU@`Tb-p84=Rkpx(oa{-F(+r8FvxTQPrGYf$4fJenIq~z7-WaRAR3O(U7zV{jB}i2VK$U^y+hR%C@ZNPbSmjht`!10QEAgL_`1AzvcV#w8lKxsCC z+31UoK*nY4|Aw5Rgc%wg71vi!LPI}vw+rA6PzpJot(mG2sH+12xf#NXzkUvLk?>^4 z)4)cgA;`h-IEr2q=MMFQM7c&Fmz4P~Hxc{h1-FTg9$mmibVNjrFxZ^I zoq~lqtz899t2F}_Whns3XR)oO4ga+ur{FZshau8Z9_B}n$z6c{Prv><0Hrl#uF&W(D~RTUNT4KxH{FQnbb|F;fkyu2 zf72;bFw&`|d@DKryin1}ajN%sI?0zj8?B3jpku0e@BP>n}v zMLh2`D{YOn5Kpe9G_!f|BTIWrenT&PnVyHPm0=A>TL?AH5GiYDn8_D@IH`fqG2?riMhdg({fAC) zw2ZO3(EYOm+vu48y^AeBvMin&dgFd&n{-dsFQR&NhPzY!=oz0 z6(gm$P96Cpr!EF`u-7{=8cjsaFYXb5?pmUQOx=+J_=~6 z(G#aVxwI1xgQJkw?;-c0(g9KvUff5J$rvH*m;E~*)}U?Z2T{np)7{r=xnuwJR;SQV z5H9hF)hCYg6dFN57b4sEwm0#o^Ez+F6*#-dZs7;9FyB?If4|b&6IN0TBNNeK5_A`% zPnbRj3TnHy8%WLAm@qAfNRv4JzxLiTEX#K58dU^E6a@v5kVZlTDJkjh6a*=iTS7uo zK|+vF1f)a>>6QkO#y}~hkx)W9M3j`?^SnVHecxk$fA+6^9N+rkTF$=Ws#+YM{ z(Ja7V?il_H?+;G22ZtEt1TK@>-JHNpmvGYqVGD??b&T*BffNjc`1^oQWJ~Zu>A%{! zOdg(Cjz|h2?CZoOh@L{DzHl5tQ_+FPMOh2q!&%IBUtdm}`a3K=NBEFsLn1%+dXDm8 zrTEM#P>2E(8pgP8ogDpMz!Ys@RQLk$kbhEveJK1$19m<~Ka}acDo>wtn${+pUjP7^ ze>MDv1?Vppf`)jn*8yttfYQI($1+5W&wWC>w)16;h{5@c6DAS!qYWi)tMj)9zzChQ zVl+(23V!SRe^TcEce44{Cp0 zI-IcEWYN;#SI#${aRz4aXQa()8Y1w$bi``o*H7$j4Ak87bk9e3yAkNaYN2?(pKOA+ zlaBJ8@sZ-jr&J{}P(Ycp0>vCVCLp0qCRv#``pGK%9+d$NtC~2$H{6y<(F2<^Y18q) zfbs%Tr(K7yZ4EJBbp_h6OTaV%UhS2VuYQ!#Tg<=DDKKFf@2Uai`QmTNvsyw%MtzVs zGSjk#eMLKW(u>z%CW|5j#2&kUelZQg9qTli)OONP7w%~GJPbQtpr&)Y`59&R3m8E; zgGh=#5bkoIQ~D=mx-qFUEvKfj81u+g6Fj-=Cv;=$17HC`>wi(j{q z%_!BrPkF{QZ@4wp3`%b%Ud%JEJ{E&1K{ z<4qaUtV$H>dCAXR&U%gc%yjU4-0W-+;Cw(x?{%HYA^YGN+(&t%VxR|hV|l8W1ZZ&Z zBxseJN@>+Y8w?m|A1wh8=x7O6QClUj&!H=DXgVV^oT6|cUDlt%A7=j330YiJg%a6U z#-=lTd11646(MISk(Hd*EK|R~fP#Da$8?iZMhZ;5qv?WE@iAvP@gG%!ITxCwNl|*bS@bt~CM}j@AqmxaE0m!Acoi1(7Oz!Ty6|S}P$! zp7T7!YzoZeJVjLl>QN81GE!WnFeHTwE6|e)xzJ(!a`_hrG^(h}2Z&liI)b1@tA_c6 z?n__Z>sbRtP3p1-tC~8$9_=3pAr?;A%K>d|OKIPJy3dql>b5>v9U=R?3=l&1MCoY1 z5@RdauigN6h6m6Prc>lv7W;1mWHsAN%6eC~D%jLF`#NgN(P}eD>_5ndUsUBlcdF|v zp+!XNW}56B`D7oVlXQB`Pq`RwuTJ)A+!KM3|4Q;GT&c-J82QM|rT1uS1qDh(s(|jK z;dD$7T1kO@EY_vo#|6s9+mh2$a<~`=#7_AjH4f^(K?DT7p*rOLxr35G%iwXVGWvAO z#G>v&vMio2Rl_k@k)2rznX@;x_2E^_Fglc(JaEm`Pm@E#q*4qr`6Wk5 z$%*Qn5Rz7f+qTnf6~?`S8d}A#9cHs-p+}6q0)eX823D5P-mEvprAoIyV+C>A&*&Ll zJ|-!K%~kalI4}l?asm%pB(a-z=+_5eJyJK*79d^MycrMSKUs!WT^={_pNmN*f^ z(u!Y4{%d#k;2uuK<=?w=g=nR4fJa{fBh3#G>W{>Td3qS=L&Jrr+YZefl&G$2{?nfk z-F>yq3{a==ZVm|9>!nw8U2vNise@V+`=|l_4(pYEy%y=uWPJ#a{-$384knM9U_AWo z-5=kmC?3j(cF}=g9-U)Q#_fT0+@9GUl=OHX`lsdI0}4m5VSC~bIY{2uE z0fS|d>FI$_`UdReVkEW5oAYP?6B4lcg}svACtCbOb{o-RT(lsGgp|I4$geWD{5Oa_ z%Rk;8y$tiBY{=ynEf|KKtAeoASKCnL{PbkMwA+_OC}P)u5H}gAa9yr)b=vra6y6au z+y`_@3xd6h|J5I;cFswI+8KA}Eng9rLRQRyQPnampI*|?(1>jWJy~nm<;#cqU@%KN z^VmOETD$>Dk%$leRXbmQui4#`qHd*N{n$Zb{g#rEmmVqPp9hIc(1{`kxZw{*ORKJm zBT&xHeC`N#ng?U#d=Sw?OTN~So3QJm<2SmpFlc)nHG7a=PW}7Iy$BQ&J`?TNUhM znr0rS)=c~Epkjf4)&XjP*O;_v0g%a?>CTHs>Sbw#3z=|0&x1fSxaD?yN$XrF=7M;M zIWDs*twH9S%@5e&1%D3@x89TrnvE*0fmCSAY^5~@0Fp!hEn4o+$gdqRZS*L~O|ogx zdLI{lXwp^IGK~9su1o$b3Z^7DP#gQIH{wOtAyFx`JdUF6d)&og!p-@M{)(I>>YT=y z_L-CI4RNL%P~P?AJ66@ZzhxNlUX9<=QkWg&Q)tkA>$a4v`j4^WjT3jjpUN}So7axK z)>(SQ5c$41t~{EjVPhRE=ad?pd9cz7F?Z_lF=U4vMwbc7jn1&1B5*IAv%_(>M;>{Twb^ zqHJ?z?@l3-RQcJgiS$yph+B7HZdTgu?&6=#zfr-g4P)|Y!oXu=?l=O~>geWmhH>6? z69Wd0#NlI-sbpi&fMRD^^=LrGSGe?!Pdgf<@w;G0d{W(htP0w)*Fv7KOPLQm{R5cH z=10)+G{M4!9uyC!TGYA69*U0{R=GaS(hbrb6CQPEb)mRIqL~I=T88%b#C9<8esY2i_hCayqW0cJoLNTpX|z@VC0K zKEb8!FLR34NfUAqv}_p&CDbek1Cd_o9sad)h}@#yYhV#Lv+6YI)Y zvH(BMBA|ZsBR|qZg5K|&%yv0JfGiS(?rGyEDClh9!9KnzOg~^m{27*~uEHkWi}k|E zqhYquFgNKzqn5+R{_1pS;dzyPu!o3vM~R_KZ3v8fi-S)I_u1BLj;HCYQauA(TI~8U zh&~>(q6mNT@jr}`L}+iCEy>y`@huebNCft(w4uiyrG$?UR|I(FDj^}9zx`tr*!c z5>nE47h&2pf@b$==9CwoUw!`Q-j&_925y5k&R%`v$9tlbup$?)`WW)<#}q5Zqi1i>0@1JXuBRKf@Oq20IkMD6BB5KO@z zn&f_>c*qc&tP`YhVB7aDyue}^8s^jFj7LNk)zRUyf}vde>^Y2Os6p_)m$==1` zg(Bk*FahWVA3L_60R{v(M3*k(LeGss+Id>%N0sQgMkk}u-cPOe$HNBKuApv}x3(S`|H z;L-vP$(s7S+t%i?a^xAEYeT50x*P3Hzfl}dD)E|)gJ<*DT z#`nVpC>-U02A)D7&nh!PoR+tc0X%?Xrd}!(yVl=>h zEt)m->0GwHXz9`DDo)>27^l@|2jEjdL>$Cmmf3d90EGLWzeWD7Hw_cn9GeCQwAL@eRbdno28zZppp;m${i zms0D9YSG&YDwzBjdhPt?Aaf7Ud%_F0Tvs`u|BD9my8?Dj6Bys6`ALE-!e(0F6QD~J zA^L>1RaST(h?JO|ngWWqJ|IQ+A|4({Q;nwRg{Zz5!)??Ivmm={P?ULJSa}!9tIuO1 zDRhcs$A_s`gtCa!RXyaR!kDE38%43{=Z-Vdyhlr@BA^tJ)*Pe8EolJDrk|jI<>tT1 zSID*_>2P$)<7lQCM<-?08PI8(ou)T_AH{+3Y3DSp;&NYeL@jsgJmUJf=RM!*5?1-m znphNt+DMOuumApske1|W!YWTm3RO_*8Wznqy>sWSnDGA#a{?>%0Y>(^Smwn1^D-fe z#G2amZ>B|Y?H{)*tD`uQO`;BQcMWM0=nYg`Nj5HyQEH|&PQccBA;_usg4%XG$(3s` z-pB`?p3fR`r!Ly;Gn7A-Tz`vXj3H8yZh?AjHMBsPTWb2L(%5nCIgR|ohUkq3pTG#Q zy=_8FV=f@~j$W@vo|0N>h^rq*Jj-_{<6OFhSxljiINfo4evYyb*03EiMTRyGDx#l( z+WImiT_!NTfShy(;kCxwYr18G#~w%T<=DSV;f2C@2>+a>H|0(VZy)dqh{{%gmZW7; zKFEYScmDc^lT`YrC9j`kP`Cc_O+oak*&q}9nvnYsS~;3Z}Flz>mV zw0^D4-%YhBQr?e*mMUrNp(8eW;fsr_9wAkkfNZE708Z8`h#BMHtQUz-xmR0aw@OBZ zx41Z@C7d_XB-ju0Vg7-{l3U|oQ&d*dhtS2c2H>D?kd#;)e1d-T(fyvw!|$U#4zJ`+ ztSiGtLL%0^d%%Qd}=W9t90pL(v#CD zD6x>>pa7$#D)Jb@6#*@gvW_QldSQTKIB?hZhCwke9eyTkEz^ zBo9&?ISUd(->D3Zz%2Yz{uL=OGg2MkroHz2b7319kYkpV_S1RjUll&Rn`QwS>@8ru zIeb+5mZLszJU-paf4;IJXJ~VC3Up_cAX+Qg9F9o{2Eao@}E50I91C0$-dQ|#oTNKWo|CJDyNnxK4 zyNE4qNDK72p)ILO1L#+qa(O{v+>7)(PzqvFie$8Kg(c}eG!cY>+smwr1@X+Uzta5q z*bq4c%4%E*!?rkOl0!i0ECLg#S4iYZtC%nzaXwHKS(+Oh6f9o+{1?dvf0P-TfK|QR zQAj0s#XlXp4U4`gZ7;*(VjluXUC)C+Z&0uR^dJWHE&n#k^O10CD$nY3qo;><9sk0Q zSNm)jYZ0;nwZDNLGr0Y|n1>E*Yc(y;`8w$H_Bw^8oi=H}?3ii0KHv_Vj^eav+a zM29Bs+P?P2L!v>D*T!_DnhZ*;^fU!zJgWjYQq#w`{1wAq0FZbn%GSvy)eHh=x&__? z<9QwoEwCs+O9%~J#2l*uH=k@2=50c$1k7zl=q)BG9!!CT1)uN67tm5suA9=;Kc;jl z{SU$7Tf{^Ngr8m`TWLhClUjl@pv(J-8m!=4&0J?0by&()^Zmsx3qFXSe@nGbSI&2G18fwKbT5sPaD#N&XE07;++S$i0JbNcFSH~ z1NvS~c6x+sY;{llFtz452s6ggrNOi`)u<->z+{sQ%xvz-h_^OXLa38i$f+mf{^4Va zM0fdv#LN8@*9tjZx}N)Ix;kx7iV{TG8V@9zqRGuCfcMs6-Vi4H4D=ydk;phS9|Zwl z@?5E*0ViF2m|pGd*ZA^#6u_nc6qj-Sq+9AFQzO55M)Sx!5y~x50#ZR4W8tL@AYx1h zwL0ZbD?Zkc7l9@!>kRxsVUf%YALriHy-tt4ZN3qi&_7dWIpnU~CYcSwit>P{UDoG+ zV7V*$@5@y8ZeoixS^+QA#K^S$f*|{>t=>2RWC5|D0-)dO$=**|{%cLd|0U!JN{Aaf z1Le^btCUK0-92gvNrN~ZISX<(GbRkOl~(^jdJq=nV8rqLF*yZ_3ibLpAb{gfc?trC zTJ~2TO)WmZ!{k@NqeC@+N?h*{&bz@GU}Wi5jG!0$POV59Q61jhd;(`;^-Q8 zh+z72169w|g4##(|4>7q!?}q97AXIx`U$7jmO9u%8(=oG*F`HIT+KVjtJJ0;F&>!zZt50Y^C7Hf5~;vUMQen zyF;LZ7n0JW`SE3p?V;U;`#mM?|O6DZaQCY6_|u?_okmn_%5x@nfp~ij z0Y)hck3h175*kr!a07<0^&-W6W0!x862l&^VRWH`4}ab{RjNZkp(zAopgzQmhKl;W zt*&$svi}%729;tl40mc*3jU)c!W*=sHwYqHM{huK4lAz)G!3MvcplP3%FTHA&_V<) za@A2?gSf?JqWDLk5Uw={BAipyj-Z-Atzo?b@(#w1+F(w8Ln)G7p>Y;Tmw;K%xz*4N zqi4Db$EddcYYvH6c=qatVPxNVp=(Fr{|YL&xwIR|{7RvN&-AVUC`n^^b|9J(^TzY< zhL%=c1HvDhV(R*|8JInD`UXB31u)>ecQf9O?YANy zdX1?hobS_%0%RybQ4{}K|1slmZOu70DeQER^QuZIK`ucyJ4Kr}C4 zdMZTcCT`sN*3-rTK-Xo^>*=q5P}_DKQMP}`ku3Sm&ouQL zGk0L>FWfP_(4@ZP_g#>)!29oUGu&gbiD{UJuK?#yr|6PW}d+d5GXV3 zXQCP4C(xWwXDh#hk}*ab`a~1gX(Qcd5>=ss?NB2{#m$AB3I!I!fG_~wA2SBznV9y) zPJi7`NRjeA>&JGPwr$1{RqI>Yyd%hhx?e64J7&r_qVt(HzK;@Cvu?`R;x*qBmq7Cg z3DR3vFv~D{&WES^Ek>WvPg%&u@@6JOKM>tbh`J`#8R$$IRG%q2ZAhNKPr9EwMM`Sy za`SO$;$NAtV}>-yeXVLU84^_W>w}Av^fF$PPCrcl9uF3Ieb8QBri+Ag@Z@2x9bhnd z#D-EW%}~$v^F&yfU2F-a_(m5bYgwsilvd8<9ey+j?FHCr$<6?w11X%XdzS-Lbv@unSOgeea z3fp-c#T^aA1}Pu~3Yz6S*!u)|)4!Ypo*@48=sB9w&;x%G1^_mQU2HGlfUU_NtC|3? zWK;egSd%kJ;f!oI!S1OCtU_*}b=yPk(WQ@e658&U);1VJCx z%u&5Z%~xhY;R^3MD7~jy`2-%A`KnW=KxrX z#U>6T&B+r7M4Rjqb~;w<^%9RnYOP~>a_(9rj(@q>Jd{bO$N-*#XI#Sw zGi_#n4l|vhfcv{Ydgn`=#PPu;d`rwq#3F$6#Lzj4)%BhS^b#DU8)iy=fGs--PiG{5 zgH!qv{MrCC>w9Tyi`XYl5N<)h@!Cno!qm>z-<(Ite6Nn1r1&tuh6BYy<^^)2JuvC~ z-mI{}ZOlPOWpD+DU`Y^0EZA*;t&LR$zeFG~3YtasSKQ*yxv{o?M=A|lLF~clMWmVY zkpx0xq+YP{QF>$q#2L*%jQrxj=q$*0m!K)zn7^v+*ohf8`0vFpqHHhZlh8HI5Ra*CHQquglkAXGuo7YEN24!(0MQ? zLQdG5P%tSZio##AMu0ME>0poD@NE=k?C~MpzvgQh0&s>%&FZ4iyOpp}0z;f) zSSGs!a;=~C6q+_1!y+jV*3Ze9m;;k-7F4;M!3ahl0!4Um4FoRb!aK{~ERd2_6-+0W zQD+0gUURrWRcM97V|9#droZClChRlXY{T%+3U+ylk=iIE=y=9CfPo9l;#}TGpSQMz zXmfuK83@e+o>BnJiEj6gNVswqdUMC%6Q~Lk2GPTjx;0Y4Mr5z|tP&Jm-=h6d=xB1# zWWk2_6-2>dQ^W&{*F2{rn5W(Q1xV4kfx0>Rq%9S)QsxvNQP~Upi{k07%=VF+e;@Mt zgE++|4oOed3)S(zzz8R8iW;=fgUnW;Uv_@GL<1h2aBmFVDkR0I?d$2zgXh?<^Env~ zo*+rr3)NoqV%G*#nEb2sNPrwUW&U&+&DNAXIO_?pFQVt1ek+-@&Ryr`M+Ga zdF$Jf4&y(NJ=maA>yL^iu$vo7%l#FOB>j<=e#d89Eu$r0V-3cL&NdGavqVt)O)+x) z+62Jcwj#XsEFEis*l{YR_KxHp4!O!KAMkmeZP-!Cv$ZB*9tmD=G#kxcON(OxbQ_Z~dC7 zH@OKwKblUA$#Nqva#hY6uV_`>T2RESR?>w38YNu}50%>e~p<5-L|2NcjZ zKQqC)O0yjUb%a__eQW*0uW$V;+Gw_@1Thg3lCJf-Zvd#if&8}G7s75hv|0PFQv} zB9UV#ZtTahox1b&MJ<$#D!BZ)LWgbh6%1u_C46o zFom^=FQ^d6>Ucb-t{PpG2xGjGLeY4t1Hcl59HXvOy=Oir_#2uhzUTD|Fg4^nU&XGK zE*&8knI^#)SL3#7-<|m6o+ML{s=AzKjCBbYIhC7bM_N!7jJ$2KeAATbO%hXrE5iKd z;*k;HX2QKAg~-}M#VLf2?x$-t@oBUB6geT$8(YXmi(GKSgYQ1Zpq1AfxDCC?n9Z40 zOwp3}v{9Y#rOwWWFe@#)wkX%3X3C-|C7aB(A&4B>g=J-*BJo2T!#WFXzd!~Gx}Si> zl+C`|3=JNh!koBe;8OCOJ)$l|i$3Dk)Fn+hmE?=LW#bgbpJ)#fQ(6~?@*K(hu<4%s z{${-!9GJR>Bdl6}r^W=erL@K}WJ|sWghtZL8_-mfN)ynXBZmPYSe_RgtpwuxMRrfz8djF&#vw{Lyi#7 z4!V9mYeaH}T+;|D^?^rOJdamkrPEbv4!_{=Qf@sIN!n4g2XM-iA%b%}p)P+SFaGQX zq4m+wMM>Rsk#Mq9p_dOPo=aqpzHGRkz?kg4A;Ngt`VOoK^yA}uR?4bngeH=e3bk00 zu+hH-PRpEXSGkxDWo4U0-D#VZ?w{)~IPJE9zwzy80T9RDG2H*v>}qLNBp^s|G4ooN zynN?JhYa8_w>xb*25GwwH!@}e5iC;8Ti|8Zemip*CfLLo4)ej?k`IOLwJvf`?Gn+c zN`%{j!#y`tA0K1$h-bB`wN}?1*vd)fhQEgfG8j9Z{>P8v z5^K$Pm!8gVab8oNtXwZ_RL*K1Lw7KASH_d>hp(nw(obf=ID4%)j zt5Gw_W|}cE$s_b#^~w+LKB(gE^x=X@Y#nfo)5<873rjHN2;ugq#615p{Fb2?sB{SNOD>)lq`9 zzYk%Lij7_Sqb&}M^c~tbK~8r+taLc^eK>t2?>n%BK@s6=1~i%(3tX*Wx;tT@8O-Xy zgw%)6vz{2&+&YciI6F3!#GW|A?Ny6z3_Ih(_B<}YgPw*GDN=h-9g~yG$W{}c<>fb& zQawxh!1wo55epHxF~HRrRE*ddW#79Rre0_8Re&#xma9Q<3@{EGAQ0y`tg)CG5`>$!OhorX~CIc)oC*i%Y?oI%v|v~Ew~~cCvgE z>>2{CPTZi7#%w}z1N)D6;$Q>GspyAm^woYZu5{zZyQxQC3tswwNu5=-U!*kzsr41m<9PNJ1gMjH99x&2iCwcG{ zxp=p6@g_;WKbq>fy*}uS+_=?a5ufsN;m=3>aa53)IliT@92qFJy9Q;*W>^U(c?;8} z5KK-wz5t{Ehb=M9O^5nY#zA7xiZpYS)=RXf!oq7iMQSrDj}~O)_s{#@^_vs}RxeNv zOw3YRpExqPi|F3|h}h^G+WW1;c|JfPQ>w8aik>PSO)6+SIASLtIh%uRR6f)?Uy3!SjbSpNG`fNA|zMba)kEEO|0Zsv0wq@*ZD{FUZ{M&2)_~k2Wi&ME5#_BaO;gj{6tJz^k;8Jd@RA8L@FqQ~LJt^bL!P$-zGntM=tZE49cl)X^I9W-`1 z7Sn~sqRT^~K{J82qu38-p?!#6!|+s7DgcYz!dK~RC3?oscKd^-^-Yr>84`7_8?619vinD zM+(Rpl(O>7PtnySKL}>WxCsD2Yd!SJtE5Zka#Wz&fBQQKrQ=5QDucDrQ%F?0MSW$JYL^yrE*FwTCZHFZTft3ozDSnLws1&~W65z&cYJ@o_{8jcHF%-AMGOwuI58 z3WbD5Z1#&6?yv;S5jX=Bg^5MAu4G6o%`1LXdX|g+ZXPBf@~O4|ZTEt_H`)qJjJ&Yw zCmu!8p6A+jb zN(_Z=yhVz%Wgm1;v#_G_5`@m9{A{`w1>-h*=xAOpr%Cdjx%TmhG4?|^93UQ z1Z`qX%qqkQv9+MMd!}0e3WM^KdjQw&+ zw(=_L4eAJ6!L7rF;zTMVQk%HZtc_!~T#u z_0-71sW42&o%$JSp!ChRahgWmiKLV28plyWmJlMsiSaa38LlERb52u}a}1u_X61{} z`&?&Jn|N-OwE)+#(PHhZp zn`qJ%@}$FVb8uLCB9 z>|Fxt4?24vVlxr5z@InR&aEW(rLUa5+%jwU3lwHpNnq3Y^) zp~Zrz3k3PC4cxc{QFs0NL?O5}pX7obxtIkA#u&87<R)J6&Re(Z1uR4JBg7&t)6&z%8``1Zx2#YvT2YW5aJzn*R-vpx}rfZ`~Jk^u=HDev7&GD%4$@>iKMGYT40D(zV)lBJ3Hk`yv% zYwunZE}GM5 zMplapNB2B=^s1L5!KC&>6i$7N5?Nq|UQt>M=PO znLTE*mn5*hp~22U)&Q#GL`=Q(j>9_klf8I2#np#D#5l;}65SW4<>&9lV?aPM(Ay8? zXuRd^9CtL*vf7C$A%Uzk@(a>q6ij|JI#T6aF~cL6}b=FuW?NHX%(c0{sOx3 zZdmR*sqd%!+jA3LgnCi%r0iXZYo*6+ta=4x;#phI^%!JBj@Wc5OUT=_A1n%UZ%M<5 zB?nYTESf;c>94maL>}|YRm{csUiPdv=SLOR=RCKeKwOTdOe%mcReS^yAQ7($9t|rr zO=OS@?g7?kN2J+-zwe=GIvlreZpP-MIAgLVaQT;^&+Lic-Y~liRsgI5#F53>X4_kv zhUczAg_HJ}@1Mh}UV_f~?8>80Wc2wi3)ertxbXz~wuBJPZ)}8KP-m7I5hJ*ziXMVs zLkS^8cE%9F#wfE`0SKfe z{CGqDt!w&dd1$U?s^b1so-;{n5ilT)=-o>mp~-m<*a+ov``_`fC0!vdw;AM3zSmCD z`0?Wl7`&8^UFgoa{G>$J=g1r^=f|9(XJ)PggXqw-_qK&gTay}P_KtR+1lajB()&*O zrsf*Jnn4l3v%YI2X5i&4+^_i@JmFcIulPm=jTGh1d};|6ozqB7mU|TKIx78m_}4&B zsa-PI%dxi~G#vSrEw@^gxFQwr^n#~xZb+b-AE=GiudX2I5RR^1q077;+5vAQ!zkboUvkDx_b&cyj}Qul^uMz^A+`JNjEKNhv-N zEvaN3R&r&i^4#`#89RYgYybnVh7HZLvzW$V*zR)**Il0JZb6H5C06rC`jw}jSoI&4 ze%xszDC-iQ6(RNAnV%~WOB3>Iov)Dle2BDlV;_{dXN#5XZpp6d>h+J#5M!QgElKN{DfDH= z6aZJWcM#OMV_=nkD$n0H6#>mi&I~%|7(>T48DCPue%-M1emW5mdMBnkISmvwst2>0 zJQ?kz3&}CUBey-1N*3FaDs8r_9u%tT$-2*K)QAzh%4}xIt6;AZ(=fV26{%4(xOM0F z(gb&KJk5)?nypdiCyt-<&U_Y|u}s&Dmal`UilKM{tN?E#SP9@L6`l+h2Xtm_+yn{Yw=7d*<+I)jiNNJh&2fMlPWi2l|cz z&?tEYyW}>}0?H%nhm;@{R9|j(fF09MAkM`fd+)CFm8;+W`s4&Rh>0vTb3D2aURfM8 zPu=(NP$D(4zQ_pl-SHOom2bjMyCIvw7%S~?owcI28}r=9{(9{3X=&k?yB#4Cr_~nc zsYa$xHieBa*y#gWz?bapMBi;Ot>lWP{g!t9u zG)fYGWe6hi1QxigG6xH2ytwJ}9VS#Sm)WO+w#R_z+9bo}YPYgOidKWwA|q#71IYEW zv_$BNulo66VuhR3(45B8BY7 z*&+RyKv6qWGd1IFOV1YCAb_&|8)8R8ArxD%V4w5>m)d2N7|hP>AMCpl^~_h3i4+N2 z&4{F?x+(NBhlGcZc-M5KtF=_WZ=**KmT6;h^iXVEupZy)&eX8z_qBA!1D33m>~BwUL2=^b-*--hajU#gn#Ml(+h!{yErh9QFZf!*U@92M6q@1IG$& zR$p+0@4FFHE%DiYzi~3C?at&Rbnmn^zbLg$^90j{Tw25s)oOBK9F}WmYSVOzyWbkQ!1c~E`VBAN2_S35?@2z<$ z#dY+|<6#d@LXqd)ey+B^sswnyNgkbTVmxbD-g$O#s$bnqv$CFh`s-J`(_cbDfOA8l zCmN0uU8=Q!F^>bed6Fr3`ft89);7~tI1`;=7UY^B9jY2DaD_s1w7>WgRJX|)?S$)X zRE$9Sd|*|mS;en!q;sZF`Y~^30#te^)XQgedR_*48rK||)PfBgL#CEgHg8mRU&g>i z4MtB%eLdM1DY-gd+RPN@T(lLG@Mk83v*rkwPIt`L0u{t=P)?&*YhlK``B_E{f9Jkj zIJg?TZC%9OE3&9z1P8Z=DbE0_v|Bh~v1;aCClk6M7*e^%l%%UnXt63WJ_c$)Ih_eW zIIgV@wEDD7XP%U4Z|?Z_A}`t=2$J|Gg-GJD`HhD?_`5RR z$=9{);_CF*O|s<9RCDk z6iol`hx~uITnW6mkeJN?4=)a9R*QT;CCL2y0*8b`QV)E};)A`f;=M#qLD>+XqW2Kq z%yKTjECI>Pa=$YIZP45g6@Z?}Rl`;^Djn)E-WVo(ClvYSchM#;IYe1o=JZb01^Qn&xl&#;CQRXBSpQ3U&SQaKXJP8xyp z?qx`ecQVYxVX3kIhcBX_A{hX9f>Q^YHwZ5Qj1ZE#{1T$^ZP0rn6$T>Hk8*nql%D5$ zb_*yk&ErG-VVcPkwb*y=W%&X8p3lJhuz=jGViD&jI>~is+3F6Iht`b|tj_QY(<4}C z$y{7qat}hBS3D^HYgW_5d*=ef#W4*RUtW>I5 zbyS3e7X$6A4ZhqwVYREG+e*dY3uO3Qy)mx@Jg;>tpd-EJTIEOEc?2d_y@l_PC*(6B zr$W%B9_2hy2}-&}nWtc(?dBOXb7VPg1xs~lbd35UQm;ct&u4yszpuPt1a+ArXa53o zyxVXIn9N;6MLE{~dbX$Fn$5cRA&z_kQnu3BjqQwnD9FyKgaJQGS0Cz)1u}(o{pW7x zJrDcfr_+IsN0lM$$~XgZ=0}~Jsx+3|nJ9HY%l60^3hKO6slaSQrRim0zDhn)Yu{v_7yxs1aAy34oezvlc3)imN90M1WB zCD|*5j4Gpi#(J$&_HhDsSG}%n20jwo65xUr;)rV-4l`9B=Ei6yJ{E-j0;DEJeSKqo zYXQhkPk;DL|B`W$-HFFuPjOFHf8AV`ki`D;5YU_OiQp>76+gE&f1|{Cd&rgB9P@Cr zf$8FF5CzDw9jqSjPdKpTA`xhEd9^RkeySZL@UW!!rI~IrmZXJDGJjWD>8MVrWVDL| zazXpM)Y5;!b)P0{?Ep^$F?)dgg4+FEs;lc&%IXh1TrF z7J?VX6QG+D@-bGhgR_}uHwe@MU`W4TI|~cwv0TO}KltfmPMF_OMC}>yno)qu46-_NcZQaL5duC<+t1T`PeTdnKJEWMYY=0A@3dV>e3uy$=(d{?_*b z+bhH3K7Mcm4R7nshcp{Q2W)C^_)vxPIvTpk@~_O%PoyjW+(!^s>1@8IV~*H*Z;Nu> z>_F9L!plJ?LdUvzXBo}`oqq5 zUI!#l&&l!^Q;*%*POb27WM=mK<+pr?zrLa3OUa7v=1>pX^m*mM$?|o1Mvy&~vO4h! z=~f6y-V^aRF-MbLeKk57F!W_0$hC0`NO7loR$$JM_6s3SRl%xsQ*(24AeGT$Rua z?l@%V?>PW$tCCk9+`oHLioLFiw`=S|u>ain^6qKb#qe7T)3ztp^`yu)QWE!GVHFfB zbK5H1Qlx2Er7#*w2SV6tO!{W_!3$l_B^9bDcwnSCJ^vdS>7wji$#!YKLzwEhqMd#cR~lV~iS<90QyI(l2zScSa)ou#BtznZ2D)zBnH2Uc8ld3)~r zrB43Z=#F(W%K1VZ$*X+Yvt2WHE97tv$#9-(SWWD<(CP&b>XzLMO@#V)bE-@{1W+U# zK2&Vk)u>{V(ZJyJ)}Vcq(>ikmHWz91RqWLQN9PlL7ciDM?*+odp7>0w+8C!zw9jWK zS{j$ns5a}W(}pvNZZ4!(d^fEbUE3UK7g?X}LZb9!z2o^tXQrl4)9ivE0n7m6-!_WC z#v*}3c)Vq)Tl%>TM;=iL4xheI340msMpJVhD-|YPggI0Smn8 zR>HFQjggJ+)TP)94>0!Y+}4j?I%c{krIugh0cVR*n?)XxWyeM&jw?_pFspNCGv%Tx zG&)~vM#*=-LUX?O1y6gyw`8xUb`Fhzp_j+z8s5c95N3PryhVt2)??|paakFGk^9oc z4!46I)9tAbYoeSRS^#ap#e_8-h)T^5y|8!%Ce!b1yu?P|#(ZzgIdM$qHQ*;7V>;VK zj?jow>7?|yGetR;}|BHQs38xDNl@{5$J z0wE;>6RfxeprgMkRA^`zwUN#t72Hi zU0}`LlJJ43TEVT)I?P|Qs?ykXl!CV&mQ!GY3=-Gf1`a_etS?cw78#u}Rv6P3r3}+~ zsjmKBOwBR#>-=`NBHz!R8`+w?>ZMdX znRi4HKgTEJdnamsh+OpC8eP&?0M%IT3(0b3Rthz%NQm7_!7DMOt>s&>Q z=HtV2s1fe1NPk>o%>UUK~- zMFprc8@f06YS+v=RW@R@G(VrSE1PX~f;Ql- ze&j!zKRB0~aKjz8+YRy#a^{C@w|2PB;wdUGC~Ry@h#hsWaTJMep|`5P-?s==g+AzS z8cv79wTwao3)sDJnHV20Pk7WEllihQ%On(sBd0R)f@{t1X%kTmgw$U_g8Oz$kUujc zd>{OCZVb4-?7#b(omvb+(tTqXk!`$({geOse@Vh4IoEK0}<=1H}|dhyDNaGl=ksp~3c+Jn_H2a4k$e={>GB|ASm& zzXKh#R+8%VJLThlpRvd57r>9Twjap<_s2`aZ^S3i`|l_GK5zer>qQiSFF|+ce_fSf zgb37dnf;4r!$*1%!EdBvG5r_5gAWqlfG<4EKYsXse>^?>#{YX${>Lr;KON%#dsF`Z d^rZX}!`miGeS6Q@bPxPTK}JcND?G8NhFH| z5fCIw5XtZg{dxa)-n@6`tu?b|&3faK?$dRu>QsI8)mOE5?Gvq~p-4hVOL*zhB@$&N zIh{+Fu%O`j9X>AjyhRXged!YJnU}nwmy4gBBhvN~E1&G2D^@74gPW%pE1w)I6l&$} z&W&)iviGoZ@#J>3^#V!YzKa{e(azBp@h1ZJgaMipV;6xVeB71tAe`UT!`SegSR>-^Fuu zt?aBk9RIDFi`LtES=s+-ISj6&sjevN>2AZPqTm1%aFSIQ_|sw^TMti1H`hPeAW&`* zZs9*Sy!_p5|D@Wxx!EJZL!qpE^1yiiSP9hc_>WzbkxDRME(<#ml)SU2j-02BmI~jW zN?ff#Yk%8U3z&ur@~09Z11}vLL1kZgEq;iWtCgaPs+=!ej?bFUS<}ZAffC?DdMjzW z>!>RW$vYUhqCl^}e`jR}WqUm>BvQ%ESC7|S3979p;^pb%4RKYHF?RFh=k@XSa8vOR za8VbuS2nVf6OrYUG18M!@^bZ8=2fy)_teq$S60^364vlHk_W>DGXj+w*gK#ERh$I1 zWbOHt{Zu_2QL;*Io^opPuCne(f`YTE zGE_;^kY7R9N=;jxSKYx`K=7hw7nFmLI-jGqnxV0PCqh=9SIJ6U*;xMK4xh0e8m6J8 zXe;dODJbNkrp0H=C#xwVq@d$#Y@=x-sHLhRg!U8Cas|&(aDW;+fiGcucZ92pv4J5{ zP!O#k%nw%;5!8qA$+@}u+iD^eY#e0$_4(yIb#?t6J?(u2jkSy*B4{HIew3#Y#86Qe zZlq?dWN!^BQq|G370^%xR~p)$ni|Ruh6?J2`Us3h~N0c>3!q*(&+NbgZnD?2t$SK?qt<1!}Da zGRw$o81uVmD{83nE7a{sv}%ojYN2Xqr*J?1+6^L_6S9P5netG zkl<%0Vq+*|?FJWdN4wj3`0&ahRJ38j9##-nsFD`wgO`wykdvIYEX-BTM%`D)O2JJ5 z;cKG=Q}#08a|0E~AyjSU>`+KYFMWiP07Bab?(7a#6oeQkUEKBcb~I2{L0CI@!Vn%V z?zTu5h^me^M9bGeO-YyE&e>2#(?(a8*WX^vP*2238KMma1t#QfZQzB}_T}@0^IkZZ zF`urQs;8R=xP^dw_`_t-Xb(PPO|pp?ZQco(^j68mhv4+9+dJT{KANm(x_$ zQE_#5L5uJk2*PzyI>PFnf`Udmsy6O02TgeaT@jGWPTNLBL0HDgz(~!}2;mA+ltJi$ z3Fzt?SZn+6gG)bodk1eXUX-<;tGbSgoFmFvL&#Z|PgoUd4Mhp)YY6)B>!@4FIg99N zK=kyXLUKAzs&G3{5DbulkGqqIj}Xe%${p>cr(p#17xIwjl|#9sH2Adr<$QGYd_YDW zdmC2`&=>_f5UXI`{$Mb{kBiY#@b*)LTiJsaDY)7}1y!99;7ZdIZsTGgr)Oo0Fm%#a z*VEEa_E6E+(6E78@i}Sn8~XbRyQ#ZsBRt^ta$2?maC?{+(%0J;<%!fbMEm<*jEb5u z%3D^=K*J5Ct^-xk@Y2zNB4q^ptPM3?L+Fg!6m~)zTy)Id<|4@Q zffYmHZ*=}0s=@DnmO4K9u?iIRrAv⋘vdf{LDAZ@VxXp-<~n)T%n*8rO-l?)Tchj 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 O{wd3A$d$n?!~PowBrdxE literal 0 HcmV?d00001 diff --git a/sei-tendermint/docs/imgs/tm-application-example.png b/sei-tendermint/docs/imgs/tm-application-example.png new file mode 100644 index 0000000000000000000000000000000000000000..47d4e928cb7bc9c696814fa01f7b62cd37e1d7c0 GIT binary patch literal 26691 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 H?9cxINgZ4^ literal 0 HcmV?d00001 diff --git a/sei-tendermint/docs/imgs/tm-transaction-flow.png b/sei-tendermint/docs/imgs/tm-transaction-flow.png new file mode 100644 index 0000000000000000000000000000000000000000..ea49080037774b407a06323bf63a83785bbd5f58 GIT binary patch literal 2488459 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ķ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࿡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

`Eu6R=P^1SF0T##=GS{ln?J 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
2qNdJx5h1 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 ^6D_G!q7=b4;K;x5 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

Ht{;jhteer&n*hq}VzC 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≻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

d=nB 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 Fd((P-a?9JZ*}U z?`sGIQGaG_JQsQwHWK?4JQc7CSUs&wuk+Q#7I=@hlTJJg;JS*>!3|ZOPedrvtXvCAKJR z53#`;H zU!vbDCCPRYT>;%&gfUk;4W_ri_oS4N$2oCEuP^`OI@`=*=$+nIvqsJWt|I?3kHgBg z?X+amf;9X7n&IEzDQKs~!y_mE%(EPRei!0@7%r32`5#Wp@sT>in!{holATNY?vGQY zus%5*c$^dJtCFB%+A2ycBC!)Azh!k&@jI+N>=!D92%2)O(M}m}G|WDYsZ@I;I+5US z>s4%ASG-si>C6&$Z|hF}1|U<*pHYyJW7O5K&D?0T$32nypAUO_>$hK>VM~BnM6eTt zS*ot+dQtKtL6L{9V;~+g9<&ro^5R$KgZwAVdjaZ{X)#j#2Ylus%v(f#hbopFyNUn{ zuE?4;ALsVjnIoJ)b0!g7svBHh0EJ~4`tj*Y5FHx;@{VB#^I##4khmERW!uzCv_wX% z2ETsa6I7|PhIgErjjI&j+Pa6r-ATUWA1OH5Ny&Ahg0F%@Wa%`6QB_QpT=~5i2QWdZ z396EpNV@k)QkTO9c%CCc!cDeUTA7NAJm2qCz>m=xIZBmMpYvJg25GV$f+4db6Q44S zjeo8wRy*qzv-$-#s~vcxnh1EA)R{i8Ssr#JUv(OqgHi!qc+T`ktE7MjaNC^zxFCW^ zb(_5GN5DV8zNaq>@>M__y~$#c=zs>VH1tFf*#d{qZ-iSZ)r3Lv34bOYZvfn+v{?nF zZ-B2g6o0Am&xeRKbyL!trMW7KJhkUbpOGg`@WCA7$*rUxc6X)m^E%-K(I!aI-nKaz zVVIhL)hlKA;2ljCc}Wa=P{cwVisb+g0QY3@fdg_5S&d@=EkJP$MRB19apx= z3%m#RWBo;f1`sHgp@oyLyZ~q%dV@#kle$w$VKFX7ha3ALMW6}+BZm=3u^35>FQX7Q z%p{s8$ca~d*bAK6WMq!xNaMnGs&K6rT9{~pPn!04P-srT0nIiAWV>{V0Bg?(-_r;F zmSPK*j`5=R^PMY{lZfp@EPl18ZN*LWiBPRpfD&EE{C%T}MN6(>`m8fD&#sM_bO8HZAla{Qemv>7lfbX8*Y1wpRQ*?Y|mH8Ik-s?&a&hlBPq}G<#9)HtA z^3$K0L3W#=7UW)wu0C<0Y|k&wz1w|${2^`jmGVgutJtLc{p#eY+r=K%@#bllE$H(p zG3(95cdV(f#}rO6H{IY9qU2_$c*+9Vf^!A;eTQJgYQUW)9{k%8%OUMy5>Q!?g_ zdRCJJj!YQr+R&p%qA{UqERj(xqnvm%FXkfcr5!Ix#d+r zg(k7644s3iBxD-zb6oSM8tXFezyCv|^9`tnwf zbZ|`GY?{LuREn@aruu7^%xf@BMUr}FVk|KSbYGjql$2m7zPU`dy{IujuXts!N%&+! z^fAHqc0~SEpuK|mPC;p48RTes5V3-!oU9bG|Zjk=U98arH`cR@=xv9;rqP#z(4zAoD#$2${7# zYvX`V_6ujgjtOV&$HJ=-czQrY(O)ddCzR|N1C{~EHPE(Fx*;?nRqEkBoL=uXjp;cl z{0>bATMi}4OD}!8xQtxf>1h9XHCW*MiKIg*H0GdX;7d)-n<0jb5#o^6f;Ab59o*Kb zvDO&UQE+eiHUWUsu?@tXVoFLaxPgIb3;8MEoH|coH~w$YCr=6iddc1&&zo+?i!wc0 zBR{rArm0xiuSRX;T=3!<|9=($kBwt~^x%*DT~OnUi`%Dj&L5$CjaL-YjxXW^LQ9J^ z1$WgR9P|lTMzs+x0X=5~(ge7|%G49wf3bbr`!dO%=g{5Rf3o>o_q_~{K(CEXARk}< zyUAm8i2Uhf=C4(9N)J!Ui(`sb_@>6WEiK83Q#4j>2F+F_<_uFeKt>nh6`dKuCz-ii zrJ@2LrEend2G5jQ!nG>X>y}nnijw1R8(fd+2~sp8d6n;^ZOwZ=b=Bb#xF`*RbnX7~ z%w35871mq@7+t?*f)G zPiU4Kmb|8YEa_B4Lsy?aNoK{U)P}QsT zPnld{$H^pPL!QJkp~Jkn4OM-*^jKti55$8l->{g~@j--iXTM0>J9I~#+p-&8tf5Tf zW!KC_(oo9Ww;w4??f;xfd5dqxXkK3rE^Vj{bcY{OhhFTZZJ1 z|F2!*9vfncUd!@#)f^JoG)TA3HE{V*>dyzTY*IA*UgyCHI}ibGOk(m3(EKPgnj;Bio?Lb6PxdB4!K`1qe~hE~1F+ ze>ICm%9P&iR}wo|@|I%2k&UlcXH)P7ApOq~Q|aHaV6?V0U6i)WSf3IB*REVShchCO zyFtB*M|p;R#3tXMyKsXYI$2s#9fk{xxOFo@-_AB2I3_CANS=ozQg~N1?c~T+#h4wA zy**h@rVKFJ96!An_3t5Ky`PzfepHY^rw`z}awS{Nvt=f&H8P!r1jOexy8_Pt3|Vpw zUQE33x{$YdbyYuU$TItqk9Txy46q@7aG9>PnO>Lqi<@}i!W<7g?18g7*+l@P$>PH} zS0chf2hy}xthuJa_3YB83nM9nL5WIn;Zwe}T!(m420jp=#w_fngg1!w^tO`vQ4*1@ z{-p&kEqPoO+}4po?Y9K@WXYGHL^ef<`A%YU=5kD8Lx_dr>OWkhT>nal3?8Uimv~MwH?VnVc)!%UI1A? zR{Xl(TJ)papS>CoI&AVPdJq>SX1GWApFN?HXyi9S3w`h@(JIl8S6*d!W5mO>%8~by z8$}I2D@@+3B(5((h@Dx^=|JrP9+_{9NGH=mW~1??ZRlxR5ND*D6BB3OAfZ#fASKPw z{MpuUr&wOPDNbnd3O)6&=!smK=Xlp2)sdk9dF2M)n({U1lhQT$JB|UGpn`##*4?a| zGB$6-^N9E8rD_>A{$eVYU&ZiDCU#IlKg=4vJ-rIl_+F5li0ot;o?EWKY!#Bi#8t?b2slAW;s8U1h>ES{K z3iiZtGGf3L*r-ar1!p$Oo;7O&Hl{daP>EowkJZ!>ChC)ObEJd-HsjFNtWQ;Yttafz z1(65>c2#18JR7}HB8W`SYYU3N1dIlx$B;OH+B-zcrh@&MNt*4zKE%7#0&JgMFvI|A zJi<%0uws${d>*e}MG+Sldt6 z6kv&mkWfBZjo&s-NM89x^K;2tPOiSu@X`pxoeK|lO3=(GynDM;lC(s!`(2kpWL;jj zM=$2bmYZ}E4|jU2`}5`%JF|!x0T$+sii#n<`Oi&(c45QV|5U>=ljE>j+IHz09!+DJOw41>#z zMzN=1VGiA(eQMIwe-zJ3qRrSxeTY6b+t0luml(i=^D2yfLZQg+M8MA}uJ=ys9}>U- z&a)}cM;RG=a6U=}TWGo3CKV+FZ^=8Kv{DBb;XC+Sd1aD{k$!Lo`eF*803f5rX%~Hn z59%i|;Lj-ws@Y2Ane+{@krs}@ury7shu#y;(pg`ZWct-8>mO8t!aVrXw0JzcBRqMN zt|R<62v;koV)!8hAm5#kJ$>|(0Lm(m3z%$bU-HjmE_F!Scc@)TRi7gGQ%BqITURoVArjcbpf#nO4&arZ+RH0D&e*GWv z*Y}>`QoI0I4X!|GxDRG9s@COno<68G;l$o_WTvxVBu2{kY=>RIctcyLNwazkCfT7A z)v>L}Je@>wH_NZ*pX-a=Kgx}>>8d1U=8ehjYYg$fCr2UXEK+OaFzQ~t{`V5qZ+TGD#`+H(9UtnwZ&gPVB5QvF4 z|6I(z_NgQjYCNbZW)amCEZcnN zUUrp;I9z2JF5SstKkniu-Az&Kd%&#*#Ts8+0rO=)BKSxt4k7vKKiN$+eh!$1f&p4R z_9zL;DTP#rZj2ckr?G4hh?Q<}iv#7o#^3Q%ra4CXKabigfhn3x0|D1-mZ~6GLyEK# zx2yOsoM;&jWHEMw{}mkcq!kKe%E>kRxy4(=ihF=GTCNl?HU?$5Yz;y*-R=&0@t=yk zMEp|#Jeb{Os;Ht8@#Y!w1V}l@LKM;>yR_yGD3=P8$$1zXEP)q;|??u?i|*%wds?)P+FIPZL^IuSbV` z$rs~`&=GygPcE%h7A*oB11%X}jZ@`RDH{j&4gNm1cKYqo;%h7uH0t_AkHhTBGaG#T zD2&g;>oS3y3<4sW1zNH^D|upkuj+#Nv7K2d4Y1|i^7$8Xbt(Bm?(RggoK8zRg%E>< zCNA0^o?o7hOc34020r6hW5pyCKnMc8(E^1%!v))3@|r~)`@g~|AUYHqe$r*on^qG{ zOr!ztLjR^4J_3u(qt6!OO&f8NcYu5+2gf%zGcycmbMRG?jE%a=}c1*31m}r$OrC!VAMZn({en#!0iSp~bMG^mJ z#-;U4uDjnvqxcgJQalq6xZT#hYhjAx*!XX4&i3Fg;Y`BU3_`S@F>SF~cL9uX7Id(( za0eDP+Lh`ZtqQi5j=4Rngy&7{6P3lXZST&Q4!EltMGX=X7xzNoD926%3eAMZ(5sN| zZJlpLZ#o%T@SMG53F71M`gl3g zVdYT{A`E+G@>~a7+iDWAUyb9PGpBGmp}5b#1GZgdneKp_1F*l8-ok78vu`fxY|)q< zX;M8+WF!k^0puP^#ODCUu=L~05#&GoTPaF|d8St5`I)1OWC^~|$5%*DIT)_;U<#c^ z8)@iPuJ^Cl9x~D{dB90|0bG4(Zb;G`lT8ggqUPpKmvUC*2jH#Qh|OKus<|AB8#^|7ti3szX@s!+!zYT|a?IdPq(@k|NkXzqLqN^jrJ3{5T0 zShfv+F3bvYep;dO;zN^)errNv zN5M&&wN@Mb!NA>381BHw1TA#BPK0VXyMCSu%VO;(BHw^WAwL`N6SdwZ%ML}Y48+`h z{dGI^;#SoKJpBGqJ@L@wjW@$tTEW_UlvMo5tl^c@=jIMg|0Ep6o!+|dJ%9CIfURI& zpk==Ar-iqM!Vi9m?9>SK^qiCkcqXgj|C3*1&1qjS_Y3h`?uG04H(CiYV$o=}0fYjky3_AN3X27tlB2Iy2Wr$9_+@JSSm8N- zBVRtlj(ECmJQk})7yVwHu3u2%@6F-<8zXH70CgNn_rnUyDm5F#`{=uz(Dg*M+!D=+ zc(RdX6s>QBZ(ArnB?0n;7b>-*AI+wuliia_v1h|w-!f&(Zk!N?iWt=DVHq14r}gtyo$-bd7m(i&T?Kh!>_{Sp&phqlqA__ZZ{n!s2 zN_QeJ!Wq&~ole;puzLMrgyET2yQ~jbFWjGO T{O)??GJ|&$%IZ{SUV%S_GS0p_0 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

yKu9S3A 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

R1PbBt-4*=JZ8jWq8Q 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≧15Y=#~#v^jHOsEsaQg-rZ#itg_? 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 =#gd`D)p8& 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

1S52qXNK;bqnbx zKYm&k-^RAc%0P*TJ5g~1{JIJaXkLgWT$x3`7(dhK#+#2}|| zzOAIF_pCuUR$qtCQ*Gq?1y@!Y;)UdufveRM5hGwNA z>gm+ybxeML|GT8x#Z01m@8Y*y&>sPc+yrI>>oLvDW9WE6Mmdr4v@R-MoXi@N` zv^K@MARP-Zqw#X0Sq}BKHba@>+4Fut8t1H%M9gYisC1!#5%dJB+nB9yeKEqEXQT1R zMkhyu=sh(m!S<%x2o=K#qU_Hp6NgPYl*tM~aT^kryxWbQjOqKR2H&DK-)vCD%vn4< z^o3ib*eG@(>trQrg2rm~@ZTGnN5MC%RPo4@0!Mo@_!#UcdpQA_ z7~k2O&+BFbFhYApp=udMm{;}Ph`e#XFN`8wZBT%nI9u@qDuyG?;{Im_`f$Vlr;YB9 zAF>Q{N#V8K-ivZOBXz|s=m2@j>%T=Z=Hg1Cw^!2CGsp($>h;OGs)x-_;Sc8dkD+{T z&Xar3vfJprT6;B4x6)GR9spSr!yEFqgWIbD@)?h5K|HusrngmnS2&B26^SC0rR?(njqJ zY0-ZCDT4&8a|BkDjoP&Q#ts;ck(s$MTCH^s92L04gI;gvy+H>Q6vHCqg5t+)dVa9Q zoYVgW0i0A1)*@Ml;M=c;hgm90#O>}Sq$H9Z>`An*M1(j1-Rj{^aC4&cZP44w{*Lhz z$&q73mqbel4p(L(gYm)!S4&yRv3v$r5Xo!Fc%3r-b zhk^)wc=p4t5m{A-j^IB;6&*Q0Cq42f=V5uhP&LIzRwDGc7}>a3)HG%9fx|t89VknT z0cg&!oAlDh7t(%R2Cd-=Ee7w{M*y`J^zO=YDB`hTHVQySoLTA6u_}C7<3+RFWL@$B z0oosn62gyyj+GVIl)1*|2kpECy-6{dN+t7V#DC#8-)OiAdItYKSB)zu(1|AKyjWK? z7h=YHCIGzfu%66xXpzRmTkJKFcy$Q&q$raJum%h(s$j&a6SI0nJfl;2+eH_`&|AVY z;!NN79bzWRwd=W;{C4H@P4wl)N*Ug!tnn|lw=cweUY2f(xGDDb-O6Z=UGS{y&V2la z_Ms;YT-s|xbc&Yg;qv*tWAvLOoKE|d`DBTBprZd_%9?Hp88%Bnzbs`We}r6&$J`!= zmTAftwenAZ?XJxvGBq*v80?A3OHD1JKKV)?y$uT9Wo`$k$w78IZpdi`_@p6LYSG&G zikso6)eugFUCb*Kmqv>M;OHQloKo~BOK;;5%CuUdgjSB5JuoZ_*QpPE?!i5#%B{2g z6{?h%GQP?w#7aCv@_U^8?8UTpgbE=?lN-JeMHX+rS5d&B}oL>e0Mcg*U zc|;&4V+w0LiRs4P*dPpEj)tMkp(cIVTUQ`hB5pk3;R@-4Ef2}hD`c$Slo=%;LgiOh z?2Lr4YzYi&?7p3`ea1laWb|L+ZT)OaM8(M)|E1q&fFl#aUl`v8l%bf+O;4kI+pOyn z{(UvXzxrg=cORN+C8xIT4bm&2-W{w}A_G?yjUL#~1U7lz@%8J+Qf|FQgj3s35bGcu zC>Z0!iwF@I0v@oRdOC>ui}i0vKv=kQKwM*M?>~K!r`gsjYN!jy;_S@wc|T7V5(X#` z07+gzHNem6)cU7AN0&*QC-p9q(8?ArsU0@7eL(LINDPo)tHh1Mq(xMI=n}4RX8uW_ zR@&$ujkvyrG1woOR)1m@PU(dTBQ?pKQ~DVEyTMw-5pbMQBb4Utjsj?{Lg{Jtn=C?5 z6Ke}s)E((A=sGG?hMvR@U0k*_ByULPUeR@HW~5dcM4p}V02HdZqG5)*fFAQS%l!}3 z5l%b7;?I!ash1~HKXNvwyI}5+r}|AUaUdlYgwuzfBeAfE{=1UM9_nW#_s?&He7p-C z4ul|Dj@A=omTMOPMRWNq;`fBkDGRMro=F*rZ454k4E%&17$GWTnV$o#)A=1$MEA4> z09WmeGIR5~xvkVKqZIAcx;Ur62;rocFE;otxyH|L{f!I>F@0|y%y)@9&(M8=YcV*+ z)l3(Wr&<+=bN~CE0QQ$^$!sF**DQb0LiX}8d^G1DGP#=;egSYJo=j(8yD%P%9*U9a z8Hpa#S=f9p1Ld61;AxYvmgl53M2e7rymt{s)&IC}RRI{b6NLe*5Ypz^>BBrPa9rOI zVR@_?SXdNe*`x0=#LhT&4eyo7Jw~5>sc&v%F7KgJdSzsy z16X%8z|@nN!RF{q;yJ`l(a}Ah_ryHlz>P{xA*?{bKJ-C zYRBGR*Y!Jp-|u;zpH*3>wIHeq6rM8Sa^2&+qAerN+~A@F{d3gIuXb%C9kRYD6u;m6 z&FaqHs8;&l!Ii!W@`4w^Haf~s_E&VdtMzy;D!X)D z!Xx{e=Na!N$5cw&QN>Byhl-pp`=<7ku?9+fT3s$7nSXdK?5UBV74tYOPs$&6mBszh zs8Leqi>pPgF=K=*IXF&R<})=Wtm@SQm+NgrbI`Qgd=afdKrn6iGTn&|o(>e1e1_PH z1msZyOfMiB8bY<=sVJ_k1oTrSvdA79gQirfOeJ!K7#B!nHNpY<{85&`mO*?%E9PVh zP!W)1!HWpTLsUh1&1>A~_5XTd_nTkpkiIK zh|3#2zmjFsO`NE86LrRut)(;?S!W1>HsF@!a_;-bE+tpwXmnnqkPr3G>thPzv5zVw z9A55U36-_BShPmnT~dBam_OQIe_1P5tFy*(jKz7m$M`9W_QXF^FE-oj_hFO5C^g;z zQ<2NXc8Gz&ZN3>gMMn#)Ta?54MPUDjjH$~qUx)KRn;xx>T1>wmv%f#=>HcYGEj&pW^t(KVR3n(vS^Sipp;@6G(x7C(`vd}Ai_J8Mvy zgVS>i`9A??$044L){K1SbaTgi>ZdQN>1@&bS3B=C_+D|Gt7@MWAG-|*iwMKJ`m<)L zW#7OFzG!nGufk_v1E1qQ-LxK3cCSi$3DJE^>M4t}>{g zFf9BTz5IN8;B%xggOUs;Dc&wxEl8NpmNpq^l|9F^p}P8 zl9k5FZ&Tg}ye7@m_zkRiD0%fRWV*fi7XnTo6Y@w@UCg^iW|Z4?{L6j~g;w7eueWz1 zC)!yIUdM07Msix8|6DNq0;ocX{H3g{eA+wmcV`4_hpkF5>s_~nDMO8-l5O8pExxaL*D()_12v{WaE$H-LvSWXbu1Z1$XP@%6)L*~m*vDP z|7eL+7EUSCTJ@cmr&l*ttBuqpTLdnPDI8M*i6pU3;m(NWINMC#jX1<;%+Cm7yj?k+ z!Oe_1AJ3c@4A@h8&3d&G-r)^?+Xp^O$S3+GWgA-RAdLo#pW29iK%11ukvqD#la8pA#G?e#0!z{}D_ zqBipnSnf{5twpr#0iF_xTJtPq(R6azQ)oV}{b^upeKg_y8(O?~IbnuRY2SRtpZB4R zsSoX&U!50-&M|k+1&V-DGdzC>RiNsdqVt%Bd>Tdk-1@LYZ2I?@7ROxN)w7p4t@^js zgv@rE+`8+p=`6O~kQD*>q~aF2E>6Y_n`3+}J}i3quC#yVt2Uv|TjSrOqhl)QKpv#i z3(1@Y(0mWWO2{>Rx=c;4b`R&Y@BX7$XwYAh#0S4P_#m1*Moir1i|J2sf*7RFn}Qal z30f{4w)Y=0WQ6*(IwXQj;sxJ6z1i z(ay-2)ytp73n-0@0(&r7vCPXj#F1shpxXhx5-H*KBYp!E2WJFAApYASF)Hxgv$)!5 z&%K%71e~0Mu!7PH&5t|^N-(=!Ui$a%-zinuxa+bPo;n` zL=YSza~XxtJ7Y!}@**Ds7BGQ3E>+9xBT1JHp2(_H%lj+avg(0R=CC?!8eIC2{Z)$a z@kD2JLbZ7|sJ=#1%I&@s9t=A4lp5zB<{|EsRkLUrwfwqKEEw>#n1kIEZV44Rk|JEM zd~(fVn3c7C^DZ-y^_lzX0!)rry31E%_@r1~a{MT?FeGiZU>J7YDAN@^wE<{1SIY)k z_eE9a+35Q5Epr-7ybY-O&wzx=)(0iH=swB%*HP;x%@zJD%Uai0bk|~8d{@4U9AfBfcXT;Mu+Pdj`zINd<|D&bV%Q<61$ z3j=gfwGbl06ju+zaZB`fes$__prCjprS1$z;dq)~+bWdj9%R5@`w^3pF8+l!kQYMS z@`@vf{o#lqF^p8Bg1XhrzjP;FLq~kfxd^c>z}=O8CMnm}XdCL&gu)QW450KLhq;#d zIeb>Gu$1L#0ogXVpykiNvBV&1r9a?vVod~>m@aT|gH zZh5d*SqIOG_-@$0T6cQ8L{w|y9x@JNZ{y(9nOo?40$TBbR^}8d;zl{q(FpAJZ|Y1T z^9;X6@D9(y0ux-%Lr_uDWF9su3%|4}>Vyc?Vi3$gBPS6nh*RGBSXk^Dg=isLW2xOx z*|VnPMzB6}iYryYzS;}!kY7B|@rxItCS1xz!4~tj+`1y^ihpBcO90qWo-{;Adk8kB z62F~9VOJv9|Hm_64s|&`!Ui@G^2FjAv($c)EfF;sy6yi#@eOxnMaSQOlg*-V9a+q^ zMlEpqB`s!({PJlwa5;)|7{wf%vSC;LPN$^DD8`AOMcP1uvNH;G9&U5|Fk z792%;e6xwOjrw&~hEvNgvnTOEL~!uNYOHa<#I{Z{w~3BNoJQmtw`n9K#Nm{DA+15{ zZ(yc}ALB)@-y`OOak|jxx}q6d@mFb9BS@aW1k)D-i6>b)6vPz6F~_EG_MlTRfusM7U+;3bwZksXV$UAJd7gB%Vm1AW46X&hFw zOx9S6sdC_0>zU8tgkD^ ztV*ZwRcG$lX)H{+_PFyC7PnuxhY^%YH?M&rS^HB90@Oo93OGp8c=`AJkp8#7BLld@ zFWX}(s&RO~<*v+hg+G#~Ov_buBp}&I+>~svFZZTYCLI=(mf~HDNEa{f=Dff);T1XO z;}$k6U24^Rvoq(h6w=o+Jv%S(+{J0>IrOEQ3!TYbMVBwg?_&LL%yj3MXx#P< zY~4LBZ3csL-l8J>X417-jriF-YMj63Rn~AUYgR* zW0CTtMfz}Wyrse0olBLynG0iJD!VD`ev82oj8CaoZnR8#CVRe zs#M45nPHBzADA$4ZTd^Yzm%_-Q3K*j!>bNQ+GaGPh{=^ITCE8 z7RrbK2aJF6ch#qKZ>b$(U%d$MPpAgF(`AV9gJOY$bbmPns$38CFr8!Qhw|nIfIqBZ$^_88mAW~0-j6G8!)uykmg9h)%SUk zP+vks?Xia!8o8mE4eX{t=+V0KOMlrOfCaYlM|P;|h~cy|xNZ}*?8^AdO4ol+^k1qs zRua*&c6AUeexX4Ir9gS|NGsMpwFzRo`mwff8gT$_0!gzr)%HG#gt3);9)j7uzv@Hy z3OLC`-@p94t|qrG_(=QhqugG;0c#d5(Z8Ka@svszh_z?c zVmH8#oD9!#jBL>E8K1;R*9Uop;S+Kpo*53FS7xX%K!g%62F^2rc)lx;=ZXrw%aI;Ou zJU7E^e;>p=&nRDEle92*&@2M(F*Keb5A*XzhgB&mIsiY#!26H{v1@`I@twY#2`XyU z3Jw>WX`dbGevZPbZQ_C_R4QV%X8ES6^D6Bi!7A@i+tj_6B&Z6h1I2zC@^u`uEbPc*<|apS^BR%ole z2AeLI4dn4|j_a3xTLzAkia=P*F|O8-A!!ztYW^J?moETD$gZhW5*r2v3sWRTC=8nr zJfRp4&>L`jSNrytvBtz<*2MrNJgQ(ft^w)l3^F;7n8R!M>wLDLU~Dc-%Y|?5=h`EI zoN{};REko8&*H_o7IJ6A%WO4W3`h?Z52QN{pRTM-zZhUK{fourOSye)c;%$pdn*k+m#7R<*TF zRbnY^y?&q0sdyMK9yw_sQ6&su0Uv>j?pJB_DA|}k26b}XGCr(R`qW7VB6-?xX$#YjBGBAU3cKfRCpunF$Z60{%+Kri6oNVnU3XWg5hvDXYJR2u6qJf;jPxpe z;rl?`tWa%6Tfh7Ar@YbgYoSv0pH_k6)HvUd?G@(U{tdY;^eFn1Z~T|{BMVQML4B z>zp2EU)?9c^Voix;O4jTl%bxlxYORl+umCX;fi;3G;1K7zA14!Xs#LoGpq^7VQkjW zX6;!Od6p!!cC*W3Gb^z)2c9F%Yi*M#i%2#_Hm3d`i%$nn^_s0di@glCacQ42(boG$Nb~&Oq_QizjHik`(6YLwu`5T z25)NK5&C9?PlsO(5%Pjq16|x9eg&2fr zj0O|fgioEA9giNKGgOd%Mez(f$AkeLXZ;UB|A2viD?cVETE;kE6opY`ws1tMas}3M zWiB%kzelh&Iq2rC6{Tat#zTJ_Vw(l~8S(_}dAEU-NEqBG9(OI;|Ms=5vCMf6yRZa9 z2k}_W6KW)gh|0hUFNONF1vT8in{#)Ma2}GWjV{uZ^8yKlKE?;_ftshJuu&FmR0>TA zgN`XoRO}}iW_Q-#s|*Xn5tw!SC#fpN*KUT^6so)9I1#F^66C5XnAqv!GRK%>^j7n% z&2>c*TkcUq2xEGmyW?R}Ts%EeqBGn0Dks0-Ad;x7T1?S#yJTFg*Q+OMSWLL-@Eh(= zvD_d2R@FS57M=~)ebiXSvjI!UEp01X)M!2iGQNG^5wU$_Qp@-{b#wBuWv?b-x{&3t zXNwD3=Q0=?@Aby?$Fh>a4!mG$aO^t|Mj~SnyQcI}oc59E2?d7(4i=#Mv@bfd%XUSZ zs|i3QnzS)5w=`{ki*XZ6;^MKmtbIJouk&&INh>+oU`$_LY4t@#2UG+#{J#8!1`AH7$tOaPut&X{JXkJ4wu-^humHknR} z*{-SUR%tUQ6=a}~)W-Hex=DJf*`?MQ>}h~<+A}#hj<%i^ks0^xaiLgLC7cYxw^=^E z=~kdeIyFuiD-_^lay1S;-SMjZx&rHpZ^@%|qJj;*MOYOv4Kj~-rd$1q#6T8OHuCLe zML2<-L|fIiuMzqQ>H(mQ6&PM_@1yt9|DxKXLelCOa}2o>2?+$_E|96$KDKW{H;#d` zWW+3kJ^jFK&n;M>W;m7-l$^38*m^EnjMCFQJ9MMabYD6$CyjdM&8khXUc9&sbd$o* zP(Vz5Go0^Pv_k)*vyqahESCsvQuZraFw!YKdAgI_y-p%2TgIZTp(%Ebmy%1VtW4l- z23HhKZxO{%KLVwTD&@mS1}_Nj1_&jIuTWg9ZClJc0zDx8Nr`XXLtwOf0cD{!$UTEgIjOZa)xm`JKbZ1Po#ZpH7s$Zw!-aQ{_u z9J_aOmJ?HKu7sLcGT6{*el_kR$j^9tsU?+QzsNjW-O^)2htn7@=W)TY)Ymbn1A}BojF)ZTd8pzB z62y(CgRHqVuCskJ|9FUno3Vu5uw5iBqYO5p_oH9+u8hk{x0o#;0mY3|EFK(9z5KQZt3mkCI&#^TqKRw`l5f7Z6e;|pTF`N}VtiQLc$lYTscJiyP)E>T zv*oX*|GZ$&yDR2gE>{$i8smVtj$P}%X}cO4uKlF%IlY{M?@964+)EALi zEhQz=T7OSgh!qH2$t~%RkQNr>DsmK_9t}aG33mwCPX#+y8FAZL$w9pnT=-`VZix zb8zmxWe|j{;{IBH+pQ`^!*nlYfa;r>c}VuvM`b-+7ZnZL2BSC+-fmy)#L3Qx@UNF9 z`MB)t4;2k9iZ%kqJ^bclTpVG*>lN7B?p6%NV~P6EQ{AJqZY7pfNSS0%!;fiA#`-B~~-9RJ~ z?LQy$WpRMW#jZYc?B4Ea^;JZHI@0Uc=f$iG>LLZ_P8b3EFSOpo*-_NAh;2c znBW5OqZ)+s^iTp7hA<={gT^oqh@%_MFKx3@tcasTPB{r!t~85oD_szvxJcb~t-X=L z{Il8@T6jQGaI~`neeSjfj5-Dx*kQ5X63N*1?dwIcX^AtaJ1U}ft6%&Sp#L^_TdI?5j7K*=$yX`F9Oibaf7=voIM5P z?JjX*6lgsO)ZQ=WjIaeSUK#sal2Js6ZN?mv-ZQ5~TBI|z_EdI!DFYl_nTHoy?)%FP z!ji5wZjHImK4p^1t4qmt3>@E#fBkv;oyS=5411Bnyo9xSk7uXv_S4aipd#W({<58* z4?#!0mvRs+>`;p^{9o^XK*0BUn~Go|Tll|y$&=%jT1f}He;m2uR|tmXLS}d3t8n3C z)WfU>a}UPF0>!IbZuh`+4*_1IBhY5Uy|?4t=H{PqzXs{d#eXI03Bf}0r-9UUn|bi)3`h! z-FemdSN1%4ony+_V7DIb-Eq|sg%~+KVpg2$;y|8~4FN(mKco!|{#1Y{tsBmTaGYY0 z3$55;%>sU8Pbo2)2-WGh@qjTK>VOR8nHa1@J0%-sj->5w<{*G70n zT31gxGkY_1dOc)6J5bk-{USAb>RrfvUXtLYD;MG*PAWabo%eJ&DM1YLjW-$+GwOas z>l5o(zrdtD=al!V((|Y50Y!;Tq;11Is?hE<_6P=I*&*0wTfw?qnjcPT|9^gF;tY`z;eUqzeHlMf{8P%qwuqT;~Dw(qCMyG6M~$ z#m=zDw2+nG*OA3x&)lIQN2gSyhHuGY(t<>%?N7%h#mfPVIrNqEv+pVweUHaKOJ_Cd zC@8h9bGlZ;vrP?hpzJ3mPr>??k4_V@h)TQnEB)?I8^Sn%*v4^)4x?chPBIV(`x=5N zYw6xhJ60XWLg+?_SHh%w>`Qo-;&WU#X2L0ak2m>4NJ z1>&LvgtuS9J>-i(Q16YhI#w&z!L;?jxqDH*;0QK!lJOAi(MfDs40jLuE!tkc>K&Pa zr7Oh&#Hk8kw5lZ8xu*+Tc*9GXQG~IU0*8VgI{Fc3uj~IDb)9&8U9QIZyVCWUA>d;$ z)HeNg`g%T8Vl}WIi`r|Ii4@vVkHZE;iwEl-U zsQIz1<24>$H%qN30zgS!tNhHCmHqtOuS%uj5gBJf%QLu~SMmYGvdPQQ^^aBmW5e|l zm8#EZJHONpTM55*UuEyN{F{j}IWzlJBQftj#$&0~qx!_004Wq}qz!|HRkm-J>jAvx z!+K7_bI~D66w=H1OF!0^wWgUB(=VX2#2Xatm4}V_I)f)qCoOniq^~Ga>&!!)_(qv9 zmN5($jupRPsoB2efSz5(Nm&OeuBhObREyBb59S#xX5_RKcM8~ue}9Y&(&9VnE#12R zI)6rtmBx77_vvVcE}!)8=zHCco=s8ayH{(a)3>_li1LTE77abF;9zgsD9O3-v5PST zo`MavXA0uV|CCJ|!rh0lo$909+^7E)Yne6em#5+-AV9h({@&Y{H1fMQioHPXO(i8k zjG|bh!j^>i;cZB$O;9FB6yutMNj7gBMxV6ZNWyK4}qMD3I z81ZsBi!iFiiz%#UE9A8L^P^{UJETVA+tNl*8>9Q_mw}1j7QHBqVk891N)I}m_-fUlN zg_pvdM+;qq2HoG?p^d(n>)F2K&1n7tmdljMp-;Y~?WEZl zt~w?z**^XCA^D%T3-Xx0DfXLw?ry#u;9oECWfIeJ`-{2=tXjmZcvb2Z!}q1r4IifYnoUP4nn@t(dB*TEM5p z?#X)&$;Fkp5V3^iHcc$Hq6^`+Ui0hU(I*Wylg3}%esUIG(7;># zGML3Xf@`+yk8&QN7d&Z@`QnEjX!&x_k|8{0?oRB-DA8WEkZrE}$Q-+Ud%toDwBq7FpyTbzdKN zNO221Bd<{DGEVF_LiE@-iW*ksdO+xXNf{TWI7_Hyh>S`M!8rI4qVE6gjJgsAmE=SX zZGY6yHTPWkFT76qN%j>WgB;@mI-QP;r#I5C3xwLM_QQZ>=*ZL_l>*D3$mPcbzuwCu zknd(FbnZ4#j5Ay>eO=H;WOgEWeNUdFbgc=LNHB%~K9U;>%mDX~qetNlZw+Ftc#ZFH zfb$y`;&XPOcmW4KvZeR{c=3@3$0OuBh8{07GPw@JjgHazDf9ipfD5toys8G;I&f1A ziowG0_U@s1CFE85qPubQ!~gGemt1^Ls9*b3HU{yiQz@>mJq!#;!!{dGuwyWy|69Df zs)*p)$`sW>E{PEYqJinC0gf6+5(6+)^2h0ZtR9KWaGvtrQ;6Ez!^7q3(d(c%%ei8} zBOa9QheVg@5y$L@zd-TXLC2;gk*@(70fU%1c$<_4hwS1s#ax%ycFC=E%q1` z9c=0jJ72R>R+W?#Q8_X(Mt<2Zj2_T=0||l>8~DgXHI>=^s}V4E{(?Vg{!l>f+X?njoVHYmRgo<_&4{$46p+qFH{zjZB}7UJuJ$Ekm* znTH+Hvja*g%dtrGxf44Yi@s}w5fgEccM?z8<7S1dSaB$*L9V)x;MwvG67+V4XmYb=(i(PR<@IUXXKWN<; zU2q&BE|XAS>~q$_QcHX5hqlW)-b#f`e~=#V(Jhk(3)rzWU8Lv z$>CNa0RHUMufLd6Ay)3iO?P^Bw4Bb}faC|S<))o5lfUn!{CX<={@kl$0`a{X<067{ zw*TP5naP!`Rr1^#%n2D^lJIn1gfa<=68Hr!!FNeL25j3Q1nOvM_PEG$KyTvlc=yqO z!2tV(woFrR{eh!FixuN~issKZe?o7$ZHN?ZTnp$wH2tou)cN9dCn}rDq-pfA1cSGjVS>J)!okR3Dnk;DVUmz?s2Zw%JkCl;i}H# z?1!ju1`Lk!;X0u>nI*Akw-6L|l~{m(cXIl*5Zi<_mo2z&EcRrcL&l;eb8+F4)D2~1 z=ItT$IsWu*rjXdd<=mH5(3y1q_R6;o<$B3nq$;W50$t=7%lLbwPQE?QiE+`>6H%g*sLZxu$b$U=dtP~XUv1EaX-f^V;Tztg1t=_iA za%QljR{eErU3>HI9~4c5NM6WEPQ3Ikcve?CI47@+d|4y%&Jla^Q)RH9_FFHX;(GU=8f&l_mF?bKe{$Fu4CU`b zXM%Wb#s0@Eg#`zi=w^(KR)i3Yr0zhtt4yy2)+1&r6pgk{Z2%~kI_X@C5wjb$kM=}_ zyn^vdCV1So(hL*7ntYdh%7T0`OdjI4wgzAcj6xlwfkZjFRRPB-#v ztAIA53d7zUcn8Q?VYS?TUNVal@Jx;x4E(_hbR_!Q4!rL?=kEI3&n`_!F|WTJ(>fl0IajTd_G7u$&syARe3lJYnj!Zk=FJ zZl+v35Lzq9+5a>Gevb{_smgKI@nYh}o6D&jz11Ua=+~Zq5jFq5{t8DhFO`-)*S65R z|Fd|T$+)xcG?(|_?-dJfXhXb4@!}2<(qg(dagL{{#7>J#W>6;p)iU_M{5ggc@!XIT zjBRrT#s?1kr_&Vg4Qd7(KEg--Db_GQ3Y|TFd3ruR{$qU39Uj~IW#)0@P;sq?t0<iWN_hBi^k|?h< z_UDONw4P(Y6^!-(NddUyygtn%; zq9|X=0O;iCTym)59CXz?s7@TCoHpZ zda9UnX&y1?pYC&|cTU9!DE|w!4*uTodw|LOEtFrTy5;y3f9dn1^@bY6iZT@k5>t3m z3ExxHKu7dF{Nn@|8K44R4S4u9N{{3~htmEiP`T)GV87F_D*Dy{VDt|bi+WszSkk5v zM?+}i>ez_LFFiwau~_z$%8O#3n1x#tv#y3KdD6Wnr4(?{#7-V|LZy-7EaQl>mArsO zakIu9?i)N>`sh^r!WP8#@?D(`bL4qBUA&4>i~?J(PwR`PT9d}*6`u3I&;tlDc{Ll1 z6h1*aq@F3{kHWMGBseo@*&(y6#idUGpY$L*_f#x4y3U@*vyD}Ni110?22F6}59=z$ zx2V%l&AnknKRxxF{E1$%cc)Ae9u*dGwL~~Ia-y&L!nXPCx4CH{S#2hA0vU+~S^4>< zjl+v-zs|+>8iwQkpT7I9pW}LCXX{O+Dny#akDQlWxLSgOdvGz^El=<264zi%EI8(5 z=Z{V|-FF{1fUJL(3ARMgFDqsn2+b{w9R31#sq!}-0^@sZ&U-{!GC>%Q25$dvRtMA0 z28~L`H)#za>4wY6Rv`@CoG2VWeg3usa%!OMyxZ9Fz!z!Ex69@%^#7i;{?I}D>~`PZ zeBlVwN%57W`l_4JgDd1w_+p8jJNhH3%`ME^9UYSP7uhGRex^seRr&2MRAA~`a4rWP zgdATcBnXSC zbAqd~3xaAcXhJOpRYOXXvGG_N-FZ|N8HQf4J1Q4?YFVn6UyVpZh5B3p(U|fA8C_Ih zN*Fg0E3h*aE}oRQg0^=U6}SITQO$st4v$xi8$w^mrB+xQm%j>;ocx|mcx;zfo|*_3fBoY*>SV3Wthxp|)P^8>&xER} zMclj79J3!u0`#J9W`!^q1Q#@eo_$3=D*6tI!K9QrA;vvaJvyXCUlw9ZPG!Xh>(Em^YnJjbA*Uyu%bctuJ5=8&30COhEs4|D&%h6duV-BT;S0rZ_C$0RxllGgm6 zGdXr2zuaul+m$y4^pF0@;nBR){46Zo^P?P0J@9e!k623bib-Hs_?#%ep%#^xW92~t zgJFrUXQVd;3z00nm|DMtMr5@}@arH+G}TWG{> zl1JI|m2ho-px9xZ3ANKSeU>}(Er8KN=o1a!&&wXCXj3Lp+Qv`4I%qEYl(&gDu_=IcU{OG>mq@?MD|jpg8LdLzGyW@^s9QqQL8J z4C^<@iIdav+qP>;6$=5mw{gThTzb^DEnCm|+{JKl#E@47F_pjc&Ims>!$ntw?#nSU z@4~Drrc#M8j?Ccu($>eomVF6w%AZVU1Bt42;hc$SIG>`J_m#VI@Yo?Z*b%UjfBsj% zYJ?W^jP=CJ+pBxuF0uTu+38(zWJW?unLpKg5qZ2r z6Om#;2%U8W8r|b9z(}u-xm}%4UO&sC_PFt($Bu|J9_)@xk^@KfD-36o5Tg1K$2s?$ zn2Q|^VGQC79iEJWOt3Z(Q$|h8J+Legk)iLbfrN1lYbABB95{2MO_>v>_UExeYO+fe_n}YRD@B?w)jO-FOo|Ff>!2U4e*} z@*~h5i6)dcMAc1FvOLxWW9-eZBX`+8)@^JF-d?TKpQP!MlH}fnaA3SzYmZrmwiTtS z5JDOB^gk#<)i`M6F4+9#8f!yob-Y%sMlBM9#FC%|3n3mgno8BRW?c?wlr?bZ#7U zs4_5qeAWZiYn}d1_+`oWU`3&-YBA_W$=`KpePK3KZDM{{r(b>j55M23oVe?A_VuZ0Yg_C7;kCpA0P!!C1hMjjk93hl~IXj@A>}iJ-`+~)6AfesZauxWmBWZPo7!+ht zC7@^}DYx-hHzUZO_jAtqWr^M4ikOG;cpS8DY{2to8uhG{#9TbWt~C>qeXR>-T}DTC zWY9%xi9`#hB2Uu3>!9GYljH0SS`RJXFt;1n#a!e*E{dW!#RnEa1YW`7Y3GRBQsgHK zH69ZC>yI=u7%-;;rEf!*ho zKcb2-GyG{3$2;k{IM!K%MBP4-r)SqE@<#F-cA%Ff}Yn zt13dBs8(t?!RTI=HN=wd7c43IYf9XpDS}eT!xJE9Isj#&_5!~iT)*AC1ILEr-#vh=M~41G?_0W&xeqcu-8rxv~@oUmzV{1 zo0q>z0HXJv<1qFjmzmgN5!u-vZJN7l{?7|ge80xH29f=7Comw-A3UwcN4cTUk*!Iz zVbig}LO0y&`-`s*d^7g}19sCR5qgdseWC~23#8#drhhJ)((ep+gm*{d5utA<4qXd= z0!EkqPDanIlwl-X8-niE(2;Q=%l9TX6O7{M+gRG9wew1~ogR%rs1Dc^lch(f_Zh08 zoRH{vHDmfH`Qkv;=a&sC5^)f_ehSYqc9yi%<54IWWjuUK`c901V8|VXAv}{}DbN8i za@}N=ZZ$CF(kz#;o4Xc{jn>?3!q*LlVE`$bQ4D))^4}CVfc5El&lXiAb{k1iyW;Od zFR@nH`%Uw8LYklIALQevo*&Ob=Wc0zDBzhk7!nD)4iXdSIJ6i2Z=LbqE6bA}UW_&T zd!f=)6+BSlJ7${Sz$LR^!)u=4D&@HizN*&OMIyLsU%q>oRbRI2O_$X6;*@w_5$~OeB<^9 zk4ekEYqnF3R1zIfekBVOOT8#L#9X8oiih7#+Jh5@oAjMZzcd&mYr*R2WPt#Q^*SRk zhJ>1Rp--~0QQV?}5S@qdgEk7V&LEy@@78qz@&H9vc3d_a67LD%wAK)8fK;I$#-nsm z-6^JahTBsD9a4Jy-jIrdj%DT$oLmm`BF$i_mM2GTDbRn0M2khBv|HY}-}+V~uwt^; z1XGN?mUTzbz&h*8;vUSdL@*7h=VZtF%*GPHu}0YsZmCh4qJ)(zuq>p+uOardo&Bg_Y8@{|Pjwp~MPSFBGh?rtukOv?oh~3Sh+n zQ{xI*sg%T|-^5@a^hn{c;1g977uL{!DWTEmGPMxIQfv6Brl`bnqD#Q5h>(hSmB>WS zj)y@U8^*vy$1cD`Hq#|W0SUqy?SlMIz$-Rz?o;q&?SLvm2{=Er3RnkRS z5H9F}yW9?5Qqts4VP3_MI5Th{+h58ZmuaU+#L~rkUP!nKq1>Iwo&yZ;K@aP8?NnQa z;7I$On&>VSba*%fRhkFq&ZR`9SOW1xKirO=k82n(ryxzjc%I?@^4R9f;}ZG$U~D=f z4_Ewsx9y^9>iJrJmay1hMCz%ANtW_p!OU}WD(+F(U|H(tKlFX0H-s+JDj4cdHtK4kH`wzrL3QW~ z--*cppPIXT(GGj6o=jpdYA>~q*b?~}SL??hsRh69+B;c`7q)@SC|OPb#sU(M(5*#l z7~-z`ExKL!G7@U|*}&|iB7sitS;AN@y9jI0b3E1HU8?==$bIMsk=;Uumep6Sp^nb{ zbzm2+6pW+H_bvXv3S58nlW0%u2I4xeo-=lz><%%fhSs-zFP$n(lOr;^RJA_Qt+XyB z3om9EkLsA83V+g~+0_Ulk=@$cW8(fSh*(;Yi1c^c*uA+PV2B+8H29m%gWdN_Xzf&x z($Q1kJtax6&@*X<8DqGlI1!E4XcHv?kC3D4zbStCagG3Q?C$q}p+?A$OO6#rj(;el z+yc-^>$<&uC^#eABaG!WDV$uH0WcxS{RZ=uNHvR)b0TCDPKsr%{*bTSBqcm2djlys-DhSBJ zi;1n3_7Eq@^}Q%HWmpNZPjYw_xO?Do&j01lHR2~dp1a*YqqSBg1aM36tgurcy^x@) zDcXmoWa+`UD>4*R`ctl&s)}MMr-<4GLNyzurbK7@_nl8F?kI>k>m$<(XSeRU9UkCv zwvNk698IK%CRIQI1BL1brKyRH9?2AEmNg*u53&@2+BQT|Da5V?4qQpHv0;f zn$E(Z$v5u$#25oM7(Gfx4+NyUMh=h$K|xw+rKBV`V)O`=5=KZGl!O6DONoSpAgLfq zO6Pn3p67l3g?snC>wBH=IiJHxx(;uL1d(0Xutw8sVMGTt7x`C-n?&p*(#+}4n0Q5y za?b9peJZ6)`s`Sqz$3TfAKHB5c@j{1q4Tm3A5rE@L4=1cMr&bgi#KW(F5Vlip- z@J6)Avf%288%Mbk1&?Y>aLwmKSSEX;fr(%F-piK|t7`Op*ir0nrPp8z>aflu81;8D zMKHy}!zk#Fw+q*;aoDw3(@n%aw#)d?>FI31C?=sM#<%O2H6>aZqp#BKFSukJps=Wx zv}=(b=X>Kr-&?dL?zP=XR%lY!h&9lU0qlotfywp9=Be*DyL_i#;`3yv?l_G*yxq6M z92TZ49ve5K^V85m4L^#&)S8c$h0|;r!aF>X57z&^eRJN+urGH7Uix$7DU&2!*vdYe zp7UAm5G-ZKp7DFGrcJJ22B{R=&{YPmTB|X}h+mq*%<-2 zS~*kz6HqBz$dQc;TNEg+&>O_n%0Zmoxm8v86d)&HC~6kK4WrG&l|P$#Ss8!cu#?rn z?eUMbqR8v~!}l*iPi&667S5nJ1@+@|^uO%zSYh+FlCY|_2ao^BMUQGcED#n`ZZ+o< zblKv5ygA;I#FrWBBqeL~PT*~`TurECe4~EdaArWA5i!6jxS1#f@{%{+xC`5O-W_1@ z4g48FdoSl*qO+-7o|%pjd5b4Z7N|?-@WNF;PBOey4{I=Ox>}BsgPwk$86l0Z%@?H3 zC7U48dnlPRV$mG=vf=ilVH|(qyNsS;(Qhuwgj1j!9p}vQNMk>IvGPZoGx<~SSBD_z zXz04E(;4bR-{jq4didLG0!jH+iZWAf)?{W&U~WBVTHtu1eOevEp+3b>HbD> zu(5Z20;Sn6yCa0COJq5>UsF&e?(H)gD7?nc2n(-MbRq3b<%9itHQ=!=D*Xq@lGI;E zwivYCDV=DECX?GflIWIKII{L=3ZJ@O~tUGeU=~$~(uK?Rs zH`>q1*KwWfY!=>MOvj8I(BkL)HKC|NL(g24hZIhiyJfC-5=(ONxrj_x6DjgSUaPD( z9z64*m~ZQoET>f1;}(4p1cZrc;iU{tUgkE3Hgw=IrXLf3kl0pw?$4k7hwBg)cH{4{ zi#^N^(0(4Xkbyt?D*|w{wOI8nh+zUyp4)3_1_N3-s+|ZeZtA;ka9_G#OKThyvt6W- zHlIusuOm#gCM~!_T!mxEfZ)bH%M|!xDaz5ubVG#JA5ar>yCbBcC`N3E6vLgZGgia1 zKas}AFO<_%qCx}cj{8W+#Z+Xm2XK9#$!qnkXhrd8dI|LkN zGNwivX;4d*+N;i3PH&_Et4}iSNc*kVP8+*gh6C@WqX~nmW3jvxY?N%G!fH2p*88q_ zOBGy=0gj#`IGNah&tdQJ_&VkF(+!e1tq| za$hO9=f3gY)?VAM6C)olef6BC?t5FOf-JAH*-!^4ZRu0Sh{s>&ccx)_ULf0~(ysSM zjls_rciu(1E6eTGJz)95d|K!o@*t$_SS610ba13|!H6j#{jEth*hW^WJbp8T{fn%e z30>Nwu>eiKw6_f}gi{W)mX{~C;?wFnPwe}MyP6AaPg^@1M_!y!H$5U)Ysz9@JkKkq zndgFCDFC5-3Qp{}cOrT?F6en8(6l}!ypo}h)=Mw>5X9A=w!>!x2Nn}}bmo7vD}8t^ z29sa0)k#+T@m6Os;MPe&u68h*J0M+qo=gz4!wc|Z@BC#ehtx*OVaD2D)zTP~M2R!h zp|TJGnm|Nf9AIyP`)nu7X$f{NBeUJf6Gnqb&b9R+XOteS#Stb^8qiZQGN*Mw|2o$Q zOW#cj>4KwnC<(DKfs7>aRNJRCiIX-$kNAgnXh(SFZG0g@#%NDy!-45jr zp=u<&BuU=%89R80BSFI(;~&qU&HQ?X6p!l7A=EQ?^&)iI7@GV%vCbTO#9_!KRGpt!IbuAt5tj0=qBsqT_Or|I%kR2L+o3uq_{bq z&Q?0wkI{g2+?V30snzP(p^cI79#dHij@!ijn11Mmv#(9B(`XarrOb!|Cu(5}J5(oP zV$~@(`QAj-@l#L~;fchO38YO=1`bFicoPRwamHMv!Raq}1xu7rK!j4vdOc7(n|%sgrb z^n&{HplkrC`=zby*NXe|s;|JL7u8`&U53q3d6)X1+ZpbizqbNp$1lMC`3l2lq;{ge zNj;NKkBxy6?1{T}=+7r}Jx)QzAwwE0EJK zk!ry#ib_4w5o@AycYAMpIg18w%&Ov=bZlXk)P*Z@9y=LTl!m^<3x)YXp2nxWJd|86 z!GFV!_uwN5Qb`=k>n{|y5Fj)6{pc~%)(H#BW~%C$7C)OWCEJRHAr*#?Ls@>ry|TL3 ztYW%RJ6_)>NHNb2%=HA-`ti!L6)tmio|T!Rl!x$lmDdirRaG-|8w8rl@rE z9i*!*r0SC;w;Qin1`XQ4;@9VWWNuIHmA4eFM;|E)(Rcfvdlo~ty_J?X-V^>w=zU_$ zsxaCUPP)$X6@I}_)OJzOu1M6TB+;yX(dB*fSJdUdqNt;_1qyHkaLB8N&|AicS=|`N zib+7|1qPKs#j4-(tNAW;hrKlx;Q%K&y)NZmwjPrW$~+U_uZTjK{bkDSFNDIDV%7bV zG?Ib7SOQMe(Uy6(XIHAVJhp&K5CLMqT7Z5qJZ`asCiVKA*YhLx&FRS*a6~}6RdV;j zh5td~kiMe_GZA7&dQd4S@sN}g87_g?s7-j_^weZdU$TE-L{nvmwkdlL zhFeP2f+kr86x_G;8Axa1m9=r`z1`rC7GACl6S*zAse2>&#;ZH(@@< zRD{_WOh`bZShX)@O$^CRp`3zRdGtMcvk;3MJBw?2`}xVB;!&QPR}a(KUAJB?Jhlb< zZvUJlUXOVk?lXFCJmrU4#S`tQIj5S4%XLKHC=23bmT1a#m%oMGk{kz(a0OGsJM{|g z`@OzGfb=O#SS%;>3T-JUh4Ifw)I!qL7&Oo}ocoj^m=MPIS5i5B-r{s&M_F`Eprg~5 z6T}5W7%${&(sf^WEYW0%c_}c`$kcyhK%(-M9n4^o+c_2S8U0&cw1jf-nC8_R`{xL* z=MdYnw$t4j?x=H-Lo1!rjW?73Cez;-+g%(_t*4WSC+Yn1!})PCvIFa`TR9VS4-}ULhltc;18vem7!egdI?J+TMEslus?q3=@!t= zS1Tc3200vhZ~TgHP`$9IPi3Uiry^sH!-fkErK#h&aP`cZg+I5&B8z<5;E|Qr8PCVu z#2Yf+67u!J)3B+({_%20ykOc|7SFjomr47Po`vaHLDu5t^h=+(-0yqCpFeD=fj#2e zytAE6EpdWof7F&ANP;KLaa*ZxftH8$m_pzh6+*u4LWqzJrv3Z7(cPu~kWb#c^<;lr>ov|Ki%r~#; z;k##tFZ)c(fHL96=GH&-%8%4;=gh*5OR8PvMd_%WtPS=4@%1WNu7vVX2geg^(7PXj z<2TInhKGm$l)8{7T-aU65yd^^U>8YK>`2y^=32zRib8b}Z6bswh#K1Hq`X1s;bP-Lm^090>x=~t5wcZ$vy;_)Pu%3OroMz!uOm{Nxh&)c4$+ampPcRyccKSxi2FY{vM*hnD4(!JmeVJPA&O z2?hqjgFUE5I*BD_G)B-bBepVkr<_2KsVuu(k)Ohe=RUXXW_Qi$LsZZ5!9E{CctN+- z#}Z>Qej=npYTm}JWvas3qVH)fa{Az?D~rR+fOO0cx^nX*4NZ3z3A25)AI&F7Q>>6N zk$1<;nC_k6b;XV+Da+nR6SA*hQau&#?%KhCbrM}H`pqivk)fIQA^_Y5fRYAMhj*JO zbkoqla@Oifr3Dk>r2esMSIh1iM2*s?#!?(cM%IeZrq(23o;j7bz?l}Os9ot;<9+}~ z^SUst7tV1!bYt0R?o|DB=aI&jKM&|xZ&7|09hv73pZ<|9hMm3Ub7qKD^N{NTVp+Os zDdgmF-Tb_@w1fQI;F5Gmzw?_WU2MvlsMQ)_vbZimGUI5u@*a;RdZAdK^Gb?OAuE>b zOyNjE%#Am5R5;)n3{ih3Y)*K&Y)louF0=*y1_pRRKZz?vNhmj=$4D?0POhWFr#^z` zPG?5AGY`qvX$Kl-F;Gtv3uf2_8lAhkn~~@>e$*%g;OsMy1bny>*{gY1u~w z|IaDd$an|-!2d}^vgG<3;F(-p?HK=da24*p_QZ(7yo+lrDl_4v=;~k8avq6$)X8=7 z!M7WZ?SVT25l&y{b1FPJgCNzjPrEomQe_65pcc1}b!}|%1r2#OBi(u7IL5RWkM$O} zhq1xwT<48mtYxMQr|vYk5Q9TCOffhy7Mjqg;{K}FkA0Yy?2{>-GhWwEQ5NEF%3xai zo})+gfa#piRBBd-b;g&&T7ci(<#Jh52PWHp$A~j&sLSAbP8KNm2?2xNk`wRO5NFn> zHE?6_xaJ9epP*4~cI?4|V(j^T_#@JpP6nBz;fnleJg!3~Z}O2Ofoh*aNER>X*M712 zMa&8Mg#6IYMgru6T7*&Yx03pi7<|{$rMbJyfEt#QF{9j5Qj_B%dIrKVk54x%D+n&I;%CZGVyDF zy2Ko5SGhjymk+bkKDl$bI!62SV(0GC^Xt*Z#A~L3Sf*HIB0)R0nHuO9K$qcXhlL!O zScjLRL0)D!_lsL%t76L%C2wH$Kh>=5U{W({7mi?*fgK*wr@jI{J1$EObEoKgfu_~K+405tuhCbce-F}m$AbxR%%?L3bN+HkY6K0c!K-TS;5*=v!V;Ob*K z(}pH>&Ow|LyvPP^ZfSS3x9V%Klk4k7sD8~DQT2v>avB(1&bQft5_E$brSQH3s6G)L ztr1Pq)Uj1*g@Jf@EIzHl2*z*)iLdp57xZu?Sk0NzvHp&Zn7!}hJgqb-tuL>0noCaW zWKp~w<-Vh}XPy6d+kTsNEt&zAesCt0#pSz@z>fYxLR7dascC&x2bqMPDvg?MIWh6xS^| z-8|(LCo`U%9mPj~eVe7iu4P-2usySYN*$WP8qDzwpW~}dtZJQJEXHRn3f-?h z&~s6uErgc8{M)aJt!3$N(w~n>O&^fJKh=~|bsehtiE_Rhdy9e;ryPtkA9wXh)y^Z>?$ zgs}L{7*(5s(Z2+W=@&J0sVp;iC@D&^&FaI6xvs9Nx`!HR%Ef{n_-AZRVlo!mz? zf85w5t(i%u2BJq{bS9cWVzv_0`^XP;{xQSye4y7HW3UW;HLyVn4+T$CpK@`qDdmz6 z$TkBvXTdqN{GgeAKPhAQ&uj3EdGYn8f4{kdK~N>P!2S4EUEqQ7Zs$%zr9M znDG8NLUA-}$Ki^Q8F=GZhIA%KaC3V^!}E{n`?%sCo|ZLqe2n>op5;U2^2H)8VV&0@ zz{-b=HZwWa+XvoAv|zoF8r8DHbBp{VotQf*Ja!W8a-1J=ab(@9u*i5d3qfetN)rP0Ma zLQ#G^H@wqxARYXH(%xq36);({Q2T@j(Q&yOQb{THlR~QM8~lmGZ_(YzxORIe_F5yG zEv0P0KjP`>!{;YYzxVXqJb`Ygf#?4V&;cMhBC_wfZ3_CRk$wLKw~FtIp(^wDish&P zZrnh7z15&GYcv0FzzFq=bG}koGKn_8r;Hj}Wb1Nz3R0R}i|`brIX;`-XY6FRaEyq4v&N zI3sr+>(-a&jaKMbWGx(yF9zTrpLy&SJkt9AECTzAC-n7R?N)*P?!wU!#C|7_Pf=1TP8v*$PPG&o}!{rx&?Lz2$Bk#!l1^H?~D6jJVIjw~8?Iw1>y1=`?we(yAr2Ui1IF0O7n{NOSmQhxRhB-zeGx&9Wz z(c}K&OhiPM4JAU#vcwr$9>PU8#2PK?U4>+^kJe$}Fl5rXw&QeYi5XdTXQza3eCi}h_a*$bW)p_pGNms?@AMgZ|ZRz9}#wbM5S zFn0FSqZM_ac~m2STyou(gePAHc-cAs_ho0A0zYrt6{sNIm~)0!zW~qk0ord^k~CO~ zx&O)p)#?y9#qxD^M)}#hIgcvP*YHVdfyCEUdm?lKKNr4CK3k#s^Uv)TNl|#fp0B%x z{@N-=afmZtiGJ|gT^-j~cWPon#=d<+%NPhAjm8+2lhx${{gNfu8s#ed*oCfXAH)aw z1v2z4R#7u&eDD5h!O8wf4OBv4rn2HJawKf#Z%7fwpz%`RJ=)h-NZBw0k(?Lov5v3l zRnkO&Yl_)fRbJgzzMSlm(yOf%rz50vO6g_8MYKw<5ATupMiivY3#~1Yo~59Dko7y9a=1?)Y zgo^#4=a2L6uTcFcLNp$Weff;xjuaRR=_WZWHY(^wx@)>3-#-}nT+**M)kmS$t3Hcl zp6V{%G$k(qfnN1ZT)Ss!xK!bKM)kQyBD$!X}@^{-u)0s7^6j`a~D1|E7vTw=s^`#X0>#Nn0{nZfi=5Y^& zrQLSf=^7l%D{W*ge+m0C>?9;X8(-^o6S5SfZh9|TEbteLUbD;0IF3ndL&F?9s>~SF z!Uf;9BaQV;Ql}E2562k1+vVBRP!%nly${@Zto`0ZL`Sg^1ZbGQ`P{phfQ>(O?z4*FK)g<}U% z>-81reC8py_Zfz4usC?RhhayHT%2^7uS@wz%4jyqsu7D>-!jAaRree+71xE{bO8D(uf;UhQyW|`CdkB`tB@w=ArhWQ|D@>VMdIY7wCnSiJ>Sj|EE!2CnmB@Gm{n+4P9cDx zhAt>lz^Sh>bZ9_T6CV0{n0{dsQHuqB%5fLvaL6 zU8l8Pq4od5F)U!!ow#n2k-4rIe4}~4*y>Omr>8adrHE?JZ&l~)^8{0%rPZo!VDLH9 zx9O&GMr)}cF{pt_;kUcM<%Y)ieGn;iEBEOn`X&NkU-ss;o4r4N@(vCJa;tRHV#Sp=MUB}gYA_Q1SeeXI_ubQG~NxM zphOy$mMRREW#K(JnZkTLR}VKo7?I-es-!q=jnT+Tl7q~|o9y-8?WUM(%j7uY0d{8iMsYGw+#wxW zV0L8l;->Sd?vbBU$28@=JvzS7IL7S7I(;GKO7Pup_x8+?roCtiB$s;`h=88RSar$&BW2di>Ff6!Y& zfBj>d>OWRD1F&6zldefjEWJL~;;}&OQ^tdkn=kuEc`<4)@37!p8^D*fk1-Gw_GLy@jbO7kpkY7xkCZM}^c^??_XxM^ z>78Ex^@S?2r7U;0q0hQziK7R&i)V@$$itQKgOb+%`@`3FlHr{9$)k1>ds9ideIr}+ zVpNW`c}+%-Y*GA7{In(FOcHph%Do#pvH%m)`t|vek<;iKB#0jC%0MZ+eo+VHi_s7= zhNYmN8`}=tXFDf}_E=m4Bgb+g5OXKbGFIv?LQ?}re9635ClV)}6(dxw&1@k=Rm>CiP}?R_>Ro{1^Q z^hNt$fOUs}+!-aGRL@k=66$j4LobwYQ(Ws2W6*Vml3Z zDvDdzuGrK+Co;LJkM2I3O}d>D@4aGq=ArkY{6yAxb2~lHbE>h zgkk#>{D5&n-WR6?lI#~pnYdh1JoCS!1>DVoX!ONYvjt3q&Nqvg@7?E|{ax1T zybG8~AF^a8Nq2y$uJKclGk!{Ri$Rq!={&Wj_r_im*Uj)ek8WjH6o4)X?+QY*f>QgY zEnIJ^Xli_u!uu#tsqGW)#^E~T1EGBiZFdhxcHb_&IQ(w0hT`V&7AfrcN{-dddD|*FX*heS=d-8pdy%Sm!Oy70G5Y@WofCG^`m@Y)(uwNZK>Y z&rZiRUf^@jgtr=fz-zGVqa&(VfLc}5bioAIrk)i)Emq~cd;e(sE+_6J9w*7!gRDYJ zBt53m^_z&aXQa`mUp__N`WT~hX~yjAsM?Sad3jfl4^E0*?7#Kb^qP6c9v3;M%eCHT zkG>4(D$*)?M2K%cHOP!f!QLe6T+yJUX4F}xD^D$7=%-C9*ATqwU?scY@l8jvefTOh z^7O*p5NQq2xR;QR=t*E?hY~vTbysEIK+nT>S1Iif{1Ah?{6M7fWYePVj2eRoAPT_fadgb`oh}~kf=9RTK?U$!CKX}S4 zMR0doThwz}H#NRA?!9`Z|Uv|-nDr6gS2*dEpsJHapifxXQ4NprP{qF|0k`12Wi38Pa7U9#jP+Js`f5z(pHL!FDz(wblIaoHLk6 zKfFSuLbH)wjk=~qwO?!%7q!Egc%4U+C-5!zAz-h$kb~c5LlY#(oO~{okX(Cac)x~~ zFobe>^rvPHaX^_&Yz506Yq&itGAWqC5EGu}{trEJRm*~L)Y?MBcN~>1!C&+sWEAu< zOirL7X~heE_s!-RiRXN#uo5OFRer~1pzFrsVcSWK{BJgN68zPF*-tn&EB4Qn$&m~9 zoH#NMxgX#5dRX35*R?eZcT#I(uXfUSpI^_vaB_{WYv%B~dWG2+XP?#8t zjDagw?y~pQ`{l_6EFi_k!#0De(QJ%n99VXJ^5KBw^AMVd^;di@+)Se+_@`gXp^LSt zB2T!(%V}rbtczYje-4vk)kfpBocst3;hl-f_o>|^Z~h1z&jk9(7|3_KuDd9(f1(h^ zkI*kN#lA3phapq|ZJ!s*Sqm3i79K$KuaY7W7pa~stI34xy|3>5Op+5-xf%8b<<5v) zGiyjzzOW3!4)`lr0XbS@QnL#xPVJVj4rA~SE^8eL-lc`EoXk1sopXcrEJ{9XdWP}S zx&r6Xo8DHhsYxcQODYs>Ib4z2r3wpbldHsQ3i=&lzHkuFKbV^`l_XudrvJ;l^IxQC zKb|Kr0j2WTN1R*ZXHW6Uzf+3IqCPAab`yF0M<3wP-}Bz&a)N^WB+_f{u>-K50k`Sk z>X*W5#Q5=02M*W5;GZ_0sA9x&#}BT0iwa7r-?82hu;1=zuSc@DEsFOPX@|a zJ_V4CY^+CIms}61M(<@H`N>$&ig%1*%bi5om#}wTo~H6alA;cP1CEUBtB+hD(cT|^ zIb_x(M-K#`1qU>kaJ2m>V?as%=;%pU1)SfGl&EfHC%ggus}*-%J?OG-4H{MwnqvmP z9dDcKjHT@2vdx6w(D$mp?^wphC6os3)g3g0KX-9M1fHz&P9jU-Yflk8`I>p`WfUuU zfBfFLt-4IO_z7RPbcC}~CgL#0c?N2#Em83FT5eB5A>f#IXH1Ab(ztH}M=rOaS=CGL za`NCg%WMH;zhuK7gPpzxySuo27kI__jzofRd&1@Jn75y^Q&8>nSG5)e<@emLq0=8s zr`6@;Z&bZAI?i0S?v43m*X&)7-aOonC+ z(al%x0O!cm4gMibtNE>)J5eK~35+%k6qzK7b+fo3{Rkh|qX=#ayL8h+;N#@l4>joU zv=BrGL%;hTTN!tsYkrvg9mvs>z}7775_dn$f;wIq`&^kc$jL#CPE|6j;E)< zfM2S5SFIdOA4s;6v&!hgU@Tf`YyLV;-To?frrU2ENi(YkkmhE(KcmvVS9IQ!+mcAm z(gRg$sv7Py0b-*L;?6rc*_O>KEiPk>DwM!Qb^h_2m4_Vt)Q~Jby z+ZJiB@XExFDqbQ$bOHAd1Z7dFC8e?KxBMK+*&As#=q!GTBEUSCd(VbBX%q4+rG zAxx)(>n7+nCgO(gB%Gh;c+AFL*3Vuu*jU2Kh|Bt2_ZEC}@&#sN1 zI%LH0Q^p;j|I2gqAmf_;T+~e9P&Mv~l0(Xq))YG} zm(EFa-3x9E`4KxCKbR#yW6Fp*l7`$i|uyRbpk9Q>4O}Lj>HhBVE5fuxlR( zT`Mt)N3z7>Bx>!|KP4zW;A>=y6hy&yVH<0+#4jttBUkNjg+JSh3V_f*nEC=Jua`U} zlV0T^BgpWY1$OWXaf_r(#H1wbpoR8ov%$Nx?QnB}u4f$uUHVmJ%UbKKJE-LfmhWU{ zq+{36H&6U}<+Vx0#&Al?brBoa>yzH^eS2aZdGxtrI|l3RF`7^tgX7e8o1w82-2dJ7 z<+THdOzbl+Er0BLelNc?l^)e6>Z--v7Bl7c&y(G?);tL;r*LO%7Kn!ss)hN<^;?aK zJkeQ7#lW%uq&IEEKsKO^Q;TSM;FtM%Lo?MXR`$^yxerrZFfH(VcBIyR_>)1rFnP@XsK0n8j_#u z%oObMQ+bk^*kJVJRp(x?`Zw1$fL~CdAetGv_|UcE7nU&7QCvaEntW?pFirQ-Q9Zzx zv|%{V=xIY=s*ha_UxtQ_i|*YrTxq{dySGOKRzH~*<9U*mngFTNH13Up57HG&pwaT$ ze|nb!=YAD$8%omF($^w_?1oteZ|2Rt{UaPUWQ;*Mk4_CruJeeX&7jpya;V$9+0#QF zafHQ$JyS?^_P>7E2CN+-Rt`mP*jF0>mC&ZC|2c(6P zO<@j}ms7o+C-uvT^3Ho6bMfw6r1pbxu@Lpz12o%&qYvDk(w^Kw$^Yx$)Sqxy`U;g% zO1h@Fk6k>~qqZ6dvirMVUl-qHiWPYUqvj73nm|Tg!)qkZ^~i_Zkdei3Gi|8HqnWUn zuhcOSm7v5JXgFt-%E3c0OzPkQ0^*l$!8vo^Cspc3h6m#{czMfBaTxVQBzvq9n5Q(( zZ=YH3+3r^-xe21R+R6Omy=)_SKRZMqMdVV8pnK3#*Y4%#WY)*pXgjuv$6R&rgf=(| zvNQw;fMdd`YbEUkk<^qJAiN7mgdQ5P$T$?4KyEDd=J{7aO@7o{340yLUiwj>EQ*3> zaIH3>(iNRVU^NmV(`mH;ZQuK?bG!SibpfS9GGMc!y|SJIPHH_g041&jf4nJMIp@wR zP@HP`{$2TR)N3+qOBN#;r@Q*mR5Ds?pKgj*alMnxfz5KN(&9n~! zlPW!v;f|_$AERoYzIU0kIMj$o|CzGQJ9qwX28*n(O!O87ur96Ok0IH+}e!ksd?a&?<+LBSdIU z2a-%{eSxr!l77HNzeW4br?d=j+}Iy`MkWDau_wtbGF&}TWN?PzRtuR+MiX@dwD~xb zed0s@21lLU{lUEMNgG)9Q>L8JPlrC@daSHYlLX}OVUD@;TZ$XyUCww5onfjK6*$|> zx$o18$;A>u2}bW3Z*roDon<-c6J~N%s+XXCAwQ{2Kqgd-cK+~B zBjNn(R=HLMhp^7Ws`dduW{m>*Z~^snwJMPJly}vgvLZuz(!dU+oFSk5aazv*Rnp(c^7}&1u2<4Ym$>SP8qdJp{4F+`8qo_(>bY_`nOBs?(F=uf@#hp zulK(@>w0&`Ca4r-HKykkr=rEli=QZiWoe%gMLutnc9i-BkniHu;GMndm>xA1&U6tr z$d_mXI>ohamPWxF)Nh`ZmGzb>4TDEDtwPAxsl};4JRjwk=0jf=<=-$veOI9aQ|tQe zFf|`W;QqE7n)Q)ieZMuBBS0sb5rIKlhKDo+m2z3cG$Q*&2m-Wd5Ugl}1U;dAK>vl2 zp!TownTjXBs{{F}n6EV8Vw|shA-DjsGbhf@ay+eZ1aI9sC8E5HBdL48+4(`#n;S8%DK;Tsv zMJO~vN6^B@34?Q8x9R-83X8(X0Ejk7QzCJkrCOc9+uegsSc21f!ZH1wyM?eDE4)0` zRS)d^U8qd{sXv}Zy8oVeQ52!{E#gUj^>UgO`kH3b`$xs4^5@8-{l&iHh0D!_9SuCQ zXw98Bnn|D0<^yi+Tx9nt4`Y``PH*}y^**DocQ^h3bxd3B6Ye4Cvk3(1#qoMs3{?%s z{qork^6_Fj{odZQDmU`T^IoRM^lU|dLW{GmwVcZb3!S0-T~oZI&f(jCvTI|(@6qES zqm*MUa+S^2MC=utCO=~<#)k2q}Omfz99-MhuwC#~73rXR%o!J;%-^*m1kQ{mBv1m@ypQ(e$Z^e{ zGd2}BAK<6C$I^qPA7N~?qxEHq`L8#cH697i9XjjrbRoZc;?JOB34o4`n%Bm+U!i%D zNLDYGID=mnIAu&#RK=uo^a~(XtqNQg$EqKwEv(N60u@(WzjPP=&kF#=cO6a3X)c&J zU6W(4ZBY7=#ISz)G8TrqIIhV<3cwH_5~ zQ5wO>DE-Xf&fhhdZ~0A`7}9By<+uE~koz+ggtj>%b0d3K`pue}DoSQ%t-ygZhN*Ml z{xK&~Z%0m&r_*DdLz@}tT0A{5ZN>iSh4Z|wL24?Dk#RX+ci%~&&Q$x}V<$TS?XDMT z!wv2@E{=TGK6VbF`yX~~oZ71NeRY;74B%EseXUNUnjjtdqq>y0=~#P;HeAs zNC{0kcqXX$rNC<01?Is(%1^w*hneS^@CC-l)=l0qeN-U}rJbNsg)?hRUYEMKiJ0&g z(V{-RQR@{dJ(|llRVE{I?i8g~AETp?x-l3kF`$-x*X3=W| zg8tv7y$8#VEb>Wo>e@VWDA>u7#xeOUBjxU(X*`+`R?;n24B zD+fpHUkm5AiDrrYzWpYAmK5I(Iad^i+$oWqTjhT}v7d=EPR4e&e*R)Olbf_wW0Zf% zP#{baFG#8}7FNQb%_Oz1@7wyx#RdBsX)?basAN#|jr z4v)K9w`K&+`i>#JuFs^V zM;>&4x%^#psJfu020*`6&VQeupYP8VY>i_AwdO0jx-2X#HaE}OuI7#kL(jifTpk*# z%D2tq@+q~rzSW95nwnTamHrv}l)U??2A(W1T-c0f0+M_(Gw=T$IsxI#SZdkzPPzdJ zh-uK87Qm5}E$WGYQX>L&!w7e^PHOsy05`fm$nZy{9n zQv(0Z&kp6gwv#ic>)R`*h@h3N{B#R^@MzG&t{@(>Uxx<^BYD_{ z>f-kUoX&nX$-&_z3EUtGGz%7(DvGEB!;^FbFW3Fj!8uTl2Kvb@|9f*5 zw*qaIoCv0PMx843^bJV*!vHHa0sqnD4x~?!=Nb4TkwVz%Y{H^q@!AsL;WOLG)Bu3K zz$oiu^QDtejjjdraTH+A-6(f>&iloOfPDgWm1-)0DBsDAmXOlgrpo8A6=Ih+c{0-6 zY0l8R^-Z!?-|yDli3G)c(lZS*YNr;7(P?>fkXg_A-^AXpC}vsK_}@43&z&^s^nvbC z&==ucyn?(u?;9WXqKyevA*eH*EANU_w{#}vB-u*}Cqk^D00iFI^lb??# z^^R6z;-I>|;1?Al`<~f)--9PHC`KTcePDL%mzl`K4+0i+?EeJR$vnzRuGS=if%PPX z5S4$f7)vG-KcMRLH!}N<4rWA(JRQAt?%B!2CC6&`zObm_06l??RU?fh;PJnr0H2zt zDbQRP2GO0sXA-K=4wuVU2N!F72^CRSXLU8(H&bjhs^1SheP8g+C`4NNosr!~rNgt< z6O)SGqN_{ksP>G-747W*%AYGE*W_|~e7-mRX=AqxkcxQ50aQd6E^o!N#~zX1NukvD z2tIw)YBp(MciUEg|8n#w!zj9|X#DAGZ9;utk++YSCN7OizQ6GeP*PBkoaU%rp<`3TFlF4s!HuA4 z6E?o+?D?k>QV1@I{!h~xC%zm#8Dbp5Qf(N2^7+QN*dRj%`r*_Y{tXVleIu`~{-sE+ z*}bi{yJtO9*4$?&+x9Cb;8pbT?b}xdu>&dphx7ttxo+E z8#|<~10{=_^&AbhrDqz_WQlX-IU;mD7}QR?U9nv+jrN|GJsRH4fof`T$PRl=5J9;X zw{TA_#qf`R&3Qhv;=J$YC9Ah-h2sa`rlHPn*?|qH<)ulJXU~9#y zHLAK#bZ&V5otw1XD!+Q+Vf|YpHN<;!E{3%Ur68|d_jDzjeS^{db=KWW0ES;oDgHHa z-*b^`pSzIkZtuLMLRk4>_3(A;Wh%QSDez9RM*y`&bEWfXP-~=-oWPSF23lTEhDYiM zxc+s?|Hsx>hBf(kVUr^VBc&N3Dc#LO4h%+jgCI(bQd-!k(FjTjBb1RUA`MD+3exbS zTR@PIdiQ^?>;3kAfe(Dy^|14tbMA9TG@E}R!P8R11*6-5(jpLZD3Ov3S!e=e{mBx} zTPDO^X|m0h;u0jK2S!)TbmA*Ng)S-SqZzmI&JAl+uso;nH~lIH1fQVo21f>v)IZ;d zqhB!g#^Pzi^f;sWqP6p0*~Q9nTB~A7!}UetMmyA`Dj&E&`9GLB=pwj!+!YI?7es12KOn)sjpYR!I1>0IS;tQ_`~G}?kSAi zCnm+CP2ziOcnL8}*Q%8CAAOaR^tM0d#(3QpEWi4bJ-rliXr8vj-&(qV;}%ly*1U7` z;*3hT*AH#qI;yuELe1M0z6^xlFytTAR&ELDzt%nsJx;7`K3Tb?+cq%wW<{dC$NtQop6LwgeBW_immRMji~3gv zoWBpFTxCe45v;z7P>KbrMn6qrmY}J&XH3lur9#dlqM#&QFpDV&Y)o21L>yX=#zZSL<^H*-Fs)A^8$OVcwktWZZkZLb52zPe z#q$;GuBK>V9=)p#L+UuCZZT}KP0hWub^GtWynI}pl!dqep1`v>4Ug0!H;QPKIt+k} zAH_I!xKJQp(3jpv!I4McC|ACR;E6H}H&^P=N+n2p9d!!UC#8jb?gs?K`@%J>!bmM) z=fB8wUvw7LvZJpySPvLRl8$^2mAnJytK9nEKm4t%EhE5;{^`EjfY%+*-{&yfyX=6VgHJLV)lY5=M9PjKba;@>bNF|aRdtV!HXAi1xfjg^k<^# z7fh(Xd;TtAi1CV4&Z7yDOFDTL=5ct>bDSYX9m7=kMZYHgr_&=sKL&9e_i*0u*6*MB z)OrM)$}X#v7|9O1yKUc$-{?3`h^+V0T@95hN;&E^G&U9)m8drn4&&zCQ>Tr(e*1+z zj|>KNkzZY`&4Q9uvQ9dToxPeDmd$&U!6}id4&(4(2q!0sR$yznm#Ghsqt(-$%89=+ z!f>ku+)`P7Se3`2Zrb3!Rus-U7XypH)re7=RSfEpc%kGQvj*-#puOoER9~*}G#sx+X+vJAo z+qTfH(`ldblgg;C=cMsD2v7+o{HgmH2Mvmm@ zwYo)*tq=4A)Uv9R!vW`}`19}B=qHUIvp7}sl^c#wK|u6H+Y+w<>k@+ zWmDCw{ScwqvLRcJ56SYe;-pk_QMI+&P7`nKThAAyBJS2^-*J5HUKo3Pw|6()gK^dz z@{(Ol_8Zf#rQ z1AI^tGpl?ZI+IxMt%6zfV?SlP@qKLyUkkzyAxmCLAh^Dd304$ z)u7>f_~1^BBFq~s;0|b0HCbdPa+_P|elV`m`srhmS{k9CDkE_Ch3}7xgtGjCKkuFY z6!e#oX)GZ(X*6C@Cz?aw z=Z>=l(^CnZWF^HiAI ze_L0eNzwWF>>ySg43m%+D_xJ?W?1{GwIiftlB9DL-7I|BcXKAgEg;*U)yav}e|6hH zdD8GYe}t++Ta|>F2?gycJOc{_A{^lOEQMowJN!p{pj|vDTdo{=!N&GevC!bf0Hv2G zCZfF-$6Wbm00%c|jR-#>L0pqZsuK_C=G0yst50f2ccgM5C`|5`85o4l`&R$zWJg!Q zJ9swcPxw&%_iiY2oQ}1f`oTJORs(uJ(0>xTw5Iz~QLAH9g*>Zj!?+4`a5=1tBRaq0 z1R(~Ez%{g|U8y2#@W@J#C5Iao+0^?sZi&1_I=!{nKTPhDJXC00Ur2$m4q< zRwZ;wpCgTpG=umz+MX1!#^lejJCw8tgUS|57)gk64WN|ySM|-mST$uwA`Mz{nZ7o_ zPDWr7T8j}ARpML5z;ge?yeS6|JQ8j28`tu~QNkZXM}H6XXv-lk3GySLT)^*pcwSROY$3hP8Xe40Jll|``i*ddvl|vQQ zS#NlxmUeCC7apHJFed?h>s{~pa>V}4d4T>CPs+JJ+nOn=O<`BX^Y#~0exujlzlZ*O ze7AgeAK3`&GcrP|o(#*}v%P#DcJGGUsw&&KU{`^1ccgX{R*?i~gLA@qrZ6j=QooJe zn?A=U#DN1_6?h_$n|eK*f+I{_k%o%2Jt&A9gI#$^#-nTS87OCa1b*V|N8pCP9Q}7LwD2cCxuU8$QQI* z5VDE~>LuP|OCdB-mBjc!FxxLpHt8YRR~JYBft_V00*Z+8|^__w@FL;z34J@b8BY#RJ#yI$HI{ zEQgs!T92dUyjoeXjp2h){C7&S?k~lHes@GRMqJJniA0e7viZ9`r;EwqY-wAUNWPSX z(-WolxR3vLIg^o-?#AE#Xk+Tc#Fs;IBB)@DwARo_$tHYAu>}@F6jXo`R%6W$%y9F1 zux2tSRVVH)$%kxO@= z4y!xwgoiB&(uG~Ue6Z9YEe>0y)*IsSlTT~Ffy>J`ZKIFapK^Q&mLC{zqw^P=p`$Ic zF5kUYwKd_v3eXL?cJ+a}cXaJ#bQ?S=q zs*W+TmRiOA_BxUNo$yB%SA7@xBa)hDy#U5eE1&AXpG8%-p5MKcHZ7Y!jSo$r<9PZu zEc$6w;$&Hd#L7ZkzGQW2Wn67#d`1!!MODI<+u(}Md>@EFCpeI6fVn-<-Q9;QwqOr} zPuw7dovWiC#LH?v{}oLe(KcECLNpNZ(UYO*&9530_DN0JKH?|Os=eA&=p)M1A^TdN z9)7w1^?T^qyApkNyj`}Hc6m0B~c+OW#8=Kw1sQPzh5lV zO3(9F>-Z;?b>CYEo7wyQywb0JH9melH zDRW>Y4Sr0M{~#y8wA+mZ14_v6QOTcYotOsmZuasThK*7Rah_mnt+lkOz~(uXhaoAu zU(oO!hJlPDpZB!O7#}?S8N-?VOLu@&<2nwR2t!<(yKs_>g?2wDTa>^0ag7F;A5`DJ zrQel+zBd8;X6%z@dIku1m;M8J+(R1Sd02MHOf@Xe`M@Vp>a89S&v^BkxD(k1$Ho>^ z%nq+A!3bdQThbto-qS%VvE!n*cd-C%4B8K(m|C^^S%`uvotGCzMp3QkCJ?e4Gw%36QV)Hb?y66~H6M zAVI{InkMgzfM^Rczto}vhBy~;lJ$jHZUf0#A~JDWCGzS5>ljgxqrVQ*Gt0=~%q9Z; z%KXc_S4cJ&Df9F*4G5v1cbK&L`iEz7Ogbf0?VywgRy7;Zy6;|u>J)p0nXrufSa|pG z=6+@)VWOqVxmaoIZIT?*X-}>0r|HJ0cCXHBwZ&doN*{cw7z=q?eLMd4KCAsJ|MsXY zm!Y$vTJL+5g7*`Piebc&McPYi;PrQ20#@vrr>i`xxg@Nf@(3{7E^#wQM{3rgq(zpVhOo?4Af)1yJDV;_x%~=-e1*t@U5q;J`k3l#G>_CzKZp9d^1H=KJ;)Y zY#yhP_GG1WAy0Q?L#)=)2zUu|Q743q{feXSEgwR>|5KHvjxK_1K+fU2mTZMmu@B2L1bvm%ip`E%|erpZyvCDShqn%!GW9C8TeI4xRD% zHBl`34I^)J!++5Eu2}_lTu06eun@uh0^kE0ABGN zYA(u?v{1wIrzQi1DR;C~!DooXtuA1+i0bAzjO+={b&Ax{edR1ErR}2cfLh>lp5FS5 zoTXI2(OH6M)1QIE_njC6>VLKNdaTGC7y@sI-Vv@y!q6}ffc%WSq<0u|Q&YNyA#kA> zNkF5lFKEHr`#(|Bn|%4|S%AHpVf z=y|3vRb`-dKoe&JMHoDZsbWBqGP*4>XNTdw8$~4T8o`v@%-<%VWtxA$Ih44gTi7JD zGZhNc16C(gaFGU1PYBgbehOke>8I_%Ru5$QP5|P>1f^AiLJxX=s;EdwOK^^?DCKU~ z;9KuhoDC>ec`j3WV+v*EkxKaVq$xVETVMqLD?XGM{pKa4zZxh6d8%-UY#%vJVq{{s z5>1e)k2PrU8D<_)xd?tTfsof_DI5*Gf#a$B-tZLMqoNF5qtSanNNE23Y^F*~)sJgx z&`tG(*Uan1v|3azc*9mq*zC5p z4?Q5+w^cb&N{Q1bud>3YrS>;V6$q}p?z{C0kium2_g zERw~co#S7~$a|}$kqKK^CTVym@(1)6SkZMEgML)g-zDm0mQ`U}uOMAGT!}^l3zdH# zrbL-#Yk;i+CcWR_h|OPj3n7xO*MTNit4X{P+l9qkUVNYf=^Fv3s9Mg6mg4iHk=%N- z$A*xW@3;9~P@c5Ux@0gToBgCocN&)Jc4)l1DfrKprbuq6tOtY?r(65(M0eiad;Vv0 zvF@-l>`JwZqZ$hc7tE}88%t?LtwSHJKK-0z56($rqCa(R(Cgqb(RiJ9Vs|*w7 zKeEv0jP*}pxJh>AYq7vFyZ-Y&{8|bkJ%$Ntcdc4jX>a~z4RzB|n!O`Ytlk_W6!z$k zo&0r4;k;PH$zV$U%{HQscn(3H^9+@bLxo}}zX-Oq0;nr|;V7Iyk8}Vft<}9fm4l2@Ucoqa)vDH#*y3Tb?Bn6rv-hVA{_x znpHz@%d$@&eK~~{$(u74KP(!*UCgLb@xm7^t^lGv&_a`j$kzqJUU?}{7wSTm`#`Tx z&nF^~Bh41Q$Q$Z#pvoizBSbKz&pf#Yk>-$r$(edSU7as4KYPr|`!=FvyR?K>V)dzT5WuRGJstS4T?jRmbN};sXN)kPgVpI6T z&tsYmpdBjJcrW5@}zj z9=?^bo~#Po%#tT@%|ex6%o0%_$QgPGFCBNvleED#-l^JLji5*kT4V`{C7Aq8gTm`E zmid@xlGJ-MHy{Fws=6P*FPHL{Z_ZNl;-h}ByQW1+7F8elTG{aL_wp{d7heuZ6Hcl> zbaI;6RgNaNd(84ak{9(JX?wJWU;3Ka&Y?{wM!70b`E*Qa zy!e-HNxmH6$H#2Mp-oi^tl@98%I`pTjm9R()%Uuho2E@}--&Zy)_>piEnP|%^HzPb zc2Q_vHmX!>ytAR=f3Sd0*x2aTdL17aKE3a^Zp+@}cc*zl2xy8~+Z8pwIv(el^IJS- ze`tRB`Q_i=b~$bl+5c9Df7>_NyG5AFcg;)EauWXNwXTMg=#-!eNi#%Fzv!_wzR7vm zA=f8C3rD^>scwFG-Wsb7!~s63lNb{e8{ZRv)&bh#`ZX}sj5^(W?0(o3hR-bOuV;@S zoM4D{h_Ly!oQqSI4vW5{?!wO{X+Al+l)kvS<{owEAwf{d?~Eq*`vUxWurA}zr5y&6 z;EXr6LN*8N={#?e!f!h1Xp!7j3$2jUd*E~d|JZj_R%fpXx@p9(r0_Mg^qA&&nFT~v z(GU~;h=ZL9QwDvFuCh%rXH%T1XYF6s?}BIuQ3?I94`b2goEVi&iMo#@^6SC8*q3m+ zwjc7ZQ#_(L`xU)PK5M>vE_2SM_~7L>#yuF8cp|8#0s2Rpq=%qKSu0De-&fc+KfIg2 zvR-<}Pa8FMrYq;Q+($tA(ktTGGWzNTXKx33@SH~Ss%U;Rh0Hu#AmAaNJ-V;Lh1O#Q zewr_x!n3L{P*Ocwi9k1J(O)s6&0g=pviT$Q2W3GF%b1O??KBo$@#WK(h2y<_o<+8} z88!Ed;{`9pf6)KO1yB`P2@aIl{$E{32;ZIk87){nw>UrLzj4TOQ9q~q>E?5T$tOZ4 z<7@N|{O6Dyzs}ZwWIzL=8R#LC>65E24}qIg4mh@zW`>YYb{(_#2{xPjuZq3u%kgby zCD1G;B1`mS?Z3Q9=-DE(W=~vMb$>}@Ukyy_c0)V51hw)`q7)75CZUQ#(7(PAPhGUI zFv*TdHrkNw^rwDZ(_t_0ETpJC;1L2$3nB}HU67VNoyI)0kbq^b(8qwh%}!BerpT5k zk3Jw8#X@dWg0Bk`03m2N+us>R1#w1j!}Ot8)*fjKb- z(pRt9qm-OJ56{}=p1uD?<}sC*RwZlK?iyrgiqiO-8gKfFD_BB@?K65h#|ZK(*m8p* z7W(uY^P>R66}YXvqfIr5Aw9k(MsE%Y?t$K$l{DxB-z1->=xxB;p~_KFwv(;da&B0y zXA0-nm6jagwzVnCQr=4{G0?xiL#^^P?k{x&^u8OJr$K&d_A-z_TQ`3`v#lo)*v$(o zOH`LiZ|3QWM_%A%FhpT{p3e3@pjQ+;-21~d-mCTSMU`T$@o~*CzYq_BR3q0qc;Jz16Xj1^?g2I$hEM1vf=?%7T%rOm~JYqeML@582=Rk0{*UeG*2|N z$@Mw8nn|+JaV6>*brFmpnv4G|wK)BA@Hir=ZH#?%1NaYRHnGeM2Vbq>%w5~^3Doh< z3hxv5RD-XVkIA`TcX;QA-7SMP4qLwy0^2F#5TeuD;=4299iRu3lrD1Ea&@l<+DLgl zD$F3_Mb*AaFIMgC^e=!4Igt1-@vSGNkjL1cD&tt7xD1d(TJ}H(UKf5?6 z9W*KmVov%eKGfe#4(j$qEggqiSlfoFHO-bm$*gp~B`Yw1R{xWKVN`;7%VJ_rIlUvH z1&zsUwJ8s%Kqp8D!ApE-2A;oKE?PQf0sE5w!ai_wKX067=fSmImbic%lia76{dX+9 zR0H&_9O?!NvbC5Z@HcF!y9Ps`P7?jJA{MOmK5Mp{0{e&~$0)?A46OP7_uNt3j{+!^ zL_dxgwNB-KlIW=WF5yLEk()uhH{=XKq@zxl&g9~VwUif_#3W`wegiU(*!DmwP5H2H zUfsc8H?M5OCbkGDts2rAxk81%(_$Uo<&Ns83 zC+y1@akO6?iXQnE2iG!px2s7e(UHu`Y?A@097w7+7(6nPOh;xnfb{7X(kL??AHi{2 z6y?(LY7$PHT>4lG5RT$X7tri;$cWR=${uEWg%X)0`HogX-?|?xt5z5#2g{D;Mtl7%xjET1-H$}#?P7#drTsx&8%4J7m)soXuoq~t=BTF=;FA8cY^?`(BI6g2iB&k5ze zJcUCc+s=sCpKp zhVANp+X({Ph0cQ?KZQEX686&b{l?!>5B*NHNDR_mRZ2#G-}yb4QLQ#Lq_JF%)$p%x z^Jjio5la0j$Y`84!-%wgeEh)N{y#F)_k4fN(5ST_X3eY7L8~`4G*iJ{5jUUqou4uVo&UbfsIMgH=ADfj z&k>7YsrbKTwmcKq-a}YGK>2U~f~Wi2?Yk}UxKT+WEsrSP zNsM=9e4&USorfK9-|E(i|O5M|$?(+}ODvA3dIlW$X)zBKz2 z)nv5SxzjOglj{iKuaYmqSQRnw#rR5Xj4?c$? ze?3X|hTp*u%lAL{!T*7{if|e&Uwy9~){-e>S9<<>%GoXj5W*acE5hQ2IC}nyh70a* zOj_6mj%6qruqKWE$@}HSBM}}Wws00KZhBgTA$;9Cn)?I8WziIr+!`8{tS%}7L|i23 z`CtOl4w*R4*-o6#m5X3cN;D=zeGIkEM_))}a*(e54ykzcgMLtbx5NvD$Du{r!zJ-+ zD02F)&=3AS=28#Ivx7^KGf4`)ow7B@_?k3RvXerD#Iy&S^)HbG77oQT04fIA)j=aAv{mA6#MAUQ6fNkUJ~qw#a#t0xlY-> zJn;*?(JY%LTH4Q(6BB=GkT}`r67 z^Jig4g^yO#kq~4m60h)cLax{-tRMJ=Dgk9aWSFL(5+VAgFYeysOFRUM5jy)J9j~=n zNTAWKNv2GedQNZF;wHteNV<15A^i6C_s!^+(B2o_;y^vU^L+bm~%dn4Zvz$-h0aD&kHN z!g~>k`aOac-2NiMRJ`(!F4Z|p&s3K(14b8v@L+vGq%a-`5*D!LRv?briRKG-)F+ZSbsizm7FDn}k+ID_^zZ^!^+t(frgx$-r z4&EuP8+C*~e;T$~?nzmWYg%QUm~q^aidLHUNVRMK@-WsbN3Fmj_O>%|u;iExbj;QB z&s6P>q#O|8Y4qKq_|yNq75zVKgn9fxbj?5$%nj4f17K^$NT)^USA$%C4_)|pU&~{_ z%?doBSiaQqYwUhHO4L%dArz9^z|6|$wumV$2ye8MBcZuJ`9sVL~9*fP@sVzRS%=9bQ8ADWx(FE~}V9q2og znCvgEqWtd_9UWiZ^gd#ORTNc^51L!!l^Q*xmvMjWG**HIK5~7LS5xsAs|Vbe570W1MkEA?873RvaM-gMy*f z(B6v*V;lcJ89m-dk0bNsdz#?yo=M}*>M}~KuG`Q16=#2P7gTnr8AZZeaI=QtSQEo5 z&>|vNV4GOwf?@7sR)$uXnUlO#Bx8#2G ze}&fG+BhQ%OE%vQX~{V+1i`O-%owq4xI zfFrAx&54jcZ?V5ItoXXhxPBj1>mm$75F`Cr6HKXORU21jD}dz%|0`{^rfuDNdoHT- znV;4Qv4C50nAPZH4~EZZ0S9Q{-my}$L!Z6jE#h=(D@A`bMqvz8EKUB`OeXfu@d>IM zR?g>Sq0U^tz)rfgd|B3^NtJhLfBh7D+~j&JsLMNhArb!$R^^+*PI<{SHcSi${4a4~ zL5ZhTf{R%~WjrJ@M)2oa$&=vEwfJ%QqO1Pa9OJt}qrZ@k`Is><9mJX;(uKa)N`n|x z8H)3;;I%9E*@f1 zBJad-obuk7-Ipz|`{r zeUFDCddt~Q1o^p%N~Xrt*H;Pd@95LO)MeuN0;Op^nH0E-W%z1+ih?cJ<)gX>=$aBM zTbS+$c%&}xj{Fq9D-l&5G7iKl7eub%vvzZki?*Qfdf zS|azY&P;z9qlu=kcN>lU1Ov}CKbA#sic;L~gOy*6 z8rEwkF)dGa2DE&L8fg`1(AAlks*rbOkE6GS-s;aSt?X(^?*CH`J#XE^9%;^yteRI? z2boMBeawQCR}R{`y3AIwD{3j^T0cl_vc6SANBdBueTk351iQ?o373*b`cT$9Ph~@W z6xLsmtN^rzbZ95;J@|;w1`936{Ii<8=WIwJtN!~Zsm++B~N(;mZ#G`O?E#bX}&HLTWOZhz%e`#WHq3VAb!RGWLbks{jU zcP^(AZRvI1yTCio8Aj11#21uqvKZT#=GCuhp!B z>j2K-BlazkBaEQOyheFt`)nZ7-9jf7Y#>okqSBUp&%bT?r$+m$17$^%GQkT>CXccP z!z!Fu&7XBMSjx)jP5*Pcx3$E$k%&E`!j|qN*Rr$zplt()QIn49+|RE-DzA7b$k;Iz z(EtI|&rks>0kfFm&foYdk(P2MhzlKd-A+&NG;qp^ztogU=*untphQBBtZuscZT+|5 zuS_5d$|ZFbe-37y)Lz>Rz|+gey423nIERX4|*?0_&sW(|C@BqYGc z^UKT)P$zz|f+65LgA+>XaTQ{7Q)fQ4qRYp4-vc)#SnfPLW#4T>UfK2(DMekZ!my>u zSK>U!e!}*$Kg!=E-_Y%Sm?GRu;F8po*xWOtRJR!I7UP|mnDzH{q-re}=(g8-&lrYM z*5J12Wr6qa8rO@vr*n7rLqzN4Fc>)w+`6kmeK2z@lwv7(rA&{hQ42%91%cSb+HiCS zp;~$-|HaiV%;&KAM)7H|Rg3&caH#Xl*nv&%X@S7VuASafu`H;zsKTVbvJtqCO^g{pTsrT(Jq5b3K1jH2pl{8K$wpE@&@ zW+6}`cHxM|Gn9hO5;}e_L+nup^oq{2<1>{G*%OJ%2hA^M>F_ls(*sSKw4-~Q_C>D- zMPG)vG1J_?Yzjb6$UbEmWqPl^&C@}%m+|&Omx55c&P(pfiOGN6QH07WF!mSjM{j%p z96~*bA&E;BCn9<_jOme!dyVMk9?|ioVXqGTf_^=MjJ{Y}vz8XeHjv@qHyl{hV|&LP zj4RnA3T~CNnTo@eI^>7BD|Fmr5nROjgfx|~aO{sK=-3!b+H)GJLw<8Y=fZ$>Y0hV;TN&I}?WiY`dh*V+I@$x$r0yx55Ga0`=QV;Gq#jg={QRAZA zsQE;y9?t#&$E7J{7JOm{tZ=!I3#BbmjSmtsQGKm@-!FIN7Hw$b1OXrq7}*Vux8Y5U z?De>k2$-h;u>&!)Ev41089Inwy4XNb{XSf`DV|@e#9i#wUCwC!L&<9OmpYCU=xG&# zj?2d0l4`{f_2)li?32Sf)7QVueM>pVM}-?5EV}h@!(L2&DpLt0JFB~pj0Wm>8S2C- zuiv3J1y!K;Tx=@)k;v6UO8=RMY2c%LELg_MCugMUvE1h-%P}Eh1k|U_QUue&}*TH?EbKmr}*@umEs_7 z3hpp3z)DR;&$;ML10^N65YklQyP9vdjT; zI*}epDLc!!;Uam=^y&vESL!Ukq}(cQC97OPnOD+uNmgcc&eH!*`9p^O7Ik|uYJGcP zepeUm6JX7)C7TW}2O5jo-=0TY?u&8WU6d7kVDW!J?n5^#_@%O~C}r_9K^07z3N+Y$6qbCmR8ASlSHYNisbya?@Xxgw91s%C}U$P5lSy5aL&abcLQNqAlc zXs;u1NEdWgGNoCAi%wsNQ1j1mzj$&*6r2I6h`V4~KajT4z!z$^a)Nj1e@-^m;*2)i z&CO}9lnP(yfG(%~#b}An2T*pHctHr7n3thu*XrcyveJ5OKuyeEF-XuZ&kXGJ z)eVv@fIB=74@~e@lLA!fW4Luogfyf9gtSlz_(IUF;2*Ksw+#`DFeRVSKLK&?QJ3pWQ zFdy#-pPMx^!SQ=wo)X+z)nOI)w=KA6H%X)V()AN{N4lOI7X$rlzuo`&IV6P6O_e|g zbt+u#O8L26MPhK(Zb#enrWfVgov`kzXsmn9C_1G0kv;sq41&8o)oK6|xDKKBHPf`w z!4wh5xUw18Nw|CQ8!ZTaVs+7!XYSOa>rkrFL4SRqSJz5{oOt2+Y-WJ{@GsbkNjBgk zQwXw z!~S;Enw4}e1?_;sdE(Pv2G3hF<3xp?RLzgEdoir_lc&iO8+A2CgP-LnI(=I*-|>Y zJ~`x;%yaCse_l-^B>J1V?z=?-i-|wx;?F^-Zmf~C|9?@es!f|_m!N*l?JxER5!VMP zFI&IuMSO4FJ4kUU=j(l+vSj|~`Oh>#-MlyOpOL)BsaF(a-SSqa56Oaa`)2a=ws-{y zaE~A|HS(4z;X{;~bsb8A?b?{G9t+t$T(}i>l4}`$9&*)XY@qV@Ye8$#k6GbQZANVV z&e^5`TZZqkEv|O5x7jw#vpLP<0h?|m$BC{wY#*+gYzwO2mY&4p#su8hgs0~&XVLaJ z$8bTwV=NJT{?}p5-r%nB)%MWGV_h^(Lhx5=$QQUTtx>@OlW4pC84tAI7bJF_*-v&$ zB`U6C!mamOeate_8u;%Kj&Mil6)xk0Afcw&lj`1cQrznil|d11p@4N^YX8|!R{csG zyCH19<>E<+W-TIqrmw&ugY_|HMcRD&NfJ2(qa?rW&jx{+yKyP1i=2+e?|%76TpfAo z)JkB}kSIV(lzCE+UewE{C#TE|iBi9BWTRbZqdN6~3n@R}Wt!0NA10Ar&N~DNSSbfM zfAxY}kZ#HS|FdU1E-1Ia1SbEp_AJ#UFR!g`vr8u7US>@)U_7CFNkiAu8cMb0sXYe6Gv zjZC&tBCp_xPwwqTM&ht_Sry}NKJe#mW`ZmtrL@t);rZ}1-ap$4Ys3vj)5Sc4!jAm9 zGHkrQ1Tz`AZPIq7eQz%A*$%I;Wm3L_l)TN0+`N!mWzNM{0U;ta!m9>^K*KvaXzSec zC-PUQA5!^jQu3awI1jKHIyOInr~u3pK9KAB-pz>-SpQvN5Dl=>6uqMFk7XBQEh^JN zbU>H-cTT>3!2x7>E$4dSc|v-ThLZpza85q3~J6z4ohMf(>I_J@r8c|#YbEA%vjlN=(gJ$3j>ueB4iqjN*1_}Gn$(+R$}!j6g2<{3|c!iH0k1YryIiY;Q2 zY2-Y@XQp80ZvombkI7uP~c@uGyH0%M}m}vmh`cGol!z5ABYS!q}ccQQT$$s(8MVreC!gQNaoOZ_=n<`ckpQsT zz{{n^Xkyz4Jzj4C_i0`4yFufKSG$?kb_#X-6Fa@X7H)aOw2O3X}*XIDS7&1+?7>|3l+ua#8`64NvHZTEC%X>Wfk<2F2GDIJB+1k z@33|CYk)NI^JvY9$D*wt(q=0Kc=s+ln5X$NVH2DI;}sDd|<@2sQ*@E zkbbFAB_N5;cY-r4?TP9?vK;*CNGr_9T+~ZerlN=BA{p^1B*XmNM2v2Cc3uRsrV8o$ z3#pF{P2CGe4!!t^_h>b-z$ng{%BVfTjHe}+)TET~(vm$~eXi6qNvF%Z)ZT-}D-kP%xuP2ItK43mp&nFmf;OSYY!wDgCopYUcN*Un2#{R5K&=af{@xsFqe4y^?G}FHpr#xsk7|WWyz*(Vj^{lU&J;2NSB~{scF@PvCxBir`aq5&7$nm0A)GvB%9nb9mGaPT|Db< z<4+T@FAGs&m&Hd0EyQoP&l2SsD!{Ta8xYB#D(D(i5p^I=W18Z6a^bXW{?(Q@lV z36cs!e}~h(G<^>Dw?V!LF-$GB&konhVYi~xm+2b;D4Z9eI{>>(pQPCZDCkR$>BD>E zNDc5@0(Y0eOxLWGz&aGVeG~(Zo$i_d;A43TR=P5fzCW@1ovVeCNCDnNQeG|bh8ev3 z6(nsp9m^#{+_^P0&rob8icztB!uk+Dt_dlz>(>L$Kl6>HS~8$a`O`fw=&PUWlDTdn zBorMU1!Vv2r-@tW9m)J=PpaImM*D-DY`9CQ{I7n8K=PtdOa}S&q{MIcZ$*l3Bi{L= z-;4_&t?-VOn;>^9pf(DBXAC$Bd0wddnO&yK@bTK_qTq^-J`8@2_S zCjVm}_6xl$P&G2{mv#q8~k3dh}TTPG`& zc14p{mow-JHI>J}L)`TXKME>&$>K<{<@|!Ao|An$m+GW4BcWdjO+U?P#akKs9Y?IROPEjwg$5`gQn^DPt zT|tWW)3*u?th$EDlVg(1o~93{>EGqkoUmo&^XqOd89duGpIQ4K9O6pD*$}-Lal6%W z8y^$BCl#InLoD?CeGV07qPIcl+6V_uQYGVOk`X}F1i%ENZq+Enx}pz&My zmv?bStMjTdrI$0LiZ5I za9!gC&Vc}TFG<2ze^AhY!$|;y!NSW{18dyd{4zfX3n&whGu3**2j$#vRQ6Jw7;&`L z(bmiEMBogZZfT=6+{2s9M7F}ty9MQdkNuY;7RxBDi%zkq-H^I*50euCVZf zk1t9=Ko;>|V%7SS9EzwV7@<5fU?$^!brK0o35X_coV}EA-@+|}!uVf*;-=D7COdHf zlft!lp!XhQaf6NLHwiSwGR8C#_|C7))^7(G1@aQaBYDX$Js(!9&(2*RUCm0+L`A4$ zh++8y$6!U=X^mYx8H?io^HL>FR~?rPi$W2 z^@=d7y9ae+4DbrYLLK+6tBTkQDcpG&i>kM*`>B(LqB`AOwLegi4`bgxmO97dbjnpP z_?#|vnH6F}cZYJ}eL~Zi70$w~??L{NIr|~6ej!Xrldp!{q-TK5YmuG*HylNjfJ?82 zX%eA%9xV_OJ%m@{n64_yCK6aW=}a-5h|c53R^KfimdGD6-2>T*pYqMOyV909rk&l25Ou_Z(LH*qtL*i=q z*#P^?|8xR&I5)WEs<~4Q}eiIsFapfvV82XJyfvR5kWE z`iP) zqd|J3YosV3qol+H>6Gr25|9v4M38Qu-~Yak``z=JHyj6ix9hsj^ZcAZ-sB%wL+OJF zp$m{Tg;PC#z6=y=u~fXvwZ~TU40vOUy94V4IdF-)a}eQnWWc=##(*0!Si`vfw&eEd zBPO@b-}PL=IVkj9-Lgi&GQFNEwu%TLiiPts40s`7eMJO_IZTYc>Ww)G^m)uMe+}_n-##fI8A&GO0|U$VSZWt z3{O`+3JAWS( z2EX0W*MtAXTJ}F`!F4zWL`Ig8w#m->^XKd9WqwAXH&=JBef3In&8`etH;$HRAe<>D z4@+D8>MRwwmCI6oh1vA4R=Sv}b1|FnQhhqA_r8rk#CuW+^Yr z*SO^o+cB`*+$?_&3wS$=C*T}Lj;86V^N8%zzCk+Dk=?kIzvk1h!&)YlcHBHzvOW zF+MD}6Odf}iTIP9AM0Pyb_V+1jFe4EuBzX}A5XpWJvSeu(R(KLRV2UhskKZ(0Ol;i zg3WYd#ZC^T3za6JbOb#kFD6z1ea;mA zrAy7?Vx2ZxKMl2;dkGI!UT-feYZk+c?8aZ5Wf?Jw#|r%BowPIf8+tyw&S1Niu_7Z? zHQn0(J~#F#Om#}I>M4JS3j{fuN>HyXF(|90d;=}0xLEFV)_DbxQ(LZ-rFB$AfcJSRAn6>rI){!(@e zQm^83SW?URNPszV) zDE>IS8ik%P7ONKENql7yh8dEx51R!BgM-npVT3`RpN4|{wl5X?$vA;;NJeIu7J9Qf z=Zld^!b-Q{A5kF(*%{!E7}iTps~i%Q2x@i zwupl8!&8rTI6nZAs8K{A6>n){1F({Q7FEGu&L}zZZ#sAH_1cGgCmbzy zI*BzRG*mY%HRv~-+GBBWk<1({7Ln8`yVLg=ofNo$Ec;+Yuh%q|u411f3$njh&=ddu zaTGQv-yKQDPiT~6Z^y~gkQi9b3=0e-`F?Y#(&0@EmTq+1&;K6>CHB8Oz@`FK5)Hbj z)ozC4hQ1H)pn_ldB=+OO6Al>*9~PtXg7P$(@_7j{{f*|kS}*z(7z@HMJ;*MVY6WvO zU*qKHO2!1;*M!cEa*JgI+>3;25YAbfOlo4g(pKJ<7u-z)Fy6w7dWKsRCDBn40g%ac z%E#Jx&IwColo|e z(#8YYc6iaHH)GfN0u726n^{aZ-?Oal9}nz|3)U^orneqV-L@+JZl@IVC)UV8>GbY+ z+s$Hniq^Bp%lc<8CHF?`cTFM{PK7~@KUm+k-F)Q{wA+O+OQsiq#X+$3=bvq@-n@qK+|Ux#KF;s; zkQ3*Ude1Dnmg4ZNF;45ZmB6wI?(RJ`H5_?-C=TbL4R#q*K$Dfxd*VpAB5pBRFiSDY z)J}F){7$rpk*DAH({>4UQ#vEW9$gM{0O77^z}hr|d;sO5>qJCKRy)`n=YI&EdqpAb zKxNwVMQ*h<>c>ToC$K81T<_kEjWUjlxSS?HSPyy-V^>@+&vw&SZwRi|w4E|kQJ;Kx zwaxdrtBBa73sFL+F2kC;6w72r_^${=~WWbgxLHH49m-Ov_ z5@Z+pd%oZwns&*~AUDQZ1KF?a_c%e@UteA&9_cC^G33gMd38VZae~oNwv%xrU}Ro% z>{lmf2{zgvKGIG$yAkaV`iAA{{VUw>w}3rO%j7 zGd~&TH4(ac+7$CkPXXxsmh_^itQ#Uiw(riKP#)(|h;3BWjln+)yaBNrQ~W?2(hOJW z(l&R~(uJZbC7`bA%0w@kn`}oVXYe!8@Lw#ojLb9n{n+kvgctIyE^TNnfuZ-{yD5ux z*Xdk%PwLV=MfdqJBx@4fg(3d2DPV7*P71(Sc2NXU$HdrC!n=9J>Jie6PJD`W%CiWy zfI%IeuvvA;VglSHU)~>K&Q*oXQwfn}K2fFRE!KwoVqz>_p2MQ<(Xo{c^4u^L*bIaI zmV(JCGN436T4-GU>-EPl005!)Y)nrE1v3ZoCy%IrcC@d)Tu_zI@!tFzYEj1e>#mpl z$OOCx?@xpyZ!TL#b5b7nJMPEZV)x&tjH?W-dlhfvv_U1WN&&Kc$hU1v?d zWMMw*t9$5B@aZJgBl%^>CY42}7H&K8lC4b;&@O4R_<=oe9#kBur z^nKMi*T-6HEa0J%e;8j-GYBH=jSRn3Z#t+__}{YkL{@irux~4tk+35?-zZ{wAf(7~dm) zei;InV}aAexU;ZZ)*ptr=wMuqhc9V@_LQ#H;;HHTH#uKRfXU;7p#o`n3%X>j4{WND zAH`d!h^92PNSQT03{MDr%GwYfXvf7Ug4UMM4|u^DafX2R28APK*oVDoj%mwVc=TPj zBVk~JG?o|3lcAM>ohls=rh6j5Wt!Eah0A=7&GhdlM**)&?Tyf@{Knqq49|1F{tpb2 z^X}&F1aw_E`!R=2E}(uP^9n1$9>4cOT_HeNZ;HG6go+OA_-@Pl*NIheIRa@?<^!p| z@6TQ@umKCWv=OaAGKKv!7@`M~rxb0@8}fkkYs#KE4fQ{o{>T1gv$*n}Y6+>RHNU58 zF?0E2^Ew_KZIzyh+R1RcOPjiK!fRuaqeo!(XVC4rp*4g+4N@ve9n!2B7$@>2+--H2 z={jA+yCcf_-g8CCVLA$SXY1L&0@T7DJ;)KNWv1I2)ujdu6_u-pPGh^)VJ;ib1&Vql zBQpM8nTxk&)5vfJ-0<0m00%)Ne;oaXL|v8ezVuh1QRb^x4%nifuO0u3t9Jnqh~B=# zxA`S7}M|+UJq7pj6{XE&myjX78s4vY<5Uhi_SGc9(XmO=rArZ2c-3RNQ1c$2O58TAI;%M5v1(jl3#LyC9r zZ{^|VSY0|b`ghb8zIwR=i46$VgABVM1$m3LAk87ceZbc7a8+^RA_XQu<(twtXoZp1 z+^qzz4WGT7xY(6E~-lAFze>(@ECCuA#13#jcwRTIA_}7U)L;gI`Br4*oAykT>2?T0sc9QRuC*Hc zc+pu<`9A_;M$OxoPiHfK>?1>626G?Y_IGX)jv7MUd?T}U_%$H{8(L%F{=@7*Xkz0wtJl9V&3_vwn2~NQ zvQo7O8UEmn0la_YHTB<3u@8$@!Xs4nsVv;HldqD@X7)lPf5_Tt$i56Yux8s}s`}Ak zUayzV2ci{u;Q5~zE3J4|WsDKCmt+_Jl)p9J@$*%_;lXP1GJv7@I=OwnPc!wZE@fRA z$P5VjLQfkC78^Q+SqtSjXe-k^sE0QUts&h?g3^eQ4fBOXBM7%s0pOg2AT#O}`jvjk z(*w7s?{buA|J#9eGmCRIAbU4ph(N3$Au; z1rXNNMn&zrg)HNp=(X#9Q$25++X01qM+_owvHCa8_j)jE@Xj4|94 ze(qEhwG9$)R@UM<{VE}`|FurkiuP)^d#9oeG^yW0Cs$nKaa&hy z{Ohc^n6>Zh*QQnLqwd*2h8LG#b2*Jep1`+!3eH%{ib)$Bg1LTlT>1po?6!4 z~!Xv~7{_AWyiW;GnFba+1Tf({cw(=mHJx2uYyLJNjt z0x8CiRUzDKj3hrNwAc8sM1Co%t(bsEor^Rqd)^>D@KnD#v%fU4n;zs&`%`h|Ba+Dv z007Z_BT>Kk%O6nxv;_O2c`dToRe7_BsaX*i)wem4M zLuddh+_0rG!V#rX_nM6KW(Mlp`YH-hr5aP_sZHiqSzbq!s zTw6HiO!n6OWJ0OQU$mGz#k7WL$oFBZ`P)dKU5RARMfmr03H|}EIy7{`X!YVultbk_ zFN(su%@xG`E=D&3?E6GX(3cm_$xT8Y)rm-Y8@^jJmV9HzGQiM83NTt>#h>6u;<8DX z3!(!^ON{czy+}L%@98I8WH}1c6ACihx9D(1i_;;quZE#dfNbjd>mz?RK+DCPdi*u- z;cm;;kBELKogZA*cyO@J_l%KOKOpJerAvkADT%qEK1sE9TH|o1z^C*1-1NQ1Azif! zhv$uwb_(ld<5k0fI<@(R;njHx)3*9~w@vM0b0w0KZ66#T+&^_A{eqVG?QVJS)7+*% zJ3^wo2!7Nw?%IItv$kbF5LWvXZ`MdcY|?*=+O=|rSwrt*^a>26vB%twd@o+Yb3_{l zmr1BnFH5_X-EhC{q4b5vX#-*~26_onVR0EMamBn#|I800UKm&LLZ%otq2eMquM#Pk z`@~-Z<c$)JtJ%2BCVK)7{d1O?5kAWj?u>a-vIUOfCHd7L7y5hIZF3SR;m6sFE< zr1gX{_fURf)98!`PVrgtVDKra=*#MQOyl!Ec?+4CG7!XS4pGbMA_Fdhv-B<;PM-Xq z7oZ$&9zaiwe1QBwc968Y<)UypQrE%N;kKAF(bbtX&5`kf$i=Sy0nfuw^x`oRrsq&} z*XO$K*+jZi_Ap^O{9gFzVht%XN7Yri2Y1oK+%V?{$IIS!4A*}5=eu`;(Sxg~7P^LlaV)r%MElF6laWq5Y9zAN4kyUFg` zT#4|4Yw1ANgfZcNkPux4LBRyOSLiQr@??A`*x{vcPCt(G=PQ7w&{`pg50~{_j-&V-zLsw-`z>2J*kW3>%;Z77XOdb z%600J$_efb_lZy6p6-wOe;wanK5LDWJH;F6(PS(Y==3CXf>n)Sd@!BNHroZX2D#;91}M8Qp9sx zYncZ-SLfZV70DL9)<}x(;~!a$gjuD0J%7Fr@6?Zt;f5bljjzIWjcs}$3mkvQT{vox zo(l*ggGy9z-K=^vZ$>6s=eY*gGb5D0$&w<>*aap9i8ajbqR^G&>(`(Y^VrEs$PZc? z;CYraLB`fKrE0^D8ZLJNo%%g^981%@k^H^!0V3D1mv4KXSj6h3N?oG2gUy%7GuagH zk8sXn6AWAurLGmWoK{U%Od9Jwk$(WW_$J_Z9(S@a3dfZpdUXXojny)f8*tbNVT%O2 zLwhrY1ufCRDh#-2Pu{O6mUsZ zftI=V5b}Nt%`y$E?R!JXTX)L5^y_{z^kCnQb?{rVa8XIBAF(*SLLIx9^$o7xck8&a zeCU1W{;LfE@!>})2lJBSF}WYtMVk|N8XOlu1=;T8;lID~&&UilBPp`>g*x$xnn^n- zYQ%&ghUF{@i)8^nZZy??nNDb7a zdREOMVv{J5+gM*D~xuaqc(@*e2EO8exq=HwF)--Lm$z#>| z8)f=MRKKh)&pLjV*w*3OJEoO)i3^=yJ;Wz3nJv-WC!K(-{sFI1jCGA9B zApxdo>l#BK2#s6UHu=gNTF3~M=Lc)=k3T>pV^tp9q>gPG13%suo z>f}%+Do(pI_hv#TAQ{iV?f7vPk%%;0VG(k~NE85F#T5ixxpZe56$c@2@@> zksztdM5$gB3#I07KO&J{<-{Ugn|379u?>Jc>~ysCBU2b?>Dn_ zE_^fJ_D3NZfu^VZciUOBUc8wVW<=FSZ#GSheGmU$qOulDN_Q<(g~WW8Te{;_J&O=$ zD|>n@qY)##s-&Ci3#gmD-AKR%m>q!ihGvbVjq_Lx7L?`~y8BeGLJx!JB&1x~>8V@fo9f1Nz%M9ZB zkxpFkz{++d^4ErvD(9d#$n}pJ^+C6(Q&A?Bq8IOJLL|Y<807n-w_xyZuBCyy3&A9G zI)n#ARS}O^u`n7gm~IHkUwmzu@_f$7lfQIw$nHy2N61#}7=bry}z zj{n0mz!K_|_0rntfN_qsor~v@fdN}AbAf{X z$6KOHVR_%VA1-cC#EjobL{1n{#`sSp1q73F&e~aGoDkMjV{kI>>>4kzZu+XG1cK7qA+97OIaVeM=Xz-td+74h`bP`D);k;i8{95GQQzd}}g`PNj=7#La zy$TYf)OnTAn2#aEb9AKNVz&$LoJ6LRKoUcmfZ^xFTwH=^zvs@zT!jTE5uzfjH!eu| z(GxBJjytRhZTB!Gov4V)DpZ+kH4_96E?!4eX1k#{DxTG?{{7!g?XA_|7j#q zXp_sF^!iKliqhEIN7^DI1vSiAxQnPel}sgbGdip)aQMq~U7&gNkJiJ=51&JJQ*}9I zz&DAV3lz_wf9V8mUl_9~JPib^lSUGS3lnI%V<*Ef>xkzg7DAO4wShd<19!xZ5UnZs zGb4A+S>xGeSlp0cnQhL0e>qJ6AFaoCyq=d9Bt{z-qx)jyf8vhx7T$eD17GCYkvp{% zImYO-$46R8l%dH(W*j1CMb+8a$-Txv%LawccuMRFK^)C=orBuTb3cRHaoy!YU5E!Y8~QQlZrUak}(y_8IQ2z#ZmV1M%6asFat*mm9f} zjx;3EDIsb~lg8h0o%|f-F4;Ho!fuNNxYFa69q~%~+6c^(?cSO|vjR&7h57p+&J_&WA2in#NcwI6*zS0x%aJ-v< z($VVb@$UMwU&t57N6=p@3+jM)4-(6q=HvF&GuL?tq>dY7h3x!g1sG_A$U9!WRi%aB z>3g(!nRRS7NS=QkrJLEIuu+q888cb!YkU~~lU7#wvs)v`-iPod5{oh}YjlDL zY<0m5m-`yT=@$H3IT@&2 z&RFjw70pr+RHo|^tF()6Ni zCMHQT>a_j?EEErEJ?IEG3#kcy(GSU0<|)@tOTU#t93 z97b9TxsFB3+_Q@^*kXv&I)-El6?9gZ;%E}9ka#0Bwds9*NjHCq%Df?u)keX}CyEbG z5uHCc|79T1x}Pz@qF+)7_(RQ^O^5DtC zL*9C=|C%ZE5dqH24Ztr5w1V3brrwixxAVk3%m6}-StHe;Q69^JOa~n+h%hrR#0gkx zv>;Rb3V`948pfoB)<~w5snkO4KX&j7j)sCAsXj254Mu#!h(OHDLC+7jml2(-Mo;?$ z_qUfF5wZ`*ZtHP8zrA1Rk#6@$IK*W!XnkIUsZCx2_;HP<@R5WkK~b@G_nP*;+7FBA zm(w?LZ=NT=oy?-bqP9ks6QDik8XmXF^-tM-y zVdy(?7Xo6)m&f;}A>9zJ#;GwJ1d2JBYOo81Cz7@_CfY^|t^D^*gOQ*{Ov<`32AruX zf3WoB_fpWYCexF%Ey-AIw?G;HpFjn;ah|-Jo1~^l$n$E=5NZtnkku2ai*=?pFDTON z=AymmnfpRk%70)r%;{g)W{{oT_q*fAT>cRM3I$q>OlW3 zkb&-6Ckp45gH&Az;6V_Z|L$)!NXqC8fKc!X&O3()A=?eMSgH|cjkOdF&#Bw^j^IK9 zh+zeXKzMI$po7PRcP|R#GxuW8in>(2QGjpg$}JvwA-Nnmh?_Nn4$GjdQV# zu7$Ny&A`X{ar41KGb2JKqj9&s59y6_aa5Fs3C5pUee&6?4t%eObLNA=DA+#8x)6CX zCw{&jrXD%>mAA5%&Gg3Y(wkr{|1zQzNTv;e?6n$4OoWCy9@@&&81SL6U=u;@KZDh{ z&m#edk_o4nkp8E=gLN((KX}jkRY~f1mUT;Wfb_)cja!slBto0T3Y9}hX16#wTr0+f zvLfv=B=Qw=T@(t$SV(vOXURt zrj-N)wkP?by>XQ~==E-!(2;gmMB~*qG|{Z}4j3CX8&q zPF}XU(j__WCx~nyUb=y$yr)q+pG*=f_Nb}fUWjwc%A)A9Uu7Lz{C)V^UQS}Iz9h!2;k>~KYl zx&uF&gKrK-Hx{dv+b9*+9hrdnt!`)#`Rd#mv@%4C9$ zrBBobp~rU)WXg{1g393j{vI;GZKxXVLel*X;8it&Laxn6)&cFDScDAXl`xBW(`G42 z#~U#}KaAi>h~k*RbLlN8@Qq+N1pqjaVknlMFP+k%r#aGPB@^pLES=Kl%BMR@jUx zOi7Hb-@CDp*Fy1r2OFCbJw2-6wk0M%50D~S#ltW#Auq?|s1o>!YOJ3fMb2yDpQ3Re zcz6^Zse^cKc8@}}TZwg72xx?jW#S)Et(n3+C*q$?^LD(Q$<|>DGaLQpLZY3y#Uqqp z8t0v${D$-o_8Csi)#{3tn4v{pM>&j0jWjd0GV}481T;|ug$WrdtF@02s5&7YpkTaN4b88O>G{)Y@_BkqR)RNx zer{47HLH6!3W$0#I&S7d^WqPaPYL`KBB=ZCEYrC6V*#aT+> z97wZ?laB)UY^6y{lBbeVx(4fDGCw5JziDf@f~8JTbe@?#c<~sSGH0N;_V<8;*sYDU zHGxemU%}8%j$aR%sLx{+c%Z6u{=I zL>@pgiONRhNe=Iwy?;^w+0d0MpZHO@&Wsh)$d>0os(rZcmnYvu+M8>Meua<2YAtqG z^{e3^>$gA*bBMy@U3*UD;~7q`kX~Tlnuzgo-o-C{dP0nikiL38E@AI7CSnyf+F+-sA&P+6GHsD*vw@%e2==QUa@ zn|po-!b#qbCfu2&ELGy?mSaP<1!wMM-$)HU&KB{W-rcz%Y_RS#sQtuT)?#Bp zZ94k-=?AlZyvW%}BM~(>aS%%BjVeX1l9Z65+G2Mi@cqDF0>Y?~R%^q7h^{aJ3!3T< zp~AKAVY-jDeA)Z!tkDe;WG}U$tK9dOCXxe}U5HQm!DN#5gh1G=TbP=nd2`?V0#ptM z`o;q0b_qFCg!e+pO<8(rBNmzck0#xgfy7`M9O$3e%6qiLyy;O|hT!NzlK$6acP4@I zoFIats5Tee$ul0noSKJc?#TkYowSvWsD)@G9R?uOd2KyS%&ASi++LEYyrx==Nw;+I>p}_J((`q#VAbXETk~gAx6@l21BYuV z-P_s|Zg0;sIUo*}GDY9Eod|}eJziUxsMHj9hdDOyIehruq|FiXc(-ouIBcAj+l&9i zXYS)pH&gD_=SS&^4X%U9115eB_j|I4 zSJWTAYO)HAbY{5>6!rSz^k(aAn~Jb6ob)#nFw}XeQdTo~MzTSWp(nJaOjus_zpq;j zMGc&DsWF*ec~V-o`M`w%xADF9!8>E`r3i|uFJUHNT0ucDm;1|t=rUrRZI5jM&p(tk z@@6=t7}I}ig(Gg$a=tstY4K51J+@LS-+VF_5`sKTqOr(`fBkpwDZq{2)8v3P!fl`? z#<;^$Qp`QMZRfWkvr>9Y&2!7b72wdhi!<7Uz@weUX8w z@!hE?Q;Rql^X?7^J%QDbJ|OfIP^w|We2P&e<7I+8ae^J-T4PWT(r;~$sIj=G{ZT|B z(&n8PCdjujMG_UIUSpDHb+@ZjGSjJ$VpN)w^me6oTV4fO2EQ^Ot7m4`uoCEzG&w`U zmSi8thR$J4menT@*GMX&r(#jqu?<$U)m)|3_`mGG-p-sQd9^>e{8INA3O?F0SYyr3 zSYPRqc!MnBCLoXQQM-}kC?=mY#mo05>rtB`hza#Pk(OAx*vx2~-_FR&y1V?oiE1nY zZ?uw@0C({wOV6i2X-kM=fr$6stLa|%~8x}zY(lR^Y2si z%lD%oHh{)mK)jKo!PSE8nl$iKq~R3jI31?%vtoE(Hby)ARiY!#%e8mb`t(!xSW{C| zzzPFnbhb4!Jfzns9zQ>68X8)2Jg~xEM~fX%-Q0DJ8IfGQ2wfim#w#87du-WN&14~0 zzZE^pU@j-*Z^#=ZH%WeFx2n;yr^2O$$w?3M!gX=j9y~P-Ll29IRO3;7wI;-=3BiWB zrM$JE?h1S6X^=04dmgvMZ=IDd6c9dhp2(1L#DuNoMZ=d_yg!nC!_s0VssJC}Vv;+q$+% znfxnsj+d9@E|_UuyYk!7NN$Z|G!y4#YeLk~X^?oH?33X~#BWz2*wzSxM$qV0{Eu%b z4>{~VxKQqZ9rsUmnPpCoTLNyL`*ALOcraL(Iv2Jye)5$P{yFj5WgIbr>2vItvJKaEnX!FitgGEnWr0XWCs&O9Y^;ytf2>yKH#g59G=3Q%{ z^VyJ!)?ObkoK{8rAqp1p#F2@al*v~CI2oU?Q_kP;Ix)3g+MRs|lW4hG)@(~O5khr9 z(+cvUSY*cXp>4yWM}8B{eVO-7n8Y^aVMpg6wLAT)hMm{KDs2W~J()BS7L54@ zh8)1@zTcywTVn-*vQv+~It+v6CTg8>!RRaIcsp z+*$Z=iqrb8>g!vR8mF=$X> zAe5RJ=D2Py>xPbf8d|%7RaIQShXG{WVo-fJ=F5T#DirEFk$!r;ja+uP*^&b&;oDP* zcgS))9CjiCemaG2d+O6yr77Gm$Sll_k@xe_e9j&8qra#m_da49IaqU%+>xM@+7<6W zXK@I%7@9UHtwg?NJp$xQa;+qhf4v7PTSX4dB?XzMbAv`U%2dMR+#p&I-!a~V%jGwF zkuueR>sO|2W6Yux?!-cJz~cCb-_OAR1X(a;kuJ<$Ys&1hT#=x{5T_g8{aMI@@ebY< zlaOV6YlEPq8br&qhE(IlWhH6aaWUrEEB>DsfGx++WKhe${_unPZ6b{6glQq7(zKfw zJMS!mI;1QY29Ms0IK2J*rv06v_kwA(jl~#uX`|!s4LpKQkNgyK&`%seUNi)v;eC>Ksb#jel^*kQyHUn0wj-Z@ccAq(Ho*Wrk=AT6 z6Z8PE#b@3U?dm2jGr;(un`HENFHs!O9zI0ruLhAJ^|G@SOxPOX1fGCrH|YC(bWPo@ z>Vc$}oObt`i47urhzYjdgxP?x{H6a6gq8Bg9(VA${y{CGqp$O|2>3WQJlzm!P{ z86IZ;ofuvNrUrEj9VZv*ZRnh!TFk#Ygjz$h=7F_E8B9^k*yw^Amq%&IL@>KSQ1+nx65^i*^E!3O5(cjZhoC^Yng z$TbAjS>J~ziy?8p@P=ivU!w1653H#CYB5t0RB0sO1ON5%2a~AdO1LKCFxy`)>m_iT zMebOt9uA8Gla)1L$&9R=ubI^#k8^VbSkxWhRPgZvg8ED%Zyn z(`}X@FLwAof#)oLy{BGcVD4QVb~-@Rv==WPMp#A^BN3~9@;>+T?ON%*1b^d17m|u_ zEkq!#?HIM%g7?11!=h5I=z&gWazR0jt5W6oTuRVI3Ppu{bWZuJ+t^~`xDomFg4cM8 zrjBCgmmpZlSr_@+#+jJ zkUld36p4I!Nn@THJE^WgwTvYRp{##<-hS%83+(y`a+Y%OniBA8S#Ek+b@zaBvUVR4*To5#&nzE|^LWL~?N%FW%6Emv(ynSBaWo;4b) ziYL##l_&V0zkgmazH-tPp8fK#f3NkpO2_y@X-&9QtzEjdXzjnAm0b8tb4$RdSwwM) z86Q51>%tV2$-CK!9z@cNSw=My3p1NbR3^)lt2-4&6?i$2O@{-4)HvJ1Kkdi$4p%}? z_*uiN88Bj!pji0KoLuFo{6^)Yi-r3TrvdEI}tE_ zIarQ!T*=DzzX^IKm2u=jR81}F)_3N+KO3;e;hMCKj?X0tX{%Q1FWTcOGBnFl8-+Z- zDV0cg-7d(}oOGJ=Bj)KKxxwmjr3>Ci0lJ!fe{Be(cejjH@W_NaL^kuM= zx-Kq5tH(>r*9|29)5-a(9YpC3FWdDLL4oPN^dO=raU> z-*xhvbP46JLO$AhjGy5mCjRG%$bnv@Am1EskP!L;FHM ztfs=?d|t$~Qnu7;qyWm=9Yi91ziT~IBEb=e6F-2;g$GT>^a-=<(CSI{z>HTzYmE%K6V=9TiJ*D3; zvvEc-Y&h_*;t7I`Ub3*U^xep_AokzkupRkV?dQx6nIo{JH zpksGrZ)K08#jPleIqX?TTQsrHv7iNt#2vH>6gK{12Kr*Q98@rb%T zu?JiEt88?GY%NtWqdmgF+tTkbDm`N3DA%42tzC8T?h@+3-(&#S7i!WyTOBTG7~whDBx9KP|K$J*(4T z@rX^Abr1cG_M6&mlw_p|#{9D|b%#A7;oU-63FvP)JDCCv)y2i!Qi1c3NjzeEQ;1qd z{AWVodV7^7Vp%Vs_aiw!i|5_Zd+l3aTD;qiU$ne!y3B|Rq&W81W1nawv!GIgz=5h0 z&xwXPr$SIKZ2q~vOoAX#4`BH<;^W{}dAxZEQPcUKYKzG|!&Z!gAwQ9wB?Fbz^_AC( z68Rk}`xl6{JrMBs?|cqCh~S=w{x&27r{?WSD7OF*g&~K)fp#*MKS%b ze&{k%jbYIJ^7Ppa@oxzPpst{7-&S0OV>KU#)|QKeW4ig%4A)Gnk-3=MZq_{0xbLh` z4Z3r1G%g%QL0tgcUh8WXTPJg=UC1i~1Gg)ja3XPqzokyWPo>C1gIP@DR5{6!QwiMr zptGz@T*|lK)Y-9DOWcA5tS{LXO`kD$^fBm0@GQ5wiEC5qySMuTfu*r**78rC`#E|XsRpRu2kah!M z$B9>T_Ds$K==H};RyK9Egz_w)C+PmfI=i4E+|SR!hM{d!47Twur19(p`2dcoS!cTw z+H#$$iSPmmPtJsve+t21%2<9*@-n+m54C))aI{SSJ>{G$r9UWdXx~2~Ju{=I6+gNv zm=EJxROqv&NWvoBd~W?RC52a0~x((q*U^yJBd>PM`+2tj_EUF-S5U$xdY zR0g*43!P0ouX4;Q+#(cySzj7qR7Tr0hbA7i!l>4XN8$kl)X1j^FZb((B89v5`SR0n$zSq_X_d-A??gjJouySqSC2x8D!;;VyhHk*jGRyG>KaxPb2W4W37-)@}xKcyP z9aw8q3yW!zVzz6An)nfwquS-lzAi-c#Gz*TGy_Tv;7fUlN*z|OwoCXCVg~WeeFTQE zh%=`Gj0yYnjuUFMWJ?&5Mi10kgR(=VL$ zjQ(FoM@ccSw?^_C`h7O+@6N?}PXwU9j%iZnhtEB6$n>133m)3&I30_pI6M;abEpg{ z<4P#V|Jx(}W%;Ss-?#M-!{~*^VA+2^WJJTtn}EU(!6TBO=}}c$Y1>eoQ!j**U%wz6 z)9O!c_Ebm2w~dzcIe!loIW+^~tE>@87p(iaYz)F8OX1et42L5(_$Z#%JU-XINsANT!&ItQ|#TlPLx{b##@KR zAM5=;n$A0(%K!iW(s3NeIyg9vbq>egva^mo!m%>T-il*nMx3KK#4#h{*jr^p3)w4V z6UxeHh^SEdUGLBD_Wj!*bi4JsuGjT^J|6e`8aaob>rE}I0Isw0fH5l`SLHYT@Wni1 zkFsbHK{E#lhz=A;ElfH7lO|H$dqmqJ7Nb#WtZwfQ?8AzOAu+;gv1bPK^w+Ll)k^)$ z!5aDe&f9@1^KaPJjkso+$H&mc+CIh0t_G?Rbx z5%VnvM%D{nUei@C5uxY8s3HH!YodBf)u2rk!Y$0P5q}wS80dX0bW?U6xsMT7!p54( z9FQf<9u_v`&}W!c%!lYf-K?yjl$vRiWoshG6XjfStBOaQPVFU3~a{)22%cWEyG0NXtpZ@hLg?MIJlfI=#QSE8hBAsT53J)VIBC< z?_P=c$gMm(0aqnFYn~gM;qvPn!IR8!2imTaVYn?G@S}s>xF1B|a`z~%b_R9(PBkk5 z*l+2P2qd5-bW~D;S4>_=nyz+HQ;;rK`A0M1Hi?Myr&llSNRBv35bSEG9 z{P_7Dy!2{eA#B3Emx0eA}8gE9R|9+OeGa2T{c4gPI2$55&xB{+%3~VngK2jkYh^ zxMjZ*{Afw@f$v4LxP)@4W#AiAgUTtu`gUb~lV_#|`zmFNrxni3bM6ELZ0}^?p_GK0@U}YA+i|6K)$+ORgd19zzIh1)YZwCj0Kk+AIP?CSKN8W(4LUs+G z1&M!wfw-``>nLmTYC0~%)hMG5+;#-mzjD+)+fl1?0;mO%BNWL*?`Twc=i2+euZw>U z_^%%{W6Myg;1%xrUEumO18iyTlsrRj<_Y#EV23rAO6V9~^rdP)a8l)Tnfh{L234AC zm4Spm8hQSgcxB%R>O`ZReB4bw;xpFCWF=TJE|E?OH&M~`9|f7RcrZ=1Fg>$VW=Nk= zEf!z=qn0b8PlhDV*~5Gf8b?%=E=wQH=tChyZ3L9JSX=$3FG_fE_+XPg`0|iM{pAzp zQ8|dJFYp{_!U_`l+ct~U^nH)R>+d6v{<6&i`3IOdO)YW{*Jz2qhHeSHP-+7p1GJ2% zRa&_}CfUZfwr!$hc;TH|<#%x62Fwm@R$P<+FpT&tD9n5Fqt0$NK`4j-bB2Aemqx!GTEyH_j zS6Gm>KXB$wyc@L~&)Z_|xrcq)Z5hm57qEAJ{lctcN}%+d9GbNn*&|;wF&$d^xHjgE zloV5lEl%EwF>8q*yD_rzSgA+v(c`2V_{ZI6CPDQ)QB221jHk=n12%*^01dDdXPK7; zj1&sv^#y6(l|SB~jnbng6g}Mcr@Kt2n@I5u`=Qo>$`+#VEDJ*9vLOjWY$-Ux$Wae~ zi5gq~*7>PT?*6($UiqbWzV%oV0Q|$x%k<60*Ug~R3CRe~S1p(R#QX#r`?jSAJonva ze+cIZVs-1UhmVpb>fdh{#48zAe6cgF=ulaqF8MS0NON?b9$1EiO^BC#n$;A??Lrx{ z5Pessr_EMU?RaDo_)V+AFlfHZ_FWk7n|)%rH!6i2Q^fj8$Y z7?;j~$2MTQ6!5-04XyiJyzngOL#IpN%Y97_MsYuN>lPLd6S(B9SP~GO5&lwC`>mj4 z*y20aUmYy7NxI}`u%#lIN^0Rvf{?Vud(5|q^FSbDJ*o^zolpXs$yzO|GVJMUwV5WY z^ZiaE^!HbOwK)U?qPb`GcrR)3uJwokR-MMtSc^7kw2ijN&j(janzupCuckj`#>QMN zSBdXRmn8zT=3jYZoxnpcp8In41DH$SHN_#s%qJcL(0N5|;d>9SH>#zA_%h+7Ae>%W zOCk9ahuq>&Ow;HC=G7ZgJ9AF_Tx{X)mEl$p8C0R~Go6W*0xUQt`!;BNg} zlcBB(jyi>aGAn4LCU3;Zl!(LkeuKkjQD4@I9|MDqXTV^AywN`_K8|09ive1u<`hAj z<-5(X;-A5)dj%H=DV=UQhlYY+ODVlg|D;E^yi8=1=UIT;ahD0GEHZa9G4pWfn>mXb zF6yL8)tXEmz}SFF#s6ZUZOeE1OaoanKsuAm9!HX8zyo=flA!q578)HVCQCg}0ry*B znO`S}kUddidP+&z;+uV4N)2leX3n3%drB;A3)Qyl^g z=}lFhX8cW%yxA_uIvWxj8VKIy?Q>!|Hl!x|)m#YgG7XSa+08%4w~HFRY`92s zgu0kQT(0J`#JK~0^8FL?u1J0LUE`u7N^-7QM@Oy@&iNEPeD^J^m0i_P7Cs7|9kp_T zp7yxhUdu{t8}uh{^zANerC{S{2T)Co&i-F39Ui}A9`Ag|gF&)_*E+;ZwErUqbH{O=(|ZL$Nme6&h@`v+37(CmBUPD;4Ng# zRzT|sX@kP?wNK2Ecg0^DhEM>u#lTeTsQRD4=k~f^6<;nMg4k8fooOgmPZ7jWoMXQ+ z+enThxvVd#6(CkD3?8?njcRhDY5LK0)@p)4LiG>8`ZQsbr(uz1(%(sc55L6C>iA#C z%}CN({uM2uD#lwrX77JB;f~mWYQU5UytYCSHU-rd`kCuSP>u+3D)?Y537D+jSQ!k_ zp$2Ty{U{l<&9^wk`CnFr41g>H4sWGn_^j zhES*Ms9O7zsWC7Cw=004r26SBCCH)?iP;7wFjp{_Gbp7Uw?qYmc`O)CZ{C?Wzi0n* zd-CN3E!^)T`ctK*>yP!f9hY96g}6_yQK~OALz1ZetW^E=zHBAH}+Tk!k4#U z@kN`)o`SRh#;ulSQMAdBQ9v(|4FRl1e}2<+D^!_5*`RzZijwava!I6<7gcC^=U!mV z?;|}o6s?JE6b|*)*_`u`$sAYM6!YdAiM>>8T&2jU&Wsgb8^;tHI{ecNnjyfG_JUEA za-GSef$`%X!)#d$3^;hI*PqQX0xmmltWFSy=0IjF2N5>nKk3NTF9dS{%&fR>vY9v* zU3ou2(~ZuM9QYiR#Gp3@qRX%%$VN_I%saSTf6uupYY>Nfu!tkTUmN7%OTk#NXQ=@R7P1-m zAtXzUyN(H0ausB71XhVno`QvGfBBIS9_u!W!nw=j+|^vA|p(?L97Rj3vVcgTMrO3uWc9d2;-L(8D98_#uA7cUH$Xb zZ}=k=i;SmjNv<^(C2M@gfcf8nz!jwm?w1o72#Zt&69}`A3b=^+vbanQ@Vbt7V zbAz$I_jAZ=fA_8rdIlCMR?9Ua%s1Zpf1Gjbdi3RszK&FLKwF3euUB`Z35Dn;wV6V2 zSO@1x{!cx{wJ{%RTh*Ht{JH$eZZ+4x57ubwV8HpF z?ymgozB5fBo(!Thtd*^$mTT2akM8pjXOrGf!i0>%K5G9OeeMb?ZE3sxx>xsfiZ5OV zM zOR&)97~F42reUS1o`{s8lX4BO*tlfqO85}A>Gey6&7v|e4VX7-r}UVa_qOlta-c1P zX!SWTSV;q33zbNW?lXrN0paEF>N>Cx?V_xC2o7{?Rnf5;4ornZh5`k?V6_J*4*bzy z*$a9XHH8k?{qLuR)-XiM;;Qd{7peD^Gl;*o@wZ z9K==^q^THi#?^n*9oIaBlCDfN)i6FUJyjtR@<1bBKR#6L!>Wj?8u@aFRVe(W^AWdN z{xQ+j(EfGQ^xZW``n6WnpaGc)E>Tg%WD}fhr3Tx7nl1GD*F$2L{g6(AhG0kv_9yMs zp7v^??2Pm#2k>DgS;lI)PC-dzE%ejn>uLM3bJpB^E;6(-l|ePcv)@^B*->eY#htyB z;r`@W{C}popG>F0|8+)4$Ri>rBNS_N7vEsxSVZWsQq*gWRY?>=eP5tSrZ-3QZzUzy z&$*OB{<3q*b{pR6;UwTNj*U5XSHFs;2;P?0FTeO27hVLHH@~pKv~2(OBcI+m%eUay zzj7Z+C=E;Mc}I(JaRk9|L+X3ho}dFp(Q@xD;tqTzVnyHR>yJk23z}-4TU8U?ip+*E zP+{){9UZhi?GoDLS>*7z(fM41OMk4{zyoK;JLRY3q1)xMb)}5gDBO1s^q2mTgCB5M z%+_JO0Db~uUXm+E17HXS=iJ2?rLx^a9?eW75@3n)E4K!DN1y#&uXFj*EB;NhD)Y+V zP=N(ITf3Siw}<F9r`)DCbA3f)Xa(GUj5wy@Rfjo9ZA?e2Xk z1UM3ngHSaa7fEd}O`x2A-c8PzQr&UnxJW|~rSnD=$~Z+;S~}+sh#8t$vJ~QX6fRW8 zbcj|cA4Kcq?J+&Vnbwrgryp*7K!>Q+*waEww<+{QK6~2mZ3=9Mf-}+&nY>ds6@O&s zKh^fPM=wgoxGDEPW(o1U~nL_w7e)i#mnQOO;lb;XZ|Aep~)-uCxSvnc7*6h~aQzdygP zE64O9(|{LmHYgw+{mAZ*7<)9=pT9orhZ5E0$ZbG(-82^TZ`yUTa+)s76~H(2|F@*_ zW|*LA8CL_FDg5^-G1A2YW_G!^Tl@Jv9*H|L=K3! z!1THUE6czve9|*0qaC90kUSZV*6A0b(eDmKB^!6npv;b??sp6LL&98($G%v2q~#+u zM0>8;$&@tQ;jR{gxq5v0l#>sk0vR7G@&JqHhr+%N#`7Fx_)}Np zApv}E0gh1Y0tKPLum7koT=)i}DTwCb8TTg_5#hW|1S}f>O;**_dX{pDwiGFSH|~{V zUBEA09VlcluL>`O)0x6uwn;4Wa^lEJB};8gCRflLO!uYGf3oDGh9Sv(3W*6bhZ&P1 z&iAYsp&b4mlUWZU&O7@?SAU?JutZV|Fs1GH@&yeV+BbSWN^)-mquKBv6QS>{&UNo;NR1Z_dSIGMQ3{1;xAJ?S%yQ!}}gHqmPBx;eZfWOt$ zX}6nQ7hIN!z{m|vmP=lxV_n$v*o-_jQhM>(tyT+K{+BC(jpJruZi0>FosJ4X_9`%v zpbK({M8tGV1fGuJN>Po&^Ol75%Qt~G0-x?1MYcZ5zvI7&Kx82a>A8&(9s13N!JLcf zSe`;?KyFNfx_Tf8`yizUsADF>AB2$a7(iyq!TrcO4Ia-H6;mvrYr_Bmr@w*iZ`YA> zzWpz}?5?%#bDl9>Ww4@r0xASGp?hL0mb0j<78)`BuwN_=`9t(oWmiho92C}Rl6bhCsJ5>i%Ph(q z+A+nHRjQ~-RoDB{Fsz^dwjYP0QF!I5(inmL?&Q6Fn|BlJKL)J`9h~cMmyhLJ392uq zRow%=8$uMkNn&8pOX{&dLQT4&zC9Od9|+NjqURX1)cLdf82q&NXK=r0x;4PcyDxeNo7C{!fy zh`Qb7u<)W$5yMLISE%^d^mOUJB42gwzSwf^TJCNxY(5qD6*a6D*yESznC{X?EUDn3 z>VQG8MS`WN&X4&VB;uF_dAnXmhy~g3-Pu9ySx_@=POC#2G`d|RBCeTEb~H4dKpdEa zAdu*jt*BIvx0lXckv`OA3E(3b6_LU7nrIR#2EazErra{qJIbR<__nvF{Yvap>0imY z_qv6XMV>*FhPz1kwMiD)854#ax+1izfF{vqLA@yi3id2m-gBeLET3 z9$`bl=PUi$s!egugVHZ0^JqzVwiICG7bI1QB%W2uj@X&FuszS4OM)(N0^2ZDPGA4~ zS*vJvG_5&>+en@Th$|*2s8Fx8?S?YnJe?yH@@=B07W?MOUCGeWqnzKg!*-A6;GsJ;1Z;D%^y;z$;@IVI+v@1mlKa}D5c1|C+9sz!j$83Udw z7k*B&>jqm#+*>_w3lj!rxp1Ftiql+U@1^9(MZK}>PuHK_IP1eo@Vm|-F3Ag9Zzz#I zYu)4ChU2I1IxxCtjnbV>B>&TkzVVuUT;m)SHIo( zS+A6*==_3)J*uXRF)y&!>7?MXNsO(n#%sd_Y$ac=JNtYpw&V`>*Tx1b>tsbeb`H?y z?T}Nv2E{q|2NHoB9-veCEXCzjp)$|Rt|;o>%WJH-bAH6wJkuJAb)TdzIh)LaQ3e{p z{bsjPus|Pd)_Oi#ya-N2wDQRTxqN_eu?u7a8o-q<f`Hr0|x zT4%ltYz#Ls!08tW#*yh3{X_Ni*dVt>zhhOxpr{#Ug5-On-@BSKjUqvbZ;to$A(uQf zsBf#>EAOFUNx9`IR4oNbp0Z$bJDf~>k`f>ipjV?E0OdHLVgH$F0{3eI?xKm;4pmfdt26`Aqb0K_UW?6% zmfN8(`SZ0SyJ1_UIAG(x@}Z}5k|hz4E$25n*$AUm>1r!Cr}(f=g5HTSx`@4g6iPG; zBC51>K7js_Rpr-u3oE6(qIe|B6NYVwH2HO{nM8={=Go*E)B2tvgnpPm=*O8cA=&|S z=I&-C{Pvbozi4q{98jUsDfoI^<-=VmhO#Ze5x1l`e+Mejk<^gb3 z8kW4!Ihyf9uNJY=dTDr9y3K-a27?t1(U=6!*_lLi@7Qp z;1PYs%upuBb~?yuf2ZQFN4=EumfcGW_3_vN%C)UsR z?fOl_mC$Ar`Y?Cj`ttTAMUqF*>*D(_t;`*mYZO99a--`KvF|Kp-n`D8i`-vV3!*~m zGL8gYh!^~>xFPRZYTZML8?ssVrv0XJC6QcHaUO{|IuO2`iX;4Xe0%ml-0`>WtjML+ zp}5st^Q!%$OdZ^jjYr2Ei(KkX_N89eD)i3+xmU5j<-Z)h6stxv9;Gz^f%o5F-bZR5 zQ2iSd1+pWc35xfCw z*W`NK+Ym8pP~5B3U$<&I)EznQ&uz&5UV zHGam%aZ@?F-oMtp8uj`e<}ca!TP8D^T4;!VXhv{^4sJz5wshk#Q8Wtlpf-W+m63m5 z{qC38SNl0x46u)B9M62S`}TUi6AOLtHiL2fu4|MEL=5tq1!A1@M)p3nMd^uiOb=vS zRL|}@$vb$Z%;elIUTC|7JE-D#*lzIA>d9Q7{-+t+p96D>nf}gU&le14h>HV{9$wH9 zQqyr#s5>iXo&QU%OG0jwL!Mshj5pX!Z(G@G{PJ}74|)z8o|s1ARWm}7<#D@BKW6ds zy}H}X2VWs)Is0SeJ7MEtw1B;9FOY{Y!t!_Y_xQ1d@9n>u%dP;F(g^?(L9nW}O#WjV zfe4>+mD4~G;2rpY0hxeZcw#(YT(3gg4Y+


6)F7ua8RG$An{lkAQ%FxFm=baoNw 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
  • tKuIqi4)|;B8K~e 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

    R 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

  • ?f#hJu#RCtH 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

    YY9h9ZNVec2$jFj?ox)`c9}!9AV_38eaWC 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 yW-#CdV1I%p# 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

  • Kljt) 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⩔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

    gpm~g=^_K()cmH@5YDZJw4=^ z4l4<5YvSkgRVkCrC|FTUp?+EU`MguDMqAHR?d$0v{ifo1$5g^&KWC$Gw0P^>9psf0 z6q79bpGfNxZriMK%4Kmf*V|c))vVQ1P;BJ_MGB@$3=;eM!aoBS#>JkNU(PsWEAGTS z%BYz|LFD|aWLNkT98x{0j^pvum~R0$EVKLPbrDCCVSALo-dn&e;0xEc8!q7WNv3ze z|JV}nzh?Y^vR|&MZBeJ7dZ_(5v#XaPUeQOJ85GGtm%1n<9G=XiJxafDp(yb7yYItV zref=%MB5w=B)7J+$G**6^!%!VR!}^@cjk9DB&7ABr z6775-xjb&PrC~r6<>rq26Hp@X5nU2$JO6sL+8prSE6*U>hRpy8g+~;#`o_?=LDQhQ zp@GBZVA7k1JvgY($?#Vd1Kvs_YsIcTXo8DLjWrU&^t*qSvu-IfgpC2r2Th=GBM1UK zRZ$w*<(hnq?=YtB>^IlfVR_n>Ff^hb~7}(c_s=?QzOC=-br* z=bEMd#{)&oLl5Uu*~(43@0mbsRhu^`ud2)_J)X!7~@C*HAa0 zKZsy08usmt7FUG&BT$UjZJ1#l|03QGodr((+Z`O zBSnc=h!Gu8d>O#ahLyFvAUOK@i56_O?^KhPLlK#s^V%L%@hXrp7$tx3w75D6HS}@& zsz_ymQ!>Oxk_|V%E!wz zz7=zV;a#%(O3_fs3fYKa%Ne@Bs5XTqvVk6_9WyBtQ=$ZQcukIp>3Xky!)&Mp2rBuB zv1b4o@wKO$2QZl=WgZbVQM|lwg5l?{)p6kBu(c_I2+(z4Xc)h?RIB!0e7XoSeV2M? zwH{CdX+J_$jKd%OTB=Z~`S2^Xb23vBt-fdZXENspyokREvT@)n5Sks84?X3wKtot! zYmAcUeIrL*y_pj=KVzh9Y_nN_`+lwq9{=m%^EYyjzJRhemy#PP62IkVfcGIEZymGq zQ6u&!i2`je_(7ndDR}r3F5firbUHw()yA;Jq7*gnP1|N!DHc7nZWKSE^kCS;xZjt{ z|Mc;hTD|HfS-y?RUd56SpVi9r9IWM-J*6e%r60KglgBhJjUuMzDLs*+Vh~L z*p#A#IhLPxseA$`L&s0BpOW^zTQ%x#4)S%itpFV9q)S$EFz@u)E1H_%K1RiW5EiY^ z`npZ}bHHVoTC1hObHejSTvgj#6kp>XG(m^8h4Yuh`w5c;MK<20=+TQYyWANxi&^gc z%*Mz2(Z*!!Z*wXwqznh9*caq#JmV64abaO>kd2y6{bxoJj2T#F0eJU`*8WHr>8hh+ zzIJf$NKVcjEMXSIu|{~YI~4DxEN`j~l$y_(|D5}JhUFjdx8nbLz$1xy%erZp7~f_b z`nfvN+o4fKG^Dqisyw)td5CPVG<4D3&G*3f-xvI=g8#Sok?)364!UR86&1#+`uEXh z)dySKKs}zMct!qf9MT|~?+Xv}1}4v>?I+GYOG!>ezzxs@E_~n3+RF^52*MAkD*SRi zrfAsIK@yk3&lZW1!Ld29D2d=xKF;=$7ep!i<9Gzxtt{?TX_t4V=wZQ4&BIv)g>!C`YcQlBZNre@iKc%&2kZ9Tcp17(0L0eYiR)dBTf1v{z zX8AJ0MLI6XEt#rIj%~NRUk5CbJqKpv`X?I1ILt^96QXRmltMY}}h=Oan>AEe1TQtcU`a}MF@CfnHb zUrfc5+(nZJx(a?4PJCJD6|OF)LJo`8IV4WCeqcOcxl}&gBx^0Lm%Roctd`xUwp0T$ zn?i@TrMjg8cct`S&(Y^McW#`dt)#Viq!n}6M-tesy7oQPUpUPrIR_E)B%3fAf=bH8 zB@#0?gwwoTI46B(9L!3K){6UFjqUcCTp+9a+P)#9gNB6PSIJo6*$pVr+dRzylrkoZ zJs`Rg%E?qh%Nb-c-3rs?Ga9Kvp^8T3;1=~14(FYj=(p^tklM32A2cUhrQJP@SrKh} zu?H&w%PElG!FpNa6$;8(OPo!t0kelh2Q(hr>ep+nY3miKyjtz}Lj94VgjGPL+9ft) zK}nrE>C0FFs0Q_&iWTDyPvzf}uO|>3ZPHsq-U8UejC;#d@N-&*;N1~~ry<)tJCz#! zOo9Bd3!1Azf{ct2pA_m7(jY6YBCLnq>1#l?4T8G%9jC@K3I&?#2fqiQ(j1YwR01IO zeH|NEWEBW1kk#;ZUUMGpfBxPj>gwlj(U)&M-x?xF&tBkqTo#AOcY*6ke$a#|+gPK< zwV&-qLf!E+v>R~oeyZ;vz`yV|B8zG-L|oG9SFg;Dg1b+cY2HVh=WGr1EC_d8&{N$4 ztn*b8BeI6rye>P}cG7PF`q=W<%(|DDhf@8T&+0q){iQv1O_6C1RTEz<*D1Yld&2oK zi5pK!15(w5Y6G*`zqZ;hviZKTm8l}(9(QYuR{MmdzSVR2F1Har?iYbeJQ+jbZx%xr z;91(Mpaj}9;n-7C-$fnTANt4`tH4zg>q2In?X_ko*t4RQK_ArV_CsW@*P!t_E=`m6 zk5&&pD`_|*#yo}%|%QxemQ@QOT`7#q5_Njir0&x{0+ExG!}-wt?Gz8;4;RdPZcZoT`!O z@}qp5fxihuh1sk62bmV@K$%;|xM+}8VMR<;v&)?R{M5$75tT6 zqz|=i1Wh+V&^zUGt(Y47qTpe3keyZ8r1;~wAeP^LoeUzqQ)n&kxjZ|T3fxJ)G0GC^ zOlL!Ua4xlDDxYN-x+&4ht}Ky%NJlyf#_#>% zEN2LjAM0|UoqH#To^HzzGU_=ZOCXJ=?}whER#{mY1nM+t;L-jRzrY_Bml?PLc!y~- zJWUzijAOofBcX_0gM!Eo$|B2RTVFv;%G{?4br59qZI2#>YhV>i7pMXo#kcYwoC~KSRaXPjm$mM>NeNFNF_9VVev6B|;2xa8~tl z&BT;`7ojispD~#iJ;<8#Fh)Ntw=0H$sxzPjL@5tMtXHDv_(T157g(zAo_C?>938>x zrekTm;kz^5*XfAM@+XOr^EpN^vYA4M^I%Mc6w+1@*dG^z-MCWp`p|Z@g?1-h-t=3j zfi0uLhot+`tm{B@c=Zs7Do#xpu?gglqHwkXGm~wUD`S$?^ZHemm|dl?=qnhm17$i+ z#p$)%SKV{1v;v9g!gx2Lp$r1et|lA!H+&$X+6vJrgJx?_IRb744qjN9i3)v=CH@fsb*=Ak|UP(|)~R;-@H1 zUy!11E`@vVi~Kdd7pd<>I*E2Z=xi}8gO^~DwZyjj_?Y6_8Yg8!}FHbip&CgG< z7EU$&&uGZ6-4!k(g^H}xDw1vibw8VLL^H2@sHXqREB${l_=*gHL$35=qy>YSVV2`)3+jiHx(v8bkFx?$>=bDoH$U9=9* z0Hr5qdZ25F#w7g6T4SOOy|e_4qVutoGm?Nf&C80MzIOF8oFmQcVITWab|F{&VY~*~ z@kb!ko1!iyvR8;iulKK)N!Ug=tv~AUX!4|w$1s-d3t_>#L9y8NN`#p>iBCGRMs-% z_a;SLz~>h0MaCJQyfQ`6jXslT$Qw^=?OQ-KyX}_!^p{Rsy!ix4dux3SOB9IMfRPv~ zXT)3|+8xW^x~$TOX{>LiXDi7yGV$vgmvK>Um?2 z`@V2``%I~WXnCT@LmIqjm2~{+Mm-9r5yN z(I4(5HdjG(8s>Fyn0i&_79Rr_XG2$^4I!1(3}8w^JEo)|B(fU$<1`z)l(4u=xCjk% zKgBozbIo9{88lFaO8OD*j3_A2@<5pZtqgU>@n=XRVqL-Y^M(*hZhcmDg>qIp_7P{D zWo+*wiP0D1Grx!ANKT4ca zJNFWR*yoxUocb+@m8%tE96}FWM~q+10zdq$Rx@2Fr4QwMAw8=YTQjRw*ZC|~l@lrx zVKq_ilsZQd+ZE;R4b&jbO+4ydG_+r7Zglu?olxl$X)EU<7r%evZ<&L-L>beZHAxRhUa_u8f8Bdx~3RvX}i8K;mqX)G^6GI-E;&d23EI)8_@V)=q?I!6}6UtX{ z&}AS_3v8#U$Q!a%kdvPg8B3j1?*OTs9@NOo$`=6oZ3lTgt^fs%;Lq#wi=rTGBlw20VYpDG>l9&ih`tZCJ7RAw`85d!Wb1g>ss&2 z7YclvQ7jF1n@o;%W)~yFD9Rls_S+Zr)GX^UIbtQGsd-s*$A8+^)$PL(Tdj^$w>5E{3>kYeu=d{`9b@NSv=))=_V+!|PYz$Z}yb@MT|xDeSetUa__h7)Rd@dhuyZe#oI#jzC< zCVGSpnG7MIV6xq4v(I0n_(cwT+{~3Z{R1mM`IDQFc9rR%q3f%I=rL}lUTsrVD?#xO zk;5|{dPnRgSZ{lO>U58d1Kkt*cjA_9vVvtyTJN*jKUi}{ABK$J-^2EmPVQJQLQF~24e?|uK{C`iJJQHSM>)9|V-4B$l|y}p zeP3c{9Y+6gA?*^rs?+G@5T{T$?yXn8s@VO!8fhIqr->Z<{c0s}G@&e-qd&rT+@fZ! ztiG5(s^|#qTt0{>D#78yHdz2*)Wkdpg`NFV zd&nq{a!M}o`hx+!`dF1~d~DVqs(tS8nq)mO}1+xZ~eLY1U%KMQP-jcs%bFp=J^X}z!SX?>_svxci3zE0^L z$rrK3MZjKZz0rVx(Qsm#EnuqaADN%djx@!z!7Xa~`Pe3zDy~?xC-S;;4h=hsO7s;3 zbvA5ico)E&A)V>Oy<%y4QLGOSKoatefP3NPUDd+^tDj=bMB}h?jB`zvb^X4WcX4 z+-a`Z^`E$LGLK}=`9_$}fBFRwknEPNmcIqSVWmciUBYGWrW*=Vs&=N=+Fwk&Q&SI% z4Ac2!9is#{x5!M5B$@}*p;)JUMLb0{EoEH!JS@L*yEb0!gAZ{lG~Uf=L>40(FqS65nV!r|{f_c( z+|*?lY8<)=YI3G89>12Q1fH&I_BbPyiq7_O!?3FozhQK)63&tm2qxAHKCRA%^iD~% zIn7q<8O>{z@Uw(C6C@2$qTs2ZL=7W_Nw{n%N|h+uriB@w1ZNNtqvxrvZ>JKR`)aAG z*&Q(#Qq9UdVli%c@5AaF)UpSr3``I=d$h5dIoclqw}9yR*aHXsc3i84ulB$}Q} ztPQO(ez&${LbK{}3@hr{*JsPUL$*DF7Q1rBuL*2~@lfzsE1o!!j;d@53Sv~Yunma( zUdTkYFHXJvOTfr=AxGdZX}Ut~5S3&|P~pQuiCyn%H><~ zM}VU<(ow(Hh9ThO&!y;QpmzSOxxa`9(N^}LoTvL91rgbL?bA$?dm0}#-eD?av}~l0 z@tdW3=c2n=zdLoF_{UTWaDk9-hMy(cLGS~intOXOd)0!=J;9T6Fui;Tf~ogGU{pfv zNdSS`+EMy!X0fwdXEC@-%&EwmMI|iC!|vU6hc9~ZcS47=JDtp1sd)Q<|H|C_-^zoB zszpoU==O0bU{FzR;&zVt`zQiWBCo+=@2#ty(%DWVf@Ur4R1@jYLF~`K3lGlGu?Tfc`=;|t> zGNX6gucIN4iI!W)9zvJ?=CUc8pP&2z1d`){fxTcue=;3WAcvUDd?-pX8H&T6) zhsl7ZuG`EH4BG;*3&*dhl9Tf@M%n0UH0!f^p7%`n9IvO8r(P*E=tnNk@ENI{s+2bpUFk-oipEIy!4Uc_g ztL3yCG4>|bQZ+hUasAN40b3PL@y*Ax9y?Ac*TZw;Kq#e|FdgZxUOtO5v&jl2Z} z%Gokm@7{X|y6q<62>x_N6yKcLqS<+n^?$4D{(qm@v|^xzt_?x`t!Iab4E*F1XtGxK zhYZPNHtl!$A3(n8-~nBS?{5)bIJ;cM7-&0GG^6<#9w*our<$_6aK?$P*HwV5w94-5*t1zaFy znO!0$^23jiCJKRRmo+ac?(B|zSj4qiIabZ1o&FkOTb=K)){}9{G7raocvAU3-?`)Z z7u5d!e&LO9>7U$70peo;r_cQKeVzavGigGf{44a&g5e}O(Y8hOtG!>fKQ=Enz4}|` zCvJqL=gTemkQ1{;z>(_xY4r=6U*ciSNDmIFzai7T_Y=1OYTXl-g(BSmTANmHJSk2| zoT%E-@Xnxr!X!pSTUNf@WK&Ii`E`F#_=%~)T5jv1;3e;L+3&xhpucreZVd3u#oA%H zt~#gvKd-L4w_x4=TfpSwKUFR^F`q49Mw0B}!0?*+3YRB|;m(T>|9A^{UKpUM6Eu1P z(KL(br+vcInSb+o#||RaH!Gt;VDT==mhbr#&075pn|$6|^43ii`bC!~~pG=;AsZ$^@2FWO>9!ozCY4h{gwaRmHF zWBi^FdcDjVs&0;g56+!dNS?H$DBJ?#Ocu7EPd6GR6XZAf73D{q>0B6ABfd>Ivmn=A z_{kFKYaSZg=Zx*gRue0>AUpJjHCW9kG9Eh&>b=u2e6+ZqrnX9Ntp9!HyVUS>pJo!B zS9lh1pIqHP*$wh3Vkztj&HrO_x$9y|A_>?eVlJnyY~|&eGFr|ZlV9tQFHgp=^VHX9 zvsnJx(%V1Sd|141;1=NSaWzo;6A2*jSWm=|TZxux|4N96Rlan3=jAR>G(GI?)z_>e zmF_tD#8FSTultzu5_s?4VhZoVY|Ee|TfIPdpogr)?l#-S>zhw4auQ7zChT-0cNIRu z`IkJ*OywitJyuPBAwji8g=^-QWWR~t1CDaU=5#M|J60z}iDvN6{z9Ifp2YYR`O7S3 z@VuaP>-I+60{G996T4-^=u`iOXcsCX1DNqY}v(@=F!e)@4u11+xPtG6H)V~YX3wZRTcAen#ljK}%kYfL*evP!nZ_viJm^Gdy6 z3TGPc6mBr9Tcpfw^KO_XKUQhT6w{18<9@@ju1-GJHeWFF^T1b92H7_ecgJm{(r0h8=3VUPl{f90oCwfVZ1JpyRVRGM@iv7WsFyYYkLj;$#L)!yqAH zNA4w0LaI6R!z;xeN4OKuu-BZ;*?t||hx2PAn?%Gu5k+bT#2n^+|CM7k*~wcW)kFi; z%}`Rd?{$L-SL4@K6AcY_<3Bi5s<^6}I6HM8SmHTAqzV|o0a(?1|4z_d-(}a9^5|Lsh=d2DQaaWUJzd*Ty5v|Bw}&G;@N>? zJ}5^{BzVQ%;sPJphz)^2jPC>KqbNgqS2UB`5BXOFBX-qXw$vLUGQ`o-kuC8tBQgGm zslR{Dm3JL4gp|se<&1CVxQ~ggbctMfj=T=#Gi&DN0o8jGoQE54{VE-;5X zM9>`0@zm)%RXLkGiU$A~5?=gUx&DLSWo15tYODpq|h%G1p} zM)sTmr+XBwzk|Hx7egm=OGI*n-Z{MPF#Xvv+EI85=)Alq61ZyRt#1!CK3v|3Q@aBH zVn09Kyy)K`zOx|W3*XH>TdbDS$-4!Z{}?ZsEf{o_H+TcULe=2?>zE|tDRIwScyniJ z#h4_Qk?}mzDc>RyHO-Cn)X&kma{^hCdhMjFFQ3{4Y4l?s)^a8?Q^S%a`r#m}diy$L zbxDNksJN|m9?Oc6VtrX&K@>6LxGQHL+H3$9S2o9ojcLKz2DoUx1YEQq_%Mg1G;aGn zkV+|D?=wAo9O78aX1h`4d=Y0DirbshjVm(bI8b)s`WXc+#x@~J+qzIQFWXSpFTm$8(5BUS7C#Cv4Pw5IoEHPyz^sq+5+S}4lD=0zjaZXrB+wu}voq2_F%DOKou9Pcy)gaNEoow4V zHo84_OfQHaciusa#p#OP(sC&`@KSNC`McP|#(OE1YusP7%%5Et_7I2=k8VU}bv2ZF zcFoyz2rgqjc!!KZOPggLjfX!Z4q;n@l{vbECxuL}lJI$XGPUhnYK`j18_IDi%SclP zMXy9KMpp_j!}pB11X0{R6_3v!s^wkQ^HH)TA*_fKzu{{voDWW0t~4rp5LNih6yxl} zOWi2Z^}84Ydbr8dE-@v@8_|OEVApd&e4U$4+~f- zuWgNTq~a_EPPH*b=_C3BmK`Tg72d>Ck9w|>p3$qJop zF`-p0{0)&`p5r&_VK*m_nnTEa0xNP^AV6`%9ug5Q0(Njn3=xhk&pBc&t<}+A;rZ+T z{%l(yqOjiA=_H`l{`Q0YWekxR-JRRz`x^NH1@IP--x8p|@~U2CRjGD7W;`3Q&T1}1 zjc)OB;HdA+YxeuiDz%6G#~(<1^Qtf+Enj`Vs%ycwtG#UohjHeT_J~LTj=Ac8Fr@!O z(tVF(B_U(?0GTw_cEfXslV!q5eg~0VOIiq14Be2WF;>=x7S05-_9y{@V89njq}!+kn3k$ff<%A;k!1g#I`}1354- z?8DzOo2!NpC!ACdYuW8zFuBRc7Zj8X3+DL*05+h%{=v%P$Fe7BsNA)FEkQNe zYIfo)hzW%=g#(|LyEJW=(xj`tQWyj*YpwAXTGU^3bKsxcOm9ihE&ao74=w>d{73?L?N@7N)a zp9mv4HF;I1lWQD9kTve$Ux})YhM{kP9B1r50F)YU{_F)U$sMNKy~H5d9M%B2{%HTHv&mRW z8+>}$CXTnYP94Lg6@*(8Z-FboX{&w=VwAJA^t<;|0`5#$`Jn-Wsp96#|3`=ua;iKk z3_d>SwZ>X-{&126eMNaen#21Rw`Y=Lcql{0^<&W>Xdtl%1BcytE25$(-0_qmKbPD3 z=@Jsg!p}QqynKVKNXvijTg=o7^sp-xFiv`C+9_`tW_PjH!*Ke8P$Z^Yzy{DxPl=oiI*`m z8VpUO8w8MM5M_Mip$8wBOOk;>ohWYpJGg^sxS*2d^wpXs&%o=U*4hO8DVl6&!T$OF z{Ea!_{5j2vnomjig+VJHr%~@_waB|q?qR^kh_=LMFcDs@Z;!3VXk-|NOnnahI;mr; zX$SK{%TqxV&WvMZMQQP7$;tGV%9fj9j#lVN)tdS!I%E{-RV+nxE^cQ6sEWsdB6T&o z2F|T}ba0*KnLM>&p?qe#{DV&L-j=$)48&#ruzt1kueOq$YBZkN=qo>{uwu3cmD|mwD8LUIRG;ON z`kD@@Fq6d;R_Lf5KxY)Cb5jJIe#H@X@afE|2O279K50#%K$Q87WVKeu;lUUi4MeLX z+w+_sR7ixesx$Vtvf7zzRw~~sSlDK43=yJ@a?j%`>tj#$GGusf&uh;zFVvH&hDWW2 zg|=Zll2ekVhv^O_ZF`s}ZD={~RC>in7a7f}=dVvk3>u2Z$5gzwOSV6w-0+A2Jx~#@ zkhFmqBv3pxo*_(Gx-j76jhrZPd0m3m`siZNQPLST=-MMd+%t|?r`$&l8tqHRZnWrh z!+0JeCdOaCaxJGuTkxu!YHoht{OL(NQO^<4q8!(6f2v031qG{4#GKZyx{J0u2k}L& z3<>FZtLt|Oznc68En8DCb+Hi4a6|TnJ3HLJlSA>D#JHSUvUjwxaeF<<35Knd+Ul8(w1Np9vC1;cOu=o)TLL{p zWCUugred>0<(w18iL^=ls%L86ASr_m_70SNnFMLCvWI$%h4nl9F+Cu^^Uiw51|h2v z>tZ7LpsqSW0Tvk^LoEAdZPSkwjPae_hF6+f(9gJlI?K^C3!XhlIsK8Gd1y_E8T%t3 zWX{Q%tWSXA;MJxe0dl6bKD#uzW9z1WDY8({flC2i7`E3dQ0I$o=!rHwqr;7&d<1pXAH@?1n}LgOlaEagRKzI zwVa$uhtRy|hFi6Wt3+q&mR6kd@PuiX*ecZ7m^epYJX+{nZf)<^F~ zyjc>tF50=%0;7e7o(WfvOqYJ7!G|Dc^(?Z;dS!?WK#V3tL_`F-fypmQ<(%!NgA=!= zO5qB+O(9=82Ja$D?5a)XQ}QIK2D~>HPh`*To~5|V7gcWo1yuU?Rgc?YZkgpD`%49s z{t0>F;_>ymKEhY*CePj)Cx=oqnaf16_$r8P@9}m|hj`!~Zm%q}++o(o+P&XWD zHT_Ngdd7@+(jR{|*0S|^GQi6;TU348WqVNLU&$Z;i6NCf*5>EvO$F2c9YHGV2~I3I zWld4vg^!%rRz$$Cnedf8P!0y6o?U~=E;;s-+fcMvn)1 z&BhDzBWc1{f(5>Y5$oG4G${FfkPK_)`G&0IA8Fn|P+yb;{S9hf^Txl=g z{(dz(@Ud9V#Mve{drr49&#H;*Ss$4E6RG!8_z0{{l>a;e`Q-Z+oQsqY+Nv&1< zjPHMv*8CDcS@4g@d@QTYh`sx_fKR1IPeIG{IZ|~`Zpc~&UdDy@e)Zd}Jl78w+a)~- z0Dz{y{)6iz?W@^{K0eYZPTsCxcy`u5_Z>i8$obIj1nv5adWYhC8e<#-2E`auFgnIbgn(JN5>Ig`gp*@jF8 zaf*aSu!+W7fa39bn!3xb)JHB3D9h>UghXhCYARkdJRj){j)BS=ZQY$7#YcBojG*Zf z^-2*F{thC363Bcn&j{gFg!klkjfED^z=U2yOJOAsjjSYV6QZLpz&U%Q+ldg)l&>CU zD;e9qgzt-D3(EP(#+@%qyao}5Scx#sE=v_Ma{N>+yn*%NE~0=v(=mm5)NTW^WRYkS zzNT(4wxO{yty$pg!pXZq3!;jO4tkZdU|LH$#BZxtm^D(N?iPTw?q=Opo(SSariX#D z(1B|aNvsL7Xr`{N2)DdBBcz!Hu3bcsg;UXBr9_15PYE<-NZ6stBvd~?(24?1!1=YT zlS52&gS%tSkF!hbgT11lg@O`iSzuFx*50;pS4vd58^O1~IssO|(9Hz1|M8v1qSBt@ z@9%27U2r@Oc}}UjLw*Z*XfnrsZn82uMJMnQa6hE>>4PWYQ^n86o_*Ur(sZ5;N;o?( zO8x}9VR~x0c?%#`)(k%!D;vilHR{ckt@thNsnC{Wqkg5U`jKy2I=ef^T(4a}@5-ZjJKR-Lj1^M%J^ii{}`g}98i^NGP~dF7d* zGUxU!$3(~UYPyff{6yDg4H7tO62+jQ?Y%lOR)rT4$(?14)V?DboAxt>-w{85YWVe_ zH>Z0HX0>}aAXPddKvgHvtr|aBm7;HA_M6C>a_b1n0=1ko6-lRbJO2o~? zcmmyfnf5Vm^9?n=Hls6^-|~Ye2n>I8oqDl-N~jj51_(p|@wf<6Imfzez(1F^7naBf zWAZM(G47ARtZxD0s=r+61Z*fd<}wmllTRT{Xwj|YjU+$gb+X9vSlWWEgal->ca4~+ zZ$^V`Ha-cZZO+|Mb-7eh5j~xL!lIU1XI4T@h$-VUAQX|G4Q0I zP#|u1ij#bp#Ngc*@@McJ*L%Zlg~mT_0W@qaB5yeEcIht49h<+ufI|!@93WCJu_bR# z}fa!f;TUEOc(nPrq9X_s@3c@*18iw z&G$iqf%1aTJppnV0`V(foP)Fume)Rst}Z?42Ko!#XkfL|^zJvo&v)yRistFPi$H1t zE?I<$@FsDZb**nZ|DKWfnPI9c)vS*(KbsF9nGP$hKB=xAYd3qzI3gftE*|}5HYCWK zphFb3tf81F$*dFt;ILDY8e^qcmxanK$V}`8##+o$4|ojmySOGO5wNHE23DZ-fgqL{ zZ;r8r1B&D6V1p;bA=T;dPn23vutc;Glfu!LcAhcn2nLSpm7FMr`0+^{h;nW!e}@6& zK=k6*i)e&hDl_F0e`4$mIf?OgMT1)Kn!ay@uBnG&VGU@*rkEg%Piug$Scbk z#syDy_wGrhxs=7gF!ud>-gie!qsTTU-$0>c9dgD*e}alg?$+lFdg(H)2}$sutU*uUGEEi?AfTe{0nLyd<)QabBM$&sL|mI-?@OfPjn%hga+;YjV#whzb6>@gAU9KI{;X@ zJTCzNTCWwoMV7`k5A3BwWX})2G%}9_0$yE1iwF7eybLr`-nw_887LoOX|u1`U(|&6 zY)GP4SIs%wjP0Xyl<+&N8p+m;EFPZ?hh!m;>o>5$uY@$A_V#k`Js!$Up&0DE^>R0V zJa(Vi>iLhVGXsaV%0P0J;-XruB?TEu$3z3?Bq8FJaE>I2FqN-$Q2AzP%Ih^!-}g(; zJ16DimL_Ap>XM}?2tI=+++(Woe)Ra(HlKyy~CQ^x_!~O zRIH%%4pIWrCG@TcfrK8KG*Jj8kkCOo7C?GQLT}PL7MW}o0&Q1JLed`@f(howu07r38{!zJXAd+31a59Hn6O| zj~vEUR%+H?RisJMCK6O2Y!F&hUClca7dD-r?G2sk_XNhyq%)|jI7Kq!h%CHClgukR z%EDPHh4K0WJW2Y@WMMI#7x^R+oO#k2xHTJ&Eyw zf#EsmO*l23@tXLcGuw{4*D!80IsTEc*0vcw6@PIeZrl*kQ+cn;0^+e1A%u=oPGp0@ z?3hI%1pKrkUAszmVe}*}Ys%8F8nc$ufKW3kyqN|c9#bqsjpbM7S5yyhaq0DP^pDsF z4K_~ny@mo+#`&Da`PABRd}g?jI+VB*v97JF>oB{N!*PtrnK`oYb9*($?qSW=Yc(4NjDw|rMPH%R|CVz7dx z0zbhUis2ATv=mJkWAaJ*IzCAu`oXj|bW(&?bh`rc6nr8+k|gd=o6cYTsSNV1S#LJ% zJ%%K~=tWK7ou|`CHJYnIuV^YV68ba>9ipra(#O!<@I{>rM}8oDjWm%EpY@={T3tVn zGO;u-kvw(f`^tJ-=9rPr^X`ZdA%hEXV$;G^o z?0j*zEB?hyn&bIx3~#u8{EAbV>P$_E(+0-SY2^#qa8=LHny?yM0wh8Bt?e7Ri8S@y zqN`{ZKIy?68=!B!O=WmMMa@1x4X*rk&0*-v3`9m0_NhD;jSQCAM0=6Cyl(vT$Mhpm zPX%tiYLV4C7Zf_^A&ur3-SPL%JT|l1z_PJ5zG&*V|IyivoBqj`NATw45$tfRBYys> zM#nbyHipEdOG0Hsh!F=&@(D}z;x0-KJ^#tI?HQU#JR{z(Zn-Mt|rG%ZN zoS<1LRp8$;LutUghsHu+e@4^bZWMs%Bl^!G2B+p{uYU(D*q*oDat}iMy*phhvu3VG zUQ%U7oGJRe0Ax!T*zmh%d%k3Q)OLr?S4d&m;0KBs-B-K1=TXJ>CEuU-j7$AtFnd-4 z^I>*fh)GD@C&Y8~-s^D&DKwKonuW*&ei@M?n@GiT2GS|Cv|HfBEpv|~Lt&|$61nd8 zExn1X26%$7dY7piM-PikS=;vL!`*ntb9z7*RbPxghtm?*4={k1wl}Ljw5r?4E`J1JJMlW->j5YBO>L=-{JaRa$c?r9b_n|jkg1(WMTSIwp!tCLiU`FP~< zP$=399dsHN=5xFHd9jES)q6t&>k8eTK8c{5PEf0cY#?^YCu)gU5ST1|U~9t(`)KfTtHNQ|DKPCG`_Ags<^<-4^}U7vr(Ep;eLD zM0`T=LfzE0S8@eap|y6H)yo#tQT9cgx7ht_UJ|1W%&K|%SQ`?3{YYKWiVCM~_UzdH zcKa6p#Ky_==O-`T}s|Uz5(p8?SXl0#_v{@S6+~MYB zQxindtWdvtKM*nZG!Lu^3S5sKSeuY=KuYQku5n7~a`jCT?=&o`7+9|u z(?uIsR)0p&RFvEGC2I)BO&i%2lR^l#+G%9p*idn(Ij>sziD=OtZ+$(Vw@L4hjgqui z4>~^xQCE{rn#n_jYxZdMAC+s|HjyWr3Wn^cNxhx|Gn;7>_k`@*6Hwb7Gbn|uVh+OI zwD&_-Z?0q4LtpT*$#}7*%Mo3Wj#F!g#tEx>~vgoMVN94!%#OzRZYVpd{ zZa#u{Na`!#@z3!%)~5I0j7kLAq{okb!+(^$2=HE$fZc3zD@*u z@@L5cRuQn_*9gCe5hHUiTCFxJQcQ>C5%4Zly1#wGmwH$o zP5ur*>M#B+BN?dA#=rdZLw~#b3}PiZn+e`$?qLLzyG-eCea#^jd`9 zG25~YAZNqcYEk+vkxW8p3-#F5^BMPT;TZ9)kcmU6^6AaKLslWu87pjT?234k2^O4W z3;6LcLam$o8#i3OtQc`O|2rpZoqugvl6*La0=$?I&)U@mBL~h6jQK(hs8A_qcJGnj z)gV38Gn5xlwPm600G0mc@N*GwDEtc1=l5d%?r^d8!+z;OYFF zyj7ub|C3 zRqp5Jf49k~($`V)_IChtCr5jklb-U~?xFu*o3|YxgiVCM(jHF-VjtSExf^m!rIZK9JWsOF?IqqeE77_C?TO zIERS^j;1JO#Vh^p`h{$5DYrXLYKt}R?a@oA!CHZ2$0qB^>99z*WLfl4cKayYtZdnf zaMYIT2EUgrO7i{|(?PZmGs5_QRE57|V6}NAk~y>>VNyGP_O6Ddh%CC7U z?&}vd`XbsUeWaz`IsSO(g#sJ~c{HOPZ+`?U>$<(!j`mjw%Bi)JV?C$DT4!5dTZleR zgauYuCb`vnv~5)WM881E3Rta!K%m62-%(^Rhyi<0(BY%$uXHS|z(bF8LtKy3{4*gs z)h+6ZE|Yva%B|tAcsJY{Ia9*|S?&8{^BZe7+Q&{tS5j{pAp7xg?CZUBs-{|Rva-| z;cV4nLjN-j6948b#cAEEAPF0oS<%?nwWiJ$d{ReQ{X3wuO;lUEiF7Y=Avi5ZGb~~( zVAvhHtz|q?V#cY{=j@d&qnOAMpN#c$9?%iyUQGXD5eZYi1m+ znd)5vviF6#mf{+`xZb)Z@KM}(7P2AAq4czCerZwxPOv_pJJA;+yw&^_wvXyR@s4_X z&xnnlQxoE@kJxG~q5N;x=gltL#HXI#tKzC<+9}kBuc;p5{bq9KXXSRxzLD{X9V@gq z2Y$FrxoU7vPb3X;WN+|;wJ94O>5ZXzQlkv9_7hZo;9C2ij?ljnTQ@i_g^r+>>4`Yk&Rxj$MhhfS@Hy8u_8LH;brJNwA- zh7wDemLmr&tap)3-tBjQ;N=rRN+M=-tdxw>gV;Ruod7(<4sJ1;aW=myX!E(Eqzswz zMkE(+(d=1*K3f?#?U1Y{5)McP-wq|!QFPgiUprD22?v_hzshN-RH=|0+2TRbBa$SK zNACB2>qZDv#NE0lnxSpSj#Vl{X8?hUc(4Lo>Vc?^^Hq;G3zL-B4+ZQa9($HQM2(lw zsIbplVu~@g+JPzID#B#ioz0{Ux#oO9dhyJ_BJ(@l>mXYh`GLLtHagd28>*+))4K&^ zOO|*n-Uv}CUWV*1Gb(T-FndJ$M!USeeNSXL^p3>nP0#3;rFGRL<2l9~I_m+5D|g2z zDiWD&Bz1|w%3mk1L1B^pp;?1j7C&EM6d0}AGhQa}f3%V24&0nBNTaLr79Bxiw=EA! zoVbruw4!Mf#mO)7?_dEsAP-UVBSUi`m2wmL0jHY5LCXPPWj2PZyf|u56v@pqJZYV@ zIzGuKm2JYUcNV=ZC5h_ZO9J$-+L%`998hxa-P0VofP z)~h56Eg-V4?Q?Q|VNl~bl~V~WGwWRR4YSZt)Q8hM-&@# z&TkCi5{ebY%IcH+N|Ltf)2g5+EX`%k#(1)+I{`OU;Qp}}j2vd`07@p}?#scOjm6cn znx4fzR2AV|1=YCM%bX*htl4W~7t$>iYiW^X8xWtR2n*w=MT^=4lyXAPJ^hU7FH#b^ zKB0)`v0Fy57K5PA++<-%AVLsRrq;IqLBc`kIY1|2kP{l#%97u|B|SD%WYA1U9 zJt7QorVc@bCn`2dAf;|o{Fnx~-K==P)kqPN7}BWKzjs?XYS`33+k;dsvhrhus5IA&HHVkAZWBFGBN_ndsgnz_ zrLT6w!3rgm(XnT=2j{C-)4v^E-^GUx@SZ;TOM03=Q>rSRY<6iCxqic`@zI`R=t-*F zhpW|pY5Z@k`x}>spQ1;xq0f|29u-3${lF_6JbjLMI{gvyKbMps%8BraCE+>Qw7i> zbtwzV3YzOj%Pq0#Ez8ztZG4HGSW9_!5csBRmuaA+8@$UsLm=lA`dn$wAg!(Gc!(7$zeBB`-y+Ohfv|OXc|1hJZFWyb`@p95F zn59A05)`3uP;IQec}6#iJz8mj$}*9%f5+rLmorawHOG@|NV+Z^O04P0JXns8w9$Xa`)Fl_I_{J*QN_%?V-G@PEZS1{yRs3%f z;xY_hNLC^=zd?pEy)9j!O1;EIOyiQdYg2`BM80_Z%IL&XoIidv-)N9PwN^D9 zG2(eOb6ZHCil3BR81dvQ_~vVN9qy(vbOwT*!_b-`_A&Q@p!5ON&E%=n~- zw01J@lV~XnM?WbfP{DFI$Su)p^dawO4B0*m`UaxW6Nj7Y3e7=ts#bbK1|{= zop)ct{)(8S7f@2$!3u)x8ajx#cF1fh1FeN%*FCsj~B9$dL*e1s&ImwFq$P;g6 zt>rjYcye&NPJ}&$CcH6_Riy+%Oqr>rTZ7z3ZG~WA! zRP$9V)v7WMVROlz4YoR0;5N})0YY8LtX)oyvU;(T74>BDiBE6IzFR#G!e)P~wa1a# zfx+eiH_~@&ws3Z{wOjG=L0d7sZv4i{85FV~`pjCTyVk%4d~x3_YNkT-A!0gkzo-|0 z8^}sKKBJr&X9XoQ&-lfT$ACMLj{yM6t(io@?Q+e05V3eeLasq(mE$noVYKwMIGs%h zkH=fk(<~@RE6&sAM?&1=kN%-*m!yLB3wd(6k3ZwZy`F`MIJ(6rXIRRN#EGudSG4P> zJ7D$qaO0P%Fa@ij*uJ1q(KYHG zT+!THD&6<YGpFT9;;ve*n(23_707p0i?p~Os>b$J z3x6vMXSZQbR0%tL^bao^1y`|eK4~q(C!v(?6(WDjE8hHPJ$`pZQIv;%1k0X?f7Cw| z`zIfGiMfwr{e036+kO8MJ3fE*Yef0!ANJmW_{5gJA0Ynz$81oCqYVHeI>Y{3!uzu)l_ z5vh>Kro>iejmGct8hEs_^7VCdX{ELawG=gF5H{GwGT%g`X&4UZ2b^)4=_N8rkyYpH zM&D|`HFube{FC4RuUr4!{mWkk|B3L+q5L;Vc0>Cg!J&S{PY75uS%K{%xx44sFPpst znqCKRO`*s>1{}4A?&x`^?ULh!PX$E)HmK7KynkLi%F^gV_rrORth>)2;<&fmIU{zI9BgV({>{TDuV_!Idw!i8MQ+_9|N$ zhiB!rl8_QIUPCjqwA2zLh=dP8eHWWpI2ew0gswlB1~5M~WRN!|_$~5+@Pxfx?-I+w zzjq_6WYS^N;DYsedq{&J!C&<6vQrba&x%|iy=cgp9APP?Yf=8Q1g*Pxs-oGj993~E zO0ky95=$D_VGK43n@iDD!l8dAkE55g!lI@qQt-B*Ex88MHGv?5caB5eG`Y&p!qhqP zL#*K7xrQ}4G$(yl?mbgXHEo~0&hw$NX3U+9>4SGuRQh`_eWZM&svoO+(!SpKGR<5W zu;z7^+1&o0#>j$kB&N|WzRi)zhtx~EAGM&U49-cBp5*8rDWp^3pjmX zheaHsroqO|=laY9_+sJL|Va`MH7K-t)jlNN8l)#6G` zeaYdSM}D2q(t&5V0Ow++{Tt^l1?MZTajyZ_Zjg_~8|Y=iv~OMUFAideU11Qj`fiA|Iy_LWXKu zF}0~}*wnR;eT%18bH!b=nG_?(DO5HCx{T{%CnAEs5NI?t4!!b`;fs##n6>JAlSWTs zyV)Q|TP}%-<*c?3?7q*owb#XYQIUt3$47E#^H-g)cV{>ZW%}4os%W9BCc0(TNy264wRHDd zu@|g$r!)0Lr%Uz=7lz+ug_>v^{fceYgb1^!LFTEXcZ2hsii#HXw&o|cZaV1EhsH^M z;p}ulBlfaIHzcM5j4jOyBN**P*GXs6&=J&eOS`zOhMXT$W_+?p7&1GaNGtgc@)jn@4J+d19M_-3ST&&8XNKJO;?8COL)1?zFe# z>@q;SWWsC|QU`{8MaIgD^X>tc*)v( zoMA$2xEQ`I`kSQ5+0jqPDB<=?L}w>(#WPn={t2UO#BbAS@&01O_qI z#gHVL60A*}1vjv_N;B<60bNK7vsa47J^B9X1T8x_8hRWyh>9=>+nl=>2b(s9O+dv* z!zqIEqpz=juj;NGAf!BK%Ld1Y&9isaxq;SUI*Rn|wc;;oTAh+4s`QjoSY3kEAPRa0 zUS$hPfm`0AZgldbeI3Z)hfp^mt<n{pR)eXwAH1^G&iRJIqai)T17coym zVmH%Sx^NlKatw-z;@bxslsdefZjDJa5ys~Au@DQF$!w5-b&8MH=>BkQFzL+8Ra1+0 z;VpI11+u8D;@bp*r*}>>VPX4MuLdmM|CsnRH&_;V#1zBol3%WNgH^v_@}$tV(7TnzR0mq%U5z^I;2<32Oo|KUKTvpj%7Naq?i;!LCe9fG8huD#CTz5b) z)n=AB16o?94*8oBrgxh5(prg=6n)Z`9sr16vi~_I$`3k^uKW&Y`En9OwtIhsdFICN zfIFtE4^%qgLvn5ecZm|?VaVwx0NFMnl7^^!uXz;Z`KhR4gU*5|JTWP3F)+Vd!$`a@ zxU}gkScls1;TDulT;Z*Dw?VN~YL`r%+Y6nUtb<&xF{EgC5nW3Ozf!OTrGW(urPlJE zRe`gnI}STZhYujltA^0-R4e(v+j=xA1OF@>2>xJ%K&e&!d^(FkC@MK@ztgqRJ=ABd zSt3p<&2BnR6lRaXWnrzVF8Ekh?opdKOPP&8b)F%<33J@?Fq|{IZIP6(@}5kJBjPv_ z1zDrAVS|o+Zt*e4@D#2H#BWd}`!Xc+koNNfu@Y4Gkrv&SWjITPt=)cApn5O6Bf%0r zbqlQ2Ik)W|PP}{+<>b-D_vk{d$)caT?CnfYloiymm)pw>!ZL)4mtAuUq7?uZ@3bJ!Hc5QhF?O;JcBXV*}^Ms^n!{ z2`!al@N%!uND5*(jHTv&-|= zr+Z8INnAW$8Bngh`0@!+3zIA0fEtLesT0DVuz7u_VtjSZ+fLoF;rGXg!6^Y_5>XrQ ziq^E>s&<8Va_PFWMYlbIkzqqwQcWEZ?1`#j{%YQlmGbqF1AWFPFAUUDW4kMTTN#_2 z2?TD8we+o@XmQr!NcrOu4_n@)UaXc zZHQw3gCv*4S$I}rlqDFOSf^@w^|@dp&llvh-VYyz@!De@Xt89ti0h->Y75DFE_~+x zZ46tQJOm5O)W3reN#Ihd!zzG98UAfOeIe9b37Nl;!?Rm;T$MW0NjXZoU}R#UHj>)Nd! z0FtV)C%?e+&4mi-Vw5tcTz&El7XF&7gwiRhtEn~&PwgTuo1`%uOyGpR1MxgOcTwE zvXira5#U&}!MUwNRi<61S%L12kdzujV-{F}WE6>~%{s0HRbB$~^Je>Ipau~qnn=|x z9+y(i9QxvHD;DExozS7;u(76|&6z`CfQ<>b&f@e_comV+Na3d&?Mu!HA=TOs*~gX z9Mc#b_-|d|TCb<$Oye_xxwdn~GF1`iK!5N2O0D9NrK0+83rjTqm|Ik{k~FTwR`A zr<(3iB(RaL-;(Dhg*SO;d_K-7v^G|UMLOG{fOs%CCGx|Wctnv+j{Aj(48LwbZk1>i zX~Z}^>RHwj?$&#Jj0ltAG~&DK7(3oBZK8$}$7Mo)eKP8#y?j!2w+d{lL2HL*Ws~Xs zjN>9CDC;w&Ik7`hHcu3*ywq?=JgKMw7uVe#v}>$iCdBR_O=*ZNJ1QgjdvZo*jF+Pf zctiN_p~#t#*q#YXuQ0c#{rUXl5yI+x*0QX^w283d!v(oq*E1c#M%i}>@WW>#7j+#p zT|+rvxj{Th+sBS`d^3IlBdZ*ax#4QL$@bX{mCiIo!UTrN;;@ABBtV5S>gipW=ijnyK-KG$0m6ws^!$*q!|k36r# zU!ezaUR?2f+5YwZDo=U@5uA0`~S+_y*Pw&;82coA^qiPG-_<_#6SwjKa<$Q^jy&{p3KSD2cG@WA6pQ#*Wr+c+U4mZC&&M&#gH2;UKD`6}6FR!bEJbtr?W`Bv34jJNKtXR!I$iFm? zX`G`CrBJ3fGyyjh{ylTjzpV1NU%}=|3cr}3JKHZ(*A~*yi5CX;9|0sczx-Vn<@aeNUY71GgNf_gfPc6$}rf>b@L_cVo(9!a1lVkws&8lA5^^t+?9%B#B+^P_%; z>-^DVh5qCv2mlx-d;CZD+>ulDb6`H_^NW8YKuRol@yYK;<)zuR1~;{c5oU8P)7FkFZB^U3Shx3JfPqJc^KSAu?^qzyg>U~4#<18)$7RXI{oi)u8t^6|KlDv?xd_XuZXWPGzBOOaaC%AYKbdA zm6OeD1GBBaH!OSF#@nbheHeZv9-Y$ZglEvR=)lk!fVLj$SSCTL7I?#g@ZKB>iVHKM zE=0xF7xr9z^LIXp%%(U-O6tLurM$xQP~L6`qg=GNO(d;aS^mwa5fzQwql-1MDKSHq zqFAEaOH!@4b2R3DL$~eMS$N=y&J&--rz2`ubP5OB_bh+|?BxxY{82V@RkW(h;hDY& zwf64*%fg-(7?aLZmvA-UGSjlLLI5o(Av1*E{m}?h-CFXg#;gQchTg$t8eMh8*zrzV zpXHLqo(&SgGUa~brH3AkL6Ob|F3ehOC&Jy`E{(<+<$bvv0bwhm69ZE5hLh8emIHY# zCpbFPdn{!3YBM~DF%Z6fHMDZ1&udQ-1qCBgmwUrGh7yIR7?VRZ`lec_eSXo#{*-=I?@o5%{2A!(vhOn52g3)}53J9U21 z3su(Q7!#7ur~;`?j@lJIWeD0Bibt?QNbT$T#Ad5O8f@m^E@C9Jq}o8unKexUcS0t6DXMWJf%KokxMgfL?4!T)wvu+ z>5!ctxW*ZOM(=n$l={=&zOM=aB|j9ju^Dhqcp*|*Rnx(u;@;K^J&g6oh#y=%q|bcAJ)?sxiK-rzrm4; zndJ#Aix@qf{h_n)r>rmf3E4k&6zirYq57m;oH)aPl4qH2uVS>hcP4#P4{)onkm@v( zu%W=t zLkn$6m z!E$cFQ@1Tgr06ExICg4pylxn32Q0NHF%@1ab(1O(Gf=>yA!=Og#>#B0?0LA4C)_Nq zKN7mx%&Rf!^})I27G>GRT7?p2=t)NwFvNg7A4&{XfmS)3spv*Ho!gJh5Hw-x z8J;@2zx7?BA6WhTNj^tl-)M0>fwm64F&&zj8$ke9i;f5?{}fK3h;=%ev$=~YaLwti z5Pt8m;z%Ip%c{Wusg;`M&7nc>1hV6iMR&-Z>9LNtxa#VXXls)8Roh~$I8@!xVC;_{ zpnYrMXooC393vb}+xr@zFY&%rFZuGS*Qt0*2j#%aA7i<4ujei!9ua&L|N6S|i=on! z?w8=kZPO(Y)xBte)zYr8gmb$Dh;b4mjH(a7u;^F2#dgQ}iLpD;8W zoc#^A)1p-U{$=pUIZDC}p%Ed~+1HQtm-+N>j4ft~2pAr;hI!5#x$5v5-DD1(zEwACkVcAZrF-S~MUq9R*y z_3Jlkg@kv}aeMXa#JN{;JxvK@Dkm@B_1fFpbpCbcR~^7XGlAA+@ALnD8g(ZemTef( zJ#HcW*WntZzR#~xuDWI?q^9!Sh#HSGt1BT|Rnix4iMfcRn%y{Hmj5GHSY6=Hh=8Ar zb}DM1z&Xk1?PmYveyy)(^0~dZ=z7kU9IvDTH`iJwmfYeeN|ocZk4t*+SdSX!hrgpcXt1W zu^hB%KXoP-khxFAy=!grx7>4Va)iC4K~C{({|=xfyzg#3_@m_Yq#Tk5>&wE>9Sj!~ zbR0C4(%ffe#&xa))RT}=apgAF??Ug9j~lr@Y;xK-&*4+1`Wb7@`9R%bQOmwecbzKiltJ5i0XYTb3|IG8-T;kps|5pHU0>S)r`wsWAV*tDyq{q6+ z;iDLCiJ2+y!i5xqjfy`;ZA3R^0?TrfIK!H{)N0WBeUBOnh39WaCQF$qFpl-C&TIi0ikqufN?(UBBeaqi`RPc#$77B*;_O zJGEMforcG~;EipC0$CLMT}bIv%%}4e$0gV|WJLt@hKtHflUG^<-{XXWvPB)f5O+U} z%H|@9U~>*H<2ycfSMBv5%u)kfzw@MP4e;S(ZbaA@iKJlj*r3{+R!hV59(S^+a>q<4 zB*VuVWz`lqeO@QaEkw@O?3R~~$C^<2u2~VhVl!AFx^;40 zgv?EMDoe*2(qv2Xaeb&_tCsA5*Gl+tIJi zGs^nQ+DxT`G>J|8KkquyBJBhUeVSPLOPkED`b&a4$gexi>MGIY#Rsi@p|$#9_2SXb z*+w-jx(w&Rd@8_|u4#g?l5qV6H~QDeqql!Y8@7l25{5`%*#h^TVq=_B&*3ZNRjwc zP3Xkim6~D6UY?Bv-n+eQd8rqzuZH7pF4D>;YS!NxtI~K>1~ZAAD<;_wX4{EU)*=h# z6Hvj`8tRKFdu;S;Yve{l_q$vhTp<#zMxDG<2Zqt zbuB61_<`u<@6C)A6M}Hp!78muU?)0fa!GzP&Rwq@iuYzWQN;GU=IS^o^rx47>}15; zVY9()9lgw8=b&-Q2MxvDKd)f9t-XpuV>d`M;oEk!v;mcfY#oAMNJb^v-XXLOkIGZA zlfRWW9E8;XL&Zf!(?rNp7H6T_$OJBq5o2b74KKAdC+9vtp{|Ff6*?9(j{_z`gROIJ zMg>U5O*mTXi()Hm5U7L?p}8*EiiYNOrG;W*cIqi|G?6;V5xETFf~*Bv=p3!5iPgir zsb3wUSxr64#C4`La$U(VkCt~+N_p`!kISUzuCMBIzvZ14ofaKt$*rvb9@ODg`?*m| zFzQ;WUV^n-_BBJLAtO@>ujkSzvP|bD6||}(=+rj&ewrAga|4VOXu~QNgA>m_AhmCP zzeYbK?MI0rY02fNw{tP-wAVYOdy6-99KYYXogbK)jTK$g1ZSddI((@+J`U^K{z{lJ z|F9(raE|vDK@5HsYt9TKFzfv5>&o90DNKQp(#3=f3ptnf*Vbs}k8f?wZ{}V?_!z57 z-{k?WX0U(yqdF=v&d5Lpzuy7Wr-hj=fw6n;$1gj72kiP4)QKrO&Cy>hD1D9mo==)3 z7s~jY;O>)n`=37qG4U@%53FkW^EXeFezXmaJOnFwe)dV6Ux>t*S8pn50CsqDnu%^1eL&!{9j(cdAgat;4QP3C|SFPz$* zNZuSWa;vqTVxG+~e6{Pc;d&S$fx%x5lKlM?cYihF1|-!dPwP3HxojM2tK3fID|BM6 z3=E92@u{l08BQW_nQ!9d8uxs0?jO4QzxeQrP4|B;vclZy*O7{_|8*F@=UZr=qwu|X zxfxCO^cXj`2mp-4KlmRl2O=ypx<`9d?j$^;QVTA)UQy82*8F~AuuFwQ0Y>8c!7eWZ4t5>Bje>ni65;`YHg=iH zBS8mbY+nsTVXxw%5wRf;O``I+yh1%RVpl%3h3RSqa}S~mXzz(88^ zOA~*H|6QnI%`-cQOjc974SFinCBL1Jsk#%Fx+IiKp{kDlSy2_-)((0K(XunP!do46 zRZZ{ge5KNysbD60h^JyB4=ylEm?W((v2;FR6|93I^_RbO)J!L4fA_)qw9SvOowU{- zY8{dLsYb3*4c(f5>f#3_5MLJwNX^eOUUJ9%b(3UmQfWr*0wkAg^q47d{W8V}cc$_G ziPFG<_G~UTAt9NdpuX0jS!Vp-7)bqB zvOThk_8ZaX3o~aA&w`tCl=efRbsbG}O?;KA>-#VIEy&m)5u3({!&o$oDj=&58^hk! zMPLpgz|dbGh$$Tuev6#)n7drx+0|(rEQ_p3I)(d*|5fYa6yX0YCGEXO$P5s1yB;0h z#Ctke>r!5(?*%r71ssq?@bY#LSlnou6{um>3F7Nb5tG2the>{BN8Pg7%mYd|KU!~j zX4M~hbNBA)5ul8N)W&Tq<=(0aNQ(vG6n#6zdR(W_f$KyYS;*}Q&{f6>0!a=8s zXZLSel;qCEmhEYC)iX(z?MiQ1hcp0S3#9`fEjp46em&NP!>AyT%O~689l?gN;cL%d z`I7Owb_`d0`q*3n5*Am(u7-Cu0>_koBk$_Q6_@F?{5}<4CjZv)|ASjsGRHD2dbW1& z_(=3RPP!F!`Lb071@w!nqSabvgZUqZ1tYf9XJyR1|LDGdb^T%u`JbdpdzJ2Xcid(` z3b?26c8{V@3DtJXl$7w}}=ZutSi}$BE zYnFG$=)-$%aii6^kPz9oi#s>_Z_8pppoQbeT(hC$ml=XIb?fa58;NCMIc#>5@yWG^ zJyMKj1*<$cLMC5X0*Vri;b4PCD~*nYxXY(U^-OW@yZQ&s-|0A$c71zFdu4C#0H1HD zzJBV3+jtd8>8En}^?PUboV4zRz}dV0<7Nx}m9(qf`gPh5?$2#|nk==O;t4s?rT$Xh z_Z67bJ+b<MQG(;DOxTpk8zS*L2lyY`$<8YqW0u z+`5_3nrkLTr8x1-EVH;!A92P$NyxR*iSL0sWX-PjH<6G{JL^AL_IR@8>+ElHTaeoX zHsZ~}rOSa7{r=+rV(%@$+S;~#adw?jLka|IAxQBO+*^tThakmUBxrzOE#6%mf(7>i z3GNcC(Bf{vy|`1{q5tfC@7cTiob$i$-FM&p-uK>j;3JtUS*$VVm~+fE)|_MfejSx% z6-Y}}3O7>j0KNB1O_f3>W!&>~90%I|R?x(g7cTHkXGbn2-&9qdL^rv##=bH)0Qdi>1OywI% zv8$>AOIjSKD_@t`uN4tiwd4hAub8|O@>V$H6q$Bu$;&cToi=46y)BZ?V6&EE$uE$^ zgQ^4*;$@Y0sU4ona~UX?a^sVmY*LEY#1dQ9++ex|9{3GNFUj|2+G8ukqH+=?L{+g7A2t|i;Y5r^=Ad@=zS-7&C zjvAO>@0*-zD~{WB4hMeYMo9Kz`@`?{aqrf#qy!mp%ay4$) z_ydn7wCXe$506T*>i7TozXIKaJ*GZ7ee#$a!)&awu(U9;KD8E2Ojh9kE1lW z$5GVR-&OEGe)%h6pnRqx`<6^g|HrA$d5SLqDd5zT0Apj`x7(h8Q|6-Km{T0Qb%EVq zulft&pWzJi*dY|f?$EO@E(~|Y+tYFJR2msEb~PX@^~l)259& zq_|A2XEpcUI&|BNvbHWlAkbLy{8*Cc%uY1nFzt=VDXbK27Uj6UOwGH=>~^czk|iI* zmy5gJrln58^r^aHDX$b3`qBX}{4%2IFVVCb(i=`l@-MxbK? znAMX6hi||xHI%V2Yc$69pb%TSjp1$KMOf@Gmd7s0A=dRxm!ovi<~j-;V4RJAFtCrog$=Z z-oKC+h{Pp?RBVoxxS5%6LAr%zjeB5sbS9=P=nOiXZZ{_n4)(i6Y=JEdm^)Qhbv$xG zhXbD@0L1VtQ*}}mpiH49Rg7TYWl|;phs@2QMudbzl?VaZSdZH(*oB1h0~?4-Z;F*- z=#wo&f!b1k{RgGMp6-MecQb`0fjv?*4+>pQMA%g6nXxbxNL%-Tr&i@u-jY;q2C=|X z3R>q`5fB!{NO2Ri3EP^3;hA8r1-{HF`DZKoss)1*h=6e9WUxc!=`-jVI%YwT!83c* zWO<2tA;O}dl+DF)5N4%5K{^=P#={^oe_tLZ_mW7XQKkeCN6`M;NX2`}+ZnpSfKBoX zrtUN`c7~9{szyr2<$EO!g}fQicR_MB7#y^r|;GQ(rY3N%}Uir9Bwm{U(_7h`R{^n{^K zYh~B?tn(JXdYFDu6GY10>8{~d!>|Vzp>S|_GApc+8v{6iBq^?0LZXRkQLa*`826Qf z6<{xYRDmEv=ag}YYaZieQr>LJYv1?q2#UQIQXYHMHKpu08vTW-M>BldhBNzcb0Yub zL1BONHEqE;>+oHsB-QueTZI`XzV)n^3jOy1Bc!A=>1)%XwOz{i3J|KHX0oGF$~h;o z2Ol-3Z;0-VvCcME@+h5|30zc|UG~E{Ro9184H56z@F=PZ6(*K40tNNrohGa*x?@(G z%U~;Cd15B{1{d`f@K?tI>2*&u^%(^}?cwr&#}WN|nOMqcVPr+5Y+cYqz6CvNp1nsp zx2o|CvQgk^2lrQF$Y7! zJYY-MxV&7cj>3yF~yxZEAU;ny7^(R^0FTy32x!KQFtjvfA6~d=vS7;Y2 z`^3t|?*jw60xiW*vEY;2Y=Lki)G*^K*ru=G?6ZIqHQnr^lYp8Q{=zfeY@JFcL+vnK zO;s)9e!Wufw{LGOBe!Fq0o$cMV%P+G78NvcFvHXHXBZsDFx}=dd7*O5jKz_ysgL63 z*f4SW_)DXfbfIedgiut%Rd>uZtfIX9S-%ZnJCY8USwz|bLr?~-Vuq24kq@k%MN%*K zIpX+?aM>1DKp^mnYn-Ad%-q0DUL(keO%TZ?osh3jmctf5XlN?4nVuq9?}fu-&G9Kp z7-t33M}E2OHsf}8q{e!bqoUAguZP;-L>&?RQ8zEDF$2v-$2Kg=Q9e&1DT#VM>n^V) zk^-0erR1T=5L7SxtmA%pq|T7XZ*w*RJxxG5Qy4R=yc`Dz97nL* zMrm3hv=J!rC=y4AGKQ2I!O=ZY-}9nHcjn@#2}kbt7UE)G=rJ;1*JZn_kWhVQ(VBa> zU)gTI>Sc1VswJ1AYdfbZmPy_$H%93UC>A<{YWP+BLX;F1)N0>kcBON>Ihd5`R7IIZ zqXtElJ`E}8O}?Wwqbdk|J>~c{ZZaYbjUkDLFENZ~&&y45i_t&dP1)Ks?O}RT_wZR8 z1UB(_T2e7gEC3BqiV(<(>YSCk6ILKSs3ch8xRWL`BrQx_kY`2XP19(lAZQ9Kp<^&B z`FzY*DL}lNdfiHE1{}n#ad56t!1;Z%_&sux6<>+H()e{HwbG}OJb|9?wSi(d>P$M| zy4Kw@{9CB`GEws3MtClaw<`IUxIJ9&jO%FUdKt@aIYkmvpR?w|8PS4-jHrmstow}; zCz>z#R2&CvUoVvnvG-VL5-#wvk1cwf0pRj-q^7&fiULxX4MEo`?~F*Tvk^p9M5>OE zyl;EmpbRy!!~_*5*i$Xwz{Sf_P4+`61KuvNOJhSkme-cBio(M>dMUkYkMg-HO%_NV zhjn&j9i5l1NPD_27nE0Whu|BEbp~4M$aZ)4q>HgP?qzp!O&*i>@OFbkd7{~2xQrJp z(y3KZI;E5Y9;^CAb1VDvb-Gv`oskJ@iJ0*ScKUQ~aJ-FftoJ7?s~Y261+~f1TvEv{ z4%!EjM!AlrXxpRpUb(=LX!ef~`L`#Ta||Oxs2t|`X%;%%sv~|5Ni3Oj;h;>LO_9-% zysKkYtSx?-4Z%HGA6dbG_tQ)O)yS;o6k?7`DD(wG^?xN2<5u8$52U;%7WvXK0I{hb zj^w;XEe03A%%iRI)^yP{TDi_r)EQ?UnD~0CsTKSKFViZ+=}E8e)8KP&O0Vl&TxL)B za<5#?FuWIK&~L2sQ}f?dKj8_bzxn2Gof_!X#L z4z!y`&oZh-neGy%346sgH$%okuB)X?*7Sx2fe<>#!qBlj`!DZ z8n4~4PSFh637hX-5%~LWL<%Us{q}jbV_2jwG+0rW+!?*Rf+$xD`a%}V!CetOb?!G` zjaSTiLRHvGQR~N<7&u)c8ydb}m>7z-u$x}d>8LJ8MVn?_*Xsto3@si{OzS1 z;jBrPx~C%!Uh+Qeo1YD-t1Dg|4t*yg@r#*I!|K~jNDTQ^kCJ_r8Q2YU67w@skD3UP zA#I$twseX*mv<7_m&Q=X0tlxR92nb?$X6CT$PTC+_f&Vyjq`u1T$SlP-A1-u_glye zrp}TL58ixe#*+>fXn9W}T%{2JvB{o*aG-HGhdeoj#G*a)$<3n*juSYZ)J|M9N91B@ zJ|l;F7n@)EQisbD1M}(_a#EH)jb0XZ2Mimoj!(+^r$T$Ld;jM?2afLtNV9UWXttKY zm{0pcn68YtqCMv`S?=4jrDG&@k9)H&^hN0~zl9eF1=!u!_iNa-F)gX8FZj*Z_$jEV-MzIq7`85H9Xg?#USK^*(xz z=*;OnIEgfb`)Yk`=;W$HGhx2V=HavZz+r0o_-0wB$xZmmr-=AX>B&uG)SUa`xNW8M z{6LEf%wD!TupVpg*MQA({$}HmXGf(PA3;b&zi-LS4O*S_YBySUi9zvTo>)BKnO7u` zz)DBccNqhL8$ep^C8}5#erOP+TH5;!-$S-zb$_l^)b4@T2ob*5!ioRO7d5W&1?t;t zp0CW(YofFG1m9|jwh%JLRucgkx*9OEiKX(T@m&!2E8l((nbLrE_y+&eZTZ(n$tLlh4?BcXSvpuY z^gU~kY^SQiyhAaIAHO*U^yMGX&1+6EU`<$4l%{;wPC>)-Iw5fqAL_szrR&WKHu&+4 zsG!RG9=}pL0g8;}1g2H9hs^1KAfQ@PKcU{3mDFQW)WjRDO}Wr1KISP)tLG>Ytd{7? zxOFQ04&OKsj-q8mlP;Id8UaBizAh1~6@2pX9bHSNfE&)6x&=0!Xn)|*J={Z!Z7UPL zbcsoz4VG-M+(MdiZ4KHI&n`XP3GtrBU9j<<=*q*HVKh6TCFn0J$0X| z@~29YjwWVioaN#o@@C8J(lMJ=Fyh6k-bicoT~lm$J-nVsX%%Kp&witrDthXZW9!6i zGfnNW4z-z}?)M=>a+^6a3=agU6}ftL3kYDbF>-Wc$U(mhj+?Nd!cm=L$NeXLrp8D1 zlm&j%OYnKK9IZ0~XE(engbekw5d*_KwX8lv=tSMZ#(;*TinbN~D1{12oErug4?yOmbf`uvoHCs|m!ImX2i1?R>{xKUQ#xtl^0x^eCz% zC}UZA?XcOq8AH~sq^HD4){~X;w%0bICiw08C-k_r(F~0fQMi~IYUy&8lu}-IcU|s|-6f3*5Q)}PVUnR? zcYows1D%U6D&9gC%wwXrV8KC>AJ84fX@PcBgKwJAq!kyp5!~mim0~F#=YNZ?>I#yj z^QffMQS>MEmctQY0okLX;&1n~7S9PRWemH}2j2~a)}3=l@>L&Y(D&g9o9-lYqfwfAo;`TVh-p@;M(QLa99$Y5Ws40kDzmvC%NxA3`Q!lZfl4?Myg zNtu2r%u4ab_?|%nCrDQ$=4kuK4YSp41L2^OBsymVv^buQjLEOe(5wROuoD4Q_{`rW zLp8%CDnpn*$8xpXpt{qF+w|j^iYMQdFj7Lx=!}HTacKf6kL|Xw?vjNe-n9C8AFxS@r51)Oh-&(~DhiLU)_>P7mL`qfN zL1YbH34kkno(P{Ou~1XjrBJA8@A_)IXefd@Ks!OEhFG4RHzv$Eca$?7#SVF44m=Od zMlVZnQ zC{9Mg4Sr=8Q4~obp3JWYawdhLq}D>HDU|UwLOn`GDMiHCk{IdiMvdxiJkccA>zq_s zkPV%uQdsY4f=MGC_q&`w@WK%OlJG9fMw#AZH9)~K4pu(=xEUAli-)JH{x_xkNAC~b ztDwf@ElH$%+6=Vrsu`}FH|AO-tOr>jmJJk|rR~Gt@c3KU$J=DQ-$5j+rm7YlqfcGE zf>%hZTKm;XUcH{Wr5q?VD^Q17&^}DPlG-P{7rt>uAnj6wPr81%qOb2(Ps0wO4qW1g zW{*>R!uy4%>E@rPKEdQa!TsEssn#2k=-oN%k?b)uio21!p#^=-<$TDkG?50s3w)?( z+8Q%XDIZs!fe38jAN=wQVFL^AE3I#DVbwC>684Xw;xUUV%QK_3EE=dgq$1OXM1ez3 z2ud`4nFpt>IBp(L^ubUd9I8}1C? zAToS_0t3GxRTJ!{)b0sGQBwZ8-MJ1``kS>aH@n&B>%ZXjS93B0m0>!bzt`qvg%ERODuS%AfzJ>~Oo6RMp3O^hl}4*2MUzaJV+#5X&)@5sx6Dwqr`vgboDFWs<=} z0*&jXP?Jud8#kf@a?`Q*<=+dGDv1ENe`8_i9hUEog?um0JD1ZMB^4f|Ys-RwaMUa` zFsg_3{!y4krX)IuP5DRdT}nAsS~o3XLHXsF_?t_l#AfnON5wDZP!X?@Msiz}w@D$P{z zNo=uw)5`mL&kDGcACjT$c@|kojIvs8KcNPV7X*8<2ivbsd43qVrB4edoX_}@;p;)*orweqU26)=5ElHspmgmBrW7zk zPkYTnd%6t(P)^~PC*lX*qq`gbB`_TvGD9>e&uVXDB6a0Ly)WN}5`C2Kr!He~!~p>C z{ubIw%vZT#Q8avkt(NnNT@TKc&UzYub!b2=)BNSOT8%R=tp7qytvrDgiJSESINn4F zT}g}JGrD7%ks33Y$l#nX+O_2@Un9xdrT@A`1ydxu==^kLgFZCZ5;0UIKb2nPcCfQ4 z4SQnvk}xY9qx^c5E%koq^YLWwNVSd+b1ChR!0AfyDs7u+r;~eanga>8x6!yzk1|aS zM>E_y*YPNR;_Dzznc-yX=Xm%|-~OXH5BHsH@ugVTezj;=h*}*3z7_%UUKP1j-mHMf z8ckdMwAnWx>Gn*eQDC)mb^s0;^&w++CU=yhK@IIE+gT1V!$e7lMj*(Zo{YE@eIc*? z1mZ>Lly{!$@n$WSiOq{pmmlydL~oMMq#Wpf7Vir?A4-+$4)cggKS3a+b%O&OE`=M% zsukuA+_xsRwstpXLYj>oLfH#P=hdR@Nq)={@*rgU0$|fTWW$dHe;hxVjmipyN*L zRt{&~`S5FQi{37(XXZy6LVUMXYeFtiBo3W_ek=+gd4D z{{ruA;XkYVPwf$RJ-Y)o-(gLJ$d`uOWu)pPD|?#mGZpP^T^O?xcz+2g>X=(i$eO-- z=dQUulinj@6&dyXQJQ=SG9Ww-hbZO7z|6UO(Xteok@3FRO%O zHO@_q!@F)FjjQBO@%#V1G(x{CM1Zlu*Yt6_CKn)@8aoG%O=L(j-K9|e)b8-%h|vfK zpKrM5jO`kPkF4qEy9`cEeK^HP9fub(cAX$;HT5ELk_`?4sIm4FRP(EqQ#F)VoHZW4 z8-*8mE`xF~HeP63yac7YR;YuU<-u>rB`J&MhxR@d_=r zI_$PzwOhEx(w)!4Kkx)Ze?Q+6cRnA_^?y4{?DoG-`tMM|+z{Qq^2J<4{$kjRfggBV zNsW!FURP|6T&Jxio_LvsBo>wn%yrWW?w^wM*RE`lHEjpi<+%>|*5TMjg4Ff zJUru^pRDq)#oKa?35CNVe2)NL8AfW6vxM%Q9LOsmbw7z-rPKs8ID(kCM`&hHeNb>v zP>zXJ(fo;Ot}rsg9W2*@TQc7Uiti#U%X1hrzI_I9{z3)o!_f@fkeYe0+BKN0X*`$Y zo(XVV*yXVd`hnNigSV~j#p#9of!9ji8MgF&&+w%A;%1T5fmZ3I#{1m;7*_N&&7Ir! z8K-U+u~*OkIGO1iP4H@w=~?cs$WqYSJDHEaOl4mg{J>-Qfrk)|e$q9&_+>Zn$qp`XJtX78vTK9AKtNu$A0PXT6nM|vv+*Td12)F%W8elkzsBTaqsKGSjYEI|5k~n zYSoLnEBPOI|P!XhWHhf$5aM zYd7!%LClF@`j(R8co?GlVp)9{#l>rxaHZhnEG`cz86D-pb{(I?IWK@yxSj+(y=E|+ z=*&E?lgS)10C+{3yI$y!>ky82v*qdUBh3$ooaYj+p}`w6`J%8SyDHeasVu$l6=UXm z1QJDSt{M@4LLy;;$C@&-7r5J}&2Pb(4vY7{L*k6)hL;68fc$hs|()wAU~ zP(;)Iuqof`+nrSOdv%@~<{ZHXTw9&#LBd0e-a4qsebe>& z`BS0C$25@TqdIfX_6NQmZBeInMLImrr2gx$g5l|#9DL4dyDLGwze*vo{Zrn+^SfFt zjSIDC)34rY2y8*X(IW^DoS-f(t$$1A8;Q=hhqsHmTXJ*b5oMiKNoAve^_38K-Ik8> zW2LceSHXWSP2{Mom2+*~($;!?Cd|-vvT#&Zo9vzs-yEh)c}5lBxb;me19&f${7Vxj z{erfX?(m4+iQq{etaX+M-(uD#G%APb!YJ1>to)_}$)E;A=m%bkU>5W8ax$dG2`mI5 zrnKL5CI0^rJx>&E;pvXx67tEn1RJl9bs7?h&Qm3K}^D zqxJjwPtoNuQ@l@)v|chxVQ|l;vG+X|SubrhQX7fAmDk35G+Vm*)I;v$-b9%Hk>ZY2@uqh4t~`%w)^FYuY=Y?C&k+@jN@5&{8Ct zaF=vy;DF{l%0~vRv$(Z>-;~PLhm$%&QAn?P*%!{sTRD&R1MBWYuvePo8H3~ZrAlI2 zWoRF3P~t!@p8hW8DMeGkd(Qw!!{_e!5_?{s$biwe&tq{EFcdXlIi;3T1?5)sIq=D? zsxLcpSB2jazHMLYjl{;-#qQ4!3o7YknRGpQY@f$xS(seh_tW@&QhGhj5WXa4Yc&#b zui@Z}z>u$;G(ctOuxV^YBD3wSq;xc^J(FgnDv?SCH~SIY+Sr@#%+~Np3!a!w%uu`4 z@{9z{s~kDZY??W@T+PKT<08n{2MB2hB{GLthGxCycj|6r{D#bTX#< zc<-)(CsdxW<8T*wZZe<#X-N9q2P!#e_O*nq*PaQ`3d`%wyC@bcqzYyE5P! zde^=kl0fWpmznd}vcdpLt_#dv2JkXEo){LW5zwrimM-i_JrMMceQF*Mm#;+9dfny|EudEzn`PnscZWf~gNCxwi{X-l|SL~==8 z(w!#s>d&d_r>+hY&)#uwqR%a>OK)B2DabTcW9qhuN`0QNw-qj+t%oEu=T(I5@ zNi>76h-gmLru_PobT&n*CBO$O#H0YZo|~hf`k<|>U`hCZbs0$c;oaft<4lo?_7W?1 z!;0LBS5(t=Zkl$EKH|R`+xPnV)-$4kppoO2 zc?fm7%|dac`mmC=hxNipK#C1UnoQQP)-%y*DeAngXA=j#0r`Lf$vaA0BqPrx@QO4Z zvYFN%9{s|?-~iT%WgmLl!%p}#MA{NWw+a-Cpe5XT6&c&qV7v6@(L^k=!r*NE^*jGx z$0fa&vF_4Qo0gOL?e%aCnsWR*cz0j?Zk|8C+#q<(oAqdbLRRZEl8-|wm9=Dhjo!OW%B8=~c?UqaWh+Fm`=AFy-MJn1v{l8NQboJ0xl;*IE7#Q|t>$){3;VS zA|x(28Vi+^L#C@fL*O!raR7Rz>*bXy9J^q_3IlG2GxHpmmJWueA+qKH(>j#AL{k!X zx4(GQdH`qPW~se#hIZxf7DEQujcn&8!>u&;AWLlgbUG3ng$77MEIs&qMw#5>hZ zH^R`!F(qBf$F>5Ip?yZbu1Vo1-qz*;ZM3z`(8_%8uFkr1@{W!to~Esz-SuX}Y9VZQ zC4`tTmWI36Sy~&G0{ia16x1bB;Us$Pr#bMot8k~V@?mRZYb8OLjlbpitM5r;?G_>| zs;Gb}&4NCAt|g3Au7i+K@0c6cw=@DT;{ke}v1CmXiqR`UEp8 zX*wEB@VYH^N!KiM=RH|Ek8@ycXk!mVgA4F)#tQw5t?uA#l^AEM{~LZD3e<%^@yFpg zekBx_+sQHqQM}htjxz>j+G*=d41xpN_%c=~-*V#*!wKzTABxPrj0fOcn3Anhs*3Vp z$bPaBbmd`#4eVQb0{3k?dJXm)^Lmaw!m&PqQm0b4w{1sL>Bl*TG{pkGU2$GF@M+Sn zbB&7&V&dSDTv2FIt(>Kpz_3iWH*0C|^ojEwe1TK|A5{+CO<*&74(m>@Zhv6VXIU`T z`9;@yr?_0SQGSNj196I#5isi|U6$lp$`;U_Xv&OdLsi&nfgvyNws7W*5Doc}OHiq1 zw{S<>c|L!27( z2<7||6{tw*qZlEMLp28jq^zB^Zeg%)uHx441yc-j%7sNxuH89l#kk2DHgQdvu)wT! zO|TJ$ih{u-o*n(_mUy_*!6$$C*uVOVfqSIM7uDCTS=ZC)R$}sqsjSzMHB@69+jx{* zB)8)FYDG2@WB2A;C@S`qg{I1f@89gCYU8S<)Gk>&*j^@xE`@>?)+&lDnfYlk+OUt1 z8~YK)`5nW6_|FyZ>X@HBC|D+^sW7d=sJYzTUE|}@y8Tq&TS;C|3bcNjL!is{DP;i{ z7(_%^<5J4tWda{L6}F1ZgJa6e=yb+aX`3@C5d9f+s)Vs0jzFSeUrjs-JO1clj<>}% zOtZ|JhD!)N$XT2-P&U~iJ>inb`BmDUKXgO0 zeCe{Mh`f|CnhDF0T3yTPn74?_WC?K^Oxn$4ghCnVJYIKcp7sf9INR#?2{9SgI=H&r z{eh=DY_{Vwi;WwjmE99=DHY+De5$hK7|D{aoy=|(!khtXluMdsDml4_&~N&<6Ix?q z;jZYY1m_)&YV9eABp@bz7C4Q&p=-YQ_jv+{P3(TCVnrRaFBKHcv)F6hL1p&Fwq?_l zOopa;Kpr@D;wo>?JvSi%#O82L4^ebSBvw>{NfR6ayr1V!45Bu6HM^EmU7_nU^30m_xOl2zhr!6TN z=fh_~rSqaS!47nkOgC&)%@pT0s<{Y>g;vz9V;F@P^F>wflMP(>rIPj%!riz_-bQPD zHg-rI{-{GAxv7 zo)UfjZrqBr#LWP%%17)b-+X7$^WSr9zwYnR+BhCSmk5p^B0BXj>v| zz7zGxX|~Lu@} zu@Hp1!QTeS+dsw)7su;?ch7>Ij51EkQg{U~%|qf%3Av)+X3U+yV2bD#t#pTZo8=VS zS(uI`s3pv|!RA;|xDop{l#Bkgf(Q;+NS0vD1OIPOXqNHAW*N`zPKl zV@;s?Oa#u}l+wDSfq-Uy78-SX*R|)fjPVRlfhH!MQ zm2mfb(=}k`vMzBG8oL!U4Y6ks{;If%RCa3yi=9g9l4*yxeC>FX0k(x}J9AK-l0}2k zWK`Lu#x~2|C?zP{kVJ6Edr(HiS3xB`c4G|xkpD-O8f{lQb91Y|C^;!|Z$L2dy}~X( z@S0}WR|7)X_V<;AQ`M;h4YO*jg1d9T2GS^JhkcUW{Q{{7K6!)`U)QJLUnNf|DpjLC zt}8Wjh8cTph4Ek9B3q*(x&6m2W5VF&nQ69=msd<(!rW1LL684qu2GOsBGY|V?d*WQ zM%~yYij})?av=fnfD+3?UJao`4dOx@DM*x=P{rm{XTyL!Tz#0QTSlvvaRHZu42!}= z(a{VET@+5<{F2{bJyFe;*i|ByZhRQfUiQlO|akHBf={nsNSILgt5~HD0 zq2~B7B|~s%VBSOZS5iD)v{@}>K6(b-o3BkZY{{pVhrX1G>eI$Vmdf^_+a4t!ja5z^ z(Q%XBid%p1_$3PSx@TFl**(V6Ec!-^deslSig{hId~+69L~7hbdcq~$kjLY6(^53u z^B?U~xE@qM780NPS&A!_%v9ZrZJ4W4ENZ2mS1Bhh*=EY1vNV2WImP`mk^EFGeqh>> z079hZaUD88Azq*#xZDCGTd9G)N|2bUahCbofug|L1eaJzMSJWplpDIJ6^+cD$jiv{=~nQtL=2-$ zNJsL^%YlhTT!{gUHKgoQcl?fxo_!3+?^#Ysx1ni(qxEAH89Og@x)2LClr+xB=uSI3KxK#*tAsj}>6AI0%m-E>TH>0wQR3n_?$%x*a zFYWpwXabsgolCeV#S=m;p~+Lb+^Hv>G{gF5n1N~GeWeOx)q^r->~i@6buv?OqlTWk z12s%*oa#`5RK|xt<8D3NcS+d|GIO&Ga?_o9 z;Oa|&-pj;zav=^SmW0gsfc0aOsc<~1`=$SA?tdEof4X%2_RG6S-d=gSLi^cRj*cwr zM74m9z?%<*h(6NMjfF&k>JWWssN2D&c7yjPhbQ{IatY3wf!U=Ne7UN5rX8CC%aQEe zT{dsVIF5~`!ZJL%_dgz9oD8J6F;AWt*S@P|;Mv5()BgJa-e84Kd2Z^KAb-w8n@)zC zh+CFD;CT;!)GJ-&oyvI-Oo7K6#9rU6i%Y)jlvK0UlhVmj=2IAjMDd4>^WNox+i_e& zH43tdg;dJt1WDBdobQi?p*l5L@=S0jx-WiK!ma!5Lo$hNG1XSAQNtpW*0wWA5SKEY zvziW*j~hFO_r5h$UE)Ir<_lSRSJzYEl{N3>m_^3fMcr(yc%Eo^=NpuzIK;RynQ3*o zCd7ZmBh~ox;@6mShsmd}5=;)_LmGw#dUGRbTH)-^1O{*vI#cti6!Jz>#~=_<3CXZ= z(_m)2P{mD-JOE3MD2B1>q?d`$eR+!d=tB5>CN)4qrr??;-nH;Qul;u=a>3#psvZ_L z`d%IOxWben+2-^)XQ8Pe+x#wAHx~6=3Ttq2_RxM(;JJfdTNh8Z4TMz~t)(oWM40Ex z71&-EE>p6zZ7FbWBkge;Gc7z*l1gFUXR0fdRqIvD%WG}+PrB&uYVf~!*wC*%qEy}S zwjp2AY$HD*jCT=DZ=WmxpJuw(h3Za(m)m#<^GOX!a(fdiS{RFA&!{?ET8uCb@N^MW zb`V4^s3~&}5YsBT5DK)PsaK4Ihbsj8T+SWDs&+OTm|jRb@nw-}ip4T0 zq?Hs)6}HsgFQcP){KS*`$Zl5da+hq(HSANT%0C-jgk7>0JwR--juIr=R!(6$*bx(} z3$Cc2#PN!18BBjy=|RYC!XVMyDhUfh!=tqf_9q&phVlV&y0dv`7S*lMnP7~uV6xs| zU+npCZ)WCeyqoBsni6DL(JLCdR;cU|gN?3Z_fU@~{zhqGX!<;+dt~Lkx0)!4mg6(&>?i69fjgzL=8s+tT6Fzq60OsO`=2 z_y~7`I;8HkKT}s>DxFA^oT5VcU<7!i{c@M6X9R(Z)JEdFrA|$B+*79+li4kkT*;6;QAl4b&kww6hs_m;X6xTI@h=tl zFCE-d6t3LXF-V{G;lE$qlbHjan{J;D>cA0o#((ciTpBFdM6OO6ixf8xN`4NraJ|eQ z5+zb!p3aA{OpS%AYD4#aM3sGFJ0RqeXU;?OR1>~G*f@~{djpV`2!w-@=rbU zTTKbqv;dSk-r6r(xHvv4@~k2A1s)#(LcTn{$KCP;AD%XTcdW}{xkf0={Wt&i5IWfxLCdI^K%k;l)>uhbt6>4&2G6bt9%)HFq3J_+P3wV z$11f}Y%3xdrP*Vfm1xjcJa*APFMq>LWqGM$jQ!%`L0!%`mFw|TE@F)^ZB5dfuiwNH zY;8GKx9hP-L`X9v-~#g_@Vb31Wr!-|?07O4xfVeiFYV1Z8sAGx9G z%y&Fu?}Wjy$Vk2X!Ck?9#c4FfO(EDQ0lomY2 zzBX(00Yh%_PNbcI_n9+xUB#Ao=2sJ-Mxb6$-?M<>FYKwjdHm+JfC0e|ctElbe{BQd zn))emjkk6N_q3yP0zx&Dlio86;KOVfELD+F%B;rLHEQ1MVV}bC(LB(Q);0Vh zq;770x$amZe7)5tC7a=B z95WK`5e~}}51>#uUImGTmH-JAHPLN*qC6d|psw_+%;MZg3io{-71h@esJug<$C_P4 z{IA9|l-98nB2ySWdC$+#3MgO1N?xp%eIs_H zGX_nB)1J=)&{*OgMs=&Deu+7Q$A({4LyNvrLtAnM$J)xI)dszKKUU_tRjW$n5@7x9 z9+V%c3MEn5(}NBKQ`Fw-7{h97uIaoRyR!c`1S;HqW9 zt#){L=+(atz<)RrdPnwH;84A5a*}-baCoy&AxBM*al#Zux{kw)xgjYDg}yC+hbQBB zu41R5=Hz>s9Dyc3TSy zj~O{tHGP*+$l~T(%Dui%B*(cfVafsaElb*(3AIA-hbC6D$-tc)^PX~4+#FyiVB_`;oiV!>9=riuFSRQ_W zJ!du$*mFFqsLcDhOlf(YELvG2rHK*k96K(z+ZLHMTu}G==klb=0}au;Zub(RCk#zl z+h~+hH8F>8e<~ZpUI?lmFmHk^wJbcMil|(KJai_9{eLQlRNyT^`m>5Va`e$hYMa=RvFfu2*NSZ}8w-&jZC9xSLTflhT7XolOKg?CY-e3=Z&yG zHkzcGcu)MSe;hSKzbQY~S3iqt{w{y|%z~H3Eowq(uu?IBHAbgxRP0qB=)&Pwz_5s{ z_D*#Z?b`i_>?lbX+4sn*vANQnF5eSwv)2u)4sE9gVq6%R=Yv z|DYp&Nw?2gg^VHp4|K(U+lY|j1{}#e&N(DrT$xH9jI4ZR)cx$DrS0xF7D;Yo8HW`N zJ5LvL{(Uy}<-yjoEzZ*Dg)k=NJYCn45{T(M^RUo+(3_h4v~JIiF*Vt+Ump=O5`wMI zw<;k)L8deD$NpG-dixTM*EyYHXi+~!xt}gj{8PCE^NIQY)FAh_5dFjM{u8!_uwvjZ zB~5Ix^cIi~(kzr9q1RBQ_YR>6Dn0bxi}ViC5l~N__dV}^e4hR8eSQ0!Kfdo= zhl`8Ma5MJ|_pCLu?lo)uep*xg60|X7|io=c)$f?QD-F-0UgGxs zX*RqOFv*OKFqDgle{z49SRA(DC$eO}m@&&w(bK1ADb3{ji@-~&trTFN2$>iu`7amB ztI~h0P;E2+8`i-Pn{4(9@GE3AWx9oTDmgmEAay#)v847r`<25aXQbm^%csVTv%tOE zIfV#QEivopSqrVr>Wp{Vzzb?l8679n>`Fl_R6R<~Wfwscc_*(;jrJe1?E0Jh{+}bu zf9@gw16lt6%=RT*IP$a8>y>4sXnq}AgmPQt-BFu99=y`U(#I&2*v&lw_=jZo_McQ3 z8$TVsvh%K3;6nMuNyL&p>p&HV)mj6N1%st3_=`PB{-JUL#qGnv939)XNOrvfiAmyi z3xtCl#}3sWDhK?|rUZ@j@vl`vp@SZO^}Ab^NJZjI98x2OkF$U)tfO;9L#OHoJuYu} zBrevo&lW2<*%Ylbva4#HyqUAkx~r%2=vyY(;#C^rl4Fg6e&R_kW|Q~RG~xWc#nIm+ zr@Z>XNHz72fsGjL#OU$2KQsr=MZkO7(|MW%asLb+syit$jh5CC8u%(r5Ej<+H` zleV2k5B!r#C$Wm}rx$MzK@tyj`_<*666us#)SB{|&)kbG`dZdgKDy1XKh9oFdTHwv)(_g)NkNDzNnaN?Yfu#6}uKC4o3iij|?FiI~ zpjxEPym|C)iI)&@bs@L_u%B=Ej)Kpm0*eJtiZ_h}xv8$47@qfZD#>dj3I5Xy+wH3E z^LAI6Oe&{0_ns+#C{G|gC@Jqd$ zK>Wim<$K}YbQ+TDuO#=%RZ8yXhoNOsd(Q%Dt&^8)y8C$zEQtOu29~vM3sT6tFx6GB zcpQE92 zUQf533X&;*4&N-Y>0k~qx~O(!faa6nV0WjVL~@Ep7Mh&4op%1=D*x;K|2CndTO{_3 z^Hvweyc_pulkq5iV(3+ zq4JYtMsBp34bAe+-cx!}2+Xd*slr9-sAiSYV*-u8b@ONS+J~e~`8iQE+Z@e|ASwAc zL7JKw8#pctxa8o=@}!su%8f)1nSW*2&yH|Oy#TI^=ap-ghz04`EgrimxiuLGjlml@ zm*AjS8Ysuk(YHt{CTL<@CWMbpJIqE(I>w^T;+B3}6i?Y`v;6yI8HD#@_@y6ot0#e_>$3l5IiXLC!QZZK;j za4XzTaAZlb72g%iz~DTA>KdC2Cjpb}XkwVT#BedW_u?!9wuDIbN*u|6K18G6`MtI_ z$`UM{dK7B?v$1#l^6g3U_`{r#=%pyrb`@}@>dUAlei~&nY%Os!OeZ^ELB7@U)8nrz zSGt&ky|Z?z5UgX~x$tk7utXkARJnf8%H-rE6lNepJeH}nN+Zh!-L~ch(j2AjU32?v zE6ieO+I7tJ2_Kqc7uLcV8Z?{zULwv%Gxh*v%Lt44@^NU|?)%6~5SQ*%_dWMV^V}AX z|D1=vmu_93EZchV$<&lHq1>b@civ|uiq5(!GBGZj=?Nvh zfT^bFy^Wel3C_Q)PKA?DT?`MiH5Sq&@J%9c1_0fCyAJ7j{r4{L^|obCpcLn`2HQHb zR+qep)OUg)%aNE!7t9gUJ}KsiG$CW9i)T=nS5>QhG9}`mAR}Q(TP)!t>@9-=G;y-M zll=M4N;kQg0stVkl2cE2{mXVHcv1GYS5}mt1#c)85_89aXk+3_F3e45L)RibnkvOTX?c3*IU=m&Uc5lJ678q0`;8>d_XytA*0JS3j)HVG60(9b(bws z>|7kqy~|(PO*=*U$km*6{7aA)F-1|uN$XM+*$8hK;2X+MSwO+SfxGbA_{Fn1rxxUr zyV~31D@qqx@r%};EkBgMFwQ8XMTShT#N0AWXiUzRT&4-Y zs7O>LvE6uX`=eB1EnowGi=!*05u(ORloio8OBm#E+yH?}#^V}FFUqwFjdxOS$?3Tf z+6iXm{7dcc+0Dt*EVlck7%4|Sd3{FgwbU5<8`U%;soZviIO~oJ5>R0v^%7TwDed9# zmQgKr3R^r#1n40FdC%wndp;GjAMt~p6xnmDFmkyJhdK2Ow(DHKG-_v=IXe*wGrFK6 zdEzkK@)4g!p|#v+Lu|h6-ho!k43 zV4rne_+V>NK8=7lcka`vXkAiWH!jUz1ZDs`^jO>!kSCN-7zzWhV(!RIm)FT%R_03C zrEInQS!{KsZM@SY-*{E$Ixz<05m;3fWu{%LGB_h?wd+GiF6PJq zgwm!?!QU-ay(h)TgZ?a{Zb);*?<7{FwnLt6vgpJd=|XI5QioJ?1m8$9(~nOqVQ{M| z&5M&z0E;eZwrE_PEX-iDlQ2Isa?<$@n3dno#%7Wol($+iy!wlv;K5t>P;1FxwlIdC z*gjTB^>?YlVH-;E_ZIz&PU-XIqOBzb^l>S6OX+tugc;QBEEYT@Zi**o9Ec}NN3Z6Z zPb{yrV6$56i=IOjn=EAcj2x@u`(lCYmol8Pj^+`|VgN5k)@9YSCzfo=IsUn!ZS80q z9UKeGOn)8hecDnDdlIao$So0?k4R1hSu zXv|3L<8?cfQos#ITrossmd?qGKd5J!aL3b<8MVKqPf`8QMHKek%c>fui_j}rqq0{okP`nfjS#y=6KYoF89*-)O;>K?YPb5moyox` z27#fWVS>TY=sz$G@m~tEM%9nvtgZVjU4t8QcVPA@hvpjN4n0xbCQ<-3u(zZiO^8P^ zAm9rkXJ_*ur#L#M&--$+#H#7uh9m@4O7yNerHjQP5A)svoSZ8q(2g7BudXBzI1sL& zxMPw8R}n*fuMZG;>+lfh2xODX1SM>+2(qGoIx&>GH#EV9*FJr}cGW{UV`EfUTE&R) zTq?9y#R-y0OwM!>hj%8}Kei!n>by#gP-)EJNmnaPvgT@>7%L&yCG>fhb*7Oyy$Co9 z(%UnG6-c}b23&nTylfV2?MbUq0oeqFhF-EthLKryVGVu=dT^GmuldLQ@Rm>%-Usbm z?zCUYCw4k=?RYxx)EZA4EPk?A==byWv}4knArC`9`|_w`ZJlL-seNxbT|~XZJAKV} zc>D+bMaRR%A2yZ}75$@_ZaciaY5Cy|{#+xg&BuVP~ zQPJhx_7&jo{{D)tWPwYZUmop$e0AJ~5EnaLY%NFH%4CRD(Ex`u?#3uYOP=CQcMA2b z$B_gCS^wJkT#+DdPVTH3!)I-8u9Cxi;rVL7oM%X2eOz@OjuT31Z(&(}Z=guE(&$7&c$kpcQ8dwK8ZXcsCd{LYEGIzFe6xY;E|-B zHQZ{<*e>VgZA`uPuRj0zd4;O-LlCz{`F2Xr8y;9m4%UBE590tLV|<(4B;WRFB20{Y zAo@`yUb^XUtV$-V?&dI0VsIC62faQPMkZf}!5ov`&)E^wR54pS)_avu|4N$&AA>({ zeOvjC1tKzTGxQEv4@0kjl?n|B`EUv<+t*hk%*+wh?##psb=r^lo=UeL4Wgc~ie49j zjSgi5u)5~w@T;MAWtiAg7T~~WtuU!p7 z<*I&`KusbWFWH*N6fviMbo1n{ob3~uc=fy{{`phrqt>Crpv!U^T_P8GNUW~Y&%|E@ zHmw^xJjlX&Z>pDfcon&B4>F)ziwpw|5;n>ih$>l=O2{5m$|z0mg}))vY5NLId+ow@ z@Tr~Kf~&rrK~7Hz4CFiBvU*v=0-j|HJy+`N-V3*0FbXalZGij`{5d2LN9(3ND@FY7 z3Y3Zyh>7%4;Z6HRFyYrtWfd_vWqd2!Vlj{|eA-w`5X3vAJC2m;&NTSYf?W*Gr zAq~q<``OOoT=H;;R@?P^h;Xr|Ud;Xi%DOZ{_AhC$#o z5p?8^c9a#=W|etPmedAn%?KwUvZ7@kWU5Dz_=mD8c-forC5B{*wS{lN8(%FSyN58u zJ<)1YRelofywj4JuIDWvN~P26@wZ3xdlhj0hEiag@%%yi{Yy`Zy^2Fs_F!ISC9noO zya=Bh*u6$}#lN>{#9sQE`yu?M-S18RRo0ZqoJh`#iF&Fmf~-BK2TL8LsIv}#>NAVo zISpT;;@f(r`xqOz;*%_tt>A)1sD6lv{s|zhH&yJ5`C`y4ucxACyP1&M3-{JeRkuN| z#Uc6VY+z;bS>bEEncrJAuMa0q&{$}*b>9o81tA+iOZ~<6 zqWy9r{04{|Wqs6$Mm+Gk7ipxBAp^alIrIftW&=$NSUFGQf%$lO-0anB?~-XhrF$2< zZv_|Rb+IHL%$HaIj9WBGuDmHFYEN7<*!9FkL{reF?mmegP^-v`l)uhLkiEU3M{|=#{kdD?vvJO^?QuEaMa{|(X*>Z(ypTTD zcJ6a1Q*fBoWZc;65y=9p(sF}o<)(gcm|HoiAwSG6%+@esSD7PbJul-K?4nF8g8kM+jh^#JQc~ zAa;DXdb4F_KfpWN^=Ri+`700cY)k12E!$rNql|m*LdLr8jRs#GA!(yw^QT{j8pJ#W z`_~S)HtjMyJRQ$%JO3FCSmFZ6C9b`6 z>Gm5Q4!|>+-?~u!qb7~7u|N|o%K7q+`y|z0nEfbflL?_E0jqLahaCmbB=rfsg$go^ z(jU_fcWQM+T6NGxaO9v(yysgP2ON>*K&r@X|R zB$kgc3XYpG~0IZ`oQOvFb+$ck(RpNzUUX&+4R+3IoI!a$5MXBQsQhIAQR4>h z{R?;LVF|Oj6ir()vykt6x%DVA!ehxvWeWh9q-g}NWsj+RM#5eZpb*5 zVG3S=JrQS=nn@V-d$Vooht$LT_46G8JFnuNf&OTGO{4tahFu;Kd3REgn4h{y-o<1k*_hrKor`xEt zraBUVngj}$XdSwKLi%l0dfxeOcRoFM(3!%J)7u8hcp(@4l?7r<6gYLJgua;V&U+Pf z^DbAXovu!c1*=kTcFwaG6|zWXU^(!QR}lR7gLZ2iol0dG+s)qG7JXX9^&jBh+E^!gTH7e_)r1W;V zq3~9?^JaMQC!wo2|<9RMiQr3GIW2JMO@=kcrW~Q690)3Za8_nIS&sX8h^GY2S$D6sg?c~l_N}2Cx%Fr9M(>rZtx0+Qn(sAh zvoxDC&lc8h7Ok~67_15O=l8>hMR!u1+s=pk#g5GmyKgxi>y}c~>A5ih951$%Zbh=yPf}wHX6~-fOeh{L!6T7Bp@>0;SkQA;+ z7ZRu0Ak8>~2R#c)W*(ffAEO+*T3>kJt0`IlPAhKfF6GGqxX3*wxMu47L0(Y*eF*z7 zJdFXjhse&az(+43L&BH|QC-tuL{2t_HJH`HD^2lnEGnl^Fz8bbMjX$2HgVRqnUym+ z7Hm-^x7wc!{tD1pPWiDxb1BD_IfnKx`WN~Ho}9j5OwHer@aGx1^eAG%=6#`_6sZgQ z#aH+*0&R!a`XByf)%^35`MkDuL(Ki`iK)=gqKaQzGYs+_)oD{Z>&${T z(Em7*;MX;<4i&G*D4}Y#%uNpp?Xo62VKXxNiPL3W05iOg3#v~aXCW62SnV#%*S93} z;P+E8&iKh#`-kEc9gHTg(a3F$ms4c%Q7jg|Ur%$ZVP_v>s}5+|j#B44TBBkLX^w(H z6^w;RX?za&i|GqKbVa8sCKuFEx@uzp5Kwx@3$@y9mv%=Eb%7{B@!qB!dc3kpIXD5p z6ApJh1{ca^o}q=hd9os=k@&Dj*7`p{5B*6V4oYaU*2UuEa0-~>ngp|R5v-)!@&gL* zq;Iuz4~dbGuWn0`5XWjGQat+%hRNf0>T4uFy{lX1sCFIF_d!l>g zJ&`X(doWwICC5Ap8HH1lIfclKK*5vV;@cSj>UE7{E+b=gt~u8fKZ#M3DXYSq28OX- ze|qd3+i*|SLcKi|c>^b_(t>0SU~cch3Ipn*Vic zt9e`4c-o<C5~lmrga8XNic4Cb=iD)%*@M$826`%BH2%^+ofx)I$p?V z@O3P{uHwC^!=XdJPH$vt-YVB;6PwkrSv;y^PJ(sxq!)%E*eu&ay9){Xu-!hEvT(RL zU*W#N$-uF|E~E?ja`Ds4LFtB(LF&s4$qVy;m|j-IY47wOQDhc28nGqhhPQRGI8V0s zuk9xfQQwv9CO4Qtp${f^@j&X;S+D;pqyG!F-)wk`c5r@31DW0O`~2#v7$Q{iOOOTM-NPm7_W@!Q1z*W zy4&?k@W)is=vE|~6xvk;|LNR=CEB>9TWezphT2$x zb!^8I9teJ8`&^wGWucJB5EswNUqS7JF5pFdGTC4N~%xBOn(_CT07q2_t$g+vf~^Aiij%|kNl$xgWAeg_{9pUpA@*vZ;RAo0*((o5 zZ6);MRlr`}bNSN}z6@INMGFG{#ZCZVr7#_9J`?~^T`A9N`cC)^y=njWSx%~%Cs+C0 ze5|2au%+&)!_~Xr(_WS0kJgS2eH8F(>KnG-;>ruEqZg=T{F<)!AM2dyXZ*gxex=O& z+epHn$#=)64)(ke%rXUOPYPSopLxtA=DtXlk5{+=5+*2?N4l@nF)0j@GL)rP$L2lI zgHZKB4Dm2X_f%eh=BK8L=08eV) zN)EsP0A3bQcUBF}Lwq|1?vk04M8E2}=ABYg@d?SKj)@0P04)ki*beuy3qAz z3!f3xIn|apqdM_y27enMK8s-7Zj;!8ZQcK`Vp*@*k`e}@u zW!)ir%@f8UQpT8*=lF~RMjoAT3T=UvKJQ+7>oWGm7&9t0#`eK($OO7!Xr}W75b?fX z^*^6J|D|U`SiG`C|XY2UVR>F*Ml8Y%VB<77GfN^Ajb!9d1MC z`ECMqq3?YGU+ymTE--M3u##)Kw%T*nIb1_IcZP1_{~IjL4eg?|+x6r>zOnfg)HIJ$ z=u~*KtgD@V#{4XpC#Zh>mw^!6tT8_e=U6+gPX)2&sSPveJYf_vS$LR|7b>RWmD3%G zsx^!lRM4kZw~LJ$$c~@TQME%6#qFxp^#S+~{1flT)lG4UvH^28ILk>tjT=}=2 zkH2>MU)OH_$CAsRL=B(bQCRvW>?iQq;`3jd$O<5_7jY)TxT*&s`gvoO1~4ewWgRHG z|6_6eNDaL{`llc@2IUs&egFAf{&OScc2Ab$}B>I_rjV#Zu+hZXW@O6 zr}IbNUoz*?c7B+TibIIdOE5gPPjtcJD`|FCTk>XxDWoI z^@i4~0pR0511|m|-$Yv4`nYc)>C*F8Ezb+Rua5q8Kv&2{hzcieg+DdL17Ukg)@i4_ zNx$cI4I09tSxRmr8CNN%Efk8Ai)WA-iA}#FlNDRe^v0O+K@z9Xy^5))bxzO<*JDzb zVza5IZy{S!53-tAn5p`FCyx&I@!SbVlBk5&1TBWE32uVSwHQV{6|IZBwfiHJJABod z&b%zZJao4ccz%_7ck>*v!cB45;|ITDegP0&HIpP_}>5c0!^3Kl*D^>JN}CV zAxEgiy!1U8Mh6sjRze8^>ULWH{@MLC{%}g`7@>?hk%YF@{G|SWEl5{+$MUVCchds} zsi+-09w^C>I?#_~(`?JhDR1y|5D-vvqxWuiKxBF_k0o;-l(%SNKa*>5)t+P{K5-}Lp5Fa=h@3)YCDH#M_au0mJI2Q zt{1na5yjvY?>Ld6w*d9X+9~Bsr*CHpmcQAaS4J$RDpZmSEZEDI*Hr|L5;pYcLYas4 zgtDn#$M%*wg!_MX`%G|?3ewG8W@qB7Yu6f|q07uGhQh&;)oFtzH#mk2ZFno0$#*** zb?#<*=7$^6r~kYO_WP3b17gyC#o*L5e%W39<48y8y=|wB{aO*#BhGY1MRpU^Rc8rylc z2h(rP+09rwK_-<2SVKbmJ5eWuRBocaimr6M@K@jd90~KlA+eF~>UF}RY1ucFeGL_9 zA>lYjhQK8fpbF2NqDT$lqHQShFc=1pvxU-RmA<6NJYTujIAPc@Y`0k;uytEII38S` zRW?18CCrctQEoR=*ecHT2}icYai@4+$dz0=wMviC?wb+>S&e_WNqknLcV777`4s(V zfmW@5USo+~YCGZ=!C8Xrl02i0YUpzfYCTYm{EEI@ zc|D5s82Uk-cJ-6E6Wo#qgBT1&DI93U6q-AGZLXE&1m4hL#(;UifTV zMO$u^91^QeN(1kZun%3A(1~ocIGV->hYa?+ldvo6WAx`nF(VvT>u@t5_P+)V1<$1)%l0^w%G589#(=64}$jRT0>gxLIXL*1ozf zr8W9Idp+pS&I4kz_3Luadkw|LZ?2_<7#)~?T-p~+tDyD3vgksOki*znX>ZR5!g~`d zXHs3i2m%p5uFA3Bsinwt;YF9y1SaO>C4@SY)2;$sz|s1AjNxQ9p^kB*X|%=p)MXz9U{cb3D@Ox+#Q&Tjj}al)&h#xGlz20w5OpPYEy8(7CS#fj~fW# zxKj3ljqvfFG?N)rNpZaTRCd}OJhU9B`@^}?dC>0C1Mb%;kIfa zg%+~3$wJpJ1d%#Zbx6QOU)_%9ai4$D;!1|fs z%7Y|rbX|eVX%uJ-9Vmt8DPp}R@U4Lm#}{+ao>Ge*SW+LZqak(9tz%p^$G^80wuESH zOviNR#xhEqfY}4^nPqw`r9k~BZ{^DPEdICH`z+gE|qHT0* z|7rs{-Kzo^D9tt`G%siJ@I5b?Mh)xUh=L#AAFeUAHm<5+_KLnj!?F&OQK;Jx0J@0S z53UrxFW;KdGhFAjc(MG)dmQ(b`=dn#ON7H)261orMqiL8C^IAsrI^Jm?bOsq1f;`Q zfS7FvNy<)0KT}oo3|3Jh2X9h#z3i(oBGM-w3-EZ?D z&vS}?o9}XGhj=0a==?d#tu#h0T+I101~27#ughQSO8)-m%)j60YWrVopSyFhX5W#& z2(Se`L-KOLXR`+dFnI%ZlZr#1Ac_NBp{2gO*pC71zLMxD!|QyB|He#uu&WqgDmvHL zQ{1(s>TOl)&pv54?^q!lB&4BYxENAYFO7O_@R&Qzxi9Q2Ijt0W{FdDzTiWcE zVdq7oB4g9l_FXqBqnZ*DR*XG^*R_c(hUTIpD>N%D>xb*?sUnEoUWG@`x``{t7%j+O zrD(LpvMHMK+ge3zyP@hST52A|;8RLjqc)^YQNt;%0>iSEoZ~M)SdXHO25}~k66Hu> zRei2WC2Orzm*qh4Z2*7;%t!V7&f3gjW)nO6){xKhwhdp1a*)lgPxw;AC|P4cBGo{L zL=9OyW&R}$poiJ@=KOYc`+BbEh2?O6yW%f`ffE)J=E?qPsZ?LE^v|Gj^85EsrezbW z1$mjd9@&1Tq-XL7I>#0#VbBCHN~_B^RITJFvURB9Z$BwVk^KbaKH;&@`lZH z!QNqU*?7#DR&hJ{lJBW62y#9WS@BIx?#0nuR4!pKX0ZppnVhTJ{48Pm_{Daw3(}71 z&t>%8YzwYqMVv`M^s=Q7ZA)9%T|$$d9yWYv4CJg5XU-uri%AUsC?C}Qf}4_58zJ38Bfzy znY`NOSq}c9Y2N+)uN_JCw~!4kNh3MyGj+( z+HK^wu<={--zQJT5kxy;u!`wi0yCW7lHUo>9j1+k%z$q8|VI)d}#GKt}Cd4tgLuvv~(L`)|*vWY=G2o8$ zL;%}SO|J8M!Dp$CDvBUDK>i>)!H=N1zf4rph2?1!pozS!cR_GJLLo|cdqtd z;Io~Jgn&zdLJwv060Lg`yX)GAiZjQMt%#jD3D$UFmx&dFkdJ{=6y`2+`+VZ*B0ioP`(Ot3(%u%Qz!SFBcPQe?)Gm)$7vQKZZh|)%EGMuVXfYAI}YmyyqR2 zCnb;BeMPjpu)K7T5}ru^^Z9Sv=HXANSev_rP%X46m`aH3L;8uwfWlNxepMR)qBCzM zj9@vdt#{j?&ZEwewPYKjzf)uMDh_hU{vlMnteZ`4vEO+UigC4vY@ADd{h=M_&1K#-C5`r(JCPA}A3POr?1#tGIsmhDb8csGy3YYF#iohbz@8wCCeZv0b+9 zK_fl$G@Plmr2;qL?A759P7dW(S!JowEI$%F3sN?a&|?+)@^5=A9zsAoN7U7qDQ76V zCj@MISUFR1m-^{6urr?7lQaL+&w z_JZ4b(qLRDmF4BMWZkkubLGq_>po+vM@XZ~u#Nr(B}cs>2BK-|H0|2Md8`yph@J6D z1hdG52dsul?vvGan}Ro(O0CJsidcJ-Qp}=ArR2SFAPqLO!PjsoP%KF|X$T8ZU z!Png})+iZm-=<;jLC*399Z62FcGteuvsGx&5%Y5*TV$?t+V_X_Bx`u}qi0nm z(wQ>z=DAZ)_>&}*OQ=eso7CADR4*&US)JKJ&MX#56OF4>O$!y{4x6NNBQuW5s>K?~ z+KckC#^E>|s{wDaAEN`OHB_$qCu+qy)biZC}OISmbRECd24Lm9F~X7ory z+%VR+p|s{AnXEuyM|oUZ9kp4~sEUxAL8r=^mc_BRZ&!?A;v_lzP|0O1+X34;UCeX- zifoZ$Bm=T$s{W0Wy99}D&bGy>XOO`(L{jxckhDrQGcl@>HRaph=3n;eZ#X=`rKVN~ zAG>)P4p*y4Gq{uwY%z`4Sk$u$t{9SQOeFNEc2gb#nV>r7R<55>&ivBi(V0e`fBMWyhi0@)2(7)P=O==s^Rv8UQYYH z&)M0;j$#q1p_V;-A1O0+k2TgF4T&dZ;`ULzy13kqEZ8gS^n4KPMLzr?F8J2TRbIgl z7po(R74YFof@^S-uX=A?rWVr-wPOlJ?N>|8y506C>jbqwnzcFdvotc&L4}uu3^tjN ztnWCPEFn;dcjA?@q&iCiQAI}u7QmP|0eF4f0@R*}Pg8Ia8N=BZI9BbGoS;XZCz}s+ zB|;JCO8mzwz3HB|ps!Rs8QD)^@Z<&`Lp&j>gjAGs8H)Z=76o2cKhdXD{M0BLgvCLa zB+^m+3QkTeGkxNIId(60t8JslWG$hN&Ji8a5Qc=h-#_~eBNxZ^CrTk1*lBAe;nvfNUhhUV~)nGfQ2wt_a!C=kyVA?a^b zJ?r1=#}~MUoY;|A>do}2S$ABcXu7}@X7ym1yA6|^Z1O5Brb@Z-fhWAR3v}R}`vFn2 zh>uePip|*I4tfoJbz0K)444KC%vWwOV&h?rORaiww!IWjnh&3rNj1Pj_L8;---bHW z#|vUR>t885g8}PbX1B0R#>!%IWm&x{b|$f+s%6U-&vVldT<{>BC^j8@`VK8g6BO$$ z7bSpcwR75qW3g0}nogLmSKm*7eK2-?Y*!W-PW~u8D=*1<#Er*UIW(IapFC>_`QQr8KRHw&$=G2YyWjQQBToFub*CY z((U1qtJqMY#t~?{w%L4I@KW=OJjO@O?9w(2zHq7vuD$td>`>t#p*ca1Ys! zXXk)72|bd z(tr0Rtw=BcN(W<)fU#>?vmP2iAyQ;IqOZaq&*g1W^q{{$^7pJji(~a8>sNut|ru{N}O*JneZ8cBAX00yk zqqANGS~Sou1G}uBAgG2txG;Y3y^X#zyePIj(k_-e`(km`6^|e`_^9a(Ti_PgqgipnF914D9X120@f!W~WaelQ7oqH{l%? zDN3`=$+i~PoCuML;?3rA*&rx1zbapqZG4bgqp+&4q{%h�elNm}}AG55y6{Yfv-l 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 literal 0 HcmV?d00001 diff --git a/sei-tendermint/docs/architecture/img/pbts-message.png b/sei-tendermint/docs/architecture/img/pbts-message.png new file mode 100644 index 0000000000000000000000000000000000000000..400f3569021ca719fe06f20e0db17940091751a1 GIT binary patch literal 32028 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 literal 0 HcmV?d00001 diff --git a/sei-tendermint/docs/architecture/img/state-sync.png b/sei-tendermint/docs/architecture/img/state-sync.png new file mode 100644 index 0000000000000000000000000000000000000000..08b6eac43f4af592ca3c1fa9f9003ac0c04f5b12 GIT binary patch literal 101084 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