From 0dafd67ca6fe3f15d78b075bdc31e5baa8540d24 Mon Sep 17 00:00:00 2001 From: Andrew Davis <1709934+Savid@users.noreply.github.com> Date: Mon, 27 Jul 2026 14:57:20 +1000 Subject: [PATCH 1/5] feat(cryo): collect the 16 canonical_execution datasets in-process Replaces the bash-in-a-ConfigMap cryo pipeline with tracker.BlockProcessor implementations. cryo runs as a subprocess, one invocation per block per group emitting every dataset at once; the parquet is decoded in Go and inserted columnar via ch-go. One invocation per block for all 16 datasets costs 101ms against 628ms for sixteen separate ones, because a single cryo call can serve many datasets from the same RPC responses. A group is therefore also the unit of progress: it succeeds or fails as a whole, so one admin.execution_block row represents one thing that actually happened. Four granularities stay decoupled: fetch is one block per group, decode is one parquet per dataset, tracking is one ledger row per block, and insert is a per-dataset rowbuffer flushed on rows or interval. Data-integrity fixes over the pipeline this replaces: - internal_index is a positional counter over parquet file order keyed on the raw transaction hash, with a null hash counted under the key it is stored under rather than dropped. The pandas groupby it replaces dropped null keys, collapsing every block-reward trace in a block onto one sort key and losing one of the two on pre-merge blocks with uncles. - four_byte_counts gains internal_index, so rows differing only by calldata size stop colliding. - Genuinely-absent values land as NULL rather than as a type default, so "absent" and "zero" stay distinguishable for gas and fee columns. - Every group collects the blocks dataset, as a canary it does not write when it is not a member. cryo answers a block it cannot serve with an empty parquet and exit 0, which is indistinguishable from an empty block; blocks is the one dataset whose row count is knowable in advance, so it turns silence into a retryable error. - --include-columns gas_limit is derived from the datasets rather than configured, so it cannot be omitted and silently zeroed. Correctness details worth knowing: - Uses apache/arrow-go for parquet. parquet-go v0.30.1 mis-decodes cryo's LZ4_RAW pages and returns empty byte arrays with no error on 3 of 16 datasets. Only parquet/file is imported, never pqarrow, which would link gRPC. - Parquet stores unsigned integers in signed physical types, so the decoder reinterprets the bits and rejects genuinely signed columns at schema time. Treating a set sign bit as corruption would have failed every block from 2038-01-19. - --hex renders a zero-length byte string as the literal "0x", so the empty-to-NULL guard tests for both. - The startup schema check compares the ch-go column block against the target table in both directions, because a column the mapping never writes is silently server-defaulted. Also fixes three pre-existing defects found on the way: - Manager.checkGaps obtained the limiter through a type switch, so gap detection silently did nothing for any processor it did not enumerate. BlockProcessor gains GetLimiter and the switch is gone. - MarkBlockComplete hard-coded task_count back to 0, destroying the real count written at enqueue. - QueueBlockManually wrote its own ledger row on top of the processor's, without a complete flag or a task count, leaving manually-queued blocks looking permanently incomplete. It now delegates to ProcessBlock, which deletes the second type switch, enqueueSimpleBlockTask and MarkBlockProcessed. QueueResult loses tasks_created, which the manager no longer measures. execution.Node gains RPCEndpoint so cryo can follow the pool away from an unhealthy node; EmbeddedNode returns empty since it has no endpoint. The RPC URL reaches cryo through ETH_RPC_URL rather than argv, which anything sharing the PID namespace can read from /proc, and is redacted from captured stderr. The image gains a static musl cryo built from a pinned commit with a pinned Rust version; both are load-bearing, as an unpinned rustc fails to compile a dependency. The release build caches that stage per architecture, since it is emulated for arm64. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/goreleaser.yaml | 2 + .golangci.yml | 3 + .goreleaser.yaml | 4 + Dockerfile | 23 + README.md | 64 +++ example_config.yaml | 54 ++ go.mod | 37 +- go.sum | 110 ++-- pkg/api/handler.go | 4 - pkg/ethereum/execution/embedded_node.go | 6 + pkg/ethereum/execution/geth/rpc_node.go | 5 + pkg/ethereum/execution/interface.go | 4 + pkg/ethereum/pool_test.go | 4 + pkg/processor/config.go | 6 + pkg/processor/cryo/block_processing.go | 262 +++++++++ pkg/processor/cryo/config.go | 266 +++++++++ pkg/processor/cryo/config_test.go | 211 +++++++ pkg/processor/cryo/coverage.go | 75 +++ pkg/processor/cryo/coverage_test.go | 141 +++++ pkg/processor/cryo/dataset.go | 119 ++++ pkg/processor/cryo/datasets.go | 22 + pkg/processor/cryo/decode/decode.go | 334 +++++++++++ pkg/processor/cryo/decode/decode_test.go | 150 +++++ pkg/processor/cryo/ds_address_appearances.go | 121 ++++ .../cryo/ds_address_appearances_test.go | 101 ++++ pkg/processor/cryo/ds_balance_diffs.go | 147 +++++ pkg/processor/cryo/ds_balance_diffs_test.go | 65 +++ pkg/processor/cryo/ds_balance_reads.go | 132 +++++ pkg/processor/cryo/ds_balance_reads_test.go | 73 +++ pkg/processor/cryo/ds_blocks.go | 187 ++++++ pkg/processor/cryo/ds_blocks_test.go | 46 ++ pkg/processor/cryo/ds_contracts.go | 180 ++++++ pkg/processor/cryo/ds_contracts_test.go | 89 +++ pkg/processor/cryo/ds_erc20_transfers.go | 154 +++++ pkg/processor/cryo/ds_erc20_transfers_test.go | 69 +++ pkg/processor/cryo/ds_erc721_transfers.go | 155 +++++ .../cryo/ds_erc721_transfers_test.go | 102 ++++ pkg/processor/cryo/ds_four_byte_counts.go | 137 +++++ .../cryo/ds_four_byte_counts_test.go | 142 +++++ pkg/processor/cryo/ds_logs.go | 168 ++++++ pkg/processor/cryo/ds_logs_test.go | 92 +++ pkg/processor/cryo/ds_native_transfers.go | 147 +++++ .../cryo/ds_native_transfers_test.go | 75 +++ pkg/processor/cryo/ds_nonce_diffs.go | 134 +++++ pkg/processor/cryo/ds_nonce_diffs_test.go | 62 ++ pkg/processor/cryo/ds_nonce_reads.go | 127 +++++ pkg/processor/cryo/ds_nonce_reads_test.go | 64 +++ pkg/processor/cryo/ds_storage_diffs.go | 143 +++++ pkg/processor/cryo/ds_storage_diffs_test.go | 64 +++ pkg/processor/cryo/ds_storage_reads.go | 136 +++++ pkg/processor/cryo/ds_storage_reads_test.go | 75 +++ pkg/processor/cryo/ds_traces.go | 246 ++++++++ pkg/processor/cryo/ds_traces_test.go | 159 ++++++ pkg/processor/cryo/ds_transactions.go | 232 ++++++++ pkg/processor/cryo/ds_transactions_test.go | 90 +++ pkg/processor/cryo/fetch.go | 394 +++++++++++++ pkg/processor/cryo/fetch_other.go | 9 + pkg/processor/cryo/fetch_test.go | 532 ++++++++++++++++++ pkg/processor/cryo/fetch_unix.go | 15 + pkg/processor/cryo/fixture_test.go | 126 +++++ pkg/processor/cryo/group.go | 118 ++++ pkg/processor/cryo/handlers.go | 196 +++++++ pkg/processor/cryo/integration_test.go | 169 ++++++ pkg/processor/cryo/metrics.go | 49 ++ pkg/processor/cryo/processor.go | 305 ++++++++++ pkg/processor/cryo/schema.go | 96 ++++ pkg/processor/cryo/sink.go | 212 +++++++ pkg/processor/cryo/tasks.go | 63 +++ ..._appearances__15000051_to_15000051.parquet | Bin 0 -> 45719 bytes ...alance_diffs__15000051_to_15000051.parquet | Bin 0 -> 50879 bytes ...alance_reads__15000051_to_15000051.parquet | Bin 0 -> 54527 bytes ...reum__blocks__15000051_to_15000051.parquet | Bin 0 -> 4305 bytes ...__code_diffs__15000051_to_15000051.parquet | Bin 0 -> 1019 bytes ...m__contracts__15000051_to_15000051.parquet | Bin 0 -> 1890 bytes ...20_transfers__15000051_to_15000051.parquet | Bin 0 -> 23222 bytes ...21_transfers__15000051_to_15000051.parquet | Bin 0 -> 11954 bytes ..._byte_counts__15000051_to_15000051.parquet | Bin 0 -> 18595 bytes ...hereum__logs__15000051_to_15000051.parquet | Bin 0 -> 58946 bytes ...ve_transfers__15000051_to_15000051.parquet | Bin 0 -> 56354 bytes ..._nonce_diffs__15000051_to_15000051.parquet | Bin 0 -> 29329 bytes ..._nonce_reads__15000051_to_15000051.parquet | Bin 0 -> 44163 bytes ...torage_diffs__15000051_to_15000051.parquet | Bin 0 -> 84082 bytes ...torage_reads__15000051_to_15000051.parquet | Bin 0 -> 155574 bytes ...reum__traces__15000051_to_15000051.parquet | Bin 0 -> 112527 bytes ...transactions__15000051_to_15000051.parquet | Bin 0 -> 75186 bytes ..._appearances__23000000_to_23000000.parquet | Bin 0 -> 32840 bytes ...alance_diffs__23000000_to_23000000.parquet | Bin 0 -> 34180 bytes ...alance_reads__23000000_to_23000000.parquet | Bin 0 -> 37296 bytes ...reum__blocks__23000000_to_23000000.parquet | Bin 0 -> 4513 bytes ...__code_diffs__23000000_to_23000000.parquet | Bin 0 -> 1019 bytes ...m__contracts__23000000_to_23000000.parquet | Bin 0 -> 21772 bytes ...20_transfers__23000000_to_23000000.parquet | Bin 0 -> 22972 bytes ...21_transfers__23000000_to_23000000.parquet | Bin 0 -> 1284 bytes ..._byte_counts__23000000_to_23000000.parquet | Bin 0 -> 11630 bytes ...hereum__logs__23000000_to_23000000.parquet | Bin 0 -> 45105 bytes ...ve_transfers__23000000_to_23000000.parquet | Bin 0 -> 42945 bytes ..._nonce_diffs__23000000_to_23000000.parquet | Bin 0 -> 19392 bytes ..._nonce_reads__23000000_to_23000000.parquet | Bin 0 -> 30062 bytes ...torage_diffs__23000000_to_23000000.parquet | Bin 0 -> 46368 bytes ...torage_reads__23000000_to_23000000.parquet | Bin 0 -> 59347 bytes ...reum__traces__23000000_to_23000000.parquet | Bin 0 -> 101911 bytes ...transactions__23000000_to_23000000.parquet | Bin 0 -> 53693 bytes ..._appearances__23000026_to_23000026.parquet | Bin 0 -> 65904 bytes ...alance_diffs__23000026_to_23000026.parquet | Bin 0 -> 56238 bytes ...alance_reads__23000026_to_23000026.parquet | Bin 0 -> 69484 bytes ...reum__blocks__23000026_to_23000026.parquet | Bin 0 -> 4462 bytes ...__code_diffs__23000026_to_23000026.parquet | Bin 0 -> 4110 bytes ...m__contracts__23000026_to_23000026.parquet | Bin 0 -> 16956 bytes ...20_transfers__23000026_to_23000026.parquet | Bin 0 -> 43572 bytes ...21_transfers__23000026_to_23000026.parquet | Bin 0 -> 7949 bytes ..._byte_counts__23000026_to_23000026.parquet | Bin 0 -> 23471 bytes ...hereum__logs__23000026_to_23000026.parquet | Bin 0 -> 110130 bytes ...ve_transfers__23000026_to_23000026.parquet | Bin 0 -> 91849 bytes ..._nonce_diffs__23000026_to_23000026.parquet | Bin 0 -> 31982 bytes ..._nonce_reads__23000026_to_23000026.parquet | Bin 0 -> 57024 bytes ...torage_diffs__23000026_to_23000026.parquet | Bin 0 -> 120852 bytes ...torage_reads__23000026_to_23000026.parquet | Bin 0 -> 181461 bytes ...reum__traces__23000026_to_23000026.parquet | Bin 0 -> 252149 bytes ...transactions__23000026_to_23000026.parquet | Bin 0 -> 108987 bytes pkg/processor/cryo/testdata/schema.sql | 316 +++++++++++ pkg/processor/cryo/values.go | 209 +++++++ pkg/processor/manager.go | 135 ++--- pkg/processor/tracker/block_tracker.go | 35 +- pkg/processor/tracker/block_tracker_test.go | 4 +- pkg/processor/tracker/limiter.go | 2 +- pkg/processor/tracker/limiter_test.go | 2 +- pkg/processor/tracker/processor.go | 3 + .../transaction/simple/block_processing.go | 4 +- pkg/processor/transaction/simple/processor.go | 5 + .../transaction/structlog/block_processing.go | 4 +- .../transaction/structlog/processor.go | 5 + .../structlog_agg/block_processing.go | 4 +- .../transaction/structlog_agg/processor.go | 5 + pkg/state/manager.go | 6 +- 134 files changed, 8682 insertions(+), 161 deletions(-) create mode 100644 pkg/processor/cryo/block_processing.go create mode 100644 pkg/processor/cryo/config.go create mode 100644 pkg/processor/cryo/config_test.go create mode 100644 pkg/processor/cryo/coverage.go create mode 100644 pkg/processor/cryo/coverage_test.go create mode 100644 pkg/processor/cryo/dataset.go create mode 100644 pkg/processor/cryo/datasets.go create mode 100644 pkg/processor/cryo/decode/decode.go create mode 100644 pkg/processor/cryo/decode/decode_test.go create mode 100644 pkg/processor/cryo/ds_address_appearances.go create mode 100644 pkg/processor/cryo/ds_address_appearances_test.go create mode 100644 pkg/processor/cryo/ds_balance_diffs.go create mode 100644 pkg/processor/cryo/ds_balance_diffs_test.go create mode 100644 pkg/processor/cryo/ds_balance_reads.go create mode 100644 pkg/processor/cryo/ds_balance_reads_test.go create mode 100644 pkg/processor/cryo/ds_blocks.go create mode 100644 pkg/processor/cryo/ds_blocks_test.go create mode 100644 pkg/processor/cryo/ds_contracts.go create mode 100644 pkg/processor/cryo/ds_contracts_test.go create mode 100644 pkg/processor/cryo/ds_erc20_transfers.go create mode 100644 pkg/processor/cryo/ds_erc20_transfers_test.go create mode 100644 pkg/processor/cryo/ds_erc721_transfers.go create mode 100644 pkg/processor/cryo/ds_erc721_transfers_test.go create mode 100644 pkg/processor/cryo/ds_four_byte_counts.go create mode 100644 pkg/processor/cryo/ds_four_byte_counts_test.go create mode 100644 pkg/processor/cryo/ds_logs.go create mode 100644 pkg/processor/cryo/ds_logs_test.go create mode 100644 pkg/processor/cryo/ds_native_transfers.go create mode 100644 pkg/processor/cryo/ds_native_transfers_test.go create mode 100644 pkg/processor/cryo/ds_nonce_diffs.go create mode 100644 pkg/processor/cryo/ds_nonce_diffs_test.go create mode 100644 pkg/processor/cryo/ds_nonce_reads.go create mode 100644 pkg/processor/cryo/ds_nonce_reads_test.go create mode 100644 pkg/processor/cryo/ds_storage_diffs.go create mode 100644 pkg/processor/cryo/ds_storage_diffs_test.go create mode 100644 pkg/processor/cryo/ds_storage_reads.go create mode 100644 pkg/processor/cryo/ds_storage_reads_test.go create mode 100644 pkg/processor/cryo/ds_traces.go create mode 100644 pkg/processor/cryo/ds_traces_test.go create mode 100644 pkg/processor/cryo/ds_transactions.go create mode 100644 pkg/processor/cryo/ds_transactions_test.go create mode 100644 pkg/processor/cryo/fetch.go create mode 100644 pkg/processor/cryo/fetch_other.go create mode 100644 pkg/processor/cryo/fetch_test.go create mode 100644 pkg/processor/cryo/fetch_unix.go create mode 100644 pkg/processor/cryo/fixture_test.go create mode 100644 pkg/processor/cryo/group.go create mode 100644 pkg/processor/cryo/handlers.go create mode 100644 pkg/processor/cryo/integration_test.go create mode 100644 pkg/processor/cryo/metrics.go create mode 100644 pkg/processor/cryo/processor.go create mode 100644 pkg/processor/cryo/schema.go create mode 100644 pkg/processor/cryo/sink.go create mode 100644 pkg/processor/cryo/tasks.go create mode 100644 pkg/processor/cryo/testdata/b15000051/ethereum__address_appearances__15000051_to_15000051.parquet create mode 100644 pkg/processor/cryo/testdata/b15000051/ethereum__balance_diffs__15000051_to_15000051.parquet create mode 100644 pkg/processor/cryo/testdata/b15000051/ethereum__balance_reads__15000051_to_15000051.parquet create mode 100644 pkg/processor/cryo/testdata/b15000051/ethereum__blocks__15000051_to_15000051.parquet create mode 100644 pkg/processor/cryo/testdata/b15000051/ethereum__code_diffs__15000051_to_15000051.parquet create mode 100644 pkg/processor/cryo/testdata/b15000051/ethereum__contracts__15000051_to_15000051.parquet create mode 100644 pkg/processor/cryo/testdata/b15000051/ethereum__erc20_transfers__15000051_to_15000051.parquet create mode 100644 pkg/processor/cryo/testdata/b15000051/ethereum__erc721_transfers__15000051_to_15000051.parquet create mode 100644 pkg/processor/cryo/testdata/b15000051/ethereum__four_byte_counts__15000051_to_15000051.parquet create mode 100644 pkg/processor/cryo/testdata/b15000051/ethereum__logs__15000051_to_15000051.parquet create mode 100644 pkg/processor/cryo/testdata/b15000051/ethereum__native_transfers__15000051_to_15000051.parquet create mode 100644 pkg/processor/cryo/testdata/b15000051/ethereum__nonce_diffs__15000051_to_15000051.parquet create mode 100644 pkg/processor/cryo/testdata/b15000051/ethereum__nonce_reads__15000051_to_15000051.parquet create mode 100644 pkg/processor/cryo/testdata/b15000051/ethereum__storage_diffs__15000051_to_15000051.parquet create mode 100644 pkg/processor/cryo/testdata/b15000051/ethereum__storage_reads__15000051_to_15000051.parquet create mode 100644 pkg/processor/cryo/testdata/b15000051/ethereum__traces__15000051_to_15000051.parquet create mode 100644 pkg/processor/cryo/testdata/b15000051/ethereum__transactions__15000051_to_15000051.parquet create mode 100644 pkg/processor/cryo/testdata/b23000000/ethereum__address_appearances__23000000_to_23000000.parquet create mode 100644 pkg/processor/cryo/testdata/b23000000/ethereum__balance_diffs__23000000_to_23000000.parquet create mode 100644 pkg/processor/cryo/testdata/b23000000/ethereum__balance_reads__23000000_to_23000000.parquet create mode 100644 pkg/processor/cryo/testdata/b23000000/ethereum__blocks__23000000_to_23000000.parquet create mode 100644 pkg/processor/cryo/testdata/b23000000/ethereum__code_diffs__23000000_to_23000000.parquet create mode 100644 pkg/processor/cryo/testdata/b23000000/ethereum__contracts__23000000_to_23000000.parquet create mode 100644 pkg/processor/cryo/testdata/b23000000/ethereum__erc20_transfers__23000000_to_23000000.parquet create mode 100644 pkg/processor/cryo/testdata/b23000000/ethereum__erc721_transfers__23000000_to_23000000.parquet create mode 100644 pkg/processor/cryo/testdata/b23000000/ethereum__four_byte_counts__23000000_to_23000000.parquet create mode 100644 pkg/processor/cryo/testdata/b23000000/ethereum__logs__23000000_to_23000000.parquet create mode 100644 pkg/processor/cryo/testdata/b23000000/ethereum__native_transfers__23000000_to_23000000.parquet create mode 100644 pkg/processor/cryo/testdata/b23000000/ethereum__nonce_diffs__23000000_to_23000000.parquet create mode 100644 pkg/processor/cryo/testdata/b23000000/ethereum__nonce_reads__23000000_to_23000000.parquet create mode 100644 pkg/processor/cryo/testdata/b23000000/ethereum__storage_diffs__23000000_to_23000000.parquet create mode 100644 pkg/processor/cryo/testdata/b23000000/ethereum__storage_reads__23000000_to_23000000.parquet create mode 100644 pkg/processor/cryo/testdata/b23000000/ethereum__traces__23000000_to_23000000.parquet create mode 100644 pkg/processor/cryo/testdata/b23000000/ethereum__transactions__23000000_to_23000000.parquet create mode 100644 pkg/processor/cryo/testdata/b23000026/ethereum__address_appearances__23000026_to_23000026.parquet create mode 100644 pkg/processor/cryo/testdata/b23000026/ethereum__balance_diffs__23000026_to_23000026.parquet create mode 100644 pkg/processor/cryo/testdata/b23000026/ethereum__balance_reads__23000026_to_23000026.parquet create mode 100644 pkg/processor/cryo/testdata/b23000026/ethereum__blocks__23000026_to_23000026.parquet create mode 100644 pkg/processor/cryo/testdata/b23000026/ethereum__code_diffs__23000026_to_23000026.parquet create mode 100644 pkg/processor/cryo/testdata/b23000026/ethereum__contracts__23000026_to_23000026.parquet create mode 100644 pkg/processor/cryo/testdata/b23000026/ethereum__erc20_transfers__23000026_to_23000026.parquet create mode 100644 pkg/processor/cryo/testdata/b23000026/ethereum__erc721_transfers__23000026_to_23000026.parquet create mode 100644 pkg/processor/cryo/testdata/b23000026/ethereum__four_byte_counts__23000026_to_23000026.parquet create mode 100644 pkg/processor/cryo/testdata/b23000026/ethereum__logs__23000026_to_23000026.parquet create mode 100644 pkg/processor/cryo/testdata/b23000026/ethereum__native_transfers__23000026_to_23000026.parquet create mode 100644 pkg/processor/cryo/testdata/b23000026/ethereum__nonce_diffs__23000026_to_23000026.parquet create mode 100644 pkg/processor/cryo/testdata/b23000026/ethereum__nonce_reads__23000026_to_23000026.parquet create mode 100644 pkg/processor/cryo/testdata/b23000026/ethereum__storage_diffs__23000026_to_23000026.parquet create mode 100644 pkg/processor/cryo/testdata/b23000026/ethereum__storage_reads__23000026_to_23000026.parquet create mode 100644 pkg/processor/cryo/testdata/b23000026/ethereum__traces__23000026_to_23000026.parquet create mode 100644 pkg/processor/cryo/testdata/b23000026/ethereum__transactions__23000026_to_23000026.parquet create mode 100644 pkg/processor/cryo/testdata/schema.sql create mode 100644 pkg/processor/cryo/values.go diff --git a/.github/workflows/goreleaser.yaml b/.github/workflows/goreleaser.yaml index 4674fcc..c4c04c9 100644 --- a/.github/workflows/goreleaser.yaml +++ b/.github/workflows/goreleaser.yaml @@ -56,6 +56,8 @@ jobs: docker context create builders - name: Set up Docker Buildx uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0 + - name: Expose GitHub Actions cache credentials to buildx + uses: crazy-max/ghaction-github-runtime@3cb05d89e1f492524af3d41a1c98c83bc3025124 # v3.1.0 - name: Login to DockerHub uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0 with: diff --git a/.golangci.yml b/.golangci.yml index a189cef..b70bb56 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -80,6 +80,9 @@ linters: - linters: - goconst path: cmd/tools/ + - linters: + - goconst + path: pkg/processor/cryo/ paths: - third_party$ - builtin$ diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 87edc0f..296ceab 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -66,6 +66,8 @@ dockers: build_flag_templates: - "--platform=linux/amd64" - "--provenance=false" + - "--cache-from=type=gha,scope=cryo-amd64" + - "--cache-to=type=gha,mode=max,ignore-error=true,scope=cryo-amd64" - "--build-arg=VERSION={{.Tag}}" - "--build-arg=GIT_COMMIT={{.ShortCommit}}" - "--label=org.opencontainers.image.created={{.Date}}" @@ -91,6 +93,8 @@ dockers: build_flag_templates: - "--platform=linux/arm64/v8" - "--provenance=false" + - "--cache-from=type=gha,scope=cryo-arm64" + - "--cache-to=type=gha,mode=max,ignore-error=true,scope=cryo-arm64" - "--build-arg=VERSION={{.Tag}}" - "--build-arg=GIT_COMMIT={{.ShortCommit}}" - "--label=org.opencontainers.image.created={{.Date}}" diff --git a/Dockerfile b/Dockerfile index 2cf3b45..108ec25 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,25 @@ +# cryo ships no release binaries at all, so it is built from a pinned commit. +# The build must be static: cryo links glibc and OpenSSL 3 dynamically by +# default, and neither exists on the alpine runtime. +# +# Pin the Rust version as well as the commit. cryo itself has been stable for +# ~18 months, but rustc has not: 1.97 fails to compile the ethnum dependency +# with "cannot transmute between types of different sizes", against both the +# musl and gnu targets. +FROM rust:1.83-alpine AS cryo-builder + +ARG CRYO_SHA=559b65455d7ef6b03e8e9e96a0e50fd4fe8a9c86 + +RUN apk add --no-cache musl-dev openssl-dev openssl-libs-static pkgconfig perl make git + +ENV OPENSSL_STATIC=1 OPENSSL_DIR=/usr + +RUN git clone https://github.com/paradigmxyz/cryo /src && \ + cd /src && \ + git checkout "${CRYO_SHA}" && \ + cargo build --release -p cryo_cli && \ + strip target/release/cryo + FROM golang:1.25.4-alpine AS builder RUN apk add --no-cache make git ca-certificates @@ -21,6 +43,7 @@ RUN apk --no-cache add ca-certificates && \ WORKDIR /app +COPY --from=cryo-builder /src/target/release/cryo /usr/local/bin/cryo COPY --from=builder /build/bin/execution-processor . RUN chown -R appuser:appuser /app diff --git a/README.md b/README.md index 507ac35..6843f3f 100644 --- a/README.md +++ b/README.md @@ -251,6 +251,70 @@ StructLogs -> ComputeGasUsed -> ComputeGasSelf -> ComputeMemoryWords -> Classify Finalize -> CallFrameRows ``` +## cryo Datasets + +The `cryo` processors collect the 16 `canonical_execution_*` datasets by +invoking [cryo](https://github.com/paradigmxyz/cryo) as a subprocess, decoding +the parquet it writes, and inserting the rows columnar via ch-go. + +### Groups + +A **group** is one cryo invocation. Because a single invocation can emit many +datasets at once, grouping is the difference between ~628ms and ~101ms of RPC +work per block. The group is also the unit of progress: one invocation succeeds +or fails as a whole, so one `admin.execution_block` row represents one thing +that actually happened. + +Each dataset needs exactly one source RPC method, which gives the natural +grouping: + +| RPC method | datasets | +| --- | --- | +| `eth_getBlockByNumber` | blocks, transactions | +| `eth_getLogs` | logs, erc20_transfers, erc721_transfers | +| `trace_block` | traces, native_transfers, contracts, address_appearances | +| `debug_traceBlockByNumber` | balance_reads, nonce_reads, storage_reads, four_byte_counts | +| `trace_replayBlockTransactions` | balance_diffs, nonce_diffs, storage_diffs | + +Collecting all of them in one group is cheapest. Splitting into the five above +lets datasets be cut over independently, at ~50% more RPC work per block and +five times the ledger rows. + +**The group name is permanent.** It is the `processor` column in +`admin.execution_block`, so renaming a group orphans its progress and moving a +datatype between groups requires a re-seed. + +### Datatypes are not dataset names + +`datatypes` are cryo command-line arguments. Most name one dataset, but +`state_diffs` is a single argument yielding `balance_diffs`, `nonce_diffs` and +`storage_diffs` — naming those three individually in one invocation fails inside +cryo with `Collect failed: schema not provided`. + +### internal_index + +Fourteen of the sixteen tables carry an `internal_index` column. It is not a +dedup tiebreak: ClickHouse preserves neither insertion order nor, through a +Distributed table, any recoverable order at all, so this column is the only +record of the sequence cryo produced — the order of traces, logs and storage +reads within a transaction. + +It is a 1-based counter per transaction hash assigned in parquet file order. +Rows are never sorted or reordered during decode, and a row cryo could not +attribute to a transaction is counted under the key it will be stored with +rather than skipped. + +### Requirements + +- The `cryo` binary on `PATH` (bundled into the image; override with + `binaryPath`). Its version is checked at startup and exported as + `execution_processor_cryo_build_info`. +- Writable scratch space. Each task creates a temp directory, runs cryo into it, + decodes, and removes it. Orphans left by a `SIGKILL` are swept at startup. +- An execution node exposing `trace_*` and `debug_*` (reth or erigon). Note the + `debug_traceBlockByNumber`-derived datasets differ slightly between clients, so + keep a deployment on one client family. + ## Architecture ### Leader Election diff --git a/example_config.yaml b/example_config.yaml index ea1ae3b..81f34e2 100644 --- a/example_config.yaml +++ b/example_config.yaml @@ -90,5 +90,59 @@ processors: # bufferMaxRows: 100000 # Max rows before flush (default: 100000) # bufferFlushInterval: "1s" # Max time before flush (default: 1s) + # cryo processors. One config, one processor per enabled group: a group is a + # single cryo invocation, so it is also the unit of success, failure and + # progress tracking. + # + # Requires the `cryo` binary on PATH (bundled in the image). + cryo: + enabled: false + addr: "localhost:9000" + database: "default" + # binaryPath: "cryo" # Resolved on PATH unless absolute + # tempDir: "" # Scratch space parent, empty = OS default + # fetchTimeout: "2m" # Bounds one cryo invocation + # bufferMaxRows: 100000 # Per dataset, not per group (default: 100000) + # bufferFlushInterval: "3s" # Per dataset (default: 3s) + # maxPendingBlockRange: 2 # Raise substantially for backfill + # globalArgs: ["--hex", "--u256-types", "string"] # Replaces the defaults entirely + + groups: + # The group name is the `processor` key in admin.execution_block and is + # therefore permanent: renaming it orphans its progress, and moving a + # datatype between groups requires a re-seed. + - name: all + enabled: true + # Datatypes are cryo arguments, not always dataset names: `state_diffs` + # is one argument that yields balance_diffs, nonce_diffs and + # storage_diffs. Collecting those three individually fails inside cryo. + datatypes: + - blocks + - transactions + - logs + - erc20_transfers + - erc721_transfers + - traces + - native_transfers + - contracts + - address_appearances + - balance_reads + - nonce_reads + - storage_reads + - four_byte_counts + - state_diffs + # minBlock: 1 # Trace-based datasets cannot trace block 0 + # tablePrefix: "" # Prepended to every target table name + # maxPendingBlockRange: 20 # Overrides the processor-wide setting + + # Splitting by RPC family instead costs ~50% more per block and 5x the + # ledger rows, but lets datasets be cut over independently: + # + # - name: block datatypes: [blocks, transactions] + # - name: logs datatypes: [logs, erc20_transfers, erc721_transfers] + # - name: trace_block datatypes: [traces, native_transfers, contracts, address_appearances] + # - name: debug_trace datatypes: [balance_reads, nonce_reads, storage_reads, four_byte_counts] + # - name: state_diffs datatypes: [state_diffs] + # Application settings shutdownTimeout: 6m diff --git a/go.mod b/go.mod index 8a32246..1d2f106 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.25.4 require ( github.com/ClickHouse/ch-go v0.69.0 github.com/alicebob/miniredis/v2 v2.36.0 + github.com/apache/arrow-go/v18 v18.7.0 github.com/cenkalti/backoff/v4 v4.3.0 github.com/creasty/defaults v1.8.0 github.com/ethereum/go-ethereum v1.16.7 @@ -20,7 +21,7 @@ require ( github.com/testcontainers/testcontainers-go v0.40.0 github.com/testcontainers/testcontainers-go/modules/clickhouse v0.40.0 github.com/testcontainers/testcontainers-go/modules/redis v0.40.0 - golang.org/x/sync v0.18.0 + golang.org/x/sync v0.22.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -29,6 +30,8 @@ require ( github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/ProjectZKM/Ziren/crates/go-runtime/zkvm_runtime v0.0.0-20251001021608-1fe7b43fc4d6 // indirect + github.com/andybalholm/brotli v1.2.2 // indirect + github.com/apache/thrift v0.24.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bits-and-blooms/bitset v1.24.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect @@ -40,7 +43,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.2 // indirect github.com/crate-crypto/go-eth-kzg v1.4.0 // indirect github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/deckarep/golang-set/v2 v2.8.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect @@ -58,6 +61,8 @@ require ( github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect + github.com/goccy/go-json v0.10.6 // indirect + github.com/google/flatbuffers v25.12.19+incompatible // indirect github.com/google/uuid v1.6.0 // indirect github.com/gorilla/websocket v1.5.3 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.5 // indirect @@ -67,8 +72,8 @@ require ( github.com/holiman/uint256 v1.3.2 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jackc/puddle/v2 v2.2.2 // indirect - github.com/klauspost/compress v1.18.0 // indirect - github.com/klauspost/cpuid/v2 v2.3.0 // indirect + github.com/klauspost/compress v1.19.0 // indirect + github.com/klauspost/cpuid/v2 v2.4.0 // indirect github.com/lufia/plan9stats v0.0.0-20250317134145-8bc96cf8fc35 // indirect github.com/magiconair/properties v1.8.10 // indirect github.com/mdelapenya/tlscert v0.2.0 // indirect @@ -84,9 +89,9 @@ require ( github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.1 // indirect github.com/pascaldekloe/name v1.0.1 // indirect - github.com/pierrec/lz4/v4 v4.1.22 // indirect + github.com/pierrec/lz4/v4 v4.1.27 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.64.0 // indirect @@ -103,21 +108,23 @@ require ( github.com/tklauser/numcpus v0.10.0 // indirect github.com/yuin/gopher-lua v1.1.1 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect + github.com/zeebo/xxh3 v1.1.0 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 // indirect - go.opentelemetry.io/otel v1.38.0 // indirect - go.opentelemetry.io/otel/metric v1.38.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.38.0 // indirect - go.opentelemetry.io/otel/trace v1.38.0 // indirect + go.opentelemetry.io/otel v1.43.0 // indirect + go.opentelemetry.io/otel/metric v1.43.0 // indirect + go.opentelemetry.io/otel/sdk v1.43.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.43.0 // indirect + go.opentelemetry.io/otel/trace v1.43.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/crypto v0.43.0 // indirect - golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b // indirect - golang.org/x/mod v0.29.0 // indirect - golang.org/x/sys v0.38.0 // indirect + golang.org/x/exp v0.0.0-20260112195511-716be5621a96 // indirect + golang.org/x/mod v0.36.0 // indirect + golang.org/x/sys v0.47.0 // indirect golang.org/x/time v0.9.0 // indirect - golang.org/x/tools v0.38.0 // indirect - google.golang.org/grpc v1.78.0 // indirect + golang.org/x/tools v0.45.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478 // indirect google.golang.org/protobuf v1.36.11 // indirect ) diff --git a/go.sum b/go.sum index e165a32..e8f8e65 100644 --- a/go.sum +++ b/go.sum @@ -18,8 +18,12 @@ github.com/VictoriaMetrics/fastcache v1.13.0 h1:AW4mheMR5Vd9FkAPUv+NH6Nhw+fmbTMG github.com/VictoriaMetrics/fastcache v1.13.0/go.mod h1:hHXhl4DA2fTL2HTZDJFXWgW0LNjo6B+4aj2Wmng3TjU= github.com/alicebob/miniredis/v2 v2.36.0 h1:yKczg+ez0bQYsG/PrgqtMMmCfl820RPu27kVGjP53eY= github.com/alicebob/miniredis/v2 v2.36.0/go.mod h1:TcL7YfarKPGDAthEtl5NBeHZfeUQj6OXMm/+iu5cLMM= -github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= -github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= +github.com/andybalholm/brotli v1.2.2 h1:HzTuoo2ErYQqf5qvcJInB8uvqSVxRttzkFexPWtnceM= +github.com/andybalholm/brotli v1.2.2/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY= +github.com/apache/arrow-go/v18 v18.7.0 h1:Vw/i+cJyebUofT7JlqFpe65LrmwxULn166jjwStM4HY= +github.com/apache/arrow-go/v18 v18.7.0/go.mod h1:PM6IigLJkdMwIpeHXnymo+xZ52f42a9EYiLtRel4p/A= +github.com/apache/thrift v0.24.0 h1:zy31L1a49QTNB2bG1BBfMXol3yJrTH975G3pPubQVLQ= +github.com/apache/thrift v0.24.0/go.mod h1:zPt6WxgvTOM6hF92y8C+MkEM5LMxZuk4JcQOiU4Esvs= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bits-and-blooms/bitset v1.24.0 h1:H4x4TuulnokZKvHLfzVRTHJfFfnHEeSYJizujEZvmAM= @@ -32,6 +36,8 @@ github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK3 github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/clipperhouse/uax29/v2 v2.7.0 h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk= +github.com/clipperhouse/uax29/v2 v2.7.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM= github.com/cockroachdb/errors v1.11.3 h1:5bA+k2Y6r+oz/6Z/RFlNeVCesGARKuC6YymtcDrbC/I= github.com/cockroachdb/errors v1.11.3/go.mod h1:m4UIW4CDjx+R5cybPsNrRbreomiFqt8o1h1wUVazSd8= github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce h1:giXvy4KSc/6g/esnpM7Geqxka4WSqI1SZc7sMJFd3y4= @@ -68,8 +74,9 @@ github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr github.com/creasty/defaults v1.8.0 h1:z27FJxCAa0JKt3utc0sCImAEb+spPucmKoOdLHvHYKk= github.com/creasty/defaults v1.8.0/go.mod h1:iGzKe6pbEHnpMPtfDXZEr0NVxWnPTjb1bbDy08fPzYM= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dchest/siphash v1.2.3 h1:QXwFc8cFOR2dSa/gE6o/HokBMWtLUaNDVd+22aKHeEA= github.com/dchest/siphash v1.2.3/go.mod h1:0NvQU092bT0ipiFN++/rXm69QG9tVxLAlQHIXMPAkHc= github.com/deckarep/golang-set/v2 v2.8.0 h1:swm0rlPCmdWn9mESxKOjWk8hXSqoxOp+ZlfuyaAdFlQ= @@ -132,6 +139,8 @@ github.com/go-redis/redis/v8 v8.11.5 h1:AcZZR7igkdvfVmQTPnu9WE37LRrO/YrBH5zWyjDC github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo= github.com/go-redsync/redsync/v4 v4.15.0 h1:KH/XymuxSV7vyKs6z1Cxxj+N+N18JlPxgXeP6x4JY54= github.com/go-redsync/redsync/v4 v4.15.0/go.mod h1:qNp+lLs3vkfZbtA/aM/OjlZHfEr5YTAYhRktFPKHC7s= +github.com/goccy/go-json v0.10.6 h1:p8HrPJzOakx/mn/bQtjgNjdTcN+/S6FcG2CTtQOrHVU= +github.com/goccy/go-json v0.10.6/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/gofrs/flock v0.12.1 h1:MTLVXXHf8ekldpJk3AKicLij9MdwOWkZ+a/jHHZby9E= github.com/gofrs/flock v0.12.1/go.mod h1:9zxTsyu5xtJ9DK+1tFZyibEV7y3uwDxPPfbxeeHCoD0= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= @@ -142,6 +151,8 @@ github.com/golang/snappy v1.0.0 h1:Oy607GVXHs7RtbggtPBnr2RmDArIsAefDwvrdWvRhGs= github.com/golang/snappy v1.0.0/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gomodule/redigo v1.9.3 h1:dNPSXeXv6HCq2jdyWfjgmhBdqnR6PRO3m/G05nvpPC8= github.com/gomodule/redigo v1.9.3/go.mod h1:KsU3hiK/Ay8U42qpaJk+kuNa3C+spxapWpM+ywhcgtw= +github.com/google/flatbuffers v25.12.19+incompatible h1:haMV2JRRJCe1998HeW/p0X9UaMTK6SDo0ffLn2+DbLs= +github.com/google/flatbuffers v25.12.19+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -176,10 +187,10 @@ github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= -github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= -github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= -github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y= -github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= +github.com/klauspost/compress v1.19.0 h1:sXLILfc9jV2QYWkzFOPWStmcUVH2RHEB1JCdY2oVvCQ= +github.com/klauspost/compress v1.19.0/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ= +github.com/klauspost/cpuid/v2 v2.4.0 h1:S6Hrbc7+ywsr0r+RLapfGBHfyefhCTwEh3A0tV913Dw= +github.com/klauspost/cpuid/v2 v2.4.0/go.mod h1:19jmZ9mjzoF//ddRSUsv0zfBTJWh3QJh9FNxZTMrGxU= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= @@ -203,8 +214,8 @@ github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxec github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= -github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-runewidth v0.0.20 h1:WcT52H91ZUAwy8+HUkdM3THM6gXqXuLJi9O3rjcQQaQ= +github.com/mattn/go-runewidth v0.0.20/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= github.com/mdelapenya/tlscert v0.2.0 h1:7H81W6Z/4weDvZBNOfQte5GpIMo0lGYEeWbkGp5LJHI= github.com/mdelapenya/tlscert v0.2.0/go.mod h1:O4njj3ELLnJjGdkN7M/vIVCpZ+Cf0L6muqOG4tLSl8o= github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g= @@ -243,8 +254,8 @@ github.com/pascaldekloe/name v1.0.1 h1:9lnXOHeqeHHnWLbKfH6X98+4+ETVqFqxN09UXSjcM github.com/pascaldekloe/name v1.0.1/go.mod h1:Z//MfYJnH4jVpQ9wkclwu2I2MkHmXTlT9wR5UZScttM= github.com/paulmach/orb v0.11.1 h1:3koVegMC4X/WeiXYz9iswopaTwMem53NzTJuTF20JzU= github.com/paulmach/orb v0.11.1/go.mod h1:5mULz1xQfs3bmQm63QEJA6lNGujuRafwA5S/EnuLaLU= -github.com/pierrec/lz4/v4 v4.1.22 h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU= -github.com/pierrec/lz4/v4 v4.1.22/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pierrec/lz4/v4 v4.1.27 h1:+PhzhWDrjRj89TH2sw43nE3+4+W8lSxIuQadEHZyjUk= +github.com/pierrec/lz4/v4 v4.1.27/go.mod h1:EoQMVJgeeEOMsCqCzqFm2O0cJvljX2nGZjcRIPL34O4= github.com/pion/dtls/v2 v2.2.7 h1:cSUBsETxepsCSFSxC3mc/aDo14qQLMSL+O6IjG28yV8= github.com/pion/dtls/v2 v2.2.7/go.mod h1:8WiMkebSHFD0T+dIU+UeBaoV7kDhOW5oDCzZ7WZ/F9s= github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= @@ -258,8 +269,9 @@ github.com/pion/transport/v3 v3.0.1/go.mod h1:UY7kiITrlMv7/IKgd5eTUcaahZx5oUN3l9 github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 h1:o4JXh1EVt9k/+g42oCprj/FisM4qX9L3sZB3upGN2ZU= github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= @@ -276,8 +288,6 @@ github.com/redis/rueidis v1.0.69 h1:WlUefRhuDekji5LsD387ys3UCJtSFeBVf0e5yI0B8b4= github.com/redis/rueidis v1.0.69/go.mod h1:Lkhr2QTgcoYBhxARU7kJRO8SyVlgUuEkcJO1Y8MCluA= github.com/redis/rueidis/rueidiscompat v1.0.69 h1:IWVYY9lXdjNO3do2VpJT7aDFi8zbCUuQxZB6E2Grahs= github.com/redis/rueidis/rueidiscompat v1.0.69/go.mod h1:iC4Y8DoN0Uth0Uezg9e2trvNRC7QAgGeuP2OPLb5ccI= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= -github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= @@ -338,28 +348,34 @@ github.com/urfave/cli/v2 v2.27.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w= github.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= +github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= +github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= github.com/yuin/gopher-lua v1.1.1 h1:kYKnWBjvbNP4XLT3+bPEwAXJx262OhaHDWDVOPjL46M= github.com/yuin/gopher-lua v1.1.1/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= +github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= +github.com/zeebo/xxh3 v1.1.0 h1:s7DLGDK45Dyfg7++yxI0khrfwq9661w9EN78eP/UZVs= +github.com/zeebo/xxh3 v1.1.0/go.mod h1:IisAie1LELR4xhVinxWS5+zf1lA4p0MW4T+w+W07F5s= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 h1:sbiXRNDSWJOTobXh5HyQKjq6wUC5tNybqjIqDpAY4CU= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0/go.mod h1:69uWxva0WgAA/4bu2Yy70SLDBwZXuQ6PbBpbsa5iZrQ= -go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8= -go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM= +go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= +go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= -go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA= -go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI= -go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E= -go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg= -go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM= -go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA= -go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE= -go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs= +go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= +go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= +go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= +go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= +go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw= +go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= +go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= +go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= @@ -373,35 +389,37 @@ go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.43.0 h1:dduJYIi3A3KOfdGOHX8AVZ/jGiyPa3IbBozJ5kNuE04= golang.org/x/crypto v0.43.0/go.mod h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0= -golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b h1:18qgiDvlvH7kk8Ioa8Ov+K6xCi0GMvmGfGW0sgd/SYA= -golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b/go.mod h1:j/pmGrbnkbPtQfxEe5D0VQhZC6qKbfKifgD0oM7sR70= -golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= -golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= -golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= -golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= -golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= -golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/exp v0.0.0-20260112195511-716be5621a96 h1:Z/6YuSHTLOHfNFdb8zVZomZr7cqNgTJvA8+Qz75D8gU= +golang.org/x/exp v0.0.0-20260112195511-716be5621a96/go.mod h1:nzimsREAkjBCIEFtHiYkrJyT+2uy9YZJB7H1k68CXZU= +golang.org/x/mod v0.36.0 h1:JJjpVx6myfUsUdAzZuOSTTmRE0PfZeNWzzvKrP7amb4= +golang.org/x/mod v0.36.0/go.mod h1:moc6ELqsWcOw5Ef3xVprK5ul/MvtVvkIXLziUOICjUQ= +golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= +golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= +golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek= +golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= -golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/term v0.36.0 h1:zMPR+aF8gfksFprF/Nc/rd1wRS1EI6nDBGyWAvDzx2Q= -golang.org/x/term v0.36.0/go.mod h1:Qu394IJq6V6dCBRgwqshf3mPF85AqzYEzofzRdZkWss= -golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= -golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= +golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= +golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/term v0.43.0 h1:S4RLU2sB31O/NCl+zFN9Aru9A/Cq2aqKpTZJ6B+DwT4= +golang.org/x/term v0.43.0/go.mod h1:lrhlHNdQJHO+1qVYiHfFKVuVioJIheAc3fBSMFYEIsk= +golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= +golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= -golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= -google.golang.org/genproto/googleapis/api v0.0.0-20260120221211-b8f7ae30c516 h1:vmC/ws+pLzWjj/gzApyoZuSVrDtF1aod4u/+bbj8hgM= -google.golang.org/genproto/googleapis/api v0.0.0-20260120221211-b8f7ae30c516/go.mod h1:p3MLuOwURrGBRoEyFHBT3GjUwaCQVKeNqqWxlcISGdw= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260120221211-b8f7ae30c516 h1:sNrWoksmOyF5bvJUcnmbeAmQi8baNhqg5IWaI3llQqU= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260120221211-b8f7ae30c516/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= -google.golang.org/grpc v1.78.0 h1:K1XZG/yGDJnzMdd/uZHAkVqJE+xIDOcmdSFZkBUicNc= -google.golang.org/grpc v1.78.0/go.mod h1:I47qjTo4OKbMkjA/aOOwxDIiPSBofUtQUI5EfpWvW7U= +golang.org/x/tools v0.45.0 h1:18qN3FAooORvApf5XjCXgsuayZOEtXf6JK18I3+ONa8= +golang.org/x/tools v0.45.0/go.mod h1:LuUGqqaXcXMEFEruIVJVm5mgDD8vww/z/SR1gQ4uE/0= +gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= +gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= +google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478 h1:yQugLulqltosq0B/f8l4w9VryjV+N/5gcW0jQ3N8Qec= +google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478/go.mod h1:C6ADNqOxbgdUUeRTU+LCHDPB9ttAMCTff6auwCVa4uc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478 h1:RmoJA1ujG+/lRGNfUnOMfhCy5EipVMyvUE+KNbPbTlw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/grpc v1.82.0 h1:vguDnZUPjE26w09A63VoxZPnvPjB5Riyc0mkXPFmAIU= +google.golang.org/grpc v1.82.0/go.mod h1:yzTZ1TB1Z3SG+LIYaI+WiE8D5+PZ3ArnrSp8zF3+/ZA= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/pkg/api/handler.go b/pkg/api/handler.go index d35bb8d..804cff3 100644 --- a/pkg/api/handler.go +++ b/pkg/api/handler.go @@ -43,7 +43,6 @@ type SingleBlockResponse struct { Processor string `json:"processor"` Queue string `json:"queue"` TransactionCount int `json:"transaction_count"` - TasksCreated int `json:"tasks_created"` } //nolint:tagliatelle // Using snake_case for API backwards compatibility @@ -51,7 +50,6 @@ type BlockResult struct { BlockNumber uint64 `json:"block_number"` Status string `json:"status"` TransactionCount int `json:"transaction_count,omitempty"` - TasksCreated int `json:"tasks_created,omitempty"` Error string `json:"error,omitempty"` } @@ -119,7 +117,6 @@ func (h *Handler) queueSingleBlock(w http.ResponseWriter, r *http.Request) { Processor: processorName, Queue: queue, TransactionCount: result.TransactionCount, - TasksCreated: result.TasksCreated, } h.writeJSON(w, http.StatusOK, response) @@ -177,7 +174,6 @@ func (h *Handler) queueMultipleBlocks(w http.ResponseWriter, r *http.Request) { BlockNumber: blockNumber, Status: "queued", TransactionCount: result.TransactionCount, - TasksCreated: result.TasksCreated, }) response.Summary.Queued++ } diff --git a/pkg/ethereum/execution/embedded_node.go b/pkg/ethereum/execution/embedded_node.go index ab97c2f..8f20384 100644 --- a/pkg/ethereum/execution/embedded_node.go +++ b/pkg/ethereum/execution/embedded_node.go @@ -218,3 +218,9 @@ func (n *EmbeddedNode) IsSynced() bool { func (n *EmbeddedNode) Name() string { return n.name } + +// RPCEndpoint returns an empty string: an embedded node is driven through its +// DataSource and has no network endpoint a subprocess could dial. +func (n *EmbeddedNode) RPCEndpoint() string { + return "" +} diff --git a/pkg/ethereum/execution/geth/rpc_node.go b/pkg/ethereum/execution/geth/rpc_node.go index 6c8e469..e3c8b3c 100644 --- a/pkg/ethereum/execution/geth/rpc_node.go +++ b/pkg/ethereum/execution/geth/rpc_node.go @@ -271,6 +271,11 @@ func (n *RPCNode) Name() string { return n.config.Name } +// RPCEndpoint returns the configured JSON-RPC URL. +func (n *RPCNode) RPCEndpoint() string { + return n.config.NodeAddress +} + // ChainID returns the chain ID from the metadata service. func (n *RPCNode) ChainID() int64 { if meta := n.Metadata(); meta != nil { diff --git a/pkg/ethereum/execution/interface.go b/pkg/ethereum/execution/interface.go index 06423f0..9fb356a 100644 --- a/pkg/ethereum/execution/interface.go +++ b/pkg/ethereum/execution/interface.go @@ -66,4 +66,8 @@ type Node interface { // Name returns the configured name for this node. Name() string + + // RPCEndpoint returns the node's JSON-RPC URL, or an empty string for + // nodes that are not reachable over the network. + RPCEndpoint() string } diff --git a/pkg/ethereum/pool_test.go b/pkg/ethereum/pool_test.go index 66a72f6..62ae7b8 100644 --- a/pkg/ethereum/pool_test.go +++ b/pkg/ethereum/pool_test.go @@ -140,6 +140,10 @@ func (m *MockNode) Name() string { return m.name } +func (m *MockNode) RPCEndpoint() string { + return "http://" + m.name + ":8545" +} + // Compile-time check that MockNode implements execution.Node. var _ execution.Node = (*MockNode)(nil) diff --git a/pkg/processor/config.go b/pkg/processor/config.go index 3daf998..6a63a66 100644 --- a/pkg/processor/config.go +++ b/pkg/processor/config.go @@ -4,6 +4,7 @@ import ( "fmt" "time" + "github.com/ethpandaops/execution-processor/pkg/processor/cryo" "github.com/ethpandaops/execution-processor/pkg/processor/tracker" "github.com/ethpandaops/execution-processor/pkg/processor/transaction/simple" "github.com/ethpandaops/execution-processor/pkg/processor/transaction/structlog" @@ -53,6 +54,7 @@ type Config struct { TransactionStructlog structlog.Config `yaml:"transactionStructlog"` TransactionSimple simple.Config `yaml:"transactionSimple"` TransactionStructlogAgg structlog_agg.Config `yaml:"transactionStructlogAgg"` + Cryo cryo.Config `yaml:"cryo"` } // StaleBlockDetectionConfig holds configuration for stale block detection. @@ -175,5 +177,9 @@ func (c *Config) Validate() error { return fmt.Errorf("transaction structlog_agg config validation failed: %w", err) } + if err := c.Cryo.Validate(); err != nil { + return fmt.Errorf("cryo config validation failed: %w", err) + } + return nil } diff --git a/pkg/processor/cryo/block_processing.go b/pkg/processor/cryo/block_processing.go new file mode 100644 index 0000000..6a9210d --- /dev/null +++ b/pkg/processor/cryo/block_processing.go @@ -0,0 +1,262 @@ +package cryo + +import ( + "context" + "errors" + "fmt" + "math/big" + + "github.com/hibiken/asynq" + "github.com/sirupsen/logrus" + + "github.com/ethpandaops/execution-processor/pkg/common" + "github.com/ethpandaops/execution-processor/pkg/ethereum/execution" + "github.com/ethpandaops/execution-processor/pkg/processor/tracker" + "github.com/ethpandaops/execution-processor/pkg/state" +) + +// ProcessNextBlock discovers and enqueues the next block(s) for this group. +func (p *Processor) ProcessNextBlock(ctx context.Context) error { + node := p.pool.GetHealthyExecutionNode() + if node == nil { + return fmt.Errorf("no healthy execution node available") + } + + var chainHead *big.Int + + if latest, err := node.BlockNumber(ctx); err == nil && latest != nil { + chainHead = new(big.Int).SetUint64(*latest) + } + + nextBlock, err := p.stateManager.NextBlock(ctx, p.Name(), p.network.Name, p.processingMode, chainHead) + if err != nil { + if errors.Is(err, state.ErrNoMoreBlocks) { + p.log.Debug("no more blocks to process") + + return nil + } + + return fmt.Errorf("failed to get next block: %w", err) + } + + if nextBlock == nil { + p.log.Debug("no more blocks to process") + + return nil + } + + // A group cannot collect below the highest floor among its datasets, so + // descending past it in backwards mode is the end of the run rather than + // a stall. + if p.processingMode == tracker.BACKWARDS_MODE && nextBlock.Uint64() < p.group.MinBlock { + p.log.WithFields(logrus.Fields{ + "next_block": nextBlock.Uint64(), + "min_block": p.group.MinBlock, + }).Debug("Reached the group's floor, backwards processing complete") + + return nil + } + + blocked, err := p.handleBackpressure(ctx, nextBlock.Uint64()) + if err != nil { + return err + } + + if blocked { + return nil + } + + capacity, err := p.GetAvailableCapacity(ctx, nextBlock.Uint64(), p.processingMode) + if err != nil { + p.log.WithError(err).Warn("Failed to get available capacity, falling back to single block") + + capacity = 1 + } + + if capacity <= 0 { + p.log.Debug("No capacity available, waiting for tasks to complete") + + return nil + } + + blockNumbers, err := p.stateManager.NextBlocks(ctx, p.Name(), p.network.Name, p.processingMode, chainHead, capacity) + if err != nil { + p.log.WithError(err).Warn("Failed to get batch of block numbers, falling back to single block") + + blockNumbers = []*big.Int{nextBlock} + } + + if len(blockNumbers) == 0 { + return nil + } + + if leashErr := p.ValidateBatchWithinLeash(ctx, blockNumbers[0].Uint64(), len(blockNumbers), p.processingMode); leashErr != nil { + p.log.WithError(leashErr).Warn("Batch validation failed, reducing to single block") + + blockNumbers = blockNumbers[:1] + } + + blocks, err := node.BlocksByNumbers(ctx, blockNumbers) + if err != nil { + p.log.WithError(err).WithField("network", p.network.Name).Error("could not fetch blocks") + + return err + } + + if len(blocks) == 0 { + return fmt.Errorf("block %s not yet available", nextBlock.String()) + } + + for _, block := range blocks { + if err := p.ProcessBlock(ctx, block); err != nil { + return err + } + } + + return nil +} + +// handleBackpressure reports whether the pending-block window is full, and +// re-enqueues the blocking block if it has lost its Redis tracking. +func (p *Processor) handleBackpressure(ctx context.Context, nextBlock uint64) (bool, error) { + blocked, blockingBlock, err := p.IsBlockedByIncompleteBlocks(ctx, nextBlock, p.processingMode) + if err != nil { + p.log.WithError(err).Warn("Failed to check incomplete blocks distance, proceeding anyway") + + return false, nil + } + + if !blocked { + return false, nil + } + + if blockingBlock == nil { + return true, nil + } + + hasTracking, err := p.completionTracker.HasBlockTracking(ctx, *blockingBlock, p.network.Name, p.Name(), p.processingMode) + if err != nil { + p.log.WithError(err).Warn("Failed to check block tracking") + + return true, nil + } + + if hasTracking { + return true, nil + } + + p.log.WithFields(logrus.Fields{ + "blocking_block": *blockingBlock, + "next_block": nextBlock, + }).Warn("Detected orphaned block blocking progress, reprocessing") + + if err := p.ReprocessBlock(ctx, *blockingBlock); err != nil { + p.log.WithError(err).Error("Failed to reprocess orphaned block") + } + + return true, nil +} + +// ProcessBlock marks a block enqueued and queues its single collection task. +func (p *Processor) ProcessBlock(ctx context.Context, block execution.Block) error { + blockNumber := block.Number().Uint64() + + recentlyProcessed, err := p.stateManager.IsBlockRecentlyProcessed(ctx, blockNumber, p.network.Name, p.Name(), 10) + if err != nil { + p.log.WithError(err).Warn("Failed to check if block was recently processed") + } + + if recentlyProcessed { + common.BlockProcessingSkipped.WithLabelValues(p.network.Name, p.Name(), "recently_processed").Inc() + + return fmt.Errorf("block %d was recently processed", blockNumber) + } + + // Unlike the transaction processors there is no empty-block shortcut: cryo + // emits per-block rows regardless of transaction count, and a block with no + // transactions still has a header, reward traces and state diffs. + return p.enqueue(ctx, blockNumber, p.queueFor(p.processingMode), "Enqueued block for processing") +} + +// ReprocessBlock re-enqueues a block that is recorded as incomplete but has no +// Redis tracking, using the high-priority queue. +func (p *Processor) ReprocessBlock(ctx context.Context, blockNum uint64) error { + return p.enqueue(ctx, blockNum, p.reprocessQueueFor(p.processingMode), "Reprocessed orphaned block to high-priority queue") +} + +// enqueue records the block as in flight and queues its task. The ledger row is +// written before the task so that a crash between the two leaves a block the +// gap detector can see, rather than a task with nothing tracking it. +func (p *Processor) enqueue(ctx context.Context, blockNumber uint64, queue, logMessage string) error { + if err := p.stateManager.MarkBlockEnqueued(ctx, blockNumber, 1, p.network.Name, p.Name()); err != nil { + p.log.WithError(err).WithFields(logrus.Fields{ + "network": p.network.Name, + "block_number": blockNumber, + }).Error("could not mark block as enqueued") + + return err + } + + if err := p.completionTracker.RegisterBlock( + ctx, blockNumber, 1, p.network.Name, p.Name(), p.processingMode, queue, + ); err != nil { + return fmt.Errorf("failed to register block %d for completion tracking: %w", blockNumber, err) + } + + payload := &ProcessPayload{ + BlockNumber: *new(big.Int).SetUint64(blockNumber), + NetworkName: p.network.Name, + } + + task, taskID, err := p.newTask(payload, p.processingMode) + if err != nil { + return err + } + + p.deleteTaskFromMainQueue(taskID) + + err = p.EnqueueTask(ctx, task, asynq.Queue(queue), asynq.TaskID(taskID)) + + switch { + case errors.Is(err, asynq.ErrTaskIDConflict): + p.log.WithFields(logrus.Fields{ + "task_id": taskID, + "block_number": blockNumber, + }).Debug("Task already exists (TaskID conflict), skipping") + case err != nil: + return fmt.Errorf("failed to enqueue task: %w", err) + default: + common.TasksEnqueued.WithLabelValues(p.network.Name, p.Name(), queue, task.Type()).Inc() + } + + common.BlocksProcessed.WithLabelValues(p.network.Name, p.Name()).Inc() + + p.log.WithFields(logrus.Fields{ + "block_number": blockNumber, + "queue": queue, + }).Info(logMessage) + + return nil +} + +// deleteTaskFromMainQueue drops any pending copy of a task before it is +// re-enqueued elsewhere. An active task cannot be deleted, which is fine: it +// will finish and the TaskID deduplication keeps the outcome idempotent. +func (p *Processor) deleteTaskFromMainQueue(taskID string) { + if p.asynqInspector == nil { + return + } + + mainQueue := p.queueFor(p.processingMode) + + err := p.asynqInspector.DeleteTask(mainQueue, taskID) + if err == nil || errors.Is(err, asynq.ErrTaskNotFound) || errors.Is(err, asynq.ErrQueueNotFound) { + return + } + + p.log.WithFields(logrus.Fields{ + "task_id": taskID, + "queue": mainQueue, + "error": err, + }).Debug("Could not delete task from main queue (may be active)") +} diff --git a/pkg/processor/cryo/config.go b/pkg/processor/cryo/config.go new file mode 100644 index 0000000..28da9d6 --- /dev/null +++ b/pkg/processor/cryo/config.go @@ -0,0 +1,266 @@ +package cryo + +import ( + "fmt" + "regexp" + "strings" + "time" + + "github.com/ethpandaops/execution-processor/pkg/clickhouse" +) + +// Default buffer and execution configuration values. +const ( + DefaultBufferMaxRows = 100000 + DefaultBufferFlushInterval = 3 * time.Second + DefaultBinaryPath = "cryo" + DefaultFetchTimeout = 2 * time.Minute + + // DefaultMaxPendingBlockRange is deliberately far above the shared + // tracker.DefaultMaxPendingBlockRange. That default sizes the transaction + // processors, which fan out one task per transaction, so a handful of + // blocks already saturates the fleet. Cryo emits one task per block, so the + // pending range is the entire fan-out: at the shared default only two tasks + // would ever be in flight and every other worker would idle. + DefaultMaxPendingBlockRange = 50 +) + +// defaultGlobalArgs are passed to every cryo invocation. +// +// --hex emits 0x-prefixed lowercase strings for every byte column, and +// --u256-types string emits U256 values only as decimal strings. Both are safe +// for all datasets and remove the encoding work the target schema would +// otherwise need done after decoding. +// +// Every dataset mapping assumes this encoding, so these are applied before any +// operator arguments rather than being replaceable by them. A replacement would +// change how cryo encodes values without changing any table, so the startup +// schema check would still pass and every mapping would misread the output. +var defaultGlobalArgs = []string{"--hex", "--u256-types", "string"} + +// groupNamePattern constrains a group name to what is safe in a Redis key, four +// asynq queue names, a Prometheus label and a ClickHouse column value. +var groupNamePattern = regexp.MustCompile(`^[a-z0-9_]+$`) + +// reservedArgs are the arguments the fetcher sets itself. clap resolves +// repeated arguments last-wins, so an operator repeating one of these would +// silently take over the invocation: --output-dir would write the parquet +// outside the scratch directory, where the fetch cannot find it and the sweep +// cannot remove it, and --blocks would decouple the output from the block the +// task believes it collected. +var reservedArgs = map[string]struct{}{ + "--blocks": {}, + "-b": {}, + "--output-dir": {}, + "-o": {}, + "--no-report": {}, + "--rpc": {}, + "-r": {}, +} + +// Config holds configuration for the cryo processors. +// +// Unlike the other processors this is one config to many processors: each +// enabled group becomes its own processor with its own checkpoint, because a +// group is one cryo invocation and therefore one unit of success or failure. +type Config struct { + clickhouse.Config `yaml:",inline"` + + Enabled bool `yaml:"enabled"` + + // BinaryPath is the cryo executable, resolved on PATH when not absolute. + BinaryPath string `yaml:"binaryPath"` + + // TempDir is the parent directory for per-task scratch space. Empty uses + // the operating system default. + TempDir string `yaml:"tempDir"` + + // GlobalArgs are appended to the default cryo arguments applied to every + // group. Validate resolves this to the effective list, defaults first. + GlobalArgs []string `yaml:"globalArgs"` + + // FetchTimeout bounds a single cryo invocation. + FetchTimeout time.Duration `yaml:"fetchTimeout"` + + // BufferMaxRows and BufferFlushInterval apply per dataset, not per group, + // because one invocation writes to several tables with volumes an order of + // magnitude apart. + BufferMaxRows int `yaml:"bufferMaxRows"` + BufferFlushInterval time.Duration `yaml:"bufferFlushInterval"` + + // MaxPendingBlockRange bounds how far ahead of the oldest incomplete block + // the processor may enqueue. It defaults to this package's + // DefaultMaxPendingBlockRange rather than the shared tracker default, + // because one cryo task is a whole block instead of a single transaction, + // so this value is the fan-out rather than a multiplier on it. + MaxPendingBlockRange int `yaml:"maxPendingBlockRange"` + + Groups []GroupConfig `yaml:"groups"` +} + +// GroupConfig describes one cryo invocation and the datasets it writes. +type GroupConfig struct { + // Name is the checkpoint key in admin.execution_block, via the processor + // column, and is therefore permanent: renaming a group orphans its + // progress, and moving a datatype between groups is a re-seed. + Name string `yaml:"name"` + + Enabled bool `yaml:"enabled"` + + // Datatypes are the cryo arguments for this invocation. They are not + // always dataset names: state_diffs is one argument yielding three. + Datatypes []string `yaml:"datatypes"` + + // ExtraArgs are appended to the invocation after the global arguments. + ExtraArgs []string `yaml:"extraArgs"` + + // TablePrefix is prepended to each dataset's table name. + TablePrefix string `yaml:"tablePrefix"` + + // MinBlock overrides the lowest block this group will collect. The + // effective floor is the highest of this and its datasets' own floors. + MinBlock uint64 `yaml:"minBlock"` + + // MaxPendingBlockRange overrides the processor-wide setting. + MaxPendingBlockRange int `yaml:"maxPendingBlockRange"` +} + +// Validate checks the configuration and applies defaults. +func (c *Config) Validate() error { + if !c.Enabled { + return nil + } + + if err := c.Config.Validate(); err != nil { + return fmt.Errorf("clickhouse config validation failed: %w", err) + } + + if c.BinaryPath == "" { + c.BinaryPath = DefaultBinaryPath + } + + if err := checkReservedArgs("globalArgs", c.GlobalArgs); err != nil { + return err + } + + // Additive, not a replacement: the defaults describe the encoding every + // mapping reads, and a fresh slice keeps defaultGlobalArgs immutable. + globalArgs := make([]string, 0, len(defaultGlobalArgs)+len(c.GlobalArgs)) + globalArgs = append(globalArgs, defaultGlobalArgs...) + globalArgs = append(globalArgs, c.GlobalArgs...) + c.GlobalArgs = globalArgs + + if c.FetchTimeout <= 0 { + c.FetchTimeout = DefaultFetchTimeout + } + + // Replicas can share a temp filesystem, and the startup sweep deletes any + // scratch directory older than sweepMinAge. A fetch allowed to run that long + // would have its working directory removed underneath it by a booting + // replica. + if c.FetchTimeout >= sweepMinAge { + return fmt.Errorf( + "fetchTimeout %s must be below the orphan sweep age %s, or a restarting replica will delete an in-flight fetch's scratch directory", + c.FetchTimeout, sweepMinAge, + ) + } + + if c.MaxPendingBlockRange <= 0 { + c.MaxPendingBlockRange = DefaultMaxPendingBlockRange + } + + if c.BufferMaxRows <= 0 { + c.BufferMaxRows = DefaultBufferMaxRows + } + + if c.BufferFlushInterval <= 0 { + c.BufferFlushInterval = DefaultBufferFlushInterval + } + + enabled := 0 + seen := make(map[string]struct{}, len(c.Groups)) + claimed := make(map[string]string, len(datasets)) + + for i := range c.Groups { + group := &c.Groups[i] + + if err := group.validate(); err != nil { + return fmt.Errorf("group %d: %w", i, err) + } + + if _, dup := seen[group.Name]; dup { + return fmt.Errorf("duplicate cryo group name %q", group.Name) + } + + seen[group.Name] = struct{}{} + + if !group.Enabled { + continue + } + + enabled++ + + if group.MaxPendingBlockRange <= 0 { + group.MaxPendingBlockRange = c.MaxPendingBlockRange + } + + members, err := datasetsFor(group.Datatypes) + if err != nil { + return fmt.Errorf("group %q: %w", group.Name, err) + } + + // Two groups writing the same table would race on the same rows while + // tracking progress under separate checkpoints. + for _, ds := range members { + if owner, taken := claimed[ds.Name]; taken { + return fmt.Errorf("dataset %q is produced by both group %q and group %q", ds.Name, owner, group.Name) + } + + claimed[ds.Name] = group.Name + } + } + + if enabled == 0 { + return fmt.Errorf("cryo is enabled but no group is") + } + + return nil +} + +func (g *GroupConfig) validate() error { + if g.Name == "" { + return fmt.Errorf("name is required") + } + + if !groupNamePattern.MatchString(g.Name) { + return fmt.Errorf( + "name %q must match %s: it becomes the permanent checkpoint key in admin.execution_block, a Redis key component, four queue names and a metrics label", + g.Name, groupNamePattern, + ) + } + + if !g.Enabled { + return nil + } + + if len(g.Datatypes) == 0 { + return fmt.Errorf("group %q must list at least one datatype", g.Name) + } + + return checkReservedArgs(fmt.Sprintf("group %q extraArgs", g.Name), g.ExtraArgs) +} + +// checkReservedArgs rejects operator arguments that would override what the +// fetcher sets itself. Both the bare flag and its --flag=value form are +// matched, in long and short form. +func checkReservedArgs(field string, args []string) error { + for _, arg := range args { + flag, _, _ := strings.Cut(arg, "=") + + if _, reserved := reservedArgs[flag]; reserved { + return fmt.Errorf("%s must not set %s: the fetcher sets it and cryo takes the last value", field, flag) + } + } + + return nil +} diff --git a/pkg/processor/cryo/config_test.go b/pkg/processor/cryo/config_test.go new file mode 100644 index 0000000..91f6220 --- /dev/null +++ b/pkg/processor/cryo/config_test.go @@ -0,0 +1,211 @@ +package cryo + +import ( + "testing" + "time" + + "github.com/stretchr/testify/require" +) + +// testConfig is the smallest configuration that validates: one enabled group +// collecting one datatype. +func testConfig() *Config { + cfg := &Config{ + Enabled: true, + Groups: []GroupConfig{{Name: "t", Enabled: true, Datatypes: []string{"blocks"}}}, + } + cfg.Addr = "localhost:9000" + + return cfg +} + +func TestValidateAppliesDefaults(t *testing.T) { + t.Parallel() + + cfg := testConfig() + require.NoError(t, cfg.Validate()) + + require.Equal(t, DefaultBinaryPath, cfg.BinaryPath) + require.Equal(t, DefaultFetchTimeout, cfg.FetchTimeout) + require.Equal(t, DefaultBufferMaxRows, cfg.BufferMaxRows) + require.Equal(t, DefaultBufferFlushInterval, cfg.BufferFlushInterval) +} + +// TestValidateDefaultsMaxPendingBlockRange covers the setting that decides how +// many blocks the fleet may work on at once: one cryo task is a whole block, so +// the shared tracker default would leave nearly every worker idle. +func TestValidateDefaultsMaxPendingBlockRange(t *testing.T) { + t.Parallel() + + cfg := testConfig() + require.NoError(t, cfg.Validate()) + + require.Equal(t, DefaultMaxPendingBlockRange, cfg.MaxPendingBlockRange) + require.Equal(t, DefaultMaxPendingBlockRange, cfg.Groups[0].MaxPendingBlockRange, + "a group without an override inherits the processor-wide value") + require.Greater(t, DefaultMaxPendingBlockRange, 2, "the shared default is sized for per-transaction fan-out") +} + +func TestValidateKeepsMaxPendingBlockRangeOverrides(t *testing.T) { + t.Parallel() + + cfg := testConfig() + cfg.MaxPendingBlockRange = 20 + cfg.Groups = append(cfg.Groups, GroupConfig{ + Name: "u", Enabled: true, Datatypes: []string{"logs"}, MaxPendingBlockRange: 5, + }) + require.NoError(t, cfg.Validate()) + + require.Equal(t, 20, cfg.MaxPendingBlockRange) + require.Equal(t, 20, cfg.Groups[0].MaxPendingBlockRange) + require.Equal(t, 5, cfg.Groups[1].MaxPendingBlockRange) +} + +// TestValidateGlobalArgsAreAdditive is the one that matters for correctness of +// the data: dropping --hex or --u256-types leaves the tables unchanged, so the +// startup schema check still passes while every mapping misreads the output. +func TestValidateGlobalArgsAreAdditive(t *testing.T) { + t.Parallel() + + cfg := testConfig() + cfg.GlobalArgs = []string{"--verbose"} + require.NoError(t, cfg.Validate()) + + require.Equal(t, []string{"--hex", "--u256-types", "string", "--verbose"}, cfg.GlobalArgs) +} + +func TestValidateGlobalArgsDefaultWhenUnset(t *testing.T) { + t.Parallel() + + cfg := testConfig() + require.NoError(t, cfg.Validate()) + + require.Equal(t, defaultGlobalArgs, cfg.GlobalArgs) +} + +// TestValidateDoesNotMutateDefaultGlobalArgs guards the package-level slice: a +// merge that appended in place would leak one operator's arguments into the +// defaults every later caller sees. +func TestValidateDoesNotMutateDefaultGlobalArgs(t *testing.T) { + t.Parallel() + + before := append([]string(nil), defaultGlobalArgs...) + + cfg := testConfig() + cfg.GlobalArgs = []string{"--verbose"} + require.NoError(t, cfg.Validate()) + + cfg.GlobalArgs[0] = "--clobbered" + + require.Equal(t, before, defaultGlobalArgs) +} + +func TestValidateRejectsReservedArgs(t *testing.T) { + t.Parallel() + + for _, arg := range []string{ + "--blocks", "-b", "--output-dir", "-o", "--no-report", "--rpc", "-r", + "--blocks=1:2", "--output-dir=/tmp/elsewhere", "--rpc=http://other", + } { + t.Run("globalArgs "+arg, func(t *testing.T) { + t.Parallel() + + cfg := testConfig() + cfg.GlobalArgs = []string{arg} + + err := cfg.Validate() + + require.Error(t, err) + require.Contains(t, err.Error(), "globalArgs") + }) + + t.Run("extraArgs "+arg, func(t *testing.T) { + t.Parallel() + + cfg := testConfig() + cfg.Groups[0].ExtraArgs = []string{arg} + + err := cfg.Validate() + + require.Error(t, err) + require.Contains(t, err.Error(), "extraArgs") + }) + } +} + +func TestValidateAllowsUnreservedArgs(t *testing.T) { + t.Parallel() + + cfg := testConfig() + cfg.GlobalArgs = []string{"--verbose"} + cfg.Groups[0].ExtraArgs = []string{"--include-columns", "gas_limit", "--requests-per-second=50"} + + require.NoError(t, cfg.Validate()) +} + +func TestValidateGroupNames(t *testing.T) { + t.Parallel() + + valid := []string{"blocks", "state_diffs", "erc20", "a1_b2"} + for _, name := range valid { + t.Run("valid "+name, func(t *testing.T) { + t.Parallel() + + cfg := testConfig() + cfg.Groups[0].Name = name + + require.NoError(t, cfg.Validate()) + }) + } + + invalid := []string{"State Diffs", "state:diffs", "state-diffs", "StateDiffs", "stäte", "", "state.diffs", "state/diffs"} + for _, name := range invalid { + t.Run("invalid "+name, func(t *testing.T) { + t.Parallel() + + cfg := testConfig() + cfg.Groups[0].Name = name + + require.Error(t, cfg.Validate(), "a group name becomes a queue name and a permanent checkpoint key") + }) + } +} + +// TestValidateRejectsFetchTimeoutAtSweepAge covers the cross-replica hazard: a +// fetch allowed to outlive the orphan sweep age would have its scratch +// directory deleted by a booting replica sharing the temp filesystem. +func TestValidateRejectsFetchTimeoutAtSweepAge(t *testing.T) { + t.Parallel() + + for _, timeout := range []time.Duration{sweepMinAge, sweepMinAge + time.Second, 3 * sweepMinAge} { + t.Run(timeout.String(), func(t *testing.T) { + t.Parallel() + + cfg := testConfig() + cfg.FetchTimeout = timeout + + err := cfg.Validate() + + require.Error(t, err) + require.Contains(t, err.Error(), timeout.String()) + require.Contains(t, err.Error(), sweepMinAge.String()) + }) + } +} + +func TestValidateAllowsFetchTimeoutBelowSweepAge(t *testing.T) { + t.Parallel() + + cfg := testConfig() + cfg.FetchTimeout = sweepMinAge - time.Second + + require.NoError(t, cfg.Validate()) +} + +func TestValidateSkipsDisabledConfig(t *testing.T) { + t.Parallel() + + cfg := &Config{Groups: []GroupConfig{{Name: "not valid at all"}}} + + require.NoError(t, cfg.Validate(), "a disabled processor is not configured at all") +} diff --git a/pkg/processor/cryo/coverage.go b/pkg/processor/cryo/coverage.go new file mode 100644 index 0000000..edcf5a9 --- /dev/null +++ b/pkg/processor/cryo/coverage.go @@ -0,0 +1,75 @@ +package cryo + +import ( + "errors" + "fmt" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +// ErrIncompleteCoverage reports that cryo returned successfully but its output +// does not cover the blocks that were asked for. +// +// This is the failure the per-block ledger otherwise cannot see. A node serving +// empty traces for a range it has pruned, or a cryo that skips a chunk and +// still exits zero, produces an empty parquet that is indistinguishable from a +// block with genuinely no rows — and the block is then checkpointed complete, +// so nothing ever revisits it. Production lost whole blocks of storage_reads +// exactly this way. +var ErrIncompleteCoverage = errors.New("cryo output does not cover the requested blocks") + +// verifyCoverage checks a group's output against the range it was asked for. +func verifyCoverage(g *Group, tables map[string]*decode.Table, from, to uint64) error { + expected := to - from + 1 + + for _, ds := range g.collected() { + table, ok := tables[ds.Name] + if !ok { + return fmt.Errorf("%w: dataset %s is absent", ErrIncompleteCoverage, ds.Name) + } + + if err := verifyBlockNumbers(ds.Name, table, from, to); err != nil { + return err + } + } + + // blocks is the one dataset with a knowable row count: exactly one per + // block, whatever the block contains. Every group collects it for this + // reason, so the assertion is always available. + table, ok := tables[blocksDataset.Name] + if !ok { + return fmt.Errorf("%w: blocks is absent", ErrIncompleteCoverage) + } + + if got := table.Rows(); got < 0 || uint64(got) != expected { + return fmt.Errorf("%w: blocks has %d rows, expected %d", ErrIncompleteCoverage, got, expected) + } + + return nil +} + +// verifyBlockNumbers checks that every row belongs to the requested range, so +// that output written for the wrong blocks is never attributed to these. +func verifyBlockNumbers(dataset string, table *decode.Table, from, to uint64) error { + if table.Rows() == 0 { + return nil + } + + col, err := table.Int("block_number") + if err != nil { + return fmt.Errorf("dataset %s: %w", dataset, err) + } + + for i := range table.Rows() { + if col.IsNull(i) { + return fmt.Errorf("%w: dataset %s row %d has no block number", ErrIncompleteCoverage, dataset, i) + } + + if got := col.Int(i); got < from || got > to { + return fmt.Errorf("%w: dataset %s row %d is block %d, outside %d-%d", + ErrIncompleteCoverage, dataset, i, got, from, to) + } + } + + return nil +} diff --git a/pkg/processor/cryo/coverage_test.go b/pkg/processor/cryo/coverage_test.go new file mode 100644 index 0000000..11c3cc1 --- /dev/null +++ b/pkg/processor/cryo/coverage_test.go @@ -0,0 +1,141 @@ +package cryo + +import ( + "testing" + + "github.com/stretchr/testify/require" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +func fixtureTables(t *testing.T, block string, datasets ...string) map[string]*decode.Table { + t.Helper() + + tables := make(map[string]*decode.Table, len(datasets)) + for _, ds := range datasets { + tables[ds] = fixtureTable(t, block, ds) + } + + return tables +} + +func TestVerifyCoverageAcceptsRealOutput(t *testing.T) { + t.Parallel() + + group := testGroup(t, "blocks", "transactions", "logs", "state_diffs") + + tables := fixtureTables(t, "b23000000", + "blocks", "transactions", "logs", "balance_diffs", "nonce_diffs", "storage_diffs") + + require.NoError(t, verifyCoverage(group, tables, 23000000, 23000000)) +} + +// TestVerifyCoverageAcceptsGenuinelyEmptyDataset guards against the check +// becoming so strict it rejects normal output: erc721_transfers really does +// have no rows at block 23000000. +func TestVerifyCoverageAcceptsGenuinelyEmptyDataset(t *testing.T) { + t.Parallel() + + group := testGroup(t, "blocks", "erc721_transfers") + tables := fixtureTables(t, "b23000000", "blocks", "erc721_transfers") + + require.Zero(t, tables["erc721_transfers"].Rows()) + require.NoError(t, verifyCoverage(group, tables, 23000000, 23000000)) +} + +// TestVerifyCoverageRejectsSilentlyEmptyBlocks is the case that lost whole +// blocks of storage_reads in production: cryo succeeds, writes an empty +// parquet, and nothing distinguishes that from a block with no rows. +func TestVerifyCoverageRejectsSilentlyEmptyBlocks(t *testing.T) { + t.Parallel() + + group := testGroup(t, "blocks") + + // b23000000's blocks fixture holds block 23000000, so asking for a + // different block is the same shape as cryo returning the wrong window. + tables := fixtureTables(t, "b23000000", "blocks") + + err := verifyCoverage(group, tables, 23000001, 23000001) + + require.ErrorIs(t, err, ErrIncompleteCoverage) + require.Contains(t, err.Error(), "outside 23000001-23000001") +} + +func TestVerifyCoverageRejectsShortBlockCount(t *testing.T) { + t.Parallel() + + group := testGroup(t, "blocks") + tables := fixtureTables(t, "b23000000", "blocks") + + // A range request that comes back with one block is a skipped chunk. + err := verifyCoverage(group, tables, 23000000, 23000009) + + require.ErrorIs(t, err, ErrIncompleteCoverage) + require.Contains(t, err.Error(), "blocks has 1 rows, expected 10") +} + +func TestVerifyCoverageRejectsAbsentDataset(t *testing.T) { + t.Parallel() + + group := testGroup(t, "blocks", "logs") + tables := fixtureTables(t, "b23000000", "blocks") + + err := verifyCoverage(group, tables, 23000000, 23000000) + + require.ErrorIs(t, err, ErrIncompleteCoverage) + require.Contains(t, err.Error(), "dataset logs is absent") +} + +// TestVerifyCoverageCanaryCoversGroupsThatDoNotWriteBlocks is the blind spot +// that made this necessary. cryo asked for a block it cannot serve writes an +// empty parquet and exits zero, so a group of datasets that can all legitimately +// be empty has nothing to distinguish success from silence. Every group +// therefore collects blocks, whose row count is knowable, even when it does not +// write it. +func TestVerifyCoverageCanaryCoversGroupsThatDoNotWriteBlocks(t *testing.T) { + t.Parallel() + + group := testGroup(t, "logs", "erc20_transfers", "erc721_transfers") + + require.NotNil(t, group.Canary, "a group without blocks must collect it as a canary") + require.Contains(t, group.Datatypes, "blocks", "the canary must be asked of cryo") + require.NotContains(t, datasetNames(group.Datasets), "blocks", "the canary must not be written") + + tables := fixtureTables(t, "b23000000", "logs", "erc20_transfers", "erc721_transfers", "blocks") + require.NoError(t, verifyCoverage(group, tables, 23000000, 23000000)) + + // Every dataset empty, which is exactly what a node that cannot serve the + // range produces, and what the old pipeline recorded as success. + delete(tables, "blocks") + require.ErrorIs(t, verifyCoverage(group, tables, 23000000, 23000000), ErrIncompleteCoverage) +} + +func TestNewGroupDoesNotDuplicateBlocksCanary(t *testing.T) { + t.Parallel() + + group := testGroup(t, "blocks", "transactions") + + require.Nil(t, group.Canary, "a group that already writes blocks needs no canary") + require.Equal(t, []string{"blocks", "transactions"}, group.Datatypes) +} + +func datasetNames(datasets []*Dataset) []string { + names := make([]string, 0, len(datasets)) + for _, ds := range datasets { + names = append(names, ds.Name) + } + + return names +} + +// TestGroupRequiresGasLimitColumn pins the one column cryo omits unless asked. +// Losing it does not fail: ClickHouse writes zero for every row, which is how +// staging silently held gas_limit = 0. +func TestGroupRequiresGasLimitColumn(t *testing.T) { + t.Parallel() + + require.Equal(t, []string{"gas_limit"}, testGroup(t, "blocks").RequiredColumns()) + + // Reached through the canary too, so no group can lose it. + require.Equal(t, []string{"gas_limit"}, testGroup(t, "logs").RequiredColumns()) +} diff --git a/pkg/processor/cryo/dataset.go b/pkg/processor/cryo/dataset.go new file mode 100644 index 0000000..62b0479 --- /dev/null +++ b/pkg/processor/cryo/dataset.go @@ -0,0 +1,119 @@ +package cryo + +import ( + "fmt" + "sort" +) + +// Dataset describes one cryo datatype and how its rows land in ClickHouse. +type Dataset struct { + // Name is the cryo dataset name, which is also the parquet file's infix. + Name string + // Table is the target ClickHouse table. + Table string + // InternalIndex marks datasets whose target table carries internal_index. + InternalIndex bool + // MinBlock is the lowest block the dataset can be collected for. Trace + // based datasets cannot trace the genesis block. + MinBlock uint64 + // RequiredColumns are parquet columns cryo only emits when explicitly + // asked, which the group must therefore request. + RequiredColumns []string + // newSink builds the per-dataset row buffer and column mapping. + newSink func(sinkDeps) sink +} + +// Datatype is a cryo command-line argument, which is not always a dataset: the +// state diff datatypes can only be collected through the state_diffs +// meta-datatype, which yields three datasets from one collection. +type Datatype struct { + // Name is the argument passed to cryo. + Name string + // Datasets are the dataset names cryo writes for this datatype. + Datasets []string +} + +// datatypes lists every cryo datatype the processor knows how to collect. +// +// Naming two members of the state diff family in one invocation fails inside +// cryo with "Collect failed: schema not provided", so the meta-datatype is the +// only way to collect them alongside anything else. +var datatypes = []Datatype{ + {Name: "blocks", Datasets: []string{"blocks"}}, + {Name: "transactions", Datasets: []string{"transactions"}}, + {Name: "logs", Datasets: []string{"logs"}}, + {Name: "erc20_transfers", Datasets: []string{"erc20_transfers"}}, + {Name: "erc721_transfers", Datasets: []string{"erc721_transfers"}}, + {Name: "traces", Datasets: []string{"traces"}}, + {Name: "native_transfers", Datasets: []string{"native_transfers"}}, + {Name: "contracts", Datasets: []string{"contracts"}}, + {Name: "address_appearances", Datasets: []string{"address_appearances"}}, + {Name: "balance_reads", Datasets: []string{"balance_reads"}}, + {Name: "nonce_reads", Datasets: []string{"nonce_reads"}}, + {Name: "storage_reads", Datasets: []string{"storage_reads"}}, + {Name: "four_byte_counts", Datasets: []string{"four_byte_counts"}}, + {Name: "state_diffs", Datasets: []string{"balance_diffs", "nonce_diffs", "storage_diffs"}}, +} + +// datatypeByName indexes datatypes for config validation. +var datatypeByName = func() map[string]Datatype { + byName := make(map[string]Datatype, len(datatypes)) + for _, dt := range datatypes { + byName[dt.Name] = dt + } + + return byName +}() + +// datasetByName indexes every dataset the processor can write. +var datasetByName = func() map[string]*Dataset { + byName := make(map[string]*Dataset, len(datasets)) + for _, ds := range datasets { + byName[ds.Name] = ds + } + + return byName +}() + +// DatatypeNames returns every collectable cryo datatype, sorted. +func DatatypeNames() []string { + names := make([]string, 0, len(datatypes)) + for _, dt := range datatypes { + names = append(names, dt.Name) + } + + sort.Strings(names) + + return names +} + +// datasetsFor expands datatype names into the datasets they produce, in the +// order the datatypes were listed. +func datasetsFor(datatypeNames []string) ([]*Dataset, error) { + out := make([]*Dataset, 0, len(datatypeNames)) + seen := make(map[string]struct{}, len(datatypeNames)) + + for _, name := range datatypeNames { + dt, ok := datatypeByName[name] + if !ok { + return nil, fmt.Errorf("unknown cryo datatype %q, expected one of %v", name, DatatypeNames()) + } + + if _, dup := seen[name]; dup { + return nil, fmt.Errorf("cryo datatype %q listed more than once", name) + } + + seen[name] = struct{}{} + + for _, dsName := range dt.Datasets { + ds, known := datasetByName[dsName] + if !known { + return nil, fmt.Errorf("datatype %q yields unregistered dataset %q", name, dsName) + } + + out = append(out, ds) + } + } + + return out, nil +} diff --git a/pkg/processor/cryo/datasets.go b/pkg/processor/cryo/datasets.go new file mode 100644 index 0000000..16b4502 --- /dev/null +++ b/pkg/processor/cryo/datasets.go @@ -0,0 +1,22 @@ +package cryo + +// datasets is every dataset the processor can write. Each descriptor lives +// beside its column mapping in the matching ds_*.go file. +var datasets = []*Dataset{ + blocksDataset, + transactionsDataset, + logsDataset, + erc20TransfersDataset, + erc721TransfersDataset, + tracesDataset, + nativeTransfersDataset, + contractsDataset, + addressAppearancesDataset, + balanceReadsDataset, + nonceReadsDataset, + storageReadsDataset, + fourByteCountsDataset, + balanceDiffsDataset, + nonceDiffsDataset, + storageDiffsDataset, +} diff --git a/pkg/processor/cryo/decode/decode.go b/pkg/processor/cryo/decode/decode.go new file mode 100644 index 0000000..899f60a --- /dev/null +++ b/pkg/processor/cryo/decode/decode.go @@ -0,0 +1,334 @@ +// Package decode reads cryo's parquet output into name-keyed columns. +// +// cryo writes flat, single-level parquet via Polars: every column is an +// OPTIONAL leaf of physical type BYTE_ARRAY, INT32, INT64, DOUBLE or BOOLEAN, +// LZ4_RAW compressed. There are no nested, list, struct or INT96 columns. +// +// Row order is preserved exactly as written, because it carries information +// the target schema encodes as internal_index and cannot recover otherwise. +package decode + +import ( + "errors" + "fmt" + + "github.com/apache/arrow-go/v18/parquet" + "github.com/apache/arrow-go/v18/parquet/file" + "github.com/apache/arrow-go/v18/parquet/schema" +) + +const ( + // batchSize is the number of values requested per ReadBatch call. + batchSize = 8192 + + // maxPrealloc caps how much a file's declared row count may reserve up + // front, so a corrupt footer costs an allocation rather than the process. + maxPrealloc = 1 << 20 +) + +// Kind is the decoded Go representation of a parquet column. +type Kind uint8 + +const ( + // KindString holds BYTE_ARRAY values as Go strings. + KindString Kind = iota + // KindInt holds INT32/INT64 values widened to uint64. + KindInt + // KindFloat holds DOUBLE values. + KindFloat + // KindBool holds BOOLEAN values. + KindBool +) + +func (k Kind) String() string { + switch k { + case KindString: + return "string" + case KindInt: + return "int" + case KindFloat: + return "float" + case KindBool: + return "bool" + default: + return "unknown" + } +} + +// ErrColumnMissing is returned when a requested column is absent from the file. +var ErrColumnMissing = errors.New("column missing from parquet file") + +// Column holds one decoded parquet column. Only the slice matching Kind is +// populated; valid carries the per-row null mask. +type Column struct { + name string + kind Kind + valid []bool + strs []string + ints []uint64 + flts []float64 + bools []bool +} + +// Name returns the parquet column name. +func (c *Column) Name() string { return c.name } + +// Kind returns the decoded representation of the column. +func (c *Column) Kind() Kind { return c.kind } + +// IsNull reports whether row i is null. +func (c *Column) IsNull(i int) bool { return !c.valid[i] } + +// Str returns the string value at row i. The result is meaningless when the +// row is null; callers must check IsNull first. +func (c *Column) Str(i int) string { return c.strs[i] } + +// Int returns the integer value at row i. +func (c *Column) Int(i int) uint64 { return c.ints[i] } + +// Float returns the float value at row i. +func (c *Column) Float(i int) float64 { return c.flts[i] } + +// Bool returns the boolean value at row i. +func (c *Column) Bool(i int) bool { return c.bools[i] } + +// Table holds the decoded columns of one parquet file. +type Table struct { + rows int + cols map[string]*Column +} + +// Rows returns the row count. +func (t *Table) Rows() int { return t.rows } + +// Names returns the decoded column names. +func (t *Table) Names() []string { + names := make([]string, 0, len(t.cols)) + for name := range t.cols { + names = append(names, name) + } + + return names +} + +func (t *Table) column(name string, kind Kind) (*Column, error) { + col, ok := t.cols[name] + if !ok { + return nil, fmt.Errorf("%w: %q", ErrColumnMissing, name) + } + + if col.kind != kind { + return nil, fmt.Errorf("column %q is %s, want %s", name, col.kind, kind) + } + + return col, nil +} + +// Str returns the named column, requiring it to hold strings. +func (t *Table) Str(name string) (*Column, error) { return t.column(name, KindString) } + +// Int returns the named column, requiring it to hold integers. +func (t *Table) Int(name string) (*Column, error) { return t.column(name, KindInt) } + +// Float returns the named column, requiring it to hold floats. +func (t *Table) Float(name string) (*Column, error) { return t.column(name, KindFloat) } + +// Bool returns the named column, requiring it to hold booleans. +func (t *Table) Bool(name string) (*Column, error) { return t.column(name, KindBool) } + +// File decodes every column of a parquet file. +func File(path string) (*Table, error) { + rdr, err := file.OpenParquetFile(path, false) + if err != nil { + return nil, fmt.Errorf("open %s: %w", path, err) + } + + defer func() { _ = rdr.Close() }() + + sch := rdr.MetaData().Schema + + indexes := make(map[string]int, sch.NumColumns()) + for i := range sch.NumColumns() { + indexes[sch.Column(i).Name()] = i + } + + rows := int(rdr.NumRows()) + + table := &Table{rows: rows, cols: make(map[string]*Column, len(indexes))} + + for name, idx := range indexes { + col, colErr := newColumn(sch.Column(idx), rows) + if colErr != nil { + return nil, fmt.Errorf("%s: %w", path, colErr) + } + + table.cols[name] = col + } + + for rg := range rdr.NumRowGroups() { + group := rdr.RowGroup(rg) + + for name, idx := range indexes { + reader, colErr := group.Column(idx) + if colErr != nil { + return nil, fmt.Errorf("%s: column %q row group %d: %w", path, name, rg, colErr) + } + + if readErr := table.cols[name].read(reader); readErr != nil { + return nil, fmt.Errorf("%s: column %q row group %d: %w", path, name, rg, readErr) + } + } + } + + for name, col := range table.cols { + if got := len(col.valid); got != rows { + return nil, fmt.Errorf("%s: column %q decoded %d rows, file declares %d", path, name, got, rows) + } + } + + return table, nil +} + +// newColumn allocates a column sized for the whole file from its schema entry. +func newColumn(desc *schema.Column, rows int) (*Column, error) { + if desc.MaxRepetitionLevel() != 0 { + return nil, fmt.Errorf("column %q is repeated, which cryo never emits", desc.Name()) + } + + prealloc := min(rows, maxPrealloc) + + col := &Column{name: desc.Name(), valid: make([]bool, 0, prealloc)} + + switch desc.PhysicalType() { + case parquet.Types.ByteArray: + col.kind = KindString + col.strs = make([]string, 0, prealloc) + case parquet.Types.Int32, parquet.Types.Int64: + // Parquet stores unsigned integers in signed physical types, so a set + // sign bit is data rather than an error. Only the logical type says + // which it is, and cryo emits nothing signed. + if lt, ok := desc.LogicalType().(schema.IntLogicalType); ok && lt.IsSigned() { + return nil, fmt.Errorf("column %q is a signed integer, which cryo never emits", desc.Name()) + } + + col.kind = KindInt + col.ints = make([]uint64, 0, prealloc) + case parquet.Types.Double: + col.kind = KindFloat + col.flts = make([]float64, 0, prealloc) + case parquet.Types.Boolean: + col.kind = KindBool + col.bools = make([]bool, 0, prealloc) + case parquet.Types.Float, parquet.Types.Int96, parquet.Types.FixedLenByteArray, parquet.Types.Undefined: + return nil, fmt.Errorf("column %q has unsupported physical type %s", desc.Name(), desc.PhysicalType()) + default: + return nil, fmt.Errorf("column %q has unsupported physical type %s", desc.Name(), desc.PhysicalType()) + } + + return col, nil +} + +// read appends one row group's worth of values. +func (c *Column) read(reader file.ColumnChunkReader) error { + switch typed := reader.(type) { + case *file.ByteArrayColumnChunkReader: + return drain(c, typed, make([]parquet.ByteArray, batchSize), typed.ReadBatch, + func(col *Column, v parquet.ByteArray) error { + col.strs = append(col.strs, string(v)) + + return nil + }, + func(col *Column) { col.strs = append(col.strs, "") }) + case *file.Int32ColumnChunkReader: + return drain(c, typed, make([]int32, batchSize), typed.ReadBatch, appendInt32, padInt) + case *file.Int64ColumnChunkReader: + return drain(c, typed, make([]int64, batchSize), typed.ReadBatch, appendInt64, padInt) + case *file.Float64ColumnChunkReader: + return drain(c, typed, make([]float64, batchSize), typed.ReadBatch, + func(col *Column, v float64) error { + col.flts = append(col.flts, v) + + return nil + }, + func(col *Column) { col.flts = append(col.flts, 0) }) + case *file.BooleanColumnChunkReader: + return drain(c, typed, make([]bool, batchSize), typed.ReadBatch, + func(col *Column, v bool) error { + col.bools = append(col.bools, v) + + return nil + }, + func(col *Column) { col.bools = append(col.bools, false) }) + default: + return fmt.Errorf("column %q has unsupported reader %T", c.name, reader) + } +} + +// readBatchFunc matches the generated ReadBatch method of every typed reader. +type readBatchFunc[T any] func(batchSize int64, values []T, defLvls, repLvls []int16) (int64, int, error) + +// drain reads a column chunk to exhaustion. ReadBatch returns values densely +// packed — nulls are absent — so each batch is expanded against its definition +// levels to keep every row at its original index. +func drain[T any]( + c *Column, + reader file.ColumnChunkReader, + values []T, + readBatch readBatchFunc[T], + appendValue func(*Column, T) error, + appendNull func(*Column), +) error { + maxDef := reader.Descriptor().MaxDefinitionLevel() + defLvls := make([]int16, batchSize) + + for reader.HasNext() { + total, read, err := readBatch(batchSize, values, defLvls, nil) + if err != nil { + return err + } + + if total == 0 { + break + } + + var next int + + for _, def := range defLvls[:total] { + if def < maxDef { + c.valid = append(c.valid, false) + appendNull(c) + + continue + } + + if next >= read { + return fmt.Errorf("column %q: batch declared %d values but only %d were read", c.name, next+1, read) + } + + if err := appendValue(c, values[next]); err != nil { + return err + } + + c.valid = append(c.valid, true) + next++ + } + } + + return reader.Err() +} + +func appendInt32(c *Column, v int32) error { + //nolint:gosec // G115: reinterpreting the bits is the point; the logical type is unsigned + c.ints = append(c.ints, uint64(uint32(v))) + + return nil +} + +func appendInt64(c *Column, v int64) error { + //nolint:gosec // G115: reinterpreting the bits is the point; the logical type is unsigned + c.ints = append(c.ints, uint64(v)) + + return nil +} + +func padInt(c *Column) { c.ints = append(c.ints, 0) } diff --git a/pkg/processor/cryo/decode/decode_test.go b/pkg/processor/cryo/decode/decode_test.go new file mode 100644 index 0000000..9937873 --- /dev/null +++ b/pkg/processor/cryo/decode/decode_test.go @@ -0,0 +1,150 @@ +package decode_test + +import ( + "os" + "path/filepath" + "testing" + + "github.com/apache/arrow-go/v18/parquet" + "github.com/apache/arrow-go/v18/parquet/file" + "github.com/apache/arrow-go/v18/parquet/schema" + "github.com/stretchr/testify/require" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +// writeUnsignedParquet builds a file shaped like cryo's output: optional, +// unsigned integer leaves. +func writeUnsignedParquet(t *testing.T, u32 []int32, u64 []int64) string { + t.Helper() + + u32Type, err := schema.NewPrimitiveNodeLogical( + "u32", parquet.Repetitions.Optional, schema.NewIntLogicalType(32, false), + parquet.Types.Int32, 0, 1) + require.NoError(t, err) + + u64Type, err := schema.NewPrimitiveNodeLogical( + "u64", parquet.Repetitions.Optional, schema.NewIntLogicalType(64, false), + parquet.Types.Int64, 0, 2) + require.NoError(t, err) + + root, err := schema.NewGroupNode("schema", parquet.Repetitions.Required, + schema.FieldList{u32Type, u64Type}, -1) + require.NoError(t, err) + + path := filepath.Join(t.TempDir(), "unsigned.parquet") + + f, err := os.Create(path) + require.NoError(t, err) + + writer := file.NewParquetWriter(f, root) + + rg, err := writer.AppendRowGroupChecked() + require.NoError(t, err) + + defLvls := make([]int16, len(u32)) + for i := range defLvls { + defLvls[i] = 1 + } + + col32, err := rg.NextColumn() + require.NoError(t, err) + + writer32, ok := col32.(*file.Int32ColumnChunkWriter) + require.True(t, ok) + + _, err = writer32.WriteBatch(u32, defLvls, nil) + require.NoError(t, err) + require.NoError(t, col32.Close()) + + col64, err := rg.NextColumn() + require.NoError(t, err) + + writer64, ok := col64.(*file.Int64ColumnChunkWriter) + require.True(t, ok) + + _, err = writer64.WriteBatch(u64, defLvls, nil) + require.NoError(t, err) + require.NoError(t, col64.Close()) + + require.NoError(t, rg.Close()) + require.NoError(t, writer.Close()) + + return path +} + +// TestFileReadsUnsignedValuesWithTheSignBitSet is the 2038 case. Parquet stores +// unsigned integers in signed physical types, so cryo's uint32 block timestamps +// carry a set sign bit from 2038-01-19 onward, and every uint64 column does the +// same beyond 2^63. Treating that as corruption would wedge the processor on +// every block from that date. +func TestFileReadsUnsignedValuesWithTheSignBitSet(t *testing.T) { + t.Parallel() + + // 2038-01-19T03:14:08Z is the first second that does not fit in an int32. + var ( + afterY2038 = uint64(2147483648) + maxUint32 = uint64(4294967295) + beyondInt64 = uint64(1) << 63 + maxUint64 = ^uint64(0) + ) + + path := writeUnsignedParquet(t, + []int32{1, int32(afterY2038), int32(maxUint32)}, + []int64{1, int64(beyondInt64), int64(maxUint64)}, + ) + + table, err := decode.File(path) + require.NoError(t, err, "an unsigned value with the sign bit set must decode, not error") + + u32, err := table.Int("u32") + require.NoError(t, err) + + require.Equal(t, uint64(1), u32.Int(0)) + require.Equal(t, afterY2038, u32.Int(1)) + require.Equal(t, maxUint32, u32.Int(2)) + + u64, err := table.Int("u64") + require.NoError(t, err) + + require.Equal(t, uint64(1), u64.Int(0)) + require.Equal(t, beyondInt64, u64.Int(1)) + require.Equal(t, maxUint64, u64.Int(2)) +} + +func TestFileRejectsSignedIntegerColumn(t *testing.T) { + t.Parallel() + + signed, err := schema.NewPrimitiveNodeLogical( + "s32", parquet.Repetitions.Optional, schema.NewIntLogicalType(32, true), + parquet.Types.Int32, 0, 1) + require.NoError(t, err) + + root, err := schema.NewGroupNode("schema", parquet.Repetitions.Required, schema.FieldList{signed}, -1) + require.NoError(t, err) + + path := filepath.Join(t.TempDir(), "signed.parquet") + + f, err := os.Create(path) + require.NoError(t, err) + + writer := file.NewParquetWriter(f, root) + + rg, err := writer.AppendRowGroupChecked() + require.NoError(t, err) + + col, err := rg.NextColumn() + require.NoError(t, err) + + colWriter, ok := col.(*file.Int32ColumnChunkWriter) + require.True(t, ok) + + _, err = colWriter.WriteBatch([]int32{-1}, []int16{1}, nil) + require.NoError(t, err) + require.NoError(t, col.Close()) + require.NoError(t, rg.Close()) + require.NoError(t, writer.Close()) + + _, err = decode.File(path) + require.ErrorContains(t, err, "signed integer") +} diff --git a/pkg/processor/cryo/ds_address_appearances.go b/pkg/processor/cryo/ds_address_appearances.go new file mode 100644 index 0000000..7b27116 --- /dev/null +++ b/pkg/processor/cryo/ds_address_appearances.go @@ -0,0 +1,121 @@ +package cryo + +import ( + "time" + + "github.com/ClickHouse/ch-go/proto" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +var addressAppearancesDataset = &Dataset{ + Name: "address_appearances", + Table: "canonical_execution_address_appearances", + InternalIndex: true, + MinBlock: 0, + newSink: func(d sinkDeps) sink { + return newDatasetSink(d, decodeAddressAppearances, func() columnar[addressAppearanceRow] { return newAddressAppearanceColumns() }) + }, +} + +type addressAppearanceRow struct { + UpdatedDateTime time.Time + BlockNumber uint64 + TransactionHash string + InternalIndex uint32 + Address string + Relationship string + MetaNetworkName string +} + +func decodeAddressAppearances(t *decode.Table, meta rowMeta) ([]addressAppearanceRow, error) { + p := newPicker(t) + + var ( + blockNumber = p.int("block_number") + transactionHash = p.str("transaction_hash") + address = p.str("address") + relationship = p.str("relationship") + ) + + if p.err != nil { + return nil, p.err + } + + idx := internalIndex(transactionHash, t.Rows()) + + rows := make([]addressAppearanceRow, 0, t.Rows()) + + for i := range t.Rows() { + rows = append(rows, addressAppearanceRow{ + UpdatedDateTime: meta.updated, + BlockNumber: uintOrZero(blockNumber, i), + TransactionHash: hexOrEmpty(transactionHash, i), + InternalIndex: idx[i], + Address: hexOrEmpty(address, i), + Relationship: strOrEmpty(relationship, i), + MetaNetworkName: meta.network, + }) + } + + return rows, nil +} + +type addressAppearanceColumns struct { + UpdatedDateTime proto.ColDateTime + BlockNumber proto.ColUInt64 + TransactionHash proto.ColFixedStr + InternalIndex proto.ColUInt32 + Address proto.ColStr + Relationship *proto.ColLowCardinality[string] + MetaNetworkName *proto.ColLowCardinality[string] +} + +func newAddressAppearanceColumns() *addressAppearanceColumns { + return &addressAppearanceColumns{ + TransactionHash: proto.ColFixedStr{Size: hashSize}, + Relationship: new(proto.ColStr).LowCardinality(), + MetaNetworkName: new(proto.ColStr).LowCardinality(), + } +} + +func (c *addressAppearanceColumns) Append(r addressAppearanceRow) error { + hash, err := fixedHash(r.TransactionHash) + if err != nil { + return err + } + + c.UpdatedDateTime.Append(r.UpdatedDateTime) + c.BlockNumber.Append(r.BlockNumber) + c.TransactionHash.Append(hash) + c.InternalIndex.Append(r.InternalIndex) + c.Address.Append(r.Address) + c.Relationship.Append(r.Relationship) + c.MetaNetworkName.Append(r.MetaNetworkName) + + return nil +} + +func (c *addressAppearanceColumns) Reset() { + c.UpdatedDateTime.Reset() + c.BlockNumber.Reset() + c.TransactionHash.Reset() + c.InternalIndex.Reset() + c.Address.Reset() + c.Relationship.Reset() + c.MetaNetworkName.Reset() +} + +func (c *addressAppearanceColumns) Rows() int { return c.BlockNumber.Rows() } + +func (c *addressAppearanceColumns) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &c.UpdatedDateTime}, + {Name: "block_number", Data: &c.BlockNumber}, + {Name: "transaction_hash", Data: &c.TransactionHash}, + {Name: "internal_index", Data: &c.InternalIndex}, + {Name: "address", Data: &c.Address}, + {Name: "relationship", Data: c.Relationship}, + {Name: "meta_network_name", Data: c.MetaNetworkName}, + } +} diff --git a/pkg/processor/cryo/ds_address_appearances_test.go b/pkg/processor/cryo/ds_address_appearances_test.go new file mode 100644 index 0000000..8f8ee15 --- /dev/null +++ b/pkg/processor/cryo/ds_address_appearances_test.go @@ -0,0 +1,101 @@ +package cryo + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestDecodeAddressAppearances(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "address_appearances", decodeAddressAppearances) + require.NoError(t, err) + require.Len(t, rows, 2309) + + first := rows[0] + require.Equal(t, fixtureMeta.updated, first.UpdatedDateTime) + require.Equal(t, uint64(23000000), first.BlockNumber) + require.Equal(t, "0x0511b790404361753f71d85f71714f05bdf5459255960856bd8fcb37e0f7af5a", first.TransactionHash) + require.Equal(t, uint32(1), first.InternalIndex) + require.Equal(t, "0x396343362be2a4da1ce0c1c210945346fb82aa49", first.Address) + require.Equal(t, "miner_fee", first.Relationship) + require.Equal(t, "mainnet", first.MetaNetworkName) + + // One address appears four times in this transaction under four + // relationships, each a distinct row. + for i, relationship := range []string{"call_from", "erc20_transfer_from", "erc20_transfer_from_to", "tx_from"} { + row := rows[i+1] + require.Equal(t, first.TransactionHash, row.TransactionHash) + require.Equal(t, uint32(i+2), row.InternalIndex) + require.Equal(t, "0x68770d610c6cb38493416eca5fdbd7e053c12c86", row.Address) + require.Equal(t, relationship, row.Relationship) + } + + // The seventh row closes the first transaction; the eighth starts the next. + require.Equal(t, first.TransactionHash, rows[6].TransactionHash) + require.Equal(t, uint32(7), rows[6].InternalIndex) + require.Equal(t, "tx_to", rows[6].Relationship) + require.Equal(t, "0x0637faa52c470dd7ea0c434db9cc82b7f0f059fd1123c8e914de5d434db0d1c3", rows[7].TransactionHash) + require.Equal(t, uint32(1), rows[7].InternalIndex) + + last := rows[2308] + require.Equal(t, "0xffbd484e846b720325ef6fa8302cb2b73b4df87a9412e8a298e25c1876daa6ec", last.TransactionHash) + require.Equal(t, "0x4656e33ce80748db2b2816e00eb115c0f6183f63", last.Address) + require.Equal(t, "tx_from", last.Relationship) +} + +// TestDecodeAddressAppearancesInternalIndex pins the one column that carries +// information nothing else in the row does: 1047 of the 2309 rows repeat a +// (transaction, address, relationship) triple, so without internal_index the +// ReplacingMergeTree sort key would collapse them. +func TestDecodeAddressAppearancesInternalIndex(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "address_appearances", decodeAddressAppearances) + require.NoError(t, err) + + type triple struct { + hash string + address string + relationship string + } + + type sortKey struct { + hash string + index uint32 + } + + var ( + next = make(map[string]uint32) + triples = make(map[triple]struct{}) + keys = make(map[sortKey]struct{}) + ) + + for i, r := range rows { + next[r.TransactionHash]++ + require.Equal(t, next[r.TransactionHash], r.InternalIndex, "row %d", i) + + triples[triple{r.TransactionHash, r.Address, r.Relationship}] = struct{}{} + keys[sortKey{r.TransactionHash, r.InternalIndex}] = struct{}{} + } + + require.Len(t, next, 137) + require.Len(t, triples, 1262) + require.Len(t, keys, len(rows), "internal_index must make every row's sort key unique") +} + +func TestAddressAppearancesColumnsAppend(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "address_appearances", decodeAddressAppearances) + require.NoError(t, err) + + cols := newAddressAppearanceColumns() + for _, r := range rows { + require.NoError(t, cols.Append(r)) + } + + require.Equal(t, len(rows), cols.Rows()) + requireInputMatchesDDL(t, "canonical_execution_address_appearances", cols.Input()) +} diff --git a/pkg/processor/cryo/ds_balance_diffs.go b/pkg/processor/cryo/ds_balance_diffs.go new file mode 100644 index 0000000..a33c376 --- /dev/null +++ b/pkg/processor/cryo/ds_balance_diffs.go @@ -0,0 +1,147 @@ +package cryo + +import ( + "fmt" + "time" + + "github.com/ClickHouse/ch-go/proto" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +var balanceDiffsDataset = &Dataset{ + Name: "balance_diffs", + Table: "canonical_execution_balance_diffs", + InternalIndex: true, + MinBlock: 1, + newSink: func(d sinkDeps) sink { + return newDatasetSink(d, decodeBalanceDiffs, func() columnar[balanceDiffRow] { return newBalanceDiffColumns() }) + }, +} + +type balanceDiffRow struct { + UpdatedDateTime time.Time + BlockNumber uint64 + TransactionIndex uint64 + TransactionHash string + InternalIndex uint32 + Address string + // FromValue and ToValue stay decimal strings until Append, because balances + // exceed uint64 and only proto.UInt256 can hold them. + FromValue string + ToValue string + MetaNetworkName string +} + +func decodeBalanceDiffs(t *decode.Table, meta rowMeta) ([]balanceDiffRow, error) { + p := newPicker(t) + + var ( + blockNumber = p.int("block_number") + transactionIndex = p.int("transaction_index") + transactionHash = p.str("transaction_hash") + address = p.str("address") + fromValue = p.str("from_value_string") + toValue = p.str("to_value_string") + ) + + if p.err != nil { + return nil, p.err + } + + idx := internalIndex(transactionHash, t.Rows()) + + rows := make([]balanceDiffRow, 0, t.Rows()) + + for i := range t.Rows() { + rows = append(rows, balanceDiffRow{ + UpdatedDateTime: meta.updated, + BlockNumber: uintOrZero(blockNumber, i), + TransactionIndex: uintOrZero(transactionIndex, i), + TransactionHash: hexOrEmpty(transactionHash, i), + InternalIndex: idx[i], + Address: hexOrEmpty(address, i), + FromValue: strOrEmpty(fromValue, i), + ToValue: strOrEmpty(toValue, i), + MetaNetworkName: meta.network, + }) + } + + return rows, nil +} + +type balanceDiffColumns struct { + UpdatedDateTime proto.ColDateTime + BlockNumber proto.ColUInt64 + TransactionIndex proto.ColUInt64 + TransactionHash proto.ColFixedStr + InternalIndex proto.ColUInt32 + Address proto.ColStr + FromValue proto.ColUInt256 + ToValue proto.ColUInt256 + MetaNetworkName *proto.ColLowCardinality[string] +} + +func newBalanceDiffColumns() *balanceDiffColumns { + return &balanceDiffColumns{ + TransactionHash: proto.ColFixedStr{Size: hashSize}, + MetaNetworkName: new(proto.ColStr).LowCardinality(), + } +} + +func (c *balanceDiffColumns) Append(r balanceDiffRow) error { + hash, err := fixedHash(r.TransactionHash) + if err != nil { + return err + } + + fromValue, err := uint256(r.FromValue) + if err != nil { + return fmt.Errorf("from_value: %w", err) + } + + toValue, err := uint256(r.ToValue) + if err != nil { + return fmt.Errorf("to_value: %w", err) + } + + c.UpdatedDateTime.Append(r.UpdatedDateTime) + c.BlockNumber.Append(r.BlockNumber) + c.TransactionIndex.Append(r.TransactionIndex) + c.TransactionHash.Append(hash) + c.InternalIndex.Append(r.InternalIndex) + c.Address.Append(r.Address) + c.FromValue.Append(fromValue) + c.ToValue.Append(toValue) + c.MetaNetworkName.Append(r.MetaNetworkName) + + return nil +} + +func (c *balanceDiffColumns) Reset() { + c.UpdatedDateTime.Reset() + c.BlockNumber.Reset() + c.TransactionIndex.Reset() + c.TransactionHash.Reset() + c.InternalIndex.Reset() + c.Address.Reset() + c.FromValue.Reset() + c.ToValue.Reset() + c.MetaNetworkName.Reset() +} + +func (c *balanceDiffColumns) Rows() int { return c.BlockNumber.Rows() } + +func (c *balanceDiffColumns) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &c.UpdatedDateTime}, + {Name: "block_number", Data: &c.BlockNumber}, + {Name: "transaction_index", Data: &c.TransactionIndex}, + {Name: "transaction_hash", Data: &c.TransactionHash}, + {Name: "internal_index", Data: &c.InternalIndex}, + {Name: "address", Data: &c.Address}, + {Name: "from_value", Data: &c.FromValue}, + {Name: "to_value", Data: &c.ToValue}, + {Name: "meta_network_name", Data: c.MetaNetworkName}, + } +} diff --git a/pkg/processor/cryo/ds_balance_diffs_test.go b/pkg/processor/cryo/ds_balance_diffs_test.go new file mode 100644 index 0000000..24ada37 --- /dev/null +++ b/pkg/processor/cryo/ds_balance_diffs_test.go @@ -0,0 +1,65 @@ +package cryo + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestDecodeBalanceDiffs(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "balance_diffs", decodeBalanceDiffs) + require.NoError(t, err) + require.Len(t, rows, 377) + + r := rows[0] + require.Equal(t, uint64(23000000), r.BlockNumber) + require.Equal(t, uint64(0), r.TransactionIndex) + require.Equal(t, "0x5946ef0de28db53ffe00f0fcdb4cc19c9da234819430bf957cc4c15200d8bcac", r.TransactionHash) + require.Equal(t, uint32(1), r.InternalIndex) + require.Equal(t, "0x28c6c06298d514db089934071355e5743bf21d60", r.Address) + require.Equal(t, "mainnet", r.MetaNetworkName) + require.Equal(t, fixtureMeta.updated, r.UpdatedDateTime) + + // Balances routinely exceed uint64, so they stay decimal strings until the + // UInt256 column takes them. + require.Equal(t, "38432751121515279399317", r.FromValue) + require.Equal(t, "38432750982043899049813", r.ToValue) + + require.Equal(t, uint32(2), rows[1].InternalIndex) + require.Equal(t, "0x396343362be2a4da1ce0c1c210945346fb82aa49", rows[1].Address) + require.Equal(t, uint32(1), rows[2].InternalIndex) + require.Equal(t, "0x6747dea6d070127292e2a600d879ac67b986253088e82de01d6bfa92e7ffb90c", rows[2].TransactionHash) + require.Equal(t, uint32(3), rows[4].InternalIndex) + + last := rows[376] + require.Equal(t, uint64(136), last.TransactionIndex) + require.Equal(t, "0x1894e4033d2ecb3f3b3bfa8b2c82c213593965754b40042a4ec392b2733ba76c", last.TransactionHash) + require.Equal(t, uint32(2), last.InternalIndex) + require.Equal(t, "0x5995510b29924a0c68e5e21cb95ac426519c43bf", last.Address) + require.Equal(t, "162525574300734667111", last.FromValue) + require.Equal(t, "162549100389846748107", last.ToValue) +} + +func TestBalanceDiffsColumnsAppend(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "balance_diffs", decodeBalanceDiffs) + require.NoError(t, err) + + cols := newBalanceDiffColumns() + for _, r := range rows { + require.NoError(t, cols.Append(r)) + } + + require.Equal(t, len(rows), cols.Rows()) + + // 38432751121515279399317 does not fit in a uint64, and a float would lose + // its low digits. + require.Equal(t, uint64(0x71909f9361e1b995), cols.FromValue[0].Low.Low) + require.Equal(t, uint64(0x823), cols.FromValue[0].Low.High) + require.Equal(t, uint64(0), cols.FromValue[0].High.Low) + + requireInputMatchesDDL(t, "canonical_execution_balance_diffs", cols.Input()) +} diff --git a/pkg/processor/cryo/ds_balance_reads.go b/pkg/processor/cryo/ds_balance_reads.go new file mode 100644 index 0000000..fcb89a1 --- /dev/null +++ b/pkg/processor/cryo/ds_balance_reads.go @@ -0,0 +1,132 @@ +package cryo + +import ( + "time" + + "github.com/ClickHouse/ch-go/proto" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +var balanceReadsDataset = &Dataset{ + Name: "balance_reads", + Table: "canonical_execution_balance_reads", + InternalIndex: true, + MinBlock: 1, + newSink: func(d sinkDeps) sink { + return newDatasetSink(d, decodeBalanceReads, func() columnar[balanceReadRow] { return newBalanceReadColumns() }) + }, +} + +type balanceReadRow struct { + UpdatedDateTime time.Time + BlockNumber uint64 + TransactionIndex uint64 + TransactionHash string + InternalIndex uint32 + Address string + Balance string + MetaNetworkName string +} + +func decodeBalanceReads(t *decode.Table, meta rowMeta) ([]balanceReadRow, error) { + p := newPicker(t) + + var ( + blockNumber = p.int("block_number") + transactionIndex = p.int("transaction_index") + transactionHash = p.str("transaction_hash") + address = p.str("address") + balance = p.str("balance_string") + ) + + if p.err != nil { + return nil, p.err + } + + idx := internalIndex(transactionHash, t.Rows()) + + rows := make([]balanceReadRow, 0, t.Rows()) + + for i := range t.Rows() { + rows = append(rows, balanceReadRow{ + UpdatedDateTime: meta.updated, + BlockNumber: uintOrZero(blockNumber, i), + TransactionIndex: uintOrZero(transactionIndex, i), + TransactionHash: hexOrEmpty(transactionHash, i), + InternalIndex: idx[i], + Address: hexOrEmpty(address, i), + Balance: strOrEmpty(balance, i), + MetaNetworkName: meta.network, + }) + } + + return rows, nil +} + +type balanceReadColumns struct { + UpdatedDateTime proto.ColDateTime + BlockNumber proto.ColUInt64 + TransactionIndex proto.ColUInt64 + TransactionHash proto.ColFixedStr + InternalIndex proto.ColUInt32 + Address proto.ColStr + Balance proto.ColUInt256 + MetaNetworkName *proto.ColLowCardinality[string] +} + +func newBalanceReadColumns() *balanceReadColumns { + return &balanceReadColumns{ + TransactionHash: proto.ColFixedStr{Size: hashSize}, + MetaNetworkName: new(proto.ColStr).LowCardinality(), + } +} + +func (c *balanceReadColumns) Append(r balanceReadRow) error { + hash, err := fixedHash(r.TransactionHash) + if err != nil { + return err + } + + balance, err := uint256(r.Balance) + if err != nil { + return err + } + + c.UpdatedDateTime.Append(r.UpdatedDateTime) + c.BlockNumber.Append(r.BlockNumber) + c.TransactionIndex.Append(r.TransactionIndex) + c.TransactionHash.Append(hash) + c.InternalIndex.Append(r.InternalIndex) + c.Address.Append(r.Address) + c.Balance.Append(balance) + c.MetaNetworkName.Append(r.MetaNetworkName) + + return nil +} + +func (c *balanceReadColumns) Reset() { + c.UpdatedDateTime.Reset() + c.BlockNumber.Reset() + c.TransactionIndex.Reset() + c.TransactionHash.Reset() + c.InternalIndex.Reset() + c.Address.Reset() + c.Balance.Reset() + c.MetaNetworkName.Reset() +} + +func (c *balanceReadColumns) Rows() int { return c.BlockNumber.Rows() } + +func (c *balanceReadColumns) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &c.UpdatedDateTime}, + {Name: "block_number", Data: &c.BlockNumber}, + {Name: "transaction_index", Data: &c.TransactionIndex}, + {Name: "transaction_hash", Data: &c.TransactionHash}, + {Name: "internal_index", Data: &c.InternalIndex}, + {Name: "address", Data: &c.Address}, + {Name: "balance", Data: &c.Balance}, + {Name: "meta_network_name", Data: c.MetaNetworkName}, + } +} diff --git a/pkg/processor/cryo/ds_balance_reads_test.go b/pkg/processor/cryo/ds_balance_reads_test.go new file mode 100644 index 0000000..1a4d766 --- /dev/null +++ b/pkg/processor/cryo/ds_balance_reads_test.go @@ -0,0 +1,73 @@ +package cryo + +import ( + "testing" + + "github.com/ClickHouse/ch-go/proto" + "github.com/stretchr/testify/require" +) + +func TestDecodeBalanceReads(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "balance_reads", decodeBalanceReads) + require.NoError(t, err) + require.Len(t, rows, 641) + + first := rows[0] + require.Equal(t, fixtureMeta.updated, first.UpdatedDateTime) + require.Equal(t, uint64(23000000), first.BlockNumber) + require.Equal(t, uint64(0), first.TransactionIndex) + require.Equal(t, "0x5946ef0de28db53ffe00f0fcdb4cc19c9da234819430bf957cc4c15200d8bcac", first.TransactionHash) + require.Equal(t, uint32(1), first.InternalIndex) + require.Equal(t, "0x28c6c06298d514db089934071355e5743bf21d60", first.Address) + require.Equal(t, "38432751121515279399317", first.Balance) + require.Equal(t, "mainnet", first.MetaNetworkName) + + second := rows[1] + require.Equal(t, uint32(2), second.InternalIndex) + require.Equal(t, "0x396343362be2a4da1ce0c1c210945346fb82aa49", second.Address) + require.Equal(t, "9456062291357014287", second.Balance) + + last := rows[640] + require.Equal(t, uint64(136), last.TransactionIndex) + require.Equal(t, "0x1894e4033d2ecb3f3b3bfa8b2c82c213593965754b40042a4ec392b2733ba76c", last.TransactionHash) + require.Equal(t, uint32(2), last.InternalIndex) + require.Equal(t, "0x5995510b29924a0c68e5e21cb95ac426519c43bf", last.Address) + require.Equal(t, "162525574300734667111", last.Balance) + + // 137 transactions read balances, and every row is attributed to one of + // them, so no row falls back to the "0x" key. + seen := make(map[string]uint32, len(rows)) + + for _, r := range rows { + require.NotEqual(t, emptyHex, r.TransactionHash) + seen[r.TransactionHash]++ + require.Equal(t, seen[r.TransactionHash], r.InternalIndex) + } + + require.Len(t, seen, 137) +} + +func TestBalanceReadsColumnsAppend(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "balance_reads", decodeBalanceReads) + require.NoError(t, err) + + cols := newBalanceReadColumns() + for _, r := range rows { + require.NoError(t, cols.Append(r)) + } + + require.Equal(t, len(rows), cols.Rows()) + + // A balance beyond uint64 must survive as 256-bit limbs rather than losing + // precision through a float. + require.Equal(t, proto.UInt256{ + Low: proto.UInt128{Low: 14951621711058254183, High: 8}, + }, cols.Balance[640]) + require.Equal(t, proto.UInt256FromUInt64(9456062291357014287), cols.Balance[1]) + + requireInputMatchesDDL(t, "canonical_execution_balance_reads", cols.Input()) +} diff --git a/pkg/processor/cryo/ds_blocks.go b/pkg/processor/cryo/ds_blocks.go new file mode 100644 index 0000000..f27c5a5 --- /dev/null +++ b/pkg/processor/cryo/ds_blocks.go @@ -0,0 +1,187 @@ +package cryo + +import ( + "encoding/hex" + "fmt" + "time" + + "github.com/ClickHouse/ch-go/proto" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +var blocksDataset = &Dataset{ + Name: "blocks", + Table: "canonical_execution_block", + InternalIndex: false, + MinBlock: 0, + // cryo omits gas_limit from blocks unless asked, and ClickHouse would fill + // the gap with zero rather than failing, which is how staging came to hold + // gas_limit = 0 for every row. + RequiredColumns: []string{"gas_limit"}, + newSink: func(d sinkDeps) sink { + return newDatasetSink(d, decodeBlocks, func() columnar[blockRow] { return newBlockColumns() }) + }, +} + +type blockRow struct { + UpdatedDateTime time.Time + BlockDateTime time.Time + BlockNumber uint64 + BlockHash string + Author *string + GasUsed *uint64 + GasLimit uint64 + ExtraData *string + ExtraDataString *string + BaseFeePerGas *uint64 + MetaNetworkName string +} + +func decodeBlocks(t *decode.Table, meta rowMeta) ([]blockRow, error) { + p := newPicker(t) + + var ( + blockNumber = p.int("block_number") + blockHash = p.str("block_hash") + author = p.str("author") + gasUsed = p.int("gas_used") + gasLimit = p.int("gas_limit") + extraData = p.str("extra_data") + timestamp = p.int("timestamp") + baseFeePerGas = p.int("base_fee_per_gas") + ) + + if p.err != nil { + return nil, p.err + } + + rows := make([]blockRow, 0, t.Rows()) + + for i := range t.Rows() { + extraHex, extraString, decodeErr := extraDataPair(extraData, i) + if decodeErr != nil { + return nil, fmt.Errorf("row %d: %w", i, decodeErr) + } + + rows = append(rows, blockRow{ + UpdatedDateTime: meta.updated, + //nolint:gosec // cryo emits the block timestamp as an unsigned second count + BlockDateTime: time.Unix(int64(uintOrZero(timestamp, i)), 0).UTC(), + BlockNumber: uintOrZero(blockNumber, i), + BlockHash: hexOrEmpty(blockHash, i), + Author: nullableHex(author, i), + GasUsed: nullableUint(gasUsed, i), + GasLimit: uintOrZero(gasLimit, i), + ExtraData: extraHex, + ExtraDataString: extraString, + BaseFeePerGas: nullableUint(baseFeePerGas, i), + MetaNetworkName: meta.network, + }) + } + + return rows, nil +} + +// extraDataPair derives both extra_data columns from cryo's single hex field: +// the hex form is stored verbatim, and the string form is the raw bytes it +// encodes, which are arbitrary and need not be valid UTF-8. +func extraDataPair(c *decode.Column, i int) (hexForm, stringForm *string, err error) { + if c.IsNull(i) { + return nil, nil, nil + } + + v := c.Str(i) + if v == "" || v == emptyHex { + return nil, nil, nil + } + + raw, err := hex.DecodeString(v[len(emptyHex):]) + if err != nil { + return nil, nil, fmt.Errorf("extra_data %q is not hex: %w", v, err) + } + + decoded := string(raw) + + return &v, &decoded, nil +} + +type blockColumns struct { + UpdatedDateTime proto.ColDateTime + BlockDateTime *proto.ColDateTime64 + BlockNumber proto.ColUInt64 + BlockHash proto.ColFixedStr + Author *proto.ColNullable[string] + GasUsed *proto.ColNullable[uint64] + GasLimit proto.ColUInt64 + ExtraData *proto.ColNullable[string] + ExtraDataString *proto.ColNullable[string] + BaseFeePerGas *proto.ColNullable[uint64] + MetaNetworkName *proto.ColLowCardinality[string] +} + +func newBlockColumns() *blockColumns { + return &blockColumns{ + BlockDateTime: new(proto.ColDateTime64).WithPrecision(proto.PrecisionMilli), + BlockHash: proto.ColFixedStr{Size: hashSize}, + Author: new(proto.ColStr).Nullable(), + GasUsed: new(proto.ColUInt64).Nullable(), + ExtraData: new(proto.ColStr).Nullable(), + ExtraDataString: new(proto.ColStr).Nullable(), + BaseFeePerGas: new(proto.ColUInt64).Nullable(), + MetaNetworkName: new(proto.ColStr).LowCardinality(), + } +} + +func (c *blockColumns) Append(r blockRow) error { + hash, err := fixedHash(r.BlockHash) + if err != nil { + return err + } + + c.UpdatedDateTime.Append(r.UpdatedDateTime) + c.BlockDateTime.Append(r.BlockDateTime) + c.BlockNumber.Append(r.BlockNumber) + c.BlockHash.Append(hash) + c.Author.Append(nullable(r.Author)) + c.GasUsed.Append(nullable(r.GasUsed)) + c.GasLimit.Append(r.GasLimit) + c.ExtraData.Append(nullable(r.ExtraData)) + c.ExtraDataString.Append(nullable(r.ExtraDataString)) + c.BaseFeePerGas.Append(nullable(r.BaseFeePerGas)) + c.MetaNetworkName.Append(r.MetaNetworkName) + + return nil +} + +func (c *blockColumns) Reset() { + c.UpdatedDateTime.Reset() + c.BlockDateTime.Reset() + c.BlockNumber.Reset() + c.BlockHash.Reset() + c.Author.Reset() + c.GasUsed.Reset() + c.GasLimit.Reset() + c.ExtraData.Reset() + c.ExtraDataString.Reset() + c.BaseFeePerGas.Reset() + c.MetaNetworkName.Reset() +} + +func (c *blockColumns) Rows() int { return c.BlockNumber.Rows() } + +func (c *blockColumns) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &c.UpdatedDateTime}, + {Name: "block_date_time", Data: c.BlockDateTime}, + {Name: "block_number", Data: &c.BlockNumber}, + {Name: "block_hash", Data: &c.BlockHash}, + {Name: "author", Data: c.Author}, + {Name: "gas_used", Data: c.GasUsed}, + {Name: "gas_limit", Data: &c.GasLimit}, + {Name: "extra_data", Data: c.ExtraData}, + {Name: "extra_data_string", Data: c.ExtraDataString}, + {Name: "base_fee_per_gas", Data: c.BaseFeePerGas}, + {Name: "meta_network_name", Data: c.MetaNetworkName}, + } +} diff --git a/pkg/processor/cryo/ds_blocks_test.go b/pkg/processor/cryo/ds_blocks_test.go new file mode 100644 index 0000000..5762ed9 --- /dev/null +++ b/pkg/processor/cryo/ds_blocks_test.go @@ -0,0 +1,46 @@ +package cryo + +import ( + "testing" + "time" + + "github.com/stretchr/testify/require" +) + +func TestDecodeBlocks(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "blocks", decodeBlocks) + require.NoError(t, err) + require.Len(t, rows, 1) + + r := rows[0] + require.Equal(t, uint64(23000000), r.BlockNumber) + require.Equal(t, "0xe368c631c74a82c3043e6d44c4bef6e6139a6501b39c7700c2552554d10e6c3b", r.BlockHash) + require.Equal(t, "0x396343362be2a4da1ce0c1c210945346fb82aa49", *r.Author) + require.Equal(t, uint64(11210841), *r.GasUsed) + require.Equal(t, uint64(45000000), r.GasLimit) + require.Equal(t, uint64(239712557), *r.BaseFeePerGas) + require.Equal(t, "mainnet", r.MetaNetworkName) + + // extra_data is stored twice: verbatim hex, and the raw bytes it encodes. + require.Equal(t, "0xe29ca82051756173617220287175617361722e77696e2920e29ca8", *r.ExtraData) + require.Equal(t, "✨ Quasar (quasar.win) ✨", *r.ExtraDataString) + + require.Equal(t, time.Unix(1753492931, 0).UTC(), r.BlockDateTime) +} + +func TestBlockColumnsAppend(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "blocks", decodeBlocks) + require.NoError(t, err) + + cols := newBlockColumns() + for _, r := range rows { + require.NoError(t, cols.Append(r)) + } + + require.Equal(t, len(rows), cols.Rows()) + requireInputMatchesDDL(t, "canonical_execution_block", cols.Input()) +} diff --git a/pkg/processor/cryo/ds_contracts.go b/pkg/processor/cryo/ds_contracts.go new file mode 100644 index 0000000..544f1c1 --- /dev/null +++ b/pkg/processor/cryo/ds_contracts.go @@ -0,0 +1,180 @@ +package cryo + +import ( + "time" + + "github.com/ClickHouse/ch-go/proto" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +var contractsDataset = &Dataset{ + Name: "contracts", + Table: "canonical_execution_contracts", + InternalIndex: true, + MinBlock: 0, + newSink: func(d sinkDeps) sink { + return newDatasetSink(d, decodeContracts, func() columnar[contractRow] { return newContractColumns() }) + }, +} + +type contractRow struct { + UpdatedDateTime time.Time + BlockNumber uint64 + TransactionHash string + InternalIndex uint32 + CreateIndex uint32 + ContractAddress string + Deployer string + Factory string + InitCode string + Code *string + InitCodeHash string + NInitCodeBytes uint32 + NCodeBytes uint32 + CodeHash string + MetaNetworkName string +} + +func decodeContracts(t *decode.Table, meta rowMeta) ([]contractRow, error) { + p := newPicker(t) + + var ( + blockNumber = p.int("block_number") + createIndex = p.int("create_index") + transactionHash = p.str("transaction_hash") + contractAddress = p.str("contract_address") + deployer = p.str("deployer") + factory = p.str("factory") + initCode = p.str("init_code") + code = p.str("code") + initCodeHash = p.str("init_code_hash") + nInitCodeBytes = p.int("n_init_code_bytes") + nCodeBytes = p.int("n_code_bytes") + codeHash = p.str("code_hash") + ) + + if p.err != nil { + return nil, p.err + } + + idx := internalIndex(transactionHash, t.Rows()) + + rows := make([]contractRow, 0, t.Rows()) + + for i := range t.Rows() { + rows = append(rows, contractRow{ + UpdatedDateTime: meta.updated, + BlockNumber: uintOrZero(blockNumber, i), + TransactionHash: hexOrEmpty(transactionHash, i), + InternalIndex: idx[i], + //nolint:gosec // cryo emits create_index as a parquet uint32 + CreateIndex: uint32(uintOrZero(createIndex, i)), + ContractAddress: hexOrEmpty(contractAddress, i), + Deployer: hexOrEmpty(deployer, i), + Factory: hexOrEmpty(factory, i), + InitCode: hexOrEmpty(initCode, i), + Code: nullableHex(code, i), + InitCodeHash: hexOrEmpty(initCodeHash, i), + //nolint:gosec // cryo emits n_init_code_bytes as a parquet uint32 + NInitCodeBytes: uint32(uintOrZero(nInitCodeBytes, i)), + //nolint:gosec // cryo emits n_code_bytes as a parquet uint32 + NCodeBytes: uint32(uintOrZero(nCodeBytes, i)), + CodeHash: hexOrEmpty(codeHash, i), + MetaNetworkName: meta.network, + }) + } + + return rows, nil +} + +type contractColumns struct { + UpdatedDateTime proto.ColDateTime + BlockNumber proto.ColUInt64 + TransactionHash proto.ColFixedStr + InternalIndex proto.ColUInt32 + CreateIndex proto.ColUInt32 + ContractAddress proto.ColStr + Deployer proto.ColStr + Factory proto.ColStr + InitCode proto.ColStr + Code *proto.ColNullable[string] + InitCodeHash proto.ColStr + NInitCodeBytes proto.ColUInt32 + NCodeBytes proto.ColUInt32 + CodeHash proto.ColStr + MetaNetworkName *proto.ColLowCardinality[string] +} + +func newContractColumns() *contractColumns { + return &contractColumns{ + TransactionHash: proto.ColFixedStr{Size: hashSize}, + Code: new(proto.ColStr).Nullable(), + MetaNetworkName: new(proto.ColStr).LowCardinality(), + } +} + +func (c *contractColumns) Append(r contractRow) error { + hash, err := fixedHash(r.TransactionHash) + if err != nil { + return err + } + + c.UpdatedDateTime.Append(r.UpdatedDateTime) + c.BlockNumber.Append(r.BlockNumber) + c.TransactionHash.Append(hash) + c.InternalIndex.Append(r.InternalIndex) + c.CreateIndex.Append(r.CreateIndex) + c.ContractAddress.Append(r.ContractAddress) + c.Deployer.Append(r.Deployer) + c.Factory.Append(r.Factory) + c.InitCode.Append(r.InitCode) + c.Code.Append(nullable(r.Code)) + c.InitCodeHash.Append(r.InitCodeHash) + c.NInitCodeBytes.Append(r.NInitCodeBytes) + c.NCodeBytes.Append(r.NCodeBytes) + c.CodeHash.Append(r.CodeHash) + c.MetaNetworkName.Append(r.MetaNetworkName) + + return nil +} + +func (c *contractColumns) Reset() { + c.UpdatedDateTime.Reset() + c.BlockNumber.Reset() + c.TransactionHash.Reset() + c.InternalIndex.Reset() + c.CreateIndex.Reset() + c.ContractAddress.Reset() + c.Deployer.Reset() + c.Factory.Reset() + c.InitCode.Reset() + c.Code.Reset() + c.InitCodeHash.Reset() + c.NInitCodeBytes.Reset() + c.NCodeBytes.Reset() + c.CodeHash.Reset() + c.MetaNetworkName.Reset() +} + +func (c *contractColumns) Rows() int { return c.BlockNumber.Rows() } + +func (c *contractColumns) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &c.UpdatedDateTime}, + {Name: "block_number", Data: &c.BlockNumber}, + {Name: "transaction_hash", Data: &c.TransactionHash}, + {Name: "internal_index", Data: &c.InternalIndex}, + {Name: "create_index", Data: &c.CreateIndex}, + {Name: "contract_address", Data: &c.ContractAddress}, + {Name: "deployer", Data: &c.Deployer}, + {Name: "factory", Data: &c.Factory}, + {Name: "init_code", Data: &c.InitCode}, + {Name: "code", Data: c.Code}, + {Name: "init_code_hash", Data: &c.InitCodeHash}, + {Name: "n_init_code_bytes", Data: &c.NInitCodeBytes}, + {Name: "n_code_bytes", Data: &c.NCodeBytes}, + {Name: "code_hash", Data: &c.CodeHash}, + {Name: "meta_network_name", Data: c.MetaNetworkName}, + } +} diff --git a/pkg/processor/cryo/ds_contracts_test.go b/pkg/processor/cryo/ds_contracts_test.go new file mode 100644 index 0000000..a449289 --- /dev/null +++ b/pkg/processor/cryo/ds_contracts_test.go @@ -0,0 +1,89 @@ +package cryo + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +const contractsTable = "canonical_execution_contracts" + +func TestContractsDataset(t *testing.T) { + t.Parallel() + + require.Equal(t, "contracts", contractsDataset.Name) + require.Equal(t, contractsTable, contractsDataset.Table) + require.True(t, contractsDataset.InternalIndex) + require.Zero(t, contractsDataset.MinBlock) +} + +func TestDecodeContracts(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000026", "contracts", decodeContracts) + require.NoError(t, err) + require.Len(t, rows, 4) + + r := rows[0] + require.Equal(t, fixtureMeta.updated, r.UpdatedDateTime) + require.Equal(t, uint64(23000026), r.BlockNumber) + require.Equal(t, "0xd8a375f59e03b9ea056afeb3257cd7e805322d34015320f4a4104b96332cbb28", r.TransactionHash) + require.Equal(t, uint32(1), r.InternalIndex) + require.Equal(t, uint32(0), r.CreateIndex) + require.Equal(t, "0x70b3f08431e7d7ba1ca202017d0b19caad8d1fe9", r.ContractAddress) + require.Equal(t, "0x4e565f63257d90f988e5ec9d065bab00f94d2dfd", r.Deployer) + require.Equal(t, "0x9fa5c5733b53814692de4fb31fd592070de5f5f0", r.Factory) + require.Equal(t, uint32(785), r.NInitCodeBytes) + require.Equal(t, uint32(0), r.NCodeBytes) + require.Equal(t, "mainnet", r.MetaNetworkName) + + // This contract self-destructs in its constructor, so cryo reports its code + // as the literal "0x" and the target column stores NULL. + require.Nil(t, r.Code) + + last := rows[3] + require.Equal(t, uint32(3), last.CreateIndex) + require.Equal(t, uint32(1), last.InternalIndex) + require.Equal(t, "0x9f1eb7bf7b105bd7baa144286c836ccb85d41417", last.ContractAddress) + require.Equal(t, "0x67e0409b97fa2a41c9105b2adee931c8649ea0dc", last.Deployer) + require.Equal(t, "0x2971adfa57b20e5a416ae5a708a8655a9c74f723", last.Factory) + require.Equal(t, + "0x3d602d80600a3d3981f3363d3d373d3d3d363d73fe02a32cbe0cb9ad9a945576a5bb53a3c123a3a35af43d82803e903d91602b57fd5bf3", + last.InitCode) + require.Equal(t, + "0x363d3d373d3d3d363d73fe02a32cbe0cb9ad9a945576a5bb53a3c123a3a35af43d82803e903d91602b57fd5bf3", + *last.Code) + require.Equal(t, "0xf51217697e54d3e7c4d961223d0ec7a0f4962b08eb43d9e27c22df8e30b6b3e1", last.InitCodeHash) + require.Equal(t, "0x269179116bc54c44db2053d1b6076ac2eacd45b921cf397525f967ff87095344", last.CodeHash) + require.Equal(t, uint32(55), last.NInitCodeBytes) + require.Equal(t, uint32(45), last.NCodeBytes) +} + +// TestDecodeContractsEmpty covers a block that deploys nothing: cryo still +// writes the parquet file, with zero rows. +func TestDecodeContractsEmpty(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, preMergeBlock, "contracts", decodeContracts) + require.NoError(t, err) + require.Empty(t, rows) + + cols := newContractColumns() + require.Equal(t, 0, cols.Rows()) + requireInputMatchesDDL(t, contractsTable, cols.Input()) +} + +func TestContractsColumnsAppend(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000026", "contracts", decodeContracts) + require.NoError(t, err) + + cols := newContractColumns() + for _, r := range rows { + require.NoError(t, cols.Append(r)) + } + + require.Equal(t, len(rows), cols.Rows()) + requireInputMatchesDDL(t, contractsTable, cols.Input()) +} diff --git a/pkg/processor/cryo/ds_erc20_transfers.go b/pkg/processor/cryo/ds_erc20_transfers.go new file mode 100644 index 0000000..0b8d610 --- /dev/null +++ b/pkg/processor/cryo/ds_erc20_transfers.go @@ -0,0 +1,154 @@ +package cryo + +import ( + "fmt" + "time" + + "github.com/ClickHouse/ch-go/proto" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +var erc20TransfersDataset = &Dataset{ + Name: "erc20_transfers", + Table: "canonical_execution_erc20_transfers", + InternalIndex: true, + MinBlock: 0, + newSink: func(d sinkDeps) sink { + return newDatasetSink(d, decodeErc20Transfers, func() columnar[erc20TransferRow] { return newErc20TransferColumns() }) + }, +} + +type erc20TransferRow struct { + UpdatedDateTime time.Time + BlockNumber uint64 + TransactionIndex uint64 + TransactionHash string + InternalIndex uint32 + LogIndex uint64 + Erc20 string + FromAddress string + ToAddress string + Value string + MetaNetworkName string +} + +func decodeErc20Transfers(t *decode.Table, meta rowMeta) ([]erc20TransferRow, error) { + p := newPicker(t) + + var ( + blockNumber = p.int("block_number") + transactionIndex = p.int("transaction_index") + transactionHash = p.str("transaction_hash") + logIndex = p.int("log_index") + erc20 = p.str("erc20") + fromAddress = p.str("from_address") + toAddress = p.str("to_address") + value = p.str("value_string") + ) + + if p.err != nil { + return nil, p.err + } + + idx := internalIndex(transactionHash, t.Rows()) + + rows := make([]erc20TransferRow, 0, t.Rows()) + + for i := range t.Rows() { + rows = append(rows, erc20TransferRow{ + UpdatedDateTime: meta.updated, + BlockNumber: uintOrZero(blockNumber, i), + TransactionIndex: uintOrZero(transactionIndex, i), + TransactionHash: hexOrEmpty(transactionHash, i), + InternalIndex: idx[i], + LogIndex: uintOrZero(logIndex, i), + Erc20: hexOrEmpty(erc20, i), + FromAddress: hexOrEmpty(fromAddress, i), + ToAddress: hexOrEmpty(toAddress, i), + Value: strOrEmpty(value, i), + MetaNetworkName: meta.network, + }) + } + + return rows, nil +} + +type erc20TransferColumns struct { + UpdatedDateTime proto.ColDateTime + BlockNumber proto.ColUInt64 + TransactionIndex proto.ColUInt64 + TransactionHash proto.ColFixedStr + InternalIndex proto.ColUInt32 + LogIndex proto.ColUInt64 + Erc20 proto.ColStr + FromAddress proto.ColStr + ToAddress proto.ColStr + Value proto.ColUInt256 + MetaNetworkName *proto.ColLowCardinality[string] +} + +func newErc20TransferColumns() *erc20TransferColumns { + return &erc20TransferColumns{ + TransactionHash: proto.ColFixedStr{Size: hashSize}, + MetaNetworkName: new(proto.ColStr).LowCardinality(), + } +} + +func (c *erc20TransferColumns) Append(r erc20TransferRow) error { + hash, err := fixedHash(r.TransactionHash) + if err != nil { + return err + } + + value, err := uint256(r.Value) + if err != nil { + return fmt.Errorf("value: %w", err) + } + + c.UpdatedDateTime.Append(r.UpdatedDateTime) + c.BlockNumber.Append(r.BlockNumber) + c.TransactionIndex.Append(r.TransactionIndex) + c.TransactionHash.Append(hash) + c.InternalIndex.Append(r.InternalIndex) + c.LogIndex.Append(r.LogIndex) + c.Erc20.Append(r.Erc20) + c.FromAddress.Append(r.FromAddress) + c.ToAddress.Append(r.ToAddress) + c.Value.Append(value) + c.MetaNetworkName.Append(r.MetaNetworkName) + + return nil +} + +func (c *erc20TransferColumns) Reset() { + c.UpdatedDateTime.Reset() + c.BlockNumber.Reset() + c.TransactionIndex.Reset() + c.TransactionHash.Reset() + c.InternalIndex.Reset() + c.LogIndex.Reset() + c.Erc20.Reset() + c.FromAddress.Reset() + c.ToAddress.Reset() + c.Value.Reset() + c.MetaNetworkName.Reset() +} + +func (c *erc20TransferColumns) Rows() int { return c.BlockNumber.Rows() } + +func (c *erc20TransferColumns) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &c.UpdatedDateTime}, + {Name: "block_number", Data: &c.BlockNumber}, + {Name: "transaction_index", Data: &c.TransactionIndex}, + {Name: "transaction_hash", Data: &c.TransactionHash}, + {Name: "internal_index", Data: &c.InternalIndex}, + {Name: "log_index", Data: &c.LogIndex}, + {Name: "erc20", Data: &c.Erc20}, + {Name: "from_address", Data: &c.FromAddress}, + {Name: "to_address", Data: &c.ToAddress}, + {Name: "value", Data: &c.Value}, + {Name: "meta_network_name", Data: c.MetaNetworkName}, + } +} diff --git a/pkg/processor/cryo/ds_erc20_transfers_test.go b/pkg/processor/cryo/ds_erc20_transfers_test.go new file mode 100644 index 0000000..4517745 --- /dev/null +++ b/pkg/processor/cryo/ds_erc20_transfers_test.go @@ -0,0 +1,69 @@ +package cryo + +import ( + "testing" + + "github.com/ClickHouse/ch-go/proto" + "github.com/stretchr/testify/require" +) + +func TestDecodeErc20Transfers(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "erc20_transfers", decodeErc20Transfers) + require.NoError(t, err) + require.Len(t, rows, 152) + + first := rows[0] + require.Equal(t, fixtureMeta.updated, first.UpdatedDateTime) + require.Equal(t, uint64(23000000), first.BlockNumber) + require.Equal(t, uint64(0), first.TransactionIndex) + require.Equal(t, "0x5946ef0de28db53ffe00f0fcdb4cc19c9da234819430bf957cc4c15200d8bcac", first.TransactionHash) + require.Equal(t, uint32(1), first.InternalIndex) + require.Equal(t, uint64(0), first.LogIndex) + require.Equal(t, "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", first.Erc20) + require.Equal(t, "0x28c6c06298d514db089934071355e5743bf21d60", first.FromAddress) + require.Equal(t, "0xf2abf514dfbaf3323a5cb95bb2e4ab180a5ba3e8", first.ToAddress) + require.Equal(t, "4996500000", first.Value) + require.Equal(t, "mainnet", first.MetaNetworkName) + + // Rows 1 and 2 share a transaction, so internal_index counts within it while + // log_index keeps counting across the block. + require.Equal(t, "0xcb51cc795fccee5df8468c88475be47dda46ba014c4d649a2ecd44d39d5876f2", rows[1].TransactionHash) + require.Equal(t, uint32(1), rows[1].InternalIndex) + require.Equal(t, uint64(4), rows[1].LogIndex) + require.Equal(t, "5264232533978631", rows[1].Value) + + require.Equal(t, rows[1].TransactionHash, rows[2].TransactionHash) + require.Equal(t, uint32(2), rows[2].InternalIndex) + require.Equal(t, uint64(5), rows[2].LogIndex) + require.Equal(t, "12370946454849782151684", rows[2].Value) + + last := rows[151] + require.Equal(t, uint64(131), last.TransactionIndex) + require.Equal(t, uint64(321), last.LogIndex) + require.Equal(t, "0x6c49082790288faf4c4b4a49dd7428817a8ce142cb7d474941229b1ca0b0b992", last.TransactionHash) + require.Equal(t, "42848622000", last.Value) +} + +func TestErc20TransferColumnsAppend(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "erc20_transfers", decodeErc20Transfers) + require.NoError(t, err) + + cols := newErc20TransferColumns() + for _, r := range rows { + require.NoError(t, cols.Append(r)) + } + + require.Equal(t, len(rows), cols.Rows()) + + // 12370946454849782151684 does not fit a uint64, so the limbs prove the + // decimal string reached the U256 column without passing through one. + require.Equal(t, proto.UInt256{ + Low: proto.UInt128{Low: 11627925464382568964, High: 670}, + }, cols.Value[2]) + + requireInputMatchesDDL(t, "canonical_execution_erc20_transfers", cols.Input()) +} diff --git a/pkg/processor/cryo/ds_erc721_transfers.go b/pkg/processor/cryo/ds_erc721_transfers.go new file mode 100644 index 0000000..253dfd3 --- /dev/null +++ b/pkg/processor/cryo/ds_erc721_transfers.go @@ -0,0 +1,155 @@ +package cryo + +import ( + "fmt" + "time" + + "github.com/ClickHouse/ch-go/proto" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +var erc721TransfersDataset = &Dataset{ + Name: "erc721_transfers", + Table: "canonical_execution_erc721_transfers", + InternalIndex: true, + MinBlock: 0, + newSink: func(d sinkDeps) sink { + return newDatasetSink(d, decodeErc721Transfers, func() columnar[erc721TransferRow] { return newErc721TransferColumns() }) + }, +} + +type erc721TransferRow struct { + UpdatedDateTime time.Time + BlockNumber uint64 + TransactionIndex uint64 + TransactionHash string + InternalIndex uint32 + LogIndex uint64 + Erc721 string + FromAddress string + ToAddress string + Token string + MetaNetworkName string +} + +func decodeErc721Transfers(t *decode.Table, meta rowMeta) ([]erc721TransferRow, error) { + p := newPicker(t) + + var ( + blockNumber = p.int("block_number") + transactionIndex = p.int("transaction_index") + transactionHash = p.str("transaction_hash") + logIndex = p.int("log_index") + // cryo names the token contract column erc20 in its erc721 output too. + erc721 = p.str("erc20") + fromAddress = p.str("from_address") + toAddress = p.str("to_address") + token = p.str("token_id_string") + ) + + if p.err != nil { + return nil, p.err + } + + idx := internalIndex(transactionHash, t.Rows()) + + rows := make([]erc721TransferRow, 0, t.Rows()) + + for i := range t.Rows() { + rows = append(rows, erc721TransferRow{ + UpdatedDateTime: meta.updated, + BlockNumber: uintOrZero(blockNumber, i), + TransactionIndex: uintOrZero(transactionIndex, i), + TransactionHash: hexOrEmpty(transactionHash, i), + InternalIndex: idx[i], + LogIndex: uintOrZero(logIndex, i), + Erc721: hexOrEmpty(erc721, i), + FromAddress: hexOrEmpty(fromAddress, i), + ToAddress: hexOrEmpty(toAddress, i), + Token: strOrEmpty(token, i), + MetaNetworkName: meta.network, + }) + } + + return rows, nil +} + +type erc721TransferColumns struct { + UpdatedDateTime proto.ColDateTime + BlockNumber proto.ColUInt64 + TransactionIndex proto.ColUInt64 + TransactionHash proto.ColFixedStr + InternalIndex proto.ColUInt32 + LogIndex proto.ColUInt64 + Erc721 proto.ColStr + FromAddress proto.ColStr + ToAddress proto.ColStr + Token proto.ColUInt256 + MetaNetworkName *proto.ColLowCardinality[string] +} + +func newErc721TransferColumns() *erc721TransferColumns { + return &erc721TransferColumns{ + TransactionHash: proto.ColFixedStr{Size: hashSize}, + MetaNetworkName: new(proto.ColStr).LowCardinality(), + } +} + +func (c *erc721TransferColumns) Append(r erc721TransferRow) error { + hash, err := fixedHash(r.TransactionHash) + if err != nil { + return err + } + + token, err := uint256(r.Token) + if err != nil { + return fmt.Errorf("token: %w", err) + } + + c.UpdatedDateTime.Append(r.UpdatedDateTime) + c.BlockNumber.Append(r.BlockNumber) + c.TransactionIndex.Append(r.TransactionIndex) + c.TransactionHash.Append(hash) + c.InternalIndex.Append(r.InternalIndex) + c.LogIndex.Append(r.LogIndex) + c.Erc721.Append(r.Erc721) + c.FromAddress.Append(r.FromAddress) + c.ToAddress.Append(r.ToAddress) + c.Token.Append(token) + c.MetaNetworkName.Append(r.MetaNetworkName) + + return nil +} + +func (c *erc721TransferColumns) Reset() { + c.UpdatedDateTime.Reset() + c.BlockNumber.Reset() + c.TransactionIndex.Reset() + c.TransactionHash.Reset() + c.InternalIndex.Reset() + c.LogIndex.Reset() + c.Erc721.Reset() + c.FromAddress.Reset() + c.ToAddress.Reset() + c.Token.Reset() + c.MetaNetworkName.Reset() +} + +func (c *erc721TransferColumns) Rows() int { return c.BlockNumber.Rows() } + +func (c *erc721TransferColumns) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &c.UpdatedDateTime}, + {Name: "block_number", Data: &c.BlockNumber}, + {Name: "transaction_index", Data: &c.TransactionIndex}, + {Name: "transaction_hash", Data: &c.TransactionHash}, + {Name: "internal_index", Data: &c.InternalIndex}, + {Name: "log_index", Data: &c.LogIndex}, + {Name: "erc721", Data: &c.Erc721}, + {Name: "from_address", Data: &c.FromAddress}, + {Name: "to_address", Data: &c.ToAddress}, + {Name: "token", Data: &c.Token}, + {Name: "meta_network_name", Data: c.MetaNetworkName}, + } +} diff --git a/pkg/processor/cryo/ds_erc721_transfers_test.go b/pkg/processor/cryo/ds_erc721_transfers_test.go new file mode 100644 index 0000000..10704b0 --- /dev/null +++ b/pkg/processor/cryo/ds_erc721_transfers_test.go @@ -0,0 +1,102 @@ +package cryo + +import ( + "testing" + + "github.com/ClickHouse/ch-go/proto" + "github.com/stretchr/testify/require" +) + +// erc721TokenLarge is the token id of the first row of the b23000026 fixture, +// an ENS label hash. At 255 bits it fills all four U256 limbs, which is the +// case a float or uint64 intermediate would silently destroy. +const erc721TokenLarge = "54878141629548454963394928233127112722036498901245006402027164760877303839156" + +func TestDecodeErc721Transfers(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000026", "erc721_transfers", decodeErc721Transfers) + require.NoError(t, err) + require.Len(t, rows, 42) + + first := rows[0] + require.Equal(t, fixtureMeta.updated, first.UpdatedDateTime) + require.Equal(t, uint64(23000026), first.BlockNumber) + require.Equal(t, uint64(102), first.TransactionIndex) + require.Equal(t, "0x8591f4c01a8849e191bc10101c7de815fa7f73a972d1c732823b9759977a5baf", first.TransactionHash) + require.Equal(t, uint32(1), first.InternalIndex) + require.Equal(t, uint64(463), first.LogIndex) + // cryo emits the token contract under the column name erc20 even here. + require.Equal(t, "0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85", first.Erc721) + require.Equal(t, "0xc0f7ee3fc687173d15f1d20182a04b22d3157fb4", first.FromAddress) + require.Equal(t, "0x0000000000000000000000000000000000000000", first.ToAddress) + require.Equal(t, erc721TokenLarge, first.Token) + require.Equal(t, "mainnet", first.MetaNetworkName) + + require.Equal(t, first.TransactionHash, rows[1].TransactionHash) + require.Equal(t, uint32(2), rows[1].InternalIndex) + require.Equal(t, uint64(464), rows[1].LogIndex) + require.Equal(t, erc721TokenLarge, rows[1].Token) + + // The block's second transaction restarts internal_index at 1. + require.Equal(t, "0x5940e7800479d3fd08490428e8f74160a54e09bd77f1c8824c97e0c689903e51", rows[40].TransactionHash) + require.Equal(t, uint32(1), rows[40].InternalIndex) + require.Equal(t, uint64(921), rows[40].LogIndex) + + last := rows[41] + require.Equal(t, rows[40].TransactionHash, last.TransactionHash) + require.Equal(t, uint32(2), last.InternalIndex) + require.Equal(t, uint64(201), last.TransactionIndex) + require.Equal(t, uint64(928), last.LogIndex) + require.Equal(t, "0x283af0b28c62c092c9727f1ee09c02ca627eb7f5", last.FromAddress) + require.Equal(t, "0xed976ca9036bc2d4e25ba8219fada1be503a09c7", last.ToAddress) + require.Equal(t, "56460438191091326310504608336249342392432960708470807119089512209041103960200", last.Token) +} + +// TestDecodeErc721TransfersEmptyBlock covers a block with no erc721 activity, +// which cryo still writes as a parquet file carrying only the schema. +func TestDecodeErc721TransfersEmptyBlock(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "erc721_transfers", decodeErc721Transfers) + require.NoError(t, err) + require.Empty(t, rows) +} + +func TestErc721TransferColumnsAppend(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000026", "erc721_transfers", decodeErc721Transfers) + require.NoError(t, err) + + cols := newErc721TransferColumns() + for _, r := range rows { + require.NoError(t, cols.Append(r)) + } + + require.Equal(t, len(rows), cols.Rows()) + + require.Equal(t, proto.UInt256{ + Low: proto.UInt128{ + Low: 8239877381706201524, + High: 11825367184831116616, + }, + High: proto.UInt128{ + Low: 4942523148105832171, + High: 8742592352801473700, + }, + }, cols.Token[0]) + + require.Equal(t, proto.UInt256{ + Low: proto.UInt128{ + Low: 8071277476105599112, + High: 1821699312930359461, + }, + High: proto.UInt128{ + Low: 14729306524578318847, + High: 8994666738122137780, + }, + }, cols.Token[41]) + + requireInputMatchesDDL(t, "canonical_execution_erc721_transfers", cols.Input()) +} diff --git a/pkg/processor/cryo/ds_four_byte_counts.go b/pkg/processor/cryo/ds_four_byte_counts.go new file mode 100644 index 0000000..f68aa1e --- /dev/null +++ b/pkg/processor/cryo/ds_four_byte_counts.go @@ -0,0 +1,137 @@ +package cryo + +import ( + "time" + + "github.com/ClickHouse/ch-go/proto" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +var fourByteCountsDataset = &Dataset{ + Name: "four_byte_counts", + Table: "canonical_execution_four_byte_counts", + InternalIndex: true, + MinBlock: 1, + newSink: func(d sinkDeps) sink { + return newDatasetSink(d, decodeFourByteCounts, func() columnar[fourByteCountRow] { return newFourByteCountColumns() }) + }, +} + +type fourByteCountRow struct { + UpdatedDateTime time.Time + BlockNumber uint64 + TransactionIndex uint64 + TransactionHash string + InternalIndex uint32 + Signature string + Size uint64 + Count uint64 + MetaNetworkName string +} + +func decodeFourByteCounts(t *decode.Table, meta rowMeta) ([]fourByteCountRow, error) { + p := newPicker(t) + + var ( + blockNumber = p.int("block_number") + transactionIndex = p.int("transaction_index") + transactionHash = p.str("transaction_hash") + signature = p.str("signature") + size = p.int("size") + count = p.int("count") + ) + + if p.err != nil { + return nil, p.err + } + + // cryo counts each selector once per calldata size, so a transaction can + // carry the same signature more than once; internal_index is what keeps + // those rows apart under the table's sort key. + idx := internalIndex(transactionHash, t.Rows()) + + rows := make([]fourByteCountRow, 0, t.Rows()) + + for i := range t.Rows() { + rows = append(rows, fourByteCountRow{ + UpdatedDateTime: meta.updated, + BlockNumber: uintOrZero(blockNumber, i), + TransactionIndex: uintOrZero(transactionIndex, i), + TransactionHash: hexOrEmpty(transactionHash, i), + InternalIndex: idx[i], + Signature: hexOrEmpty(signature, i), + Size: uintOrZero(size, i), + Count: uintOrZero(count, i), + MetaNetworkName: meta.network, + }) + } + + return rows, nil +} + +type fourByteCountColumns struct { + UpdatedDateTime proto.ColDateTime + BlockNumber proto.ColUInt64 + TransactionIndex proto.ColUInt64 + TransactionHash proto.ColFixedStr + InternalIndex proto.ColUInt32 + Signature proto.ColStr + Size proto.ColUInt64 + Count proto.ColUInt64 + MetaNetworkName *proto.ColLowCardinality[string] +} + +func newFourByteCountColumns() *fourByteCountColumns { + return &fourByteCountColumns{ + TransactionHash: proto.ColFixedStr{Size: hashSize}, + MetaNetworkName: new(proto.ColStr).LowCardinality(), + } +} + +func (c *fourByteCountColumns) Append(r fourByteCountRow) error { + hash, err := fixedHash(r.TransactionHash) + if err != nil { + return err + } + + c.UpdatedDateTime.Append(r.UpdatedDateTime) + c.BlockNumber.Append(r.BlockNumber) + c.TransactionIndex.Append(r.TransactionIndex) + c.TransactionHash.Append(hash) + c.InternalIndex.Append(r.InternalIndex) + c.Signature.Append(r.Signature) + c.Size.Append(r.Size) + c.Count.Append(r.Count) + c.MetaNetworkName.Append(r.MetaNetworkName) + + return nil +} + +func (c *fourByteCountColumns) Reset() { + c.UpdatedDateTime.Reset() + c.BlockNumber.Reset() + c.TransactionIndex.Reset() + c.TransactionHash.Reset() + c.InternalIndex.Reset() + c.Signature.Reset() + c.Size.Reset() + c.Count.Reset() + c.MetaNetworkName.Reset() +} + +func (c *fourByteCountColumns) Rows() int { return c.BlockNumber.Rows() } + +func (c *fourByteCountColumns) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &c.UpdatedDateTime}, + {Name: "block_number", Data: &c.BlockNumber}, + {Name: "transaction_index", Data: &c.TransactionIndex}, + {Name: "transaction_hash", Data: &c.TransactionHash}, + {Name: "internal_index", Data: &c.InternalIndex}, + {Name: "signature", Data: &c.Signature}, + {Name: "size", Data: &c.Size}, + {Name: "count", Data: &c.Count}, + {Name: "meta_network_name", Data: c.MetaNetworkName}, + } +} diff --git a/pkg/processor/cryo/ds_four_byte_counts_test.go b/pkg/processor/cryo/ds_four_byte_counts_test.go new file mode 100644 index 0000000..fe5c76f --- /dev/null +++ b/pkg/processor/cryo/ds_four_byte_counts_test.go @@ -0,0 +1,142 @@ +package cryo + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestDecodeFourByteCounts(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "four_byte_counts", decodeFourByteCounts) + require.NoError(t, err) + require.Len(t, rows, 278) + + first := rows[0] + require.Equal(t, fixtureMeta.updated, first.UpdatedDateTime) + require.Equal(t, uint64(23000000), first.BlockNumber) + require.Equal(t, uint64(0), first.TransactionIndex) + require.Equal(t, "0x5946ef0de28db53ffe00f0fcdb4cc19c9da234819430bf957cc4c15200d8bcac", first.TransactionHash) + require.Equal(t, uint32(1), first.InternalIndex) + require.Equal(t, "0xa9059cbb", first.Signature) + require.Equal(t, uint64(64), first.Size) + require.Equal(t, uint64(2), first.Count) + require.Equal(t, "mainnet", first.MetaNetworkName) + + second := rows[1] + require.Equal(t, uint64(3), second.TransactionIndex) + require.Equal(t, "0x3a49a2dcaf21efef0db0aeb21dba2b335a502078c8d5d8b9fb32a078e506d274", second.TransactionHash) + require.Equal(t, uint32(1), second.InternalIndex) + require.Equal(t, "0x5c43fcf6", second.Signature) + + last := rows[277] + require.Equal(t, uint64(131), last.TransactionIndex) + require.Equal(t, "0x6c49082790288faf4c4b4a49dd7428817a8ce142cb7d474941229b1ca0b0b992", last.TransactionHash) + require.Equal(t, uint32(1), last.InternalIndex) + require.Equal(t, "0xa9059cbb", last.Signature) + require.Equal(t, uint64(64), last.Size) + require.Equal(t, uint64(2), last.Count) +} + +// TestFourByteCountsInternalIndexIsUnique guards the reason this table carries +// internal_index at all: cryo counts a selector once per calldata size, so a +// transaction can repeat a signature, and without the extra sort key those rows +// collapse into one another. +func TestFourByteCountsInternalIndexIsUnique(t *testing.T) { + t.Parallel() + + for block, want := range map[string]int{"b23000000": 278, "b23000026": 1094} { + t.Run(block, func(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, block, "four_byte_counts", decodeFourByteCounts) + require.NoError(t, err) + require.Len(t, rows, want) + + type key struct { + hash string + index uint32 + } + + seen := make(map[key]struct{}, len(rows)) + perTx := make(map[string]uint32, len(rows)) + + for i, r := range rows { + k := key{hash: r.TransactionHash, index: r.InternalIndex} + + _, dup := seen[k] + + require.NotZero(t, r.InternalIndex, "row %d has a zero internal_index", i) + require.False(t, dup, "row %d repeats (%s, %d)", i, r.TransactionHash, r.InternalIndex) + + seen[k] = struct{}{} + perTx[r.TransactionHash]++ + + require.Equal(t, perTx[r.TransactionHash], r.InternalIndex, + "row %d is not the next index for %s", i, r.TransactionHash) + } + + require.Len(t, seen, len(rows)) + }) + } +} + +// TestFourByteCountsRepeatedSignature pins the transaction that motivates the +// column: the same selector appears twice under two calldata sizes. +func TestFourByteCountsRepeatedSignature(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "four_byte_counts", decodeFourByteCounts) + require.NoError(t, err) + + const hash = "0x50c8d7b157abe4c0515adab242a25bd39f815fcb51f1e03c21650e38afb887e0" + + var ( + tx []fourByteCountRow + repeats []fourByteCountRow + ) + + for _, r := range rows { + if r.TransactionHash != hash { + continue + } + + tx = append(tx, r) + + if r.Signature == "0x7bd243de" { + repeats = append(repeats, r) + } + } + + require.Len(t, tx, 12) + + for i, r := range tx { + require.Equal(t, uint32(i+1), r.InternalIndex) + require.Equal(t, uint64(122), r.TransactionIndex) + } + + require.Len(t, repeats, 2) + require.Equal(t, uint32(9), repeats[0].InternalIndex) + require.Equal(t, uint64(192), repeats[0].Size) + require.Equal(t, uint32(10), repeats[1].InternalIndex) + require.Equal(t, uint64(224), repeats[1].Size) +} + +func TestFourByteCountColumnsAppend(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "four_byte_counts", decodeFourByteCounts) + require.NoError(t, err) + + cols := newFourByteCountColumns() + for _, r := range rows { + require.NoError(t, cols.Append(r)) + } + + require.Equal(t, len(rows), cols.Rows()) + require.Equal(t, "0xa9059cbb", cols.Signature.Row(0)) + require.Equal(t, uint32(1), cols.InternalIndex[0]) + + requireInputMatchesDDL(t, "canonical_execution_four_byte_counts", cols.Input()) +} diff --git a/pkg/processor/cryo/ds_logs.go b/pkg/processor/cryo/ds_logs.go new file mode 100644 index 0000000..3fa44fd --- /dev/null +++ b/pkg/processor/cryo/ds_logs.go @@ -0,0 +1,168 @@ +package cryo + +import ( + "time" + + "github.com/ClickHouse/ch-go/proto" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +var logsDataset = &Dataset{ + Name: "logs", + Table: "canonical_execution_logs", + InternalIndex: true, + MinBlock: 0, + newSink: func(d sinkDeps) sink { + return newDatasetSink(d, decodeLogs, func() columnar[logRow] { return newLogColumns() }) + }, +} + +type logRow struct { + UpdatedDateTime time.Time + BlockNumber uint64 + TransactionIndex uint64 + TransactionHash string + InternalIndex uint32 + LogIndex uint32 + Address string + Topic0 *string + Topic1 *string + Topic2 *string + Topic3 *string + Data *string + MetaNetworkName string +} + +func decodeLogs(t *decode.Table, meta rowMeta) ([]logRow, error) { + p := newPicker(t) + + var ( + blockNumber = p.int("block_number") + transactionIndex = p.int("transaction_index") + transactionHash = p.str("transaction_hash") + logIndex = p.int("log_index") + address = p.str("address") + topic0 = p.str("topic0") + topic1 = p.str("topic1") + topic2 = p.str("topic2") + topic3 = p.str("topic3") + data = p.str("data") + ) + + if p.err != nil { + return nil, p.err + } + + idx := internalIndex(transactionHash, t.Rows()) + + rows := make([]logRow, 0, t.Rows()) + + for i := range t.Rows() { + //nolint:gosec // log_index is uint32 in cryo's schema, widened by the decoder + rows = append(rows, logRow{ + UpdatedDateTime: meta.updated, + BlockNumber: uintOrZero(blockNumber, i), + TransactionIndex: uintOrZero(transactionIndex, i), + TransactionHash: hexOrEmpty(transactionHash, i), + InternalIndex: idx[i], + LogIndex: uint32(uintOrZero(logIndex, i)), + Address: hexOrEmpty(address, i), + Topic0: nullableHex(topic0, i), + Topic1: nullableHex(topic1, i), + Topic2: nullableHex(topic2, i), + Topic3: nullableHex(topic3, i), + Data: nullableHex(data, i), + MetaNetworkName: meta.network, + }) + } + + return rows, nil +} + +type logColumns struct { + UpdatedDateTime proto.ColDateTime + BlockNumber proto.ColUInt64 + TransactionIndex proto.ColUInt64 + TransactionHash proto.ColFixedStr + InternalIndex proto.ColUInt32 + LogIndex proto.ColUInt32 + Address proto.ColStr + Topic0 *proto.ColNullable[string] + Topic1 *proto.ColNullable[string] + Topic2 *proto.ColNullable[string] + Topic3 *proto.ColNullable[string] + Data *proto.ColNullable[string] + MetaNetworkName *proto.ColLowCardinality[string] +} + +func newLogColumns() *logColumns { + return &logColumns{ + TransactionHash: proto.ColFixedStr{Size: hashSize}, + Topic0: new(proto.ColStr).Nullable(), + Topic1: new(proto.ColStr).Nullable(), + Topic2: new(proto.ColStr).Nullable(), + Topic3: new(proto.ColStr).Nullable(), + Data: new(proto.ColStr).Nullable(), + MetaNetworkName: new(proto.ColStr).LowCardinality(), + } +} + +func (c *logColumns) Append(r logRow) error { + hash, err := fixedHash(r.TransactionHash) + if err != nil { + return err + } + + c.UpdatedDateTime.Append(r.UpdatedDateTime) + c.BlockNumber.Append(r.BlockNumber) + c.TransactionIndex.Append(r.TransactionIndex) + c.TransactionHash.Append(hash) + c.InternalIndex.Append(r.InternalIndex) + c.LogIndex.Append(r.LogIndex) + c.Address.Append(r.Address) + c.Topic0.Append(nullable(r.Topic0)) + c.Topic1.Append(nullable(r.Topic1)) + c.Topic2.Append(nullable(r.Topic2)) + c.Topic3.Append(nullable(r.Topic3)) + c.Data.Append(nullable(r.Data)) + c.MetaNetworkName.Append(r.MetaNetworkName) + + return nil +} + +func (c *logColumns) Reset() { + c.UpdatedDateTime.Reset() + c.BlockNumber.Reset() + c.TransactionIndex.Reset() + c.TransactionHash.Reset() + c.InternalIndex.Reset() + c.LogIndex.Reset() + c.Address.Reset() + c.Topic0.Reset() + c.Topic1.Reset() + c.Topic2.Reset() + c.Topic3.Reset() + c.Data.Reset() + c.MetaNetworkName.Reset() +} + +func (c *logColumns) Rows() int { return c.BlockNumber.Rows() } + +func (c *logColumns) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &c.UpdatedDateTime}, + {Name: "block_number", Data: &c.BlockNumber}, + {Name: "transaction_index", Data: &c.TransactionIndex}, + {Name: "transaction_hash", Data: &c.TransactionHash}, + {Name: "internal_index", Data: &c.InternalIndex}, + {Name: "log_index", Data: &c.LogIndex}, + {Name: "address", Data: &c.Address}, + {Name: "topic0", Data: c.Topic0}, + {Name: "topic1", Data: c.Topic1}, + {Name: "topic2", Data: c.Topic2}, + {Name: "topic3", Data: c.Topic3}, + {Name: "data", Data: c.Data}, + {Name: "meta_network_name", Data: c.MetaNetworkName}, + } +} diff --git a/pkg/processor/cryo/ds_logs_test.go b/pkg/processor/cryo/ds_logs_test.go new file mode 100644 index 0000000..e1d5164 --- /dev/null +++ b/pkg/processor/cryo/ds_logs_test.go @@ -0,0 +1,92 @@ +package cryo + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestDecodeLogs(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "logs", decodeLogs) + require.NoError(t, err) + require.Len(t, rows, 322) + + r := rows[0] + require.Equal(t, fixtureMeta.updated, r.UpdatedDateTime) + require.Equal(t, uint64(23000000), r.BlockNumber) + require.Equal(t, uint64(0), r.TransactionIndex) + require.Equal(t, "0x5946ef0de28db53ffe00f0fcdb4cc19c9da234819430bf957cc4c15200d8bcac", r.TransactionHash) + require.Equal(t, uint32(1), r.InternalIndex) + require.Equal(t, uint32(0), r.LogIndex) + require.Equal(t, "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", r.Address) + require.Equal(t, "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", *r.Topic0) + require.Equal(t, "0x00000000000000000000000028c6c06298d514db089934071355e5743bf21d60", *r.Topic1) + require.Equal(t, "0x000000000000000000000000f2abf514dfbaf3323a5cb95bb2e4ab180a5ba3e8", *r.Topic2) + require.Nil(t, r.Topic3) + require.Equal(t, "0x0000000000000000000000000000000000000000000000000000000129d08a20", *r.Data) + require.Equal(t, "mainnet", r.MetaNetworkName) + + // internal_index restarts at 1 for each transaction and counts every log + // the transaction emitted, in the order cryo wrote them. + require.Equal(t, uint32(1), rows[3].InternalIndex) + require.Equal(t, uint32(5), rows[7].InternalIndex) + require.Equal(t, uint32(11), rows[26].InternalIndex) + require.Equal(t, uint32(47), rows[62].InternalIndex) + require.Equal(t, "0xce3d9c0c9dc7a3db4f613a9a8f56be5b7a858b60fd758d2b4109e9db2b96dc5d", rows[62].TransactionHash) + require.Equal(t, uint64(6), rows[62].TransactionIndex) + require.Equal(t, uint32(1), rows[321].InternalIndex) + + // A log with no data at all arrives as "0x" and is stored as NULL. + require.Nil(t, rows[26].Data) + require.Nil(t, rows[62].Data) +} + +func TestDecodeLogsAnonymous(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000026", "logs", decodeLogs) + require.NoError(t, err) + require.Len(t, rows, 990) + + anonymous := 0 + + for _, r := range rows { + if r.Topic0 == nil { + anonymous++ + + require.Nil(t, r.Topic1) + require.Nil(t, r.Topic2) + require.Nil(t, r.Topic3) + } + } + + // LOG0 emits no topics whatsoever, so topic0 is genuinely absent rather + // than zero. + require.Equal(t, 10, anonymous) + + r := rows[26] + require.Nil(t, r.Topic0) + require.Equal(t, uint32(26), r.LogIndex) + require.Equal(t, uint64(1), r.TransactionIndex) + require.Equal(t, "0xffbf7de7b5c7740694ec15a8dfd2b6c0e42fde82fd70db8eb8122a4f10c68257", r.TransactionHash) + require.Equal(t, uint32(17), r.InternalIndex) + require.Equal(t, "0xe0e0e08a6a4b9dc7bd67bcb7aade5cf48157d444", r.Address) + require.NotNil(t, r.Data) +} + +func TestLogsColumnsAppend(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000026", "logs", decodeLogs) + require.NoError(t, err) + + cols := newLogColumns() + for _, r := range rows { + require.NoError(t, cols.Append(r)) + } + + require.Equal(t, len(rows), cols.Rows()) + requireInputMatchesDDL(t, "canonical_execution_logs", cols.Input()) +} diff --git a/pkg/processor/cryo/ds_native_transfers.go b/pkg/processor/cryo/ds_native_transfers.go new file mode 100644 index 0000000..de106ac --- /dev/null +++ b/pkg/processor/cryo/ds_native_transfers.go @@ -0,0 +1,147 @@ +package cryo + +import ( + "fmt" + "time" + + "github.com/ClickHouse/ch-go/proto" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +var nativeTransfersDataset = &Dataset{ + Name: "native_transfers", + Table: "canonical_execution_native_transfers", + InternalIndex: true, + MinBlock: 0, + newSink: func(d sinkDeps) sink { + return newDatasetSink(d, decodeNativeTransfers, func() columnar[nativeTransferRow] { return newNativeTransferColumns() }) + }, +} + +type nativeTransferRow struct { + UpdatedDateTime time.Time + BlockNumber uint64 + TransactionIndex uint64 + TransactionHash string + InternalIndex uint32 + TransferIndex uint64 + FromAddress string + ToAddress string + Value string + MetaNetworkName string +} + +func decodeNativeTransfers(t *decode.Table, meta rowMeta) ([]nativeTransferRow, error) { + p := newPicker(t) + + var ( + blockNumber = p.int("block_number") + transactionIndex = p.int("transaction_index") + transactionHash = p.str("transaction_hash") + transferIndex = p.int("transfer_index") + fromAddress = p.str("from_address") + toAddress = p.str("to_address") + value = p.str("value_string") + ) + + if p.err != nil { + return nil, p.err + } + + idx := internalIndex(transactionHash, t.Rows()) + + rows := make([]nativeTransferRow, 0, t.Rows()) + + for i := range t.Rows() { + rows = append(rows, nativeTransferRow{ + UpdatedDateTime: meta.updated, + BlockNumber: uintOrZero(blockNumber, i), + TransactionIndex: uintOrZero(transactionIndex, i), + TransactionHash: hexOrEmpty(transactionHash, i), + InternalIndex: idx[i], + TransferIndex: uintOrZero(transferIndex, i), + FromAddress: hexOrEmpty(fromAddress, i), + ToAddress: hexOrEmpty(toAddress, i), + Value: strOrEmpty(value, i), + MetaNetworkName: meta.network, + }) + } + + return rows, nil +} + +type nativeTransferColumns struct { + UpdatedDateTime proto.ColDateTime + BlockNumber proto.ColUInt64 + TransactionIndex proto.ColUInt64 + TransactionHash proto.ColFixedStr + InternalIndex proto.ColUInt32 + TransferIndex proto.ColUInt64 + FromAddress proto.ColStr + ToAddress proto.ColStr + Value proto.ColUInt256 + MetaNetworkName *proto.ColLowCardinality[string] +} + +func newNativeTransferColumns() *nativeTransferColumns { + return &nativeTransferColumns{ + TransactionHash: proto.ColFixedStr{Size: hashSize}, + MetaNetworkName: new(proto.ColStr).LowCardinality(), + } +} + +func (c *nativeTransferColumns) Append(r nativeTransferRow) error { + hash, err := fixedHash(r.TransactionHash) + if err != nil { + return err + } + + value, err := uint256(r.Value) + if err != nil { + return fmt.Errorf("value: %w", err) + } + + c.UpdatedDateTime.Append(r.UpdatedDateTime) + c.BlockNumber.Append(r.BlockNumber) + c.TransactionIndex.Append(r.TransactionIndex) + c.TransactionHash.Append(hash) + c.InternalIndex.Append(r.InternalIndex) + c.TransferIndex.Append(r.TransferIndex) + c.FromAddress.Append(r.FromAddress) + c.ToAddress.Append(r.ToAddress) + c.Value.Append(value) + c.MetaNetworkName.Append(r.MetaNetworkName) + + return nil +} + +func (c *nativeTransferColumns) Reset() { + c.UpdatedDateTime.Reset() + c.BlockNumber.Reset() + c.TransactionIndex.Reset() + c.TransactionHash.Reset() + c.InternalIndex.Reset() + c.TransferIndex.Reset() + c.FromAddress.Reset() + c.ToAddress.Reset() + c.Value.Reset() + c.MetaNetworkName.Reset() +} + +func (c *nativeTransferColumns) Rows() int { return c.BlockNumber.Rows() } + +func (c *nativeTransferColumns) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &c.UpdatedDateTime}, + {Name: "block_number", Data: &c.BlockNumber}, + {Name: "transaction_index", Data: &c.TransactionIndex}, + {Name: "transaction_hash", Data: &c.TransactionHash}, + {Name: "internal_index", Data: &c.InternalIndex}, + {Name: "transfer_index", Data: &c.TransferIndex}, + {Name: "from_address", Data: &c.FromAddress}, + {Name: "to_address", Data: &c.ToAddress}, + {Name: "value", Data: &c.Value}, + {Name: "meta_network_name", Data: c.MetaNetworkName}, + } +} diff --git a/pkg/processor/cryo/ds_native_transfers_test.go b/pkg/processor/cryo/ds_native_transfers_test.go new file mode 100644 index 0000000..aa631e6 --- /dev/null +++ b/pkg/processor/cryo/ds_native_transfers_test.go @@ -0,0 +1,75 @@ +package cryo + +import ( + "testing" + + "github.com/ClickHouse/ch-go/proto" + "github.com/stretchr/testify/require" +) + +func TestDecodeNativeTransfers(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "native_transfers", decodeNativeTransfers) + require.NoError(t, err) + require.Len(t, rows, 797) + + first := rows[0] + require.Equal(t, fixtureMeta.updated, first.UpdatedDateTime) + require.Equal(t, uint64(23000000), first.BlockNumber) + require.Equal(t, uint64(0), first.TransactionIndex) + require.Equal(t, "0x5946ef0de28db53ffe00f0fcdb4cc19c9da234819430bf957cc4c15200d8bcac", first.TransactionHash) + require.Equal(t, uint32(1), first.InternalIndex) + require.Equal(t, uint64(0), first.TransferIndex) + require.Equal(t, "0x28c6c06298d514db089934071355e5743bf21d60", first.FromAddress) + require.Equal(t, "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", first.ToAddress) + require.Equal(t, "0", first.Value) + require.Equal(t, "mainnet", first.MetaNetworkName) + + require.Equal(t, first.TransactionHash, rows[1].TransactionHash) + require.Equal(t, uint32(2), rows[1].InternalIndex) + require.Equal(t, uint64(1), rows[1].TransferIndex) + + // transfer_index counts across the whole block, so a new transaction resets + // internal_index without resetting it. + require.Equal(t, "0x6747dea6d070127292e2a600d879ac67b986253088e82de01d6bfa92e7ffb90c", rows[2].TransactionHash) + require.Equal(t, uint32(1), rows[2].InternalIndex) + require.Equal(t, uint64(2), rows[2].TransferIndex) + require.Equal(t, "1085803440000000000", rows[2].Value) + + big := rows[470] + require.Equal(t, "0xc55c306596f2d46cf0658b7432834e40ddb0056d5d3083b2bae93de9753824ad", big.TransactionHash) + require.Equal(t, uint64(56), big.TransactionIndex) + require.Equal(t, uint64(470), big.TransferIndex) + require.Equal(t, uint32(1), big.InternalIndex) + require.Equal(t, "82520860000000000000", big.Value) + + last := rows[796] + require.Equal(t, "0x1894e4033d2ecb3f3b3bfa8b2c82c213593965754b40042a4ec392b2733ba76c", last.TransactionHash) + require.Equal(t, uint64(136), last.TransactionIndex) + require.Equal(t, uint64(796), last.TransferIndex) + require.Equal(t, "0x396343362be2a4da1ce0c1c210945346fb82aa49", last.FromAddress) + require.Equal(t, "23526089112080996", last.Value) +} + +func TestNativeTransferColumnsAppend(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "native_transfers", decodeNativeTransfers) + require.NoError(t, err) + + cols := newNativeTransferColumns() + for _, r := range rows { + require.NoError(t, cols.Append(r)) + } + + require.Equal(t, len(rows), cols.Rows()) + + // 82.52 ETH in wei overflows a uint64, so the limbs prove the decimal string + // reached the U256 column without passing through one. + require.Equal(t, proto.UInt256{ + Low: proto.UInt128{Low: 8733883705161793536, High: 4}, + }, cols.Value[470]) + + requireInputMatchesDDL(t, "canonical_execution_native_transfers", cols.Input()) +} diff --git a/pkg/processor/cryo/ds_nonce_diffs.go b/pkg/processor/cryo/ds_nonce_diffs.go new file mode 100644 index 0000000..7f77913 --- /dev/null +++ b/pkg/processor/cryo/ds_nonce_diffs.go @@ -0,0 +1,134 @@ +package cryo + +import ( + "time" + + "github.com/ClickHouse/ch-go/proto" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +var nonceDiffsDataset = &Dataset{ + Name: "nonce_diffs", + Table: "canonical_execution_nonce_diffs", + InternalIndex: true, + MinBlock: 1, + newSink: func(d sinkDeps) sink { + return newDatasetSink(d, decodeNonceDiffs, func() columnar[nonceDiffRow] { return newNonceDiffColumns() }) + }, +} + +type nonceDiffRow struct { + UpdatedDateTime time.Time + BlockNumber uint64 + TransactionIndex uint64 + TransactionHash string + InternalIndex uint32 + Address string + FromValue uint64 + ToValue uint64 + MetaNetworkName string +} + +func decodeNonceDiffs(t *decode.Table, meta rowMeta) ([]nonceDiffRow, error) { + p := newPicker(t) + + var ( + blockNumber = p.int("block_number") + transactionIndex = p.int("transaction_index") + transactionHash = p.str("transaction_hash") + address = p.str("address") + fromValue = p.int("from_value") + toValue = p.int("to_value") + ) + + if p.err != nil { + return nil, p.err + } + + idx := internalIndex(transactionHash, t.Rows()) + + rows := make([]nonceDiffRow, 0, t.Rows()) + + for i := range t.Rows() { + rows = append(rows, nonceDiffRow{ + UpdatedDateTime: meta.updated, + BlockNumber: uintOrZero(blockNumber, i), + TransactionIndex: uintOrZero(transactionIndex, i), + TransactionHash: hexOrEmpty(transactionHash, i), + InternalIndex: idx[i], + Address: hexOrEmpty(address, i), + FromValue: uintOrZero(fromValue, i), + ToValue: uintOrZero(toValue, i), + MetaNetworkName: meta.network, + }) + } + + return rows, nil +} + +type nonceDiffColumns struct { + UpdatedDateTime proto.ColDateTime + BlockNumber proto.ColUInt64 + TransactionIndex proto.ColUInt64 + TransactionHash proto.ColFixedStr + InternalIndex proto.ColUInt32 + Address proto.ColStr + FromValue proto.ColUInt64 + ToValue proto.ColUInt64 + MetaNetworkName *proto.ColLowCardinality[string] +} + +func newNonceDiffColumns() *nonceDiffColumns { + return &nonceDiffColumns{ + TransactionHash: proto.ColFixedStr{Size: hashSize}, + MetaNetworkName: new(proto.ColStr).LowCardinality(), + } +} + +func (c *nonceDiffColumns) Append(r nonceDiffRow) error { + hash, err := fixedHash(r.TransactionHash) + if err != nil { + return err + } + + c.UpdatedDateTime.Append(r.UpdatedDateTime) + c.BlockNumber.Append(r.BlockNumber) + c.TransactionIndex.Append(r.TransactionIndex) + c.TransactionHash.Append(hash) + c.InternalIndex.Append(r.InternalIndex) + c.Address.Append(r.Address) + c.FromValue.Append(r.FromValue) + c.ToValue.Append(r.ToValue) + c.MetaNetworkName.Append(r.MetaNetworkName) + + return nil +} + +func (c *nonceDiffColumns) Reset() { + c.UpdatedDateTime.Reset() + c.BlockNumber.Reset() + c.TransactionIndex.Reset() + c.TransactionHash.Reset() + c.InternalIndex.Reset() + c.Address.Reset() + c.FromValue.Reset() + c.ToValue.Reset() + c.MetaNetworkName.Reset() +} + +func (c *nonceDiffColumns) Rows() int { return c.BlockNumber.Rows() } + +func (c *nonceDiffColumns) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &c.UpdatedDateTime}, + {Name: "block_number", Data: &c.BlockNumber}, + {Name: "transaction_index", Data: &c.TransactionIndex}, + {Name: "transaction_hash", Data: &c.TransactionHash}, + {Name: "internal_index", Data: &c.InternalIndex}, + {Name: "address", Data: &c.Address}, + {Name: "from_value", Data: &c.FromValue}, + {Name: "to_value", Data: &c.ToValue}, + {Name: "meta_network_name", Data: c.MetaNetworkName}, + } +} diff --git a/pkg/processor/cryo/ds_nonce_diffs_test.go b/pkg/processor/cryo/ds_nonce_diffs_test.go new file mode 100644 index 0000000..6c95c4b --- /dev/null +++ b/pkg/processor/cryo/ds_nonce_diffs_test.go @@ -0,0 +1,62 @@ +package cryo + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestDecodeNonceDiffs(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "nonce_diffs", decodeNonceDiffs) + require.NoError(t, err) + require.Len(t, rows, 139) + + r := rows[0] + require.Equal(t, uint64(23000000), r.BlockNumber) + require.Equal(t, uint64(0), r.TransactionIndex) + require.Equal(t, "0x5946ef0de28db53ffe00f0fcdb4cc19c9da234819430bf957cc4c15200d8bcac", r.TransactionHash) + require.Equal(t, uint32(1), r.InternalIndex) + require.Equal(t, "0x28c6c06298d514db089934071355e5743bf21d60", r.Address) + require.Equal(t, uint64(12963272), r.FromValue) + require.Equal(t, uint64(12963273), r.ToValue) + require.Equal(t, "mainnet", r.MetaNetworkName) + require.Equal(t, fixtureMeta.updated, r.UpdatedDateTime) + + require.Equal(t, uint64(1), rows[1].TransactionIndex) + require.Equal(t, uint32(1), rows[1].InternalIndex) + require.Equal(t, uint64(12963273), rows[1].FromValue) + + // A transaction that bumps a second account's nonce produces a second row + // under the same hash. + second := rows[36] + require.Equal(t, "0xe99d668cb5ea5a2c06bf5d7ff12a75b8f7331d21e8ffeaf00c43156b57b9a7e0", second.TransactionHash) + require.Equal(t, uint32(2), second.InternalIndex) + require.Equal(t, "0x9fa5c5733b53814692de4fb31fd592070de5f5f0", second.Address) + require.Equal(t, uint64(75977), second.FromValue) + require.Equal(t, uint64(75978), second.ToValue) + + last := rows[138] + require.Equal(t, uint64(136), last.TransactionIndex) + require.Equal(t, "0x1894e4033d2ecb3f3b3bfa8b2c82c213593965754b40042a4ec392b2733ba76c", last.TransactionHash) + require.Equal(t, uint32(1), last.InternalIndex) + require.Equal(t, "0x396343362be2a4da1ce0c1c210945346fb82aa49", last.Address) + require.Equal(t, uint64(75878), last.FromValue) + require.Equal(t, uint64(75879), last.ToValue) +} + +func TestNonceDiffsColumnsAppend(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "nonce_diffs", decodeNonceDiffs) + require.NoError(t, err) + + cols := newNonceDiffColumns() + for _, r := range rows { + require.NoError(t, cols.Append(r)) + } + + require.Equal(t, len(rows), cols.Rows()) + requireInputMatchesDDL(t, "canonical_execution_nonce_diffs", cols.Input()) +} diff --git a/pkg/processor/cryo/ds_nonce_reads.go b/pkg/processor/cryo/ds_nonce_reads.go new file mode 100644 index 0000000..1d04636 --- /dev/null +++ b/pkg/processor/cryo/ds_nonce_reads.go @@ -0,0 +1,127 @@ +package cryo + +import ( + "time" + + "github.com/ClickHouse/ch-go/proto" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +var nonceReadsDataset = &Dataset{ + Name: "nonce_reads", + Table: "canonical_execution_nonce_reads", + InternalIndex: true, + MinBlock: 1, + newSink: func(d sinkDeps) sink { + return newDatasetSink(d, decodeNonceReads, func() columnar[nonceReadRow] { return newNonceReadColumns() }) + }, +} + +type nonceReadRow struct { + UpdatedDateTime time.Time + BlockNumber uint64 + TransactionIndex uint64 + TransactionHash string + InternalIndex uint32 + Address string + Nonce uint64 + MetaNetworkName string +} + +func decodeNonceReads(t *decode.Table, meta rowMeta) ([]nonceReadRow, error) { + p := newPicker(t) + + var ( + blockNumber = p.int("block_number") + transactionIndex = p.int("transaction_index") + transactionHash = p.str("transaction_hash") + address = p.str("address") + nonce = p.int("nonce") + ) + + if p.err != nil { + return nil, p.err + } + + idx := internalIndex(transactionHash, t.Rows()) + + rows := make([]nonceReadRow, 0, t.Rows()) + + for i := range t.Rows() { + rows = append(rows, nonceReadRow{ + UpdatedDateTime: meta.updated, + BlockNumber: uintOrZero(blockNumber, i), + TransactionIndex: uintOrZero(transactionIndex, i), + TransactionHash: hexOrEmpty(transactionHash, i), + InternalIndex: idx[i], + Address: hexOrEmpty(address, i), + Nonce: uintOrZero(nonce, i), + MetaNetworkName: meta.network, + }) + } + + return rows, nil +} + +type nonceReadColumns struct { + UpdatedDateTime proto.ColDateTime + BlockNumber proto.ColUInt64 + TransactionIndex proto.ColUInt64 + TransactionHash proto.ColFixedStr + InternalIndex proto.ColUInt32 + Address proto.ColStr + Nonce proto.ColUInt64 + MetaNetworkName *proto.ColLowCardinality[string] +} + +func newNonceReadColumns() *nonceReadColumns { + return &nonceReadColumns{ + TransactionHash: proto.ColFixedStr{Size: hashSize}, + MetaNetworkName: new(proto.ColStr).LowCardinality(), + } +} + +func (c *nonceReadColumns) Append(r nonceReadRow) error { + hash, err := fixedHash(r.TransactionHash) + if err != nil { + return err + } + + c.UpdatedDateTime.Append(r.UpdatedDateTime) + c.BlockNumber.Append(r.BlockNumber) + c.TransactionIndex.Append(r.TransactionIndex) + c.TransactionHash.Append(hash) + c.InternalIndex.Append(r.InternalIndex) + c.Address.Append(r.Address) + c.Nonce.Append(r.Nonce) + c.MetaNetworkName.Append(r.MetaNetworkName) + + return nil +} + +func (c *nonceReadColumns) Reset() { + c.UpdatedDateTime.Reset() + c.BlockNumber.Reset() + c.TransactionIndex.Reset() + c.TransactionHash.Reset() + c.InternalIndex.Reset() + c.Address.Reset() + c.Nonce.Reset() + c.MetaNetworkName.Reset() +} + +func (c *nonceReadColumns) Rows() int { return c.BlockNumber.Rows() } + +func (c *nonceReadColumns) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &c.UpdatedDateTime}, + {Name: "block_number", Data: &c.BlockNumber}, + {Name: "transaction_index", Data: &c.TransactionIndex}, + {Name: "transaction_hash", Data: &c.TransactionHash}, + {Name: "internal_index", Data: &c.InternalIndex}, + {Name: "address", Data: &c.Address}, + {Name: "nonce", Data: &c.Nonce}, + {Name: "meta_network_name", Data: c.MetaNetworkName}, + } +} diff --git a/pkg/processor/cryo/ds_nonce_reads_test.go b/pkg/processor/cryo/ds_nonce_reads_test.go new file mode 100644 index 0000000..fd91efa --- /dev/null +++ b/pkg/processor/cryo/ds_nonce_reads_test.go @@ -0,0 +1,64 @@ +package cryo + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestDecodeNonceReads(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "nonce_reads", decodeNonceReads) + require.NoError(t, err) + require.Len(t, rows, 592) + + first := rows[0] + require.Equal(t, fixtureMeta.updated, first.UpdatedDateTime) + require.Equal(t, uint64(23000000), first.BlockNumber) + require.Equal(t, uint64(0), first.TransactionIndex) + require.Equal(t, "0x5946ef0de28db53ffe00f0fcdb4cc19c9da234819430bf957cc4c15200d8bcac", first.TransactionHash) + require.Equal(t, uint32(1), first.InternalIndex) + require.Equal(t, "0x28c6c06298d514db089934071355e5743bf21d60", first.Address) + require.Equal(t, uint64(12963272), first.Nonce) + require.Equal(t, "mainnet", first.MetaNetworkName) + + second := rows[1] + require.Equal(t, uint32(2), second.InternalIndex) + require.Equal(t, "0x396343362be2a4da1ce0c1c210945346fb82aa49", second.Address) + require.Equal(t, uint64(75876), second.Nonce) + + last := rows[591] + require.Equal(t, uint64(136), last.TransactionIndex) + require.Equal(t, "0x1894e4033d2ecb3f3b3bfa8b2c82c213593965754b40042a4ec392b2733ba76c", last.TransactionHash) + require.Equal(t, uint32(2), last.InternalIndex) + require.Equal(t, "0x5995510b29924a0c68e5e21cb95ac426519c43bf", last.Address) + require.Equal(t, uint64(1), last.Nonce) + + seen := make(map[string]uint32, len(rows)) + + for _, r := range rows { + require.NotEqual(t, emptyHex, r.TransactionHash) + seen[r.TransactionHash]++ + require.Equal(t, seen[r.TransactionHash], r.InternalIndex) + } + + require.Len(t, seen, 137) +} + +func TestNonceReadsColumnsAppend(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "nonce_reads", decodeNonceReads) + require.NoError(t, err) + + cols := newNonceReadColumns() + for _, r := range rows { + require.NoError(t, cols.Append(r)) + } + + require.Equal(t, len(rows), cols.Rows()) + require.Equal(t, uint64(12963272), cols.Nonce[0]) + + requireInputMatchesDDL(t, "canonical_execution_nonce_reads", cols.Input()) +} diff --git a/pkg/processor/cryo/ds_storage_diffs.go b/pkg/processor/cryo/ds_storage_diffs.go new file mode 100644 index 0000000..9c933a8 --- /dev/null +++ b/pkg/processor/cryo/ds_storage_diffs.go @@ -0,0 +1,143 @@ +package cryo + +import ( + "time" + + "github.com/ClickHouse/ch-go/proto" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +var storageDiffsDataset = &Dataset{ + Name: "storage_diffs", + Table: "canonical_execution_storage_diffs", + InternalIndex: true, + MinBlock: 1, + newSink: func(d sinkDeps) sink { + return newDatasetSink(d, decodeStorageDiffs, func() columnar[storageDiffRow] { return newStorageDiffColumns() }) + }, +} + +type storageDiffRow struct { + UpdatedDateTime time.Time + BlockNumber uint64 + TransactionIndex uint64 + TransactionHash string + InternalIndex uint32 + Address string + // Slot, FromValue and ToValue are 32-byte words the target stores verbatim + // as hex rather than as numbers. + Slot string + FromValue string + ToValue string + MetaNetworkName string +} + +func decodeStorageDiffs(t *decode.Table, meta rowMeta) ([]storageDiffRow, error) { + p := newPicker(t) + + var ( + blockNumber = p.int("block_number") + transactionIndex = p.int("transaction_index") + transactionHash = p.str("transaction_hash") + address = p.str("address") + slot = p.str("slot") + fromValue = p.str("from_value") + toValue = p.str("to_value") + ) + + if p.err != nil { + return nil, p.err + } + + idx := internalIndex(transactionHash, t.Rows()) + + rows := make([]storageDiffRow, 0, t.Rows()) + + for i := range t.Rows() { + rows = append(rows, storageDiffRow{ + UpdatedDateTime: meta.updated, + BlockNumber: uintOrZero(blockNumber, i), + TransactionIndex: uintOrZero(transactionIndex, i), + TransactionHash: hexOrEmpty(transactionHash, i), + InternalIndex: idx[i], + Address: hexOrEmpty(address, i), + Slot: hexOrEmpty(slot, i), + FromValue: hexOrEmpty(fromValue, i), + ToValue: hexOrEmpty(toValue, i), + MetaNetworkName: meta.network, + }) + } + + return rows, nil +} + +type storageDiffColumns struct { + UpdatedDateTime proto.ColDateTime + BlockNumber proto.ColUInt64 + TransactionIndex proto.ColUInt64 + TransactionHash proto.ColFixedStr + InternalIndex proto.ColUInt32 + Address proto.ColStr + Slot proto.ColStr + FromValue proto.ColStr + ToValue proto.ColStr + MetaNetworkName *proto.ColLowCardinality[string] +} + +func newStorageDiffColumns() *storageDiffColumns { + return &storageDiffColumns{ + TransactionHash: proto.ColFixedStr{Size: hashSize}, + MetaNetworkName: new(proto.ColStr).LowCardinality(), + } +} + +func (c *storageDiffColumns) Append(r storageDiffRow) error { + hash, err := fixedHash(r.TransactionHash) + if err != nil { + return err + } + + c.UpdatedDateTime.Append(r.UpdatedDateTime) + c.BlockNumber.Append(r.BlockNumber) + c.TransactionIndex.Append(r.TransactionIndex) + c.TransactionHash.Append(hash) + c.InternalIndex.Append(r.InternalIndex) + c.Address.Append(r.Address) + c.Slot.Append(r.Slot) + c.FromValue.Append(r.FromValue) + c.ToValue.Append(r.ToValue) + c.MetaNetworkName.Append(r.MetaNetworkName) + + return nil +} + +func (c *storageDiffColumns) Reset() { + c.UpdatedDateTime.Reset() + c.BlockNumber.Reset() + c.TransactionIndex.Reset() + c.TransactionHash.Reset() + c.InternalIndex.Reset() + c.Address.Reset() + c.Slot.Reset() + c.FromValue.Reset() + c.ToValue.Reset() + c.MetaNetworkName.Reset() +} + +func (c *storageDiffColumns) Rows() int { return c.BlockNumber.Rows() } + +func (c *storageDiffColumns) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &c.UpdatedDateTime}, + {Name: "block_number", Data: &c.BlockNumber}, + {Name: "transaction_index", Data: &c.TransactionIndex}, + {Name: "transaction_hash", Data: &c.TransactionHash}, + {Name: "internal_index", Data: &c.InternalIndex}, + {Name: "address", Data: &c.Address}, + {Name: "slot", Data: &c.Slot}, + {Name: "from_value", Data: &c.FromValue}, + {Name: "to_value", Data: &c.ToValue}, + {Name: "meta_network_name", Data: c.MetaNetworkName}, + } +} diff --git a/pkg/processor/cryo/ds_storage_diffs_test.go b/pkg/processor/cryo/ds_storage_diffs_test.go new file mode 100644 index 0000000..c7e236f --- /dev/null +++ b/pkg/processor/cryo/ds_storage_diffs_test.go @@ -0,0 +1,64 @@ +package cryo + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestDecodeStorageDiffs(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "storage_diffs", decodeStorageDiffs) + require.NoError(t, err) + require.Len(t, rows, 359) + + r := rows[0] + require.Equal(t, uint64(23000000), r.BlockNumber) + require.Equal(t, uint64(0), r.TransactionIndex) + require.Equal(t, "0x5946ef0de28db53ffe00f0fcdb4cc19c9da234819430bf957cc4c15200d8bcac", r.TransactionHash) + require.Equal(t, uint32(1), r.InternalIndex) + require.Equal(t, "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", r.Address) + require.Equal(t, "mainnet", r.MetaNetworkName) + require.Equal(t, fixtureMeta.updated, r.UpdatedDateTime) + + // The slot and both values are 32-byte words stored verbatim, not numbers. + require.Equal(t, "0x07081a045c3dbf2e63b62a407ef205e7586e2629d2e2b95ff093308ca0ff3727", r.Slot) + require.Equal(t, "0x00000000000000000000000000000000000000000000000000035412376833d6", r.FromValue) + require.Equal(t, "0x000000000000000000000000000000000000000000000000000354110d97a9b6", r.ToValue) + + // A leading-zero word keeps every one of its 64 hex digits. + require.Equal(t, "0x0000000000000000000000000000000000000000000000000000000000000000", rows[1].FromValue) + require.Equal(t, "0x0000000000000000000000000000000000000000000000000000000129d08a20", rows[1].ToValue) + require.Equal(t, uint32(2), rows[1].InternalIndex) + + require.Equal(t, uint64(5), rows[2].TransactionIndex) + require.Equal(t, "0xcb51cc795fccee5df8468c88475be47dda46ba014c4d649a2ecd44d39d5876f2", rows[2].TransactionHash) + require.Equal(t, uint32(1), rows[2].InternalIndex) + require.Equal(t, "0x000000000004444c5dc75cb358380d2e3de08a90", rows[2].Address) + require.Equal(t, uint32(3), rows[4].InternalIndex) + + last := rows[358] + require.Equal(t, uint64(131), last.TransactionIndex) + require.Equal(t, "0x6c49082790288faf4c4b4a49dd7428817a8ce142cb7d474941229b1ca0b0b992", last.TransactionHash) + require.Equal(t, uint32(2), last.InternalIndex) + require.Equal(t, "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", last.Address) + require.Equal(t, "0xd7c2ca1b2001ebdfb058bef6a6231a3c83cff193a748eecbefc3e36fdd8bc0d6", last.Slot) + require.Equal(t, "0x00000000000000000000000000000000000000000000000000000107e59fa4b1", last.FromValue) + require.Equal(t, "0x000000000000000000000000000000000000000000000000000000fdeba58f01", last.ToValue) +} + +func TestStorageDiffsColumnsAppend(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "storage_diffs", decodeStorageDiffs) + require.NoError(t, err) + + cols := newStorageDiffColumns() + for _, r := range rows { + require.NoError(t, cols.Append(r)) + } + + require.Equal(t, len(rows), cols.Rows()) + requireInputMatchesDDL(t, "canonical_execution_storage_diffs", cols.Input()) +} diff --git a/pkg/processor/cryo/ds_storage_reads.go b/pkg/processor/cryo/ds_storage_reads.go new file mode 100644 index 0000000..83122a0 --- /dev/null +++ b/pkg/processor/cryo/ds_storage_reads.go @@ -0,0 +1,136 @@ +package cryo + +import ( + "time" + + "github.com/ClickHouse/ch-go/proto" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +var storageReadsDataset = &Dataset{ + Name: "storage_reads", + Table: "canonical_execution_storage_reads", + InternalIndex: true, + MinBlock: 1, + newSink: func(d sinkDeps) sink { + return newDatasetSink(d, decodeStorageReads, func() columnar[storageReadRow] { return newStorageReadColumns() }) + }, +} + +type storageReadRow struct { + UpdatedDateTime time.Time + BlockNumber uint64 + TransactionIndex uint64 + TransactionHash string + InternalIndex uint32 + ContractAddress string + Slot string + Value string + MetaNetworkName string +} + +func decodeStorageReads(t *decode.Table, meta rowMeta) ([]storageReadRow, error) { + p := newPicker(t) + + var ( + blockNumber = p.int("block_number") + transactionIndex = p.int("transaction_index") + transactionHash = p.str("transaction_hash") + contractAddress = p.str("contract_address") + slot = p.str("slot") + value = p.str("value") + ) + + if p.err != nil { + return nil, p.err + } + + idx := internalIndex(transactionHash, t.Rows()) + + rows := make([]storageReadRow, 0, t.Rows()) + + for i := range t.Rows() { + rows = append(rows, storageReadRow{ + UpdatedDateTime: meta.updated, + BlockNumber: uintOrZero(blockNumber, i), + TransactionIndex: uintOrZero(transactionIndex, i), + TransactionHash: hexOrEmpty(transactionHash, i), + InternalIndex: idx[i], + ContractAddress: hexOrEmpty(contractAddress, i), + // The slot key and the word it holds are stored as the hex cryo + // emits, not as numbers: the target columns are String. + Slot: hexOrEmpty(slot, i), + Value: hexOrEmpty(value, i), + MetaNetworkName: meta.network, + }) + } + + return rows, nil +} + +type storageReadColumns struct { + UpdatedDateTime proto.ColDateTime + BlockNumber proto.ColUInt64 + TransactionIndex proto.ColUInt64 + TransactionHash proto.ColFixedStr + InternalIndex proto.ColUInt32 + ContractAddress proto.ColStr + Slot proto.ColStr + Value proto.ColStr + MetaNetworkName *proto.ColLowCardinality[string] +} + +func newStorageReadColumns() *storageReadColumns { + return &storageReadColumns{ + TransactionHash: proto.ColFixedStr{Size: hashSize}, + MetaNetworkName: new(proto.ColStr).LowCardinality(), + } +} + +func (c *storageReadColumns) Append(r storageReadRow) error { + hash, err := fixedHash(r.TransactionHash) + if err != nil { + return err + } + + c.UpdatedDateTime.Append(r.UpdatedDateTime) + c.BlockNumber.Append(r.BlockNumber) + c.TransactionIndex.Append(r.TransactionIndex) + c.TransactionHash.Append(hash) + c.InternalIndex.Append(r.InternalIndex) + c.ContractAddress.Append(r.ContractAddress) + c.Slot.Append(r.Slot) + c.Value.Append(r.Value) + c.MetaNetworkName.Append(r.MetaNetworkName) + + return nil +} + +func (c *storageReadColumns) Reset() { + c.UpdatedDateTime.Reset() + c.BlockNumber.Reset() + c.TransactionIndex.Reset() + c.TransactionHash.Reset() + c.InternalIndex.Reset() + c.ContractAddress.Reset() + c.Slot.Reset() + c.Value.Reset() + c.MetaNetworkName.Reset() +} + +func (c *storageReadColumns) Rows() int { return c.BlockNumber.Rows() } + +func (c *storageReadColumns) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &c.UpdatedDateTime}, + {Name: "block_number", Data: &c.BlockNumber}, + {Name: "transaction_index", Data: &c.TransactionIndex}, + {Name: "transaction_hash", Data: &c.TransactionHash}, + {Name: "internal_index", Data: &c.InternalIndex}, + {Name: "contract_address", Data: &c.ContractAddress}, + {Name: "slot", Data: &c.Slot}, + {Name: "value", Data: &c.Value}, + {Name: "meta_network_name", Data: c.MetaNetworkName}, + } +} diff --git a/pkg/processor/cryo/ds_storage_reads_test.go b/pkg/processor/cryo/ds_storage_reads_test.go new file mode 100644 index 0000000..d2f4d56 --- /dev/null +++ b/pkg/processor/cryo/ds_storage_reads_test.go @@ -0,0 +1,75 @@ +package cryo + +import ( + "strings" + "testing" + + "github.com/stretchr/testify/require" +) + +func TestDecodeStorageReads(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "storage_reads", decodeStorageReads) + require.NoError(t, err) + require.Len(t, rows, 900) + + first := rows[0] + require.Equal(t, fixtureMeta.updated, first.UpdatedDateTime) + require.Equal(t, uint64(23000000), first.BlockNumber) + require.Equal(t, uint64(0), first.TransactionIndex) + require.Equal(t, "0x5946ef0de28db53ffe00f0fcdb4cc19c9da234819430bf957cc4c15200d8bcac", first.TransactionHash) + require.Equal(t, uint32(1), first.InternalIndex) + require.Equal(t, "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", first.ContractAddress) + require.Equal(t, "mainnet", first.MetaNetworkName) + + // The slot and the word it holds stay verbatim hex; leading zero nibbles + // would be lost if either were read as a number. + require.Equal(t, "0x0000000000000000000000000000000000000000000000000000000000000001", first.Slot) + require.Equal(t, "0x0000000000000000000000004914f61d25e5c567143774b76edbf4d5109a8566", first.Value) + + second := rows[1] + require.Equal(t, uint32(2), second.InternalIndex) + require.Equal(t, "0x07081a045c3dbf2e63b62a407ef205e7586e2629d2e2b95ff093308ca0ff3727", second.Slot) + require.Equal(t, "0x00000000000000000000000000000000000000000000000000035412376833d6", second.Value) + + last := rows[899] + require.Equal(t, uint64(131), last.TransactionIndex) + require.Equal(t, "0x6c49082790288faf4c4b4a49dd7428817a8ce142cb7d474941229b1ca0b0b992", last.TransactionHash) + require.Equal(t, uint32(5), last.InternalIndex) + require.Equal(t, "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", last.ContractAddress) + require.Equal(t, "0xd7c2ca1b2001ebdfb058bef6a6231a3c83cff193a748eecbefc3e36fdd8bc0d6", last.Slot) + require.Equal(t, "0x00000000000000000000000000000000000000000000000000000107e59fa4b1", last.Value) + + seen := make(map[string]uint32, len(rows)) + + for _, r := range rows { + require.Len(t, r.Slot, 66) + require.Len(t, r.Value, 66) + require.True(t, strings.HasPrefix(r.Slot, emptyHex)) + require.True(t, strings.HasPrefix(r.Value, emptyHex)) + require.Len(t, r.ContractAddress, 42) + + seen[r.TransactionHash]++ + require.Equal(t, seen[r.TransactionHash], r.InternalIndex) + } + + require.Len(t, seen, 76) +} + +func TestStorageReadsColumnsAppend(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "storage_reads", decodeStorageReads) + require.NoError(t, err) + + cols := newStorageReadColumns() + for _, r := range rows { + require.NoError(t, cols.Append(r)) + } + + require.Equal(t, len(rows), cols.Rows()) + require.Equal(t, "0x0000000000000000000000000000000000000000000000000000000000000001", cols.Slot.Row(0)) + + requireInputMatchesDDL(t, "canonical_execution_storage_reads", cols.Input()) +} diff --git a/pkg/processor/cryo/ds_traces.go b/pkg/processor/cryo/ds_traces.go new file mode 100644 index 0000000..4a7d275 --- /dev/null +++ b/pkg/processor/cryo/ds_traces.go @@ -0,0 +1,246 @@ +package cryo + +import ( + "fmt" + "time" + + "github.com/ClickHouse/ch-go/proto" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +var tracesDataset = &Dataset{ + Name: "traces", + Table: "canonical_execution_traces", + InternalIndex: true, + MinBlock: 0, + newSink: func(d sinkDeps) sink { + return newDatasetSink(d, decodeTraces, func() columnar[traceRow] { return newTraceColumns() }) + }, +} + +type traceRow struct { + UpdatedDateTime time.Time + BlockNumber uint64 + TransactionIndex uint64 + TransactionHash string + InternalIndex uint32 + ActionFrom string + ActionTo *string + ActionValue proto.UInt256 + ActionGas *uint64 + ActionInput *string + ActionCallType string + ActionInit *string + ActionRewardType string + ActionType string + ResultGasUsed *uint64 + ResultOutput *string + ResultCode *string + ResultAddress *string + TraceAddress *string + Subtraces uint32 + Error *string + MetaNetworkName string +} + +func decodeTraces(t *decode.Table, meta rowMeta) ([]traceRow, error) { + p := newPicker(t) + + var ( + blockNumber = p.int("block_number") + transactionIndex = p.int("transaction_index") + transactionHash = p.str("transaction_hash") + actionFrom = p.str("action_from") + actionTo = p.str("action_to") + actionValue = p.str("action_value") + actionGas = p.int("action_gas") + actionInput = p.str("action_input") + actionCallType = p.str("action_call_type") + actionInit = p.str("action_init") + actionRewardType = p.str("action_reward_type") + actionType = p.str("action_type") + resultGasUsed = p.int("result_gas_used") + resultOutput = p.str("result_output") + resultCode = p.str("result_code") + resultAddress = p.str("result_address") + traceAddress = p.str("trace_address") + subtraces = p.int("subtraces") + traceError = p.str("error") + ) + + if p.err != nil { + return nil, p.err + } + + idx := internalIndex(transactionHash, t.Rows()) + + rows := make([]traceRow, 0, t.Rows()) + + for i := range t.Rows() { + // action_value is the one U256 cryo names without a _string suffix. + value, err := uint256(strOrEmpty(actionValue, i)) + if err != nil { + return nil, fmt.Errorf("row %d: action_value: %w", i, err) + } + + rows = append(rows, traceRow{ + UpdatedDateTime: meta.updated, + BlockNumber: uintOrZero(blockNumber, i), + TransactionIndex: uintOrZero(transactionIndex, i), + TransactionHash: hexOrEmpty(transactionHash, i), + InternalIndex: idx[i], + ActionFrom: hexOrEmpty(actionFrom, i), + ActionTo: nullableHex(actionTo, i), + ActionValue: value, + ActionGas: nullableUint(actionGas, i), + ActionInput: nullableHex(actionInput, i), + ActionCallType: strOrEmpty(actionCallType, i), + ActionInit: nullableHex(actionInit, i), + ActionRewardType: strOrEmpty(actionRewardType, i), + ActionType: strOrEmpty(actionType, i), + ResultGasUsed: nullableUint(resultGasUsed, i), + ResultOutput: nullableHex(resultOutput, i), + ResultCode: nullableHex(resultCode, i), + ResultAddress: nullableHex(resultAddress, i), + // trace_address is an underscore-joined path of child indices, not hex. + TraceAddress: nullableStr(traceAddress, i), + //nolint:gosec // cryo emits subtraces as a parquet uint32 + Subtraces: uint32(uintOrZero(subtraces, i)), + Error: nullableStr(traceError, i), + MetaNetworkName: meta.network, + }) + } + + return rows, nil +} + +type traceColumns struct { + UpdatedDateTime proto.ColDateTime + BlockNumber proto.ColUInt64 + TransactionIndex proto.ColUInt64 + TransactionHash proto.ColFixedStr + InternalIndex proto.ColUInt32 + ActionFrom proto.ColStr + ActionTo *proto.ColNullable[string] + ActionValue proto.ColUInt256 + ActionGas *proto.ColNullable[uint64] + ActionInput *proto.ColNullable[string] + ActionCallType *proto.ColLowCardinality[string] + ActionInit *proto.ColNullable[string] + ActionRewardType proto.ColStr + ActionType *proto.ColLowCardinality[string] + ResultGasUsed *proto.ColNullable[uint64] + ResultOutput *proto.ColNullable[string] + ResultCode *proto.ColNullable[string] + ResultAddress *proto.ColNullable[string] + TraceAddress *proto.ColNullable[string] + Subtraces proto.ColUInt32 + Error *proto.ColNullable[string] + MetaNetworkName *proto.ColLowCardinality[string] +} + +func newTraceColumns() *traceColumns { + return &traceColumns{ + TransactionHash: proto.ColFixedStr{Size: hashSize}, + ActionTo: new(proto.ColStr).Nullable(), + ActionGas: new(proto.ColUInt64).Nullable(), + ActionInput: new(proto.ColStr).Nullable(), + ActionCallType: new(proto.ColStr).LowCardinality(), + ActionInit: new(proto.ColStr).Nullable(), + ActionType: new(proto.ColStr).LowCardinality(), + ResultGasUsed: new(proto.ColUInt64).Nullable(), + ResultOutput: new(proto.ColStr).Nullable(), + ResultCode: new(proto.ColStr).Nullable(), + ResultAddress: new(proto.ColStr).Nullable(), + TraceAddress: new(proto.ColStr).Nullable(), + Error: new(proto.ColStr).Nullable(), + MetaNetworkName: new(proto.ColStr).LowCardinality(), + } +} + +func (c *traceColumns) Append(r traceRow) error { + hash, err := fixedHash(r.TransactionHash) + if err != nil { + return err + } + + c.UpdatedDateTime.Append(r.UpdatedDateTime) + c.BlockNumber.Append(r.BlockNumber) + c.TransactionIndex.Append(r.TransactionIndex) + c.TransactionHash.Append(hash) + c.InternalIndex.Append(r.InternalIndex) + c.ActionFrom.Append(r.ActionFrom) + c.ActionTo.Append(nullable(r.ActionTo)) + c.ActionValue.Append(r.ActionValue) + c.ActionGas.Append(nullable(r.ActionGas)) + c.ActionInput.Append(nullable(r.ActionInput)) + c.ActionCallType.Append(r.ActionCallType) + c.ActionInit.Append(nullable(r.ActionInit)) + c.ActionRewardType.Append(r.ActionRewardType) + c.ActionType.Append(r.ActionType) + c.ResultGasUsed.Append(nullable(r.ResultGasUsed)) + c.ResultOutput.Append(nullable(r.ResultOutput)) + c.ResultCode.Append(nullable(r.ResultCode)) + c.ResultAddress.Append(nullable(r.ResultAddress)) + c.TraceAddress.Append(nullable(r.TraceAddress)) + c.Subtraces.Append(r.Subtraces) + c.Error.Append(nullable(r.Error)) + c.MetaNetworkName.Append(r.MetaNetworkName) + + return nil +} + +func (c *traceColumns) Reset() { + c.UpdatedDateTime.Reset() + c.BlockNumber.Reset() + c.TransactionIndex.Reset() + c.TransactionHash.Reset() + c.InternalIndex.Reset() + c.ActionFrom.Reset() + c.ActionTo.Reset() + c.ActionValue.Reset() + c.ActionGas.Reset() + c.ActionInput.Reset() + c.ActionCallType.Reset() + c.ActionInit.Reset() + c.ActionRewardType.Reset() + c.ActionType.Reset() + c.ResultGasUsed.Reset() + c.ResultOutput.Reset() + c.ResultCode.Reset() + c.ResultAddress.Reset() + c.TraceAddress.Reset() + c.Subtraces.Reset() + c.Error.Reset() + c.MetaNetworkName.Reset() +} + +func (c *traceColumns) Rows() int { return c.BlockNumber.Rows() } + +func (c *traceColumns) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &c.UpdatedDateTime}, + {Name: "block_number", Data: &c.BlockNumber}, + {Name: "transaction_index", Data: &c.TransactionIndex}, + {Name: "transaction_hash", Data: &c.TransactionHash}, + {Name: "internal_index", Data: &c.InternalIndex}, + {Name: "action_from", Data: &c.ActionFrom}, + {Name: "action_to", Data: c.ActionTo}, + {Name: "action_value", Data: &c.ActionValue}, + {Name: "action_gas", Data: c.ActionGas}, + {Name: "action_input", Data: c.ActionInput}, + {Name: "action_call_type", Data: c.ActionCallType}, + {Name: "action_init", Data: c.ActionInit}, + {Name: "action_reward_type", Data: &c.ActionRewardType}, + {Name: "action_type", Data: c.ActionType}, + {Name: "result_gas_used", Data: c.ResultGasUsed}, + {Name: "result_output", Data: c.ResultOutput}, + {Name: "result_code", Data: c.ResultCode}, + {Name: "result_address", Data: c.ResultAddress}, + {Name: "trace_address", Data: c.TraceAddress}, + {Name: "subtraces", Data: &c.Subtraces}, + {Name: "error", Data: c.Error}, + {Name: "meta_network_name", Data: c.MetaNetworkName}, + } +} diff --git a/pkg/processor/cryo/ds_traces_test.go b/pkg/processor/cryo/ds_traces_test.go new file mode 100644 index 0000000..d35174c --- /dev/null +++ b/pkg/processor/cryo/ds_traces_test.go @@ -0,0 +1,159 @@ +package cryo + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +// preMergeBlock has an uncle, so it carries the two reward traces that share a +// NULL transaction hash and must not collapse onto one sort key. +const preMergeBlock = "b15000051" + +func TestTracesDataset(t *testing.T) { + t.Parallel() + + require.Equal(t, "traces", tracesDataset.Name) + require.Equal(t, "canonical_execution_traces", tracesDataset.Table) + require.True(t, tracesDataset.InternalIndex) + require.Zero(t, tracesDataset.MinBlock) +} + +func TestDecodeTraces(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, preMergeBlock, "traces", decodeTraces) + require.NoError(t, err) + require.Len(t, rows, 818) + + // Row 2 is the first trace of the block's first transaction; rows 0 and 1 + // are the reward traces. + r := rows[2] + require.Equal(t, fixtureMeta.updated, r.UpdatedDateTime) + require.Equal(t, uint64(15000051), r.BlockNumber) + require.Equal(t, uint64(0), r.TransactionIndex) + require.Equal(t, "0x763827e5a5197faf46175f7a83460028926cc6a2721acc9b50b5cceba824fe20", r.TransactionHash) + require.Equal(t, uint32(1), r.InternalIndex) + require.Equal(t, "0x2b4cdbcf60f009889e88b1982f1d1f9ce8fd2233", r.ActionFrom) + require.Equal(t, "0xbeefbabeea323f07c59926295205d3b7a17e8638", *r.ActionTo) + require.Zero(t, r.ActionValue) + require.Equal(t, uint64(476176), *r.ActionGas) + require.Equal(t, uint64(221260), *r.ResultGasUsed) + require.Equal(t, "call", r.ActionCallType) + require.Equal(t, "call", r.ActionType) + require.Empty(t, r.ActionRewardType) + require.Nil(t, r.ActionInit) + require.Nil(t, r.ResultCode) + require.Nil(t, r.ResultAddress) + require.Equal(t, uint32(3), r.Subtraces) + require.Nil(t, r.Error) + require.Equal(t, "mainnet", r.MetaNetworkName) + + // cryo emits an empty return as the literal "0x", which the target column + // stores as NULL. + require.Nil(t, r.ResultOutput) + + // trace_address is an underscore-joined path of child indices, never hex. + require.Nil(t, r.TraceAddress) + require.Equal(t, "0", *rows[3].TraceAddress) + require.Equal(t, "2_0_0", *rows[7].TraceAddress) + + require.Equal(t, uint32(2), rows[3].InternalIndex) + require.Equal(t, "static_call", rows[3].ActionCallType) + require.Equal(t, "0x0902f1ac", *rows[3].ActionInput) +} + +// TestDecodeTracesRewards pins the behaviour the mapping exists to protect: a +// pre-merge block with an uncle produces two reward traces with no transaction +// hash, and both must survive under distinct internal indices. +func TestDecodeTracesRewards(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, preMergeBlock, "traces", decodeTraces) + require.NoError(t, err) + + var rewards []traceRow + + for _, r := range rows { + if r.TransactionHash == emptyHex { + rewards = append(rewards, r) + } + } + + require.Len(t, rewards, 2) + require.Equal(t, uint32(1), rewards[0].InternalIndex) + require.Equal(t, uint32(2), rewards[1].InternalIndex) + + blockReward, err := uint256("2062500000000000000") + require.NoError(t, err) + require.Equal(t, "reward", rewards[0].ActionRewardType) + require.Equal(t, blockReward, rewards[0].ActionValue) + require.Equal(t, "0x1ad91ee08f21be3de0ba2ba6918e714da6b45836", rewards[0].ActionFrom) + + uncleReward, err := uint256("1750000000000000000") + require.NoError(t, err) + require.Equal(t, "uncle", rewards[1].ActionRewardType) + require.Equal(t, uncleReward, rewards[1].ActionValue) + require.Equal(t, "0xea674fdde714fd979de3edf0f56aa9716b898ec8", rewards[1].ActionFrom) + + for _, r := range rewards { + require.Equal(t, uint64(0), r.TransactionIndex) + require.Equal(t, "reward", r.ActionType) + require.Nil(t, r.ActionTo) + require.Nil(t, r.ActionGas) + require.Nil(t, r.ResultGasUsed) + require.Nil(t, r.TraceAddress) + require.Empty(t, r.ActionCallType) + } +} + +func TestDecodeTracesPostMerge(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "traces", decodeTraces) + require.NoError(t, err) + require.Len(t, rows, 797) + + var suicides, creates int + + for _, r := range rows { + // Post-merge blocks have no reward traces at all, so every row's + // reward type is NULL in parquet and empty in the non-nullable target. + require.Empty(t, r.ActionRewardType) + require.NotEqual(t, emptyHex, r.TransactionHash) + + switch r.ActionType { + case "suicide": + suicides++ + + require.Nil(t, r.ActionGas) + require.Nil(t, r.ResultGasUsed) + require.Empty(t, r.ActionCallType) + case "create": + creates++ + + require.Nil(t, r.ActionTo) + require.NotNil(t, r.ActionInit) + require.NotNil(t, r.ResultAddress) + require.Nil(t, r.ResultCode) + } + } + + require.Equal(t, 2, suicides) + require.Equal(t, 2, creates) +} + +func TestTracesColumnsAppend(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, preMergeBlock, "traces", decodeTraces) + require.NoError(t, err) + + cols := newTraceColumns() + for _, r := range rows { + require.NoError(t, cols.Append(r)) + } + + require.Equal(t, len(rows), cols.Rows()) + requireInputMatchesDDL(t, "canonical_execution_traces", cols.Input()) +} diff --git a/pkg/processor/cryo/ds_transactions.go b/pkg/processor/cryo/ds_transactions.go new file mode 100644 index 0000000..086464e --- /dev/null +++ b/pkg/processor/cryo/ds_transactions.go @@ -0,0 +1,232 @@ +package cryo + +import ( + "fmt" + "math" + "time" + + "github.com/ClickHouse/ch-go/proto" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +var transactionsDataset = &Dataset{ + Name: "transactions", + Table: "canonical_execution_transaction", + InternalIndex: false, + MinBlock: 0, + newSink: func(d sinkDeps) sink { + return newDatasetSink(d, decodeTransactions, func() columnar[transactionRow] { return newTransactionColumns() }) + }, +} + +type transactionRow struct { + UpdatedDateTime time.Time + BlockNumber uint64 + TransactionIndex uint64 + TransactionHash string + Nonce uint64 + FromAddress string + ToAddress *string + Value string + Input *string + GasLimit uint64 + GasUsed uint64 + GasPrice uint64 + TransactionType uint8 + MaxPriorityFeePerGas *uint64 + MaxFeePerGas *uint64 + Success bool + NInputBytes uint32 + NInputZeroBytes uint32 + NInputNonzeroBytes uint32 + MetaNetworkName string +} + +func decodeTransactions(t *decode.Table, meta rowMeta) ([]transactionRow, error) { + p := newPicker(t) + + var ( + blockNumber = p.int("block_number") + transactionIndex = p.int("transaction_index") + transactionHash = p.str("transaction_hash") + nonce = p.int("nonce") + fromAddress = p.str("from_address") + toAddress = p.str("to_address") + value = p.str("value_string") + input = p.str("input") + gasLimit = p.int("gas_limit") + gasUsed = p.int("gas_used") + gasPrice = p.int("gas_price") + transactionType = p.int("transaction_type") + maxPriorityFeePerGas = p.int("max_priority_fee_per_gas") + maxFeePerGas = p.int("max_fee_per_gas") + success = p.bool("success") + nInputBytes = p.int("n_input_bytes") + nInputZeroBytes = p.int("n_input_zero_bytes") + nInputNonzeroBytes = p.int("n_input_nonzero_bytes") + ) + + if p.err != nil { + return nil, p.err + } + + rows := make([]transactionRow, 0, t.Rows()) + + for i := range t.Rows() { + // cryo types the envelope as uint32 while the target stores a single + // byte, which is all EIP-2718 allows; a wider value is a protocol + // change rather than a value to truncate. + txType := uintOrZero(transactionType, i) + if txType > math.MaxUint8 { + return nil, fmt.Errorf("row %d: transaction_type %d does not fit UInt8", i, txType) + } + + //nolint:gosec // the n_input_* counts are uint32 in cryo's schema, widened by the decoder + rows = append(rows, transactionRow{ + UpdatedDateTime: meta.updated, + BlockNumber: uintOrZero(blockNumber, i), + TransactionIndex: uintOrZero(transactionIndex, i), + TransactionHash: hexOrEmpty(transactionHash, i), + Nonce: uintOrZero(nonce, i), + FromAddress: hexOrEmpty(fromAddress, i), + ToAddress: nullableHex(toAddress, i), + Value: strOrEmpty(value, i), + Input: nullableHex(input, i), + GasLimit: uintOrZero(gasLimit, i), + GasUsed: uintOrZero(gasUsed, i), + GasPrice: uintOrZero(gasPrice, i), + TransactionType: uint8(txType), + MaxPriorityFeePerGas: nullableUint(maxPriorityFeePerGas, i), + MaxFeePerGas: nullableUint(maxFeePerGas, i), + Success: boolOrFalse(success, i), + NInputBytes: uint32(uintOrZero(nInputBytes, i)), + NInputZeroBytes: uint32(uintOrZero(nInputZeroBytes, i)), + NInputNonzeroBytes: uint32(uintOrZero(nInputNonzeroBytes, i)), + MetaNetworkName: meta.network, + }) + } + + return rows, nil +} + +type transactionColumns struct { + UpdatedDateTime proto.ColDateTime + BlockNumber proto.ColUInt64 + TransactionIndex proto.ColUInt64 + TransactionHash proto.ColFixedStr + Nonce proto.ColUInt64 + FromAddress proto.ColStr + ToAddress *proto.ColNullable[string] + Value proto.ColUInt256 + InputData *proto.ColNullable[string] + GasLimit proto.ColUInt64 + GasUsed proto.ColUInt64 + // GasPrice is wider than anything cryo can produce: the effective gas + // price is a uint64 on the wire, the target column simply reserves room. + GasPrice proto.ColUInt128 + TransactionType proto.ColUInt8 + MaxPriorityFeePerGas *proto.ColNullable[uint64] + MaxFeePerGas *proto.ColNullable[uint64] + Success proto.ColBool + NInputBytes proto.ColUInt32 + NInputZeroBytes proto.ColUInt32 + NInputNonzeroBytes proto.ColUInt32 + MetaNetworkName *proto.ColLowCardinality[string] +} + +func newTransactionColumns() *transactionColumns { + return &transactionColumns{ + TransactionHash: proto.ColFixedStr{Size: hashSize}, + ToAddress: new(proto.ColStr).Nullable(), + InputData: new(proto.ColStr).Nullable(), + MaxPriorityFeePerGas: new(proto.ColUInt64).Nullable(), + MaxFeePerGas: new(proto.ColUInt64).Nullable(), + MetaNetworkName: new(proto.ColStr).LowCardinality(), + } +} + +func (c *transactionColumns) Append(r transactionRow) error { + hash, err := fixedHash(r.TransactionHash) + if err != nil { + return err + } + + value, err := uint256(r.Value) + if err != nil { + return fmt.Errorf("value: %w", err) + } + + c.UpdatedDateTime.Append(r.UpdatedDateTime) + c.BlockNumber.Append(r.BlockNumber) + c.TransactionIndex.Append(r.TransactionIndex) + c.TransactionHash.Append(hash) + c.Nonce.Append(r.Nonce) + c.FromAddress.Append(r.FromAddress) + c.ToAddress.Append(nullable(r.ToAddress)) + c.Value.Append(value) + c.InputData.Append(nullable(r.Input)) + c.GasLimit.Append(r.GasLimit) + c.GasUsed.Append(r.GasUsed) + c.GasPrice.Append(proto.UInt128{Low: r.GasPrice}) + c.TransactionType.Append(r.TransactionType) + c.MaxPriorityFeePerGas.Append(nullable(r.MaxPriorityFeePerGas)) + c.MaxFeePerGas.Append(nullable(r.MaxFeePerGas)) + c.Success.Append(r.Success) + c.NInputBytes.Append(r.NInputBytes) + c.NInputZeroBytes.Append(r.NInputZeroBytes) + c.NInputNonzeroBytes.Append(r.NInputNonzeroBytes) + c.MetaNetworkName.Append(r.MetaNetworkName) + + return nil +} + +func (c *transactionColumns) Reset() { + c.UpdatedDateTime.Reset() + c.BlockNumber.Reset() + c.TransactionIndex.Reset() + c.TransactionHash.Reset() + c.Nonce.Reset() + c.FromAddress.Reset() + c.ToAddress.Reset() + c.Value.Reset() + c.InputData.Reset() + c.GasLimit.Reset() + c.GasUsed.Reset() + c.GasPrice.Reset() + c.TransactionType.Reset() + c.MaxPriorityFeePerGas.Reset() + c.MaxFeePerGas.Reset() + c.Success.Reset() + c.NInputBytes.Reset() + c.NInputZeroBytes.Reset() + c.NInputNonzeroBytes.Reset() + c.MetaNetworkName.Reset() +} + +func (c *transactionColumns) Rows() int { return c.BlockNumber.Rows() } + +func (c *transactionColumns) Input() proto.Input { + return proto.Input{ + {Name: "updated_date_time", Data: &c.UpdatedDateTime}, + {Name: "block_number", Data: &c.BlockNumber}, + {Name: "transaction_index", Data: &c.TransactionIndex}, + {Name: "transaction_hash", Data: &c.TransactionHash}, + {Name: "nonce", Data: &c.Nonce}, + {Name: "from_address", Data: &c.FromAddress}, + {Name: "to_address", Data: c.ToAddress}, + {Name: "value", Data: &c.Value}, + {Name: "input", Data: c.InputData}, + {Name: "gas_limit", Data: &c.GasLimit}, + {Name: "gas_used", Data: &c.GasUsed}, + {Name: "gas_price", Data: &c.GasPrice}, + {Name: "transaction_type", Data: &c.TransactionType}, + {Name: "max_priority_fee_per_gas", Data: c.MaxPriorityFeePerGas}, + {Name: "max_fee_per_gas", Data: c.MaxFeePerGas}, + {Name: "success", Data: &c.Success}, + {Name: "n_input_bytes", Data: &c.NInputBytes}, + {Name: "n_input_zero_bytes", Data: &c.NInputZeroBytes}, + {Name: "n_input_nonzero_bytes", Data: &c.NInputNonzeroBytes}, + {Name: "meta_network_name", Data: c.MetaNetworkName}, + } +} diff --git a/pkg/processor/cryo/ds_transactions_test.go b/pkg/processor/cryo/ds_transactions_test.go new file mode 100644 index 0000000..9053713 --- /dev/null +++ b/pkg/processor/cryo/ds_transactions_test.go @@ -0,0 +1,90 @@ +package cryo + +import ( + "testing" + + "github.com/ClickHouse/ch-go/proto" + "github.com/stretchr/testify/require" +) + +func TestDecodeTransactions(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "transactions", decodeTransactions) + require.NoError(t, err) + require.Len(t, rows, 137) + + r := rows[0] + require.Equal(t, fixtureMeta.updated, r.UpdatedDateTime) + require.Equal(t, uint64(23000000), r.BlockNumber) + require.Equal(t, uint64(0), r.TransactionIndex) + require.Equal(t, "0x5946ef0de28db53ffe00f0fcdb4cc19c9da234819430bf957cc4c15200d8bcac", r.TransactionHash) + require.Equal(t, uint64(12963272), r.Nonce) + require.Equal(t, "0x28c6c06298d514db089934071355e5743bf21d60", r.FromAddress) + require.Equal(t, "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", *r.ToAddress) + require.Equal(t, "0", r.Value) + require.Equal(t, + "0xa9059cbb000000000000000000000000f2abf514dfbaf3323a5cb95bb2e4ab180a5ba3e80000000000000000000000000000000000000000000000000000000129d08a20", + *r.Input) + require.Equal(t, uint64(207128), r.GasLimit) + require.Equal(t, uint64(62272), r.GasUsed) + require.Equal(t, uint64(2239712557), r.GasPrice) + require.Equal(t, uint8(2), r.TransactionType) + require.Equal(t, uint64(2000000000), *r.MaxPriorityFeePerGas) + require.Equal(t, uint64(102000000000), *r.MaxFeePerGas) + require.True(t, r.Success) + require.Equal(t, uint32(68), r.NInputBytes) + require.Equal(t, uint32(39), r.NInputZeroBytes) + require.Equal(t, uint32(29), r.NInputNonzeroBytes) + require.Equal(t, "mainnet", r.MetaNetworkName) + + // A plain transfer carries no calldata, which cryo emits as "0x". + require.Nil(t, rows[1].Input) + + // Legacy transactions have no 1559 fee fields at all, which is distinct + // from having them set to zero. + require.Equal(t, uint8(0), rows[2].TransactionType) + require.Nil(t, rows[2].MaxPriorityFeePerGas) + require.Nil(t, rows[2].MaxFeePerGas) + require.Equal(t, uint64(31022955380952), rows[2].GasPrice) + + missing := 0 + + for _, row := range rows { + if row.MaxFeePerGas == nil { + missing++ + } + + require.Equal(t, row.MaxFeePerGas == nil, row.MaxPriorityFeePerGas == nil) + } + + require.Equal(t, 18, missing) + + require.Equal(t, uint8(4), rows[3].TransactionType) + require.Equal(t, uint8(3), rows[45].TransactionType) + + // Values routinely exceed uint64, so they must survive as decimal text. + require.Equal(t, "82520860000000000000", rows[56].Value) + + require.False(t, rows[88].Success) + require.Equal(t, "0x879d8faa84bfd73fd019a39e26a819d430636f5244089389b1003c407224dac7", rows[88].TransactionHash) +} + +func TestTransactionColumnsAppend(t *testing.T) { + t.Parallel() + + rows, err := decodeFixture(t, "b23000000", "transactions", decodeTransactions) + require.NoError(t, err) + + cols := newTransactionColumns() + for _, r := range rows { + require.NoError(t, cols.Append(r)) + } + + require.Equal(t, len(rows), cols.Rows()) + + require.Equal(t, proto.UInt256{Low: proto.UInt128{Low: 8733883705161793536, High: 4}}, cols.Value[56]) + require.Equal(t, proto.UInt128{Low: 31022955380952}, cols.GasPrice[2]) + + requireInputMatchesDDL(t, "canonical_execution_transaction", cols.Input()) +} diff --git a/pkg/processor/cryo/fetch.go b/pkg/processor/cryo/fetch.go new file mode 100644 index 0000000..2a9c978 --- /dev/null +++ b/pkg/processor/cryo/fetch.go @@ -0,0 +1,394 @@ +package cryo + +import ( + "context" + "errors" + "fmt" + "net/url" + "os" + "os/exec" + "path/filepath" + "strings" + "time" + "unicode/utf8" + + "github.com/sirupsen/logrus" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +const ( + // tempDirPattern marks every scratch directory so the startup sweep can + // tell them apart from anything else sharing the temp filesystem. + tempDirPattern = "cryo-*" + + // killGrace is how long a killed cryo has to exit before Wait gives up on + // it, so a wedged subprocess cannot hold a worker forever. + killGrace = 5 * time.Second + + // stderrLimit bounds what is retained from a failing cryo, so a chatty + // failure cannot grow without limit. + stderrLimit = 8 << 10 + + // sweepMinAge is how old an orphan must look before startup removes it. + // Replicas can share a temp filesystem, so this must comfortably exceed any + // plausible in-flight fetch or one replica will delete another's working + // directory mid-collection. + sweepMinAge = time.Hour + + // redacted replaces the RPC endpoint wherever cryo echoes it back, because + // the endpoint usually carries basic-auth credentials and a failed fetch's + // error text ends up in the logs. + redacted = "[redacted]" +) + +// Fetch failure causes. Every error Fetch returns wraps exactly one of these, +// so a caller can attribute the failure without matching on message text. +var ( + // ErrNoEndpoint means the pool offered no healthy node to collect from, so + // cryo was never started. + ErrNoEndpoint = errors.New("no rpc endpoint available") + + // ErrFetchTimeout means the cryo subprocess outlived its fetch timeout and + // was killed. + ErrFetchTimeout = errors.New("cryo subprocess timed out") + + // ErrFetchFailed means cryo ran and exited non-zero. + ErrFetchFailed = errors.New("cryo subprocess failed") + + // ErrParquetMissing means cryo exited successfully without writing the + // output for a dataset the group expects, which must never be read as a + // block that legitimately had no rows. + ErrParquetMissing = errors.New("cryo wrote no parquet") + + // ErrParquetAmbiguous means more than one file matched a dataset, so the + // one holding this block's rows cannot be identified. + ErrParquetAmbiguous = errors.New("cryo wrote more than one parquet") + + // ErrDecodeFailed means the parquet cryo wrote could not be decoded. + ErrDecodeFailed = errors.New("parquet decode failed") +) + +// boundedBuffer keeps at most stderrLimit bytes and counts what it discards. +type boundedBuffer struct { + buf []byte + dropped int +} + +func (b *boundedBuffer) Write(p []byte) (int, error) { + room := stderrLimit - len(b.buf) + + switch { + case room <= 0: + b.dropped += len(p) + case room >= len(p): + b.buf = append(b.buf, p...) + default: + b.buf = append(b.buf, p[:room]...) + b.dropped += len(p) - room + } + + return len(p), nil +} + +// String renders what was kept. The byte cap can land mid-rune, so the result +// is scrubbed to valid UTF-8 before it reaches an error or a log line. +func (b *boundedBuffer) String() string { + kept := strings.ToValidUTF8(string(b.buf), "") + + if b.dropped == 0 { + return kept + } + + return fmt.Sprintf("%s… (%d more bytes)", kept, b.dropped) +} + +// Fetcher retrieves decoded rows for one group over a contiguous block range, +// keyed by dataset name. +// +// Per-block processing calls this with from == to. A range-batched +// implementation would change only this seam and the enqueue path, not the +// tracking model, so cryo's command line must not leak past it. +type Fetcher interface { + Fetch(ctx context.Context, g *Group, from, to uint64) (map[string]*decode.Table, error) +} + +// endpointFunc resolves the JSON-RPC URL for one invocation. It is called per +// fetch rather than captured once so that cryo follows the pool away from an +// unhealthy node. +type endpointFunc func() (string, error) + +// execFetcher runs cryo as a subprocess and decodes the parquet it writes. +type execFetcher struct { + log logrus.FieldLogger + binaryPath string + endpoint endpointFunc + tempDir string + globalArgs []string + timeout time.Duration +} + +func newExecFetcher(log logrus.FieldLogger, cfg *Config, endpoint endpointFunc) *execFetcher { + return &execFetcher{ + log: log, + binaryPath: cfg.BinaryPath, + endpoint: endpoint, + tempDir: cfg.TempDir, + globalArgs: cfg.GlobalArgs, + timeout: cfg.FetchTimeout, + } +} + +// Version returns the bundled cryo's version string. +func (f *execFetcher) Version(ctx context.Context) (string, error) { + ctx, cancel := context.WithTimeout(ctx, 30*time.Second) + defer cancel() + + //nolint:gosec // G204: the binary path is operator configuration, not request data + out, err := exec.CommandContext(ctx, f.binaryPath, "--version").Output() + if err != nil { + return "", fmt.Errorf("exec %s --version: %w%s", f.binaryPath, err, exitStderr(err)) + } + + return strings.TrimSpace(string(out)), nil +} + +// exitStderr renders what an *exec.ExitError captured on stderr, or an empty +// string when there is none. Without it the error reads only "exit status 127", +// which hides the reason a binary that exists still will not run — a missing +// shared library such as libssl.so.3 says so only on stderr. +func exitStderr(err error) string { + var exitErr *exec.ExitError + + if !errors.As(err, &exitErr) { + return "" + } + + text := strings.TrimSpace(string(exitErr.Stderr)) + if text == "" { + return "" + } + + return ": " + truncate(text, stderrLimit) +} + +// Fetch runs one cryo invocation and decodes every dataset the group expects. +func (f *execFetcher) Fetch(ctx context.Context, g *Group, from, to uint64) (map[string]*decode.Table, error) { + dir, err := os.MkdirTemp(f.tempDir, tempDirPattern) + if err != nil { + return nil, fmt.Errorf("create temp dir: %w", err) + } + + defer func() { + if rmErr := os.RemoveAll(dir); rmErr != nil { + f.log.WithError(rmErr).WithField("dir", dir).Error("Failed to remove cryo temp dir") + } + }() + + if err := f.run(ctx, g, from, to, dir); err != nil { + return nil, err + } + + collected := g.collected() + tables := make(map[string]*decode.Table, len(collected)) + + for _, ds := range collected { + path, findErr := findParquet(dir, ds.Name, from, to) + if findErr != nil { + return nil, findErr + } + + table, decodeErr := decode.File(path) + if decodeErr != nil { + return nil, fmt.Errorf("%w: dataset %s: %w", ErrDecodeFailed, ds.Name, decodeErr) + } + + tables[ds.Name] = table + } + + return tables, nil +} + +// run executes cryo once for the whole group. +func (f *execFetcher) run(ctx context.Context, g *Group, from, to uint64, dir string) error { + ctx, cancel := context.WithTimeout(ctx, f.timeout) + defer cancel() + + rpcURL, err := f.endpoint() + if err != nil { + return fmt.Errorf("%w: %w", ErrNoEndpoint, err) + } + + // cryo's range end is exclusive. + args := make([]string, 0, len(g.Datatypes)+len(f.globalArgs)+len(g.ExtraArgs)+6) + args = append(args, g.Datatypes...) + args = append(args, + "--blocks", fmt.Sprintf("%d:%d", from, to+1), + "--output-dir", dir, + "--no-report", + ) + args = append(args, f.globalArgs...) + + if required := g.RequiredColumns(); len(required) > 0 { + args = append(args, "--include-columns", strings.Join(required, ",")) + } + + args = append(args, g.ExtraArgs...) + + //nolint:gosec // G204: the binary path and arguments are operator configuration, not request data + cmd := exec.CommandContext(ctx, f.binaryPath, args...) + + // The endpoint usually carries basic-auth credentials, so it goes through + // the environment rather than argv, which any process sharing the PID + // namespace can read out of /proc. + cmd.Env = append(os.Environ(), "ETH_RPC_URL="+rpcURL) + + // Killing a hung cryo must also kill anything it spawned: a grandchild that + // outlived its parent would keep an RPC connection open against a node the + // worker has already given up on. WaitDelay additionally stops the parent + // blocking on pipes that group inherited. + killProcessGroup(cmd) + + cmd.WaitDelay = killGrace + + var stderr boundedBuffer + + cmd.Stderr = &stderr + cmd.Stdout = nil + + start := time.Now() + + if err := cmd.Run(); err != nil { + cause := ErrFetchFailed + if errors.Is(ctx.Err(), context.DeadlineExceeded) { + cause = ErrFetchTimeout + } + + // Redact before truncating: cutting the text first could leave a + // fragment of the credentials behind. + detail := truncate(redactEndpoint(stderr.String(), rpcURL), 2048) + + return fmt.Errorf("%w: datatypes %s blocks %d-%d: %w: %s", + cause, strings.Join(g.Datatypes, " "), from, to, err, detail) + } + + f.log.WithFields(logrus.Fields{ + "group": g.Name, + "from": from, + "to": to, + "duration": time.Since(start), + }).Debug("cryo invocation complete") + + return nil +} + +// findParquet locates the file cryo wrote for one dataset. cryo names output +// _____to_.parquet, and the network prefix is +// whatever cryo resolved the chain id to, so it is matched by wildcard. +func findParquet(dir, dataset string, from, to uint64) (string, error) { + pattern := filepath.Join(dir, fmt.Sprintf("*__%s__%d_to_%d.parquet", dataset, from, to)) + + matches, err := filepath.Glob(pattern) + if err != nil { + return "", fmt.Errorf("glob %s: %w", pattern, err) + } + + switch len(matches) { + case 1: + return matches[0], nil + case 0: + return "", fmt.Errorf("%w for dataset %s at blocks %d-%d", ErrParquetMissing, dataset, from, to) + default: + return "", fmt.Errorf("%w: %d files for dataset %s at blocks %d-%d", ErrParquetAmbiguous, len(matches), dataset, from, to) + } +} + +// redactEndpoint removes the RPC endpoint from text cryo produced. cryo echoes +// its target in several failure messages and the endpoint usually carries +// basic-auth credentials, which would otherwise travel with the error into the +// logs. The credentials are also matched on their own, because cryo may print a +// normalised or partial form of the URL. +func redactEndpoint(text, endpoint string) string { + if endpoint == "" || text == "" { + return text + } + + for _, form := range []string{endpoint, strings.TrimSuffix(endpoint, "/")} { + text = strings.ReplaceAll(text, form, redacted) + } + + parsed, err := url.Parse(endpoint) + if err != nil || parsed.User == nil { + return text + } + + if userinfo := parsed.User.String(); userinfo != "" { + text = strings.ReplaceAll(text, userinfo, redacted) + } + + if password, ok := parsed.User.Password(); ok && password != "" { + text = strings.ReplaceAll(text, password, redacted) + } + + return text +} + +// sweepTempDirs removes scratch directories left behind by a process that was +// killed before its deferred cleanup could run. Without this they accumulate in +// the container's writable layer until the node evicts the pod for disk +// pressure. +func sweepTempDirs(log logrus.FieldLogger, parent string) { + if parent == "" { + parent = os.TempDir() + } + + matches, err := filepath.Glob(filepath.Join(parent, tempDirPattern)) + if err != nil { + log.WithError(err).Warn("Failed to scan for orphaned cryo temp dirs") + + return + } + + var removed int + + cutoff := time.Now().Add(-sweepMinAge) + + for _, dir := range matches { + info, statErr := os.Stat(dir) + if statErr != nil || !info.IsDir() { + continue + } + + if info.ModTime().After(cutoff) { + continue + } + + if rmErr := os.RemoveAll(dir); rmErr != nil { + log.WithError(rmErr).WithField("dir", dir).Warn("Failed to remove orphaned cryo temp dir") + + continue + } + + removed++ + } + + if removed > 0 { + log.WithField("count", removed).Info("Removed orphaned cryo temp dirs") + } +} + +// truncate keeps at most limit bytes of s. The cut is moved back to a rune +// boundary so a multi-byte character straddling the limit is dropped whole +// rather than left as invalid UTF-8 in a log line. +func truncate(s string, limit int) string { + if len(s) <= limit { + return s + } + + cut := limit + for cut > 0 && !utf8.RuneStart(s[cut]) { + cut-- + } + + return s[:cut] + "…" +} diff --git a/pkg/processor/cryo/fetch_other.go b/pkg/processor/cryo/fetch_other.go new file mode 100644 index 0000000..e5bbddb --- /dev/null +++ b/pkg/processor/cryo/fetch_other.go @@ -0,0 +1,9 @@ +//go:build !unix + +package cryo + +import "os/exec" + +// killProcessGroup leaves the default behaviour in place: platforms without +// process groups fall back to signalling the direct child only. +func killProcessGroup(_ *exec.Cmd) {} diff --git a/pkg/processor/cryo/fetch_test.go b/pkg/processor/cryo/fetch_test.go new file mode 100644 index 0000000..7304c24 --- /dev/null +++ b/pkg/processor/cryo/fetch_test.go @@ -0,0 +1,532 @@ +package cryo + +import ( + "context" + "errors" + "os" + "path/filepath" + "strconv" + "strings" + "syscall" + "testing" + "time" + "unicode/utf8" + + "github.com/sirupsen/logrus" + "github.com/stretchr/testify/require" +) + +// fakeCryo writes an executable stub in place of cryo. The body receives cryo's +// arguments and is responsible for producing whatever output the test needs. +func fakeCryo(t *testing.T, body string) string { + t.Helper() + + path := filepath.Join(t.TempDir(), "cryo") + script := "#!/bin/sh\n" + body + "\n" + + require.NoError(t, os.WriteFile(path, []byte(script), 0o755)) + + return path +} + +func testFetcher(t *testing.T, binary string) *execFetcher { + t.Helper() + + log := logrus.New() + log.SetLevel(logrus.ErrorLevel) + + cfg := &Config{BinaryPath: binary, TempDir: t.TempDir()} + cfg.Addr = "localhost:9000" + cfg.Enabled = true + cfg.Groups = []GroupConfig{{Name: "t", Enabled: true, Datatypes: []string{"blocks"}}} + require.NoError(t, cfg.Validate()) + + return newExecFetcher(log, cfg, func() (string, error) { return "https://user:secret@node.example/", nil }) +} + +func testGroup(t *testing.T, datatypes ...string) *Group { + t.Helper() + + g, err := newGroup(&GroupConfig{Name: "t", Enabled: true, Datatypes: datatypes}) + require.NoError(t, err) + + return g +} + +// TestFetchPassesEndpointThroughEnvironment is the security-relevant one: the +// endpoint carries basic-auth credentials, and anything in argv is readable +// from /proc by every process sharing the PID namespace. +func TestFetchPassesEndpointThroughEnvironment(t *testing.T) { + t.Parallel() + + binary := fakeCryo(t, ` +for arg in "$@"; do + case "$arg" in + *secret*) echo "credential leaked into argv: $arg" >&2; exit 3 ;; + esac +done +[ "$ETH_RPC_URL" = "https://user:secret@node.example/" ] || { echo "env not set: $ETH_RPC_URL" >&2; exit 4; } +exit 9 +`) + + _, err := testFetcher(t, binary).Fetch(t.Context(), testGroup(t, "blocks"), 100, 100) + + require.Error(t, err) + require.NotContains(t, err.Error(), "leaked into argv") + require.NotContains(t, err.Error(), "env not set") + require.Contains(t, err.Error(), "exit status 9") +} + +func TestFetchBuildsArguments(t *testing.T) { + t.Parallel() + + argsFile := filepath.Join(t.TempDir(), "args") + binary := fakeCryo(t, `printf '%s\n' "$@" > `+argsFile+`; exit 1`) + + group := testGroup(t, "blocks", "state_diffs") + + _, err := testFetcher(t, binary).Fetch(t.Context(), group, 100, 100) + require.Error(t, err) + + raw, readErr := os.ReadFile(argsFile) + require.NoError(t, readErr) + + args := strings.Split(strings.TrimSpace(string(raw)), "\n") + + require.Equal(t, "blocks", args[0]) + require.Equal(t, "state_diffs", args[1]) + require.Contains(t, args, "--hex") + require.Contains(t, args, "--u256-types") + require.Contains(t, args, "--no-report") + + // Derived from the datasets rather than taken from config, so it cannot be + // configured away. + require.Contains(t, args, "--include-columns") + require.Contains(t, args, "gas_limit") + + // cryo's range end is exclusive, so one block is N:N+1. + blocks := args[indexOf(t, args, "--blocks")+1] + require.Equal(t, "100:101", blocks) +} + +func TestFetchDecodesEveryDatasetInTheGroup(t *testing.T) { + t.Parallel() + + // state_diffs is one argument yielding three datasets, so a group naming it + // must come back with all three decoded. + src, err := filepath.Abs(filepath.Join("testdata", "b23000000")) + require.NoError(t, err) + + binary := fakeCryo(t, ` +out="" +while [ $# -gt 0 ]; do + case "$1" in --output-dir) out="$2"; shift 2 ;; *) shift ;; esac +done +for f in `+src+`/*.parquet; do + base=$(basename "$f") + ds=$(echo "$base" | sed 's/^ethereum__//; s/__.*//') + cp "$f" "$out/ethereum__${ds}__100_to_100.parquet" +done +`) + + tables, err := testFetcher(t, binary).Fetch(t.Context(), testGroup(t, "blocks", "state_diffs"), 100, 100) + require.NoError(t, err) + + require.Len(t, tables, 4) + require.Equal(t, 1, tables["blocks"].Rows()) + require.Equal(t, 377, tables["balance_diffs"].Rows()) + require.Equal(t, 139, tables["nonce_diffs"].Rows()) + require.Equal(t, 359, tables["storage_diffs"].Rows()) +} + +// TestFetchFailsWhenDatasetMissing covers cryo exiting successfully having +// written nothing, which must not be mistaken for a block with no rows. +func TestFetchFailsWhenDatasetMissing(t *testing.T) { + t.Parallel() + + binary := fakeCryo(t, "exit 0") + + _, err := testFetcher(t, binary).Fetch(t.Context(), testGroup(t, "blocks"), 100, 100) + + require.Error(t, err) + require.Contains(t, err.Error(), "no parquet for dataset blocks") +} + +func TestFetchRemovesTempDirOnEveryPath(t *testing.T) { + t.Parallel() + + parent := t.TempDir() + + log := logrus.New() + log.SetLevel(logrus.ErrorLevel) + + cfg := &Config{BinaryPath: fakeCryo(t, "echo boom >&2; exit 1"), TempDir: parent} + cfg.Addr = "localhost:9000" + cfg.Enabled = true + cfg.Groups = []GroupConfig{{Name: "t", Enabled: true, Datatypes: []string{"blocks"}}} + require.NoError(t, cfg.Validate()) + + f := newExecFetcher(log, cfg, func() (string, error) { return "http://node", nil }) + + for range 3 { + _, err := f.Fetch(t.Context(), testGroup(t, "blocks"), 100, 100) + require.Error(t, err) + } + + entries, err := os.ReadDir(parent) + require.NoError(t, err) + require.Empty(t, entries, "every failed fetch must remove its scratch directory") +} + +func TestFetchKillsHungSubprocess(t *testing.T) { + t.Parallel() + + log := logrus.New() + log.SetLevel(logrus.ErrorLevel) + + cfg := &Config{BinaryPath: fakeCryo(t, "sleep 120"), TempDir: t.TempDir(), FetchTimeout: 300 * time.Millisecond} + cfg.Addr = "localhost:9000" + cfg.Enabled = true + cfg.Groups = []GroupConfig{{Name: "t", Enabled: true, Datatypes: []string{"blocks"}}} + require.NoError(t, cfg.Validate()) + + f := newExecFetcher(log, cfg, func() (string, error) { return "http://node", nil }) + + start := time.Now() + _, err := f.Fetch(t.Context(), testGroup(t, "blocks"), 100, 100) + + require.Error(t, err) + require.Less(t, time.Since(start), 30*time.Second, "a hung cryo must not hold the worker") +} + +// TestFetchStopsOnContextCancel covers pod drain: an in-flight fetch must +// unblock rather than run to its own timeout. +func TestFetchStopsOnContextCancel(t *testing.T) { + t.Parallel() + + log := logrus.New() + log.SetLevel(logrus.ErrorLevel) + + cfg := &Config{BinaryPath: fakeCryo(t, "sleep 120"), TempDir: t.TempDir()} + cfg.Addr = "localhost:9000" + cfg.Enabled = true + cfg.Groups = []GroupConfig{{Name: "t", Enabled: true, Datatypes: []string{"blocks"}}} + require.NoError(t, cfg.Validate()) + + f := newExecFetcher(log, cfg, func() (string, error) { return "http://node", nil }) + + ctx, cancel := context.WithTimeout(t.Context(), 200*time.Millisecond) + defer cancel() + + start := time.Now() + _, err := f.Fetch(ctx, testGroup(t, "blocks"), 100, 100) + + require.Error(t, err) + require.Less(t, time.Since(start), 30*time.Second) +} + +func TestFetchStderrIsBounded(t *testing.T) { + t.Parallel() + + binary := fakeCryo(t, `i=0; while [ $i -lt 4000 ]; do echo "noisy failure line $i"; i=$((i+1)); done >&2; exit 1`) + + _, err := testFetcher(t, binary).Fetch(t.Context(), testGroup(t, "blocks"), 100, 100) + + require.Error(t, err) + require.Less(t, len(err.Error()), 3*stderrLimit, "a chatty failure must not balloon the error") +} + +func TestSweepTempDirsSparesRecentDirectories(t *testing.T) { + t.Parallel() + + parent := t.TempDir() + + live := filepath.Join(parent, "cryo-live") + require.NoError(t, os.Mkdir(live, 0o750)) + + orphan := filepath.Join(parent, "cryo-orphan") + require.NoError(t, os.Mkdir(orphan, 0o750)) + + old := time.Now().Add(-2 * sweepMinAge) + require.NoError(t, os.Chtimes(orphan, old, old)) + + unrelated := filepath.Join(parent, "something-else") + require.NoError(t, os.Mkdir(unrelated, 0o750)) + require.NoError(t, os.Chtimes(unrelated, old, old)) + + log := logrus.New() + log.SetLevel(logrus.ErrorLevel) + + sweepTempDirs(log, parent) + + require.DirExists(t, live, "another replica's in-flight directory must survive") + require.NoDirExists(t, orphan) + require.DirExists(t, unrelated, "the sweep must only touch its own directories") +} + +func TestVersionReportsBinary(t *testing.T) { + t.Parallel() + + version, err := testFetcher(t, fakeCryo(t, `echo "cryo 0.3.2-37-g559b654"`)).Version(t.Context()) + + require.NoError(t, err) + require.Equal(t, "cryo 0.3.2-37-g559b654", version) +} + +func TestVersionFailsWhenBinaryMissing(t *testing.T) { + t.Parallel() + + _, err := testFetcher(t, "/nonexistent/cryo").Version(t.Context()) + + require.Error(t, err) +} + +// TestFetchRedactsEndpointFromStderr is the other half of keeping the +// credentials out of reach: they stay out of argv, but cryo echoes its target +// back on stderr, and that text is embedded in the error the worker logs. +func TestFetchRedactsEndpointFromStderr(t *testing.T) { + t.Parallel() + + for name, body := range map[string]string{ + "full url": `echo "error sending request for url ($ETH_RPC_URL): connection refused" >&2; exit 1`, + "credentials": `echo "authentication failed for user:secret" >&2; exit 1`, + } { + t.Run(name, func(t *testing.T) { + t.Parallel() + + _, err := testFetcher(t, fakeCryo(t, body)).Fetch(t.Context(), testGroup(t, "blocks"), 100, 100) + + require.Error(t, err) + require.NotContains(t, err.Error(), "secret", "the endpoint's basic-auth credentials must not reach the logs") + require.Contains(t, err.Error(), redacted) + }) + } +} + +func TestFetchErrorsAreDistinguishable(t *testing.T) { + t.Parallel() + + parquet := filepath.Join(t.TempDir(), "blocks.parquet") + require.NoError(t, os.WriteFile(parquet, []byte("not parquet at all"), 0o600)) + + tests := []struct { + name string + body string + want error + }{ + { + name: "subprocess failure", + body: "echo boom >&2; exit 1", + want: ErrFetchFailed, + }, + { + name: "missing parquet", + body: "exit 0", + want: ErrParquetMissing, + }, + { + name: "decode failure", + body: `out="" +while [ $# -gt 0 ]; do + case "$1" in --output-dir) out="$2"; shift 2 ;; *) shift ;; esac +done +cp ` + parquet + ` "$out/ethereum__blocks__100_to_100.parquet"`, + want: ErrDecodeFailed, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + + _, err := testFetcher(t, fakeCryo(t, tt.body)).Fetch(t.Context(), testGroup(t, "blocks"), 100, 100) + + require.Error(t, err) + require.ErrorIs(t, err, tt.want) + }) + } +} + +func TestFetchErrorIsTimeoutWhenSubprocessOverruns(t *testing.T) { + t.Parallel() + + log := logrus.New() + log.SetLevel(logrus.ErrorLevel) + + cfg := &Config{BinaryPath: fakeCryo(t, "sleep 120"), TempDir: t.TempDir(), FetchTimeout: 300 * time.Millisecond} + cfg.Addr = "localhost:9000" + cfg.Enabled = true + cfg.Groups = []GroupConfig{{Name: "t", Enabled: true, Datatypes: []string{"blocks"}}} + require.NoError(t, cfg.Validate()) + + f := newExecFetcher(log, cfg, func() (string, error) { return "http://node", nil }) + + _, err := f.Fetch(t.Context(), testGroup(t, "blocks"), 100, 100) + + require.ErrorIs(t, err, ErrFetchTimeout) + require.NotErrorIs(t, err, ErrFetchFailed, "a timeout is a different operational problem to a non-zero exit") +} + +func TestFetchErrorIsNoEndpointWhenPoolIsUnhealthy(t *testing.T) { + t.Parallel() + + log := logrus.New() + log.SetLevel(logrus.ErrorLevel) + + cfg := &Config{BinaryPath: fakeCryo(t, "exit 0"), TempDir: t.TempDir()} + cfg.Addr = "localhost:9000" + cfg.Enabled = true + cfg.Groups = []GroupConfig{{Name: "t", Enabled: true, Datatypes: []string{"blocks"}}} + require.NoError(t, cfg.Validate()) + + f := newExecFetcher(log, cfg, func() (string, error) { + return "", errors.New("no healthy execution node exposes an RPC endpoint for cryo") + }) + + _, err := f.Fetch(t.Context(), testGroup(t, "blocks"), 100, 100) + + require.ErrorIs(t, err, ErrNoEndpoint) +} + +// TestFetchKillsGrandchildren covers what the direct child alone does not: cryo +// spawning a helper that outlives it would keep an RPC connection open against a +// node the worker has already given up on. +func TestFetchKillsGrandchildren(t *testing.T) { + t.Parallel() + + pidFile := filepath.Join(t.TempDir(), "grandchild.pid") + + log := logrus.New() + log.SetLevel(logrus.ErrorLevel) + + cfg := &Config{ + BinaryPath: fakeCryo(t, "sleep 120 & echo $! > "+pidFile+"; sleep 120"), + TempDir: t.TempDir(), + FetchTimeout: 300 * time.Millisecond, + } + cfg.Addr = "localhost:9000" + cfg.Enabled = true + cfg.Groups = []GroupConfig{{Name: "t", Enabled: true, Datatypes: []string{"blocks"}}} + require.NoError(t, cfg.Validate()) + + f := newExecFetcher(log, cfg, func() (string, error) { return "http://node", nil }) + + _, err := f.Fetch(t.Context(), testGroup(t, "blocks"), 100, 100) + require.Error(t, err) + + raw, readErr := os.ReadFile(pidFile) + require.NoError(t, readErr) + + pid, parseErr := strconv.Atoi(strings.TrimSpace(string(raw))) + require.NoError(t, parseErr) + + require.Eventually(t, func() bool { + return syscall.Kill(pid, 0) != nil + }, 10*time.Second, 50*time.Millisecond, "a process cryo spawned must not survive the kill") +} + +func TestVersionErrorIncludesStderr(t *testing.T) { + t.Parallel() + + // The documented failure is a binary that exists but cannot load a shared + // library, which says so only on stderr while the status says only 127. + binary := fakeCryo(t, `echo "cryo: error while loading shared libraries: libssl.so.3: cannot open shared object file" >&2; exit 127`) + + _, err := testFetcher(t, binary).Version(t.Context()) + + require.Error(t, err) + require.Contains(t, err.Error(), "libssl.so.3") + require.Contains(t, err.Error(), "exit status 127") +} + +func TestRedactEndpoint(t *testing.T) { + t.Parallel() + + tests := []struct { + name string + text string + endpoint string + want string + }{ + { + name: "full url", + text: "dialing https://user:secret@node.example/ failed", + endpoint: "https://user:secret@node.example/", + want: "dialing " + redacted + " failed", + }, + { + name: "url without trailing slash", + text: "dialing https://user:secret@node.example failed", + endpoint: "https://user:secret@node.example/", + want: "dialing " + redacted + " failed", + }, + { + name: "credentials alone", + text: "rejected credentials user:secret", + endpoint: "https://user:secret@node.example/", + want: "rejected credentials " + redacted, + }, + { + name: "password alone", + text: "bad password secret", + endpoint: "https://user:secret@node.example/", + want: "bad password " + redacted, + }, + { + name: "endpoint without credentials", + text: "dialing http://node.example failed", + endpoint: "http://node.example", + want: "dialing " + redacted + " failed", + }, + { + name: "unrelated text", + text: "block 100 not found", + endpoint: "https://user:secret@node.example/", + want: "block 100 not found", + }, + { + name: "no endpoint", + text: "block 100 not found", + endpoint: "", + want: "block 100 not found", + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + + require.Equal(t, tt.want, redactEndpoint(tt.text, tt.endpoint)) + }) + } +} + +func TestTruncateKeepsValidUTF8(t *testing.T) { + t.Parallel() + + // "…" is three bytes, so every limit that lands inside one exercises the + // rune boundary walk. + for limit := range 10 { + got := truncate("……………", limit) + + require.True(t, utf8.ValidString(got), "limit %d split a rune: %q", limit, got) + require.LessOrEqual(t, len(got), limit+len("…")) + } + + require.Equal(t, "short", truncate("short", 5)) + require.Equal(t, "shor…", truncate("short", 4)) +} + +func indexOf(t *testing.T, args []string, want string) int { + t.Helper() + + for i, arg := range args { + if arg == want { + return i + } + } + + t.Fatalf("argument %q not passed to cryo: %v", want, args) + + return -1 +} diff --git a/pkg/processor/cryo/fetch_unix.go b/pkg/processor/cryo/fetch_unix.go new file mode 100644 index 0000000..c5f1a4b --- /dev/null +++ b/pkg/processor/cryo/fetch_unix.go @@ -0,0 +1,15 @@ +//go:build unix + +package cryo + +import ( + "os/exec" + "syscall" +) + +// killProcessGroup makes cryo lead its own process group so that cancelling +// the command signals everything it spawned, not just the direct child. +func killProcessGroup(cmd *exec.Cmd) { + cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} + cmd.Cancel = func() error { return syscall.Kill(-cmd.Process.Pid, syscall.SIGKILL) } +} diff --git a/pkg/processor/cryo/fixture_test.go b/pkg/processor/cryo/fixture_test.go new file mode 100644 index 0000000..1b301af --- /dev/null +++ b/pkg/processor/cryo/fixture_test.go @@ -0,0 +1,126 @@ +package cryo + +import ( + "fmt" + "os" + "path/filepath" + "regexp" + "testing" + "time" + + "github.com/ClickHouse/ch-go/proto" + "github.com/stretchr/testify/require" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +// fixtureMeta is the per-batch metadata every fixture decode uses, fixed so +// golden assertions do not move with the clock. +var fixtureMeta = rowMeta{ + network: "mainnet", + updated: time.Date(2026, 1, 2, 3, 4, 5, 0, time.UTC), +} + +// fixtureTable decodes a committed cryo parquet fixture. +func fixtureTable(t *testing.T, block, dataset string) *decode.Table { + t.Helper() + + matches, err := filepath.Glob(filepath.Join("testdata", block, fmt.Sprintf("ethereum__%s__*.parquet", dataset))) + require.NoError(t, err) + require.Len(t, matches, 1, "expected exactly one %s fixture in %s", dataset, block) + + table, err := decode.File(matches[0]) + require.NoError(t, err) + + return table +} + +// decodeFixture runs a dataset mapping over its committed fixture. +func decodeFixture[R any](t *testing.T, block, dataset string, fn decodeFunc[R]) ([]R, error) { + t.Helper() + + return fn(fixtureTable(t, block, dataset), fixtureMeta) +} + +var ( + ddlTableRe = regexp.MustCompile(`(?s)CREATE TABLE IF NOT EXISTS (\w+)\s*\((.*?)\n\)`) + ddlColumnRe = regexp.MustCompile("^\\s*`([^`]+)`\\s+(.+?)(?:\\s+COMMENT\\s|\\s+CODEC\\(|,?$)") +) + +// schemaDDL parses the committed target DDL into table -> column -> type. +func schemaDDL(t *testing.T) map[string]map[string]string { + t.Helper() + + raw, err := os.ReadFile(filepath.Join("testdata", "schema.sql")) + require.NoError(t, err) + + tables := make(map[string]map[string]string) + + for _, match := range ddlTableRe.FindAllStringSubmatch(string(raw), -1) { + cols := make(map[string]string) + + for line := range splitLines(match[2]) { + parts := ddlColumnRe.FindStringSubmatch(line) + if parts == nil { + continue + } + + cols[parts[1]] = trimTrailingComma(parts[2]) + } + + tables[match[1]] = cols + } + + require.Len(t, tables, 16, "expected 16 tables in testdata/schema.sql") + + return tables +} + +func splitLines(s string) func(func(string) bool) { + return func(yield func(string) bool) { + start := 0 + + for i := range len(s) { + if s[i] != '\n' { + continue + } + + if !yield(s[start:i]) { + return + } + + start = i + 1 + } + + if start < len(s) { + yield(s[start:]) + } + } +} + +func trimTrailingComma(s string) string { + for len(s) > 0 && (s[len(s)-1] == ',' || s[len(s)-1] == ' ') { + s = s[:len(s)-1] + } + + return s +} + +// requireInputMatchesDDL asserts that a dataset's column block writes exactly +// the columns its target table declares, with exactly matching types. This is +// the compile-time-adjacent guard on the mappings: a wrong width or a missed +// Nullable would otherwise only surface as a ClickHouse insert error. +func requireInputMatchesDDL(t *testing.T, table string, input proto.Input) { + t.Helper() + + want, ok := schemaDDL(t)[table] + require.True(t, ok, "table %s missing from testdata/schema.sql", table) + + got := make(map[string]string, len(input)) + + for _, col := range input { + got[col.Name] = string(col.Data.Type()) + } + + require.Equal(t, want, got, "column mapping for %s does not match its DDL", table) +} diff --git a/pkg/processor/cryo/group.go b/pkg/processor/cryo/group.go new file mode 100644 index 0000000..321ac7d --- /dev/null +++ b/pkg/processor/cryo/group.go @@ -0,0 +1,118 @@ +package cryo + +import ( + "fmt" + "slices" +) + +// Group is one cryo invocation: the datatypes collected together, and the +// datasets that come back. It is also the unit of progress tracking, because +// an invocation succeeds or fails as a whole and one completion flag should +// represent one thing that actually happened. +type Group struct { + // Name is the suffix of the processor name, and therefore the checkpoint + // key. It is permanent for the lifetime of the data. + Name string + // Datatypes are the arguments passed to cryo. + Datatypes []string + // Datasets are the parquet files that come back, one per entry. + Datasets []*Dataset + // ExtraArgs are appended to the invocation. + ExtraArgs []string + // TablePrefix is prepended to each dataset's table name. + TablePrefix string + // MinBlock is the highest floor among the group's datasets, since one + // invocation cannot start at two different heights. + MinBlock uint64 + // Canary is collected and checked but not written, when the group does not + // already produce the dataset that serves as its coverage proof. + Canary *Dataset +} + +// newGroup resolves a group's configuration into its datasets. +// +// Every group collects the blocks dataset, because it is the only one whose row +// count is knowable in advance: exactly one per block, whatever the block +// contains. Every other dataset can legitimately be empty, and cryo reports a +// block it cannot serve by writing an empty parquet and exiting zero — which is +// indistinguishable from an empty block, and is how production came to hold +// whole ranges with no rows at all. A group that does not write blocks still +// collects it as a canary. +func newGroup(cfg *GroupConfig) (*Group, error) { + members, err := datasetsFor(cfg.Datatypes) + if err != nil { + return nil, err + } + + minBlock := cfg.MinBlock + + var canary *Dataset + + writesBlocks := false + + for _, ds := range members { + if ds.MinBlock > minBlock { + minBlock = ds.MinBlock + } + + if ds.Name == blocksDataset.Name { + writesBlocks = true + } + } + + datatypes := append([]string(nil), cfg.Datatypes...) + + if !writesBlocks { + canary = blocksDataset + datatypes = append(datatypes, blocksDataset.Name) + } + + return &Group{ + Name: cfg.Name, + Datatypes: datatypes, + Datasets: members, + ExtraArgs: append([]string(nil), cfg.ExtraArgs...), + TablePrefix: cfg.TablePrefix, + MinBlock: minBlock, + Canary: canary, + }, nil +} + +// RequiredColumns returns the columns cryo must be asked for, gathered from +// the group's datasets. These are not operator choices: a mapping that reads a +// column cryo did not emit fails on every block, and ClickHouse would fill the +// gap with a type default rather than complain. +func (g *Group) RequiredColumns() []string { + var cols []string + + for _, ds := range g.collected() { + for _, col := range ds.RequiredColumns { + if !slices.Contains(cols, col) { + cols = append(cols, col) + } + } + } + + return cols +} + +// collected returns every dataset the invocation produces that is worth +// decoding, which is the written members plus any canary. +func (g *Group) collected() []*Dataset { + if g.Canary == nil { + return g.Datasets + } + + return append(append(make([]*Dataset, 0, len(g.Datasets)+1), g.Datasets...), g.Canary) +} + +// ProcessorName is the group's identity in queue names, metrics labels and the +// processor column of the block ledger. +func (g *Group) ProcessorName() string { + return fmt.Sprintf("cryo_%s", g.Name) +} + +// TableFor returns a dataset's target table under this group's prefix. +func (g *Group) TableFor(ds *Dataset) string { + return g.TablePrefix + ds.Table +} diff --git a/pkg/processor/cryo/handlers.go b/pkg/processor/cryo/handlers.go new file mode 100644 index 0000000..7684539 --- /dev/null +++ b/pkg/processor/cryo/handlers.go @@ -0,0 +1,196 @@ +package cryo + +import ( + "context" + "fmt" + "time" + + "github.com/hibiken/asynq" + "github.com/sirupsen/logrus" + "golang.org/x/sync/errgroup" + + "github.com/ethpandaops/execution-processor/pkg/common" + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +// GetHandlers returns the task handlers for this processor. +func (p *Processor) GetHandlers() map[string]asynq.HandlerFunc { + return map[string]asynq.HandlerFunc{ + p.processForwardsTaskType(): p.handleProcessTask, + p.processBackwardsTaskType(): p.handleProcessTask, + } +} + +// handleProcessTask collects one block for the whole group and writes every +// dataset it produced. The invocation succeeds or fails as a unit, so the block +// is only marked complete once every dataset has been flushed. +func (p *Processor) handleProcessTask(ctx context.Context, task *asynq.Task) error { + start := time.Now() + queue := p.queueFor(p.processingMode) + + defer func() { + common.TaskProcessingDuration.WithLabelValues( + p.network.Name, p.name, queue, task.Type(), + ).Observe(time.Since(start).Seconds()) + }() + + var payload ProcessPayload + if err := payload.UnmarshalBinary(task.Payload()); err != nil { + common.TasksErrored.WithLabelValues( + p.network.Name, p.name, queue, task.Type(), "unmarshal_error", + ).Inc() + + return fmt.Errorf("failed to unmarshal payload: %w", err) + } + + blockNumber := payload.BlockNumber.Uint64() + + if blockNumber < p.group.MinBlock { + p.log.WithFields(logrus.Fields{ + "block_number": blockNumber, + "min_block": p.group.MinBlock, + }).Debug("Block below the group's floor, marking complete without collecting") + + return p.completeBlock(ctx, blockNumber, payload.ProcessingMode) + } + + tables, err := p.fetch(ctx, blockNumber) + if err != nil { + common.TasksErrored.WithLabelValues( + p.network.Name, p.name, queue, task.Type(), "fetch_error", + ).Inc() + + return err + } + + if coverageErr := verifyCoverage(p.group, tables, blockNumber, blockNumber); coverageErr != nil { + CryoFetchErrors.WithLabelValues(p.network.Name, p.name, "coverage").Inc() + common.TasksErrored.WithLabelValues( + p.network.Name, p.name, queue, task.Type(), "coverage_error", + ).Inc() + + return fmt.Errorf("block %d: %w", blockNumber, coverageErr) + } + + rowCount, err := p.consume(ctx, tables) + if err != nil { + common.TasksErrored.WithLabelValues( + p.network.Name, p.name, queue, task.Type(), "insert_error", + ).Inc() + + return err + } + + common.TasksProcessed.WithLabelValues( + p.network.Name, p.name, queue, task.Type(), "success", + ).Inc() + + if err := p.completeBlock(ctx, blockNumber, payload.ProcessingMode); err != nil { + return err + } + + p.log.WithFields(logrus.Fields{ + "block_number": blockNumber, + "rows": rowCount, + "duration": time.Since(start), + }).Info("Processed block") + + return nil +} + +// fetch runs cryo for one block and returns the decoded tables per dataset. +func (p *Processor) fetch(ctx context.Context, blockNumber uint64) (map[string]*decode.Table, error) { + start := time.Now() + + tables, err := p.fetcher.Fetch(ctx, p.group, blockNumber, blockNumber) + + CryoFetchDuration.WithLabelValues(p.network.Name, p.name).Observe(time.Since(start).Seconds()) + + if err != nil { + CryoFetchErrors.WithLabelValues(p.network.Name, p.name, "collect").Inc() + + return nil, fmt.Errorf("collect block %d: %w", blockNumber, err) + } + + return tables, nil +} + +// consume maps every dataset's table into its row buffer. +// +// The datasets are submitted concurrently because each Submit blocks until its +// own buffer flushes. Sequentially, a block would wait one flush interval per +// dataset — sixteen of them, dwarfing the cryo invocation itself. +func (p *Processor) consume(ctx context.Context, tables map[string]*decode.Table) (int, error) { + meta := rowMeta{ + network: p.network.Name, + updated: time.Now().UTC().Truncate(time.Second), + } + + start := time.Now() + + for _, s := range p.sinks { + if _, ok := tables[s.Dataset()]; !ok { + return 0, fmt.Errorf("cryo produced no output for dataset %s", s.Dataset()) + } + } + + var ( + group errgroup.Group + counts = make([]int, len(p.sinks)) + ) + + for i, s := range p.sinks { + group.Go(func() error { + rows, err := s.Consume(ctx, tables[s.Dataset()], meta) + if err != nil { + return err + } + + counts[i] = rows + + return nil + }) + } + + if err := group.Wait(); err != nil { + return 0, err + } + + var total int + + for i, s := range p.sinks { + if counts[i] > 0 { + CryoRowsDecoded.WithLabelValues(p.network.Name, p.name, s.Dataset()).Add(float64(counts[i])) + } + + total += counts[i] + } + + CryoSubmitDuration.WithLabelValues(p.network.Name, p.name).Observe(time.Since(start).Seconds()) + + return total, nil +} + +// completeBlock records the single task this block had as done. +func (p *Processor) completeBlock(ctx context.Context, blockNumber uint64, mode string) error { + taskID := GenerateTaskID(p.name, p.network.Name, blockNumber) + + allComplete, err := p.completionTracker.TrackTaskCompletion(ctx, taskID, blockNumber, p.network.Name, p.name, mode) + if err != nil { + // Non-fatal: stale detection will pick the block up. + p.log.WithError(err).WithFields(logrus.Fields{ + "block_number": blockNumber, + "task_id": taskID, + }).Warn("Failed to track task completion") + } + + if !allComplete { + return nil + } + + if err := p.completionTracker.MarkBlockComplete(ctx, blockNumber, p.network.Name, p.name, mode); err != nil { + return fmt.Errorf("mark block %d complete: %w", blockNumber, err) + } + + return nil +} diff --git a/pkg/processor/cryo/integration_test.go b/pkg/processor/cryo/integration_test.go new file mode 100644 index 0000000..ea414f3 --- /dev/null +++ b/pkg/processor/cryo/integration_test.go @@ -0,0 +1,169 @@ +package cryo + +import ( + "context" + "fmt" + "os" + "testing" + "time" + + "github.com/ClickHouse/ch-go" + "github.com/ClickHouse/ch-go/proto" + "github.com/sirupsen/logrus" + "github.com/stretchr/testify/require" + + "github.com/ethpandaops/execution-processor/pkg/clickhouse" +) + +// integrationDSN names a ClickHouse holding the tables in testdata/schema.sql. +// The insert path cannot be proved without one: UInt256 limb order, +// FixedString padding and LowCardinality encoding are all wire-format +// properties that only a real server validates. +const integrationDSNEnv = "CRYO_TEST_CLICKHOUSE" + +func integrationClient(t *testing.T) clickhouse.ClientInterface { + t.Helper() + + addr := os.Getenv(integrationDSNEnv) + if addr == "" { + t.Skipf("set %s to addr/database (e.g. localhost:9000/cryo_e2e) to run", integrationDSNEnv) + } + + host, database := addr, "default" + for i := range len(addr) { + if addr[i] == '/' { + host, database = addr[:i], addr[i+1:] + + break + } + } + + cfg := &clickhouse.Config{Addr: host, Database: database, Processor: "cryo_test", Network: "mainnet"} + cfg.SetDefaults() + + client, err := clickhouse.New(cfg) + require.NoError(t, err) + require.NoError(t, client.Start()) + + t.Cleanup(func() { _ = client.Stop() }) + + return client +} + +// TestInsertEveryDataset runs every dataset's real column mapping into a real +// ClickHouse and reads the row count back, which is the only way to catch a +// column block that encodes to something the server rejects. +func TestInsertEveryDataset(t *testing.T) { + client := integrationClient(t) + ctx := t.Context() + + log := logrus.New() + log.SetLevel(logrus.ErrorLevel) + + for _, ds := range datasets { + t.Run(ds.Name, func(t *testing.T) { + s := ds.newSink(sinkDeps{ + log: log, + clickhouse: client, + dataset: ds, + table: ds.Table, + network: "mainnet", + processor: "cryo_test", + bufferMaxRows: 1, + bufferFlushInterval: time.Hour, + }) + + require.NoError(t, s.ValidateSchema(ctx), "startup schema check must accept the real table") + + require.NoError(t, s.Start(ctx)) + t.Cleanup(func() { _ = s.Stop(ctx) }) + + var expected int + + for _, block := range []string{"b23000000", "b23000026", "b15000051"} { + table := fixtureTable(t, block, ds.Name) + + rows, err := s.Consume(ctx, table, fixtureMeta) + require.NoError(t, err) + require.Equal(t, table.Rows(), rows, "every parquet row must reach the buffer") + + expected += rows + } + + require.Equal(t, expected, countRows(t, client, ds.Table)) + }) + } +} + +// TestUint256RoundTrip proves the limb order of the UInt256 encoding against +// ClickHouse itself rather than against the code that produced it. +func TestUint256RoundTrip(t *testing.T) { + client := integrationClient(t) + ctx := t.Context() + + values := []string{ + "0", + "1", + "18446744073709551615", + "18446744073709551616", + "82520860000000000000", + "2227376088180124203790135", + "340282366920938463463374607431768211455", + "340282366920938463463374607431768211456", + "90200608809960061854851247237396347024452973173411525954377011279129548947580", + "115792089237316195423570985008687907853269984665640564039457584007913129639935", + } + + var col proto.ColUInt256 + + for _, v := range values { + parsed, err := uint256(v) + require.NoError(t, err, "value %s", v) + + col.Append(parsed) + } + + table := "cryo_uint256_roundtrip" + require.NoError(t, client.Execute(ctx, "DROP TABLE IF EXISTS "+table)) + require.NoError(t, client.Execute(ctx, "CREATE TABLE "+table+" (v UInt256) ENGINE = Memory")) + + t.Cleanup(func() { _ = client.Execute(context.Background(), "DROP TABLE IF EXISTS "+table) }) + + input := proto.Input{{Name: "v", Data: &col}} + require.NoError(t, client.Do(ctx, ch.Query{Body: input.Into(table), Input: input})) + + var readBack proto.ColStr + + got := make([]string, 0, len(values)) + + require.NoError(t, client.Do(ctx, ch.Query{ + Body: "SELECT toString(v) AS v FROM " + table + " ORDER BY v", + Result: proto.Results{{Name: "v", Data: &readBack}}, + OnResult: func(_ context.Context, _ proto.Block) error { + for i := range readBack.Rows() { + got = append(got, readBack.Row(i)) + } + + return nil + }, + })) + + require.ElementsMatch(t, values, got) +} + +// countRows counts only the rows this test wrote, identified by the fixed +// fixture timestamp. Counting the whole table would break against leftovers +// from an earlier run and against any processor writing concurrently, and +// truncating a shared database to avoid that is worse than either. +func countRows(t *testing.T, client clickhouse.ClientInterface, table string) int { + t.Helper() + + query := fmt.Sprintf("SELECT count() AS c FROM %s WHERE updated_date_time = '%s'", + table, fixtureMeta.updated.Format("2006-01-02 15:04:05")) + + count, err := client.QueryUInt64(t.Context(), query, "c") + require.NoError(t, err) + require.NotNil(t, count) + + return int(*count) +} diff --git a/pkg/processor/cryo/metrics.go b/pkg/processor/cryo/metrics.go new file mode 100644 index 0000000..1181fc6 --- /dev/null +++ b/pkg/processor/cryo/metrics.go @@ -0,0 +1,49 @@ +package cryo + +import ( + "github.com/prometheus/client_golang/prometheus" + "github.com/prometheus/client_golang/prometheus/promauto" +) + +var ( + // CryoBuildInfo exposes which cryo produced the data, which is the first + // thing you need when the output looks wrong. + CryoBuildInfo = promauto.NewGaugeVec(prometheus.GaugeOpts{ + Name: "execution_processor_cryo_build_info", + Help: "Version of the cryo binary the processor invokes", + }, []string{"network", "version"}) + + // CryoFetchDuration measures one cryo invocation. + CryoFetchDuration = promauto.NewHistogramVec(prometheus.HistogramOpts{ + Name: "execution_processor_cryo_fetch_duration_seconds", + Help: "Time taken by one cryo invocation, covering all datasets in a group", + Buckets: prometheus.ExponentialBuckets(0.01, 2, 14), + }, []string{"network", "processor"}) + + // CryoDecodeDuration measures reading one group's parquet output into memory. + CryoDecodeDuration = promauto.NewHistogramVec(prometheus.HistogramOpts{ + Name: "execution_processor_cryo_decode_duration_seconds", + Help: "Time taken to decode one group's parquet output", + Buckets: prometheus.ExponentialBuckets(0.001, 2, 14), + }, []string{"network", "processor"}) + + // CryoSubmitDuration measures mapping rows and waiting for every dataset's + // buffer to flush, which is where ClickHouse backpressure shows up. + CryoSubmitDuration = promauto.NewHistogramVec(prometheus.HistogramOpts{ + Name: "execution_processor_cryo_submit_duration_seconds", + Help: "Time taken to map and flush one group's rows to ClickHouse", + Buckets: prometheus.ExponentialBuckets(0.001, 2, 16), + }, []string{"network", "processor"}) + + // CryoRowsDecoded counts rows produced per dataset. + CryoRowsDecoded = promauto.NewCounterVec(prometheus.CounterOpts{ + Name: "execution_processor_cryo_rows_decoded_total", + Help: "Rows decoded from cryo output", + }, []string{"network", "processor", "dataset"}) + + // CryoFetchErrors counts failed invocations by cause. + CryoFetchErrors = promauto.NewCounterVec(prometheus.CounterOpts{ + Name: "execution_processor_cryo_fetch_errors_total", + Help: "Failed cryo invocations", + }, []string{"network", "processor", "reason"}) +) diff --git a/pkg/processor/cryo/processor.go b/pkg/processor/cryo/processor.go new file mode 100644 index 0000000..879f290 --- /dev/null +++ b/pkg/processor/cryo/processor.go @@ -0,0 +1,305 @@ +package cryo + +import ( + "context" + "fmt" + "math" + + "github.com/hibiken/asynq" + "github.com/redis/go-redis/v9" + "github.com/sirupsen/logrus" + + "github.com/ethpandaops/execution-processor/pkg/clickhouse" + "github.com/ethpandaops/execution-processor/pkg/ethereum" + "github.com/ethpandaops/execution-processor/pkg/processor/tracker" + "github.com/ethpandaops/execution-processor/pkg/state" +) + +// Compile-time interface compliance check. +var _ tracker.BlockProcessor = (*Processor)(nil) + +// Dependencies contains the dependencies needed for the processor. +type Dependencies struct { + Log logrus.FieldLogger + Pool *ethereum.Pool + Network *ethereum.Network + State *state.Manager + AsynqClient *asynq.Client + AsynqInspector *asynq.Inspector + RedisClient *redis.Client + RedisPrefix string +} + +// Processor collects one cryo group per block and writes each dataset it +// produces to its own table. +type Processor struct { + log logrus.FieldLogger + name string + group *Group + pool *ethereum.Pool + stateManager *state.Manager + clickhouse clickhouse.ClientInterface + config *Config + network *ethereum.Network + asynqClient *asynq.Client + asynqInspector *asynq.Inspector + processingMode string + redisPrefix string + + fetcher Fetcher + + // One sink per dataset: a single invocation writes several tables whose + // volumes differ by orders of magnitude, so they flush independently. + sinks []sink + + *tracker.Limiter + + completionTracker *tracker.BlockCompletionTracker +} + +// New creates a processor for one enabled group. +func New(deps *Dependencies, config *Config, groupCfg *GroupConfig) (*Processor, error) { + group, err := newGroup(groupCfg) + if err != nil { + return nil, fmt.Errorf("invalid group %q: %w", groupCfg.Name, err) + } + + name := group.ProcessorName() + + clickhouseConfig := config.Config + clickhouseConfig.Network = deps.Network.Name + clickhouseConfig.Processor = name + + clickhouseClient, err := clickhouse.New(&clickhouseConfig) + if err != nil { + return nil, fmt.Errorf("failed to create clickhouse client: %w", err) + } + + maxPending := groupCfg.MaxPendingBlockRange + if maxPending <= 0 { + maxPending = tracker.DefaultMaxPendingBlockRange + } + + log := deps.Log.WithField("processor", name) + + limiter := tracker.NewLimiter( + &tracker.LimiterDeps{ + Log: log, + StateProvider: deps.State, + Network: deps.Network.Name, + Processor: name, + }, + tracker.LimiterConfig{ + MaxPendingBlockRange: maxPending, + }, + ) + + completionTracker := tracker.NewBlockCompletionTracker( + deps.RedisClient, + deps.RedisPrefix, + log, + deps.State, + tracker.BlockCompletionTrackerConfig{ + StaleThreshold: tracker.DefaultStaleThreshold, + AutoRetryStale: true, + }, + ) + + p := &Processor{ + log: log, + name: name, + group: group, + pool: deps.Pool, + stateManager: deps.State, + clickhouse: clickhouseClient, + config: config, + network: deps.Network, + asynqClient: deps.AsynqClient, + asynqInspector: deps.AsynqInspector, + processingMode: tracker.FORWARDS_MODE, + redisPrefix: deps.RedisPrefix, + Limiter: limiter, + completionTracker: completionTracker, + } + + p.fetcher = newExecFetcher(log, config, p.rpcEndpoint) + + p.sinks = make([]sink, 0, len(group.Datasets)) + for _, ds := range group.Datasets { + p.sinks = append(p.sinks, ds.newSink(sinkDeps{ + log: log, + clickhouse: clickhouseClient, + dataset: ds, + table: group.TableFor(ds), + network: deps.Network.Name, + processor: name, + bufferMaxRows: config.BufferMaxRows, + bufferFlushInterval: config.BufferFlushInterval, + })) + } + + log.WithFields(logrus.Fields{ + "network": deps.Network.Name, + "datatypes": group.Datatypes, + "datasets": len(group.Datasets), + "min_block": group.MinBlock, + "max_pending_block_range": maxPending, + }).Info("Cryo processor initialized") + + return p, nil +} + +// Name returns the processor name, which is the checkpoint key in the block +// ledger and must stay stable for the lifetime of the data. +func (p *Processor) Name() string { return p.name } + +// Group returns the group this processor collects. +func (p *Processor) Group() *Group { return p.group } + +// rpcEndpoint picks a healthy node for cryo to dial. Nodes that expose no +// endpoint cannot drive a subprocess, so they are not candidates. +func (p *Processor) rpcEndpoint() (string, error) { + for _, node := range p.pool.GetHealthyExecutionNodes() { + if endpoint := node.RPCEndpoint(); endpoint != "" { + return endpoint, nil + } + } + + return "", fmt.Errorf("no healthy execution node exposes an RPC endpoint for cryo") +} + +// Start starts the processor, verifying the cryo binary and every target table +// before accepting work. +func (p *Processor) Start(ctx context.Context) error { + p.log.Info("Starting cryo processor") + + sweepTempDirs(p.log, p.config.TempDir) + + if err := p.clickhouse.Start(); err != nil { + return fmt.Errorf("failed to start ClickHouse client: %w", err) + } + + version, err := p.cryoVersion(ctx) + if err != nil { + return err + } + + for _, s := range p.sinks { + if err := s.ValidateSchema(ctx); err != nil { + return fmt.Errorf("schema check failed: %w", err) + } + + if err := s.Start(ctx); err != nil { + return fmt.Errorf("failed to start %s row buffer: %w", s.Dataset(), err) + } + } + + p.log.WithFields(logrus.Fields{ + "network": p.network.Name, + "cryo_version": version, + }).Info("Cryo processor ready") + + return nil +} + +// cryoVersion resolves the bundled cryo's version, failing startup if the +// binary is missing or unrunnable rather than at the first task. +func (p *Processor) cryoVersion(ctx context.Context) (string, error) { + versioner, ok := p.fetcher.(interface { + Version(context.Context) (string, error) + }) + if !ok { + return "", nil + } + + version, err := versioner.Version(ctx) + if err != nil { + return "", fmt.Errorf("cryo binary %q is not runnable: %w", p.config.BinaryPath, err) + } + + CryoBuildInfo.WithLabelValues(p.network.Name, version).Set(1) + + return version, nil +} + +// Stop stops the processor, flushing every dataset's buffered rows. +func (p *Processor) Stop(ctx context.Context) error { + p.log.Info("Stopping cryo processor") + + for _, s := range p.sinks { + if err := s.Stop(ctx); err != nil { + p.log.WithError(err).WithField("dataset", s.Dataset()).Error("Failed to stop row buffer") + } + } + + return p.clickhouse.Stop() +} + +// SetProcessingMode sets the processing mode for the processor. +func (p *Processor) SetProcessingMode(mode string) { + p.processingMode = mode + p.log.WithField("mode", mode).Info("Processing mode updated") +} + +// GetCompletionTracker returns the block completion tracker. +func (p *Processor) GetCompletionTracker() *tracker.BlockCompletionTracker { + return p.completionTracker +} + +// GetLimiter returns the block completion limiter. +func (p *Processor) GetLimiter() *tracker.Limiter { + return p.Limiter +} + +// EnqueueTask enqueues a task to the specified queue with infinite retries. +func (p *Processor) EnqueueTask(ctx context.Context, task *asynq.Task, opts ...asynq.Option) error { + opts = append(opts, asynq.MaxRetry(math.MaxInt32)) + + _, err := p.asynqClient.EnqueueContext(ctx, task, opts...) + + return err +} + +// GetQueues returns the queues used by this processor. +func (p *Processor) GetQueues() []tracker.QueueInfo { + return []tracker.QueueInfo{ + {Name: p.getProcessReprocessForwardsQueue(), Priority: 20}, + {Name: p.getProcessReprocessBackwardsQueue(), Priority: 15}, + {Name: p.getProcessForwardsQueue(), Priority: 10}, + {Name: p.getProcessBackwardsQueue(), Priority: 5}, + } +} + +func (p *Processor) getProcessForwardsQueue() string { + return tracker.PrefixedProcessForwardsQueue(p.name, p.redisPrefix) +} + +func (p *Processor) getProcessBackwardsQueue() string { + return tracker.PrefixedProcessBackwardsQueue(p.name, p.redisPrefix) +} + +func (p *Processor) getProcessReprocessForwardsQueue() string { + return tracker.PrefixedProcessReprocessForwardsQueue(p.name, p.redisPrefix) +} + +func (p *Processor) getProcessReprocessBackwardsQueue() string { + return tracker.PrefixedProcessReprocessBackwardsQueue(p.name, p.redisPrefix) +} + +// queueFor returns the main queue for a processing mode. +func (p *Processor) queueFor(mode string) string { + if mode == tracker.BACKWARDS_MODE { + return p.getProcessBackwardsQueue() + } + + return p.getProcessForwardsQueue() +} + +// reprocessQueueFor returns the high-priority queue for a processing mode. +func (p *Processor) reprocessQueueFor(mode string) string { + if mode == tracker.BACKWARDS_MODE { + return p.getProcessReprocessBackwardsQueue() + } + + return p.getProcessReprocessForwardsQueue() +} diff --git a/pkg/processor/cryo/schema.go b/pkg/processor/cryo/schema.go new file mode 100644 index 0000000..dbeead0 --- /dev/null +++ b/pkg/processor/cryo/schema.go @@ -0,0 +1,96 @@ +package cryo + +import ( + "context" + "fmt" + "strings" + + "github.com/ClickHouse/ch-go" + "github.com/ClickHouse/ch-go/proto" + + "github.com/ethpandaops/execution-processor/pkg/clickhouse" + "github.com/ethpandaops/execution-processor/pkg/processor/tracker" +) + +// describeTable returns the column name to ClickHouse type mapping of a table. +func describeTable(ctx context.Context, client clickhouse.ClientInterface, table string) (map[string]string, error) { + database, name, err := splitTableName(table) + if err != nil { + return nil, err + } + + queryCtx, cancel := context.WithTimeout(ctx, tracker.DefaultClickHouseTimeout) + defer cancel() + + var ( + names proto.ColStr + types proto.ColStr + out = make(map[string]string) + ) + + body := fmt.Sprintf( + "SELECT name, type FROM system.columns WHERE database = %s AND table = '%s'", + database, name, + ) + + err = client.Do(queryCtx, ch.Query{ + Body: body, + Result: proto.Results{ + {Name: "name", Data: &names}, + {Name: "type", Data: &types}, + }, + OnResult: func(_ context.Context, _ proto.Block) error { + for i := range names.Rows() { + out[names.Row(i)] = types.Row(i) + } + + return nil + }, + }) + if err != nil { + return nil, fmt.Errorf("describe table %s: %w", table, err) + } + + if len(out) == 0 { + return nil, fmt.Errorf("table %s does not exist or has no columns", table) + } + + return out, nil +} + +// splitTableName resolves a configured table into the database expression and +// table name to look up, rejecting anything that is not a plain identifier so +// the values can be interpolated into the lookup. +func splitTableName(table string) (database, name string, err error) { + database, name = "currentDatabase()", table + + if db, rest, found := strings.Cut(table, "."); found { + if !isIdentifier(db) { + return "", "", fmt.Errorf("table %q has an invalid database name", table) + } + + database, name = "'"+db+"'", rest + } + + if !isIdentifier(name) { + return "", "", fmt.Errorf("table %q is not a plain identifier", table) + } + + return database, name, nil +} + +func isIdentifier(s string) bool { + if s == "" { + return false + } + + for _, r := range s { + switch { + case r >= 'a' && r <= 'z', r >= 'A' && r <= 'Z', r >= '0' && r <= '9', r == '_': + default: + return false + } + } + + return true +} diff --git a/pkg/processor/cryo/sink.go b/pkg/processor/cryo/sink.go new file mode 100644 index 0000000..d9cf01f --- /dev/null +++ b/pkg/processor/cryo/sink.go @@ -0,0 +1,212 @@ +package cryo + +import ( + "context" + "fmt" + "sort" + "strings" + "time" + + "github.com/ClickHouse/ch-go" + "github.com/ClickHouse/ch-go/proto" + "github.com/sirupsen/logrus" + + "github.com/ethpandaops/execution-processor/pkg/clickhouse" + "github.com/ethpandaops/execution-processor/pkg/common" + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" + "github.com/ethpandaops/execution-processor/pkg/processor/tracker" + "github.com/ethpandaops/execution-processor/pkg/rowbuffer" +) + +// rowMeta carries the per-batch literals every dataset appends to its rows. +type rowMeta struct { + network string + updated time.Time +} + +// sinkDeps are the shared dependencies a dataset needs to buffer and insert. +type sinkDeps struct { + log logrus.FieldLogger + clickhouse clickhouse.ClientInterface + dataset *Dataset + table string + network string + processor string + bufferMaxRows int + bufferFlushInterval time.Duration +} + +// sink owns one dataset's row buffer and ClickHouse mapping. A single cryo +// invocation produces rows for several datasets, so a processor holds one sink +// per dataset in its group and flushes each on its own thresholds. +type sink interface { + Dataset() string + Table() string + Start(ctx context.Context) error + Stop(ctx context.Context) error + // Consume decodes a parquet table and submits its rows for insertion, + // blocking until they are flushed. It returns the number of rows submitted. + Consume(ctx context.Context, t *decode.Table, meta rowMeta) (int, error) + // ValidateSchema checks the target table's columns against the mapping. + ValidateSchema(ctx context.Context) error +} + +// columnar is a dataset's ch-go column block. +type columnar[R any] interface { + Append(R) error + Input() proto.Input + Reset() + Rows() int +} + +// decodeFunc turns a decoded parquet table into rows, preserving file order. +type decodeFunc[R any] func(t *decode.Table, meta rowMeta) ([]R, error) + +// datasetSink is the single implementation of sink; datasets differ only in +// their row type, decoder and column block. +type datasetSink[R any] struct { + deps sinkDeps + log logrus.FieldLogger + buffer *rowbuffer.Buffer[R] + decode decodeFunc[R] + newCols func() columnar[R] +} + +func newDatasetSink[R any](deps sinkDeps, dec decodeFunc[R], newCols func() columnar[R]) sink { + log := deps.log.WithField("dataset", deps.dataset.Name) + + s := &datasetSink[R]{ + deps: deps, + log: log, + decode: dec, + newCols: newCols, + } + + s.buffer = rowbuffer.New( + rowbuffer.Config{ + MaxRows: deps.bufferMaxRows, + FlushInterval: deps.bufferFlushInterval, + Network: deps.network, + Processor: deps.processor, + Table: deps.table, + }, + s.flush, + log, + ) + + return s +} + +func (s *datasetSink[R]) Dataset() string { return s.deps.dataset.Name } + +func (s *datasetSink[R]) Table() string { return s.deps.table } + +func (s *datasetSink[R]) Start(ctx context.Context) error { + return s.buffer.Start(ctx) +} + +func (s *datasetSink[R]) Stop(ctx context.Context) error { + return s.buffer.Stop(ctx) +} + +func (s *datasetSink[R]) Consume(ctx context.Context, t *decode.Table, meta rowMeta) (int, error) { + rows, err := s.decode(t, meta) + if err != nil { + return 0, fmt.Errorf("decode %s: %w", s.deps.dataset.Name, err) + } + + if len(rows) == 0 { + return 0, nil + } + + if err := s.buffer.Submit(ctx, rows); err != nil { + return 0, fmt.Errorf("buffer %s: %w", s.deps.dataset.Name, err) + } + + return len(rows), nil +} + +// flush maps buffered rows into a ch-go column block and inserts it. +func (s *datasetSink[R]) flush(ctx context.Context, rows []R) error { + if len(rows) == 0 { + return nil + } + + insertCtx, cancel := context.WithTimeout(ctx, tracker.DefaultClickHouseTimeout) + defer cancel() + + cols := s.newCols() + + for i := range rows { + if err := cols.Append(rows[i]); err != nil { + return fmt.Errorf("append %s row %d: %w", s.deps.dataset.Name, i, err) + } + } + + input := cols.Input() + + if err := s.deps.clickhouse.Do(insertCtx, ch.Query{ + Body: input.Into(s.deps.table), + Input: input, + }); err != nil { + common.ClickHouseInsertsRows.WithLabelValues( + s.deps.network, s.deps.processor, s.deps.table, "failed", "", + ).Add(float64(len(rows))) + + return fmt.Errorf("insert into %s: %w", s.deps.table, err) + } + + common.ClickHouseInsertsRows.WithLabelValues( + s.deps.network, s.deps.processor, s.deps.table, "success", "", + ).Add(float64(len(rows))) + + return nil +} + +// ValidateSchema compares the target table against the column block this +// dataset writes, so that schema drift fails at boot rather than at the first +// insert of a block that happens to exercise the drifted column. +// +// The check runs in both directions. A column the mapping does not write is as +// dangerous as one it writes wrongly: ClickHouse fills the gap with the type +// default and the insert succeeds, so the column silently becomes zero for +// every row. +func (s *datasetSink[R]) ValidateSchema(ctx context.Context) error { + actual, err := describeTable(ctx, s.deps.clickhouse, s.deps.table) + if err != nil { + return err + } + + written := make(map[string]struct{}, len(actual)) + + for _, col := range s.newCols().Input() { + written[col.Name] = struct{}{} + + got, ok := actual[col.Name] + if !ok { + return fmt.Errorf("table %s has no column %q", s.deps.table, col.Name) + } + + want := string(col.Data.Type()) + if got != want { + return fmt.Errorf("table %s column %q is %s, mapping writes %s", s.deps.table, col.Name, got, want) + } + } + + missing := make([]string, 0, len(actual)) + + for name := range actual { + if _, ok := written[name]; !ok { + missing = append(missing, name) + } + } + + if len(missing) > 0 { + sort.Strings(missing) + + return fmt.Errorf("table %s has columns the %s mapping never writes, which would be silently defaulted: %s", + s.deps.table, s.deps.dataset.Name, strings.Join(missing, ", ")) + } + + return nil +} diff --git a/pkg/processor/cryo/tasks.go b/pkg/processor/cryo/tasks.go new file mode 100644 index 0000000..f0d1e6d --- /dev/null +++ b/pkg/processor/cryo/tasks.go @@ -0,0 +1,63 @@ +package cryo + +import ( + "encoding/json" + "fmt" + "math/big" + + "github.com/hibiken/asynq" + + "github.com/ethpandaops/execution-processor/pkg/processor/tracker" +) + +// ProcessPayload represents the payload for processing one block of one group. +// +//nolint:tagliatelle // snake_case matches the queued payloads of the other processors +type ProcessPayload struct { + BlockNumber big.Int `json:"block_number"` + NetworkName string `json:"network_name"` + ProcessingMode string `json:"processing_mode"` +} + +// MarshalBinary implements encoding.BinaryMarshaler. +func (p *ProcessPayload) MarshalBinary() ([]byte, error) { + return json.Marshal(p) +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler. +func (p *ProcessPayload) UnmarshalBinary(data []byte) error { + return json.Unmarshal(data, p) +} + +// Task types are derived from the group rather than fixed at package level, +// because one config yields one processor per enabled group. +func (p *Processor) processForwardsTaskType() string { + return p.name + "_process_forwards" +} + +func (p *Processor) processBackwardsTaskType() string { + return p.name + "_process_backwards" +} + +// GenerateTaskID creates a deterministic task ID for deduplication. +func GenerateTaskID(processorName, network string, blockNumber uint64) string { + return fmt.Sprintf("%s:%s:%d:block", processorName, network, blockNumber) +} + +// newTask builds the task for a processing mode, returning it with the ID used +// for deduplication. +func (p *Processor) newTask(payload *ProcessPayload, mode string) (*asynq.Task, string, error) { + payload.ProcessingMode = mode + + taskType := p.processForwardsTaskType() + if mode == tracker.BACKWARDS_MODE { + taskType = p.processBackwardsTaskType() + } + + data, err := payload.MarshalBinary() + if err != nil { + return nil, "", fmt.Errorf("marshal payload: %w", err) + } + + return asynq.NewTask(taskType, data), GenerateTaskID(p.name, payload.NetworkName, payload.BlockNumber.Uint64()), nil +} diff --git a/pkg/processor/cryo/testdata/b15000051/ethereum__address_appearances__15000051_to_15000051.parquet b/pkg/processor/cryo/testdata/b15000051/ethereum__address_appearances__15000051_to_15000051.parquet new file mode 100644 index 0000000000000000000000000000000000000000..74f852e07ec1aef4b9ec65b56837f6fe046e15c5 GIT binary patch literal 45719 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�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 N8RCO+uAdeCzW_ML9=HGi literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b15000051/ethereum__blocks__15000051_to_15000051.parquet b/pkg/processor/cryo/testdata/b15000051/ethereum__blocks__15000051_to_15000051.parquet new file mode 100644 index 0000000000000000000000000000000000000000..55d68ab6e0a01ab3b4156c942e313ef22a7df5ad GIT binary patch literal 4305 zcmdT|L2MI86rF6M)TAaUgqiLlQ^FxuMWwR4IO|< z@$R3Q|KI!b|DQirX6&p+`{_qL^it2eRHB4``zYBKGsvqcb;T(;34g3;nyTgLW9EKU zb@Y2essJZ){QbHTE3}4f9)AIaM(K1U#RrOrePsp2qK?v#Xd5}!O``I0$ zQDv0$EAoI_T_~O|l%0B+4l;>--^=dw#v^b1m$nU=d7pY~^Ric6(Hzgxd|x$7y5{=( zJzsSl-E|C0GySBN@EpTUK)MXM3*A>i(ii-OJEiTSeLE&<=1UCA+^}VNU&`| zwrXX*(g^4-4str7DMy4v2+$p+Gix_DqOK%N!%7;)m{Br(T}|rAG2Jsv7;8x*X~`RE zaQ7b25qNI|CMsvZUuo2wg6A|G?)--myCB8y525=T@;!}5>sHE*eP6h8A3nL;2T>B0 zvZYa(_v;O3evvzcWpaC%mr2-a-NgMooc^{KQ00h_I7L&8MB-j@ow{Er`F>&1uN5GR zLH?SQ=T8`ff!1Z^wZd72)M6DQ!5S%+oywU)rBj^u8D|rUazsdkDBC1uGurs3fKZ~a zwo6@f7Nwik5~AQOL1{IU&~$KymChj!FN>1~%R&q-Z&=gH#zh^1}=`E=(KOCU>ws<{CYi;r3U?AQfq8Ehn?cqSV zNjn;>B|;%yo9e4AEHvnLLZhQn_&y#bM`OUwr`y+xn36#Aksdy}^XRqVk?pA72Wvss z9gV^K!C=1AA43bAw$psV9G%nu4}vx4HH60<5GSiM&m<+LT#n!CjRhU=fAHIbT^*r} z-ID25iNrtH68QeF-}CI|2$k7yJLy+FB>v5dG0~tODTAO#KjtcD-{DSf#OUiJer0Pc z=z-l_(Ck;l_$fx;B=P1@fYB+dplv_l+GWi>0P^WB1o?AY5Ygv;|FMtvKm_mZqMtwn zuj~jS*eUWLe2=-}*yrf=U$0>Jey73K*Bpc(0#CTO*eYUuwi_dG_vHYqtLupUfEd3Z z2D`MCN%07~wsi+KD>-Usv&T;!s29uryd$r^un#|GecZO~3HaLPSs1TmP=qm`dds%! zHYmV5W4|^7>&wfye%Q9>+IpwqohssR3a5`Pr);zUm}$hALA7yIvfsf6F4%|aNIi{1 zWVh{E{>*?qSWnD>A-*#R2-EqN!kNeSS%AE(?ztLFP4sbQvj4fepUqdBJmsAsLpH-J{FD>yGc^KdvXy+ z;e0KEm0P^tPNP3BOWYb-k3VEw@zwqP(|$bAv}+670Oa!qq0%V8?J9&PQ1n3 zu!G8n<6rMSzLg}YkcaO@;+yH=tRfwkd09Zrz}6#s;&_&Q^8m6P1-cjNX5{$ZBnxD| zZPWMQH=~JeS%DpfcdYDuZrN9^A0vr06fbU`W49l~*|jalbE1jqTXuFe_i*9Wzis#O z-~!%w$UWtl7;$8WnJPqup5TAv4K z-!Y{oQS+4D4sUCzfP)P7k~t4afxQnpsx!k8$5TX5cF@T!f;6f;1sX09M`1kBKR6GJ zS{fe#`DxYw+7TqM00C6xyoowJe>89x!&CFpY9y)HHWk zo6XD`=hqC`-@_~kN+X_`78goHriky-CJH2^`r;Aedm;b7@w|Ou zb>!GqSLPF~ihfuc9l1Up3X?=X#NwQ@{lEo0(GTK&q0huU;`?!Jcv?If^w0(mFvq*TfcjS(Sd@tPvwBi@j8v4TriQ+)_3w>Ai pN5dW#)_&jb_!rh-*WvS(iqHDKs|R7}H@|E>tAOu?dbpj literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b15000051/ethereum__erc20_transfers__15000051_to_15000051.parquet b/pkg/processor/cryo/testdata/b15000051/ethereum__erc20_transfers__15000051_to_15000051.parquet new file mode 100644 index 0000000000000000000000000000000000000000..7dbafa858461f2a0e1097c73fe5a81061087819a GIT binary patch literal 23222 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

y%h*xE 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 literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b15000051/ethereum__four_byte_counts__15000051_to_15000051.parquet b/pkg/processor/cryo/testdata/b15000051/ethereum__four_byte_counts__15000051_to_15000051.parquet new file mode 100644 index 0000000000000000000000000000000000000000..46ca267d2aeaaa232c0ca21d0490d834a44d0e53 GIT binary patch literal 18595 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 literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b15000051/ethereum__native_transfers__15000051_to_15000051.parquet b/pkg/processor/cryo/testdata/b15000051/ethereum__native_transfers__15000051_to_15000051.parquet new file mode 100644 index 0000000000000000000000000000000000000000..c493e58f1462ceb2e644321a70d233cb754ef44c GIT binary patch literal 56354 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 ivUO^sG@TPGqL!G$@9$Z6wO)tnhd5vU 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 literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b15000051/ethereum__nonce_diffs__15000051_to_15000051.parquet b/pkg/processor/cryo/testdata/b15000051/ethereum__nonce_diffs__15000051_to_15000051.parquet new file mode 100644 index 0000000000000000000000000000000000000000..1ad3963f4857bfd6fa22685c4859b14c38d5c270 GIT binary patch literal 29329 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 SOTGEi|BIg%g%}$>RR150KoCCw literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b15000051/ethereum__nonce_reads__15000051_to_15000051.parquet b/pkg/processor/cryo/testdata/b15000051/ethereum__nonce_reads__15000051_to_15000051.parquet new file mode 100644 index 0000000000000000000000000000000000000000..90ef04857f3fb5264610735c8cc90ffa0149b060 GIT binary patch literal 44163 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 TqNRxE|LGTd2Ro>Gy8qt*Y%>F1 literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b15000051/ethereum__storage_diffs__15000051_to_15000051.parquet b/pkg/processor/cryo/testdata/b15000051/ethereum__storage_diffs__15000051_to_15000051.parquet new file mode 100644 index 0000000000000000000000000000000000000000..094a139a124cbea073dc5f322cb6eed60b48686d GIT binary patch literal 84082 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

  • (2vYn<{ec}|BZ#;P^e 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 X{ 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 DH%kfV literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b15000051/ethereum__traces__15000051_to_15000051.parquet b/pkg/processor/cryo/testdata/b15000051/ethereum__traces__15000051_to_15000051.parquet new file mode 100644 index 0000000000000000000000000000000000000000..2433886e2d12790407c69cfd716102fb9f60b13a GIT binary patch literal 112527 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
    5luhW>KU{HU&bvGT#>eV*G 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 F{Rc@xe=-07 literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b23000000/ethereum__address_appearances__23000000_to_23000000.parquet b/pkg/processor/cryo/testdata/b23000000/ethereum__address_appearances__23000000_to_23000000.parquet new file mode 100644 index 0000000000000000000000000000000000000000..3f46d10ad463ec528e948af5ad4f81309d95330e GIT binary patch literal 32840 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 literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b23000000/ethereum__logs__23000000_to_23000000.parquet b/pkg/processor/cryo/testdata/b23000000/ethereum__logs__23000000_to_23000000.parquet new file mode 100644 index 0000000000000000000000000000000000000000..20fd0da34e5655a7d5d3c03bd4c48eb173b5cc5c GIT binary patch literal 45105 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

    #*`BL`b$^;7%`9@u(rg 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 T-jl59|KmT^o(%{sQd9D8A-uw^ literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b23000000/ethereum__native_transfers__23000000_to_23000000.parquet b/pkg/processor/cryo/testdata/b23000000/ethereum__native_transfers__23000000_to_23000000.parquet new file mode 100644 index 0000000000000000000000000000000000000000..5cabbb77c28b61fb793a3c811d44b5eb6bc8c17c GIT binary patch literal 42945 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 Ih(7Co1O4Wx$p8QV literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b23000000/ethereum__nonce_diffs__23000000_to_23000000.parquet b/pkg/processor/cryo/testdata/b23000000/ethereum__nonce_diffs__23000000_to_23000000.parquet new file mode 100644 index 0000000000000000000000000000000000000000..878a1a30d32824e41f1963e6fc298a6664ebd5ab GIT binary patch literal 19392 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 QJpYUTfzv_^^GU1!72{pyK>z>% literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b23000000/ethereum__storage_diffs__23000000_to_23000000.parquet b/pkg/processor/cryo/testdata/b23000000/ethereum__storage_diffs__23000000_to_23000000.parquet new file mode 100644 index 0000000000000000000000000000000000000000..211439ca6e4f6e0c7057b3d25d8d032126fd7961 GIT binary patch literal 46368 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 GG5qgX2#R0; literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b23000000/ethereum__storage_reads__23000000_to_23000000.parquet b/pkg/processor/cryo/testdata/b23000000/ethereum__storage_reads__23000000_to_23000000.parquet new file mode 100644 index 0000000000000000000000000000000000000000..5ce2f183d929cf2c3fe512c7992bcd0c8184d5d9 GIT binary patch literal 59347 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 literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b23000000/ethereum__traces__23000000_to_23000000.parquet b/pkg/processor/cryo/testdata/b23000000/ethereum__traces__23000000_to_23000000.parquet new file mode 100644 index 0000000000000000000000000000000000000000..9a2fdfaa2a81e9b04998a43dc8eab2e9b8ba1af2 GIT binary patch literal 101911 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

    F40x{6Lw1&hW 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 literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b23000000/ethereum__transactions__23000000_to_23000000.parquet b/pkg/processor/cryo/testdata/b23000000/ethereum__transactions__23000000_to_23000000.parquet new file mode 100644 index 0000000000000000000000000000000000000000..5ca9bc19b7f5e27a994befbe0c946ac7084fdb2a GIT binary patch literal 53693 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 YRZg3ZK8+dVKl`ulV?p>*Z<+i50qzu!O8@`> literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b23000026/ethereum__address_appearances__23000026_to_23000026.parquet b/pkg/processor/cryo/testdata/b23000026/ethereum__address_appearances__23000026_to_23000026.parquet new file mode 100644 index 0000000000000000000000000000000000000000..1f51742ccd187aba700621853ae7922c25d800ed GIT binary patch literal 65904 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 Cr0xy? literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b23000026/ethereum__balance_diffs__23000026_to_23000026.parquet b/pkg/processor/cryo/testdata/b23000026/ethereum__balance_diffs__23000026_to_23000026.parquet new file mode 100644 index 0000000000000000000000000000000000000000..3a5ffc2c034640673ccb7c9b85bdeb18016428ea GIT binary patch literal 56238 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 WvgM7(5sd!p|HO_n{H$w+_x}JtUSuQy literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b23000026/ethereum__balance_reads__23000026_to_23000026.parquet b/pkg/processor/cryo/testdata/b23000026/ethereum__balance_reads__23000026_to_23000026.parquet new file mode 100644 index 0000000000000000000000000000000000000000..8a47c83bc4d8c8ddf95ed6538558139de45b4d90 GIT binary patch literal 69484 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 E0pU?Z9smFU literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b23000026/ethereum__blocks__23000026_to_23000026.parquet b/pkg/processor/cryo/testdata/b23000026/ethereum__blocks__23000026_to_23000026.parquet new file mode 100644 index 0000000000000000000000000000000000000000..3ff93751ca9d93abb3f7e160b7edb5127a1770c9 GIT binary patch literal 4462 zcmdT|O>7%Q6rOA%;{@ZN-uFmNrd{XdMe-cGv6JtqJ)2kDA^iGlh-n_m6D#)9W@b4YN>cqkCp9| zWtG)b+R$t#r6m$+EoSLz(pBTSZX_%_q3Q9sYCCGoPO6q+%bS2f2pJr>t7YK+6&JjwS?p9cFeX)sj{KTefYNXykif~^FJjJ`3zV~t;%A9=kl7wZb;Fq0Ze8e z{QboW$qCVLZ*qoi{`TR3%&&Yw`>;)=_O6H8yMA(M!FJoR=2;>7U<4z5Xd|ZW^t+MmUu?$tP#BuLKbhDA7EX!?bBaLZ8l-G*+fgQ z4I^8vx=?L-bmzmIPI$^eVG#m!b$YyaacXQOm4rt-nU1GjHKyudby{gvgNHutq?75C zrmCnlL$g#v-oPBbgx>=y+2AB@mK$Gj4v zjgEOf?3uT>&^yBU{;21CiFqCu#)R7&#OHcHZ4N&qS95 zo(~-!V=o=L{KC#{=spBvUb!EOK>t3kzgw7n1Dv*7#QYrH3h_6Bo@d&J#{&>gU$>u0 zN<>+U{xTTxD(C;;rH5VIMH#!N&@UwtJv;2h{-3{Ku&;MfnO%&~>jNbENZK zZC*y7igT2m+YMPhw}bu)S^j}~S?)dvUWy-aRI<-^!^-aL#1yZ+=%uIUVezu`m;;b~ zgIH^?Vye$69#&t+8v7nGZXyO-g`XACAUhu(#eyb>%v|osvA3E|#a*!EYtOuiAH6wl zn&t$2P5l(KS7yw)4=-m-oB=S? zh%tk10s+R6 zIc{Yq>vqkk7x?fd;zJyOU!BWO*YawiRyb-b7xD+o1$FWar#f;5g3@_ZJlG7+O9sP& z;NHXa!adi?*I_=#+^^#Lxj&-M<2q-}aZJrru5KSYdZv_}Y&q!M#&4qO$Df4uWAJsv z#}u08B6wzM?o{sd+)?AiTs~LX-2C(XKMDCM+u2&n%Kt0-%kfLF2T#1er!kZG5&A(r zXR3DAIBvy_rP8r@wUBS`jD~tY&GpVVHOuEspp0kD%mI`r+$TB`=6;}et_R3F4B@Qo zWW1EEoN~Z^QoM1Fcd%)z(~Z1ZsW|GqN#wxHV$Etal{I*ASnrQ41qqpf|FrxCzy|2Q literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b23000026/ethereum__code_diffs__23000026_to_23000026.parquet b/pkg/processor/cryo/testdata/b23000026/ethereum__code_diffs__23000026_to_23000026.parquet new file mode 100644 index 0000000000000000000000000000000000000000..ab1eb67a757b1b28381f2da12693fe3ab1e08d1e GIT binary patch literal 4110 zcmds5O>7ip7@nP7OEJw-u;0fF*`Q!LF__r-+1Z`(FMLb?K!on9{RXj@7~;uzGR6}pj*uAB5JNZ`561K&@!-J&K@S{#-*0z^(Jh2ZYmC#*_xnEY z&ol4$(@wCGL3&6ZNuMGzk;I!K((X)7dL{MK?;j=Rp+4&$`jx4Mt zgo!vBOnjOkpC!5@DCo<%Z0H(1XP0fatoycacv&Z_hk3^_a@oM(uH{9y1^kuhfggnp7d2Z-75AxjejBM6)a=v5be4jgZkTtSKUfG0fi|!W>3A&%w zK!?^HUJx|GW>c_vTc&qp?e0!wa}y41&RJlmpX}*oN7k1Wcttd4WD!iq$>+9O|ZLnLZD7pSxb*dT!RX z^EuDv+_pT+H%ur!%l67yD{xFlhee}XfotS+liT@nVDqx2Y^!#`#m}b%7o8Y-r2Zf+ z-FLStf)2;M3-uVof28Pxly+kma=fh}Za0CD7XyTLXIpOqSj9()TF^-*E_cRBsBy zi#|L+2Iw~`c}>#3kRy0^fMUVoEp3B46uo+oQ2Lut@=H&qvk7*QAawjEFB$a9gG8a9 z?;~H!l6I{x3Ze6%krKRROQ<(Gl7n+M3-68#wd4$*q)we$e)DM}wJl}=8* z-t;SB%~KveH-yj1$Pvca2)xW$g#L07o6r|S?=aS6AOLldy*dH&OG`L^l(D(CoDcPp zEKIXm#1!TVj1AA=WEG21ELzI)h+h%<1$eAAh4zcAaFhWM>JhXDkFdko1P72SMxX%5 z9Lj-x#%9b)#hbFr-jvYEg#L>H7uWv*h(1C83g~yh@nXyFcxiFknyv8hN#Q;_DdwAK zPZ%u-)ddU-K<^QbAJcTo=FcR=Y7_z6>W=oe~!&0Tn;cesi3$5FHutl*24APxl0 z0S@b8%j7W1!80WIhfo+B$NtPz>6~AiT=AElS)U*<7(Z6w^Cv1ZR_Q!9f!DFo6%P%u zmi`mijQd*zMxNlWi}`dBLHNud6ygF(SV8w|qZfR0^rK*`y2z{Ud0s13LlkTAtz$FJ zH>MjPAIGH9dI?Uj?qBJR L9g;Kw{|WdLK5^4k literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b23000026/ethereum__contracts__23000026_to_23000026.parquet b/pkg/processor/cryo/testdata/b23000026/ethereum__contracts__23000026_to_23000026.parquet new file mode 100644 index 0000000000000000000000000000000000000000..a4eef9b4b38bf77278f0aaa7260454cf1d8060aa GIT binary patch literal 16956 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 VaP7Lx4&;na`o~^fq^sQH{tr*nj++1g literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b23000026/ethereum__erc721_transfers__23000026_to_23000026.parquet b/pkg/processor/cryo/testdata/b23000026/ethereum__erc721_transfers__23000026_to_23000026.parquet new file mode 100644 index 0000000000000000000000000000000000000000..ca211e1833105a1f2724160905a292c1d7fae30c GIT binary patch literal 7949 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 CC_U5w literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b23000026/ethereum__four_byte_counts__23000026_to_23000026.parquet b/pkg/processor/cryo/testdata/b23000026/ethereum__four_byte_counts__23000026_to_23000026.parquet new file mode 100644 index 0000000000000000000000000000000000000000..7413d4490bf1777c5f0b683866cb2080e998f4ad GIT binary patch literal 23471 zcmeI4dzf5xndg7!Qn&8v?&|8UPIuBtDz_#yAm@HT!0G@YV1Onh5Ky7dm2hv;fk6hD zN{ARBYK$lt7;O+8b_X>wjG{8yL0}LO0wT+*!!(x}8J1;>bYvNq8TWHKfb6LA%sjLE zJpQo_Z>PHI)H%P)d-=ZK_dREHWQ|@^YsFgI>Y7{=LNtClbGB5=*KU<-pO-&a+umIh z*{@3NvwYk==!oTNc0~W|Z;t=8{OdoEpZ94DrX~;AB3~KkFNYUi5?yf4#g|wQq|7Kfl8!Iq1y9BLY|9XO%2?>!A1yPY4l1BUNITMj zbRu0y1?fhrNDtDBWJ}wJ%t88*0c0*R4;e(}BMXp)NF7;(EJ2nc%a9@DAY?gmFfxoB zf*gt*hP($k9MKRRF%T265F2q34>gNz{&5+ezcBIhC-kn@o9k*koakv~D2$Yx{XkC`7Cl1ax?NdWEXNP@~6loay#-Ry*Smmn7y?c-<|D zBdXONKIxT2Uk&Nw$T>(qG9ZcSTuJoILk1;r+580y>x&jIk;FeNT{d*k@`HyDIrPv& z4|~tyk~l@v4O0@O9*dFKj^ntJSnm0fSaHOA-+QDa`j6riM@ypjeUez!7+G-)Zyn23 zkCVi3I zXGr3p^=C@rduN^Xfe(K0gC9EkoO8xllOPDfD2gRlb4 z=oaJ}&b;-b*M4l9B=QGecfBO68*bRn=O1TApOA$1$xrT(#KuqU-1+GnKl54Mzey6u z-Tb*-w@9KT-OA6O^7HxZ=L>nbezaBt<*`v)L1F@>1i6KZk)KG9l5ThIlh%dx*d3N8XKV#X^CZ| zapLjI)#A`gLQgl0z)E#3ay-L!vvY)oYkQ&Lup6;&a1qmWEK~E$#0lak@eL=vC zk*%3=YzAKFBu3&TdgvzUN-?833{tbwz;I0?^7TYx&Zh6Xx)H@%pjoaLxUm`fNo<8~ z6!2D@hE`w)wv*a{`=n?UeZ$o(J+dRy(gLpSXsk$}FP45;bD}6n9EM@1S{Sj$wwc%r zMGFnhO_`4wnM}k_eao?#Zfr(t#lD3;7cz`Abo_`xn_*%Gx@H-gZrOgeHnExbk!8n@ zW(G$5qWzxPj#vMg&8hfm3peMTFr>Sm6ftT$m zQwlhV;|5mXve*HWPT0EG)UDXz%3fj{Mwpsm7>8WMv7(R>#!M(qeA~&+k+?B>5ZEco z5oxaFumph_xQq-9vBM;aoX9m&l#uUeQRLYM8xh)}XBkNlGL`vp>bdAyqD8(Lp%bAO zYcZet{?d!!%*1dB=+6J@lhK))$V%jp{;w7$p+hYm?lA#a)Hoi%dz>;L`xX3 zWqP*xvb0Y(P!cRLwt^T%k6jO4#-3bM)(`B2(J(v1Pi$O^8Jo5iI=Y8N1eWESeECV% z6VGkBp>MiAp2>(j4ZTaS9o|Q46aL0)#STV<`k^%FE`G@|BFjV1qnD-qhimMO9qD=; z;L1FPl-jPYq2MWwEC}5gCxlBx5p>keGD0gglh|c|Rv24nGZEM4Fx_MA4INLFy1vGm zV+OGmv%kLQg{(k=9X&beSdCdQGmY>(j+wT&r$5Mnzm^eF+NS_ zg_c?Ys%nM4W8x^o&^TL~;TvI+coth{<2s@^vYD6{p|J*&a(z$7bFsLVZE3jNC`vG+ z1ZQB{p<@_EuGN*|D^r&XX{P7s7^@b?ju$zB8T*!hotR3jAc?GqONHU{>H~pinhEnG zWX*;VGeB2U)KkN8_=)Mdx@lwaj+GDvG&{0gLk~ih0hO`{Is~HF&;l0Ab4(1X&{|~r znoeB8!{90n%_gqcE+!kI-#R1WOrh^ZmTo063LN}{a=*h$v8{0wI6fZd;D}Skx=knw zY|BD5xSor(*jA`vN>OUC_8vACMShHrO(NHJFv@kZc&;F`pDq^bTk(ncmWshbw#Njq=tpj_>9a~Qm)39RGOXIVp)&NTzF=;==S0}c~)Y)-^h=jek_zGNxPh`+<%FU=T zZh#r#&p{Y5gY-2`Zb>dnV-PVDHZx>v2a1@lw@03i!yvRw!}D|u$f)N=ad@tlh>CTC zvJD69$?y^uZE3KQJ>Fd7jq7PBx1&jw*>;hA~)J{$>G}tZkslxXiLY86Jj;@>5 zDy21t@ds%TnRd#m#fcMzfDmF$sHd972ad_S?30z5JONY(Mw+Q@x~2{u0!Rdmp@7<$ zVXW(%In`Niu4`HDE$U2P8USL5Z3%&a9kEjk-by^2Z~!)rFcshMFPB@L7T8B;vs2F| z=DC^&w!)Qb5pmsoud=_(0EZAr6AVJf2ZM2l!x*%~Nwa`Fb9ltEvn&={Z-fz6V|ihm zMp=*reYq|m$aG8%k8NV0wquwe6c!nC(G%mlxfu<$FfF`~M+m@eJ2)Ui_i@ZDDxM1z zV_^G$9(D@k$d!CTsEf1I@XFqTwpK6u$QpULf+WT`0BwX(4KpP^S?F&RS=Z)TIR|CO zpJIm^E+z#}I>u3L)#PQVRR;eA;0g!)7i92+39{LK7DAsYh^NFTut$q0OEYTZ8>w%` zh9BxW9$vHEYdV4F_%55~hc2$m@KW|iO8}NwY>>EGKp@0S6Ng=Y zT<&qk)Uhy)3_Wfst+H^zBqG#m&%TP(eObD7ZbQk|h)G{=KeK#E!WC@&(!NCCmFx1%#2cM{8T2&|3El(#z z0e67bk#B*LQ5tp(AB)@j^R}7x)I?`I)*P?t#zcA3O~KE4>W`@{6_3YG8Bv7oYQByS z3x83lIJ@#Qy#Qw1TMEL~8AYsPGN@Gocry$p3c64GrMm8as@Te58dhQfvQd9MVnvO> zJv;|q0bUpuI>A6OUX?kyBBLs& zJPeV&v|c9Y0-3z~3JuTk((^?tM=nWl#0(7(y-BblhE5b_3OWD+^qG2Tk^n@(;6!;Z z12ZmXw{VCcchre!qBCbgvW55Z0(?CvAO&snUtp$@1BlEbR+^;nOc z6eK#EI3!#;K__fbbL9U+VV?*BAY0-(J{y{NalZsI)Sr=CN=g(Un*#->I253S^_ljD z#|(egIny3lq@64b^w_nu(VpnMLKVYR-TL&km0lGwh`(v$(9{Q zM;2ZneJ~SXN@PSq8sb>;WRD&p9RslmgCJi6WUX;=HWEC^j*+@KIEqBqwzkg*!;O5h zU`!hf?gG&pL>B9l%4+S$zDbS@zV_Rcrh(@ps)t`J|JVsVa!DLOiqitW6e6aJ z##<3NQGyZ#KA$^lrB=nYK>mPwyt{)IYaU`G=0q)*~a9V9L8b|IaeZ}svfNQwj( z(+)9WP&J8`@8T24TCo_<8Iqd7ZQC}3@K+rZq}_l^S5_K2iO1E2)*vnckN{*z&`0tD zQhyVj^L*4c^!+$C0vHEEYN+on0LT1|-M#4*xxKN;A`*>Avo&&2FuMD)yqoB$0qH~6 z2;ShBkX^IPERS-XJ^{pzLfgMjZgnJX8u(sXEv*AZNCk2!?CG3uw4r&cl=v8JNhUq)uWp$W0@Cs5qH`piBezoSf37Y!_oF8kqAN z`Bt}&{sLiRqA-a&6HW|X`cY!V?4#{GuI^J@rjoE3WLHjrhbCIc`wxe&iO9-~3=1Y{ z0xWPeFCwoXu-Pu^Kt2fO^fL}7#9P22F?o{|Kg;<)q11itR%vD!oyNY1Iv$~(a$Djt54o^WI*EU8}X2eILlh z`1r2tIj?_C2+;5(=6`Nu&*G0O zXmb2?HOuHgm}~?YF76c~0VF~q3SI~Jha|L|27E}Q1T7J2=c*NZQG3PQQfT$C=_HtL zXzEdn`N9^3EWU3+lvoUcAaz#e4a3L;sbF+Ed#&9kSCSnauT@!ETsq_en33gymLR3W z$%2S+SZeN{ z`<`PzR8et9(1E};uw4|IoQiCc9MEySmvYnK7H|P%1QRpdX?2n{A_w)H#J;n3jP8Wa zE9ws5FQA$0Kb{8EltHF&%j7% z57#}v?NfmVrcKCohHK;4m!J4Slsm?>1Anlv1Egc}qq~Q6)notRGA3!JiG!no1%dBm zrNiKe(kNM~AH7z2(syybKK4#jw)R(u+&DM%8~b9JA{}IH{f%gKI3N?~Q}&;8=>`d} z2b%`#2wnDt?rX3q5UXalb%}rM{N-@QT!Gd-k{m3>4HJR~SOMaYK%qyNCa9kr1HK0D z2nfsIf0_ak+gl656kp+MR+jzhWR9$nPBvuWHDbs&OcD?Xw+)?{*hl8Xs{9>bK*mMV zppkzn0fkC4g<7|vX!jJtvB z;h=Bop2RXeI3v98vVk2$FOn_*;J2h!&L-x<^Ft7Lq3vounM(YR1$9B&lm-Qk!@yV# z=i|L~Gx%5;n#RIynBW_d*pyGntp2qXrAvz`craUvtB4~B_DS5;8($;xLmw2ERX8~sAQcDqbw16q(m%`?mkYffb=!;?Sv#XI;c2C zH1?hJ!}5#-lcYo8k^ocChzx&qse$v;7s|Uy(ET(Dq1&}j%oS(#*CV4>8Fd}-^Q$Da zZn(Vo0>BXqLqS3Cnk6f(C4^r#AId*O1#vP^(Tsq!feamZ1;>{Vk;q-a#Q0qx;nzDp zO}zkj6~m6_TJ3}h2pd!?KeTmOFWWTPsI$$Bc2Pf$0-F$S-{74CQuyv;A-w z1`4#m!lODFHw&61ctT?l_gTdVrv!4suaGsQ5eSs?=<*9}qZY9_2CJr%p0s+&;h=9Q zGr&0le}EP~F)H#&KPP=n^5OQGPJj$m zF5)qKnGHs9D3nkQAuO}BE5%+|D%bNV{lN)C$LJJi z)V%asrPXee`$H&3F*Ztc&WcOqHYrTdQ_7@IaDWNM(;FR)D6y@F`y)KDnOZmi{3cl{ zZi6uTUj|z$J~T2x5Ri|MfyBMUSu$^5o34fArRbk!5hNg(L4D9ao~`Dmve1{+a55gK zGp~WpyOnwveq0tka;we3^-*{u<%A!`^gx#w2V~7pf(JvKCf2D^qbMOgq6} zYft2M*g=E|Ko5LKX$kzD=|e`d#2MZE-{&q#w7F`l50@Q5NJ9jmI1oJGD+5=OP`)Ab z0ueP+_nww!3K{K=Qo?LgQgeOS9}0u;>(epe3q*=dW$fJ%wFZSN?c2SV2GmW-(7Ouz zOD;5)12aPb023!cf>0uDh>TnlToG8V=^wga{}SjJ%1@vYhuDR)#tYemG}I+9Apj#1 zA~qUthQ5RNNb?@*ZYd<{6jM+*stBaJ#GjD`JHQSWm@T$G*SWt8tB|G3lv8{FHCb1v za}*hgmp10Ms!*ULfmCrouCQ4sBf1MtCWJC+Hu6bzl#I&?uFXy2KS|H9Z$s`NSM=%~ zuXUj^#9II`JCi_`L~tWmzCm#_j>7lOC)#-S98^9S>N^!zZn|$)j)C`K`zN9KC^KZ` z-YW;i`)VyE(f2p z`5*6_f-l1CS!QUGRE*j>MZqU>73&LgM*;A0e4^AF@2b^x>*oGx00iWuO@xB6Fy2?h zeqeV4iwMh`8U6#=V$j~=>OH7#n!4m7u>(6aNL>`qiqGUq@V!)l0cqe#lsMH`6{-w) z2(rO6nNrasKb`++N|D4QNQSIh2D@Stb*Xkn_#5!I2^b^QNWlz%diXw4MXVTFk1Ptt z(aXw-E+z+KYMMLpV-~nN&|WHu@#6kPWU}CHz&@h}F!=C4(Bp&;7^;wM#cnc&mC_Hn z9u~N>G)9~zK>lt2{$(C64*Q_;25=z%A^P~Fn3hgPM7bQ=f!F{_rUbw?>$pY>T89c1 z%u#50ESQHQw<)$kpEGf4Bp`1c>%rn-IpM#oD+;3+RhT}W+epdNhanhKM{T|tUD4i> zjgVpju8pB58l-Bvyf9NGql>fL9-X9;fb~!T2+7yTU%@b1WDOQtC3YR(f?KB!nH3i^ z!XN-(_9{)v8*r$$*P&#QY3IT$h(Pzjv=Z^~jOoUOd#M1CK2TO?yR`)iW)@P2hMpvk z)G4)5awDR_g|eWq&8U=*M}nGgGBzAKf|RsIF^Kp=J&}l;^&@zIMhFt>!6Y#R0hnv| zhxwKaZ3EN}v(lZxCvg6KHS-Q>94`l%sh?D!=S;e-z1ul#VXGbL6qX)uW|>TdO*Qk)lK=9^?D{A;C@BqO*ZEJ58=ZPc*15bFct#P8N@qsm?_D@b(InOmntw+?4gj0&M#<8ime4^skj}IO0O)-GhXwqj z|CuF}(cR8`UGpBvjnbXqI)kOU8$RE2Dh?%aepHc-++N%veuS_>g5huNnTCm@XyH)5 zrH?3BGw{oH$Q>fK1Gx?Or5r*z54Z#12p;HcsrbDB*h<|Cs7xAw@0jd*O@?nW;j!6! zo2oH=77vOUCCh&e(lU5UnrGl#>}EG4f&ZaplUP$q0fiJH*U@Un**TEI>SS}gCTpN75{2*)t~YI!eZ8mMdl5zf^gUbvS~1x?|EkZi7X zYPCVBH+~>5lt7z(Oq{$90}2QZ|Z zoN5I)&CeQ-qQJhYy<#seyhuM$hGO77F#`RF?gp!wJRwjB^9S=pz;~t37F!ZMEe6E{3P>nW z;s!ep8l@1KB((+Tvj5)2OHE^6N2>$gIim$oPuv2{4KS^I5imnE`vy3V+MEdkPSp~x zNPvxl4rS7VEJYDen}4;Vc7=Auf3&Z#pL6`jI((A&|9A8L|88FK|E8O_{MLODm3MdZ zZU`ne9BAhK{DV^8onMuP?i|S4dH-O{fmY(}>uPuVt83TiYgoq%ZL@vE6fOYDe%dKE z!M;+jjyeToJ;BcG6k9+m6k|=Dm$(8t9>b8ASsF}ppw=mRG)X9(V!{LnQD^KF88=54 z=UTBv%i8nE7zV`z9+EORy_7g#9H}uVwvc(?~S3`0W{K>(_#zVBed$8E^qokmN+$r z#Y701MRqXGEAksWYWAK*5+7;b5cqkbyk<$Kkt%4`17d;zM;X)Zmo~*&_k_=SP|PI; z@;wND_&<|r!srnZOnaA@fI-dL311ZxAZRA#j!F}NF~VW!39=4~PTmUMA}m0tJ(;ab zMsBc-6ZE8!pLrH7q2y|M!r6cU5E99oEH3>eUYc??q8(j=n#ZREH%ALOj;X)~Tg-(- zmF^?|EO~-(NDQ$wc>**Br{ePs8U{!!f;KK;lDFzBg}6*+aB&;wg~Rhg>uOQg^aUcf zQ(j9-;oDd8NtWiM-qG@eMzIPCF%%Qf99f(5c0peWl>}NL*OH6TwcR$R`Eh9K_bL+`3c+N>Z6RS0I@h3Wtr4flBk<)Bhw{j-7&k?bVV(K7j=N1I9` zN3sU+$gZ9-N3oliu^$x8x+7aM&~V_73m6cx{ooOK0yTolu-OV&Tau(?F`Gw`f!yO& zQ8E69=#4l7Tp+~5Ty=uVFB!Lcr-0{yVa@Cc@I))Sy-}HcZt!JC47BZ6{cMQBXGTh;R@7o?rdz}5vMn(oaieQ2m+z;rY!hP1f6%=`^MyY-Tv*8J^zTjdFI4Y*f_-(paG= z?ywaVCEE#lWf?I2tn`eWpW`+I+NHc~ccDJQz{RF%7C{{i_7|R!hMCbKrjhka=zK_u zM;lgppS+IVVLkJM0lZ401z00YAs7^&y^c0IFWjq693U){&q@>YtWY-7zk!u!CGto^ z?Y|ffdlJ@^CoBDjspu@A^*yFOvaOu1M#?^!^8cWtc*(J3?z3xtL)?0Xw<;iCpe@Keq-RWh+BWK*H>+u<#f_N2kjf!a! zf5HUwhakbAf;&-ks4o~u)*i-;w16*QD|C>U3lyAZLhNG{%#D7vG?pivGA%3Ct|^az}~=dw;Zy{?VG{{Ysr64iE;jV3nndMC-+}*jPfD ztsy1~fPg>3eqlxlv-mr-g$~;kKTWv_qgk$!<3i0-@gbnu@ToDoN_ zA(cAX2NP_JzH8dluFcW%4jC1!F5#z0tlX#bS+FO+4G4aepwTG5S8ll6n>AgOSuAK9 ze42yT!#%?WKAOusqN!`ow@uLJOVQEnl`&x=P&6*qLA?dm$^y}o79Ll}7RVDRCF$G6 zI*J2Ex;~$U4;_DYz9VXZm+dql_b^yVgJ(VUlTg zwTK^du|=`{&vb_qU!8#Kf#0&C;Vx0p&uL#0a|Z?rOIy0VDbF3NODTWx1_rK$`(->b zw~855-nco5dk7q>2zH`5Ft8+Q(ZO?y@`%jM02Gm_|knSk1)DCOKC5ro;9^m-Ier;E?sP8T`Q)mQ1_rw5*H3AfTVLC%X& z&{2*0lcK-;_rkFqpLZm5U1!fplJJM0lWanHs6y+ zkty@1Hp>cSM8`kNO2M4wDxwsj8esi&$2wXDEbGlqY?9lZ+-iPZM7_qpwVTFQ8bm`N zRK{_TjZDhbEU&=9&`bjzg)Y*W0vKv4gm;>%{JUYmv%7LaG$y-601loI$8CBUBO7Am zG<|E2bxpvwPzZ?6lCxGUuzpKf3yYPwD7+2NNa6ig>N;+F3iRjMPilsAYc7^6@lhSU z&TLT2ZjKAHpi7EGi}W@Wo%T>G1?IhKo<6z#}oSb-6JR-!Tq zNo7~_jEDO%(_ICsBn;KXk5R{^zPGj$U(YQPzV(K*i99d6b!19f3vXrl&y;YpZu+I1 ze73X>eklrGEp)S2>V;A>;}x?X*rD&%YWLTE=l#}g89S8u*~IVX^?`3_*{$|}K=)qn z|MjoSC2qf#i~Wts=4Pc>UA}&5a`QEX%Hmc1+U6CxcJ)1D4^IZl$2u1r-7GE&)$6K5 zeYf^E#BpssN^w$5hTOU>oxWRp;{FGlbF^abwnfTECB@wE)NW}y|A|4Va`WD=U-Q>n z794%GC@qeQ-E)rHJ~*=T*dOd%wtAO0&{9wAJ@~Xc*M5D)^dq@L&%Ect=kCAlhlRt> z`EGNhJI%HCv_Bv&)yE!f?^nZz8&Z8r$gxoS8_n&TmD1`%m(P5^ywy~S@$%+SN2xd8 zSs(q2u^)9g$K637{S2uFFtzPX@C9L{3AcS`p`GJ zgGNri^5|EjJ%!^I^mOOf)<+wUFQ{BKdh`0dzc{|VuDn@kY@R-4K~MYDZ(gTO%FKUVa9 zZoSqN*XM5Nw>R!DuDK((bLiB$jme!~dcUf5*BfIa-OEPrSiNX+Sx>)OEY=&%rr4a@ z<T_iw}S5kaJ%h{Pw1opZ@vc7v7)$d!v}VMQk;!T zcii^Hzy9RH#wv$H{X25 zQCGdW{(<_k9rfYs?j3)vetJ(y`TSj1?WyKBA2LU~=Yi+rQ;}gSY+o!N=yPaqq+5+Vatp=NwtMuQ}4V_83{ca&hY)dp7KqS6no` z{MxZSU4@hKcO0>D?4<+hc-DTUD5T1v+LgWMJt>`dQ+4d8oAz}5*(poP&0k4dkC9KE zvnr?A%`Lgk`#P>TzBwh!Yo&61Z0Z3aFE3U^W%B$RB=xSocV684ZE?ZrU-`g!8~^*u zzdYob-Jzu3`R(cBvt#7q=w+{LS$J5!QomvHLPuIosay}KmV!X?Vf&b zHh8Tc*D#c?3^i}(nA+RCWohEPb1x1yUA8efKv+I=LEo0qq3=E-WqjrDb z@mPLD^fu~3*(Q3L4B)AS44^*B9}Us-Ohxogt`a@vgGIHQ!AFFgC?mmhK8rB_;zEIzZ;_G1WoiXd6Ca|Rrp5fOwlv;Fz4d3)1!RAoNhaaGw?8( zo^4l%%1OOEpG8tQe(RX%Ie3-m-mqZyp*5Us6JKaNEV`}v**nv`6E%2u1Mlu-L_0*~ zD~E|=*ik-OBzm%?5*#$OO4RFpHPPUSG`;!kt5UzHZ0ndkH0Il9+$p;E^kpABznsHw zmS*>;xlOK*wGU-)Z{ac)vXp5(garl5#0ZxenLXLI-E5bTdYbEn@&zv0tVliAbMW7B zu7G(+P^p9eh9@PdikA zrC(AzRcRnUx1yA!c>`jQFU((1nzvAuRHdV=l$BDxP6uIUKF=3uXgiJXZ~QNlq)Iavf9BYN<0Z>_^@1Fd5VTid|BM)ru+&iEe40sHpSA>(xqLDKRxi z$}6riPgUm%NzE%>Nh$e^Q)Pw3%z!xJy?I5=PTtDF?l5~<&Ra4>sM7}rJ|J8<5w{} zi6xe#GGpQ66Ha{pYULo_QSw!|5x%aTq;@m%#>rg%l>F$a!^6YMn!Ku(dH7C#SXCS1 zQo;Ch{mKoZRX$D4m)0u%YA#n*Sd4Y~)6Y=Uj`yjR?)jHVt$rytygsj-sfx0+w6mOF zsHnZ7EY6bD4}4I{f9ULm;v8j|$NGF*YW0?Ll{pK~l=9UvwKSXyLM2kAqeNbj^RWV& zOzMjIP0^xquH=+7Ki^>v`7;IUS(;CfKbO^Gg3^XgmUuw1)XmafwS3-$U6n~ZSqpDg}b7!vN=7UmR%B`2UW~QDB(_t&r!HX;1 zQckKKl#M}Baw=;etCt965o;!Os1)>-{J6T12Nf{_sVe#}m6nRuK^+~Jva@+fDRn9p ziT&J|L)#~$(y*dbSu<&VUYS2UU#;>&;*~NVt*rh+YIST{G$c!xEmST?Mg9mntf5|! zS3ayX&Ky=xIYDmCyR!R_73Hd>>POJQ`PHl0vxQZ(wj};UYUVd@Vg1y6=QTo6uL+bf zmAzFK{ZE-VG_K_PhjYWZ7sP8oUxoLX35w5)?lz$}$pR6xCNU8`6=V_8hqNI%B#W#CBny`K(4KCj9VsEb z$Rx5H=_m@~`GFri^6TZ=uJZ5p$dhj!)z9Op-ud}M^2pca$nMy1AvH%tU2Lt&Vh;{i zUnGR=i6&#_)e0W1rU<#&6s({MZmAEFYJoadh&uKxesQY`a8V~4{JH!7w(MZmpHy~; z@3-@ex+(t`Ji*NS%62h@haMLkTwz1Rm^{Y$8Z1tQBl|_3lkzjo35sHp2ji&~nFsG_ zqhbd~O$$Qs^neIBWKc*&vAB{EuBmx^7@$_n+Gk4`s=OPZDYrA5s#mZLeA zJz=oYl%}`}{*bp+Eiamz#Z;-T$UEwTLX2~!l|Eib+Rew_6j$9U8W*#cV;iLIv3ta5 zU5rmjT|6x<$Af&tm|Dr6{#R%Sp%!E@wDn}Udh+6{8Koc{~~|KCmKpDSf+@p@)8OU`5`Z@4II* z&@B%fc!1_x|J1|)c<{j6+4AuA>_Y&5^Y;IR=AwbDL+L--<@BzRzKaPP$Y`;*DYADR z@(#Ei=zk{`y!+#~7l)5052%IsJs-b)xdi1FHF=r* ze?CTZ+1%B4_0++j2R{4l2jji#fHGhHtzMgDVl~z)YT1XsNoe1GSLNN=P`Yf8>ojJs zlf8Gq-2TOz?xNk-|-mKzE_@%eDT#n;)A!)!x6B2H(l!e``$+oazs>|EO;l6Perh5EJ<_esgM< z{F|BlW&;mQ;ortc^xZRi##i>rwUuJ%je9xa+kWKV1*7^Nn?29nPsp{S#n3Ykzw12z zKKI=B((H*^2Tt_*qwhM=J397nb!>fGp30W%t0>aZqHq6p1(h5s_C5NbOsYRH*k2x5 zv*wgDj+lrxBo_t!+wzBJKUZqUjEsyNhm3fa^Y;~}W-s}B_O17ij7*Gh0RNska>yv3 z|Ir_1pPw)?a_(ElMf`j0aeO=yW#2jG)D`?a`{6~|5i7G_2TtZ@-@kJ9{Ij1Qf8e9+ z`lpVpIAMe@^6zok_4t{+&dA7U$d~-tclgCu&drYF`XeJ}8XGnQXHW+@WA>aQ{}<0c zJL)sJNiMuNJNK~@4C3&Uvx^=W+?mVa_`JNx0th@Y*e_SPRG zXJ%hzfwJ?hxH4Eje&OsVr(DTF-bD6#c2X;5mu5va01iGaJDz{nytUpZ&3E3wVq3oe^Jl=K3{ybkREgJ}}$zVoJmbU*qjN`& d68-tnOD+sHP7GW{eE9AE#pm)ujPj`N{|)kc2?GEC literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b23000026/ethereum__logs__23000026_to_23000026.parquet b/pkg/processor/cryo/testdata/b23000026/ethereum__logs__23000026_to_23000026.parquet new file mode 100644 index 0000000000000000000000000000000000000000..4db0d6cf632dce76086fc1bd30526bbcdfb10ace GIT binary patch literal 110130 zcmeF)dAM9C}0*%_z8WD%K9Z+c7Mq7*QXm{J#-p`vp-s5wgbMJHRbMAf4 z`QvW=h77f<)>`lT{(j%z_xF9@z2y<7#%m_lOs| zp1J0xYr%I33P_C&N?V zsqi#-Iy?i;glEFDVJnnSK@B5#E<6v;fRl5-#v2v;ry=U6jjIY^7 zG_!t5BYNN5+|s2>m-$-Wh*r)wq7^H`OIJ0b`PGeR&6-BEdTk>*XWhE>>o;sTpb?E{ z5A?Os*Fgs#vT&%c!wx^<$fGtLeax|q=M-ry{Fej}=1@PZe<@P%hLqTMfg z(KcV_oO8~L&wYuHeQ6^)|79=tb>4Ze@R_e{L}$M0Phb6-Kl6mPpWlcMxS$bjf32?z zFTC(|-ut49UjK%RFY&@RdQPoN-*nk!Z}zpr*X5UAe#J$v|38D;_-q}@s-hW28JqND6W93o5Z0!$me>|~F!CxG|=0A@AuTwDkqZs~!*8etBa8dra zFRTPp@P9b?&Ux+s8v*!W?-PRX0vrm5!QpTO90^Ck|41o?G79Izuz#j+pE&lu@_Ot1e*<5I+u?8F56Nkd-+u${fN#Q`5R%om;XCkM z_&fL>{5^ahegHp&AHiMlWB3W&4fnu5z)#^H;b-tqa4-BEegXdszl2}G8193;un7C$ z*YF$o7x-8BH~205JKPVyga3fv|E?8cK=`_^(GUZm1rs02{K;vY}g6|7(xjZ)G&hQfD{->fzes;e0Tx85M;sVMX(LdffvKMARR{1Ve~S1 zIh+S_Vk9R!A0!n@$za5cOKcEWq%eeiy`20j4S!Uy3)@L~7}d=##OkHKHS z$6*(I0zL`X!wv8$_%wV5ZiLUm=io2lCipA(JbVFm!x!OZxCL&7zlPi3OYmj*3j7Ux z6>f*Wg|ETaVGn!*?tpK?o$xLAHhc%Z3x5aSgTIIG!w=wx@FTbjehfc>yWt-A2ly%c zBm4~h3GRiT!!O{U;g|3$7{h(A7Zzb3{2G1({{sIC{|3K>e~0_wckmzZdkD$D0ZnMZ z1WZC3reGRoU>26Z94v)pupH)L1+0Wsuo~9DT383`VFMfh2f{`;2o8orU;z$=!{Bf@ z0*-{EU=th-$H1}h0C*rg2#$jXLkD8$LJtz?Lkbz>P{2drPvD{OFnBl|51Zi;Z~~kN zkAz3TN$_ZR44e#)g~!1u@OXFvJQ23Qli*Z14NiwM;K}e5cq%*%o(|7|GvS%=EO<6- zg#iqqgbHdH!E@lb@H{vRo)0g87sA=_BG?A!z>DErcnQ1|UIs6R^WYWmN_Z9gDZCn9 z1AhkF;e5CNUJDn(>);}IJ-h)fhD+d$a4EbAE`vA24!9hyfGgoDcnkbFycOOCZ-;ll zJK){6Y6nq*! z12@8F;dAhpa1;C$d>+04yWxv)Gu#5V!e7H}@Fn;%d#zsD0e8SR z;ZFD#d>g(4--W+}@4?^0_u&WdL--Ng1wV$Lz};{U`~&~M}VGXQ>b+8^bzyWX|Y=nd0U^oO8;7~XW4u>P)NH_{M!O?IG z919PC2f~BkICwC0AcijVAb~!lkU4!htJ@JYBHZh%k0r{ObjBYYM<2Y(4S z!C%4W;R~=Ez6dwNEpRLRHQWYYf-l2Y;BVloa69}hd=0)1d*B;z2YeImgm1yO;XCkM z_&fL>{5^ahegHIvBct|)^)oMc(R2P-TDW=h+B-KNb;G*-(n5IQA2ciK={-9eYu@*k z#vk<4z1a!!cjvrfl+{JAm-NzMHcazjuda(MOXFdYb%)(vUYGS~H0X5WPCu=ZdNjzp zy)-S;UNTDS;i!93v^O4&hNG;ivthr?vZRw1NnOVML0*lj?l3Jobg8H?2m4K{_17SzHbW zNuGC${wOK(YT)H{c~Z1H?<9GhWyPqMm7j_B9$I8+Ris7L&q^OShUKxNv?yJ4Z&>#RaVP0^;-p`M zXH)g+qD=Z#+UX6t)g94&>w2ATKI~K;Vjt3j{V$-3pJb5b;(9~5;bA9V9L?I&^1lk0njW=MZnmt|UJ-H}P?dpc#A_qzsS*dOLe zw;l}L%0bmA&&;#BQx?6_oEYX+r!w_?TUyus*yy;RZm;Xjzoi&9w>rJrpqdK3GB&8I zM{(sN`u+YOE{b^28+xwwps4Dk@K|yWw0Mlik@ZIATam^^-R)NcH(TXN$M{`pZuR={ zu<8{SSe{g+PfI$z;b_z^%HC*L8oq%MjXPD*>r~kw9i>HHq)DE+-J&dpE~90T>#E4= zv@mV@RXpt6(Hb|ZQQEECbjO6Nhr`hiqrFo`tQ>fTBeS>H?{`gQj**n6)s7hYeTL-m*9J zCPm!O2Gy`1=Vi|T_xr<9Jt#*$U|1M(Ykt@>OI&c$%lo~18++rfNn#~d$)GaPt1LH{ zt*6YCEe8GC)wsKEQTK(GUe)V&hH0Ez5rZTtdcOG%&vP&^sfR@`D@3MlnRm>)+S>8= zW^L`yqE?k!M5dofWA2JeX}3&r^Sr#bvG2hhW799=xEcs$xl0=Lv$$h|j|8&8FslS1 zA<;yLO}C^wOh&!B%3NSFtdeKBk*x5tIQQ(ku}C$_ijHS)8B|GSe2Y9EdIGhTmn7w= zN{w43N_IN2zaA!uQ9Wo>$7Ng$1vH_u(=P;uYM3Tf-OW4s$ZZ+2EGaCor2FyK-iCN( z)(rDPWb6tJCq>)Rkw6qzbB!%YRg~$oCifmB5N4xJ9E$|z(jd0bGxN9ZbUMSn&}s>$ zl_^>GQ>$cGl@EHEakuQ(Pc9xh5bp=0de{@6%PR9U`@L?r64PS8>5P(rshSLnv?ovw zhuvp27JbLCuJgpu^@WbID*J9MFU{Dlo63qj7P&m!q@Q$z+_J1KqgpWN^@nM<+npRQ zABmNt%m;OPc^X@+ovKRnG9C1)A}KD8cGtXdJLviBI!s(Rkt(nu=2ELK~0Sh?G>F^UJ_x1 z%5JAGukOpbxSH+bi4gDj(f>X&G9T3Tg96h3u7yQyl>@zhY**+BkYfxm8$K<|V!) zgLSMBsUfKF#P|VNSf|Lu1C+Cu4)V0f3|cYFM2&7f zGCrLer?XfFb=DckK~_ke8uhO?SEYBhwhl*SH?FGIcrNZ0Wjt`prlj@NlPNPRx6YFK zy6L^sd18ikkez;2NpM3mqH96k5pAtIb=fJu+uV1gDJjAa5xH)h32hQax6?K5y);AW zFxd(P9mqYy*jS{(QT(jNcx76}Ngm4%m2fxHoUhX zr5FF&n$J&eE*{aXM*giMsfxuG4<=R1hr_h02P1=3$~OIS*zI>KT&|Y6x*wSxuN?Ix zxLQ!EaKyOEWjZNN+{C;+y{vQpS_ydIin!i$JG=oUqqTS*3EIJE_V>gV^iH|J?S zIx8Aa*4CmCiThn-xF^m_KkscXPQ`LB;x@`hb&bQJuM%V)ctGaO69EnBH5~-v*d5De ziRhCLM%Y@Jj}TS=8}vqHihqS*KN?AD0^x_I?pvbdaaGo8SI{=U`*9Ul=?DqCZOL7= zZ>-~<={ZWv;v4O~(O`h9)LB{>k2tPv&JMrS-+xWDxBrQ3c_+*V!43Cq^BKtn3XlHP>y6v$vypHua}RIt06k}+u6lK@@`tEqgW{?yB0>Q-yO!4Dx9iMI-FewjQ(UMxHb=-Nu>|)f-%0m5T zWnrHga(dsq$d1IDBGLl-+wqQqml)p}Sts4&+tKkeduIl+vD(5rA>4zw9OVOnFz#Db ztI*G6lzD_%UdtCrX_evv9)C}Hh*}o6Hn(?09yxLN#wFiOhq*G!0vrh%-)@hmN;ho6 zCZ%$qR!9sA|DK-S7|&-3(u>cEuBl1b$?+7lO;L%>*43GF_>GP{cznIul^*lt`K!w=}Wmv0FU19L@R|lUR zX5GOHCihfB1DEtd5s{^9BmA-y2;|G9bv7Cld2Nn)x*kPOh#z$frm+0suh(G80I6i$Jwa_m_0suFb$-kzb2Mq3WCwk_k1;OBkZRNY4rEqaCN zsPg32p|S;z~yFrDYG;kb^tu(kpDk-$8f`V%P_AR! z;}wNTjKNhhp}N&A*ImCY$~vixWk0=mVs9&RGqnLxT%-eGR>W@Zdoa18RFrfBo2o~( z)SPzm60Me8`k5)A9Kwr>AVCa83=)dl@2PM@$$MFAq3FD;v3RU`ZIOxm#F4V=T8cW$ zOSvTxt}*glWh>#E?rPP3sL7J9NL}~k+2(LCGIJ2VT0BnjvV7U(cv`NmYBd#Fo9C69 zPfRVkgIBItjQl4>6JyK=7wNuodb~FGjwSsg@0-KMq3Wi{m3AuoAtlpetaR6A@+7JyrGGMvUqA5y zI)$Y^=tS+W(%A=};An(sexcE0zU z_IQ<1Qy^u-UR+kzAhl!Y=@p4WKXDN<#T!CQ8s= zud=Gu)oK#460bCivr+x+74z|HR?MfLY`tGWB81klLUnq)JjZj$FC8q!4D=jSJsxQ% zHY@7<&e?G*8+lV&Tjj6BO$GJMGYds_b!*jN_w*j?P2Gv1N}t`=O^sJ5-hyIe5)&0r zb`-1Z=4q*3Px^B7H=0|DB2W8=EuZK#gBFFbU^nHk=dF}73J?yhGbiuD+GSRiu#4(u zr%&v3e+r;Ht@{(JPmI%HYAsJ=h$ao$ubU8U2!!SsdF6)Lt#S+cew3W2$`|x|=qWwL zMGOYVuf}mopTEp;4j1^BFQY<1T=xjy$v7qoM z$|^Cf?(dq2ZkoIXjdERhbEnxFw+2X2Ec}z;^4dravkx`)1PV_JQIx6_zPobYR6(fi zDp%FT2pCDTMx%Po*0yYr<>KSw@}1UIPO%XD&R@4f`cQY^D4%VNC;QSKm05+G5BpiC zK-Q}lPEA}fv%5opwcM?=Zu(Cv7kYzFEg=#l7JU!JP{$!Tauep6_6GxjIE_!6ehD>h z*efbCcq4vPqtHX*smyQbk4hA(Fpsczi@%nli!3j)GQP99&`DOzU8p2Yy}CMe<$X)V z7Goj=XG9CnES4|SqSTwT_u$FJ9*3RWya+yQc0&-YhT^6bbGm#_n+0&)^fBho&I*KnQgOh_@mY z!=W(M5`yv#F%>njvLDS|Nv+PT=DPojiSZIap5kEY)aIVxXe_ZY8f*Q9nen9h#vO}> zgI*!>qv%EYl-B$FYWS7$-N&@X2PeW|8k9kVPVOS2NV}e5DJr2Z!irTnDv?0%6F2WR zjGfZpbUn2g!ym6!2T?GH+!QbTLuM~zn6kj&69m>|?A+Ymis;0n`bF(Kab1MR_oNcU zwG-Qtm?YGVpS1q4xO(>VxS5GR^dd`FB&97@Z*9=`s=4WXk-JyPBt&*k znZPVbMg7Lb-l>O!-V$|tNs>>rcUAqArkD@N)VhX$xqduNF+q~t zxZpDsi@W_&R>}WrY73F3PLEv`6>}%XWc|-iHvVq;cu8OBS`e%&>q}k?Z3(r(h>&qv zYiA*@(-4K}t#g~px}W@TZ7GWOM#(8NyTv?3nk66S`9B{po)G`ap4=^)l!}Q`BrP`V zosBy~Wtq8?BqBU%5@DiVnHm%{!%~h(JovtIs`90uk4%p>=EXrD>?YwbvM}JV7yei{$EsT_kSP(Hi;2=}B zHXL4e?re?M3brL7QxPmkQz!76t{_m8{bfzus?&?}Z#NdFf?R7pQAD+3vVwG>p+uM6 zK2(DwS+BVNzJdsC`Ew2bYi#%J^E9r9xzZM3F3$=sdAn>KW?ex$mk{v z{kSLlr^$+qJ0$J|+o_WCm+qTW6o-0|kY3=DijHCIRp@v=nqNO&Nr6)X(eL$?h$$wM zxrZW3UoP7~oHVgT!I2DpJF!#jQk_^^-FufPmGbGi`<5GWxsHVI$<|8!Qe|(|b+xss za=7F`kv_kCjVU|0VD*!P(O!1X@)PM6{qrV~gMsD%{Ugal%vdQ|ynpo`Vg+GILR6(E z$FEm3WrN>O%qPdJ--3Hq)kI@;wQJRQGA4%CneWlA+?(Pex%wY21Ad#Q^rTOT3 z_0_Wc*7+Mup3x{nq{;rXSV%L7UKi1 z)J77~)yel#v}-LNIZLOiwB&Km9wvh)k7QhgmSCjPv5x3MN&u2o9$G<}Nl$X?^*%qj zHNhzdowYO3)l=i;3Nf4$(RJ0*Z9#ybuL`~tl416%*?UOy;-Q!=Atm|l>8+BS?DFfi z`;N>78BSTwG#p}!E3Z35xzUr` ziz`(lRj5o&Dtfu>LO~v?HPl`RK&MO|+aAvtc8gp2tA!N$LZRRt=mUSPxt+L8gX`yC zYKE}B@t_cbsZEqR=|X54-M?`U@g8y35jEPK4;{F8h#n$+Obrz4lIWI52gBIPBNHGg zl4-Y4TBkuxRZ}Xb*3j|wRJ4MmtI$f$F)jtZRv!8;3R6C_E~e0_FB`k9U6CB!>2uZWV+iga*>)|8Ho^zfbqbKaUj0d`6~ zYHBq@^6dHXDpSfETaLaHvG?C(q@7gK#x(rU>dv0VThPXS(0q zM40LwqXI-$mDVHQ6*3GPB{P<{l+so>nqC29r-sj^~I7 zE=f(J?9b$}#2lsmnO6C6t8U9QaSa?|Rm7j(xM&2suCu3j(ltSpB=)2$f0Gf^LzNha z8H(y&rT1Bn5ZQrwtt_FYrK7DAJ1}6u$6cSiKlK zoZg8v;gA&F!Sm-^-=+#;qW>~&t(Je<98Y?Tn5|kun-|NH{)lfI1KXRO+*)G^MfKU` z-q2h0E;`^)-SOsp=kW(_Mf@o~Yv;BQrf7e&<0+l_#3XhLZnX3iQIo8`|FF~5eU{eb zI6|lgIzNc8kV&RmGH#l)w10wzo*3$oRj*h(ZV3$i+G^HYPbHCk9YUaz>- zfbOVpJxUbH3P^|-XtpP;avcO+rygAuZPQ=tp?=R^vzgM+Ibv#6+HCDoZWgH+iy&OM zVMme66cpUipKRD-s>Hqbw0Dja8}!gLi9dD7E$+a~vciHu-yBcicNwQ!rY5;lykifnNIn!|_nbxX%n)D0hxU72kCAf9N9WW^ax zGy3@aHhnWuH-7JYbn3x_bs{PcsiP~NM~!w$TDfJJMLXI22Vw^C#i5~K)3TZx2Ab$b->R2z+*gL&fmiC@nM z`SOq+3i2-xWQx>O{vKSnbQfEJ_CM)qSj{fkqdP{|l-~ua;_QukM12KwIwZDa$;ak5 zYnoMiC!^0DvN}I{L-d;^JGCYBLQu*0%J#UW%Pr2(K(vH0^In{Oaml`EwAHgty(X2* zbdmdVc$KYh$OF~Jwc7>jgap!g{@TTjTpXckpKFv8i?dXRl9h(ADFxH1HI}6tt_Mw@ zy-UY)at8s&A{r=s`)UMBI}{*loA<2QLvfH9@HU(*o0)Ny&^m{+e}Lv`B{8F@g2!_NFvBEX4bH7@wq`VN4yv*h_!8vDIvCuhc1$S@E^i zN~7|&BYoK5vwAw%`{+w+7ndTyT4t(=Qh#V@c8TPiIv7qldRdbiUCgf9rry=hC~j<7 zX39`+PJqTdieREBX@b9MN3-pFcq2kqCt{fp@s{PAJ(2nw5y7H&+J^Cr&a?VR_GaTy zGm15oFiqjJj#!)|u1ei{-kElWDlSx(>l<5WQ~mT<5tBLNV{5JB(QQ-XhW>n)8q8K< z7S!2b;)pFeJ9YiE0|{Y8amW$9?i1$5ONoe~$V`VyNmGw;qwgCfchUW#RpS+$DLsOw zHjoG*<9LvjQKbl$l5@(%XKyIN~Z^Sy^0 zyWid@S2GPM?&J`3E_nEK3^0X^si#o)?KfVO-Q%LY8+7&X5fv&Y1Y$^)5NVZa8dAY; zh+nd9ug*SY{qT-yfM9?GAZnn(j?7wjFumY{Ql8x`TTS~L35SX^9a4`W>W zy8#2l7Q zU>Z|+YwxK}l>MGuAiD$s4vO%$R2Aw1C0hl=+$Z-?Vum!-(Bz<;YMKQa**`8?Trbmc zB81)!!<+Ij7)NSN6|O(B6J?;o7uf0C=%w@m7o;Iii6f}00n2`9UXyHMy?Cryo2ANb zZ|vQ`S%l`3V=-x6C`!8)Bn4!@m5V=OsH?*=F}TFrGSp~;@nB%lsyB+5JJGQwJm?ot zH59mvMd76gC^jt>vUkyu6y?T@E2uj{ z-R(IAZ-pB0_Qt;T`+G!eOhFE$fQLRB**G-V6tRjTso6B@|5VpCRER`0{5BXM7<7yN zu@PfJH*UU`RhJku%Fc{-c*sGaOv?%LFp%(4&1?eGOU*XpCt)Gk!_|$&^&|nMXrP3e z-{yzms1RGjOaWtbVk~tN`CUydxSG+`wHwrdtK`7LDP8o|==#(H)8nV-^|v)tK$Yg4 z_8eUx_-pwJtSWlqFut(yJ~|>t3`$sE60PmnERS?2BNRqtyaR&>II zV%*C0n#~2ZA|HWi#rEo3G}$;Iuncri^?zI>A+tqUrvzZ45%TAT&|DLlN|9r`w?siz zxvTj|OS0RD7U?8fi3X%FADBCI^%IXS<@_rj+G>9$T3i;WB5e{w)pbzml3Y^+M zNAG{9o^4N$m{^G8o9&k3+we;LHP#5~!Ej&8)ENb3zJ~lJz=NR zbq^z=T}4SIpy@{WXgY?-gIKHPd&)9?Lb7cyf6athM(Gs7%qETgKwbNyPtf&)Z&S+z zugA+hm%ST2jjlc(d#ci3nPF`y^u0=F%7;*+DOCn)TVru95P9OPWlE1VZkpaiB4Tjd zKYZdeYJaB)7s@_sU6;fvv)<%!x4K%PMbGEuhJ-sU^Lm-vPxvqBx0?64P*v+7bN}$t z=-H~Pb(@={-i;1w?pvaO z;&91_`;9mH?uLr)WsZ%~Ne{pFNsPV1Hk*hL!|cGJ(`P#kyZVE4VRGCqzRfT`Bi2du~eGrDdl*v#Vj#kYEbisvcb^JoIvSjEYlfeCkmc1 z&eUG4dvd+?Zsu9n<_Ci zjmy-92sTQE6;C{|PNLI5Ml=zmby^&wChRc7M7LT72;M56Kw?M z6LvgNQF}}52x3glgF${9KA;(F10u+E6Hzl-Nb?U*>5xh%1tUGe68El|Ao~$E#4$G-tsS-=sl);-Gj^NxIBO z7TmsdBsXn%A2y&pd(z!1RL?1OPkG7k>aA37pKRLr-n4CNU3+)1t(c^R%+dX7<4Vh2 z)=*(hna!w(wwuWoD$eFWyLdm_av zGD!X9?9h|rzSqO)*ytiE=iPlRxh&JeBI*aaC!n)srIrJ~j^v`%Pb}4!d3tN&OoymwkxEAPxv(UXY_KUB9M?tKop?WPhAevW z!-ux)i(OpJ*B}FnRK!Hjz_$g>TK6$H*HACBI;0miEW1dw8gL9WM;8F`3e7A!GO>xL z#?^O57dFRhcps@s!830ZsYe9ok(tiM&SWL~2VQ$b)cW4UcsU!apvy-|F_po2p-^7m z?#6`3&$Lfu`zZ|2JQ_g0({VE+4YUx0eNr%dQPqb(ZAX){EsJ)gs7NbjIIydLdQWa= zp<*tV^Ci7vIJ$KD@O-$ebzf8ShADtnX#NZMW%j+sVpBU;Byo3I6v5CXVI0~YET36O z`xi~>CQ1*;SF0Pr6ZGS`#T7Z0tsSXM57KJrCX#1N$xHxX#u^2Z z8QS8Anq^l8f2$t5$w@krak;!5F}(9GCo`w=Zh&knOhl9?{J zLrtddP0aV+(l(8Fy^>%h_AXL7FOw-WD)rsZicSn}(chZrZp%}4V?i_z%?rVpr!Ckk zNneBPim4#Wnw8U>z|?ddBCTBaMRqdZ2ctJl-eL;}THe>1PwOL=EUst#2%T}REIGpd z02hmWvs?Rq<|O-iv~hcA<2YhL6>?Y~Y#ZSYe_-oAPH*}x3QTWg3FvkXkD5BKtp_Gn0ab3usX6z5yV{P0oLjG)HkRF$`& z!S=4OOvWLcdop|ugd}65z+oC;7(wC9A+az<$!!zK;@^h2Wjb<~^O+b?oIrvkZ;FL@ zoSt!TLAatvPNQe0u9&ZiF>(3gc-1OzugXK8kqMHLMH-*FWV}lKCM#!{F`C7h;q`L8 z0xJl2LPVCGH@m93G1|8-ahWbV5e~G$Wgk8-`g5Tr5xVrKDW6MyrU`0|3n27vaaHF$ z@hq&cf`+XB$YrcQZ54OWxb?O%Nt~QtWGhWjeP!c-Vep6OvTED%t=aIgy75I6!vjF5 zE$_!QiDOa}A>6`KOeziDy!`MOXWk{KvCDCT)!i31cK3CFg1Q`bS}mEnfG+uD-KyqN5-^)XmvME2Glt1kR%Dz|&2fok#W!acx`Wp(xgPQB$X$jnO(%ES zKFCp{elLs0&a`hf%k^n>{Ics=O8C%B*|H}pOotx3rXsfv<6ciP^kH)D@0Q-cS%qa$ z^NW6@;!DdUyOzS*$TMOA^|>gTKMbjI}UioEl-$%V2$r(sW7_Rv=IsG0E$&cthE_J%!t zrfz6(iDc=)(P^khG2GVJrlLhzi^EqeF2zG-1I;-40GV5W@Q#`H2f`D2TuFMv%y^~Rk>te47Cc5) z9uor5z%v)wTxpVDH@Ui;o%@8|i!E%{L^7P3j&`p8hUnp{e1}jvJZ5@ges+sQG|2B; zI&RYyc=xpexc)^9jbq{TzE!7%4GD$PCqnu(1GyD>?e$N;ux#IifNy$`vP1y%7XdHM zYO#^^zTO^BP+j7%B?rksdxX|BKeTbBn$m(K`5fIG&)JtU5-5D0W)_8q5Twar5c>`O zAFSLr;ayR6^WV+kuxMxa|&F~!AGpPQG4nGCZiJ?J9LtJ41Cq-Ut60QIp72c42k zcurnLMr^*2ScAP>n-v(DV=8Ln}>|5#a*tZ32V})kd$ITspNI*|R^; zOesgBZ!{OD(G|8I#jjR(YC(~C7+K4oO)Ydr*RQkrX36r;z`IWRbS!F2== zc5jVJOvvt3cN{iinb=`lHjz`J-@l)#?)@~{rqCA3(vwy*X1ukvlfT@B%JBVLm%KJO z{YWR(35_j+^dNh}3{OMxvWdm%K*uQv77hNVVKAWAON-{$tUZC`Vyn}-#u36cGE-A6 z`|+vwYqP4h$TP_4PB&?hg$-t(TK4N{K1v1cerum-5KJEub~#d4Mwv%N#0w^6CH#t6Xn}h>nDuOv6AsmlT zJh&Mu0wZLDTTqvKofk)2wJVJ0E7yKg$CtU>3a6tDZfot`py&$*Bcawl55`Q}@A*hb zE*;e>_YW&nFhh*gBMtlXe1I?#+@xfZCoNr^;DZcDDDce)*r=dQV{dESKFsquqD)Eicxa}dJ(;{vzy#-^CI%OCyx!YbI!V_jmSL;>+u1R2x zkO~5EQ~!3#RTEoizm|c_KBnb|3{N0!|P9JGpD`?B-5?&^>Enb+LAOZBGARiaeqK zvat7~dC~n%Mr9-3klfY^Hj{U(R2r+dF!iC%KIy*v!i?r!=l<5|+{nG*?n#R+{r==O zy#s1b`rGA;Z8SZY1T8u=C~Tp@ga^cca>MGof)Yv>A+QIR#~UX1Mcf7U`p7A^8c-g_ zbK@1-YXc>f=A`}NU9Jl6WL}z3eEC$?m#<}o2xWWQ@bciHS1B>nwm1g4qCY=-=&*dw z)VVxScw4-zwMXfR@=~k~$>{P!wg>y1eZ=Mcv+oa^j+KvQ;zn|7@!iy zZXhn>SQ1G(Q`?0d9gupsaXOlv@2H*DtToX345 z%Iv`i+X{Kglsg2T0f}InV@bkJob@Xgmon5#4*pfuE=1@fil?Rk@v`@tiRgU$6*|Q; znmgFlwf2;D*RSDu4(D9x#Px^ECswatsHzJ$F0RxB2(3k}W z3*X0_)raPnOsA~8eA!-+f>oY^VgyA67C*mK-#=`;f`;LfZ04mp%Zc;=Tgpu{vztOS zs19i`HT6|u!T&4+t{G2y<|^fImP6RXH42CG3~pa@2D@MtUlMHzB3SYEgXW7X4%s*D zNC?%YiG@@#8uD&hSe@*V(^{kK#J1wv8;J1fP;sXHYKr5E%o6JQNPn&Ro(^60keTg_ z|G@}fK793NUex-XlebFbYB6L8F$Zm{CUAjSXPgm{`FdW*=PqsbUKniD8p@Sp???b`9gXed{zbbnji{ zh$EMRh*6R{%}VQl!p56m-Sp0DZ>IpE8FBXqQ;T!Kd0+wwbm7b#^TpOyJsTJQ1ESBaMBhy#`>4brk()-P{gqBEJ9JR|X8Cy5A3g9PSDNOALsGQX^xoBd zyAC@dt8Z_-S0hrO@TT2-*|=f%0tYO;T?-XEEiY`Gh}XtvMt3Q9D0EIvpfGj%uUd;n zIGMqS*tSSu(b@X@gC>5s@-7iVuG2M_+v4K8E6)*7LWB3S6Ib&3afrK`-IMH{IJ+54 zen2)9q{$E0m^JRVd6l3ZPFCpmZkYK*s2f6p5Hhzd-)hSq5&5tUw@Og**l0e&gmw?rT(!0n6VB~u#=!DFPfj&*xn(dQHM~C9~{1uD*`_;Ba_c9 zXnyn`w_+i$p4e_~3Hx-l6qqV(9--2CGFbTH+~!~m-Z;CNG!vgR+e#;+BR1-NRM`U$ zkRbC9uMOv9T(Im`u3yQHBa)(W_4@6onC)wb*r7VKq0eFaJW{XhG?a7_5mt}-!sdN# z{e2sDhT3pMUTp*}nQnH@tg9!N4DyYKXCtLiQJ*?---N4E1xe7@DlaZOMt%C!Ru#7i z^uY~HUEKMh+@aqg0aLoe`BJhVshY#YwtzDJ?fj`>GZk;azI7s&wqn>w?h_>hL*=_2 zUctX^jRt=WKkJ{bicUU!yKb^#BCqaWwK&Zb7)m#@-QfrnZsIZJwX7x`Ekdj3&@=+t zD_9rhQG@c7C7X%ErsaS)N^&zL(gG`{6J zn?pQ>t9eotlW#g|u`N?jGlQWZoFO2qI_j){W;CB)d^i)ZRK8_?zCLdK!YG~EwB5`y z39|H-)@p6r1sh$7R=&|5*U^V2He(mv&oA5NS#dPf*@1^=_2;IdbyLDVojM%dCGUo+ z>6cTB4P76tP<~7DB#pzW9IJ%`mn0t8$Ym!e8qM{qXe>{iex1$f1l56%wNqCp?BBCD zU(JL0_dkY8ei{xs(C3(s=16dxm zRH34RI5*?RVHG4c!YIU9gDgAIEcDED$+Z5wnrbSiyQ_njMi(tO7lGv@?C2o{@iv*} zVQ{HTi7#N_1UM6}s2?TKi7##DQHX4Vg9nOiy+EnDU%v&^qpzH)`1$g+I(>g8)z ztXSdtSFByPZuyFp%cIq+|I3eMIpBZ;4m@!E{-02B&_OE>KID*S#j1s9!E2-Chepfi zy=+bUu)_|IjyN(p>ZqqjzyAFxo2J^Ej-J}&XS8fO=IE)m|F(~X2OJ$e@PQAErrPcH zgN}R9gB}z`hd%hhod}C$0P&J&dd81wNvHcW8=@?C8fa0#L;SVx_>+e|%vbdAhx_C4 z8;(Cd+PvAhqmS71i1s5+I5B$UBOi6rNsoTa$&Wqxv70uv+mCzPDUWZrpYX&jPujHU z)KgD8{d5<5#wI_i;K}``Jmsn3v9!Z4PisH@8S9_E$(4H3GyOQ1XPxOMTMVOibnMCP za?Q!@lTRL=JoK*-6zf~UXm1!uo#+w;$U{+T}E zm^05gCwlRVqjvk;mxQmEwqN?P_DkAs`sMz2UKG9Jm9Ko2pLy}>*ErU5`}XMk^P>xV z*9EV=@WR(!bdl5i-|%|>a&h>g~yUizjtUG^qF^Ws1MGZVGuqt;Zkd?s4adO-Ny z0_>n-g4EZKlilWx@ptf!p*&Hx;+y` zZ-4tc-tqQL(L3Mut~Kx66utZ1S8saH&iC$o-%dl(jK*u!rcIl!-L&b0 zANI^{G!s z2Ylv$18%%=|AYJN=RWt@8$atD%^S_Zqi+1m8*f~=@y45OT3B!;YubPH`7iALV*ln_ zqSxGd%U}DtZT)%&`~Ni^*}?wPk&$<@=S;NkL0|csuikj$?YG|^{q5g=?dxCvTD!ez z&o{nt?xs81TO8+k=baweC6|1w{q1kJzw_O1elzkH7hfD*a!J(tyYEHqe{AkOX8EDZ z*DQbe%l|&|I4}GD_b+?X4}R$DM|b`3M?bvlM}GN{2Ni8<|2T?%a`)Z${KHTG@q0h} zS@ci;{^wt|e--`1PuKjxyE~t|5=#f!M*d!#+oZ$&x3o}{vXlwha*OvR_DY)4NLBv{W~-@l^hF&6|3z~ zV0+VL9$WS7+@~jVLJ50ezpe5V4|KHWUKTb-AvvmzqG1OcF+hgLgr$L=Qq%rvr%6cY zDl&)t35CRdlqeywgx%TUY|p)+ZeR#=CJft+13jJ5X`e)_L21jb%~I-qZURg#xcwZ3 zBu)8_09wn5F1}p{wm|QI;RIUC7SCMwV069aiOUkWiuk(u;lswoXB|MU=?lgiz-vG6geg zIM{{$Wg{sGO3}w<;yG)etG(?fR&gi?0y}nZS_Tdu(Zy9SbsR~y731WaeO9!1l#kSF zlinE*DT9i*V1fuuSkj#$p{A73%QUsZE`JIy;XAq1Rq)slcr=Ih%LfX4f@P2)G;f_! zLG;Dz2`oDjPXglbeafFrOR7_vglc05kLr-}fDBlh#2;DkNBRDbrijBL$7=~_#6E3NRC@Knr zmKZn(MTA?i0ZlDLBny&R5br4Hs+zzQL*FMfOF7x-QNgRp)4;3YvO?2`1&D9rq-cC( z@V3%DSdp~-5hT3CoFtkk#4xj9u-UKCvP`if1W(0)EA|3+s&`*i_R6n7XK6epQ`mKC zG05v-rzhE#CyDUe(|x2Supw%>v$>IH!U3eZoh(pgV$c7BG;s;+?4lZf8XcUlynVJi zkpbCA!np$Wz7hI$FGG2t07I~ulJ~n^n$0jKG%oTFP96?9^Ig8%e0O95S<3bxHZwx2 zR+fs%Qluz20@DUxty45`G`Oa5-yAP16A>f5>SzC1x;WQ=78%Kh2o^d7yxj5dQLVib zS^?pNHye7aY~Cad4QB_k7OU79g_va3wR%MwJ18>`>j}-pmByAl5Uix(G$3p~9Q9>2 znRBWngAz_N3Wo;hnX!vIHq9b)*i`7B=x2KT%3t#;9OcO}XiI=HJ)By_Z*C6j2KAi3 zbl+UC!m!7N3OJk;KQ8-4HF#t7DWJdSq%l#Y#8~NjP)wPITp{u$^tzPE{Rv z^OJ*%Bx{~guxS6~$iG@ySu-~7N(~zz}eJOBu9V6oAE(;b}UhQDFEdxZ7UDw*K z2d1pdhi620qsgRM*2A#5wzzg;FYS*!q0wS%g@YjZ3@mn2M$MxYs5cP&r7Rg#O%H{| zSEy1gQgsy0R=NX;cCo;y?9IeZ=XveDhuI+zn$sG}I!bJk!6)mKOv0dZg|$viUF^|zI~aikWnNRQ45xC1{jOSUnirZro^3cvN44n;Suq%sHwgA*ho-p>XX2F6 z@yc-Cf_Z2~X#iQ%N+C6F5bYh^5IovncJ@xNX7C$^1`$)OB2!~t7kfBqiP6uL{K5R> z^T^*?-EP)j1^>CpnWgOLbK$6>iUGzd4a%^6uf$V#%XGHBu}x*5wU!({H9pL?#9&7a zCzBGWGHY~#JPd!L6e z9Ka*mjKV2b)0|Kqyf7O~-Wow>zoUV=7qu2wX%!KPg+ftV7-V|!Y;*|)2xP&Eam46$ zONl2d&3`m)l{iv_rer=4Zd@&MoVsnw35G#LQOE|n0^MGWkcvrEUBqI%*4CTQ*O9I1 z-8O0}u+3Rp9mGECR0~d7`K{LCl%~9RO=D_$|e>rtmu;%C-GUtgD>4w?8hiGjms7)!MAh=u&3G-ao z*kk(Bg;{??2BBmzG-Mm6wqO9me983I(ArD8f69Kt5H2d|4B4Th8_AYzop;MGH+CRm zLDQP}kvEYHER8qT&e z7TM^|)_tp_bxOT069hl{5~{f0{f#+FRYc^hyJ=!^#;nk6v27uUPZ+4SHZ@O*pB*m? z>NIDOd_bX;;iW;cI-|Q(+j-0MLOR^x9azQPgS4i|7ADMQdaD;bD|ongjYhhojL_jg zFRygKbY1@mm#w}|XrTl$Y$dXO*;6cjbNd^#{zn>zmxGD+ZcHR>E0FMt^n#f^IDio# zCK3_zBb$5Y^_#;fP)uE+ZK65rN`zzG57DcaUenlWe4P&VcxEOi)Dd9A7V5AwqTkuu zILE?sa7Cwfh7+%2hcxd2Ci&i3yV!cyPK;ZjX-oFkmceZ;?P_$|%)Sl!H+JecS)WBr z@(c%H@Vq*Xk_zQm(ICj6@^$|j-Oi(@$1UAP{U_oHl_+e1NzDBBO$fECH=e6oWpM{7jVTb0J&LXFL5V7r(|L5uG(8l}eus)2@zIKLR zJ^YW>{P6O2^o7~^dh6`@VP~6()?Y?S^XczsIAB)hvd>zJ)9|?sjGbcctoH?$?78ug z*0!KdNyAGmZpWFMCsbE5n9TCQ59@{_q}PP=aFIAoXWM{m z@n?GzhS_jjpB9G|)z7Y--D&rRf(3^e{A=_+h8Bd@Zh;V%CTW#EO#8*Mx5UG#tJ(IZ zT@v`LRLl1xcM4XD1m+nA?s{_B7FVQg(`X^1EkncwX&xt%2|^n8Zk*g>+BcTp=4Lnwn~URjE&U3cq8!1qqwVZAOMs!)6AA}LiHeF3AsS7^O`N*31_qiCxi4(m-E()I9QBh(Rd}}i3=&l z{8t(klf-%5^5NTN7UKN%=H++XyqzST9tT8dTltQl%yTWNeZINu7Sj$GuxYe(uy>Cf4LIi(pgo-!AtLz?7A!o_gTjMphponhVb?O}bGu5b) zFgU1LVGw)r>Y#ho+!3<;vT@r^JL_B(5zZP96cmLlm*}>sQe?NuW#(JeC(~1FkN1JNy`;!pofh(!Y6}ezdyGf{%Fhe3PL|2XEL98>7J(EcgEKE;U7<{;I$}YQlP(CALoOf~-XxbY5>|HCjFe-IAS2Y)U!$VgtuEK=zDT_S#ZMi2@ zTBZm`yF4pL`P9!lWr=mi-agzL^AnUcoz9wn5+CAl^p$;=s&SiPpR}z%3PN5E^MZK5nxZ@pXZjc(QRR0ttzS&+Q@UYSEGg)x zQ3)sO(&`NdtBk8hd?*MEew?zFmLOz17(%Vyx6L=y^Du*O5-AHn(v{i?7)!%cB=N(lhjO$pqc{;MRQo zz2#AV>UvL47zoEFCI?L1*RmQ7MA*lH)`w$uJBO^^;->55;+0!?!SdmQSF5N-%O*lG zT{T`pMzIyBURb&^xopjR{HnR={Q1omc758a@p8$KtH2@-Kf{CfQ+aMci61sg^|F7P zS}^=m%{!v^VpQRnGWq!6xqS;vu=eD$GKRg90wJA)a-oBVeuot1_(o|;H1sU_Vt=@D ze1KX9FC<$jb9LAB>TOC=h@rP#GYL^=N<>;mU!3|e{Xn2LEqRv9@)NU4AGS5xVtuSL zr?u?KXx5b=8;+yZD>ZQlj66ALx~(%8Pi&PE)T;+goQADb_3r8MN)OS2;K~V6Ae_G5 zQ))0}S%e&}q^I&&Cw?>dAgGS0^}(7}wo9q!Ou@>TRGWp=!7022lF9yqAmzqnW?~DP zRgA8hSKMcv)r$_|VMgI$SC@#Jg1_2Gp4{UsKqQ0}!hr64XyWteDBbJh5JN3@_+ zoR2PDdTwae2}h3gYGY9tN!WjHkDX$KL!(>#`-=Jc-sxS8FU&+XAr0!ImMyk8i+rIj z+GvsoX;OZlwdk-9I!^eJ4Qg9+AZ$d>(yuT(@sChf>=KmaY;>bUISKR2=1}LjNhv(P zG}>&17W1<^DMhMc{3|(ndJis+SJ|LXMa*t*Zu59)6xGh<-xNw+Z7|^aD^Ku1TOi~~ zds~>Juo`Sl;^PPiXJb0qO41+&m|02h!mKRz>GeAhvDQlY4A@+!l4lf`B` zMQn5;HzZ+GEn-O*5|>BGSC^c~(pY}G-FU->@iL`4=i>jt+FBxvBx#~}mN^IM#mlI< z=o*P?zypC=kh2_2Bou8mwy;I8#=?Pjm1(T}0F9D~EsEdf{G?u|U*nRZfYBAzWn-_J zSk>W8_GZ8qY$vgs9B)d<7S9x`8yn}>=A4t_fsb8KVe)KpD1w22F#*uU0;9{?cx(1) z?tH|pS57L?lB#=|Sjk9V2|Z(Pq(Aj~Tbx@)a=cNgvgObKa&)svQR8BA6{#soF>pQ# z7^*aO910|M2)c}jPTvUD_MN89Qi1VSNGb{{j%vqt`$rLLLdqK9qhQMt{(&epm-^LP=0RYHN z-ZnLI!Th0-6v>jU!dV4}1K5CQekloZ^usU|B6T#2KEY`4xBC&e8?<$o)X_EMTwWp?T8(~PdH)y-Yw3OG{wU)`rIhq zPdqwc^Yr1OY-Ot;_ZEhYQ<#31f*53x#tWJPh#qK^XshUjc0JRQ-TGFVH?}NV5vx=4 zy=u|2mloHBlj~K@OYVe~en5O?)aiV5kzlb7;DeGUmndJBG_hl{xE9jx)Ag{jz}I1p z*l5sN*z^nNg*o<9moZX}gB2eM22IES4nihQ)JO_2c%V4&ap~|=v8drTmb^58SQ#Kf z`^e%1%B^>_!4e>ABh@Y9E-8Tn%X!2AO=rM)k5Y;>23k}RkW))jZO|o&S{S^HUVy{d z8(voOJg6Z^57-{d1)PL-9UJ6ot0$Ox$eJ?=z)BtspAvHj6(QUfm(iM2sJaRgdm)p+ z{|*~ml77aXs|Drupfq?C)G6>PwA*N{3la4^a56UFVB?#h7ThT|XSfu; zK^%p5GT_vRJ9~gg525mq%lP&$Eee{9OC+(Ly(0Ryn}Kw6FxYOz5W(VL&V(l!xzNgv z0oB9vkC8*1=rYxViLdv%n%FSt^#kS(KAY^JRO^}0NY{}v!!JSDnT2&n$;k;puCG`j z#Q4kl_?N4@TwHEI4dT6{4y7CwM-X=is)2qR=n`Lz}^-{)A7Ob;xCG+OK|puGGl zk@hIJB)^VgJ+ZEAi=L~@*+Jz95y+Sm?yAR$lnVV!_{*9WN-oNC9*vsrD(E7Z5qcaR zW{3o84PZm?FwhrKSPLEj>_bs+Tq2o(v{C*84a)UuGf^}69(^~JC_gJzirsC{Z%_s( z{nHh$H)*12xPg&aosq+=T^u2_aAJrdf+zG;t%s(<)v*)J7ekuPc#QD+$sx%b;1n>83_K-8YllEQm^j-jOIZA z=75ydt2zKem5Pi)fu+eqKoFHTH>8m`W`Dx&&RN;aDMUG@fN*5+7K|&4Aeo#~dM3sQ zc);)srIn+L`UgeaC6zfB`A4Kg0EU4yaPV+JxO@eV7v!{NZ-cz1SH!R#ez}y&F8Z#u zMRfI|e=@r$9VKEiU}@u0(&n&keJ2gZD@UnAlf+w5lS$I_LgSI#YZ(cq#cr={q1@$( zO#7GBed9rbOIIbEB`QxkGxjwy8fX##s5$i53_%5XM8qFP6;7Zjo0#vR8WJk8Vv2o5 z2*{qnSgC4sYq3j8)e9|gx}D5x#y8o{flmR5C=)W0C`@(3MFk9mxkX>a)hQ8EIbIw| z!l17s7EsjLfQO;PKPn|0@Yh4m;yUtdCYtcIP?`|tEYdM(2hx8tZH2-X@-o@E{u3C+}Fp5!b#YEazErZu7n-6Q5p;qNTnCD34nj0Gqq z#(RJOQgMlup06ja2;49;lx8?V3H7;v@lU?u;zks$iO6K71Mm~c&>I8tO18Cs&7}F7W<*75jc<~=%m@& zICL&BMbKZV)`dgADeZ#Hhj$~ghPpNyd37kVb^oI3oJP6F<4PUHV+<|Dssq9%_z=pA zQaX%o?ZKk5Yn=t%T4~u6?y^4JT4^B!?*FX?_f<|U=-K{XWB`72J%wn)|1guf@1I{T z&gXyX`(M33`ETz}`0vJkKi~DIi?{t!|39&H*O$q!Ox|2-*{ULQQ*~(EOlD+ls-1sT zhf`HuZkwtVscNyFCryur$ly}EYKf{Ub4pdUth^kwR;O1hRMl3gR#gvDZG%<*Xw6VX ztyO$Zb;x){s~xM9R7_HIA>}Rp3jQ9Cs(5%yv(lm#drIp(LrV`LEN7U_#;2$qK7!vG zIjUacg~g>>QL7Ty)S}S`E1pu@XhpMCC{5}Zb?i7*Qx@p-yuemzQ>Lh;>Uc6@7Amd9 z{Ph#m2DPD0Y2&B0ysOP-b5Q9hULOO!{k*R&z`wR)l`qoCkHNwGn!;O!&Q}`4z=koa z;^S|3sNR@5ajH_M?zdiPoaEt?9)x;L>DKRm0DmGlS&gex;_B3Clhx_dnDeY?r9%~^ zU72#Adf*JN(sYnIQ$1L@TWL821>NDZ)zUiUV=h1=Z#@Sc-BCX~`aDIgW+=0&j#n0_ z>M=h*_PBXwrS$k-VVbc*v}u-Y+O*N4O>J(Mp|8KSWiYRh37%peJ0YD^^{q zM^iVbdIW_!{ZXp&meQck*C{Z%s@lW{PVjFsrKU5gnpM?boOn{XQq<&Dl^V5^t8}tz zwK(nSDXRPLsxm@%gj#j#Y1O|`^=nkFZi#A8I!?FQoLthAEoUg|ow~Lrwb`a2&pT`3 z5xS;EF#`=BO8| zmn>$s{7^k|GOu!M{ai(7P@0Mr`Sm_2nQ7q}%_pV2Jxa3gf3KF`c!N5!{cioF@c+=l zFEfk%k7}0F9f=!M8W;<@2~rQplA((b z9Thx0%p1x#ct;cxfaP$;5(|bFOq{wB-au(UJtb)sKsyjPpxF5Q(WlW#&rsYmRAau1 zigcfX9p%eZ$lNH(Uvi|y%z)1vc^^#@ps^6Wn9R8SF*GdBd=<3_jv@*+iW{nQVR~p1 zse4du0~i6<(c1ycUoKAr;3cTqUSlAs<+-8=7g3rqDL}+G6tAKPkhTXXLL^Ou3jtFm zA{+FMd=<#yzJx}`h^|0UasUZZlJ1TYN2FJ;Zz6ekWdz?Pw*y5z@iTWkP+>pIC~_ui-uNWfPkXF z!Mr+$S*L7q@W~+KcFC2bFG_6Cn#^a0QeJ%8O&6w+;sXxpgsr;4D$R1 zEOroSGy%{B0N+Ucgi=anbn@hZvm-hMxhbx$NR z*U(C-O``)mdW|k`1YJix33ZJOmqE^4nl!^J9dd0Y7;}WB+k)hhx|$Lj6kvNYW@3i2 zwTkXa^jZMDP=wUztVOs{q?7=$p!{BLHcpIeS}Jo~2>A-bCW$qKErOf}#|WRGvexLxi7#ZB12R9FAGR{WKDkb$=#Z5NWG#B4 z6bLNeVjlx9Pf#5>x2OxzpwUs1*FdubEW+Q-yF+qBLyy^xq#Md4&M}&%>1;Zsqkr(_ z>z1eC)Ok{I<$|=_rdtf)0sVy1f)5N@K)9#GT!?~#ql;c!0BsCi=;3&z0Pz6U*DH>q zj1E4Phnm*E$dES=oGr`~l~Z?4$ed@(6PF`W>Kzg?xj$U7y(DDvcw$eJ``*d}&=ZmA zP+I{&dlE8Z#*I4!WXg(l?kOSjb^BS{0y6Km*}CL$WyJ~($A-!?OehjqmauOuM7%ic zAfRZHr56dZacm2}{DUpO=kQB*(_E?aZwNyQI2rvptjaD)m9y<`Zg4BWmgtjHu?wxr zTz%dwBp8SbtB{aq^krfw@*%HraCf=B9NzscLvGjnf@A0|vomKHAoB7>V@q%1<-d%R z;ZnacIPw+j{p=wyn?P+~t_3_4I1#Bbdy(jqSOUSo5Sz2u$KG4S$TozJ{K)CY2awSj zd>u|lm`5b4a5@f8Bzd1DU%aE~Vf zqP- zY*Z-#raVCiRJhYJrG{t?kwL+kNt&UMt}+EOAUDpy#l`q45qaW$Mr4)>Ugv0H;{r!{ zTsuQXS4LBX-5-jB@)@zCDC7vmC4GY648AwA1rlh$#h`usOk$Ozd(WAdi)_kcZYpp` zPLE_0{WWJV_!>A7Z}7Q8Il-l@Gijke+h$9MrtI3~oRNHT)(B)ga!sIqaBC=eiNrxz zgMx`V(yMc|l1wV{Cx7H^>(lU{0DP!bq2`Ws-$L!qEd}FZ2h3T~gd&NMY0%XBoEn_v zK|Z6_!(c&A5Eofg@)aHgSjORp34$D^kJ2 zPQb~6d4|)QZUZVEZ>vnZk;EKimu$a~-$XVYQS8j=0dr|XWbhw&IsI59^Px44EGf9A z_!gD}RVlGG^7j{GDgeq8T8V9qUJLgJr3LX%)Uqg}gTZI*wW$}1oSt;@V_m*z_j#I} zeZ2Z@lk;OBdpKXD?9gq&)KGgDQe_k+BBEpu@&kEzeeBU3tsu|9?yQ6iXeZ8I>Q0D# z^b%CC$PG}U!8ZCRLGu*^m?7`u#G^cdMC1V#Doe(s&^~~A;1J zGG-ykY8>I>g@DeNp*=WfP&FW#K~oZ3X{k+I>u_#X;4FCr!QVNPQ3HHmk~fG70YMK) zBCR7~2rPynHoiUlDcK9Oi>QetxsJw&PM8xDR|_5?Xkx^_=@6$0`z1sQDpINLfJG&F zkK;yUeSyrOmX(~h2-<>$GT16M2zEmD3pCskDhVzx3cg&){Q?=&oujejhUP11+#t1R z-l1!DpVR5pIVr=@o1@m?gy#-r*h!(1p~6utkflj4ywxCau}>LWSey8BBC+w-{4i9* zP+qJm&$Ak`g;WYC=;93P2OaYK1C=MO4?=)WxOR9^TZcv{0~HE!X&hhv5iS#Q%Dsu?hftb&IMe-l&;CJ!kt`>~<~?zx+!QUO4r)OXDULWE^SnuBO0yIoxFKz%x}%r%w)0FB z17Yl%7zzu@I^_vR2J>IT@IbbBkOvN=5(0>B9+(DJ7=5o_AymR(mdmGD) z9S)aQc3yEDrYP1`?AGb+n~l67Zw43LFT`{~<@2ojz6jIdCCX6f5GoAF5s(^KY&vr~ zIDn=|V#T0*F^3)!C%idOVHAgKgFrAMVB>UU9D6h%m_r4u5(a<7E=)h+Tj0VJX%5Op z30s1&Mo)l~=+$axC$caA7u+|HR(us@PFY?D?a0c4V_=VGFHd-1u5j))-Sn@OYx|{} zQdafLOFd1Ow?Y4L{!3u0jD!%`ywK?+b8gT(<0uajv&<-F_+ZF7Uo#Pq0ux1ngft0R zAKC{!_F1XFK3Ec%f3=I(x?GbPyJD~_jDNxd2C_+XS zNqt}2ZKPl!_5npUM;fwQN|Z!|5xHYgiSb@+22f&*Zsepw9w~+sETDumQ1qkYgP(&& zXSKKXxf5ABf-Ypo2t71 zkUgiWCe7}7s$OA+CDAbSTf0q6Wpk5rrczb>3iYJgir$(XiWxIk8}rPE;8Yqg=QNQt z+dI*h@SI6>0!;PGL}w+u=j%3sXh@_A(mY_u?As>lbR=cuccNs%+e9sb8eD>|IO{0k zyz46FlV2B0HxH)sV6O)t-60XRwNgv8JMTx2v@H_#wmPR4`l^%^S`a*-LuBMA1voA^ za!~GsqSsjGb2Ags6*W#}u9E;Aw1NEH(Zt`iCUPjb&!4Jm*_7~zq7(3Cxv)7ay)DdC1KN_Sj185q80&57d`9FNw44&Cl}9_q}LaU zT$>f@2vK(R=B?U|c_V_Jo#R$xAUu5;t_g!D9et!CZyGT5f<}br)2Q54cT1F56@1)* zNW9v`uN6(E5Tyoxzy;Z^BL%BhjA4uL@>1>0PhWI6n zKX^CJHZ=KUt|thcztz!5t)9)UHZ^#YY_FXn3!)+d+C#zcmZu$Twl|e^wR17LCj_%W z+NsVRLRr__iv7}CJ>&t#6pry{lr5+x5zOo-le_- zSUlVgEqS&wrx3#WggtL%b0!*qHAc@MLU7~;g&bD;m%{z#^rw$%q+HFUHjZjX>;n=j zIY5z#BU{-fBsCzGe#X$?!wBOLZ}gRwIRnCV+CoGXgiT`E;ByD=cCO@-Woa?M8cUi* zyH3T~UM?)r*Ts24Pr*a^_G}4g27LfBEi_tO+e~Urk(T|n8##E+mRC`g17LERVp^cQ zPp@$b)Jk(k4TP)++c}bdgzv<7f%)Q-67e!`LPmKS{~rnRfN7GHhd-NJi};9`co+nc zP;d!QA_S686xT+cb2)D9ON33mHYjHVJ!fC(4TO~m9I0@N!OaVmS89|g)|?$a0udv7 z38$twJrPy|K!Y#@RJ~ztSu=e!yLBWqq!|SnDZ=6P<=xe+dxVdYn$07I%7+Cf!U{1f z6;hUf3OVJ-T6nms4n1XQE5`&V0Y^ne`NurmqM1j>%{a8+O=IFf&EXRj4SnQ zn?1th@nx=2x=>v(TYxHFYPQ%*X7^Cdm2*=&u(lu%P$ko-aMsf(_a)kXTQ{BbBkxRo zGZF|qF^Mh<#k}`JGi@-PG|&X!7oGwno$E=W+30SAc!^kbw60=eLEf72ouJbEM!chP zRnh{nT}sRziXu)x!dyAY*%1J6(PWEbgn~L`8PQ5%9^v6hXgIAc>oY;k(0R2a~?;65jN0WS}v2}03u<_&iA^7Y0P)b`|3GLB3U|+#ZXIufOjDesTtc+(-t~$WduVtUap@>s9&)6ta;pY>a@%k!{eZU{w1RryDXMoS{AIR5&%r4Lq(j3 zj;-({VpojgQIE!cqc*crSmA-Is;A;2ru9H(3)oBv2<(BU1CcA6Xu$suSE16B5!)1u zn06DsYp@xC8}sq-f{RCzJ}VVKZto=311yMRgXaly3>O}IE2I$IM0%2L3xkhQmhl^u zwEwH)hH6_T1OR*hqgjT~0k8>N0f;vQ**u7dt^uf^eer@Zr3-Z*!Y39f5oWv> zWcnI!u0kB6V4uWsq09w9;(sAPWqZN-0&c~xAiIpcXLy5yi@FslD6wCmZe@5PW-x6w zuyJxR*fu409XgKw`nS$joRoleG*_X~o{aB}YULwCGZTT)jU}ujk3?V=@Kzh#exp&j zxiY82AV6Wpc_m{)B+O+_>8D(1+z(`y&}{}2GxfY-`W@pO)YQ@FV&=rAdz*YIT(Qu*?ghHM3aqX5-SKAM)nsjaCU12*>0g_o@R~+$j$5( z6?qG1mdL^-B!ym8%sp)Mbj@am$M5@ZwH9s!D+9OyI>X$>tRtE!AfF3HAQ=$o05zP6 zlI|1xuqaL8Hi}1ean|AGeol$V;O`Y+dM^(Q0DH zkwIvw7e}^G2FaSpZnbwI>V+U7!~p^)6kTLjP93wFzlcl6&Kbl%WMzgR!d`$#E`OH7 z5pzE6z0doXnhqFTyx%dd6z@2?o!_NJBKpA>bJPrvgj+}Fh7;W^f_MrSKfEZt9fC}X zCI}M>c4`XnMV?IzN;sJ~o54tZTIosv7tjqXg%+ohAKT2Ci|sjma(TCfgdxr+8NJ4q zLLDzI4pKQ5kvqu4h3cAJm0kszIIt6NUVN0toBGh(2!4`@Tv08`^7CwQD8%R%?W`bD zR@%C&t*t2-Ps)N&YGQFGWhHwrSuuRG;3f=~^mGVVAvFNT=zK)M52nOEABkP9ABM5o znR8>}fXPLOKqbJ}V4+hML1>FfFdI5-dt=@qLrXQP}T;e!2)`Q%(NB#J1IK`Mevb;^aB%=hC+<LTD8wvbw^c{S7s2yqs-@{ezK?Y;az^;t_SyJ{ylq{B- z(4ULiKt{MBz`D^U)vyS=W8`RO8v+itI5HEHwPr0C7}fz&1ZTn-!Dl;L=gFr3Vp<^4 z-Y5aS*B`<1OQb7R65Z2GY4T52+9b@8jRaODJi+5j))=<9Wz-q#lW+rY3eFEnK!IBo zV;bu?UhRHEF}9-d$CONcaeQ4H1uAX<=raG4wVtT=79Lt5H`7VX7?jr-6%b%Bqz@QA z3BJ`v2MrP?Y35J>%*;U2DPcW8`J^|`cWc=vS<3$!h3&0PY|flVbj$Zu2m?nHE3G-@ z8D~v2^c8dIF=q4IV67Ab5U}DtLO1iNZg?m(#HO@VH3|gnf8W{;(2f!UT0Wcl#zPfa zJt$`YUlb__`;FxE0Id0Z@53;XZlBG})GO0!J=x5RQ8_b0Xn=IOI*tRL2#I^)7p%r+ zTsU0ua657`ssWBoN>%K^P<)7na;ijoK)gV1fMwH^{zxt2P#++KKylA4@;&-4rI_lz(j++!sUp*#gk;DWrH3~!#yGrOZTno`R#wqBWLZzWj4iIt4VA*0( z-J?unlu~SizL|c3<&~O_vW;&o{s{C!Tr`$bBKo9B8Bvupz>M&0fYw9Avbhl&8N0zX zJeJrnl2a>V!@3#J*VQFMH$iNzzP0uN=^ zEAB-)V>3=tu4D8W0utyiMBEHDLgOf|JKwq*I%isEZbXQt>~R-42(X|$ zU7U36bA&uayzko4W@Z0ULEHaU^mYt6oX#=4u1^^^TYz1l68N%^VmL%m5cBZ)ed|0N z=GpIAOhBX{9z>?l!LbQ*>V`kDdoqc!gWR;zQ}EbD4<6S95YAfr<=74E!3e)_(t>)2 zY^vzQTKh&Tyj9j%7_D%Bm9nt>&26IMZ6PIcg5MI^p2z;&q%hP$Uo! z?2RL1PC}!+N0MfgvSIJj27uLq>PvXuyezTwd&OAE-?rO6)TG zTieNdkmL?x=~FKnTgh>u96~4OC|gF?LUA9&MQO08e8-OdlNv0ewwPfdsb8t2c9_&~ zxTEK5c7Uf*f3mT%0bDd#sD9c&_!?LnBwi@QVGVn@tJp2Yhd$lBW1u zY3X)Rjp6EmP?Ycm+D!bt9LTUaIFZwSqw{AfV^2stfS98fA|nBk6c-mGGl1VA0iPao zKdJ!$N?b+=E7{Ajc@mKVvyE_u!}V&DClGq2Ax>&uvY}S7)HDP{%|};4^(@{a5@vX& zs7GY>HQi#?@eth-@jR4)>F8jy{%N_&%{YYEqe6pf<3ItK71lVa&+ttyXnpJui7V?G z5{YVqor9CZM&h<<=O8p#S3$3Bh;m+F9h)bZy#$4az$2ODM3*j`3jynV04hA-)vWg? z-E;g!lzUJN@B`>NUQxILo`CmhCwczF{;;O$6<}s4B6%P&yxR{@HjbPO`vTs`(;B(Z zoHKGo>A7$kfuaiQMah{=j?xk*SSF(|0K0)KX*(NrY2{jdyrNiT9#lNY#oqIGCeMs zxXi_U!Vdwk=_8=R(GJZ-o;-wvFMKA8D&RfTqh(GlUq^FKAO`*m*y+18+=C2^n2q;eNg zbWucOUc}d$nn3CazB=?D>Mbxb+!*eh$?C|NDN<;>=nEiS1t}+0jjLdEd-$M(7bk$f z(Tc!)H%ncJz(ld;o%kRDj#(#&b7665n2{q9f`R-n3qem}H6>i+rOHM~pon*WYpcv` zM`#-G|9i+{DR#)wyV~ktmXHK3gSRBYZ%k~Y@JL2aQ#WD2LixalB5pgG1~Jd6JQplQ zS{J-QRE(iP#oY$Z0TkLt3GZC0imDJF#pv zL_C!RL~Xdy-Lq#Z=Q=h2d5)YB(2zrx?Y!S0mD$RC0M%&XoO)*){0p@$O-|;odM)_s zI4-8|mHKrcd%%udPhiPs?9L``BA&I^MstSplwV|N=7OR`@;Ny)y}_;e25%U_C2(aa z2)jcjkTi4HfQg5@!*O7n)R*R!Y(o@Y+1NQoXU^Jxgo=zVrS&PyQ1OP>@*46K=?Eej z))4PmTuck&ZcJLe7tK;)eM)G1E)T{Mrr^fxXov8pm}=kVpjz_s_7A!+#}#D|8? zXK~1%cE*{&5j?$A$mJ$_Z=i&CiWHbc$mm6{l+9k=;Vmh|?2z^_}#DPJ) zk5#yZRF-WPyH=t_C)YCL{h|usmB*Bg1mvAY%Aa`G>h9=2CZ%+g2YqX)G9^XOSC|+8EFjVJ&>5^no-w04k6VL^k!_qQr{JrgQ#w~8puacWF%oPZwDpgrakz2+ z?>q%0lU0`WR~5Uz0RQiqrt(>-C+Zt9wH2Ned>irjGb3&R&XW+SNapi8uyde|q2UXyO+7*0`_Kn;UUwdy{`qm9QzN zBL3n3fQJOy0yKPdgfiK{m39ELq|TZ^^Mo!r{p9}2XAOB3h?mB4`$(9DL!IoloOj^M zwBf`GWD++_Aek#OIkJvEQ${#QjzI{m4ba+-b6$RQQkX^VGps|j4%rP1&zu)Zl1BXG z;S@bJxM39TmyMJY1sycEmS~y}8>Vp-gCexz&SQUJpNt$z+&&u#WkFQm#QLCSKl{)H zFocLO1DB0!<$e*(hyELS`G&R zLg8;TDl>~@$Do*?=JmfE(qdoOx^|pqbDy_1;RrdE3r8!h&K8Ca6h_p{8k{#sAi?$- zHFCwl+g#03y`hRJjpi&EmXU?Z`~mUG0Kw6v(7v}@rNzmq{HCN|LDf*@pxXOx5~m;} z5etuy02(A(TkKu5I@r=_^1(-BkO9CY`BtGVVMck;ZtyY6m5`^wCmtG4z(0Ig7eE>9 z2xeAfLjLTl2YcXY%}tb?^uM=R1-F!}dF-7@0lWwWT6o(mSb!rjjNom654j{b$wqf~P7v zV|&R0swvds{@+dL5HkTX7;x9D?{(TA$4bV2is=~>jjlGdp6#7MG{M$NbVES*v_zDN zM{_sCO9W6d)TE`KIs{z8omO=1oMu2&cydYf91lZC4Tou$yc0>{gS^C6f5cE=vS^cG zvre*jIds4j!C=^_{U^=N={T~eqYz8LjKUcOvnM#4U?{2FW0N)CFU)5!n1LReCnu*; z8*s}c+k_j9>tN=TPJj`LT#3D-t^Q`@un;a4b*+dJYOa$p))=BQ(TA(F;JXIS=IFv{ zIXAlpb25MO+wpOut_BSe z849OqI&)1~GZ82ZmJY19&c*^CR%ST6cpUmo-I-LRESQj2Vf%I%y0gaVY?o{j8U~rA zlNiz@1Ac?y`6f>yy>w=g*XU`8g(sCdT72j#;jnxgV*m`Gf|6VSr3JUbB-6}^;n{51 zvB6`w|LkkW8CV~fNf;|bZ-8xtZtWejdcHQFWsvq8OwJbOIU`^SM<1R`8A6#s--(2g z;7EF5j$zVAI85u^ciZf@ZXeF`-T0Q?**w#xHOXk6fdAd1hA@$BP8rQJ+u2kY%#*s$ zpn0>6aZXg<;q_-hh0>tW-3zSJN^2t>S1hpqm`0lDaNfQveWBa+R~eKMi&^ zvIT@wcZ_XEG7LXN36sjSIU1>xeZfbJXOLq_?^A7Xw23Yg;F*BRx>+rpmf)7D@Kdw2 z#A4e*5LyxCbb8oGj9P4_P4lg)?RLQ;uyLR^XiaP!T3f_j?^P6i}2c(PZ#B}1qM{%OEFhzm|(3U;2Yy;&oy@fT^B|=*wege(ph(zw4nBN2U>)aQDsXe9Clqu| zR#w+*kt2OiBYg*|=kH?qTrf^qWAvmmE&9AsG6^BjWYQ;6I64IOhqTSPrGl>tjsiai ztWSU>dUXzdwhfSE1o_A>pvnOA%(=nngpkhD>4Or3-$>{gxgp3l@esg)0Z1S>r4YqC zvuJ-0oRa=JmLa#Dj%kgvgWwDDhrrrl80MP6YjIQfGVE|6--m~2&~*qO!o#&rkXH<3 zpiJ%93kN_}S{(uZ#YCYIJG~nt0HX#g<=t$IWf3|6% zpK3dSe2L^>vq9RExu&!>BQk%kA{Qfh+1M7~bc$Gi@{9>BbVlMKOa3@&Hmt35Dmgd6 z2xtVEbqL<*JZO;FerTVeH`sil!{ zb7yPgnP_x2QxU*xM1Pvu41L9u9zEe8Ep=mP9jlzUFkn6iHa=laPo@oz9Q!a!f#ZSJ z`@5374q};5K`KWuU*x?h;?*htB-Z)R5iO`lXg(vMZzps}{s{0OM}IJ>AKVb}pI+tg zWV|znZ)Qv@05!5GsAJRw(P!+QP{`m~EHZvPh*a4vtQ!IzVZC%+oLb1Bsr`^Wgc3&| zca0GH2s*NX58SolPi{i(fcALxoJKgnRG?!<97Zg-)Y}L;mr9>EWiq^TOOdl3=|b;N zs&giB8^iO=jdaQ0#Jxk5^IZ-82%@-FpjJjS6VX)1I9V7e4kFPj0X{`DGrfytI03>o zDqha_9Y#{Yhp^!8*7E$R!cZ#sTsHS0fgdFAu;+{NIGr71(K4rSs8d0vk{jkUg6@SQ z29Kf1;67e8a8j2vq@v{mV7O-&H&>%QEC+8IQ8t8JUA;M~yl^Pi5<|9L6`7Uf| zM~#K193sFM{wUN&6h*;sLk`~P$(%sTSck`&9J5$r52kRq_R zk>sTwPcU-t*meX&kOLgnA^%Z_X)%Y%@ZHaq6AHpj)-DCUXu{F$d}eKyAR@NKLmM8J zs1t~0j)vs>4eqIms^}Cgd+iZjkXZO#*duVY`csF}CPM{rM=(Ahm5^B)s2#Q7q7jXS zX<4Vv*P^G6_jnU0O;OIU+=5mf*$WJwzn@{HY&z(N;Al^LAkZbswA zK@$7e*@`7833?R?98}v1whP!r15M<}Cq-qS6%`^!UQl<)9C<-4gpTaOYl^sLJFzLM z*M7{V)UrtI`?yWtw$KsE-v9f53ZWwnKj#0lHoqyqxF;B7Q+U5WU-r{Fi40l0aq<0M z-{14g7jF7#<6<{IKYwff!!Opa-T2@9hdsZu&N(R4HhNd(Sn>y^TgX)RMo6`G?E{d7;NR<6T3Q= zEHk@2(_54&I)kOe6K{#Dy5+WVPyErAx@ni_s=YJi&l(+--lli?iOE$n>4FYLr@zEr z>0RF8xvjVk>T-D6h4vp9F;%mK$r=PQyjBH#TU-F4+D;s-Ed(#_BjrQ_! z^V*v>Ta`K9pLMhpjZ<<9X12D}rCxAUhfaLAc}mv{PM!7iu16OvQ&71Q;EC@&n0e*;@$(*ExcQSi4!vQ*{Ep?;VKX{z^rc?3e5>U0 zPu%3szI^lOvu-`?CcmL`^_*))zP2i4eEHG(BQKeClmE1F*N#5&h1Ui}7aY@G-!au? zFF)&;&OfC7a`?^B1)qHI^s-SaZ<>_-=JWR+`o-)e`=9&WXCGg4=Ygw&7yj`5zq`$i zo+-;LMN?baT5p~DD@)O_3-m>|P5*W2h-2rr%o%pjO3#!_habFtMfugkXWcgUrK?96 zZqPiBE*X8zuvx!}p8d_-J74|1zsh7bA zQy-{)>(ZnCpu2V673YP%xb7Za^K^CDDRajibBAsD)uEH$zU$`?9#UpG@RYgt&iUhs z?~T#Ec)NbyBWIRb?l@(`gyVV5C!xFFx$A@{E-15ndrE2he163iKIGl{#MAt#(5a;l z%z5sTva#CB@7|Sqp|#9%-Kp0;nC3OdhA(}uKKlx0)? ze&)IM;W=-vo^#KP*Q)<`%DWH#@x?_m|9b1R_a3}%^h5U^R(1M>M;8o>w;gwr|Dz|a z8{O@k7j6EeUe|z(hmGdVr&i_m? zR5o^X==9cd?U>HCrp;;t+;aNA=e($M2OZ`qmQ^b`oPfV ze_b-_@Q2UYJapM*gT2Wgn>Qz4xZLPJ`PCa2q+Ym8iyr%^<<{GcEv2Il-x6JrT=MH7 z`(N~MlbW7+)v$xF51zZeXxO#OEp;>haOQ}mc8leK^ucW-RGneoQ^UJD)WcXR&s`gP zD0Ap4i?(5UQ_0g;{3d$V7q31R_{HJB+yBBJe*EW~zn|T9z%pCen7N;K-a7rlpSJvb z!(IH!%AvFFUO0NF!IEU5DXP_AxpC@=$9k^i<+oh2^o!u#8~$*5ZqB`9){WWk{G&fi zy!QUoQ*QDf_t*~$KX1Qh+WqsN=4LEfGwoODm##ef^Y%6GJ#^w(cfR(AMfV>2r<33M z6TiZ1b_!?l^@Ovu+@UZ3=o;O~)z29wh5wg!NYYtWys0bu?sd{xzB25X&VprCCKZyA zLEPBh@>ZHjIiq$;O;_?R$vsa}b<;jlH&DGGS3vFrbI&^g)a0umaOt^ed&yOS3BcP{ zXyrwwgh+%!n>+{Jg|l69KK4CsC0|8h2h$@dwK8Uum{d&F96MB&5}-{@NqvL+zYw#s z&(SG-jDiTim_~b#4rwNc*>jFPM7{i3UD=!T0y#!aRwh_ozCxr}*qJ5l8?7JZ4w-&{ ziVZ3Vyf!NtDdN%3muxfXONhk4CjFj-l>d`dn|+LFsZ?F$ji53^)dXiGf%c@; zQK=x80VAaJ!A{E9444x#Pq=$jhWiq{f)t#rf_;p1k(8FoeN1WLwOV+VAzuQmRG7-P z`-~Ru$p0@HErr~OeavW~;~^A@bX{Z$u)~NXB$phwGF3ie+MP36?8K2U%xK_%m8>2H z$EnjPE!(8?UW1Z1!H1)x*-1N3Y0g3eG=b}+ffiv1^dK&7QSw3?0^k9KAV5Hplm_VC z*B};Q;P)|zg^!Ta?;6DNu&%2whlLoGBta~KH1`I^IO&>@u?t!lrMjiB#}AI$l8r<{ zI3%!R-=aitu#lC3vp_7OxYV(yG7VQ0pTe9&f}vd_cU;=(2u+lPO1SuC8f8d432Oj4 zLzWf>@n!4dGx2?TlUE+FvZQhE+EcFGhz#3}7nbv&C-UDq4F3o+;TXCTD?;n=(k|l2* zFf4^3Xxu2gv)Jx|i@1e&P>8dFAHWxc-2$g1?qhg-6lCvO9W5Z-G+){D0g@Pmnj0Vt z1`)gl-6YQ_CysF9-Y>|Ms$i4~fC#hE2#Us&g=hg50d|a`%`~7sjv4&XS#Bw522iR9 zlTi!;REt=(U#dzW7N;jyrJ$t2#lR;#Y&ZQ&=IEy_~e?!r$B`|my^sz^qe z+^>DiH#yAeB(~&w^FG9u9AWEz$o@iH$tu(KxRS5cesLuP1?5UWJogfqXSKSy>zzAHSqkYO;!SkoUEFOp$vZ`hw?&imDAab0CTVnZz-Z&(g+m0Gt+Xn~xqzD-b)m#s zhbJ6bZp!KS;*jQr1Vn&)@aLs=En2C%@gZ|Dq0HWKv&UkbSZv?4S!xH;yVK=?#+ z-hiDAL>{{nj5qdp=*=kfpyq4R<%`i3@THMfK!IXTVFVPY7?>VgxV>*V zo@dXyATV)Ui9!$YEph-LMc`h9V7jXv(bcGlb=#PELM!Aq|l!--7#jJKw<)O3( zxFnz>kUq!d$!3RZYawWm6u=lna5;!Fiu4Q?2WC7lK+IgYXM+}{5tU3Nq`0*3r$uf& z_qkHUczgvC+7Tz>AVNY&(?W6u_6O3rB)2$VDs>l9hDeLV!-i~-OD|LzBYGs&8`hPI zhXWPa4<}Jd!d}cgxVTI};K88zy!`#Jc(EVMO$bC0oW9~z9xrzBi$fRN(PZpQ$bsDVf_JUg`9(j1fd63OHu?-Pr!{qdQ#@ms7*8C)`o3JCJ(4! zC&83Uu1b_I0kwk_33nCNf9MJR9NKoowu1087>v&fVoBwIa|eAjQc4~^qyxaN8{unt zvcSu!68xeqDddHefBIk3=rPYGk-5(MM2=C{D?a zBxV}%LJ3YpiMGKz4S9n{kO5!REF@Dvl!D#jc#^5aSY=r%te#FhLO9`NEF({Cm}e|f zZ|{^jRn(9~nzK!wQgAo+3mm!CoX5mZtUiNrD1#xI2w#+;HaJe9k*U~3grkZD^x#+b0qEtJa+^3iB!c@Qx@qqRhmDMRB}&*Tm8h`Gq)gU82(BdO(ZmqKns zMY0=UZuwm)R|5Am<1{S`72dBMeg`6r7eZd?TcDmm8AodA?F`x$`?hl=L3$y_{6>cpV z_{YE=@zoHhidQRNHb8tyA?}kJxi7$k@Bms61czumn9oOv3U5Q@h;on+0z@c0x=592 z{}XA>0gpf8#w90SeyC(j%h-Ndl@b3|E=eeMgljg@AV~z6?V|Q$%%99EKEDP*UF`T` zk3TWG1X{S>F`vl@k+7V;26iNNMbwFG7g(OK$EH5iE1Sz(dP7Q1wz|eXb3)8lULCt;NK&1MTX?SuAW*h!nPgLNgk}t8wW}!;hCq^my!#iE+TWf9M(30 z{^V+f*(ceqQ58bLvY`fPdE<;>h`x+So=%rSpL3gy4T=ZH6Q>U>mA9<8mSiqxOK(bu z-jH`tMC~pm1iq&kLyH8NtR0+pfZ8Ad#v#f_!tTQ=MnVUKgrpYni6x* ziuVo!0sEB%VIghq4HRh`;@r#}9Ki{9N)-8(X(P{~L{k+4MUZpT8X_m7he~`~m3KfK zbK~jaFwU|i(m*i=fS3uoD>cC(YMHE#Up6PQ2h{%D zBqsM^!jpNav|%Vh575P-@1uV$UWsCcmh%PvBcFq*B)U>k4BK6=HJ*i|qI-HU{Yg!$%|{P|`<^C}sm8 zX@TvOnu$7$=bZ2to*_OXnUs7Ot}QG-7Hf32?c6yE4%8yv*xh_Tx_poiwnQXBWTa)% zcbF!V$->Q4hG@*%!`VsBTOp^!$m-#IfU^biMc&I4n-KiJvqhYSd`tiH?z|ni0bmPQ z0oOBsBZn=w89S&idP%iNu-)@17^5PRSH|jO_d$kD_BUG{8&)Bc#8SMD9knl$qyUf* zXoyIjSV%@P0td0N;`8R6$;CoHN8QTGrDvp0-!W_C$=bZRU)Tu2fZVo1+Q?T1Od-@a ztYl;jU>TCwC2=FZ@QGL{`o)b<)I5N@PJ$~b>il+-7WqYaUe75@mH_-OvI;6XR5om< z{UTAqSoiv6qDan})XnN_3OTkEdu>KVDlh1^LM2JLiYbF7gUs`x@|=z{kgOo)kr3I0 zS0myZCb}&9t?Y~x7x+QKi}sKkLTRmBujbs0xZpx^kdl`HSwQuI43e{tbVPFPzC@A1 z`j(qAn>iWL3+&Dg(R~5fl z0Sw$4YSjV5DkO_n(kd9Fq+$g`CV<0sTLQ;fr8^~XoK%lF5-k%)Jr-yL4Luw z0M6(O#_$fEEx8y7XySOjk{4Oxn1g+Hj_9Id#^J&0qpHqEj~z4}ZHmueDx_Kjm8PCh zi}&gfDffn2NN5?AMrM{C6BXHezR)qnaS63}t9Ckz%8OAHCp(OWa6$dpU~)R&zO*j!~2pE5w&psVj7jC!)+-M{~A?DiIACy1I9f3&E8$Xk=;M$ zK{BIujd{TOgyD+nb?20ZiNiL#_ngv@9z9!98m@IXTG1^Lw?l`$LD_61>f7a50YfZ6fzYySLB>vSdxS{V5q{ym}t_zA4<-mE=3mXeL}a{JYdv8 z!msPNQd}AT1;J@Q?B{&fzv9y0!0XYQ#zkO*1Ybr@As2skV2!W+_ zBFeu<{Z8l9=&-R@vUqB7gW` zT3WhCWMX|Dc}YRq$s=E8Z9*MMPkx@J!)A^GIm&*F&7F(GIn(EJPgb`Q&p|LG_Ui1| z7RuLx&AqYcc0z9{CxH_(gio5x?fp#Z|0?kWv*<^9P3musY$VS%ni!%s7EJ1&6`vs< z^=S0PQfCWlFpjRQzgn++KeQ2qHkw(_7+t?;#L2SBwAAaX4b9uU=;PG<@Lj#=5+V}A zHadVAUGk@53BpZtm>{S#k^NyZ6m=^eh17xW7WPfNMd{2TW3b>U^G8&_!di#)12l&>>qsoZC3NBqFbb6$PrG;c8NTskOAxqo>tL8 z#25?<8aJ?pOYI9KMObW>#vYSiC(IzBI@`?N5kk!Q1qvB*3ILpG@xW+cDSTkBBv?Z- z!VMG0D0ARAK*4h8Ea-P|OCoQ?o4`)RMkmGSPPXtDYFhEdz@gv^zpWZp2YFa#u-Wj8 zd}L**kxS3`l*U0hOP@Vma)!`-Zu6&qGla}_`({&rAGw4u7mVa9>^m6AvtDw4(Y~^g zfrEl={ki%oOvRL-@F6<=GIXqbfK&#Ix?lk1;}W`riVk`dQZi)*wwO!E zts)bceO|y-I$&7kkIKkx=x}3*l zOtW~oK99W9)H%wu`wP~V_Dso37)q(TPHus4C> zQOB<-c>uT)2LtsV5Zn0KltHN>})2rg_HL>5-we~s2$LZGgbBupA z%B8IE0INK45pBfuKZJUDdHIh)!yw8rZer}(qxoNXYdI7a6HR`CXJYW*Vb<66*zC&3vqLp3e&(4fWJT-`j@&D)IH7QZs4 zs0F(U^7&Ncb=_L-LqDfB-iVz{*oS!9wtKLztC?T0U@xx_7@TUDj;qg7Ex7}##S=^3 zscg4YLv8dLrOWXO4P=zQr*gLVq)GT}@8^I1w>NJo7@)=Ay`uvf6nb+Jn-b9hEEO_; zXr=@f1?x2i7{g#U=GWdVVM1^0WyJ7@uCMDdUidh`HF={7qNMj_uolP|u95JX7 zOJFMb{zU9CNZav{Cju>OE-63(m!I6Kn+F^G}@b3dcTQH zRE`v!uZJfio8Q(FtK>Pc-r6zx)8(Ul3xu9$`;T~S`$+^j@C)@nhF5ShpZEJ1saM1V zAi&?9E%}mS+;M?0xI@9}{ExxPdk8Qxkv}=Lq~aiiD-!wZ$i>@i&NT2IulJqN0)E*B zwL>ZOnuyOYZNUX7xvt*NBa)pc(e+3H#dgupm@L_v;!K8SAdrURGAc3m1Z59A4(yAD zXR)eKpY==wTdy=jWKlyzCVC-&(_vek;uzCHm=A+=yx|MSDtFc?zc7Lv=tMcxwWC3K zHRv$rbuxyi$NO27G3f1LQGVFgj24RnB>bmI%5#(E7c9z4bO4j6PsgvyZ$ zManJzzH4>j^=*MXqDuG17Fv{Vaf)EECmjcOEk0B-o$Dt#n^|cva@npZktCR>!B|-F zL>kLPV8Dv>n&O6t_u(o=lV;{liPIQnPao4~f4EI)EZ83=nj2{T#!IrVdp@i}I@w`y zpi}W#>pH1&c;Y2&lR$wYcM}vVZq|3o=Su*OAg(RF9@d}N#l^xptE`PKWt)R_t9w3; zN`zQwhvw4<@b@}xoaTU!AoMR;`;4*Q=(TkHeh3k$?}$#JLj;?_?gZ0`MUVF5_m%5l zHUMRj&S2EQsj;i0_4HtCpQH6B^BIz*8X}*-p=Gm^+t}Z+=aHe{`#@=AQcE~=z{qBq zOiy_`rUJ{ngSlIHZ;5$H+-?-#>{3$;hG6F+11a3ibwycp~}Juw@Q8qTNq!sqOvwN zbELDW$N74)U0Ev$NEAJiwS!@vc-FEEhsodDgs%e;z^^4hSvEYB>{6G z3}K*UG*lY;f3qI2nA<05Cm>c1I@j(S0#Ih-4TT4$0TS>qt;avR2iTz#7fhHc6yPDDhWK=@{OK=E$2k zwq`bLYUT)&lYYqAEKW}z+`|WH$yY<3gs-|>*)mFFu9+v4UVA_-jflOUMfc5kpGCKM z%5!K7A#-{>y2lK1Kd6v*Mw$>&V8|V}yH-oaxA&S>G5eLdxrHubodz_c(f}Pk;})1y z-T^b}MK02sNHm17rct&4!AWUZ>_v1y__# z>9*d|XVi?kpa=1a;_-}mXC9>aKMFNU+N}SRaccp{NMh#^_r{)cv8@B;Fzvh`D&*#& zwu46kZASZn!Hi-B@nx3L5w12eBbmWK3le&)sFhAZjE%mq1>+>oT)_KMb!~FYWGBcI z>x>ittb}?`C~2usKKADoR6#V)j7aCrxW!U;V6Aq0wcyVVXeNM!8<}v+W*X@#=+m)iah{-bBns@txcj4GcN0Ar$p?c1ZLAf^ z(DMZYGea$u8xR+v%(p`(%cMi2qm>63ddlW z#)uU@dAYI}r49;^#EYdG&v^3C+0D!+N1GUJbvGfWxbkH*I$pHv z1j18v@WH81!4xGXibj~WU+}?G%iRQcQ}ELbqDbvYN+lB}64V;G7$INj^xE|G{-Rbo z5(*)LFfNja*ho#KCm8;EnDRI4N?L1MsFd@MJ%|P1oK4N zCAtJzF^L^PlgX3vofmAAsM0XWsln)*CU%=>iX1##sc1B^$J#E0aS2yEf(J^=^hzWq+v3nX)Wrs#TT+r37~mJzO^F zs9uTC7Th6Pm@%gGH*ZRUT76v1n`e#aZ{B=jg!>Sau^mR3LjWiw604k&w*Y;DtFsyK zO(;ftO_|d@PAz-e^rjw<=N2e5@p#hiu=Q{Ac>YB<8H*>(DpBPCXbBQG_hR2nV9WfS zyX77kmzkKKZ`D-`czp?P+{IwT7 zlK;h7iwd^PA2(j~(0{h(yVq{IXze>!Z9U+}8#i9G_KzFCT(zm@%6xv)ck_R3rD){z74f>M7h8(PO<&Qh zPBS^H!s#1v5?33U~Of?nPOiI^ZRkv)pyk7tXAt!Mh^4o z48!1}30h^mBkt0h7Je1)NGVH(VC>9o{@C2=E*d(|QapS`Yu)q}j?u}_ELRUdTBgS-$Ri z0Mq4={l{f>jBHM@55V#PSdbE0-@d=fuNcXZa_tQ>vpb9Y^J`#~#*Oj%m`hXaQn ze2t^g-}qAT?YKUVe|-7qBS#umg-@E=VO?_P;j1RqbuEv-IckZ{geY3o!L^td9;8leeAF=AN!iz^2Uc9{L#dmCb@!XS!E1RuHtvW_ta^%=q zztfthw!L)SNW;zAiRaxhTq$Xqqxc>OzBFF({e0Dl<1w5@$MZh#J$|;m;=Xy0FEXB7 zG_#`N_$SZ%x31g%u2P|2YAgvm9F@uEFR$5e(W|-#Q-8U7^l>k&x#^)_bl&E>=I^Jj z3Y`4<-LZ%M{?)3$sjohG(qCV=_csy4#*Pc^TW8@({q)7_#*Vu0gYa2@ef`#HH(Ytu z<7a>Q?gPg?a{7l84PU-}@24-^Tl2`GuRr>uUTv7Z-|3q_dg7{44JS-8eDLUjD>}wc zHJtwC-`}|Xp!Pv9zvx=1=E;Z~07LdY59paA>sDGQFweDfLHFw6b&ElC`Jh zm2yjcb5~q%vXlqU!H>J#S~Oay?XGqqmI0L?qg?; zc;$NT+o}Itf5$5~cvCO43`Wjc6+C5q&ueyaJNkRvjyL~JSN>C%IhK(#C_^ z@zqe-kM)O@C3mzsGKijjK?bJ);qG~ix_FAJ5Go^%Lf(Wrk)&pV5k$B`;-ws9aHymw zb1tPNy$V|urhA&4-bu}9G_hapI;pwG?6{BflnZvbs_oOT2^o@kvI9@UmZ|mh>xDt| zm{BAkT4X$o1QdZro0>NgSV=bqc|Z&w1tD1lX+mDbVX;rc%^`8RE1}Q!GD4O7K!$wj z^5hZVmcpd9i$GQ+!_>myZ+#kBfkk%G$dclbuNqk6i&K?Eihd$rWP{v-9ic{1?+gev zN&}Ry+DX2L*N9O!yABt_U1sYpL7 zJYKl>YJ+rRD)_}+h83Y z0(g{aL!PXa9i=BSsB_2ZFOXj3nCvP(5j}NMG>7}FKiQz~ZYT&)L~hrkK*3iv;Aobe z6ezu;SrB+Qfx)oAqSc|tMTygYWJ<6^-_McewZ2=~E)Wq*L7>{u4c@w^Aras)GGZb@W(vvbyAFzA z!c8}v99uu~)a|n#{*N+I7{|Gb0>n6=0>on2odU#U?FLT;T{5rKSY250j}tpyDTQfwMKwhoz8 zP#9}0GLUa{I}9s;o+tdeSL5+_rF+Exg~lVeLEod@_>-cAzAzBq$&{pBCjo2|Z=mE2 zqF;GXcTL|cfUnK&b4`ZsDmD;w??@0q1wd2)@3(~l7pSrAslclx`qRi^x-03lQ;4t3 zn(nYT84E@}noRiW7g)=?gSH10(=C!@T}Z42u-+SyV=){lL=NL%;66xn*q5kMC~onF zIWZ|@Nh2t7f3mqa{MH{chI-lSK~vcfAdx`G4)b5oBic{x)l_uxtvv4^sgANy!y zw^39RSwIQCGyoUEW56_|ESD=NUkacqT2mnGJtg<8S8_x5gbD5x-$o?@9Q&dD_U*9X z2Kge!ToqO%R2@Q{z&@dp<~XN1A|?ua2t@?@I)Efsd*__y5m1vt%-vYo-x+gfXdT5GMhw=7z_xXkbU zIYC8j@AY@v*ZRqW9D2nLKKN7DjNoqn2V;-gtU&=Jt3Qp{Fuap+c(Ty|V;dVSk^qH}2r+68 zPB!YZ9$Y)L8+sAIqY?&vFxYz|`;1z0=kS}LrJ(2ra7We;mnhag<)p_qspA^*XSBQHEieV1sFY(DCxaF{RR4YU&kL;?rqon;Nx=$;1fYj)MuEpNj`*Zs z18yt|yi@?Bh&hD5?GATn$TV6m0B}T~mYB-3)KRo`?J?jw+Fvr7pp>8@4gDz(+3A{WRdhj; zBg#W5GT^|0ez?;*$egjl;*?|%^TZxCye=<-0mhMfvTbz2gNp?tm@-;4@}O40BP4$q z!-*1+j361RK4r^%P*WBOg0LfWt@B1m0_u?OSWotNaEsS%+ZI~*<8A=NNSO! zCAkL1Pe&YkDCu>TXLGn$)Fem`P)ekZTI9tcO;7bz=UK)C7+e*emaGBQhtwj)SgKL$ zj_fm=Sbtlij1Ze`D3;h~+QX*SvUQN+44QFJ=S)lB?!nFO3aS;o>kMC+ZYD3ALxmMQ zZ}may@{b@Kmwtv8HHDtZoA>)PyYSnXGmAaC>w_a^k5*( zIC^KBrmbsN=CO@14s5X|cm$A?$dbXhT8tWXYy}S8{DP=%W zXQ6h`6byk=w_Rb@GC$g6mD~;rL8|9Rcoo4)N;+aI-KDgXB_5>l86+SK1ZAvjOl~&Z zS7B9W-4xoXbx$1ORi$8tDE!-ULm6-N1k8n2%C9y7?~X5Hv0 zP+d&v7qz#NWjPIF$dX|-upT+fMM*fWCl ze|BL}(V`V23j~ZtCeidtE!6z1i*jW45X3wZcVs;V!>N9giG~6Jb%qvJ?9d_ZRAz^S zYviWfs;nDXahRW+Lr}CKMJZqMlL9Tr@~-a4+a*m<%aBohC(u-|&a_v0Sea__1b!ja ziXyCwr1%{WdM(k_0>DR zu+emT_cH@5BO(y&aW@N_dl<*_^QF^X@2#yl8)w;X7ga>Nn6i2fJ6LXPOt^vRokpd7XYK@hQEm(U zin%4IfGFHD`{eAd&S@-)ZYaGE8FTz#^3jR8mNQpKXo6&jqOM+ODsf%lN)~K}=44i~ zrP;`4sm8FKS!=YL-6z@?dm7EKXFmivs>t93QmY%k+S~LaismSELvjL)f+m^vY@gGC z#GY&B*(VwKjK1}+WM+^$ssDLFamp~RH(v2H%z6@r?5p;zy zSdMN7Mmdd&oxR!+rOcbhXce2y2O$GdfeY?O;bbKKk`>Zt>@l2=l0~p0$ZtzAJ*sMX zn#}est!`$nQHv&zu3pUWGy77Py}#gQvfw&%t5|S}BL?h0m`?0o(wFI2bZ&{W+@3W< z-RHY1WULIN!hk8&8H1oDl^Hh5vf_Dh*L06U(iY+xs%<>RMP;@2+>#T!aCl4{N4jn> zcNFbHtc5^~d&B(=7mnrOsyV9&xiQS>Z~(%}^VHtznPil`okLVfeIlif2!gAN1yl#J z$Llqe-mDK*XYP}VIm*aH=u1O(6XC|)U{>Ysr}Pwd9!x)K#-erZJdr?FSlL3h;(vx@ z2h4JoV&46NQy1+e=EkPU$%O5m({fM-jV2O`O1V>apyeP5UjQ+PGbm=I0c^2`l&sLZ zkL50H@E6_Z!u3VL%|b=n_;eK-*0W2K;X_ zbJ%>!2ZdI{a_Ieqf&CE=3$kV$3qrr%cx0~C@=Hz-oJ%lKHKU1!JyxEEsNx_?R2@qw zjR7!9?=frgIe6#imS+7NiL`1}V|LIQsu0PEQ=*K!vd65lJ8SzxsYU+gye%$!wpB|- zguTPloW)hfxbnCh9uP)`UU1cC-7I)&4Y=bdju@wQv^O!ss=&8gfs2X+@l+q@3jK2N zGjMFcy1=Kn?780A{u3~;6Mf@K;wR+?UX)D?uAvlyD&5o} zPlLUOvtcgYzX!`lb7B^j*p9@_qG#X-IO~){fHMXK5EPw}vN(`i3w=?$@F^3<6gD-% z7NQcDw^AX38`1s0TqVdXF_n0UbmZntp+gxBV&Mo;R36#xu6oPO(vxb01Y_tuOdUPW zs5q3BGg1ENo>i~GfRslRkL!${feyvk(C$h+I|&IA{yW#2u1850vrU}8-)FjwW_hG1%V!>!QU&<-Hs zag&eFQ}au9B?M52EXnQ)t40^KM;1_c+(OQg73mnP_F|)5ZxZu!&f}jPD-^IKjaKoh_fKbzt5p9o9;3bcHBXJ95 zote~Q9?zFWZ^zK}UQ+&A1vdl2CvphupEjlVF6?;jgBDGwS#aR1+iu@w4WV$_Q;*}n zk$1znBE6B*!ea64G3>hXyd#we_w&F1TJ_R#_v`ew;{dxVD(y$7u*97PZ~R0FUYm>QNfxF0i1 zm+g4C-+DphDHUZywGMZ0uEbPb&X6I_5rbyP$@}Y_tx)|Up z(Fv381W4UOe>OWjoFCtIv9YPAmP5d?24}syr{79*w7BV+Vi_$&$;}6;Cr9T9Ge;wq zaQLRY&JldwI7I}h-TwTvsg4TrJBs3VpRNs20a)RDsJ z@ntfzP%J4T$9tx661aA}_n;xCz_*Z>4GwL#@?QVgVs*F3c$DQ8TXsV8@*xONm8X9R z0*pTEuC_0TpLEdiqS2|r97wjw^j?mZ1pBgYzRlk)0zWi_h@tQs)c6daD)X#+CeiZ5 zi$hIV7d`A`gQ1kL5Y98wJM>pbMfY!|D2&?y!~NY@+d+gfoNBx^t@Z+DZ>5>yIu46js)tq7Cd9SevG=RAbiL#WWh>gh26K;*dfDAm5`? ziC4$Or2hqx8q3(vpLHk@WUwh-_2qD}!i8{vVyVp*^g~!q6mgQrI7Zx$h#l=JRH}%L zDFlf1&1wsRaRiDjPo*JK@T@y%Z?brJ%Ce_ z3VH&#Pg_Sq9Q0Huhonh4&4WK#3EqLg(d7Z^UgB(eX@Ay z!O0^e^5-6~sQM5x3naz$JHK%|d^aw}@8bX3c)K2&hd_{MqJfxL^jz~PhD0TN{GOYg zW>DeY({CKM@P71C{={=jBjajBw*m$a6F=SjL#0Mp0!$QmQmCz>BK?L-L*2)VWAbS3 zjl=VVQ4%RNzeS#1>3n9ad$Q%4WF4+1Ugi-gd17mksb@GC3WkVj)L1Z`-L$bH|J&Pc z96p)!6be=BVOqVY^Cs>oI$&WD>*aLuM9A&3T$pr)sPsb7QzGa9&69iMH*mZq;D#MGB!Cj!HFSh{JqwIS1f1X%;K@KtJmEFw;Q%c_cu?etaLu@X4jgO(6T^r- zW@WP*;m-3nJb7J=z*sI?OoVBkhpJRs%ab;d+r}A0S72VnV8x(Aa5YUe+ZS;${3KP& zaTSJ`Ph&*`H1Lot7N!DoAefs#g<0?BDoDE_<;pPg!035UYsXmdY0~Lsmi0gy2qsMi zlVQW5#Qd>yxKAFF=6T!?a@7nb`C|P~EKsh9N5oR)#?ZD>ms8%slBDKWD}JC_8HfNa>DOPpmWD~lB3hcsIvE1)6hqlY+j9BMjsMzfUYHBl%Ff@ zL;fa;Pnq@btWv9>&>o&VCx5?TU2S+aHP}D*dse`;=^aeG(MRxI$f+t)E)EdQs4)gT zz@PDg!mggo%cY$g38VSIaNnh7Gw16He#D!eY&2yp6#dk%hVUXH>6UO$X-7s!@E)K? z8PJwcq;E8|+GI9>qUT(uv$+BDdGv^;i7SH6fM3+S5A_|&lVg4IDALfGbFRFe(mVpQ zxKWDby^mT@MxN+3^56vH--*cB0ysW2C+mwLKw4DpMI z;cDkKq29%Y%`ZKA{Z6wZlzFvajPru1;p&(`H28vpJlGR>)BKXoqL4QYF?0&I(h7>>8E~41#Jv&WK)e{T%;E(fSEv z=M^7TKa=dWzza0Cak{Ib+r;DmMBy-UgyA@Yi&GR0Bq^wXN?5v7;T{l3&;kJdKgfqd zNk!X~gvJ3DrA5RE4jM;JoFdRc80B=lVi}Qq0w0CC&FoA0PQ82p>J-K+)<%D6Nco5; z)dp11!KPt{A=`#x167X{kK9wy+1&5S3HN1$DQRRZuCEh%rM>GyNkKYECsy0mkg#eCJDzJeuoPZ~U z|LU3t1&k;bKNWz4hyqd|ehmAOTpNxG@0W#VCP;k~KeMS-^)DhAX(Z|i0Fr?=~htlL^P~iA!q`QCO8cjLPnat zZPfP@x&fR}cY#YyE}V{1n2kP;1%eDtI|@#vJH(O3ji6Ua#tiS8x>H;(@L>QeDrFdl zL4Ze|fs_XGf`bmO1x`*e1TnMfg1KuBB!#cI!%)ps?}r9A_EWvqSW%=Mc~atF@CGV} z#EwD%n=^*Wc8*F)MiBi5VM2FnH7Bys%OE#7+uy2@{S-^2%1XElt7R(7@=}ZG4U1plbk<9aGVmTqu~vcmBqv5 zrbUzk9brrfta&3V93P8-j*=G|%)@bEv9f~LLB@#lQ zuu07tcmnPnJ|_h=MDJ`FWx(aOFrhSUCmSt}5qg~3W~822YoM*zXTS=!r=!;2Y&^2YW`dHV(P?7Uh5P|6e zNRk8C$3`NCf%;3bm7^Lz3Y$wI7e$shNNi2I%|ux0lt-e}Ljule7AYnd+Q=*mRx`F5 zlg6|Qe}b9Eln`5BJpk`OAi*_gHO_Jc0Rc)x0#KHb2!OgL7AXdT70GQ75n!z0^^&?& zd%XF_JxW3wKS}Kd65*Uu9gp9p2#VQfe=A!Kl@~Z12!Zvg-m*&NQU5EUS_~-AWQ>wC z1QL>vA=rpIW2hLEKn*}ExF`_bz=aid*(MDAW z4X#Sv5%(pnRq`-wK#E4mo^t2_uS3Wn$-`*{9_Q4CL%{~)V-?YuqDmGbsXY8H za0)o_1PquNQjT1S`aaM#Bs37sV5Ft%q~3nmA#5y>4qzXmf3(mEKDR82(?UeWu zzc5#P7Dx`e6Dde2)zGuld725MOqZ~Fn zdKQMnr5OlJ39cxL2h2LcgCIpZau`G~KTZfdb-H-MzeV~J7Y|`0N~Q52 zMJm841lD1r!oi{3PjA5q74QyD4yel$3hie*W4~3)DL@Q&k|S4C8k(6>staa?_k+L` zCt)8bHz{Jc_lmJq?~a>;$PfWGTe5qiIk`{_4%>V@&rY#3)E|4(2HzwTIp7lNAd z;{KeQ%lK0v8MbrbP83 zSQR7&K$|OUCshbOn)R~uv3W{B;;w;M;~qw%51v?&^(ltK5^<1YNjNUS67gIlIL>8@ z*WgE|dq<1~CArW{KUCl$U-Y8|9%W%spBE8;C%ojY*t89^wa_?hT*^=Lhb|JKh7EX zvE&xt(bQ}!AGQ!qdmId{Z7&IS4m^n5IA{}3Y#~^)NbsKJD`rd{VHc=~Kwj)m++O0s ztlt57NfVK&$4f@Lj!|JyQoa9LuNy3|w~jl3?0f5eC`@b#iOfQqnQXM|WxHTe$aNz> zyTEEWV&d$v1@Ir?2C&JJ6Z7n;W`R)14OE)w@yL?{l>;IuV8!%Ad*|0U=|WT%v;qil z2sP0DPSMa7F4SwTT+)NEXvoMwU`4NoG35jr>W*)Sj3uTdJ-^RX;xtM>1JDSGs)QGh z%d^ks;{ZDk>luP;Xu^Z#ORYghK#xSuVZYM8I2ceQ*!Pc3RC*1Y1Gd5=$TVOaqLBrs z)f3cP)?D3u#eOJZ087Lx?FL^7yC7>xkB4&s z4`eQ%?TiRm$v7CYG68(I2X8DavwP*$#KDGQ*{vq=P>wrnn+Jglb0ekz%9f&a5`{g zXwyfI46+7XQyf7KOTq%;bB>TgvxLuUv+wN>+JmHT%0FJE*93=Dk?)CH_80(*VUksI z-OW6UeSq8jb`Ci@pp(gVT$c`!NDx}wi*}bzGg8CocdG- zDEEX~YGP-(-EHJz!j5=xNrVbQY$TD3AX7IY$M6O1?-_;s9cn3$qLLG!fx*b7Wdf8e zSZrJplP17bfe1go<*J3ILF~mDLfk{P9L`zHJ1t~yA+1Xu*H21!biWWM5nB)}Gmrbs zygbKtdZB8xSdRs|((ye;<7>zovLD$8fm=0ZG{C+mTm<_ec?;2mKx?3=lDAvDz5X>99zKSWz!Z;| zyG5n3yU4iEIxaYq1wdSW|m!H9(uNPo@>w3+9XZUmyk z*G(tS%4z()!R-j&=tbLr7LC|W>s)<)uz=JbET5w%@HqD9iJ?f?14~AsERjC+Gh$Qn zQW$Bs#Jk?_>jM@j1o#7eeIOO1dK*b@vBpfmU-@!Q<5L)Mtsyz8iNq9rTzl7uD^Qwy zqyp>*1EW$r;n?uMm^+YhxCgj-z>~PC9C6W83VBm2Wavh|_97S4jSq-7`q&&jbE&=C z7#B(|<{Kc>P^QwsMuVXUHirf!m{A}|$l;ug%83z(a?=<>4q`@**o>Vv)bH%dQpUlH zy3?7AgEFzFbxkzZxnye#RuB(isV#pCIPMxJY#Ky%q+>P6nGp9E3*Dd4v(;RP^Cy6) z!VLBPhc92o-a{`iVqicGKu2N^P@zcXfg%`)_{MmFqMYKVsMF5oQW*aDw;=9mFcESE zijDBzH;j$gcUiUYlk98E8rD!v)S<%XGAyPYb~yCp>!A_A{6fST8UWdoA6C0>1`uKu z!^3-Hf{qa?0LZBV!bQ8+wY2e@nFzL~etT8pVFL%4!6EpCzYCf3J301BSGD)wEjfde zLF_qsiK`>29WGf3HaqvVz--*5ETMQ$U@I9i*jE)aYK*AG0i{iT`%Il3x$p>^Z>Izr zKMh1Inr`5V(78cnh~NNr;wLuQ_vEs`oPIoDY|v(*MMH@vNTg5?c$w@N(J0(bxP7Uw z`@BaNZD0*KR-EC%`Kem*wJhUqd(bz|&Rsn2R={aBeuzhwb?4Y)XUof+j^}CHt)B?m zcX1x=afuz^@w&L3&Re5uNRSHevJ(EW=FMgH4{~y#NSqRQR!5MU;ZmL?a<1GG0z?=D zA_R*(tiu4v3d4ytJIm#@pRi_l_LzK@m;Qr)sTa{l>XbKmw3-7Rucg$pz70hdR5~mC zJ`ze|+>j2NZfRjs8v*m!0L%f`!WAY@2f)3fv&qaKGs0GbBiPgTZ*p8mnb#HvJaxbL z93Vs#Mhx~|olB-hZAEz&kOOLcQ5{KGxsLtEk4tsGV3ym)jcyBu=cA_RcDZXfD*^qW zK6X+c!HA8YKrFItOe?GC3jpglD}#wYhDTWi^=kmTa07dfcR2BW7uRVv{NnceK!b2K z$=m~?D0q-aFN2DMa4Q>uqa0WK&qh6@dHctUp<{@aLTpEYCSH1HV4SDI%IVTfH`?1> zjrrUQ_F)C-13drV6*lr2q?NLvSE)h@Ujm&R5KO|ipw}Etf4Q4cc&KK{NqCQtLXb(r zd~*TQYvk-SSR!`K5-aP2xQS;#UIC{Sh6wCdr<&pJGn>plYp?1{h@J^v2cv5@ z%BiLY1TYC2>Hu1gm$ZHb&OXN-UT4Qxd#s19Ft~`|OQ5|V7@($rmc890H6bY5_|NFt?JFeWo;VlPQiWh=;Ub64VFfz5)M62hdYKPPP}o~lk@F|0E_Urx6CFSkb` zj}bezKhmpJ^#pva_6ExpGJYFq%o=piz&v2o;&>66RUL=he7??;@96W9|5jGPXVZt**+bdhd_zinQEZhFowk>nh4Xz$%_&7&vJna84RK=GrxVqxI$D>(02EWksMhBBpjAvEp;EBEW-BiC}PuE>RGrjpGMQJCGb39@^bc3 z@dB1y4pc&c z6#uThCTo)Y;{TjG{FyZwd!xDro3J0KS^+7kNC4i`r;ZsQDHk0tM4)v7Xlb#lL0o>I z5_arDfazHH&;(p95^o9345dC&bvnOVPmi4g3V_?gkxeN-;i%6yoq_&On~H7d&@6iF zhZ`r`7kldo=j?T+;i+*>YPZi9vYu#>X)Cci@~cGwJ}}kyvD;f6*C|i3%Jy1Q?E-%r zUlWY?evo-4N*Fr~fZ|yTHzM?b^^S!t<9OHe`s8AJi>G5FDIk)HF$xr#4l=0c_(5|(G{%kq1_J`YO;rPqtfI0!$L7BO}o{8qkMc<{^KT4Ql9H0#n@ zZgPyh-6JMKQ6&HPQ1?5nO{_|?aX2#!GJ!9^D&>=}xk+_nL;$bQ^j9Gw(s|DxZ~r1c zn9WgDgXRQZ4EGZ{YbFWbXoJzfCO=3qH}F4UIoYA!=x^_6c?l0osRqDrFz4tsg;{ne zXdM|DVS6NTKp=_DV2E;n0gQ9baU-Nr#8G33!xrRb7#y;jfGFX}#3PM<`_EqpnlEdW zKmjAM#{q)cI%o!m06}D5`jsVnX&lI*Nss{&aUfnz2)%|Q93$QLdMTABu(5fIxF@{? zdr&@~EUe>t$A?nX6TAbvB*ny0*TmtB+9onJl>PzcpiV&MOPme1x+?W}9J0$2a8@4# z68D6|s9TC+!|HGvfq|)rZamrvOkKn);xNpF574{7 z#gXuy5Q=j6sfZOC@7`e8KLs0P3hNFxR!pMVb zF$1JvIB`|S0|JT3A}HqM?)^=LH(T^yDZJd?SkB!%W>2y~N(&&gbhm8YGZ5X3Ui8RVJS_4QbPlbY9E+@9`eq!<+BPkKD>M;i2-{ zj5KSzU<4#7iZ3|vnOy)x3rYnH&|Z#$5C#a)90`CccV-m zOo@1%fc=|g)s*S@Hwjg4@occ{t)()y)Fr|>VZ=GjNp9jBK*FkURa*~PSxYqokfWvZ zPfmk1?=Pz7C^@Ja3$(e(Yx7N%vR%s8h;GU3kls<=f2jA1{szzk3i%ibR;2nm_4HYt zE!J(?PQd~&$m6gymhow!I20EWMXe$BB1;mlu;j!tdn9d=D!<-GZwHBjkWdCU`|%*! z3B+q8f7v)n%CTHH&(pKZ9f0N_f1rAh;~qjtBD(E1S)}c6QB5RsAU_zh9*>+;O#4HE zn&>Ylc?*qisY??dsItSuo`zVarjh!IMk2-wkf6e7r1qHBGg>(HE7)dOqaW5!cACZ& z(F2vHs!+dRSdfK-=>+5j%Y^lWE0T=g+fmQk@*fd{3U8G3W^`(SW$t`pA!kIa+n8b8 zp5TPS-z3F%x0x;G9!W~7?HdVEQcDEp@&|yZfTvX1_nm)hAq=dFI1H|W{AXQu6dahd z)iuMiLx#utoU^84SlWRWA>lhQ0+TTYp3$Q z2(rQ?=X-YfcZS9H&Em6@TvsLM5a+Xq>C{e8VM*5?LI6@uBo-Cxt6>AJ>eNgWiwrIX zn}8fLaQCxThdptr#?aaXEC|L&u_% z2`4gViX@I%%7X6121S1pX9K|fQCAyBux(h&vdDqs{tgn$a#!$?NLcqGbPPEX96_vE zq}U*ffd^n$B^jf!6gYD@Fm4K;vGb`@L1RbJ-D7k@vv&T zhdf!z?n%WE#)@yre{o}^4%HXy_jcIBuH`)8GIBs%jsK~jjgtpZk)}74aP@}gnm!IK zJ|T7MBwo7QP8T)pk6@nwTOrsJn`~Xwevr*Z0+`$>H<{?JDhp-Z*mK}VkyXgp5;Vc} zebrNc(CGu9q&j4k!FW|!1GGr~kYdsE!4gi#F zFA&<`3A`ZSLF><#i@VrvXw`Xgp&(Yc3f2(cz{W{$KgU`@eLqB|e;H`tfN^g=!M=G$ z*slLX6F$6sK|yCId|yEGeu3SU+etyZ9PshfSmZx3_uJ`0-7(-BVa+|3&mQ-_6iDVhT^-P z@5Q|pUMW`#VQ*>=@yFDn5#9pSGc{fY*@UbVyP@0(?eCAsY~tD#qh0=mCJOWcRVHhVx0DX z1hT3q{l4@1oMSN7W%@XK*y^=U$ZJzM!AM@iQ|f!1Ol6?MFa|)v973;AcL)yzW$-9j za?tP0(Ci6zMU^JWE7fR723Tlv8^pf78;s`P8^EzZ2%Le~Bi?nlURt#uQVw_%wHqS; zweGKR?atdvt3>!cgp{EgH(N zw_j>IAv7|%#ZP38`!gg0wrG>UK;*H=^a9bcXw-`m9~Dx3;RFo^j~f<-R7=CI62L^Pzj|K-^%q5!Lx)%+b_7jl zanAWk)sCDa^oU@|y;v~Dv|G&_ZT*aWx_g{m;LdhAKkRf7Qt=D2>RsW;8-XT!l2>j| z>4eCLcZR3SzS2A1?kufS>h0eaDYrP2@}r(d*`}5;mQqFFb$SaAWg2trO+KyF68nL& zPW!ps@%Cjmxb5~}_;97N$U>)KG~siiUk|8ElMfC*d`bGkagS_(@X#{dU|H5gIew6# zf$=~VA8fndY%|9Xkj~Dr+snou-5cIp@x|zTOc_T0!>R_f4KrV#pIr^#PS`J~TOU&n z5CC|nM)q);*z4?Um^U)B^w^OsS}=)R{m6NDgiRP%raLeuUZxl67RBlBu&kQ4a(C z5#9*9jN#1m-Qca^hP#s8hAESq@7Thg$X$gQ=T0kdUQq5D8qyVB# z_FP_Vy`U!!{@w(d0JLP@pnd^0W;UN@4;Vo_2hbFdJvb3K0+4TEIi=Pu!kvfD&9Me{ zL99t@*q+puRNdj6(HaU;L`qkJSwf=5qq{>NLdiDVQ~Uq~Iym2ZCf?Z!a7ouz&Lv#- z*fq;(qO1^28C#421qGp&OjlGagL>zIZ z1Gbi0V=hI$Bzgqi^z((autP0R;M5bI<9o6EA(R0J0)JlGvp~pyaB(f($ z+`x~Cr$-zt9AZ1Rgs2}{IpkgL89o-njKNcd2{cV009+2>Bmi(&v}B3Yxd9u?nB`W> zTn4)$BNbLSlvvIg^l_WhUKbl_$pRJHL5@bU7YaBDNK#b~d!0IJuGAk&@ZVK-lUIw}?_8YJ zH+U8)T0Cn>)Z)YlzauR{%P58mTrvsui^MNDw3`1y$)pDg{vbd~y5}-OUZ?F`ywAD# zUEXFce8gt$QFlP*06!GIDrOhrBs@3e1qNds|0^5d#Dy3{3Y#Pz=1p8k${5t&Ghwtk z`5|5RxZ=ozetq*P_gXERM(4Ki{YB)KzzvuTJP=$TxJl4JV`@zb`x?Rx78{t6VhC&q z)z{F{#gKYk6ea2G%Yeh(W^GApWS#T(}wBTq;3uRi!`GS~b8RtXL> zpG-2IQX(j`eYkoX8pn@bx93CGRlPX1DXMqC$%A_WDU<^Vf0{xwq5?*q6$?hi(+m#5 z3r5F;+;T#ejIylWvy0yy=R|SuHLk8$WQRYy#Jkq?{6Z*1r86kFQEWm^R#10fRGd+o zj6vB3f}?l?5+=cbT4%!vBwP-lXZHQ1b!9j3pJ*4_MC=Zam5 zp_8z`DJsXCg=7RToRftE0FQvO7dTn`o-{e6Oo0y&DOET^G7p2$ec2cR?S{>T`$Nt+ z+ZQyBUKkk#4h1qPq?KSvayF2JrxzP|3PC?Um;xCXQ{qcg91gO}Fae7ZmQq&tS)&=# zq9J&9qud$Nb$>U>JjCN%0XA z8mN7D>iX@*`t14c=Zfqy*XY>dGJ+wKZ^K4|EWwy#!-^e1ct=_kPXlVHn#n=cMGK8% zmZ(yt85!;12;15I*Ua0YDTHtLTNi zi{dp2r6~v^o6SK+!C+~3NDR%lBH2V~?>iBDYC-l>u8~;Y%Ua8&T6JA)HC7rKJ5mDp zA*>VtCdgczI{0)_cOK%z!LO!0CzvtRXPyD_v*xC!$33V(zu4J}C4B{!7Rv|jANW|o zyE=|xoZx6v0|h&hIZ*pCN$zlNDR0Pda0}Q)tP+7ZfCnI8^Sy2OM7nySIB|{3zNRMo zDaPKlU-w__>>9vglrW&k5Q#(Z0li}Yu$-8DoPL%$Fg&g#RAlx&{x9ezJaldbfDeH9 z{o(J|)z5cta@oO}(N#{@B;pA5)S$lzR6M+N5syKK(=0upY{7ff0049&lA)$J96wYR zU=skbXYYOY-upvw27ZYyJyJ2c9)XPkZ?z#vlaTMCStBVBWrOL@q6!h!k->C_a<5o| z{fO~`l0kx+iiLQ~MdR(~in6`#0xQ(Z=&Z8O9ouZbK1BhPZ$DZgV1g_SY7WS?*B@~M z%d=Lflp%aN+6B1IZC_~kSRK$s;K-`S9-LePP~agbIQ!b_p(nu{M>hl`MA3P)+xlZL z%m+Ab#YFN}GvFij^HoNI^dWJ;0}?EhcnX-oA&*rlmxr_=Bo%N%%nnovf<|g`4$afa zm~&9IXxL_Mk0T(>MeNyTKYv*S7{N7#sjeWX#yNj(rqc2&(9$5URQ#z{PQ#gK4yEeu zR(54S$s~YpHX_@xw||Kkxob#l!z)Q$bvDvTO3jD_P6#IOIhFX**$rIWwa&2eb(h7X zD0Z3yKdFHtjf|CyUOF*kH-F{Cka1ykjr?duir|_6?!c?qp`M=T29w6#pq?s;1VyF| zvX%rhkeO^26C(NNTDjHwh`cPl+DU)0-Vu5O@qyt^+4SoLRYyF8=h!)1Jv?b?1%p*5 z7ip04%(E$0D> z#n2^v3Xc+Ook`_H?Mq#}0PQuxN}e8Ug#e8L2z0=@XSf=;%9$U#jdQ@Q^s0HcH_M@m zD+eY)w5}3+OB6ajQgI z?Mn@A^ZZ_ZIDj8ooE(;_@Wx9)l#^kny&uIdcq3YiIFhh733h;)pzJ0uUu>)NS6X97?LLU_LDClZobW}zm=u%`}< zv+w*TC4d+KavguYIW&18vUNvn@hL*Q*K%*LOuyT1bSR2>d*Sq8pNRmdzkTw%D1LB| zD}9I8#Mzh#kKNHoJVMPs*c7QIRw6CA$%&2>)+#JQH-aKAaB9_9;8rfrsgy_`6&<+! zYBP_m;sghli&~~PuLcMxcdqGnQc2fB5d;G#L*SHcAdaHK4NvC^B6J!#i%AdLi&P{$ zLX1Rn0SQ^1Pf!X0;)s2~WS{(ElWG6t5!iA>;nM#clJt_L;&nRK0)^okkw+R_V729f zbADCBcVoc@(@eYkwX#43v^J%~0AVfoF{v}yURPDLFT|Bg46d}RxfJzP=qI2wiN~N+ zLwCC2AVdq5%|fcgF-;yZgu&-bz~FwfuVW_V?%|hQsJkj(*}507ks=dV3@oCzJWYok zM2@;E!U=fYpw!V4-BrUHa;0R4V{ds{`LWv~bUV$c7m(V|7wvYl@qX|LbxI@Gl8Il! z(v`^X^%#xm9LjT(uPs=UyD=Gs;aWR#=s>trh^DgALNc28mZ5}TF zpt=(j9*RwbVAEH`RsS{I+0K8wkaK8A-V70>v#SZVy$(o zksLcQ{f_eROl>8=VNPq3m-uCvNfK|Jd1J{YD@%d+^wt8M)#}J6V$%bKtt88=ZI=Bz zw*t(-3WZ*Sna}xz;s@L>n0A{(QOuoy^hWq`#r3l($I1+OO*$I#6SOj-1`;f|yacsL zYRt(MvGCPknbHir0DuRat@V|1Jlwbo%S@#qj9Vd05YQn9a(=YK1#_(qwtxlfg6qd& zLWqU0pNd_bm!&xkgNg}-Z_UX^kSG`icLWELYB+3@O4xbA3yTD&blCN|a{DXotMi8P zSt~pE)-n?Oc&{CBYcF;U4sNf6`%EBA9-j&_Hv@)FpzJKUDgta-ZN3 z|D8&3*b&sckiCM*T)26eJ=^_tj4`JVE(_QNCNC3jts2Ycjpc7I?}gEW8v{cFm*+^q zn5U=%gzkf*&5K8t7Q*ojJ%W+JZ`5tX?;IxIjddZm1jvA5h#Q!B=1mRQ6j(k;!8Q0C zQ`5lM+b?+X?D1Q!*e`!m%t>&l=+IeXHIuoI5ZO>z2^oA4B?}RCCqN0C)Y58hAE6K6 z0=M?hlx#VW2((#fCuu-iDP$0CVaV~4Ra*tMgEY+GV13hv(;B&?HG1rqi#mKP(2M;c zOfbE3kRF4aiOFF6!h42W?k565sY@#R(G6`FCJ6(6We`UlXEKvQh@bi>b8PW_cnXxV zQYE}=ySJItg5?~cwP-1e&y@9I;lQBDSQDlJick)S^2g4O*4y8&BFR*QMkMMLCv{9w zFl2oWyLh6coSd-7yr3DyzA_z#=mz0S0W+Wzfrb-1;bPDHEaJi(k3a(~VTkM!72JAD zg@n1ypUC1Bp>xR*NA8ZoexwR$CI~^17%%m#g=nsPz_ayg`z2TNFDbH?j!lxJ4Z*_J znEfl~@bIBY2^65}Q^FyA2Ixb88Z5FrdCcx=Cl%-V1&t;s(q$14H)q0smc1;@=EChp zr^HdUgApN|7xxvdg;`-AUS`(9eW6Cg5sU!vVUxyg)zMkf)DvOXbr~i2<&-x7UEyM5 z)``#KJuh(cD6=fmBbNLY_y!yiq#f)bK3L^{$B@(r7K=14pm{QOb&sw9$sIR`hL23x~LRGBV&&#XxS6dOo9od%u-M zCgqBu@QKK$N(mkbS56Obb%tEY@&ya13*7$ zh$!rKsLOz4Be&(+--JLe^)y^iRg{1&63WJ3^N;GXLe)S!oTaJa@4-mF5k&J^u{3FA z#6JLVs2N2JgXkh%@2@%H;wUDdRsx0P40SFxbb}_MsVg2GKfTj7Dw+#$Pl_!H;D~6E z>|oiUrj;7|{Z^Q*+*NX?+rEr+F)SvGj8fBzB%bpH-_{3%Gf)?fy@uDBz!HOUMH2UF zQRIP?gMq;$p-2EC7-am&Hg_#E$VacNR~9~$93I!2=X^Z=Ccz313Yrk>LE0s<^DA{6 zw|SkK-dYlyMHBCKvz5h$x$}sj!f@3sqA36+CKdPrzph|Sxa~#$rT~j^JwM7&KhCe7 zFO=MyfLkzJvXGQ5Axy%kOTQmChln1_L^U&5<$;sx0$vk6UnQX@FrGU+tp^`t^<$xR;0AZkv_Iq_Nkf(; zbL{!`%EaaPxg6_qKUX7_gBwpkncU`TH6JJqrL8fe3HzStue{EySyZ6Pf32yFdN*+t z3yU&futQ%7(G0!I3Q({|vXJKh;syR9q)KlwYC|Kf1%7~(afkgPJQ9IGB_Rx9@hCP> zacB45Nw<=lreQZw=efN)gp2Gu8^`eVJpUe-wa2ut=H@ZGkW+~3HT1)ioCG^%B|sjK zPbkr(JgT!miy((uV8|KTtsXo&HU@PuuwBqOSZB2PCL8urhs2Qsi9&$i(8FE5$!%4w zY{STYf^9Y*IGsva{Y@?VV={$Oy+>D{PIRq@k*x;=gNwnrOBxV&*_xP>9ZzlwEdrYI z!m2}5g6t{9_pAXHoT^Ebvlfbnye{YnWDC4696V;8H5gqu15!1lNV1HWWKeY68sZml z2=ZM$aQG;r=Q7|_y@{m_-ZRk9%k(^d&g%hze^e$@{zJ|Z`^Xa!?vbyG#DCq-05I=9 z!f2vhPF^Su6aa#Wy3}!wD%F7)D*)Ojj&I%yoX--XNqpbcLAwV2f3_U654C|HoxmBi zh(MV9tJHQ?-X|;@H?BLf;}4qiGkMRQ@?N!xF9~#FC*RHV-_wZ2#I{J804xa7E9+G< z$cRFV&Mjj?*^;ol%yDI2`>mXD*>Y4!05dbJY5Y{`@2N0^>WdQub00SYs<}jy-}2Vo z9|yGN=%7|7bJ79pEw9~D;m2prxjKaNv-zwm7Jh>vK4#(N?A$1xya5VbsB>fILdV-jDsors6D1 zx_MHdnlfu147UU8e~2l0dnV`E4AWw*>0Fa2zk?`&8iR#htQG`BzIdAGHIOUfzI)TgE^^--asux` zbHR;m?uxC`0ho|*5k^;wq zVCDe7@VAb_Cntk9MHht-!3zSkErj5kNz~25HDiL=-DERxHdxdPtY-EbJPfHo0R#1% z9d87}7RN^dA1pzl!TPg1r(m{PR?zbwS6NLdf=0MMY&P|p?f+xfgAf%wC7rWJ? zg1g>KU6Ey9>}Ez)u0loy#DjxI>0n5MgNuAD8wLldDRBvS1R={LLm=(6w@?m)jf9OY zB~G?cPhyd8$Um6i!XKGS+@dwWZ?v&Uy927pbki}l!WlW~0q((_ssL}LmSiq`=A_KM!V1JUMk-6Sk-->d=$xilU#`o$bUIr_Pp}K`65q zkX6SNHh|G12395s`VRu&cue@uDvXAq3>TYnoyg0dY+nTcN_FJW>BSc1^p6;FY&TNW z1&|#@Cq$wzq%06yL^?ss7hokl(X)UxfzV~H1CfU8NqO|YDagk+onf-uv8^yii5uiE z*&f+GN4hUarJ66w(T z(4=NvU}3wH>u{+I?vQN`NC$*U>0k*YHicgnu`en66oH8}=eepoKs%Bcg*wV0lgQ%! z@dL;lGN?@TWO~8ipMk(a=3%pQK81U(^@)_F#yhEV8|29p&%}+L_(qvuv~+v;tycSl zW%9D}-DwZ@HJ@)!%3EjI@tg?XHa!9yME-?Ajt^~V%gI)8GsOI|fiQ7&)=(P>K9m-_ z0!=E?aMT}$qa(hR9ZFP|WI>zQK}!FEt-$p_)q~qtX{Z#NVmN=WtVxAnGn|$e=*26LimLvj6!kGx5!1LIo|;!BX4|>!XHw->b^zX4vtKEnQFjPw7`#?24b$9MTD0a zPU)^ljf#3pf=#NmQF0>nrOBM^@S$?8?l)&r!j+lrRx!Fe6nV-uW~La};fl_JA1ekf zTR{OKJY;XMfu&+M`)Yvo%u5#XC&CQ0ajEBu4Ns%W$9boA&pL8niETq%2Kuzzl_PF4sTG6O`yH0K8$f@-$*7w z<z$!H!RH?n928+9RO0;Pfj~87U)86a#xiMVTbx70hMe5>aaBb{(fbx=OGtY0gqS+$ETnU(hXSl-nzXmUCGcf77;UcQ z@d=0+HrM87D=@5>E}FXFd=WHD_<=+?RuWr7x?GjJcqs81E2E*=4z z;oo3pFpf+e1O`Y}#KyRFIA$pDNun1zDyNy@kbFQj7EoyNMqo5(8ywTPHyS5#MMR2} z-_W^j+B*5}x#C-Eiv&ibgN-4JZyn*4D5>)U$Rc_~r5t9uif2CuD0rFp&qR3PNXs1r z>bShHJtC)iakiQ`R;4qdsud3N4Mq!_UK)w$r(!o?Ltq&AtwvJHGvU+)O${&Ne5qDZ zdNCxgw-)I_2dNMtN07m$sIu#^QYRSUJGem*I1qq`vE>iSdl5c?hYp~HydC!Cs%Dkb zLl(zHNT*-LASs>@A%%>Gq}uTHCvG^aiD5buyOJDy;0$}ab7}|f!%ZXcCXJj#{#a|B z;kjNXseLrDOC=e9W}FEtNqo-thV13*moYyxSw2IH7L3tzVM(aVSmYgN5eB{E;K}qV zKyE4V&73loofFqU&r%5t?MNuz151tftj*DUxDu1;GT@gcSuhEZw`jFLXGE+$?@G#Z*v9)rJx7Il0wa^&}NSa2Y`W z20UFy^u=415qkS!*Mb&Jk5X^}L`)`_q<@v*P+(~cv}_Zewn#IaJR_FZpRGhOl7o>% z9h#g_Vgx3LFx=e-4}ncV?W67|75TN}@0N!m!(|cs%@QeoWz}^8lgR_4GRTA@W+$gx zz>m0;xKApi;uF-d5RN2#P6vWxz2n(PPb0d?Z2l#XI7m6PQju_y^$m8?U4-S@OS=(x z^a_t+gVTD|*otdVt4zmksJW&BgW`iCA}bd3?7DzwMJma?vwBy zu8%w8=RCgGiE+K^e=^#-sT38VmVdz~2y?6>LK$BBS^shJ?~5OCdTWxb!@EiNTMyzk zLKGzqCc_l&zRWGG&wbbgp@zIq%p}YmU7%O%`F-U<)k#ZrGzJ-asCR*No<5y&n`1h! zEU;R?OGX)mJ?2`aJ?=NjIbw84wM!36!k^St!|zcW9Tqqx=R6FK5`;~HGUR7i7UXP6 zx1q#@@l9mDrWI40?TzemsqkHV0w{l!QRAv&&oL74)xZmtj*w0UFaaVQDljENk>Dz1 zMRF3P^eKqxnOX@`6GZFdbhTYy-f2(37a23B!)*7B=I~nW%^We`{$&u}`ZD{^hH^!A zX|C+`){VFs94pD8)6mo|XI=ADz|`ctFn4Gq64}6$fvkt60bBv-9ZLN8vu#8X93=qO z1XVomv+nl$VOIe%!#wOuBe-#`+3+o7E$E7gDNpqjM>QQ;dIu*&{v$%d>%En{ku5z#@VUT#&L{$Jn z;qbKP+DD;`(cyx64X}sbb(%lZ5^3t{OJCY4O|6~i%izAl$HL&!nfU%-aDC9}Ol*9h zF|pzFCB_u~E&ss(y#zw>pG+yA{tx{#0a@}H{y!lMQ8;Y43TF+QIrY~JTX|vrlOH~? z(^VMWIcx>Og{G^xIc$1@b61+)%EjBwoZ3qcnZAZg>Ua5?uUoV$w|(2n5r4<_Cr9$e zKX`~YJXZhRyx8vklk?*bu5=ajy|Vq}f)idp@Ldv4hfgk?=!>|ECY2`F7EP%?V^Z<7 z&POMeoSyi_V^>OS+zw{k+C`{Uu9`p^5KyX)7M4(@JPS3fef@v6>UQ=6_n z!8)~h(~ODVZ@zxk;HlP)i!L~|^`=FecDCMp;fvpIyX}?2tJ?2aJ8{~WJ2r3HIp&{k z9+@`w?t8ZSJHGkgk!c;(r;pq5{K)k2-~R2c>0RG>%bF416*zfDZ@$*(du8*rKkR$;p6_0L+^30=%&l>R7Zu{;)PVL%R6a5Wq3n%79p1I~^d!Y0ylS*nQKGhJM zcVW@w$|VmJO{rb=(o<7vRy|fUwV`F@`l(Gn&?%PaAvt1I5$FJ@nG1>Ej=I zy?93C`|hV3!atZ)a$3(%FDyB|?>F0?KK+E>zx4FXeoxCYvnCbIx$cZ94cA{cd-}NV zopt8vCwk_bHM=DooHJ+MoFC0OJ9+(_v*$1S-kft5e9lugH+f~x*;ei~b8eV--tE`Z zS?T)gf84O-8~;*j43vFh*+ZqqVdM8@=dNnG#+aA+{zdE0UHw$4v1-mw8ZP?jMd#4o z!&-2~f$MKvklWmU_Po#5-e11(bK{JGKmERZ5%2$eZhUULkxX7uc=qOGsS&xN;RfD& z!{8O|J1SD8M)J$G`!=UGo?r|NlzkO8eE+p)oIURZUXZzB?!}cuyx^;~o4z{qwRYoB zcF(GdedpcsnHzL}zpq?;`<3ykC13yQ#Z~8j;~P7wKK0Fq-l+Q2_J1q;+R}gi!Q@XY z+wt>tKWlmDlUskb{HB*~FjhSL`KGqfAjE-{cCc6 z`|JIezgc_#{>!g;>t92|raw{tc~8|P2R`p>Twg!pYrX5hNN(%q`Y#0HuN?S-J+b2U zwIy|p4PU%sYJ2jFxpNag`(nk=UB6gYbMY(5rJ<3Et?QdM&E0xs>rIPayt4hy#api$ zTX%osmpXU6^5U1ec5Uw85P2ezvby)pO^8o;kbigb?*RbzdYZ!z z^R*u{yOVzx@$Z3d=f`>)#(VgQS2P=k-1sTC@kgfxJYW0WhQTTHTwd@d|6e?X$UhlI z1+Q}c`JX*W4pn%Zb7YdQ=^DexHHK#yKBIzvJ;PRiAp_8F-ewfK69z+6+Hdez%gw-@ z955IfJ%TkndzddPjrRIs24b9XyD?z6c7~0B@r1`%W!x56>9xFF4Abznexs#^ar5xr zcHm0)p%k)1LMCz(cRJ>M|;G!>j=3@Dux=TKfd*fAw{XWCTb^FH{!}USqNGp>$#o+Ed zfkM+5*ibZ|=Qem$W7ZG9_IW;_y`LvD>bakK_wdSs2E$$W!v?=`&f3*Jv%b{WYV7J; z%T*Is6#99w5uoK)ouOW{w^_bl7h3&^oZNaLC@>B%KJCWvfW>z#HzV-m zJhQOy6_(ph&vIi{J&(EVc%y%WVgH;_KWwELnEpcdFmq_Q={;=}d#lVv2Zmiw>>R$) zG`kHvro!Q$nMTSi#91>RGHx5N3f;VY7VFlk>@mEBl@)>I3$-a14u0ms%<9ptc|$?j z4+E_az8KKP{J{m<@&FrOcE z9~}T+YH@PO@`X#%qYuByRd$1`^~gcz;orOEV{g8)$f~SxKlj=K^XQkLQCVgfqrcXG z@ay05ysf-lekKp`kBp!XR-$ezjyUaUUdDrJ@&4Vp=Wz9>3Ltka=W z5v?QBMSwPR%tts+4SztQk`e_%!(Yh&U>YDZs(L`~fLaKBXc2(23!w>=7DfVCmm*gw z%|%C_TAgE&MV8DSvaN8W32F%vkv9|_5we?NLlRMi4bpz8&hl@vO4X#iQ&_3;3p78Ihv14c&-t|)MoA}>;qRF%=d z1UN6{+|uK0Wv#G(q~nzGK|bF{bTZ8c^0<_95U#i|GlE?trO)WYQ#EgQ^S&{8$yo|1YUNzUJjF1#SQ ze04H);gS{D!{zDBB_Dc0?$Qah4YNZ9%;usf}5Lp&)T=t@a+A1_OgfV%9_eO zt?OJh@1Kgt4%6tt@Mo*+9jn!GRvqI%dIa$Ht!wjxWo2)@76^_vT6dPcf02)l=jfH5 ztS;ME-1QhbE)-nb*UD^TUqh`z>i*GSAW?v{jCp_J6F)5 z^4=AmbguC1=oP;GC$r`~-}@tTGfHC-@W1Ua88uvg+o{H=zQTi4 zm96`IAb2M-J@?W=RDLm-HWZr%N;`~5pQx|~OE=#T$omTkV#Y~6l0GhFIGQGeq}b@VLwn~qE#;AZCm zj{I?SNJpOae)s_*qYp6rbywL7*IKRH9&?`%f82DQ;BP$G{vM|pPq4#zg3WIRf_Jef zUija>4?jV4^a*bM6`S>d*?QnP?+NjjUH?E&@TBtuJKr9Cf@l8YBTo<;eS(*cFWcPJ z`tWzKH!tV^1Kt0t&i%iV9liep2LkWU!2b`yec9S|+Jo1OhcIZ#@CWw*T$DAjRX5g3>~d*(UEtxhe@ zEK62AoZF>;y5~$97#KK(e+Lp5^YbNV=v#hvel>kyVD-Ss0|R_LW1wRefB*ES_4iW; z2F^SBI_Kxp2KaK3em&*WyqrJs=WbnN`oP42fr;nwcK*uGGxfHUoj1?XxBA1tq}95W z)Agg?JuooO`R^HAk9VJP9&gmwGxPzx+WF(aK%ee6eDnw2!dv+OU3%jA$tjap4leCm zIp6v7-*ElUeE9l$-ia5@jm}=2o-%o8-twj4`EyTmUev4c`HV9j&ht%ietU`@^NfLs zr|J>-ddks9bY3?wFzZs@l;FPklU_eX*X2k4`J1n&yO=ur;?$I-=by&M{avrewg0Zy zV;THiulM&DKTXk;$)B1(b=uNY?6kl6{+wBzI{P#8&gr>y-Z`g-ljroYjutOYMV;j` zdi_hC{pb8*3Lnps){gj3*3Y2U&*%lXTdjZA(KNkta7y3uxzVK;&7X31w|;iU_wRH4 z*}7hO>a@j!%THfCFE)E6x{*W4b9z2Cf39xj@4nxb@GR$3ZhukwoXC>-b59*GD!j8+ ZEKOdpx^fTx{eSs?P&pDnSF?!25!kcW2gHZ@oYF&RXwB>)wx{g{mqu;+%c<-sePW+UlFmL2(c$H=EUrgW|R z|GYQu>uK4ZS=s-*v(0b~_bWI!j!IEIUkHj}DOZewMy*t>Hu9x%C9Ks;VWChCgKCs7 zCiz?xRSMNwA&hdle65}jYQ=oDQv3fL9BcgVfB(_{2foL@2j>6mko=GD{`8TGMdX^iFQ}e=}KH zXr+yII_RW}e)MMm0~y3%hS1GWhB2HGq~ClbqZrK?7GW&oSd{ThpqGg(#v~@QI8#`H zC0UB4S%zgck{8*o9r$josOUJ=u%B*@qeI z%YN+70UXFd{E>q>ghM%u!#RQ@If|Ja%`qIyaU9PHoXAO>%qg78X`Id(oXITC;%v_0 zT+ZWsF5p5g;$kl0QZD0iu3$D-auru|4cBrVf8u&>;6`rZW^Uon+{zqo<96=gPX5AO z+|51Q%YEF>13bt>Jj`4k;ZYvrah~8wp5keq;aQ&Jd0yZ}USb|E^9rx>8n5#PZ}Jvz z^A7Lw9`Ex3e`P)&@(~~N37_&ApYu1q;7h*ZYrers^j@y#gdzX$X-fJhMz{G#`s?3m z%K!L+uwmC@?ZW7UY&Nsau$F9QSZg*jw9Rj{XETdT=*VWSoY0xgw2$n{W=8h&+x@ed zjV27pW(G_dILMzKoXzwM@!Q?mOxL1AeaWzFX6NC4jmTz3^z>vi<45|hqq4&6Xn%Z+ z-(4h|88y~#j>~2`M=qMpTt9w7@5IF>O`1G;@oeUomMK$~SYpYgmR@Gr<(Btrg&>#B zY??0=OWDk{CCgzpvrkl6am5u^%4Vkg*0S;{tFAV6^)=R9YwdN`U2pvjHryzi={R8H zjW_XY(`;siX`5v;Eu%NjX2xyd>$co-tF5-)CYxDw!nWDWkWqigX7bx@x4l2M!;W6b zgq^aP;S+ZD+Qv=yU#hjbml$U=*-?pqX=F3MZ8Kq)Y-Y@aUH#r_yY04nHq-rM>mGaV zwf8d7aca_Xt4oqoodvu2%jw(D|EHnZBf=bfL;+%ozCUw7d}e#o5{Uwp}>mtA)G z6|=9r%74E4nrpL}!HZt!KmX}^-)+JTe#%id-guK=H~ZgHZ~61BbKJYzvYEwhzayL3 z_Rc&1a@XD2%;$LO!H2S$u@7f6XU=`(kw+hW?C~eEnaP_z`P9?T zxJ6^1_4c20qn~#zUdU#)e9^C$vYGEY=Dqy#E3drz>T9pR{>Gbcz5UL+@4f%QU+25^ zA7(R~ef04spMI9jO#1w9{_(|^+05Lp{@1UszxiJ&@X!PHtM0vjwSK^E`|Q2*ZhObc z!T*tPJi7YGAI49aKm7MZ_`lD7apHu#vOTxomHn?sk@;^0P3M4rM~eUP@bKS$K%amA zE{)1Y%DL*Qo3jO5vK3pi4cqbuwqtvCU`KXh zXQor7MxB_12D`8;yRkcauqS)5H~TPyec6xwIe-H>h(B^Lhj1u|aX3eCBu6omqdA6S zIgaBwffG52lR1S`IgQgfgEN`MS)9!|oXdHf&jnn_MO@4!T*_r!&K1n&O0ME+uHjm) z<4;`A4cy30+{`WfnOm8|ZQRZs+{s_Ki@Ujpd%2JMd4LCbh=-ZWBRtAuJkAq5$x}Sd zGd#<4JkJZf$V<%QWnSS`UgLG%;7#7*ZQkKs-s62f;IGW*Lq6hTKH*b7<8%JT7ktTA ze9bp}%in489Si7VA>Z=@|KLY{;%ENJzxah;`R$k1GzO% zg^WBQGoA_bGLglY#AFs{3QMpgOR+S|uq?~5JSz|&tH|UjP(*r>DH9S=VMXK_nUz_E zRauRxtj-#&$y%(N*PL&#UViFqc!mjMb?(D&y?8V;f!wmLiKlbMU4&)&I$iW=Kp&W*sCUXQw zauhQ;nqxSY<2arZIFXY$nNv8G(>R?oIFnhN#o3(0xtz!OT)>4~#Kl~~rCi44T)}Lv z1g%z>VC*&D_GDxs^HG#_im}o&1HnxSM;pm;1P%2Y8T&c$m37!lOLK z<2=EWJjK&I!?Qfc^Sr=|yu>_S<`rJ$HD2cp-sCOb<{jSUJ>KU7{>pqlv4B1n@;yKB4}Rn)e&(P2i(mMa-$)n#EG@LsMmrsJ(nUY| zGk}2%VlYGKW+=lL&Io!K$tXrMhD8|5I2L6*6X<0ki!q7GEY1{`U`du@X_jGGmScHV zARtGc0!2!c35lq%A}g^ntFS7oF_qO>gEd);wONOCS&#MEfDPG*joE}vnZ{;p&K7LR zR&32SY|9_mj_uij9odPUnNF1&bz%}4?82_>#_sIFp6tcm?86N9Wk2@k01o6J{>Z@` z!l4|-;T*w{9K}qI<`|CUIF9E8PUIv`<`holG*0IX&SVy6aW?00F6VJR7jPjLaWR*0 zDVK3MS1_9^xr(c~hHJTwKXE-ba3eQyGq><(Ze z`G}ACgira5&-oi)@FidIHQ(?pf2YZJETE5te9sU3gCF^cpZO>M;un79x9Td*Ztu{GPUEq`D;wr2-+WG8lJI#p`aiAiX%3%jx#yR!#-vKM=^4>Q=8 z{n(!aIFN(*BL{N`hjJK)a|B0n6f-%RV>p)MIGz(Yk&`%?Q#h5=IGr;%lUba_*_^|< zoX7cGz=d4I#azOrT*l>G!ECPNDz4@luH`!Z#P!_3joie|+`^x^l{wtT?cBkg{Dr%? zn|rvI`?#M6c#wy9n7KT{qddmrJi(JZ#nU{)vpmQ1yugdR#5`W+6<*~vUgr(o9=AZnF zU-*^Z$h64;XrYxh+UcN^F8a}*0SsgigBe0MLm9?!M$p4ZMv=CF$FK-v8ONfGX9B%U zWHBZ&nZ=pH5-iD5EX^`3%W^Ew3IycHQ=mwRG9eKaR%9hsW))UtHKwvUYp^D3u{P_l zF6*&A8?Yf8u`!#lDbv`D&Dnx2*@~^%hHd!++p#@6up>LMGt;S3qfSghgI(B_-PoNy z*pt23n|+wUzU;^T9KeAb#2-1BLpYSfIGiImlB1Z((Hz6E9LMpTz=@p1$(+KeoW|*# z!I{kBEY9W}&gDGL=K?O|A};0@Fs8ZHt+B*@9{n#@K@&ZAs_KEpYSQ4@i~9v3%=wlzUCXgq>7pO~8NfgWF_dG|R9o%dtEw5RfBJfg&Z!ghW(Wk(F4PRalkP zn9Ay`!J4ea+N{I6tjGFnz=mwZ#%#i-Ok*=PXA8DuE4F4Ew&f3O$M)>Nj_kzFOs7hX zIxz_ic41d`V|VsoPxfMO_F)G5vLE|%00(jqf8<~e;ZP3aaE{OlXc$CL@oF{mar+AuYc$VjQ zo)>tLmzc-Pyuz!z#_PPno4m!_yu-V^$NPN1UzyK`e8k6m!l!)3=lqQ?_>!;qns4}) zztiM97SP8+zUK%2!H@jJ&-{~r@e9B58<`F{04=oAMmrsJ(nUY|Gk}2%VlYGKW+=lL z&Io!K$tXrMhD8|5I2L6*6X<0ki!q7GEY1{`U`du@X_jGGmScHVARtGc0!2!c35lq% zA}g^ntFS7oF_qO>gEd);wONOCS&#MEfDPG*joE}vnZ{;p&K7LRR&32SY|9_mj_uij z9odPUnNF1&bz%}4?82_>#_sIFp6tcm?86N9Wk2@k01o6J{>Z@`!l4|-;T*w{9K}qI z<`|CUIF9E8PUIv`<`holG*0IX&SVy6aW?00F6VJR7jPjLaWR*0DVK3MS1_9^xr(c~ zhHJTwKXE-ba3eQyGq><(Ze`G}ACgira5&-oi) z@FidIHQ(?pf2YZJETE5te9sU3gCF^cpZO>M;un79w@=6ZR}RoA2GB|y?R3yd7yanZ z00uIM!3?3Bp$uaTd*Zt zu{GPUEq`D;wr2-+WG8lJI#p`aiAiX%3%jx#yR!#-vKM=^4>Q=8{n(!aIFN(*BL{N` zhjJK)a|B0n6f-%RV>p)MIGz(Yk&`%?Q#h5=IGr;%lUba_*_^|G!ECPNDz4@luH`!Z#P!_3joie|+`^x^l{wtT?cBkg{Dr%?n|rvI`?#M6c#wy9 zn7KT{qddmrJi(JZ#nU{)vpmQ1yugdR#5`W+6<*~vUgr(o9=AZnFU-*^ZNKaX2X`z)i z+UcN^F8a}*0SsgigBe0MLm9?!M$p4ZMlqT(EW%jEu_)u2Kra(nj7dypai*{YOR^M8 zvkc3!9Luu;0Xgy%C{m(KNJNDdS&5Zdg;iONsjSW#tjSue%{r{hdaTa|Y{*7z%qDEg zG&W;%wqQ%PVr#ZxTmHayY|jqt$WH9cbgI;-6O+(j7j|Vgc4rUvWH0t+A7-#G`>{U< za3BZqM-Ju?4&^Wo=LnAEC}wgr$8apiaXcq*A}4V&r*JB#aXM#kCbKw;vpI)zIgj(X zfD5^Zi@AhLxs1!Xg4tZjRb0(AT+4O*iR-z68@Y*_xrIM-D|5Jw+qr`~`3rY(H}`Na z_i;ZD@E{NIFmri?M|q6Ld4eZ-il=#oXL*k2d4U&siFv%tE4<2Uyv`fE$y>b5JG{$# zyw3;xmHB+gM|{jDe9C8h&foZgFZqhE`G#-#J59c00evjwdw$>_{K!xI%s=@Tzwj%+ zy+7%{a)5qf0IjsqP6wTI(U1NNU?77S%n-U6$}omAf*wXPiqVW=5ymo(MH$ZodYQ;# zOky&NGleBslBHOhWmuNwSe_LK$dRW&krHJ>A}XxNO03K(tjcOkWp&nIP1a&<)?r=N zV|_MYLpEY#Hepkyu^F4Q1zWNeTeA(@@&~qKdv;()c4B9yQ>8|on1lwquq(Ta4P znZ;S0%{iRQd7RG$T*yUS%q3jPWn9h`%;rk2;%ctpTCU?yT+a>M$W7eLE&Q2VnZs?| z&K=yzU$~3AxrckXkNbIm2YHBxnad+Q%40mv6FkXNJk2va%X2)>3%tln%;RNV;Z84j-r{ZE;a%S2eLmo?%;!Ts;$uGHQ$FK!{>B%4$ya>MH+;+AY4RNl=wl(@^8^3j zM}FdG{>i`ignlNtR-1mSI_zV|i8}AV;18MM{(jiKwt5E3q=GuqvxDmDO2; zHCcN*PL&#UViFqc z!mjMb?(D&y?8V;f!wmLiKlbMU4&)&I$iW=Kp&Z8H9Kn$s#Y~Ro7>?yQj^_kU!V%Px*|``5RyGC13G1-|#Jer^$CL zppS)o&ky{AANh%&`6vJ47k=fp*OzGy$__C3X{C*JI!I4wJO90SrenZY2Bt z_p{&g@5+um?e6T9XA8fd{{HVLx;^rB{c$Zlv%mEq>D|zL zlbIU@#V85GN}~|g@6IfkSP9Eie7%xO0`Iv{sf4+FJr1g#7mcc6T&Pu&xL6D8RlgNCYQ<`) zS}He6)$kQ5U?m?0#az8qFBF5SpIr`Ik!o(S?Dsw8dcB&Iy^K;LsMTHLQXwgMDM2kC zgbnYfP%n5Rl}4plE_u6gp}u8i!Gww*l+QP6y2QYOtZUMNrI@Fk83krK)dI4y(m#=wesB>BOyz3%O!k_LHNel+V{1g<37H`61Bw=hER7(wmqaK9CvP)1cR70=K2r1Q)dc9l^^9_U0*97%?RLZ*%wNfoA z=96m8TUj)2M4@q(1ocXxZcNmoIEW2BUsg_%QqJA+g7SsDZ~nT2yv9~gNZeFIp-|7g z;$@fsQ6Vmb1z%XK#^op%mh*8G1*I_Y|8up1!5I~Un$eao=PE(Tov$VNS}s>EG&&1~H8eq6Y~piOGE#^mgRPItXtbsrjLK%rF18*KR`J}t9w zg-B4SNA8;mTFwPYQ1*ixu90bCh$hvjQY=Esvi*9}j4b@Wm?6!B8uOubm$-OHDwQ?>ptE$CfrQnNS$t(=2>9gInN+GO> zZuxo?7`uu2=l6~L#Qzrg;bYE86%8Y=s8I@Y zfjQC;3#+v-7RN+YW61~#i}_lyQApy@>nqmc;!au9q~ed|B9}g&6YLscC2+~jq_`Nn zy_G1cxd4gDTP)TaaoKH)1==9U`R!VPw#2n^F;4PP5H-9j zcPuPc%+X^0`_=_nA zuN5mo!#4?npjHx{&Ej%wL?)%Oi8d#Ws)f*P7ddun@0(b)WK5 z+LG;$SEE89@&2rOzpq4vs-fC2Is>t%k`%%)S11V@!-U5a+J%Y)&jxf}EvIkP>b4LCMlo3eDJ>;hpn}e5YC^suy#`BsPAlU$j12 zcBS0bxLz$+1g)if)<8ARm8@pfQn6@g_<5npQYzL0GpXLlyY`VOR zRf|?#i~AXxu$5vwtE1T_Y8rj9X(^hzo4L4hRQrM<^+wL89u!U8g7IcjH3XU{7JOW5 z%VBd=E=+<(X!u#=N}>5+1{Oo#)|*QbS0m0@6h3ZU&}oq5D@Js+p08Q;s?vaBJ@!3@ z8ODX0^da&3%8C0>FEuP8Nhl_`uR-PJmWBOe3s$8Xm|OK)xs+=pg?uqCM2&c-Y;%lD zTlc0b4dFg16})wKJa17mUqYcm#Hd(Yau>AswZ)=mCakT6Jw!f zWL(>2@<*Mm^W$2zRxIQr9}iK_wZQ z;fHN~BO6s&l*Ki%s<@w}hHz0#eC|cDT9)aVXq9}$bsJoieB}(4MpUxshCw8`vknAx ziACY))`dgz5+N&jVmjpna7mU#KsYG-rfEjdw?f@bb5(rghRm>T&K09t+^DCky!0;& zWnqPKArS5hrgy2FcS{PcvB{Q8@@*Y`fk9O$id~WQL(DG=U-?``RCiIuJ!w>4|c<y z$^om<>K0h z!HCWU17nL-%>WhFEEiQ_y&Rc?Ze{UHtF=@sYU!F9m7~V)nOTWh?0)7-OSaD_SmP|c z_lj*fd565W5jB!T3M~7V97GQ)Xu>fam~xt7LCEcUnX2qj6bZaCE5CU$qC--5DT?(v9mWSJvwj;NpF&Wt#ytYulJy!tK_G34b9)v-;7kB))lX%dMv@MS)~+T zVvGzbOw2ZUZndXta=!AdAyY33qm{b%W)%@Pqhe`BSKsJ@MuZ`*N#PBZgQQ`_6&xzc zu{f3i3FD1gEgYSlUyM|BrMhJ{awq0=Hd{>^$*LkqWfLio>d~N~Q}rl{ClBt+R5cGo zazni$K`V&vnUYv(@RU@)3d7nO-3!M_&}!;kOF_=ZN~z<0v{aNP(eAI;U?D5Ib!myE zf!Q3`X=e)$T_VKb!C=WX3Q!=gcdifmM-o2s`_7B#8k6H$OKwi=g9w+DAL7xG@x~Q z-4KnUW80dok*Yjw)I-6mYPy%g;?=DSGl{YyGLD0?47ysqvH$H+J(gU{_{6=|S#{w; zPF4u6YHhYP0x7lE5^5m%EG-|X)o2d8T9ZfS5-8ygYMCv(C^byV@|FXpoBk%k!|lxu zfm4-JEaqyKnKb+!>NvbWW@WT3ONqRYF*Ns9l+Eii*n;u*B_Fg$4~%!W5}D>S}l|Uu={IiDY^Pildxz z-(-z)(wn%lUhBM4tswnX>(*4qzjjNu%Gh@*uTqYg zuN%s8{&tP9NNHic)rxRA%=!G}j)kM^C0#w;FO3?JRoamll=Az$SgD~WQP2tqYhSko zWea)NcU@|=NGBrj{bXU1)u3VW=Jy?txnN*lSJivgD)N2wPpY|kBdW^ia%Z&4cx7r0 zAFyV6~fA%AiZNGl#xfu0@(+B1J<2^kuf$ZN{6S(zbl0 zlTcF2nb?sMR~oGh-MzhUkflcvT#91TLeiz~Qf#CZyq6_&?sVhylB%M;6~}KH{|d0% zTbkWrQ3peFLZVr=ss@p&QxUGqs5Ozq2e+m%>)`h61_NX&a^zY=vrno~lT_#q{Mt4> zl%kXh8@BXDXG4dt~`#W)_6gpFz?N-Q{TjjK?Q=r+XivI|ui`G}P`tZ7H+ z4;2m=*d4Cec3i9&mp@b=YHu#El67|k|aYjNZ0nlkoL!oYC$g6 zA}ZH!9yB{IT`WuLgGQlab}bbAgvv^F`+=F_$k}--j6W+!*|Te&cW8Z(rCa@zqerx! zmYHsps++GG&>UJZ_J!wIEueqt?IwBuD#8_GGq+Seu-}4KeLba&cdtIGN){!qExpD3 zw{6W{H^=-*8j0GZ97J`k5y4vMllO>XLTTEGu89iPutt1x=azbdjmm4Sy_Mk7>}<2a z#FYIuR_f{-=Y>>~Fp};XM3KO%Nv?%w1n1I*Whrf{74w#qq+|lLq!p@`i?5MX7KQQa z`!~CkDsiGIrZEvkv8J8Gu#&Gn+truxf5hM3hR61Lh`Qo7IG8{S9HeHX&TXnw8aRugSnO@m+`@Bl5i7msPS#7Uw<>xPx|mqf)y>75e zm^N2+1oT^FvE@R=6Wiyu&o^&tVwW0UMo_q?tvNU@3L)A*X}8AWTCY~E_9X*cv?{;Z zactUobCWAU%XFRCa!?uHuQx2+)-p|)&y_ao&Rjbv^N&HjL2l-dzJAst7sJGAXo6M* zY&|v2#QFm*Q{Aw5Oq&@LzcV`RhN-V5Ai9IrMLk%xm}E?^L({}+qz|dWw=Af(wLx<- zTltbA;^%?Q;f9;;Tv#huAA}8SPR)(4$W|oZu4gWMrMoYqz$+-$%=Mgc=I(VTn+$KZ zxvv&u>5G!t?a|VW+Xq}}@vND7p+tO4cW(aZ?(%VMS6j!e7fG&K9M{<#5~XdRqSjGW zaICls8g6cAkTaZ;A@=QmwZQ4NX#R#@X6G4Ynx=Xa%Afp8gKUBepKhL( zxz>VSW=2TQRCtrER@d@SQ9ZnrG!OIzSLsxG9Zv zalNg)w7_1Bq{Zd4Oy4|q&792JB^ahTV8X~8(soqN4w?C7e<7{;bBUoF|EPJTN3D)6 zXieBr@H#{`(=XRZTSslGyM`~c3<-R?l#Nn7=%>R}I=^4vFj27_*b;~&E!G#iH#VGf znxepJEoqHrb<8kJyye>L;mxd{9?Sg7vZ>!wiu&Np*~9tKuYeE&x* zRF%Z^Dase`?pV-kZ$hY*D=Cw7V*PCEz8I-rr0~_ukV5G4E9sS#N$_QMsvA<+H`DB~ z{utr-=-N+4YCVZ|%1*N_5`;rq1Rzr;JZj*a&;rYcH~}UFMk6dr#8|9pS3j zTW>V`cNcCL(QK9FC{pA|nlIvGxs?1oV5&J5-_s@|t_&VU>12*CHTrIq2suFDH&Y3pRY$^r8o2_>!!Zk^(T?K{oOhs>$?(i(p zI;&ykmF#X-Z_W0N@*OmQV*ARWo2uufEodm}blRM>y(FA#BYv5kDZ$W#2!jWGzCf`m z4X#-&q`B6=dgZavGlU#%>-xIAbBdN6d#HAwa~}@ru1y->BJxf#MNLDyjP8+jNs^*j zRMsgqW5qlXQD!F4BsLE8t+jpxr`y~1vkzk{&vsCAj6R8eK|@)nS>o0vx?)l(8@>9X zQfW1_?YU}U+wS>-uU>-f3!V2cd~fiGWOR0(eAnfWzq{*={f5u7(xx%Ak&JKg5ZTdc z>2ji_ut@I=NrezoeYgMSg_70ew9G7Hqu^IAe0@xBTv>M1RK25Q?u0p-I`+5)lv;Jz z@M*RcD)mdozNY@JsTr)H3e6)2H(PXssv?$p!oXGs7T?b(ryDnPH#@92`Uj$?cPw@& zXzgvTKkisbgf?MNI;dq<+FVb!8I#M}o02$db686x$to&4#Zuy&`QT%GB~Bu@twS3yy3*-}W<`6*^boj<8@C>yjM2I(6uV}G z)i9EYu0C$IL?E)iC(-Pg?6)O~rSc_%6-7#$g6om)_C}(Xl|uyEchK5g5Y%jx7nSN@vIgs0Cu)`6RTA{MT#O9(Uhb`3U3RlUy zR+nH>SLj#LcCTq(vPm5x`^33z?)&oFvlcujVyK~_0t_*9MS{BMH=r^0hB^Q=7DaSC~fdu9BP z-a_TZ&c2pFI&QHyxHPbgS2f3Mts3DAAhRw76mDU_4qZRnGY+t)} zdqEE+Z8+ONiYke=>=~`IrN}Z!{o~53Y3T9?^3tR2+nk3eP4Apx4>R4ndZS~SRz zC#Ay&%n+Z9v}hc`P+kbF&&<)>)(SnblDuupJWq3to-uNr%f5S4@a zHQ8p5ibQYDoK4Jn*TFo}tZ<-2o~(P}E`{ZP4xe4nHIrX8D&>E+o#UTop3S<4+BYjo zoy*n!-NmOmWY6`SveL+{OF!KZNuVCLHlkKgRDHemV{<2{n-O^quI$^v8tupuGC{mi1a+(XX-(Y|~NSKHj*y*`gd* zf`_85oZA74_~_PjANl7Y3p1u*dg8$4)IrOarnh~!h`i25krtT{+Yn>Zg9DZdS5k0Q zcW7GJm((-4a`1e!SN5U@Qj(A6Z_J9Cj%(x(@0jN>MVjt5toHT%@&l$NnsLdy!}3o@bDlk5J7|h@do9H+v(0{vf>?lL8MZzZ9olcPPyH_k zH?&Q&B~i(5Ip8=E#laHm-K43Km1NZkQ$?=aPUADHjqNSxHXAil!IXC+ld1h@7|JC> zVo3Yz8n`+}E}PLCjqg804HU|JZtT|_<|3&UY)0ua>2J7vR!>`KR!?tTr|i^m)0}n* z3zzq7;p^+=S2A;AtG|8ss!ZHN%TFxP?9wCGzi`Q2$(mI^Z%Qc{k|ERVASdN<6Ek;= zQ1jJ)9@FfnsbqfGU6ad5A>2B}sIAe{2H9bV+dAy5ML!Ollb#;YU8pCTB8%_m1s7Cy z-*(PcxmesP5#6Bcj{GTV>R-`e8QcBQI{QCE7-m zMM{x)?9$!!(e1NU$Eq!d1j=Iud_O=zq~@&IIx^v0NlSrdSGsZR0P2EqKBj1P-H|hs z+lhe37N4r4T->DpEISuY{fPBR|AlQLtOGU;7|`s{MwZw*aAI-L>+$-9%R<}mngwFj(cOi6Te>Taj%JI9C(E&j z+WM(EN*A3xy4hM+gy`d&#uBxf#4x$LLmaRtR_#BenRR+WH#9wQX^GS*9jUv}knJDU zF;%&qtTxHwmAo;syYT7giG}c;p58)v&qdlAgQmG}xv;&XnYA%sY+2Own58no&i#6A z8ns(V!*$!6S-C(#Ns>35(_=H`p#z5pLflBnOkEk4Hl=flBvU7+4J}8rg<8q$6a|G` zbZG0sj`aADneT*-(}gM(>r2JVRgxRq8nYHD1bhOu zn`pJD{W_u9YWL8oGQq)lD!UGHyY}T~=>-)1@VNNtsAh+a(sb9txib4)ay{i|QtoM; z95o(VvN_CRYI@rV&;_%}BytEd`fXBESIx*>uXDPlt)%d=mRaV63{w`m$;ibE!HPqh zBZYG#x~3PPVsbRcloH)-Q##CG{5aI-s_wP;BUS-p&elz?5MDQSO&i&zxB5+YB*hIa zx2K0B%HyZGd!@n;lWf=8DVN{}axRnAVpT70*7LFMg2t&V$liQVKD%FU674=%V?1hp1BXz@d9Z$AER)TDg$ZRbR%85U^{ltaqpa`qu) z-&(GA%WZbp%F_MHOe^J_?tHats$(^!q5XQ}_>JtOIPsBAD-COAof=XtX$s3dZNlcS z7})G|0@06^J^RhHm!wH1^gq#=o>5!2cT4F^Tz-1Q3@eQqDwx?e-K*2ii6`{dlAqe9 zN?uCGF8*Cs(Wr5#RP&y+x62O<*h*(BNOtYcJT;*?+JOioOs%F7=VVsdtBu5rhP_b5 zP+}3%3U4HbclKqai0P3?dyMi_`!nm=Hh*onn6l8`o_>cWU_pJC?zAf-G&UW(P>u=q zPFLt5JNOZ$$3b0k(>p4BHhy|hYp)udF*q}F&>Ss%oj>i)O5@J%g~Oz7avCAq2}XOO zX&=tCEV%pC7mhJG_N*Lis&Beyh~WsxBAICI`(@kml}OefEnKQ zh_yDZ$@8A3#IO~ zqMB3kg>^fbx+S03+HeL+KPPZ5#sP}-Ahmm9AbMl@Xv^_^Sp9j(49&TmZlpmRfo}+ZJX(An?2J~w0PTWIahkH*7dt`#BmKRK5K8IYlWFk|LF>q zOZ&^o>!ql*Z&7FEwDO%2wNr1nS5%`SrM)d>o7y5@v7sZcG)wgzT72g0RA(6DzBEbD zyjDUMEtuw=EK$2k&7@NDlBF5pp>0p3r$#iD98@b8PFggx^AgP=_FWaM=7`$gp@OP| z>9*>ekFqThm)>ljE{{|Ud@wBg?Wpe3nUlLKNA$Fw(JDs@&YIX9tof&=ah5{!DzcYl zV$1)eM$S8hf9P-HREZ=sr^iKgM3bmIe9DNzK`k>CgA&$!&eIa3GTAXhhn6>8p*g^@ z8++MSo}yj3bZ1`lllSZA9U=7C)2L|R&Nh(jA_?ZjTgE96Y>CUEgS@ZQ)b)RhS}uZL zT?(QTQ3-ZvIj^J@o1XZp@06XPI#CYfK5d)r#FegRMeX?BID1HWIj%0BV_2?+vyXw3 z7nSlandy0*{CqTSO8eQ%W_BAnGgca?BBLWZdu!p6t<4U-a9dn*V7Z%(SEsXNB9Bhc z%Fz?hK{{f1$0jSxw`=UcuOoogkR;i;|8xfcD`7mKx7lq!$D)~@{`LCh9X2Vws8F68 zcm?6R{aY6dTDXFW*E=j|&p9Y6;jr2j{e4r3R*g2idPi_lPn(EZ*yg-mgsn{*e5$d0 z`QRmIX<=AjT&}l=o~1FJCK6HoUoEpjH(l_`<>qxyi?kua#-Q1%UTpv!xax1?T0MVK zA7=l%e0NE&_WX7SD|1H->>DW|axfu19AZbqa;Z#84n1&gs&BJ%Mw^c`IIgVf=CvOO;1kyMuj~pRQkIKQ=#n zj*VxPq}UQvFVjl5peR|=?x-l0Zk~Nd z2ar`Tsu`O`0`M7&&lEk=)6B_)foqED4M(xs>?NsQ9MF&miGap%X_HCwG-(VB8#Ps{ z_-FlQX#LA(3+3z#)vJbkuxJ0_<>_rx?XFbT=<2P;I}e&|A&`S;SvFo>W}2~`D{SAd z*sxX40fuGOJ^zJxD*@w(6wWrF4VS@y)QZgvP%WQmUltk(LRSVQ%WO zGu(&tINZCLwF3t)7g-|n%edZB^vcL-f@`($=cKcTc03}pO~?2BtmLvI$1Z$Z%X_G{ zlH(MsgL|57)(9s(?CRTGw>T@8f-ie!Xm%EyHi|*YP;Kw zwvJ}T-Lg+@Q(md6>;KU*vz#TfPhQUzGZT8F{KZ52`fJ!I=av5!V)>LK?OtQrXl@Le z=lG8&RBVddILP(%oi4&>P&S!z#fghKvbJNyt#xw zAl*)bn|jUmw*!{qN_u=ko^B7+?m*}$MqQSt{Pq%T3Fnd*M{i-9C0E;^L;tvXV*A8g z^*&qamI4n;G?L=Fgr z>>paXi(j-&v)@>+OzN4bL#hEI`yMqZ7du*J)s_~U-}T~@K!R6(Vq$k=)Zl5Qbem-4 za*nl^AJ6vI!zG4@)cJ{1H2#v>7A-9;txgz9!^@{GssER3*V)Y4C9{4w9j&m}7z#h= z-|Q5U+*C`Al}pucRBG!*uMDz(HOFB|;l#=s6*pL-w~|a+ai*rax1Qv$>p#muAzchT z&@(#vS`;lRQBR-QMYKCm4g`n(>4PyIg{$hO+m*1{ZM)OK!9uj?u-;s4@|cAK_0M&U z8~|}}%Aw+-;@4@N^ofAvftK$&(%z~40Xx4kOfO8)P)P0yn*(f7+wHb`X#y+J(x;P* zONn3N982D&yhF%mv`$UCVAafYr(~ps0|qu*J+~wEv9s?f7roO$t~{tG^Xkaiw*CEy zvV^`kZVNS-KQ*|SwZN&QwBxO4Io~8rW}MYYA47^XLktWr+_kghX%nPp7f)Gws?0fe z--O|1`?v$;!Rdx-t(qRK(?ihG)woZe*+|ZrGS5D?G*_cU46y#)q|%OK zT3^Xb)9{b-6GnA6mK!kLUYP0q_L$7raXzlPH;&#KI#*AwVETGUq7*M2bdHFYKFC;Z zsF&M}BD;l_X@!vHV|qa9=E>dR*Wo*s3xkjW-U3&K@{lCgb2rNszbvm$z#ZTm21_I}LbTg!LSeK_tO`(gs>A|8~E$ zkR3lN*WXyh+pMmgooaT~&uH({bJtf;bEJEQHqWgdQd-YVDvs-oH#(aArIyZ(OYPkj zT?WT)oELYJs`8{nNQGgm$40s*a)ejG-~R7fZRgl6lg)|K=MQm;qw?#d>Go1IwBA{^ z*{)gP(5A+_YChex)c~k}w44IEbj*NHoLEiEGUrjO8o6O(yGzqE(^X0$)B%fGycMmk zm%2f5BUITGZ0(gC*QO1anm&xP+2S*_jiknv1%hoN&%*Xbx2fXk!LxG)H2NsE0ved_)AjE>e9&WM)%-(9<;JA z>yJB^T6nGB(dnkG^A5?mi`j3@e>|aW%E*~c5v6+{#o$&HjxUL?-Xu$;G-DenRzc{Zh!$=P;rmZWFmD@E|AUW#jQK6i} zWa+ZEd}hHIEsk_Y!JetMt}|i2Op98J!Xu$NHvX`{u8K|ntcIW-wyez|F?$xyFUhi< z@^;$BmV%D0UZFZPO#iIvOhqPzFQz9r{6OoSrPVnb&0QzTy|mv?p{0LT)5zm!>FHL_ zZEO9c4-d+@J-g%#LHZz+evZC$efi8xr*3Ud)@q+*`Ua}cEiUP4PklSfzH@TvBLaFl zh2=ASqeD#*&k<=r$pa$W%Q{(pc2G_q%1j^TbI@3eU_^Go7-^YxKYaj0e_O9bS53~O zB$Z}+_wsR15J;#_$t)b@A~`|l6>9b9HEGD$f=RauB5ij4HKmCsE_V3+a_N_N9M#2l z$~|q9*!k4?QPId{)5n$^2=|iGKbvj^sf*J7m;2y=vnQ;rvA&Z{MRisBu&8!Jb@@zh z)W~KQ4FCNoyGC!?9a4*?&+2;`(|M)z=&Ag!QC{AQH3n=z=<4{vX(KyrFWGswaV4?P zb+fmqm$78af-%-%r%!E()if;pz`WA{=@WcTV<=p_5Kk$mM@e_c49ofX!<>9bbZ;DK zNjGg|TQ)sZlE0sS)OwEc>5X;3-!V1mxep_7=3H@V_sCXt=&3&aKKI8{Xqv<6pEXo# zia-Z7Z6<0=JL;i0b==xh44P4n-q^9omuiDs`$nf(nv0rlC@KWgW3W1CzQA)b9=6i3 zmi2j5KfSfO*lDHa)RvM?I_3O}(+x!@xt#7#kCWO4@bp=0vmj95h92 zdV7C1OU#e-VJgRz((9_lYo8$9h4ckl{-##hGdlJfeM7BVXD1wfStHw<=yW#w+j7zV z^>G3A*3tv|#$vkvT5s&xvZk|pzuy2m&9YDDNOirvXoKE6_wbIcu17NzdA5-?VoLWo z|CgTYRc|SLv~zSP9neuHjA?z9KoW-vLF3txj?M4PM<@)u}$DQ|nH-`UDEM!Z`HfG`W8-hob5!nc4QWRHQ;ic(0Fi z@kFZO;VD+BWZ>PKUA7TTpUbm-qwTjlV5O|mF_rInZ%)~`S1z7&uC^Z4ANmb9w;6$s z@}vhQUC6XiV3*3f@MLHD=%F+7#wws~ub=%T&m$u%2FQd{U*hH8`jy2i4b5zucN?n)qFm^$g zM0@A8)~lSGGX^|77N;-3J#yGW-%42}LZ#1)>Yl0PY>n!5`7XA8qv~gw=0JhgCX8pr zwZGFUK}^)3)Yc60AGbLsqwDJA!|&hJ_m_w(T$~U!Yehv*!Z-k_#pn(B3>ZTvisrWW zjds@2wbLPRXYG?I?zMjPyPZpMn!@915_TsPo;L$z=k^oqS2}s(XsVl~i{lmBXm;q{ zVG(0O>nr&zGcw5fycXY8{b8(Xb=fem!=bZNh<|NqTbNEgL*Ii7_TDsl-72Ta(#KfR zCsJ!7p{2rY4Be#J={XvK#K?QiDDile>FWtUXT2N)akjw+;G|D$J)d36>XFY1=#gfQ zuC_WwZLj5It6WK0wrbTEwl=d)GYOvR>2%Xu->a{6ZrbxG+ck`QY{~?Eh#*eGg9fKh zwXof*g{E(xeo&3croZYDF7MsxPSLbp?{Xb|5Qd^3U_%+a({CFqt{$KKFfHzwH7uWFO-@xPBte7Li+Im$n@Wop;D*=lIOtXY2+- zW&H(^%%PH)Y3#)Z&jRGoMcD+=1zQFXA5E=S`sx5EKoAfn^HGIPq|sx6^T8oba){iB zV?kGuyUEa33oQp7#YxK|72J#uz$pzU3N(d^qaTlpq$XK=YY}u~ZI@677P*8XAkg82 z;*tY$q9rBe1Xd=`bIT8+JEQVoIRKu~sG)8I5`g&@ff6!n1f?|kCIo_j?;^wiDFK%e z>g;jzUKJexY#|i_j6QFhYdcQutAozTffpb^!Dhi40~P`w69)|4pakd$>>tgnSMKCFJFzit403T7}z#+~xt)^H)D!|j7OK5DGxRH@qQIe5q zf!z#(4t7EqUVLRpao|yal6?~ldcdXix?n0pwN;K66*Nc#W-=A6l<5?T)m zSI{EJCJwe_`UO0IAdj5$=nL2oKy`p&u$SL%W_P8Ap;Q3cg78OY%YA1NfW}0RwlC)} z;WP4n+_KtHP+^4%#+LKcqp#tXAS4%)4Sc|Kv$CPg<=cj=5it>Q3TPa7Zn^lr@GF*H zl@uK@#&ba^PhlRjlmR@F0@c8)Qhf1P12Ty4S)3xcwQw{*T8fb=E8j|(6CPfGJcLT{ zRUG-8rEKST4?%LkZ#f81=gziq=fS(!kI-DO#@Vd+Sn!b?*dkv*&PN~#yH9v`e|aPE z6X*?jZeaOv5K-I;9?eq^I|zlz?!)Eyh<898z|WwF5pJ1y;vF3ow>NdACwz5paWWNFHk1&V|8A z16TuO9qTayYN4pYP0&wJaVLp_3FaQM#W^f}#aC(?7Qh`&5JVju z4|6Iz6#zPAE-KzovIkcH5S5fGqKyC&roe+Y5HBsuj}rkDOZc?NVfHpIAjId1wq7S| zhdPz}%`S_!k;4c*6DBl{?=TNY5uXY)Cv3+m4WK%8o1u$+9JUCg4@zaU(i+OmRrTZr z7D?$~*@+Pat_vB0m=Qs3y~r#A+31xvcjP8RT-uADn|mvePkSlPBqxKtm7B#+W<%z9 z5b;ccB83f$S`Tk1{%jT+_g!2a943-)0~<$KBYv;sM}`FJF%}^CBy(0-$-owal^8K2 zv_Jcn|3<@1@ZU`GeN)MaVi@Bwo)V-on9KPM`e|Mgk6A9ZuIy}_Ss;)8If@>88$&f5 z09TNAhyypA@;hxFU-&t7IhH=oJT$o{807@wqCugP@xh+P;zvTmlgep9p@t1nq?>@o zOOztAe-=Ew+RbEbYP}Z9KnOl0Mx++8K*WebuQQz2L<+=l%EF=As84N$583<69-;PLevX08?bs$Wil4b{euk3RPTX$UE5iKQb8Gjha#Mgrk>RdNm2j z0(a%2OP?tT2Qi*!rFed)tPSRp?qZ0>d-6^&bRvDmMJZ%!>O@l; zwK>P3%ejl&Lcc@NDVB;PuV>;(rD~5*Od=sniu1@98|&;-5KJJNK%5oiSLw(ELthP2 z3C?cnQwnM!mk7^bwIl!Gm_?R_7XZWTWA+{zFHl%cS^^z%f!$iCK*sD&)V>j$Z5DvG zKisE6`F$!LCmIwwXp}pY<5ZcL$tj|!9D%hdMAPY&YRO4L5_gaFfQSHoQaEvr9fGuI zcY;MH+Wc3Yp7OF@4jVMlZ&@VosUjBIAMZ3FM0c8azD zj?_^BY!I7j=s+OHsfq?WtDCfqQuJjly;fqgIQwbk=!7x7LD7<2mRV~+bzqWX>!#L%aG()o zN0$ad*fU?K-KeK;tthYyCF##2)2&7FQULuqk3Tgm2Ls?zvtVyBct}C1Voh-P5b;2H zO!x+$l)Wmt%C=lGn4qC^(G!d%7m$P`SkSOgSkh2HeX>naWm5%nQc|G(+u{PF=*9@a z-bWgSkcuzyOtE$-p(sPx%_wL%GdL%LJIs6Q=}llLBmxgVG*rE4=6E$|34SzW02DR8 zhj92}jrb~_18Vq+4#;L&SkA}LJ!Q%R<~WE)OTht*X63euUc5mf=fZ3t`6TqG^zAnp3e?9uD$(HS zrZ$d4s-@A+K7$wIJ8%%LL#`BOU;$S+nO1xnY8sZV2uZl@RugdubWxnVur~A#d`MF# zcNx|f+#(x!&k#qZ82p8!*T9Jkhe=(G)sL{u^f(>^V*6-#ILJ8NXpXP~i_t?;*x)CTPn1V3>)ZSkX$1dkbusLUNdAB3NSh*ZVCGkqC6BYlxk&AMQDbpwmAb> z-J)qin!`U2uC?ePOW8!WMk zaeBg`jpPWhu(H`=btk$e;x53ZLeY;5YR0rjN0JKt##M)VVxNaMl(;yt48yar} z15Rj~HFU<3W=g;iogse-fB`9uvlm$sY!U1b+R}_{+2R|ZlchN#qmmL16pD4vF3#tc z?pb_mU~AIQqNK%ifZiG*89OubT%LNq4{yyD=VB6Ypro>#14UX{ZZRM8D2peV{=^E+ z&#GXRNpMo~aU*3lg*HDMGb_zGno*Q0bYt9701e&)!H#H9(U3}Hfv;I38%JU}*}PFN zQ}H8Dg@y7GcC4-C)SwKbJx^uduytY_l$;DiYN;!f1YEyA&}5t^idss!l@7Y=7~77S z90ZtB(d+^_;TYjq^asy1?}Dmjvm@4m8ZAUk+FK_MCU65z5~>=>Z{d@%q}Y|YzhV+$ znRBi;m`i4kN8Tj;5M4fN87*Jf8>uyI5g#n~6qRx`xXrMymeMtyWCNtdr!o=!7Ec5c zYjkqJ51eIa(W2pNT_pn>IWLFIg#(fvGP1;xz%3LGzUW#`F#u+O5w2M)^4vpWa!3wz z@3Ya|aCcBN0pyB&6OaHTBOB&PtwL@}MJYKi9Q@o^G>UYdfD@pR09V1_V23;1SyfWG z^ekvDJ`aaPNk+pTtDXI!O-NPP8vWHRL4L9)=_OY9N`<@{d@KOF5Ye@qz4-Yh=m|6u z6Yn;|POKy71BK@WI7}DHdn6qJe`>wNB1+zgXB@{MR8SxfUFM2}Z4-Lp3 zI4jAF0q&rErD#0DnFooalndT(btixBkcEx1CQW5Nm#}KOkB@e1hf?09zf#_RJrE=I>sv|BUTq*Seoe^ak&pS}n zXzK!MeB{;r4?nU8j!>M-ENpHsi$Ee^NJGdV>tP?|m_>>2i8)eO##%*eC0!MWI_N);8)^*ND^R&b-z~?1!3YUKC z5UvK=L5a%Y(e|=61aq~f4uXRyv8Xm;r@On+Dy>e5@XzG>zH25XM8RA`8) zi#Aalg6v#D-@~Sjl*Qr@15*!jKe~alsaHf^OET_x7&GwN0~3i#2Z$Nyi9#$DxzgE% z6Pbq+7$v|?V9Apki}Eu1Sq;;=^gvJ>lJx$xQW@p$;-;`w0*|43dAyrG zVjxl3??dlrbPHgqcZl9J>L)H@Fa} z1DY9;^juuo8cANPm8=M5=rn-$*&Px2p>3l@4hG-WJlW7Mt7cIeM8d<3dT2<4o;lUJ z&k;j+L3o>FVX#L)UWtW~P7n;&I|nh(02f9nYHAn+iX`dkX<4uZK%iM_v{}ax4ej6WV3=CF#vdWgMCkt%AgeqXFPcRLP)@ocS-Q=kVez zwBWVG3jn5ruxGBf_myESjNk(W_u$n4FzFrG@dU1zQ%gM}c@Kzm(CpGD&_YAl@$~a^ zxK-4}?2WjYab4;Ws$I*`KIqAi}Wi039A??*Z-*#lHkaAouR8 zTS!sJlNSzDI}==>aP*COy37ttA|myMM%+>v2cz=NG{%9b0>5%B7mo;VXfWV5M zcW1qJPuN>&)kBAs#{sb;FYC+M{J83T*Glk4M5}4vr%pXrPk6!SD&-i>B1?is5s!qS z%0+YCSHrc=z|gUrp=t1BB6|a`z@G#nNr6HgLB$)a#%ak8%~eDK2P^=S#vP(tU{y)F zBj5~8Rp6XDBbB=e;*51d3lA1aABD!(pZn`T;(fBm@n*SJe|2ecib_^5LNuUmif6<^ z81qNjJmJjXdQUF&sM;FvgUVH-AtP%H{W~o@RuQ7v5VP}BSEmIwHh3a|R}2flaac>f_Zzy=tYM~OT|vO5k0>kPW~2Uq)HSaLPLoI= zdZ*jX*mnG=rJt{^3|!j{Y}J$~q{6~Q{iOT@ zh5kkiGgQ5JEK>fTRu(8!KtaRF4+iYB^7zuSvmwE;!Vqx)07V47mwGy>RJj&nUeC2D z-NJvsQA0_w>%LV5%n20bU0<8v+XDXMt95R*Qc=-o0zT(8&?JhaQF0tP4sJ4#27wEd zdxmK04o{JjMF2a0@~YakocHX!l)6x{D5=GUh^IxexX`kqoX)0)m=#0AI$&oODk~vI z0n$NA2^K@B>GWq>pA9&hM*+kHQiM|-VgPEM&TqIM#mPDX|nZ#cBd(J zy+8{{UO7R%X+&)*^}i&)Qa=-WDLhngbW@*!x{v)+f=PJn0fla@Aj%Gmi1-7ZZE!X+ zU$f~qo0zw?9po33lhAhX73p^rfLhd_6y|jPzFhP^W2OH$6}!Mcs2za{V1q*0X03y3 zNX)c^TAy3ihVl?r{{F@`-VXrY*mBx<00$rc7|N*wG>Oyz^ufWHwF8S4=P~7Gc#tv~ zY$W!ku7~m-W_@&0?TOZmtt|A&{jvE##YXIC@&^R!UKa@$3e$2|dg#*IcgOC-FFwgrE4fu<=lKBSj;(=^5yoXdP7F57~*lvhyctZF_DnH7?QwNGTHX19R z#WGDs*LgZ95!q}gZTy!ubzmTek%inydUf4*oST>rFtl)^1FDl_1uU5DhW0`579LMl zdapq_Nt;iP0cJzzHy3u5Cw zqSBK~f2#HxkcGq4aOP3iVjjutR=RjDP?>-d0M5KtqYSR=0Q4XQ1E4uL*)WsOmGvR? zNChrb3rGNf36t5?=E~$PS|>M;W|Ms)mVUKaU83BJ83TTv^Ea6KapfK(FG|l1xFDKk z8i3ToO6^b8BH8HE>AC35;MI9lfz;^5*#X7*1V_m(58zn~V21C9Vw@-<4o{(JfXumb zP~ZI-mk>Ca*i%+gr$C#z0{k(84dU*Am%tJ*hR}vx+NfNwDfg1UKMYF=(g)50jtBAF&=7ET`pm7_)VtMsXzl=DEdRfCsuG?i3J=gRDtSUbBu^Eg zI@_tS5p_OoGl&w@7Z;WdAP_PQ=rsZ$;Mszy6!@RhF4$$#bIXVGtIVUSo^hB;#A;Bg za~jeN0rl}gA0E~m%B@$rsZHqSF#WOVWZNwzg(i$B40dq9Jxch?JW7wtI7TUg0a0Wl z8}^t52a6Q#y((t{^el<16xT>zc)Xozfe=D=o@D03@*Xy63NkoI>c4RMS#3G|09!Ph z=6WVQ84dS&kV;eb4ZLD8MN|jD@&_7O)9GG(qX$D?tdv0-p1}WY~-n zna&bV2(|0V0eQd;w)Ds@1D!e-hx3SP99-mZ=Ncd@Nk-?)1FtsF+OQ2lJaPuJ4F$GW zU{Yk()kmBq6TC4TD+DD+BAWxdtv~c|Q=V)WdY|ks%2Afk59^WnRz2g? z;%t+-r-v5A*$17Jxx=}fRt1<4X0P4Y4N(ZMj$R7VJ37-6H8_8dC0LbPVCIpg5pDltvW9;Nwda`~|)X%JkHS?moMi zWZ1DF_i6vRP;8iCR4WmGv(_f6`k?=xb?_SOlj*I79`ryI2ej}MmXX+?N>`ZomkRu8 zWEX84$}}1#n!_8wVsoiYunYdRE)u#T$ofhOB`mEV-buXSU_x~cJ#w~IWS#Kd(1h8| zEtwR3u!D4I%u8feV6p(x7hIW*RT3W3JR9>lWhAEKZI&>PBKtPER=g<4_uHmk6ZkZ} z5B(mrzs!`t6vcMA*CGCX87xGjB9X~BuF=8ME4iqo<55{&=3GWu1i!-$|6s)$>KFPx#5~E5t$j88nsj7vX9R!rWMpY^ssm4g5<|9w zNg@=>{U9JR27_`b*eeEO}WYfp9&R^5w#;`WX{0D=ATbR{E zTaDggzF{H-Vrq$!;L~Q)O=I-HvZe&GixhsW#!9H2U) zn5HpI!g1-*@bHof)XN&c&&-+yPv;q3YuJSPf^8nmnoeLF409NQg3$R2wq-zOItIZ@ z+2>hTBJ2_)Hg4NF3=Xuk(Jo>pyLc2dU+R(iIIU=;-X!Tk|Il00=~b1=V~xx;?Ep{b z8=;E=pN-bjTS2SFG|mT2qxP ztOqL%jy)DsZ`=ncBJ9ADDorCo_c+FGno?2Zg3}`b^W9}Dk{He|2i>&5z8P)>nBGKI??C^&;-ym1uY|sWLpbg z8;e{tx{K>a5s49vq{Oi(xyIy24OTg&@~+u#sp6QN*`R04PqG9e^WKoDfi z#5uZv1aMk1QsXXJ@J-U=k+%W)1eAiLg=QqPYan}SZhdV@3RJEU8$AjDaCVr4Q1VmJ zkx}mAc}7;m2^#PU%OTN4oCNgnP>~$6$XLY3NG<`AG|nY%I_)UO6&9sP=HzluDmrLX z58s3NlHfihkg4dqW}MA9j&e*jUo}wD($PFjXx4-3s5lrw@?fKqag4`$A3fb^w3^~# z#k^WefW>5T&CPklJ~XO1zxx`%Q|d*e5bgCH!XI*H`2-JQO3Z{B`c%?L=qj-*(XV3N z!m9s#YbPWYpH2j8X}``J3La_gV)x>jfZWj4&i85e87U}VYG7z}$pTKzo<>hD-2@E~ z;wCgWD^%_w*8^r<#%v&a1N$NQm9;dxh7jvqZ4&$YbBb|-p^YmK z1YKcEaKQO|*Od2~V8FPeD9Bh^=rU1fM#A>;PIe{aFep*{$v4XBp|D$_`Jqu|Gax~M z79;$UPZeb?%L1`991tk3+=N5#i3}jtrhYh@5Gvb76?D zsrLjk)0&lCb+j@5LUWg7anT$gvIs|q3@AwI7(BB7M8jHP27t%m5z$@6sp2zzItw2y z7~8eD!e|)-8=GY$jWQbK5dJH=L}~JQZyZ*H^r!vcjBcsz)sQ^m7G|#(=_Y*&^T+zs zI7C6FyeWZsIFq~H$=rcRK=W;ZLFTa%LvA$KW27jJjxZ>V4&D1Hnwb}>sHs`QoI21R zobbR?X*R_?3^v$6^4H~YWU0yd<(`o5N0tt1WXUsyCEYYan_vKt3|%ye5TdMiZm7>f zr%G840KuaJ0>+C^Nngk#m~jky?iMIGX2R=uJH@zEvQo zrRB)ns2A9$yurL7&-I49O*NLgLt|=76$q+j)D`3cd@cC^GRua|jMj{h_0(m)nGyt% zd)|R6%OAXEV4K8JrTisJQz})fDSd-ifGr0hV1SmZi)@iJUUcirbX<7etHOPnz+S9% zF)fptk7gp4ym%moCnpYY0JnhT7nVFbx~(ZrEgTu@it~iW{?}ss$e`2@N}%WuL=VyO zz@=c?;h{_kghr+80h>Ta!Dr+?5D4(0PMsVGd}!;IGFG?-gb2_R4p*>vbq^qOT6xEu!APepo^z!r`ek$IJYlRQJ#x&JoaVnUhGL zA2@<>fozK?puiZYrr1`1jJYMi!X*{jNmvV@VK{1*YtA>>Ko9|YOxSx?-7I>8To6b< zc!Y5V2d*#mL4_xiKE<8Kmr901@Bu~Cdf+I#Yjy7ntsSJU5{it_CU~?bA^g7oXQsCP z0Mf_fM#m1!E5Ka>SMo4EFsu{j2^AnjMKF4ERROM#xgEKf zDLNjW+G}tqFAp_B%j7N|+|7xH@*L4MJ972|*lZdbuvtVr{Dg2}5FLJkOp}anp|Mlc zk0gu0ABI|o^RTe!VGEErus{NSh$9s|7QTj7j0O_j6#Z78vj>2R{Rou+m}@k%bud z@Y}}WCXb$PE+B=207@r6Y9?5aL(ogFEc4%d-4%?lscUP}2;mvvv2h==>r-GzDu z#Rik-f(q3F`T~a>y&JYKFtFL{c$PrGtc7UYw21azdT#;1=(^C0gQA1# z%+=zQVxdE=MI_$5W2{mJYfB(;!xi|GV5|d1etrPNv&qSFV_SX27`KC77 z7^v)Ls@;JT>IoA4*wRI%g>qRYu%&~&4fG)?cVIa=;2g;8*N@qGetF}-`)uF9UsM6X zh^bu9T<22OD+`2eL4}h?k}5uQ+HZiW+_*Ya99%2ZFKn0y(^=yWj%oF0?{s)_!M_;E zNI_3RR}%=mXlpdWuu|SN$vs%}91tC8PwrHvf#P#FP(KHj8HjPjBka z!PT&q*gII;p%aYV)Vf}DVUU?@th*a}EzsL69ul^=xior6CM5<7iJ=Ce4)?;pWmR+5 zgCOTzR%I*+oe(lqraQv5L5;>dQg9y%suV$sVErNrKulK6W(8=1#e^=2%@0i;7Z9lx zNEYxNOf*iZo`7-ec+x&-HK;n!!~hQky(f*G0a%>LB&y;v$vC8#o~SH2Y2jd&AjMht z{c2fGBHVr;N8rh%*#Ox>5QC$cSp*TbJBUuoS{gWU%J^)x9-sH&Mo%OduX4ritJlN3 zl#&CZ9>N-gu6#(25GVu+7vN`FQQr|3cVG^szi@{@6C5y{mgu@TRI@Kd-;|Umly!(N zc*MNsQC<8M;VV?sbe8^+`^@Yeym{J7r04W^=xXTcOJnsCMYOfaI|j zVwj}xq{$ReOR1d!UzYauwUmrFB>hQF)&P zM^sMy7X}*U1r?2#OiAy^vFc3*<~`5`io^wIfFMnH8L$;xT5zV|6iDAVES%;EhFgTC zM!bf0X1rhNY3(zJcn!5SRu)P~;O5`D@jqmKY)??|X2UPmwUIzTkvrp{&D5Si8emL7 zq^pMSu}}kZSCC_|#_2#M=^h;aF%!%scx|B4U}}xUv8;ygu$3&l1GXJR_fXMd17T-o z@7ida1kIaTF}6UM6?}myFkCLjcq*dI9HYej3U^g1o8W;!;HF&Vh^M1U821 zm^MG+n`Tw5CZ%Ga9#n=Fsjhh}AZ`9q!@Z)?ka@yvY-k*E(F+eMh+B*BE$^60Ix3E5 z>Zr5oh+hdLhY#jJ;fUt(Xg7B9gJ^C55%>hv%02EP-6&`p_+wchj)EmuukidgWzt)# zI?+p^1;)S_32ht+azzIPd`HEJB@k06!ZO|e>d+4QN-hwd%iJ@A`!v+ad_NBy%1QQA zgq+caLG#%7*mekdEMhQ8OVK!{Iqfg8erdU3>5{$|~w=fYR&3 z%1-`wZ~`14nwuIhu2(z(f4sVfCIV~|H3iKa)a>D&Om4DuIn^*^85PYtPVBz}M#>a0 zr1C3j%ft6;mp zsMZM|jfH@>>`y*zDR7_zss&oJinBwuc0j~7$rq*m8?(29M*{c)?LOLZWFm;I z*aJ{Pvc7Qx!r~|_L++w5@4Ta2vTH~;8ZO{CXjVyUIzr{_fb5Rbl15$|Lvs+0b;m)M zsUaYC(GT+>QkjKp5ozyiTL%sh*m16Uq- z*%^yWr~~HlEg#I_H3WlPhLCrLleq%eFbJq1ydC?G~ zBRZuF8im6bm=A6ubEgBvHg}M%IF=mcE1+5D%ne6NLpsEJObvmJWU`4RK(P#)L3E7_ zroda_>}ESd(JxMH3iH=Z_>n^0LvH~%Mj6?tt@^NIyiG zHz}_0oBB?eBn}vQe;`S3bc}nS#u-D`NUA(wswfs{a8K5|iMxU+BpVO=Qs{q7-c>LZg!wlM4g2KDidif z>#LR7*El%9xR5^}F~pHb0U-({2u3hw`b}`8ZH5_qib$l;*z072rnTgp7cdR094#w# zl0+a84KR*(k_=W9K>?^~K-4v30$uLrg5C>$1s5!l7JmvIq=JY2>|L`YSAF=9cMQNYnpSM zX+XN(x2EaAGPM_MUGmQ;OwlwWkB@~{s(Um9%bf3A7t5Y*U@7=` z$L;mNrSPt%x}wlj{P9H@FYUL<#neIHJMUJoFR>jh*# zagcItnR3$zBQkvkU~KD%}J%!{gQNOpZ)kd7^2OrG(>N5ibsak`4VNx(*JITg@bv zT)1z5o_VOTyRdP#Awoy{aICL@ znNf1Ik`Iy6V4B$OF~XLiz^+TErv*evKJ!s6!8ouW5tb;pJbfGd3PPiQO12Z3oCKH8;C=CN^;cWjxIx zKnd9Gl*9GR`#K^%qy>7+DkcpS*~q?NEvX17(CPehS86M`<-mdL*nTH@uBka=Q4Ju` z>krCAGk|A=)e>^8#<75F1E?4Fa1XOasS?<}ID3$31oZ)(C@Dc~#53=E<_M1F;Kx>j zi%EpBdaSp^Rt0uB3KZN}P{XMgkD}Q-M{z}Jn5%mGc;&$XJ)pl5Od_HPIF4j>9v3$G zUS6iwh&BQyn7LHcoG>dwE`Tv0`bROxeu8KX2oazoq?7rGgqQl2Epfb+lMU_yaWO29 z__hPS5!A7;gJQz5(iK3sQG2jyV^L?XBlj(o-0XW6^Mizra*%N+`c$e$_Ky3;>#12v zUR*ff9DgYHq@y1n3>gy2m{n#^E5dhxwqUG=CJTq2Xet0WK}*Hbw-47t&zOcJQ=KE? zY(SB9CVINaz$4ovb2J#Ja~5U79kg{Y^&5xkR6SAe{6I-%9l=6TKO;>>D*#;4+q{PD znC6dj(f{H>2|T08+ykU};_Q;)%5)SAU8P5r&~E=RG~E0f+=(kI}hPrVv(*O^Jfr_ntP9yi4)$Sh(z9 zqNpc{c)^c{T8L&nxY(gQGO8WQga_n`CxI~aGL@Y7og>mX6a$eJ~AKr~#42b}8 zU&^@j9S60MjfzO(x-qi^W({;$^=!mgvv#Eof4)PGiNaipjlNab5@H_XZB%g9H)1OAX9Z*idL$Sb5 z*|r*nv;oHQC#uz$H*{ilLU$krjFhXj2jK+%Z0-~lL^3qeFpJF~5_|rTI5csjZeU(U zu5-N18mrt{RfJ&1z)fqKV2jU%d0;h2agrCPnQ+ySu?GO2{M85!NZ%ev=7m<4~1Fif!NV*PBY9}JZZa#zn332g^h->@?tk5qOsdnk|CO907qhc%2jNd-_+A zjgk{C!(wQYun@y5K48hivw#nI|GOpAEYxRPz=pv-6+SH5 zhRFeWW#N!Gdv`cGvkR<^S{6ALZp)qOOoRzBpw*HCQ6Y~B%r|Hg9A35Ld&JuZG1_FRi0V~H=0a%4{ zg1=19W|)($c>(ndhh+Mx!FeDu!ViMC)_1e%AmM;1VVeq_=T`oy=z-Fx7D=bt!+oM- z06hfA<0*sZ4ZJ^j9*92JulK_0iO^sOpYtf}sRC0q(>qXV!71{jgzpLOAhKA9KsIfF zb!r3~ivz7Oo20~R(g$+j@!A33hr`zrXoe#Sse354MA>6vEyER2h;uTc+k%|nz;0|x zhHgGw35}8HWHJ!~p{6$YJh~x>oCj-rO)~Bb(iYJH&l}7Y=EhvJM&wrD_>dm@waXLA z^$sm^Gl3k4clZm8s5kOck0$R8^Pq@Dy^y**k;Fgso7^&)5%mRj5Y9SZW~!AAfigpg z-8-w>aPk6Bz3AyvdDQ9q*qP}jKo7uIx*9P1^ElwngJ~cUEfsyR8SWx{kxw}~=q+%&B~Ndlr0_H~qFdFGOE z$Z~T?DI!kn?0P`GW6hx9t=K!t!zoutzoZAsgAsg zS(-|lqX1GcAR6)is*9tl75So9Z#7jbl?`EK z_(<>hGI1U%9cmM+HYW`b`?plJVBsv4I=+{Nf4~30<_ik(-PDK>h0y;GX8k{mWc~c5 zm)SR&6itsS29x5qdJ1->6jSv?++cR+;|7bntza;FiUng?YgfTwa%x=EVJgH65%v0OCG*=_UhsEvL zpjM5Gk2kp!34^J6DqpH*c^0aU+1*o=(va>hQ(dMw-dvaI*kEqRckyLG=LU1*`8^vf zo`OEX+Embu*5=DRd?|Q0T3ZTU;|67q(P(Wg#*J3b3dLw0Qcxz?+=@QLr0j8fR_2ZN z;T?sIwqdLC8*L-jbWE_1SW}!}=eLV^A->cr#bK-BMqBHuys=(6d!zlJySt2KCPj%T zYKxNSUQ{;v5tCAKuU8hAdAsz9Wn&&w)N}T$N_<9RBg&4Bn5GNm0Xn z?fQgr-)1h(`1T5=RK~?xs84Vw+bgFu%xl+yi`ZD_Y2ts3_#?pYp#tIGS#Bv(~%gXY?)7`bqfu6AwuI9Ab& zNtKtlk2|`_RDJyHd0VPaoITG}bJFRzOs+ZU%w?w9lNO9GXj-tlpgE$&NmW&?I}55a z>KR{E742BW`lwg#J%4;$bwqo*YJYrTqq0XWO;&4y-AWw`V@h4JPy+ll?x`MG@NBKi zENwCy(nX({b?Y_Pr-ME5`s~v2TkEpX9$uC!Y*JFrJA2}4O$*DlZEJnis)d(or>&Yd zWx!lL&W{O>Rwmwk@74jsm1W(^z%yBd)`M3V$FF;4%E0+b=`_!s%A$ck>oQnaq&v3` zmK`zp zq7R?>)!+->-1F$*pMQJ{UzDoH$`)z<$2^Ozcnk`x(m6ZnTdoDyq3rE=}j^ zsorTLs#f@)7{2=N#y->PSzdlM%R9|fz4W*Z!&fi8b>r}At-CPdj*dmsM&7k%k$vQy zY$2gL@4U}`&^_zkc;cYnckNxmkK+YcJd>(cxB8Z7t2Z}K9aXj2zeKy2m$&gVo)|vF z>Yrw-TH3r}_>igIC7#t*KP#qY?-I}Nt$ev}+k~S=Kk(|JqsBb+?#8l%|M=nFGVca! z%hF2jcl*_bJ>$6Sfy7(Qbdv<1$An+X@a5&xSM!mq zSJ+?5ti3{eb!zt&k-uK3J{76Duw_G}hrb%Iv*3D4?HT8}GWy14EmuZ&Emfb2zEKD` zqi-w?T&eAxN~!zTsiiBlzuE~=d~?OjE48Cgp6`RpUzA0#Ea- zJ9yt3f4Ep1*SBNlRfm4?;{2x%{a{D>SbmkRkULq5MDtG{>Ks>64yzbfs5tDyp588X zr`0w6u#etd{q$iUl{OuF_($)qJ@)W_m)2Gs{_hX@@^Rm$rw{*3+5GfjAD6a2eb~R> z-Ndg<%J@&;b`{%|UQMmA2H9*6^%PY#=GDiW>UaEBX|Xgts~LA|8XFyJazyJAR!PeE zS?kjKx+j$Rb|fY`eLcGBIJB=gu{^rDYhuNC_5%m9I@RgxX6K7-W)~gTr%$S!JX-mz zy|XxJ-;VTEhq`7=T4qvaR8IaNF^esA#wA9zUYWvdEi+qmQ5KruXQ{RUf(l3b0%f4$?fEBS5A-aY+pQyo1h&R z-C1BaDVs61`HD%$9Xa&I_T#3Fyl3-qM~(TTHuGrz<;_o=X{;)nXY_8HM>9N1BSW+&B>?VQ#j$|({H=vc@DwOMJNB{p017dx%WPI!YMz! z|E-!+esWLYdHdXZO3$Cf-)^+$<+lfQT*AM&|D5MfI&I52*PeXl{m)%{%2^L?dH&?n z?i%uf{8`P+({AK%kG_A)jyZMRlWTuew{G$ab4IW4-dM($MP=Uga+wa|ZOW7B^=e~B%3qLw{Cx147p|Z#xuqjtr4j-~PXJHsw@CY?p=M><;>r_NCV$m*?aI`zM{j*Gb;bSLuS{Px{(~nY%Pw-U z;7X&XXLgP&#WNKho|iJqCSPi_FT15wuvfJA9+Ua&g|7Onrgw9E%sSzutmDpZ)(0n= z-7)*z`rOLor6y%~u6?a}LFU?%ax2f6GMFf=Gly=--4N=Sz)|KIukufn({8-rgO^U5 zw{UkMV^VgR;z)apa@GSc$yV{onYJM-y3hQ>&TDVbs@@#B z@TU*I_rSoPJ+f!(z@Pn*P32FYm{*;7-{Yed!#E|&OWdWe8c#8C3g=7khO-{H%kye} zbMd=3_I=|ajnlq`=u6$&8dUEY+^D8I!y*mHdVv zRa2MlHCC;(?opn5GI!%SRkI_nlvT|hw&9#|wRFad$zT2G+?UVz!=UqCJLhjVp7;7i ze|zn`o=b+ke*Sw)UvOUVR{d$OU-0&Acf9`df86uvslRytaTfdk{_&qTjT`xxdh@uw zkM+L(i~oIm^`dcm9*+#ZXkT{O$XdOeDQ~G{p#k6|Gnph!N2_UUoYJJ z%g^>uaaJjh-K;6o^bS|`mr?WOxwC(E){lWO&d$!CU+t_Zj;i@>r&_c71LM%A-d81N z{{O5qs@AHPZdR-NE>n-Le#f?dY&=*3Q7>ST2M`6%m>Lo#h>Ji34Ne9>h+YOrmtTU3 zGExL!6KOqhXu#$WU0B-C%|QClw8JL#&nJ}-EjTD~c)(x>32i4f9xcKFME8;|Ui>PJ z{#0de`46Vi_tnAb;B%!@#FL5f3Tp;_cQ6K=Lg=i;iij99la#oZ1Iwb9Bn?!xka~jj z1BXIbLM?xP7X99Ohy>^&!WtlsfYKy42IVBS0^Sf3E^r%CHIPxP=Mo%XZhe1xzr>J$ z%p#72TLMksJxJ0e>Qhi7Nhbjz0MNuu+Z;FY)SdJmQDv=@C>~KwVT}M4;fS!>lPnSMoRg znLMAK>joss$AUv+xxh4m0m6RBBt_USBvveCj2XRk2RI90F7K7c2Ob=Jl#dQ}$-q3B z!zCG35YdQec)(yfko=l};9~m>y_KjresF4lB+{XXfn37$2SW?JL#i?~AoQ@f-SHY@ zVrQB}mRQCDUJlG6G2a!+UO;IyWH4^uH(y{0%|9Y1xJi&w;_`@gmE2&Sd)XO~*8{$B z11A_^JBa{Vbp+!0MQ{5 z>v{N)2OYrd5I+8Yns2aM*@O)FtN8|~j;-jdzHh!kyY}oi#v91p=TU_J6R!=@51A*9 zehV`@!d~9Aa1CMz$VB8@4{*MLWb#5X9LRiwKDDGnPvCDxSxk%tt0gQyc;aHBcL%^;J9&i{?o}clIY*!{XzZ{_m3wim)X><3u!Q3c2eDb_5Tmbm(^p z^{2vu7H9kktz=^Z{oWY}er4@`BM>CW>OYS_XgA#Y^#p_oh8mfGVEoPmgrls8v`V}yw%aFMu0jtcCB=m&C=Rp}<$ z3?(OQgfKx+V$2A^)rA%lV-o=$$fNwLtwQg9XHdfbXkA3)A#wxQN78hRLE@|#8=#`= zLkJ76jyYTg(1pXBExp**kZ8gRL*nOVgE2*!a#Bpva2-TVON@J+u_X|cMS)0?5)2;$`t%=|y&yrR z@VglKA<$T`X!6LWV-tqYCXNA07?BnRMs(>cNrjmVs7!c%5iG)*U#9k&5D0KC$XpQ4 z10)@&Q~G0FkbRJ#^xcsTkDJ!+H_-tWyc~9rWrtP_7rq4OAU$HWL)1mWJM8V~!l0sp zQ5>|jG9!{WZT51;LWsTx!#2S(d{&Ir#Bg!?^W8m0^S#Di=ht%`gpU$^5b`ECJ&ffk z$%r#kP$K+66NeJ!t4R`%lM2qQF%#nl7NA`0CSw-`0y=4`6V!vcg=2sa0_6fzpNmR@;Ef*|I`I*y!Pqt4 zu=VOZ2|qM*qRYg_OM?RYFA~BZ8alB=>5??0FK14?UDj(wutzNoIm+eVZ|1}s=$*vk z&x*k7#WT@Aa{>X;^_IPGhzJ0_o;e{k(gDw$C{>Xkz*EPwh1em2Vil5@n?p4(*+Epq zp;%c<5O++Qj3Eey#>T(%z?WIwdf`o(Lx(%JkdysLWBJ&3ZJ9}-|?@&E*c{twT zu2E-rvDPOM{WJU(%_7Vu7PN0q=a^_y?zhckf`T{Jr{?j(OGMArR>}_oCK!EzT$k(; zicDSsfo=GD-Q^=P{0GN)yzZEf+*rnVxD9%GquT3|PEo35*-3Ie40xc zm+X~1CAun96Ow6yWDxm%F#0b`f)KZ~_eRTNG|MPC(u_#Re=!%N0oCm{#)24a`;7&8 z$RZsap-E%_$?#J$NoaHWT?***$qNf>`pAu!iv{ zNZK-`9Ro|GEkRi&e!>4XY(y%CfeKZ8w>a)GuBY8*`&=L3d?Z%rF< zFsxXHjcn33?LTXzRE{tw=0Dolt0S#Js)f@{)JzhkimQV21HTDU0Iw{%ADBvVt$q$? zmni6JP_CIO_f;}Q2I~jM7-3hUB1A@oa-N86j!Vj&^u}_Mh=DT5(hlz}@P^{WSz8U>h z@vDItvrK(<-k3zT?LQJjCTE0l{j(X63m?EBl4eOgB}srv7abavgJ|<5$C&@o1MwJ3 zh8G(8Eb&xyYzH>7WE&<9B%9H6V}hD;7Wy4%Uc-9Xw*5Nnm3{)K4lt3go=VD@jR3yebKGHa4Sg z4^~0_Zed^ee6k9F0UZtwcNwkXvu)X znXn1<@&OHD>8|)<2+I{tk<8MtVSD-35SB}ft>Ktc)gw`BUnMt%m~%b_^UP2OitCRX zOt&JjDmZLpWEgiu;;1Ai4;>3|8wn7IbLp3YOt2D2#RmCwzMlUq$ zfrp%JOwz#oS?-*P>xiXjN^nyG-Y4w;ZCr~a=tbkAvZP~Y zC~z1}787O~&Ez)&?GZ~#Ivt5Rq=VqL!T{kT7wW&vlR3GH&Qa#cj8pR{qwu{4&#x$1 z@y=7Xka))81TZ91iTD>rEY!H94mA;sLrM0{!85Zfu;3nK{(A6C-q6Dc0I(OLArS$l zGEL4tYzed-6c79$76^u1>>Bt4!`atWq_MGDT^VlPE6w@$Or1fK*;jjDV`uQrmf_{4 zNoFr#!vxGlQ-`JrQJOzmZ(5EN4MfNvO<$~;H z7l@oh$A)c(|C0vir<7|{W{NJ~N4mx`BWF|iYKLO8elf;oM9q$GjIp`X!MVVxOq2MH zDK?3kUWJ#$ynvY+iwi!ec4J>HxBCFb*sQ8#KFzs$U*&(BPjkCj&*j~{E_7is#{5~-Fd&3< zhhYHo|BtpDTL=IE{-cL1J>Q&(v&hxS@P#i&;_Rs5zOVbA1gtOpLIR@Zoof?2BZ7XV&cHy>&dgJPK5*6qJ<3M4xdW@az%v1=&Ge&hy9U z1j0_KQ7B=?L1)#J%rZR?6(IsRgsr$Sh)xNFw%4jF)o%>NdD{LThvJ}u&jrc~Uk>c~ zrB1vmJyQR`p79NfzZlrV*wQaY;(YA<;gLAJV0un%;meUY6UvKF1fP$@IoY`UtC2WQ zS$in*`Pf8=0aHgq9``b8VorNZ-v7{#$F-A7byk(i2!P;IN_-kc@HYnMC>10?{J|`9 zb9#)*TP(?lZ^x866CvVteK(j0!G&K8? z%9jeyvlme!;*>+zf1OGBt%cNr{1@YQHr8O~#3j)`erHIPGS>F>_#Lt+E>ugE`%l&3 z3IW=o<=$_q&T}^7)usf3RVn;oS}Bc z&P6gPwk(P;j9FssKxGZy!{5=QL{Oh&clm)KJrTPeT3azuhV&3a6-u5`vq2QJ^g#Xd zcSd@O*vkNyC`bzBZo*4CST>X!c?SC26 zBgQ$#GF+zj)e^lxH$|iY!Fz;!U}q<7MiO;6QBf1i$O$r6Qq@XxCCQakF_IjGGYU~T z@HsA3nernN3eH+ylo&S-C4!ik0)W|wcml#YD6+a5C*ng-oo`O`&j>nF zVNGB<4_`EJpGrOVtr0;evmFv14XOw6Cpr3zu3@96h+%V&rWe^4(WP<-`tZGW?LSKB zG;SaPnrsEY`(KR`G7fTuab}pY9^r)H7-0Q@rAV=#^Z(Aii&GoUD!`p*9te9JSmA%3 zIV1yH3Et};IwVah@^l(#CLdz(!Zr!9OByWqPy&d^4Hkz1*71xO=4demM}*DbHYU^8 zly~#(Ur#8CX`ow~Y34jlFYShJhIwBZaem~bki3fF9nM0+B3XPgAo6!*q+Nb{l2M0= zrU63q8-t7l!NBIn55`);T_si*at06uoRAz@@tKl4L01rFI&SBFql_M=T$E8p%hY*a zj52!6-5Thh-}JqcjG$W(tK*pcYLpSC^=R^$>XKcud0A`h^~_fiBn2%s7ZO!`xsZlT znlXHPxn8F%gvI9p$)>lc>X~*u z7}92t{FjaVSSpdBP_R2!t;ZZ3Q|?P$~h4(9Khc65A|J8f+!RRU2{ zi0(h_2#^DRizF*zn2LN_*%}P8Zp?Iq92o?P@KAg;@aQhrw+0@)S_bwA-3Px997`%C z(KzH?lTkwU9)s(kl7Wyh$OOW)Q-L2>thw4`qn6$kqnNM3D0; z12z$&g~;@mhy}n19QdRIq*7K=c$N(*(5FZ}ADlk0B}TZ~9xEUU{4#hi6|E>bsC-zw zk;|*rNfa^jX9c5YTu;pbjUK|6t$@GD6dhC`9KS*Dkrmz0ATqNVQiI^07b;sr!KICa zgJaqy77a57z6@YP$W!9;QrlhYNQorEXpLJ$0=$L3Qkn zTv^*83F=rxi6|JWlgrdU4(S3l(LWApilY2)O|J@X4A`^ZG^FfGwFgimL*O#a3g=T~ zwVcOfWDn!{It{ZBubZNQa4?WN5=?LvHKyLp|B-uN77dc26({ z!=0WyJ0k+5XiHfq-8ew|J&3Gon-U>TY5Zfap=_rQ5n0x~q|6Rl*BDY-B~7|tZ4A(9$AgrP}y z!)<!7so4|nKMj6 z=DcG~j13ye;{bIEe(nqXrCE8gnpq8B4N6*G{zHS3CJiPA?E3~KU9T$lc-lT6lQiAh zpGhFmjQuH0@SlYDp;3VVk|9JWfXEzR5;@#WFxQfYP^MM)EostIAGv1Wfey!>v~C8x zLZk=$28?JP)hP*G;^m@Lvett1`u!@qN;ddPQ#*8nXlp`D>#)*}0QK?m7%HKPnLotV zoJwliI`LxD97}xRQ-dYfg}sULgQzgcwoht>YN1(nDZj!le{C6aebMA zAWdYm(#VsB!2$s7C6hepJJ{NiNdvYJa6lo&V}o#pPZRrxJx&Tipv$ftY$HF(z$xGWlrN&J)OfU`fYTPREs(x>fbxj7OVUjNjnVOhL(4Q$>S8B4)ZdkLlOfAngTjDQ&pcel zTr#>uz(L-w1k4e54xH}IG~{We5$lA1+tODqBY6lIL1RYs&yxv3iR_HPBRD;059Or{ zk>I_^q^^AxZJ*B}>T<68dJGW|SrM%gL%PUcIi*gr3;BtZ`B)YIs%SO)w54GUj{!P48Gy9Su-{yx)mq!7eXuDHvpK32@9Y| z`%NG^q)s`(x`S8{mgg4}h<2FcRAS-ZH7eINv{5-i_>FH=7F#!wzecG-oyp4(Dh+WH z`n#P=pM1yYNu{@8XpLt6R;CAM6Q9yQqv$ECC(BS7J+i&3&Pp=g?D!U; z4O~qABEWeN9=4OZ8|saTKiTXjRz3aKYUQmlGUkCpfo^=J!JI!h&iNl6TX*j_<{0tP zp;{H1O2!y5nE)6vYEj!bs9-NXQ>kzFA7d1$ZAk@Z(=f3$01=br##)9ce?aZ~zDY*2 zJ*dstRuGkBsIF)e$?qaq3p9j>f|NyoafEcVKkY_JIsa%S!6TdVzFLw0V&u`q$|lrS zGV%!a(dV11Qs^KkW`+LI+(Vs@%#o+Mf8{a2ZK==)?0*bxK`P( zP^d|=gCB(#M_&JoE)<&#JNW)NN5|SWv)#)`&i*+^uaD?pwZUnIAYE$8+Az73w6=NZ zo6x7s3&XdMq9hVNu37SNznq7}Mo5|xEN%Zlq<8eS)KXMSJUhWKW568b6ib94IVFVG zb2^~qMkXea%z@<8ibYgi$dIDq68_$yO|R9w$&*Azb_y&+rZ&A^l|Vb;O{r=(X;rj@ z@Pz0^b8ipR{X31GV6@TcPB#zKQ@wkq$K$mjFNwhS(!6+!|*1l8Y07Nkuh1tGHC*pec8qwwW~rQgCvetW`F zD)p~}$&Ecjqi*YBa6o^wIaF=xUjq;q`%Z1_Q^=l{2y3)Nte8w{H#KrN@UIFzvog@R z-*~0J_(;Q_QcJPQ5Qh+4kAngo;Vwc300Q_wHXmYUBp^-%@|x0VYfYzjk117xtq^hl zpXV@5wlGnY<2XSz?@e!L<@hG>mlO@w01#R%GZ|G~Xoofl4mne-rnL6&Qu1F+VOnBS z{xYc7h%lB70_Dz^Lzo)OMRrznFkmHB!;3WMgyX@#ALG)qpM)0lhtH-0mwMVbd&UfG-j=2#=VyBcb?xQqj;z+WKI*^ zdoX<+J8hsW(Lbi?c*FcJrZkD94I2O(yyWrGm;Ar>-aJ0a`dt72JoC(wnM{(IWD>GL zCS)OmZT3aB34~1nhkX$-v$6;w6>uxqVG%_U!=_--MsUHcCn~k5v?mI(xD^mR?ga(Z zwsL}?ZS86Oy+0FHyPR*oJ>S>wpW~|yS!SMjmd|qE*L~gB1%a4NmAwmn1Kchsfx;P} z7~n}-Ov0!tl}NoLyq~L0tZdSz>0}{K=*Q;BLP3cO zpoUfos9PNRq)x0?+fd|0*aAT$0=S=>9^`c4?s00#cVHL#oWpyG5pEpMfH<7g{ZQ?r z*p6%)`Z-L2&pXd&*q{YT{7g*?=!F&bf}7J1tQKcMz8#&I+yxz0PTnWA&8P+OG=bvp z_8wrUI3!OZK5|q>YX~m z+EBzFalEVxbC(0bezm6!xRW3{2O9(#e6|6INd!mkJ!;#<#!m;u=?s{Kml!`ue<|{( zX$*R2@Ma>}}aF%p;!WNV;LJF44Iug056 zN&rQpU6r>WXu+1DqX2vx(EcR~k(4&sswjKjt+)7oYQr!dM-l38$Oo_HV!U2Brkq!aOcXa&9_HcNbBhCS(c zOBsx8Q3U4m_kF8!b1eP=dKu7k_*S{d1lVqyB$1HP;Cfr?oNLvymEp8$RiI-2S<|X) z^@!|c0#IYGfY|5mqd864mgkEy8H*XvIL-msiX^^On$Npi`N(LQUF@+J+^r%d<3Wc! z(VMdexlWd~D}=RB zXr;@DgTyZoA8%@aUx|9_;ocRbMu>Mgg4tSN9N$bU%r$8# z?K)|+{C(f8y=BKPwcUE$###%}nsU383!<9|Wh6wJUNcw`v=P6{9W0HPDd3{z2h?0h z!5Rb%5LznIGXH>ooym{X`K;hnQv4(!kaT^siitOTwgD93y~h008m@?fFv}JqdE`M} zAKqJpU5I#78~|cSyRdrM0;EFJFTkqFzKFR__0q+4_Nf20Lh-?+wp)!lag|X#WFJHy z1BG+~YDs%%QBD#lgAq}AAwENV4mgShm2w@LS}qSRXczl)y=Q=FvAVnH;<0#IOv}!h zb5S3{?Vhv|k1CqaqCKjbieBPi7pA@HOnwmQ2&s9St zKpT%gfggh7MR$XAx^z2#;iv+9I;PSuW2@{Yc zBO7X!M>~r|ZB-z!rN02Ihf;}r;X8fg#FhqLWD?}2(!pzV=~&54=OZt1@LJW~5;>OF za?Zdj9-Yu@F!SG$t%{gg1vb<}WOV?}arKk}q|pyX3z0Stdj7Xt8akZH%v$l44I5ve zsS8GB0Or&U(Tc+=In2M2$eWpGvXk(i{;qu&E9_oM4juMgkl)b40ibfi)Q$O9>bJ5* zO515FY2=|Q3pt%sL=2?kr1%)mtuDd8C79@)Z;yMI1S{i?%1m*4rHGiD&N_X44&X}u zanfK3tgV0r;r@#kngUYbb;{OxYD2Wj3E{u1km|LrYKGs#=^^I!MI*!LQ21 z)K25jv~r^88v+q=bS-T{3=j%%a%oqwq{b4sLeqdY6S?Uii}v#_O;o%Qy7uXvP{^pk zGb>OqB#c6et)X)myx5zVt|66a&y>1TlrBS?&BXwfsoy0tN?W9*9y}Q6T|ep8MEfr)wt-grVJIGuW26rvEfUT7 zYgld2+(JS6Y9TPEf%gx-x7HAry?fCGmi*|AoyENV?Pe)9DwWun8*%D?@Xk4Rf(kSr z*XQ#Exh|Hy_$x54h~X&l5~{Kb0Lwe#AKAq^LCG7xW4{Y-Fqa)%>}ppLOQiXNlC~_b zLLdz$stUx3DgYkmp#pBNGrFaZ-5s4(-9Sy0yS6+xh5jam3RmK#e2V4tq=|`kQP?F# z=?>7x?Rbthi}-IlG2V%|@g;$I=Wy)A4t_^QyOCljK?gMqZY$z%gkFS`*fB5njfYB^ zh>q`WO&;vqLSD^~<}Ss5?-C1xDZ)DVt)6(jN&HtpL)Q}iL8L5@BS}cTNYmqM$^cHZ z`H=4&TRxw41=@QA%eX?wmJAk_YZ@)3tUYBBnjpy@fT!{6l-zJgv*;y<*fspG6ah@f zZz*UZSft^^zpqm>YH(7$G#H#(tbSt(Lt==>9|YDy*cQbz(l_#I+G(EcPH30h+k3FI z_8FU5?)2{qiXUaR8zAz*d?mI6ieT>qafTD&xZjxX_&7I2;V%BHIFn6|E#iJ3I%Sdya@7zUE?Xz9-e46bg70fB$&w2C&X|bO z@jy1xQh%Z>K+?{oPN^DCN4np&&m@NQZpK@TCkh7oE8MF<2`2lRrPwK(IuLnQUKAaa z2|_%hwz36K^(8HEIj=2)wCkGNse$pwhWi_fhEyC<4$Z9*_rrRr(mO6EOgmrzS0*CC zfNyK(N?-J(E+q|qfKKAAUc1v>2$TiB$_e~leFn-X)lymZCar_AE1kl=3!cehRO2K< zah4ugc6P#t3szz8;$eUcH0V0fpgEOxS-|{lqvKQdV{|ZSw5E9E^44g?16e7O2ykbJ z_$GVMIj)mz3;&$O-0j(?s|+M37PX!C0E@aE_2L^nJZF~L@0ox-qakDTyk>#d`LV^4 zcqzw{{IWQ0|Mk0qwEfo=vcF9EK-Y|A5`+tYoOdeG*97^5Q%P6pj zXeY@hN<>B{OYE9lF`i^B5_nsR*t$z9B8WnVDQbJ7XEMb-wM+!pM+2H!H9-b&Kz;)% zo`Yo(_{1 zDFDfy&rD5Zw1JT!LQd_Ls^PVR*O5RFal$A#AuQ2u`f^vIr-{0R>@#OMBjUWT{#gb) zKo9&~m!Cc@m5zhIauKt~<26>hBRMuGp2^XETi8U82u)|+|Ef743B4=|&~3QsH&j1N zf(wm^Rl=psZaV7_HUX@Og^xilJ;DeOsmAynM%y?*p-7}jNs%|pzMc5Gj26~379N(= z!0*Icbfie7K!jnrm$tM^*crO!;Ce9qDGf@WFzLQ_&M53vtHoo_OA!zwQ5y7i&u>V8 zL`I!o1e(Z3q+szcvvh}g(N9N(m*Nt`s>AF`I%`4Ofjdm-%e+t9U19FUngCsd6X4^}H}rxvVM-$I0aj=j8cq%0*^o z*(GhjIWj(?`6dw9QMB%yn_0|Z2vL=CZi7z=)d!}D1O}kX07%5X(QO4?r>}u#N&wwD z>3eoO2T1m%0`Wz+5c_)2KQwK6_C~hoR;pyQ zXM-+S+`q^Tv+X(Ef6%4qNdU8QL>Kk4M1S668BD0O-x)jVm!n!e)N_-ZGx7xYcMTI5 zdy}_`CMetlvGKvhw1G4;)jCYkw)n#=Fy2V1^^8L8l+Z>|L6D z@D6lM(UA~RRHahKTt%Oq4{;_3`_$>OZsbpXF$hP{K%^5i8tQ_isOUowX;9G~VHixS zR(y|2FZ6)Uc5kpy96%`?M^gZDnw)$Mr6C$ZTyrvQ!9xYS(zhrZFOPE;YyX)MPCKl< zo)sn)jm30*DfzP3GHa!k8ud@CxcWCNyPOVa{K4ed9K4%q8b-`u;ki+JI3yCZPD3Bx

    +{m>*g3J4U?UcFeeR`2BNowSACdlPuze_0 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 V`9+%vc>do1#0aAh;kvQT{}1&r$m;+A literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b23000026/ethereum__nonce_diffs__23000026_to_23000026.parquet b/pkg/processor/cryo/testdata/b23000026/ethereum__nonce_diffs__23000026_to_23000026.parquet new file mode 100644 index 0000000000000000000000000000000000000000..99f90ce0cc19da22bf2e9c3588a65f230bc9fb2b GIT binary patch literal 31982 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 X*Kg=MkBIZ1|6lsIJYQlxyhi( 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 Iwl8%5R|4!1C;$Ke literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b23000026/ethereum__storage_diffs__23000026_to_23000026.parquet b/pkg/processor/cryo/testdata/b23000026/ethereum__storage_diffs__23000026_to_23000026.parquet new file mode 100644 index 0000000000000000000000000000000000000000..84e7d540d056afd17a6aec778fd9d85d59a7e900 GIT binary patch literal 120852 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 Soaw*+Pwfv;Dla$R_rC!6D=>Wk literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/b23000026/ethereum__traces__23000026_to_23000026.parquet b/pkg/processor/cryo/testdata/b23000026/ethereum__traces__23000026_to_23000026.parquet new file mode 100644 index 0000000000000000000000000000000000000000..71e6ddc64df5fbe0d7deecd8af566b7e8a56941e GIT binary patch literal 252149 zcmeF4d3;snx$oDW_s+1hGbezs31Jj)&4WeVOp2&92wJq%W{nP28$_+P)&@vzOHqU1 zRIQDI)%NIZ9E-L+H=yEB)L3z>+BhEDqn-^rSdX>!eqVZT=UVCileDY6dJ0l z$d2npY7j(`61tY|D9&tYZ@b1{1is=bx)HdBEc0WYtJ$6t`nu!Wd{}WETZzPHWlvF5 z+qQKrRP<2SbX)fWQw^-pa~023Wlwi~$Fjs{ea-S6SJNC_4;+IpbS%eF1Jm~m-H!r| zNAo?+G{k3ZTM2Yo)hyF+eAQ5FMe#%5@ikKqBS#5**$y;W_Ge4Ip6|P+?0IiUl^R{P zWyer7({WARjyzclcxA^_O>MSRX|n>=GVLJLR8RJ7*|S_t=euRo3wTQ1HJu>vEw?GQ zw>_|I-BGP5QX|LkTtipA$hTG9w_TgJk2KveBGWV0OQWp}lIO}ip>8XN7KEy9hKAy( zjFqDrwyS!)tG{ypa5=8*_&$Rl`EsDyuJ3z+sXMOkDuJsyPN3;LlK8A=8ip0gY9zbN zgXQs8z8WxQzOOi;EQgk1MrPp7mWp;1llC?Sx*K_>q8OfI=w6_yjBIFmI#17AD|Teg z=3!X_q0g{5e6g-siXMfkrOS~KYNlc;hT$8Ytxt>ZZMXCwGy*;Hy~xz~Le()NCN9u4 zRWm&vM3)uQ)RdJ{gTnVWsD>Vf9)DVvXEOM<5eAOxM3&|{rfk@%m{>#670*^9BZ>l7 z_su9&Ld{Yg%Z?PEQMOE7b`?h!pJl0fp=a2RV~2sNT6QSgrYc8{CCgT*D2f>vfogd9 zM5Qfcwir~GiS^tduw74eZGOPFoPg!&^3+!3@1I(ixi=k0@l92+S#Z7*C=P?ChEC|o zKI0&pp{Ls`87-Y<&3d&AndRg%I*}6C8t>-?yoq6Zfnv$*gwa;VaSWT$lVyG&kTtfJ zX*p`7*!)5}G&GrQ=FE!~Lpd&$t8CYFb>`H!n19RjS&J^i?MG+E=Uaike*z+=Fk}*# zIg^KG(evh>#pFAx9%>rz7AcNmY?I2F$WRrH-^p^Z9hn_&DXO8iC!W^rz_D#!(sdlU zCsxje20yJ@uIz?>$o>npFbG3soAiLJ7?#gOu?o!fj6aLllzqjr{ZKYpb~1CPF%_&s zzD{L-TS~@LkU*giMJDs6`1TdJ+wzR5;1 z*+gdKTFe!L7qM8_cZRIG)@?~vpl``0&%;2v5xd9?c#DW#;5xqPMg}jYMM0pgXKynZ zk)|n3zcG&x}YR?l-p!zIP*=HSEY#BF@RW&pTM0|;_v;WjE z@O-T+S+2IcP&QZtgfdH2Sp1%&g#=H<+MT#5Vmx%iceOw~0CVKnj>a%q0TIeEOkHQQX5JW;H@Q596N#z;>ZN$5Ww$0q@jzdf|EGr^hs;?*4vAO)fjja8@l;5urd@Yu& z#;zqQ2A1NpbPSmnQh8%u!yZai+SE{I>~x)_;>uN^vRnzn}V;8|q z3tUBGxrDl@XsXL(1&+)Udy1~=uH#y)2|4n^x1<(1CY7`NR^2yPs|Equur-_S4z=J9 z@#Lu3dMtgPAf*_7pfFW|D*LjpDyGjaGDA`Y(`YeC18U^5lw?-kZdQrGPXww$j3F0j zvdysDs;AlhuGj*yhZ-ZG+kx%5%m{nSwG3CbWIZrUldR>BCdx67$VS>CeGzd(Q>`S1 zB9-l{hWskkn-JqY0udg3mXynjda9~Lp&c+pY&JbotZx{?-m{T_K1lw!sMd8WC}K zI<+e{psIn+plNdSjZ{Tq13P3RU2}bl0Xrj6&d5>d5Xblg;}=F`F4y+0*OO0MzQGgn z?xfG~&iJs-XEaAsT+)HDEMCd56UeEm;j6Z6@mQKn4EDB3qiqq(E>L_`A$drBw~sFjhbk zXOX+QY`TF$hGNJaf{r75Q5afg5Bruca(n~i!E*2n&1W?-9)avJr~$9U)6|5O4S@Gn{)0JvQOm{rTW%q;;BS8{nU;{N!#gh{6LRle_Su8k`wx%d7 zVq3S&NDDPxF|{xG_~2Nnx7zY<8_@S*FKECcIRI>_za4p@m`OfpyG~`0Xjaaz<(kV9B-# zYEjgcBxr^nzl>x>mI(aN)qr!6X&Ig#CRA>OO5}DY3tN`}=94D;Nf-U=cZ) zWH4UHi+hHl*~eCGBAM`xJWrEY?G97vgFiR1>rIxXE^CDUNGB9TOVZNz>PBT(tQ^-Y z9?0;SVGZ=;DdsOTm4vGrKoN}r0iN2n8v+B^lElQwSC~d{pXSJqnLWbmg})`i@LE*EL%Kj*x40C3M^sIcDDEnIqC9u{tDJ@mitHnqpn@ z0xE%-r6ikg?T0s-;u(<}vTs~aYTy8FU7wh3hdO_FfGePe@gYwD4&XZgF*0eFg#da{ zZBw=x1|Gv@I!OqjFV-H2!ebomKv9_}mIoPFCLXbKBG+&n0nFvl*(UX~whY~6QQju? zvj~_VPYVxAJv))`EnO)CloUN9h1sj>siRaM_`N8-RLH570~BlYTx4-aKC1~&UyAtQKH3}8^} z@TzVG&=1YeVu?p?Wa!u9^v63h+zMQVqDWo>w z8S#xmhFBl+%>-o917qZO0a6H9U_BMA5~?gT=A9}aB$+WdUUjZ zlM2CE)#Vr=#<7_yzMr_Hs^5(*(>>zYd#Q5X3W32S2+#ESE17>WsZM;~A#^%-SD#~$ z&@EeCDHWWzQ)Mag4MvbBRGrZD)O@a}n9n3O*$zohlNIg6xX3^ZnxclX>k-pf{3eUe zjK~%MH7~NkD52*m>!p5^ASy@HYTwIAQnHc(1{#X$5y9Eu8i~g7sdc9DJN-Z>ow9I1 zyKGd@iKDV^tw6H^mIMiim8z+C@=?>LU?H}-MC5kNId%l4CT8Swm@>TcEds4gZac_w*Y zY*2L>4cXM>(ECiP8*ENGY|OvTv{3H=ItiJw%kN9EQ$g((U{aRZtUwXPIW#{i$?Pt& zWMJt0lW)z7jkeeTVuskY0MwyH-KrX_b{C*bHA4YHaiD9DRE|31Fz^(L5G$G90z5Zstt$&IrYnYz2sCfOlVwKf36OCBt9%o7s=cy=`-1a{&a3M%TQ2X_z^%mq82kO z1qd4kD{|X;e#$Az0?N?ZI%orDQEb4}iSZenu8`?_}Jqlqhx-D1inRlT0)`OH05s$b@`S!Sy|I}+pmty+K*cgY zP2uJ6)pB4)77K|yb#bzXbi{7b&AI{0XW0bgN8|Qt>E3h+#>2W=nxuF;6S5u}BY7%9 zV_|K7M8yP9_MI#8zwkgpBrhGz5(O)za*UdU;@_gAAOS17d2?MQsRJOCD4=8ndQ+cL zx8D%!1s}6jZ2h!UH|Y?xG%G(ElNAdnM!aM%l6<1x>T*(Hf#`hHW$8jW@LEAOH7bQv zQDol82cuHinW;f$*?`!AL9pJ9m3-URzfxO?k&zuBI-9{{Hf?_n+rS~@lf!u;sv96Y z=u!(D3P+HY@teG_Ip7!h_-bYlut{Vzd2V77WEbImhV%?oG$4eJM}Pqe;sU=X;9*;ZSS@!>7lyhhq3L{FcDR{tFxiPx=PxKh(zJ>3RW8*wQ0|&q zs%wX^lhz?TsG-6BP)<6}13#vppMG6-HG&LIFp*0QF6-K^HsL+lj@D29~UU{`EkE6~+<34oONAQKyA zl^vnN4gw?y=Q4{^x6P{>%P|5uzfOS`1Z@R|wZ68?p={8fZ`=eJfHSZIuOr#dzPG6h zEqiR!z8u93v!f9Lm?e`K5(p+EG});Q7E3^d-y{vPd`;?YpUM+*0yYxjO4ldUHu-}M zj(~SCB9WojgBOd2 z`9Z84qs9PT>(CvPuYks*@;xw-Kso)MY?J%tTCuP#Hb49Ys4fC$2%ac}J)zbPLaM$f zql189=K6#epAy)p&_6}*O*=wfd31n~f$*j>uBrs0w|`f+fI%|OZ>h8qu{GTb6_2V4MjiGa%1r_Mg#l$O3BEWd=m2qD_l;nM|&KO#!;yoSu}9&j4^?-rdl#xpn3_+o>GN^c9 z7>F{WRtbT!dPX3=pG`gac0%>^1RnjCiNB z?@h`K4edbL8-Ifmkb$>Csy;UPy@f%DZ6c;@s8R50Z8@eBfMH^ZLI#De?JY@7)~)kf zz=!_lQm--|Y+OKSDC+Oa3jO@n0A7gKs*ArRm53|e0*2ghuCJ@)fbHa?9?) z80v&Nj{*`60eXn_u2Pu?yo3Y#BP2K!P!^1q3pZa6jDcCP0Z6(5LoGvm!wbPWsBA>T z3@)zkwA_o6<*ZA1N7wR#aDcOCsjtx_T z#%6$@6^Pd$qRyrggu|6rwico>jpZ!hkqVoc3q(~<$znor+2*X)qUYJ|36^skP!!n= z29Koc+7!DKD#Qb7J0h(M>BqW{L~T~CCTRkTJrmAH=O>_e0q7d!xbZ^bJbpO~O~0zK z7wQKZLJqF28m;zK&$1!G;p+Jx_z;mQMDvrwm95|rf>q>2B-(&Fff5?Qj@{4qFje4U zVxs|qT#+m2H84;-7&I_^FoY3QuBbkUPv9AZFr9Q1D2G>#KzBGH@l-}a^wiO|HGo2P zo~bqGyBHwTeyyDS#-#V57n38sN`kw5)_s8joM9sMShrxY>M?*LbgP6sVbUs zeYRj6UQ>d^wq7i3BKR@teCitbMw7j({2^b6+S|%W3S5{_hhmW>L7}M1VXUE%;(D}& zu?|q^SkA~aKJ27V5h|r9p3g-vjB-jBafFPC|8YEq)AXfEx zZE=u$3gL`(LJ1ESNgZXgEuvqIm0>H6=V2MEUo|F07KNb$`LTCRz;lRlV9GOdMKhSt zUW|-~6P=n0E7$Bn-Gb9(1Qw_bXl$r6ps1+#*g6b{uDaQV_I%juhFzOzK!Hz~ zg*J{AE$x@FbK!AVOUirWhE4PjZ~`C>^6;qYUPTYUABei?EzoJ;0_tK~5G5kesnHi|-j}Fv6vR(ZZwPs$ zo?YJyP=N(C-S@}r%d&kb*$GH!tSCez0H_FEzN9z^Qe`YWrZ4K2hK2rtMvWvz)P1u7 zniDEY-qza1$29eX<^oeK)zyurpwIaostzM%vj{+2E~VojP=P8CYQytxDfW|D1YxJT zm$%+Uz9;emb&+Cg%1KC6RAY2b5-|h?>Byg)mSW@XhIVG5vJxBs$bbV7RCos6|2R3C zgU)6vz?dM4kkt_ekmgzb`9ulALqDyp-}EC9>-1n^t^(Wb19oMo1qD<>K=yYg$_enl zkLm+{wvcP6`Se*6M`PeV;->>w$F_$Qx~Z<5U`Lp$P=^h8wg9@te`BK5mwg)M7nV~o z`Ts&u??@1}2B-{Yc&Z?G))suPMjEL}$eC^d(X{B}wt_PuQ^_HAk+48Iwn<%vLMG4-A!4?)Cyiu; zX@G1_p#w<-ZLfvq%MJC)#r3OI*mzaMt3nkIRAQ)~_7DS$f&PVX%G#?IQ&B%z#V zBT+#$qqHJhyF15p!4ih{qhm%81}K3dehWl^*CqA9R9i4no6?QSNW7P7m4~+6pQS4` z>=sZg(@p{e&=U~AifBw==3SI6j%BdI@jD=HP(D!YQ)FNhK+HuvA}FG=fO+S|`ZY>8 z+ra^HbM4+57CDc_6M`yvUw}A40SXP)kTsA*oTdcCG2$?GS_nzzTsLXJ3<4L@lMj!t zZ?c0_w-W}e&y{WH9k7|gDgod@I)j;OZ9W&&0r-tBNS9NDWq2jws1RHt6&IC7f3nNw z1M<4D1R9>f>#Q!PA^TCg5wg(<(HlX2z`|3;mWY+MQ?s09>e_b~2Y`qK8=#GP$;5$> z-3)(*)+rYX%JEGB!8g#&@wG^uq!qYe!VTqv;9J<9tn^AuIw`rD8UxOT;;)=z_(?io zeZn<@D`A;R0U~={i*#rT6zf%`5~B%eX}+H!LKX~dFL0T_5V--@rbLkjRl~+^D~~#KZ=_Eo?%6@j%f&gHp~C z31QoDoItiR56~^pU50zhlw#INKP)jNnxq$S*@}*XQu?UoO zXXw4tTrkcU1C6Ert^g`wHvv3g$3XHL+Aj>9hyJJ7@$uyZ6_^d9g!IM05&$$KHKr1W zK#*Cq*aV>e$#(isst|3O#yqxCux!!O~I5!w^_DRjT|#>_MBIN0CF(uX)#u>4DrJq+74YsMHx8@)2kp zUgU`URw%0ozXv%FzB)!}Ll{DMBnK0Qw5RJv;}mohHo#os1K?Rxf0{3+(2dbp5hzKC z1P7w6YW!qkkHO5r*nOo2X9@Li!CIXy1o>o%Fd02Lr5C`63BU+$$#0@mfhI)R>x&N~ z6r!u+mqPTmmo=6p6~+XS4W1R=FwoDJG-%VIR5weQRkES8lBbm5cj7H#BeM?pb_+gA zW3-%5*_|$GzBF;PfiMNFCbVy=9-=cO1=#?{jE18MJzsyPxx^%^$7Tk32O<{aRbbCf zj7qRLus%Q|05SaddPzq2zp%RCeb6*og~>`V7Kr|L;D8byU}-rA)i;_vpQru%j3LT4oM{wH6o=Qr#YWx(s0->{jq_oeu=SNC zAS|Vz4Q?kOm|k0L!8#||&pP4R@Pt*RCj}mKXswQp0FxB4i7D~eJPR}Lzn!Y2;HRm5sP~ZlN%pphw1l0mmaU`1q5~TMr#=hKHVFGn z8HjXjY#GxoGkfJaHYC-8qVaKD7ATpl7ZMFrs15nyw=VNE_TGk!^iEB=O0_7=VVL0; z$wZJDBwR~Wk*g<2=VzPb(;9~an?mfu)8+-2)K;>D305`is=%~7j}Q+jrr)oUq(r%n z>Xkh~9Y>|<@EnK}I7Q$Ca4nMC8X9FndhdAQ#{*e@Grtj7guX+Bzprj9_=UO;GmraG zcC>|mj(AJlTA&&S=)!iT^gx-XBDLWpF^Yv}*Ozbw_)k&%!=^&-0ywF1!6I%fS?{#B zE(lnIqwID5niAJp7%P!l{g^aJK8I06mUP|KvH1W*Z@tvT+lKzc*#&Lm#4cF6y1?3n&E;;L`xU|9oh_*3dlhHzcWz? zFDmYdBY0DGBaiaKDtxVPw07GTsZXEpTT4xuo059;iK@^bwbI#{hf@$~pqKkfp!Ea2Rk zlS?4}=qLHtu|vTCBk$QT0ot6z5FS3_3P}x1)5?xvVMswp1W%}*w=GsMu1zF2*K`qT z6uaEnL&fXhzB=!aLiCf_uR{)ijsVjXhAtXc!8WIr6HvXZfdJ1Z%mD$~H}8r)fct_l z4`)p!unUFRM4%YTR_X}LkjzvJf-fb`v#x}(3#G#|Tx+Ey&ChgGE-Hq6@l0es@2Bl0 zN>QslMWyciXQ9*gudkOL881!F4Zx@KLF6Ls<5>lNCv4U1@vC9esJ_&li5~m_h@{G@ zY&WR{0{nj+)WaUeBj^rH3m_g4g?eK3LG}=7TM)s2*omrH-uY zXTYhEp!t4~>o*)$1g_NR+^PrBR%{h~AY`ebal=T^Bnd1!FqO`A2Mt3`M#597!*rP2 z>X)&w9BrG_1vTshcT}N5VKas&!NeyZwo8F%4vk|F$s2l*>LPH;`p=SONk#;XPz>>X zU~LLssJ{zy8R8!%pHRaSK-HvYX7n2tOM}A1`s%D9#xG#IP?@XRdv%l4kmwHaDhaZn zrfsy!BQ{YoQ(U2-gRIcepahVpZaAbM?`kJK;jlp$WT7D+c zPFGraZeSKkm>>dRAf^(?QA&9oP#FwzNO4XT&;_05S}jfGj0f;x(F#&tg-XHFLNOA& zK9-moZEGzHfXWyV=y3qRv!f&!?jMAY47lq>u#;FU@qG!EgYbya29p-tHV+E~K{f&? zP~B7O!hHoO9Ukebgs>Z&TvPPygJzEK8IQtV*uTjg@1!w~1hyRApOLN~+YQ-_=V4w) zK~Kyq!4bHJ#HFBiu0?5gT0Wjlm6%TBiewjDOb~T+^kDX(P>s~4D3OO)jbl3Lwl)cyKl+m_x<`Wt}~PXo3Nf8kPFmTG3KcP;9=W zY=$xd9idXEXBKU)@zzf7FS?`JUFy4r_-uRj(V|Ht~4nws9%tc&4uXQoT zgFFdllx7y3{Wq0mGR1WCY%Q)VRljm6-$3haTKz(>J5G7qv5eNX@=YuX37VF6=>)_@TK zIY=t1jvj9e=OnhX2oVb~k0EGJlLo2ks5F^(M}2qlYF-_JFSr{$ zA6x7a`o8+bRJV$4Jh1MqN?noa5e{EmGwUSD8`F)q0&ulBji_&ZYi2>-9#38|4yqMw z1Oi4fqB{ii!X}=2$RLkSo&j}4+DTIyv9-0>F{uYu2`p*mW|SZ_{p(_VI9!1yk#i&u zs;^UeQ0?I3bUikLh|Ayu+R#31^?|ALRi@{LSi$^3+W-YDYXst4ZAkQ>WS}W3wNf9^ znE$TGi__A^9C(&-^tZGjXvoWIhavifRYI7lW%t4{jq+vrat2YWv^EqBi!MXn6qO6Rs-A(ffbeEtj*^Kv29i;OF1c*?f z+uv*GMe8#d87F1WMW>cywbF}I;>a@5#S@0fcsS27T@#VR_ffMcY~W@w@$e01??F`f zT^bQySrZ==?nedh2?T5BG&T#19<>0A0}Dh`5snh@vFJ6FVib`0rl_|@^CJ*c#3Nh+ zaISW+a~2AK^vKj2f%3*sc3*=q z59_2sxEx^|ap2?`P$9LzzMvu7x1siFV>^nf{iAUO=Sv*}^s~T{vKH)8YAxlxsJ#UN zM%9I192Ol`=Zs_tC}td%?Z@KH6Voac%TCg)Q!?EoUX-|V()}1hklQHGPOt4p4+pj3 zDsFG?^t=<}(!FB~)-AcB<=i%VG>c4&dlwm!@(W#v`iXKqjNT}eu$Tmsa)XF3yc00l zlv`A3b*h^(1}Xcg<|ggL_M+x|loOTuY-K#u|*Syd)_E2?5{&{Y)vU9F=L(Rs#Knb_g{=f+1Vt>msR!FW7GY z?|htfm@n93a(dY@TABTq?XjW6urz>MkkfybV@)v3!N;&#sblEOunf5$wN|S*Z1&yO!%1} z$EEku`&~|iNEB$47hE**;cW$Z#-WKDV&z6$4KT2PBsX!bAL~JxzesCSYw91R~ z>3Ojmg-VTi4e!icRT}9WjS2G_Zf#mwfRND5KWw7^A^3b%7l1c3pKt3nL_c1*^xy}< zo=_TaOi-lPPur6L12Zewu~_3&ptL5U7+H^`P%hzXwfb19(<#xiYTlA7XLtg_4yJpg zXwe2jWF~g)$SpwT^)?^c>!IVaJ=GV-bz!yf?Qw-7@Mdl=c5-YQp0+HOJR?z})6x51 z`4OU|5X#xs!i;&DbvJ;C(i+h+GEd0}sk-`8qXov3oPutE8wXPkZv&cU!=ne#oZ~G% zNIECmO`u}aoIRbcBX=N*k68XJUQLzx%guxM=Q78hZ*A;E; zl_s(&4xvH3{}4Iod#-cFjB<*MgtjI;TnPIBP3j<{Uxu8g_!(CX6C``nM3*8~cM>j^ z6Vw>cF=f7`EY2pfDXDI3L6@fVgRa>Yh&DfOVXiPu4ws4E#DdM=};LqTaZfnY?ch=?Y-6it21%w>p-rnyq;BL3R;U59K0R)MP_O0PAg zSNY!|UGM;Qv`C9@lZu*JY9678fZN1PK{1Ckdqgpa7G^hrh7rp^G{4Ey{ySzyHzYT9 zll86L@aA-NELQum{XmMSnmueKX5>n^KB6-Y=D(5-09e+^H3c)HN#B`T)Rm9x2p2S} z4WdWWLck-d?vt5b5;~-s=G>Nj0QysOc8JgpiP#N?O!Pfz_TDoeZ1q?L@-+s z18_pJzUc-;#gSNs%%V`Qi=Wv z@8LS+Iv8q@6}A)jJ)AWdfoQ1G)Som6L`J}r)hDNP;X4e1T)HG==QAf1jo{^m6Ud#8 zHLnetN7*!C04*L!Plu_zG(RZ3Ys?Br(?2K%CJgWaD!~)Yc48J$4y_m0@nk?4XYygaT>>2enoe1N(*a0GcnPwT&tB2C30} zqwp$95($RdA4*cTXE*Ijl4GbEE%;$bT0uxV*2#ro1rsN|Z`2I95U%T#E@~CkV`CT;Yog!=w~G8I>TA9 zFM*soKed!q;)JJ6!M5OEmM6MJzZ}0*oNZwJxTBkpi9;t@g@$7#mg9g5tj_AuR??2> z;DF=8{(!}hjzj>2a3~=#!ZA~C!Xxd9E#)mNt9N`QPk^ShB+m;njaE5IR&Ww+#AF?s z2#frlx_(#yFb#})GTw#QV;VcB+yyx(_&KD$a93;){~}E^_ylzKOPPYXwrPM06mJ!3 zkyfr+z-BYwY3^q^vWh7j&roTYzzwNGQ#0OQ8`}jz9eHaHO8zE4OoKJWIh|=xy7HTg z3wm{;0=LeNf{~!>2bBsI@S4P)B!*?!JZyU^0t_rLY;gbh66|YuT8yQj@Wg%X(52|E zskVM0Q}OkV*3{C4<;M$Om_JdsUpzQTSyhXxhx9^i1K4!X1gP~O(ikr&`}qe+S5-?l zOpjyJ&p~`r6+?9*qDJIyaZ&&bL@=?j;2&GZu!0}ti<2Xe%Mb*xaV$wipE$mfrtwyk zu8>E(J32hYo$rmr`+)$gNGt&#E*vzmmNE&Hk9t$01ndqz+aZ+0j^v&c&SZpLiU|@t zenC*H?B0>-$CgSp0cLo#xhaThXpm(`QzQ!r$6STNc&CQO7wo&y0GVo!Y-o;-DFpYA zFX!Q`9E=7a5hxmHH%eVfeEg5}?b*$f8##iYTuo%4~(9C6?H9q>Z!-4@YoJ(T^r4dmuV-wuG68v&D zHK_bXzCk%6QB;+N8AZ!JrVhu1bLPaN9aicq4J1z+x)%|Qet7aZf5HIZ-lO4yfl^>V z`)Lw^zor>(N^L=#+tQ7?!>@n7Ek6E`1w>=c7#M(=1#=U<184qrU_8YkLkdghgxfqp4^lfX(bZ{){ zplHI$QWYS$fjtP?w5Sv7On{>Mpz;fvAHY56(?lCS`$B%1@ zzWvc5h#^LhPF#}Xs{}=e_Zn@OSYCpGA9+!I{@^Zp zM&0P%9K129iPTR;VUodtwG_GPaW%_Opbh7?B>T_5sIw$G%GXu(P$98tgJP@n^H~!u z_2N`h`2Doh5ECxqv&LW&Kt0Ci4otBrJXvQrklszsH_>|$tuqWeoG9)|j(DLT54RA- zy1uSf`svI*Boj8K>21J;4(Y@WjlzLr%2~Dts1_=TK>|i%09zYJoT|g}N{W4=oOFAzqSJ>9?US_A5D*8O9sL zgb4=(8qyA5Z*&!;<;kL|9!Vb^@s74~6a;as21yeV2$wTQ=}6KMMJ2kTvz&6NRykim z^i+$^aFfn@b4_D0FuRYAm+I*Tgp}Y>K}I+P73;;Bl@tOWdK?~eus6nbw0PecmoB)U zH%9=i*oDYvY%evOPwOCEBG?wJj3YfaC$S()d(SIJ4C5EWB7of&80X(|aJR}D^WCdw zFBdecHjpiZPNQ^ErksTAroR|wlp+o|gfB6enpkZB>mkHC@-+^er@ESWuFiy~)%}jwHTw_LTIl;hkp8Zq_nb>L@+oMBTl3tb{D&5-9kHAa= zH>GJ8AwDwMut`L5PF?^r(N(8GbCVOkF`a~Lca80XvZvOS-EvKjI70v#&1fkE$IoK= zp{Lhut&dK+XKReR}5_uWd7Rsd>pWMN1V zST6cmVQt(O#*QX<0z^x68}u7&$b>M_WA6|Rp$(Asm@>R0POILJ{6Ql(^v19Yp`NPUwF;r%8HU2~3YBAd~y#ZEh65=CDjNMsA@wke`qCf`#fL6kxriGv>S zw#z5Z!-!?b8R>9qPYrCHuuG#Cibg?trtsdukFi9}^XmBapeZKu-OiRC$~hXBtY@co z!P3~ilrIUl&W|(m;jn$kgE;gq1vDXoV2*)6*00XvefPg%?ciJ~+|fAdU_m&n#}Dq! z^q{lA56M5S!QwApxu6T>SvF1@&;G(B65a{(`%tIU{3+@1NhSL2oGap^aX4wn4RR4G zGpxJptjI~%w->B68LY$vtL&#J<2E-y1KRTv>%a!{IbAJ)-Ek$H0Zw89 z@!7ffupv%cAYH81C0H>VD=OiJOo1kcW1m3F zys_M2h%C^xbgbITM#DlQTlM28*fEsSy#yDk54(o;gXJPPK=5qGEtOgveu;q4R3*EnEeo z5BDoy)I1*<4C8YT4tr3b*Ro^)rxuzbJH@=+-0fk7fu1I4L#%@lax4zK#so<^2M-yyy z>OLYf)dcJT{L0Wcn*G@hbmyToa3Y##-`9b5VSZJSj@65*`;!Ia9U!Mvn1fdNJs1fBDk{x)=8jaLw|J|ffGYAw(09Ij_KwthYg}Kfa2NVl&_8F zicUYm>E6a(hb|mi-<8L@>W%xRkI>))*-A(Px0-UJ)NH*(vouJXRDdW*BO4wDj>zz9 z>-%AKP%uE^cceRY|FLP(@&dICXRm=wz2!9pXYuq(9A=$K#)Jaz2I!8|at$S>{pf@d z8tud(TU0|R@a`JaM+_9Q@%*u!mOpc97fr7K$7Nk~&YH>x>MDW^emCQhsW+htfFkf$ z`M4gcQTE08Nhlf6!JHO>mk>o4sUhe)vY;(Z&1WvdHwtLpWKrT9E;{wRQZJT&D8JBq z;z;R!y%(k#9mGz~;_pw5FaSaiq(1)t|Mx#T0voFyNJ+^;Ns6T;HCybh zlFCk^&{c}1n|eyIOjCDnEM4sHjaPRL^~O?7-BPSp?snlIcrknU&dO^38OfTvlN;Zy1_{cOBwG2ngY|j*X3-huQdkgVw z$2W`o(JSxBPU@B8+oe76c(${@6weknOY!XFUTI#gNh(ZENqd@#*Yw1zrVaG&$W6Vz zXGd=O)`59d)3^4|tKwhR@{9PRUFx5DeJP&nyuK&iE}gTZ>fqak;?*fhvZTZ$scU#` z^{k(!q;k_XXuR-;-uX4N?;eTgXIDubv$oBVq_vV% zB^BOCNxgha{?NAv814Rb`A@w)_yEuGxU}(lnFqRU=z*%$lFHLI< zis5k`FLh7sE9}TkJXu;g_4<(q>OPbPi<^tF>>-PIxrSt{c*IBl5tBcX7TB>n`wH`F zlm{7{xqWp~xthURQ<&G}_SGLbZdG6MsO3Em)*rRJxV^r)N?O)DZsPX(Cd@)T3sTMF zRxL;!HEz{|^^1yY_)KxtB#HG&Q)U&9k zuVL|`0Y;er*MH-V`lDuU@2fgC5#K8{Eic9z8|0@JG&bnllZ~%RaR$yB>Ps$}!zx<3 zp#JMk#~(W})qKK=RSz|PX2q&h%Sor*xUl78>zwtfIGkS|V z+ky=f(=oqaNwaR{bi1#Ql-k1$b9c6d_6Wb05l%^7{??IFqGb}xwR>lK!}V(}NuGNB zsw2moQ7G{>`YdVwZFlS(Gfmn!ER8*rMVLKgbA0aIPaQdSwNyT}c&oH_>=%b(85ZfQ zJI6AH4CJ;wmyA2-k%?=@H9VqZ4mx+Yd(=Va4X=9mpfBxSbJX|?-`>a{@7$4@@Rjn$ zqb7XygQvbR;leleJUrpcAKl0wQo|$FYm@3D#dTSF40>6|6Z@Jv)=X>|w{}s-w>obU ze_T-|ecW;9HG5J{2DdDd7f)~4tUfkv%dg|3sV&Q8{%N_qIMux2`0dlSY`AI1wC3b+@AO*+)-Im$ zgRN_;X52~$F>bx}&Z>iNzx%bv4*t>5-t~MPzktQFpkYg=vOc-x!Hz{U8y-~GC-30b z=lG7trcKVOi*pSdI<`-nyhvVO+>%vUF)e%77k`xHk2`nGJ7(6sFReXh_Wkeds6OOp zAMCA`w`V79sAsV@F0OOr1x8ot!})kTRXtcHswZMR1Ft1++kHa?LUnNz&Xe(jr+F0)_X zka)s=tyjz2uWisSOTM}YsQar$F~Na zy>*9wFj5&xyqaxXa`=buYK9(MQ z^6-z!Pd|D1@7{TUe@aPn|L}HWf1gxIChD>}!S=9Xe=UDY|4jW_xfdoCsIO*Q42 z?fND5t9|PhFbT=y?N@t=Ce=$9bzHjO_@k$Mx9|AHGj4zI_+w`OEV=Ah^;;c}of&Va zUKN*jEojto6PF!#b#gRjJhOb+aYygo-J7aiM8qm(G3qxGfvhswK{^w{Btr z?{56`oPBpcy=2a>m#a zjJ!9#aQV_B5BmD@;}=iAdH3JVyfS(6Sr47?nNz-+ zI&sC`Mb?D?>+J4({BFyvn0X6 zwI_e!_MshBXWa43iJv|Do;O=Q`-R(kpRGFM_VTkQ@wYpwdc?mTJn(gX;-2%KJ?Yek z&b#X5Gw*rks?VNv-$T!yeCiJ-KPUcM%d%6y%ikV*&qKRcwhb?A{aoAK3!hs#YuoUS zYW`STEpHRq^zMocmAvVx7BN; zwN+Y9x;%5l|H@NDg=$g}yoWN07XHMB3 zU1to;Bb62BCioHQ)bC#S{tKtBTJu(Kkdj_cm2Uic%ZpXg-kH6p-Sn-udJ|hVp7@>9 zZ#lZ>JIPybzUn(?{O||&j`_k5?s@iP{&?#<$scWRx$ew6A2)w_=3S4QW6!$#Df6>u z-TQ(F6~8<)H+l2$nLmE@s_T*sZ%kQp_D|luckCB`x@YIuFaC_6^6$S-Uw`JEkIs@} zbEJ@8@q@zka{&{dCBNv`optXIiZAs%*nH|ss~(yBnI+C+S5BJyvozu5sn>gx`8i;^ ze%N2XO)+SiCm!0$2tcO>we&Vp-zO;H+DX&~mUnPAQ zdvamx%d6`bj=r?|7spvIpZhdNqV2wPZL(p}hQ0BIYqEQ!XC9BfdtSo|>zCCHE2eHg zuO?AG{dxBrpF97>(|>%>mtH>aKfe2=SHAimFMny|>r-F3;N1<+ej@5iTP=loBWMa{|P54IMRe8Cdn5d~kSXx394>+`j7)@W zQ5?90#}U>M0ZO!YAYbd8*v^^p7!eNO++L0r@Bhx#Y%n%yB7XcNL@E&32~Vg{}_>*c@>q8G<#V5vpX6Er_uC~76T@;^R^es4P}0$LF# zHJ}>7qlrUfuualazysmmg0$gC4LlUv7=i;lw0{55{o)J~Xjz<*2un~2JcBsq66-0H zkvN(JdH^<)R^rM5pK#A-TWQ;dmcX0_N5?VJ)aQ_{9GFD20Bt~+9>p$8o&qPbHm*Z zQzH%&p{oYlqPhP#W!TUIIE!B#ua2z&!y7`kIGK>yffvH9hD=6t97n6bhoi%3$~B1w zI>0OSNbjF`X#X{dz3m5jX1_RF9f3zQ!?Sw?B`p|TEMc5~LQ@@`n!@GE;hSpE!`m}% z@S(gG0vgK&nF#_A>4TH}5zuY?RV-z?GAeBccoD!EJS*D=5gc-qSBJRNpp0o=5(ikJ zLgS!egCTR^_f5gSIs0OjdaN9ucx8Y%jt)Bv$`T!a$g^lW9I1>3h&C)*-DxzYgPp4+ zLe6CDrICY95l6XH+6yC%feg9rA6+i6p2{DG6T&1kDQD$zuB$jSn0+rI1KxU=Hzsgi ztdSEcMq7xLd=aMSPr8Nx{9bAr^^kn9A`0E{iDkb`jWr+tGf-v?6VaS|3sq=z7I|` z=HwK7apJ6K9$E+uq8lKv#77VCaszQ7FABqfTy8L$C>PKsXl}+<%o!FaW1RdZy7*bZ z;y`xT{=|HmeP{(|s~*_Z2F_bj0r_&Y0oSjOjR#Q}n=6{;-`!WRA@hmX6;x;bbX|d9 z{{uuk`kUeYS;Hg&TpCynF#1YGRK@fHp>^&*&Ke1ycIkh8twBFh3A{MxGbAMrUB|5> z$Y7wu{uZJAN5VoC2WnTcoFjn#!wV2p>8`)H|3I8#_0R7==!@O-=j#vV#ahJm2l2nV z{@|D_4(*c@$!zMct~A(}{U=u%Y{(qQg$A4e7N>p8#;YLg@|XkZq1zfqhUK(H&RQf@ z&|8RkAQA^vHgT>QHcq4nAp@a@aX|I-)Q1ZeQJv0k8tu>o9?VqeS;L=+B#eR|;rT*2$(HLlf?crxAt!5L zZ|3M1;Vr;LN#5Z+g}0<-!Wd}0m>iNhq5^z?>PItJRXGlv6dlqC9h@^Q&TwywPttU; zC~!yu!DwQ@oc;+HFNlK-5qIh0M?GV~V#woQI)X4_HfJ%Q2jkG9dl6GQOH$%O1}rA* zU)+jF=HEtN~AlTIJ~MH``Zg5zLZ6uPCqT2seig3f_+t`qMc!IVLgb`j(1K4%!Eu0P(c2yK&CI>Vx4h{kl8&35koz|FcaR-5J%w-Xw>SFrCk&g9?qc(`d zysv1K;H2O13=Rdcj?ai&EE;p4bc+SY#U(hQiv3N?CpHvJQmFq7LIPJYYm?)-IBSNs z2Fze@(YmQMR~P&va(#4 z{2TmhQ*01#4<1e|WU4kHU&+yXhvkvsA-yA9W6hB1t9Nnym#g<*%^@zd;rWD@<paP#HwX4YX?#>U}uKSIy{y%b~|mfOF&6C|Gdi#tK?&xi_+6O%Xqh*d@>4e6Ig zS&C6i`W&P~6HA0`j{f~KL>T5%oC7YJ0&yO3(kO0N4o9LdjIAJ!S_ay2TZt%3uvLj> z!GCqrh(LzEXiuUG5hzTj61}oCXAlH|3zS{x;uy-v4|FU1%~d0{`L6vpjXaQi;4d#4 zDc9i2anxhul>)vRd|I@*2`iI0N0pWe@(0Z(_yAnz#V@_4aX2eWpEhRpD!dixTf+CE+knm^>8YSOegPF zx&+bpDK@z0%#JG6nA|Y^=$F)|@Q0#Z$Gd}q z@oRuHY5WvD2V`4p!8krm^NQ3U9S9s7f+q^sQ|;a=8r#4K{0MFg407Vg4^AjxQ@xnv zxFMC^eHzGEQRHHdY^DDXhJ!UCPCEE$dKsrRTEhC2pos!6FWyRyNX5A-j;G5JjQ;jk z6|C;|!lAug+^eGG9%SnNbgv3MqfNqy!Oei!e(3lo8FKprV41cJ4))?W zQIM8@aJ@L+td`OEy9-#@OLU6q%B}UQF?V3#(qBw=|MB{nhwBEJZ*0#1ywJW%di}32 zpD|Ndmk;O$mf^bpdjrd*dEu9(V58^dZ*E}udc4zg@`-|FXGiOq6wWy3Ex61KYoKWP zV}hwx#F;9z*NFSVm=SRnl{h316AN@3$3Nhd!?MeahJ-q7Wt>okWmX)!O7Z$~Ly4|P z`=WF~yFcH}H5zn&*5sGba>Pl>v@YS)Q2 zDq+lG0i`&PmQ2Hu?V_cPt{8fZqxVt;Z+=q`ttTAxtDW3JEB7Doh-pq1f;a2Se|JaB zy7(XOh&jCKMjJYeB8%%~#-};F8ETI+NjaL1<8(M0gjOrM9~2IS`WKhUoZLX=C@zzk zljy+~Mbo=}L0vgZ<2<;9d0-5apn?>mpopnTRf(t&1qT$h z5JXXwARsu=K?HF|MI2kBAmT)W;yi(%Vry#{99!G(cfug}+THJ3|Mg$%Ti^P6t;Rqq zm0S0ov(Mhoe)jW#y`T#T12B=S$T`SN0%Zru1HXs`!Za?k8Vm`BQXlK^Vxz@QsW$Id z#rdCD&OpdKSp2{9oMCV_i$PwBWMTmU6EGJ-9fT$rX}(A+(_(mNAVR)K-4#aj3l3>< zoO#air;ao5pG<#noM8Yq7++({aD&jj@+R7vmE{a9L<6JY3^p^S!;*l)6isYHYedas zqZJ2L5t1hqZEsNNh>0`a&e4qM0(z5>*qGVj|4704NafndXhq8RBCWB=z}XbKDO+sT z!yY!Bigq05VY4=ybAeNtBJns2n^@5S;Vqe5V3L~o7KWha8V(loxc?U(Hn-rI2*DZE={l+(1~RTWgKfx^N#CH zHHCfDoCZGMHZd4P9@A^VfMC(}W%|o^pK&oWApigjA3bH+dAuRcRR!yCUO3{1v!jUT zLJUl>>mxxLQQmB4AeH-X{cHZ7bDV$8Ek%eh;a{VahrdRzFPwVNY_vNLl(2Q#3S_Dz zl%&Pzo^c?s_fYww*+E{;{=+u`rBiYgQkdTKvWl9`$~q7VA?!C;t&C!zo8k|?S*$PD zk8{NNoBiK9;y{5<`?E4f+C zemDah4YUXj`Qe;qSbWqEXRCE5Nj@JN{V-taNYL$CL{7|U&xH3^&asT_q!a7%o3l`V z;8QB?G?L)sTyrEB`G?2N$~0%EK|W(ihP`793}DgRQKM8SRFKu;*9$!`OmeRU$%6XB-a9W8G0Dk@M2q)M z`+VtX``vp7A&OagbKbF*I@}>ZJBZxJSn9lGGu&j7i8&1JA~YM^?m9ru!huh>Oi5`l z5AnNC&zO8Qfy2p3&?e_TY-@9h{X3yLfGl~`*XDCkqAleGOyOYgL8wD5T!{=pduLK7 zcuTA4gayTD#pU9^8Q?VL$V)|fy|x{~_3sWiON*2~$sZkXsszLdvoTo5j8&n~$#@j` z5Cc+b!~(W6&hU5B$LQ9CRVgMV27rPo-zUiu=jaB9QGjV)U(mroP)*x#V|(=uwjqz zuiS&hNFY$yAT59Z9%37em81Hilx;ZNVD&2N2eeP#b;)uk3X&ugO2LTJh-RpKr_Dg-!4uz@Vl7@hCra%htDXa; z-|3`Qf3WHal_UEAw-|tp9-Pv%$3ljfOFluIjnw^UyNZI5^T^BmY16TmJ|FP_5wc`g zg0vsC^tq(GAjE`(nGql+Qi#atYXEDgygTiyvhU^qrG4b*$>YmGxB<5N_ufCsI28fB z7V{rf6+jcGmc@aPK`X`=>9L~9$}?0#KravRx$zPa}quNuD9*qSaW4tcQv5lAi z?iBP8dTf5|QtPQd$^5-9nZCUdL7c=4kq>8*PeG>2tAUpJ2)x0PA4p&5Bq0Y*E4;rM(cl}!5`<2%&0;19k-qq0B&X}r;C2N*>h z5``LMr;!Rl0uTQ}MS2iQ=jy%`ycnPlg!* z7N#t)451ZBKF0(9r1GE<{sQL+H&TsZsM*;>=x1#^;<`#TnCDCQn49BHr60;}AhLn> zpr?Gh#%gYc$|xFV`>enjbb3Kv$t@MP zf*gdk8~!bCy;20m23DcvxaJi7uN;7wMi7uNWo82(gM%>Oc`j!g4GCqPOnU+SoZ)#@ z!2nX(R%PFcIvFz&j7I?A(Z)o@E^%VPdc+zLAyIm*z6-1j-LozKjZ2ZT`J-l5HbpUG z6PY4#3R9a*_T;szRpJ=l(8pOZf^t5?0oEqy#AVeXW)Ut zT3jVaKz=HYVHlGN_HxVe9DT0^E2+b7Lf0A&+L^wgVrR;S*3)rrLLcXI6;!uHh00Cn zpZWo-QlX^BiUa{N^vd}5kfG51MkM)3>}jWTGu0?>`MWK0ewI5B`lr>Ict__5@l~U$ zdyMB$>oQyqcuFmnL(_8cAVC;fSq?36H0!`MoFB(p4vn&4MGk9j3`-`tSYTxLNYp|z!|J|tzvG2Uqvf~TF`J;HmQHJ_D8p& z8P(Gdn+;9T8-F(&`ao6mG@jU*kT9SY9WopG)KIAu{hAAjdt^YryA81&nfK-BQBb9_ z8{(9>BO95`WBi616ktx10EL#0F^VrHo7;>Aj`CpAwvOp(lD{x2Ezt>DE#odwmxgt4 zr&8AoONOya%6+Yk8xdBNewoWuGB$ zOCrgtK}RMLXs2Ve9jz&8fE$5^7C-u|;F3-B_%?q%67)(Xi&`Y?vHT}DqM-3Y-dDL1 z4JfH$YB~8v2POCB>1lEX*LPw=(8mPK_6Ga6lT!+DO*m>Fe@b{IBj&| zA#NP8EV@OPN_Xuc!=h8HE$RSDB(X&giDo1+dJsnF#wa@==r~OO;|We9CGcUpdb+#R z&0eW+Ch7}DGL0OHzHZ$Fk_2N8EDTIBN;(U}VKyuzy8# z3F4b!rHBA`~eC>9CbueEr+()8)1uqz$lyKN7O_qlm>c$WO*PgkX4vp=D5nrF-+0> zE7Qc0I%qg(=wZvm7o9KCoq<+E%8F&;ujxLhUmhV(etw&(q_dg@x3Ga+~7L5DKOLFxm- z7x_OslWrj#FrcS==`u1QLpm5*anc+loioy+A$78tBkdW42IS? zq)XLZOlooj(_N~YQVM2+*8z~uFY3J6*|88(6>Rw~CG?M%x%Nf|(mZhs&tdHm$Zes-|4%oqz2yCO%P!4j?g<>8jczTePlVtD5#B~h=_(i)7dO_0BLwS z1bv8E>CljFP4EP0$^hH)sfwHfndh$KtjHqB(n(QHjK}y2!KR8}Eaa|BJzym94^uG< zq&;S)c`&pyIrnB(F`4WAi{|uHm(4*65g1z;)2$=-rV)nuPAc`Q)mb;TP)_e2LmMWM zxTLj=*36%GuOR~ntt)=`I7cDgIasXIGg5{^cm#k6Ml520x`oi$Rf=<3w0;-7)q=r*(1q&+KH3R63Jg9GN4=M6YS^43p26)+k$|ciN9p zro53R+93=K(|}f-Gp0w0R*=P%!h#R76$f66R~F<+Ob5&aaTekq{Dwx@HWBQVHD-(7 z(3nn*EH&DTLHZv>S+xwCqj=V{!yY=B_;xWr54j^8+ESr(YLEC55e88;qG8%%O!Rl> zqvTR#OYEFL2s^H9^n#U?A9^8($a6Mu1i{!+(#Zb!(A=xYx?lvcTXlL3bf^Ako;12> zPm6gHOX!e$61gli22VoQx1kzEO-RcQ>SlUUN2hO>!5xUS$#K;!FLfq_CuaS ziIBZm{$|`m@Hk>RMAu_OM>Y7(NIpFQ4jd3{y42tg2(pAO_dUvnR(dgDrT%e<)GK?U zcy>h~@nxQD@NXxP`rVr-E8qA;adRHNaNL~{!fzTX6G&iWjyN6N%ltRrN_6c)#@OO>lt@hLfqLuNMsl_$N8xlz{Hs_N<{c5luDT0v?4-`gP#wqWeZSsVkS1Ba;M>_&GNF$dcWn*2f$Y-M;y`$WtT+t9;jPJl=V|7QV6HUYSRy!B`I{G%yS5499)5f@^(P20I>w*DcLh% z$pE!T&8is)Ff>?3OerYYQBTZR6A#BdFPLK7empZ=!mFe`km16*~6TTcB;a4JV zw4D>71En?|4Zq&45or(-LrxN(vyFU}V*nS*gIlE5HXVIVUCIuW)eyTzWt0;=#6dr$ zmE2p35@ju=8t7B^4o!$iW09nkcoKw$>2*WjwmjNpH?Edlyw&+CnF*>ucDI+WJNCW z(p04ByF0`H3PYitE@yI_)t&adsSQLuC=LhtkM>ddxz2E3bHh>lC?91&Vw|B~QTk}o zEpcUzm`8Q0inVx0J=pGucT|qPQ%w~CsBu(4vGeyZ9H4>9^F<(xUD&&bN~7VXz2=BE*tj zwdAGm56IW~1C;?Xy;L;yz?w_w9fN>@LMvrhHX!(~H~o=5oe)kZB~1ANUp91hDfvd| zx<2&7gSNs020jtJS>hIAbyPvY5FS{hU5IJZ8~|WwaYGGq1}LSbzXDcMdy#XU)yqx(6^)Ku?==S~1Xx%4yPMFd{lHk7)OKntsJY+*Tw&Vjwt|79pnWiN84grb$MWPi)Yme zZ6uG<7tG5?2`fA>5F;Z=$Fn+Xcej=gI<=2PO8Oucfxp%j4Cr6h$hYoCLhEwVRoa58e3s8nT7#^TX zgRcIy&e}tcVGg70cVVXsF!j4(7>GH2Lp0m4ERONtczkQt!JITyqhB>N zEqG{X(g06+A=bKk?Mk@PfI%yQ4I+2{ACQ=59aSD74;BG9#MJK|^?FDe9{`kh?j94onB=~0pVGJP2Ol z)gbbZ_>a|j$qv06XgR_NMk{~8ADszHd5P>mMZn>Od*`Y;3sWmju~K7`DkGoxK?89QeSGB=RnqfveDW`rHS04gccV5Pn&pAYMFXBKfs7zY6nbd2tz&@2!PF!Jbxd=X5`Usk4=4gE1S1|7 zBih2Ggu&@Wa|7IQ{^oOOhb+GACGJFUkN2SUj}Bkp$#n11*78Q>YX=_%npI)Pdd6^( zl8vl$?|^CnNky3vGOEx}xQI}L@D(!7XNces1OFaq?1;UF<3i$)gEMi{rMHo zFZFyOopNTwWSm<{+GJ?l0r&Vl8yI&;epSq3C*Q^#1O}YP^9-KsPgt96v_eTaXkc(# zQD7tSBALV!`RCvmu%%SumFm3okY0@x)huc5Qt~{Xd=<%%)WI_iBnR2$f{20XAxwNI zSRg43C1QqD#aeUiKAU(2Jh}8@{Ds6dsA`Bx^JAh1MnyEP2 zkXI2cuHncCzt{>)I(bD=J*gstAK@*<4M?&n3DIcuv{L9@Tah5!fd#C!q0U(s$SjJs;=S(6&oH zDhG2Yu$2ZjFH&AgkRbuuV6Y;ikAe37&NbAnp5d-~Zave#f#NI*K|XaddQWsQECw=E z48-0yI@4v9%zv>FmF<8UXr=i?M}Uf*k2(RU1?gJf7P~y%tpS5CdfdRDf5Sowh+u25 zK`D-MqJxfS7bFlP87uOLzK-}$&zGXW=RKz_?YjJ{%}OeF zbZ(5Xya?7v=1N&{UxASK&xE95BehzXy}!yrZ+_$)LCWM zbz$^iHme#t4_dR#s&cH8JN)j~^)5yNXfXqjxuwMmUbX_nkY*>piyqQVRgYg-wLTw$!Gwjs^a3+Y(+&MQI<&yQw0TA*~(F_VSbmkv}! z_^k~`t+#G$wvVybB5sm?0i8nGUW^ zHBE?OUE>8bQ5uy9Bj-IEHDzr=N)aJ&`nGfocMVuf^+2`>o#1nECOVoce5tN>IudH! zn`lP1=^XSZYaN&eMwTzkxReg@|9?1nxs%E2JhvykB_faH8h`6ewiEduF7bN<@hUKbvhD+KsU`y1TTMSXGA%rWYDF#GK5*lnP4|Du0n1SnS$$8c!i8bOpmTL0xdnuT=F zXyjpKgRdz*7S7Pats8&0342AaKWY=^_IuhZk#daOnknM$~<8 zS_Q5SfXhrH(u@6-_tbG7zn4FIt6BxZGUCLZrH2NqO|=NJcS-SBk* zI=N}C8I^!L+QmqUgXwFe9ws#jY;s^J(-;kGwL`{aCE*zHB^WQyJE+k#ImVbQ>~r*Q z|1NB#pUd^>=?<)-adx7p$LrB{n9Fe=)d#rdnIocx%8sZkqN2PAT( zF&Zd#w+2FlpM$vzOP3j%$DEZx=yXh02fCQ#ypjrU`kd+*pV{l%TfQDkB~B8oyb``i zK_(^Y;>Mhv%EJt*4^0Y4s)1SFO@}PZctQXRGaybG+c^;dwe_*VPr+jrAJyBuU?< zEYcV{W)W}cY;soUN6FAv7U`lXs@A!7;8B8=Y7e8D3-g%H6A=%P0)uWo5ve-tP6bz4 zO*ES8E-sR%tML#%-j{4rHUmy@=R!Z|DtF9Ra2I_xMn=G8V9FCM83w^}HKgcf3;|8b zu1qoB%@iDf_J6Z5Bboad+Mst2@Nh8lFLNU!y@wslUKMBEHq-P&24;07xy=sbWKhdz z_Jwthr3{A`7XsJ|9$i;CgUM2cG<@sw-QLu_i1;J2T{pf=bvmJYL^<=JB|tI_m9oI# zUbusSkxYUAXFoK1A4Aeq0}K$j9AB59p;Sg>10-?>sUIk?@kMFzLp#MK*MMk&;RCKg zzGO)e9ewu{)guT*OETHH)j$X|X^`!swrQ3w`yE&YK$1{|kVCdDgXE&tE>t% z=TO>%-u@eNwZY{s|2%iSaumVXY)iMD;Nc{ZsBYl!6^Os;2H1u66#mQryQM~1u)Wm( zfRoL2)Pjxdlj(Zc%5Y8(d9bnQV}L4&@a2+W)4<$__`a14L?R-32z_Q+ z4M)7%##v(QraH-9& zA?enc$__e#lK+#V+x=xt4EC^#TU2Z6?i!N8Kn2=&IKaFXbooSHR+ZPk-0Ms?S4gcn z!*pwl?VCHN>5%IifrAOxuS2Fp;Wkn|P6HkWy!%jnXdSboFa{J|K5UQ5SQH9EK4zB# zQR_f=IQ@uIa&qdac4%dU-!MA^Uv`^LZ3@Gct&{Np>4Aj$&v7@K2>c{^$9c$k->8u5 zh8kL=dYESaFD7!J6F$63LX}1Y>?4r}b?uy9oDPAf`o~&aU7w2PR$Y$1|shpmFe6X^LHg! zqym~zVUmNA(Q^~{{EUB4nqs7`big1cMj)AJ2B~5E%KxkFfQ^z0+!1OE2R`XN`~#je zm<@JaE8XsZXLcU>_#p$hc-_X(!=!0^_7?xQ&pN}>b4S9f8IGIPT?XZEqlyIO1C4}n zmUz;MHL!;{62FJB4$zjm&EcI4t{r2;7VN)~M2C_HO>8zfu``+cu0~!oq4U4MR*TIY zMer(}<3C-u<)lG;-q6QPT%h~{jgK>h+7s3k6o*^0YY%z9J!u(B45ux@BuZ)jdN?v{ z-}tILX;Z2=tbfaKhvV<&JADtGgfu=zMZVw%Biy0r2L)~>K&;;(3=c@cF@qhnQs!p! z)aKMHD>2MEdbg%Q&kF509w0OIm^FroJif<97bA)_Od-T)7GTRh@a?iC|Wmo^btol5+}ffLzZrccSMf$bi-!+kf+;k0aEe*>FM@p(FNeBgyj%P z;_X^<9y0@E^>APD*Q8Vf&!mn5ZBPTEV4S`i+mduPn*alNgcQMt%-^63rjq>%Vx$1! zNIO_6^jW>ZpS32qZG=TAFJN9pF(3|w@&E4r*1y9*B~$~^P)%C|Le<_(9iLm7x|g0J z_vbsKPn-I~yAFQVg&GlI_?N)c6n;j{LSvGNbRZIP5r(x$d&3`8RHZq$GX!k1S6{kQ zRtAnUfL0(iKOd)?I}6=MJl&Y+HNx40aHpvFFdK+?2&sjNYdA(j1MxYDk2bneliC11 zeOQ7-2j>Ju=27c6l^#QkpK;jwt+Ys-=H|RZ)^E)HD%Al18fNm4R_7Q88&>9TPa}GY zcnQM)q?MRR;jjlfI^5`t?sDZNUgJK~4^>4kH2}=@120Yf76@i`Z z86sw=JfI2|+G^VgJi;yl@>L>d@yAD1)&)mpiMgneq<~$ZZ0@$@H63enckq)?+%jifed%`^W?CR9@a>^QQRqdN^o(J!hG$%tMmWvNVF?WDH@`^LMglXq z5llmdWWWXjqw}1RpGv5bRKXM8-4qRLeA2?lwXr0{t=_ir{(3{W2^ zb8RwWPPxznPMMNDikde8YuV{tE84r|^^kl30(g^kbmvi#0n_v(vO89#;&!G#g3A?MPav~28T}-9WVy&lSEOL~I16TvIHc0!>JEE-!T*`zs_a*qmSTda8 z8SU6KQtHo(PYt6&Lr6g{hpI~%yr2UF;11YGZV7LZ8FQNb-2O}nr)v1wAq)`_Emc9> zV#LQssY`e6Op(~gKo8)Ivh`b)x6cRwNigH3MCil5e$C;6@YFoU27E<>Vyv`u+*NYW z^5EW;^?eIVG-*l0882Kr8N$VP9TFJ@**uMbteWQz=>qsm8%I z%CYY?yXc;JM4FUgUqja7qkesaf4UXmi{9r?ZPsbrW7fxsg6IOrGY8UTI<0#^(GWC# zc+{z`ot=>v`Z<03i`E4RyP!6TuDwraE;Ew~0^_a=4mZg~9i9G{DpxWs&LYA?FPZ7j zcRbKEgmHTeB6_x0)^*S5F;-#N z+htTmD*AG;fKwdOziraMDNo=B_oc zP<;QWs-@OsX+Iim*5LX8Y5i`fH*>ggE3-k2U(*-lCIVd`L7;ThXs5Pwdm~TxjR8lb zeWt+}I?2@DF(A&m@V&V^AwU6Bwiw(2f8A`Gp)BRWg+G@D9x>%F#J;`*cxz?YqbP1Z zsyPx)A3-CL?<@$NYhMSkfse{zmJGiLdo>xDWrfd9McE#M@T~>P3~!BjpBQ{k_Q0SoqfT9(d<=ROX36A3t zx4RXc5146>!EK=Aq<&>uj1vm}7rlVU^R|&BZE@eiG257(V7DnAP1KNq(Dyvkto> zxjv8~2GRfXgkKBw=YgiK?Zkx2={8JsKPp#=nek7Y>u$`eKWtoA+;((}Z(VPF8=^f- zxWI_zrbS1!q6+mkd!6x@Pg_E_gv=cZ<4I=NH`zvK-5I@VxM=UtZjH<;L1Knk;Cnt_ z`^IU!qKy5?iIVQyDb`{{_gzm^RDzp2Y*IFK%t3;^B$MN9PN)jCINXC6dJK!`$I~f; zD%rco5_TFm4EqmdDh)IMVI#WW_>;ln@cT^%jL=sh>nT56sCP_lF)g*zkl_khU5Uuf zj@s>gVhF5-g4g$YlVp?9n*$tiB%YJuhq8*g)M|4r18Z<5hK1>5@W3G!g*IeYrINt< z8c;jAAE6vj4(3VdRz7de>H7rnzO?JZoY!=}TRik`E_NnA(N#{HOu`yKZk5s>_*ePVk!cfq zk2R`OHhpa5aFi$?O>J`Q6Z9?NhS2ik)Q1(`L26KK@W0r15XDHern;8C62zL06;7|c zA0|z3ij}Sf4COc|#^#uI`?!4OAH-adfociZOf=~RzMAgW_Mk@gNnH+hK!X&ID2$o* zVciBk!0#k!qN4 zJZ5}WYw;jv9o*FA-#Ol8PF9Y0z*k08LAV>raSeouYLkBU)4KFBtcPI717wgr82P$z zC%R`8yAZsTLTvcsu9+6gI~w)9OP!I=EP#6G=y76jS~3iXu|3Zq9W_@v)2nm$FxR7$ z6af=x*@RE)Sfh;bek^J@>WgQAJ>;vK){hB<UNKce(Bwb^Tmwv9t~-jAWIB;B zUejOyTy~*k4f74)6q7b()$TrHI7+m*W~KVeSR+cG}=*WBpaz+;ASXbrwm?4 zUBo3Y_!&-I(5@|qH*(Mp3k{cM#cdDDbd`au}{+@PYm&{9LjG2p90I$(zWrqtOTR$6y#2_PmnU2&12^0#K6n7-akD zG~xiiyi)fly{fzbG2JLz1|yQOTP2@>}A4Q?c5Mhh7XfiuMJs6}=H z5a)AU-YBUBC_zEz<9yj5GHd7zPtrXs2NSgLJW_QW^2BBXM8{r)au)ruf&v^JXK#6_3Yj zJJr&7fF!fQMdeKqO=CCWpK7F|3%bpa_XXWksAG>p1|gh&LXbLQK94cDwE^jzeLi|d$~e!cKT3uQ zYlsRl5m`>J|B!DUE~M#c)s&Y0&qp}Jx9NAWE?Z3V{NYI!7Fh6<7MFhZt6O(cn1~ zx3SKc_GbKz7FT?H+X4h&7!No|_M!UpN{EooXrfaau#WRgPXDuEr^hpaa!=mva{ zBGjkIv}lGY3qp5Y^5)_hjC)cg2EQ@6}KF18M-M;tJ@uMxiOetD-jr z-(Xah)Bi*TIV?7O(1v}9{48hUZ@rr}kUaPqbV=b+DOue^279mgTMYKB#~JKd4;k!1 zwnc~RQ2Psy1||4=r~yXJ2H45wr3V)Jf0M!970>Fd`G$m(`Ko;$h&M;^V&xlwvJ zJQ;_7Q!}n|+dNpu^lK9D4o^+C*Wn!K2tDJRlkMG9%UAE#Vt)6UXQRXaVP>O59rbf^ zbWD8sW8Fqa@7J32+&-_l2l8EB(sz?{U^efJ(_1O`!B)wGPTiqzsvqd^wvhwvbw_M-R_GZ%Ziw5M z*EUnT(cRJ@ehfU*9~-$Xyh?vIxHuX2yrZqHc)@fV# zah_pQdD~3vC25;!p2t^w<02k2U)8&0C%1E6*(H0tHEjTZ4bx?x&J*AJ@JkkV^YbrZ zsQCO#LYlO%TLW)(`HvXe%(nWh6<3#BU~M) z=a1qY-X@ECVhkfYxJ|7c_5E2y{QFHMvDv0#hsV}lpXhnHYB9IK)*&|F<*dPDe3|w= zT=Dts%MJSqrN_jpPV8{&xe4iT%j8E+G!@m}G{3`b6PsQZ?CM_bP>dsEN4wxT7}qDp z`rA5G%Kn@gpT5j$-LF|2Gx_#v^R=U9o9>+G#(vJ>enqNfpYhrOCv{rm+BYC?jidg$ zPIt3dJ55(h>X{fWbd8_RE4v3rx6V_aSd=Ty{UfyfgBz~veBZh^uIr+&-T#W{_xq&l z!&`h=-5z`Qf~@XO?!4*x?oT(rfw|m{Phaiv$ZPFh?fS@ThGBWnTm262Mq}kL&kL^I z^So2b52&Y*8Rkniti)1of>zOg^MyL3@~yq~8_K2*s>D;y5yMWdcJU3No8>nx^g;cb zH-x8N;?I=nF+3(pjad)xD$iu_i5s}p;;t6Yg37Ia<361Y+qH?95WqsyImrFI(bY!X zlI9%NT9mbRWAyW#^*2VRHh696c6rkC%eDTdo?kl} zxAy$%em^ni{znI37}G#j+^-cZ@UWt`?h?;c*}Jh<3mGdH zWG_TpQLpg4&{{L|+b`ROpWF{S7ccDl&*sG=`c2)lcp;{6u2`AA)|0VMvtqocI|I^R zFC63SZ@Q=P1?jxDX|u&$GQ&B*rnwph4DPxqHqa5=vu&VraMkufEM7kK@_~z@g%grn z2N%VcVA6JvUs_LfH0HFPvCYd>Z(E67TXxg-6UwvKZ5MrVph-$E+_QbXod3cQ_tjNz z41GwN3)8CXyxT&O*m=p zT7B0WEa1%Z)~W?~e4ZdylZ4jgpG;V5)9uNFZ;0L$kYPQto8LIu`*NUQIB}t1c<{X$ z1$ekEc~g3QxoPx>UjGPWPFbq$8!t1S@HP#Pe8zR@KOQWI_5bxC28_QN$HZz(-@PdV zvzy->(eI3A{wg z;}1;U#`GVI-P=jsUK}%eXnX7eo&4>TKJDMaX4UhSl*Gm^9Sg4BBx5J=)v58|y)tXU z*^lANcAg36xx!OV&vtK(?4A+i!Y=vjty9m;mT}_~!)sVe3kq)@Ul8+Xrud>lJjt$Z z|F+S^aWg(XKd6}sV$Pxo@ug$2ubcDy%@g|GVHy)VYvt0narPQrV_N<8X?8JUkE%O@ zO%o=szVL0<#q8(#DwsL#oQH!or%(OscSRHHpEoVzE7Lo2e)i6{Pp{7=K3wpmxA=?; zw+~)cHuc>Lmz7=gWdD4E8-L8$My$K!y`Y?UNwz10z1wH=%4UA~Sn-*c|MXpP?QC19 zBz|?Pi%Jsn=li!tco;Q#Q=i}`rarN9xmMV9^Sg2(QBM}UHF8L6qVf=1hgo;)%>%FH z#W!Sge{PI^|E?$>#JZ_9p(a_B?Yt$qc;vYE06C zew*wsnSI)nscSJ_o4USew(-Hgnm?E_bpgg}Ygcc6fAYgG&pU0(+SQ@cC$Hy#+QMHR zTY2+o=WY0C-Uk-3pYuVsrW--vbu>ss%{^?G4BW6`C_Z^-17(i zBAd?N()yYYb8B47ZolAFZ^uo}SAt()p4P|m(ezinXMN~=WpKxjX7rPh6EE0tb^JqT zq9n{uM1Pog;noQk-*Lg~(I3iZ{H^~FA71cUCk)fnzn%Sl^o!f4uZjNf;YHQ;;mq{v z$Pc$qKcPH6C{Hi13x=u#_M_IjKFWLhjI%zv@a;2xXnlz>+rwVZ z6i>Rucs2i~Kl7!f|GUjsWmnoKg~ng}k+@{~9T&dCZ<$U&%H9&dBm zKSqA~@ny{~cKnO&!0UtFl!I?sMh*S`qq9D_{QHlF+;sU5@yzVYf7q2d^NR03y89FU z;AWOI82QFNUSf`o>VM^uAAe}8PHv8sn6F6+rKB;V=U3OxHs-%Ok3X=^oK}9Vd$z4z zL}u&G$;8DmjXN#wu0PJSwe!?CZOv|eTAP#I^GEmGx6in^|J;&VXN5U0;f~ME&vEXO zl3|gixvo(Wx!N^u^2%uO6^|SCT~fREgn6Y?_HLe6a>0*_%1WNvMM&)Z=E`f@UKMGQ zit8eoYb$b`iEAsbuzo7~xi7vY6VH3>EjfMB_)q!lKWf&FcP_v4x-O4g((bxW_de0? z`fg9{-E~dHRVANFyLr|8#9ZD*za;YMHK)&hLj5dnaJpLe`hqQ6uJ>%N#)I^(yYg=c zE)eY_+X0!#{Vtg$SGBo}e4}kiZ+p8Tj&@nGO+2_BBske96xH`Xsq=e7>uv~tx_r0v zoLBhvjRb|?OwFx`7QJsCJ8pbxY2mnqegF02?uGpft@bRe`BzC*LqEe$l?}VMc{63Z zUBB74IXpKuxO2Ybqh`i$x<;BW957-~jz<;^E{bLr4QY4FT{oTVdk?$I0Y6nO>3Kq@ z&xQqfq)WW73{5Q^H)($A=F_IWoLbgr=1;4ak;r@|eP+M6c-fhkMw{f!oNc3*PrWwU zw0uFsgmhJM(b*m5>9@~M-#U3sG;`}YkG!|$HhtZDpUXMV+P<*3@BgVKQL4GU<#k65 z`)r2|`({i#WY_oijIn6vGkS;S9}T@j{};qFB&W5avDCZ5^^ySm&X^(xxhD7q=)YNbW)fvrQM5mL$x#)GbIF_ z2CNpMC6h}9{HU5>#CZl_5X}=Xd^iA?lNT}itrXKh;gtFZ^t3<`Lgi@tAfEtm36=y6 z0J0{A*TT<+y*W17jshp|p+wGj*D|S5xNwi z8VxG3Bu9t~{V4&n|* zOorL;+MpOmqBCTlL22W&0^quUhBJ_4pKmxHDzb-3w9Cl!kZxe=3&2^?mpzf^4Ef$Z zhDA&-!4d&pzgKqBlcn*`R0Frm6X+;s!45)s;Wo{gb(W5(^HYdIGrgx4ZD5V2S7;}5 zvwYKad0uF{(&qMXy`Df9UA~a*^xf(1(#};w0oj^66e=^sShm5)5ZxKgHgxhwVowRsxS127>cBxJ}mI2FISifm9Das9vh1?8ufFl?~<|jGK2#8VmL=S2ZNUw zw7aE~KQLLevyJ-99{ue))Gnx7jbhA~phdIxfyDllgijkmMJxH-YV zR>Npu=4fQCGK_*g0WQW!8+=wEE#F!>mA+}jdzEO*4Lf12M;U2QmUw(ML*z@*?le3P zH;@4r&fT0zQwqx{H<5j!~q7)(TM3gcwFsx&Z!wTfq zhdpc9@a%M2?OZhhB45X13TzA&2bixYZ_(EZ=H}~m!dP3)?GKzM(octg!|NmSb@K`l zuA*8H*;CVfYc=&K3t6O4&e#@+nsRGd&e7mbvCJ{57dJ|^*LRCi>mWnu9Qry78AKD; zsWfkY!1L@v8P353JBq&jZ33$-GkJb(7XcpVGm*-XmhAwh2T~&WijtHs%8C*l>3&d z|5SUUgA9gh;etKq8MH#l3*BtGldXqu3il(>-Y`^6E?SMUM!59w6&7Mz#Ba%qw$tcz zs|ov1=nJWg`j?yQSr0Jje6=?D%_P0y8Svafp{EQZ8JG@6YmBJ6aB2kugKWw{t%FFh zb|)fA^mgdn1_JsVb}na&*W1Y?FS98;tBl%Qt&uRyNE?DFA*>2mJfhD=?2(X+o``|p zQy%HYs14GOEe~v@u%2(QXlpb+sP;B7EgF8;G)j%1`9>NV5ZhFGp@Gm?^2DIo+=L4W zf*wSC;=*Ni!+32d4>&wqpphNjRVixw% zx1yh9$b{JI0LuOW#tOfGg#gqOJ(rotEP@-6f;?TEo~JA$;Ujqi8 zX5lNDk7Of@Fg(*difi*l`|4*!*;>J9cTMXgJRoleGdojU_6(Dhh+6w1Pg?kgQ#b+A~`>LFYbeS9+vgkaW5aE@UVS|!2o>(ao0E76+MqSR5tIg}f< zNoS)w=*_nC&feafgai!V90PkebgDs~)@sO3qEDOU3!5yn<^?aylKDm+Co1Wr0_WPb z?HV!O8x|uUW|P4k3OAbMC#?bzFI`0=WV}XMrK89O%|I>7i@uRZ$ZD8hqf70J7OO>- z7yVox$w&2suD8j?tUTW^y};McZs^()(uZ(P_=u$>4UC9!tI=cj1KfY;EnJ`10^G}S zz`ayEIV{)?E$_&||Nk%eKf43-tguT(GiaI==~~tHqM9zEjlJ+F6SDVq9C>6e%sVcbE2Ajw~t6wySSTevV6Yi=saTOu5rDDl03*S!HVZT~ph)@6bW(*h;!rSCgt5B(IZMeIqB#B9LseiTnrF##JWuSsmA`vYT zajBmz{!N!?&t6*ZK7ISu^w$Oq95ncZ6MBo$Q6g=JREyqY=+F|;R{8M7ogikfg{k_c6YJ^!H@|)%MzGivZW|k>- zvxL4fi2-;!|6Y@HUSyIl&o{~53H<#mliYHONp8Q?ByYt{az?gEVqY4ibh}Yrd(0?( z#~H=e!6>bRM)}Tdlx5jQi56giEJksBqsv=+bea5yE_2I8_O>(1PlVrV$c_Ww>(aDa z7vX!(ox0p`zD1shSmd&6&GKHrEXHcH{79ZRfNR=tvO%iL46=BRCZ&Tlc|4@a&}!(< ztHF(W;9c{ZCef2L*>BUt`8GJy8zPsat&%L|-rsAH{nwb~?0mD_YBEc|&rC9aj?c`U zCi!NlQNG-+%aV<{nC{o5@J?MOF4m<+*QI`^LGFB$HT4{U>tTaju$nV%u0gJyZjc^l z8Kk1tAP;vn$QRFPGUypif){D>PMs#_P0(c1Fiq@3G#S!YlWPN5NwwDGyFyLcWNVV( zWPWJ@r|C5!1FsaB85dcIq>a{7WOhiT`!DTf$SLh*>B1`cd1jT|cutj!j#NqD=1O_h zSSisT+R3gj+ez^KcJlFS74r7k6@nV5^jqkb6VGcaB^}zxIOP03f48-~)4z>OeX+G% zv#zyt`)j$R=a$~Fe|xB09=W<)9=xPn+Dt2#MQ@f#?cHVa z%&IcE_RMm5Wdc9*LAl%%Z!Kddww9XCt>rH(%jMFna;cqJCKG-vm76aumB(^QWlv?9 zT>4n4Y#CB2Q}&k1fpbe`@b|6c)Nfl!`(3T%>uXxc-50fz_fxH8g0+>@e_bNaoLxdS zT_V@rR4kwND3-nF7RyGxSiT-w%x5f;wR%wQ?#q`?_7=$M%L}CUZ!YeKOKxp+$(_9C zdDA)G9xITq-p`lUSLWlL#CxsJm+}YlCC$0sermo9`7-d=JSn{|Padjr z%9ol`>UQVIlXv9E&DUnjPjj;6wN$pGCuGZomD%#MJ6nGE$|3nNrsa#XWxgR>d}lbs z;(_d4>5x9(WXTTQA!kl-NUt#t`DBqp#tm~wPS7FmW;-N3G+R0i%$B#iX3MXiIAq-i z4*70}L)PEpkn^TFk|5CYwxo+$LRau*vj`Y|?8d$;_ix*>;yzW?gQTW%I0Z=QCE> zy}>H3_pS2PZ&rEmXRGY_$t(lkGs}?2&2slLv%Ft#mXS`jIAI5h65EWl^jDKS#g-hi z*(4ufg0_8?NhV)slGYEHf=McCO;Y%+Q62|G*>HtXZavE=Ka4fX(C18I zywxOKuQrLfp3ueX-fw4;Gxr!}z!OH9y51<|ml<2ON^f5K(=8@(^V(@h|AMUzjDYPs)-{W@pLVSeE=cFiT$5vSj8~yL6K**|Q-_dR(0)9d=~N zjHOw!IFTi9bL(^dVHf{AyY%a0mv8FqVh`IT=(EdmlU>4Z+oU5@k643Uu96)(&(`mF|W3^vF)-3@X>5q0)IHED|g$vbyy^2^1V449_1Bzr3J z%g(x3+PE$hOXulw=E>*F`!Ag(TMN>1`{<-R`9MNk&(_H`r3u+K#vs3(Xpr~5)a1gA znoNIIlh@a4^7JxIKK_eQ>L(hdwwF=jKk0HM$CiPV<QnmU2-1O<Zo87t5ZC3YPYv?X0|pt^NMgUjAWaPh>9Wuu=iOkC z+paUnjh7qbk<$%w_6UP~I?B*n+c$Tm%OHJ!;qCcVAM*dp-qGYCGNrv28|5UsQBM3q zm-!Fqa_PnJ`A6vT+%|)J16CC6ND0Ns>nY^~EHTIfg_L9@?d5wlDcP!t=XFqAvab10 z8>HtQR6}F=nWwpRy~xA>nZj;O#usbykFQ0(|3u`~4><6#{&--$ESLRPj<`su;XH%f5;Mr|fd=^@VvxsqY9|M{tV)9$Dunk?x@;uqEA>z*VDK22O*ID9*4@r(nN&%$SrrL3=)xXQDeSr2hXoh zgWF1^ta(St7TRCWik!~#DJnCeB}!<1(I_vSW|S*KMtL?L;cl|Khks^Uk(FQbs4jaR zVrwnb#naX#gIT)$*pk&(8m0SmqcpJnQoCi?}^OgXVh<4tlG0!E)nG5<6i+_to-3$ zc&Z0Y*|nXg#Ez-!gDAr&&qu_U-_Fh~F=R8ca^_x<8#ar4dY{PVnaJ(KBG)ew`HEEx z0y@|4Gm&VK)A$pB3jNoMB1d@bx|1#PbQQa}!;~F-ZqIW7RB-P%Sih41w~aTkbhTKn zgH{>-o>f+0t!xjogvVKB$~wNAW08M-Y0BbbOu4_eDVtfITC~c8j~a4i)R6Irt@Oc+rhtKU_Uyg|wG z4kfz|xuy9Lw;VUgEgSE0OYsP|{QEt(%w6u5i%xgTo*K8z`Gz&T+%5MX>y}GQw+s=t zOn)g~Mm(1hvdD`Q{J zm6=$@^BqokW^XR&BUg@o<&^#}IOTyGoHBHVQ*QaiDX+inlsqizP0u*x{p&bK(kUmv zVSVCs%4z?VD`hx#w?CXC-IwG@#n%q`Tq{u0m6;g%u<}LjHnwc={iP4960_v(=C@ zac-V@5=6<>DxE0^3iguj2ei!M91vdV38VhOYL7R;<(Nt?~la$Y|ynB z7Ks*NP>!$xKQd)uw<&g5g9W28|L+=7ywea9w%~#@47ra7FvpECDaB4I<7@k&=2OnZ zIU6d{7iaEm^u?KXi7dT>nActgBR^r0eUmNXe8a?fHRTI*MgnvAz6I0z%UbDqS`Gr9 zie7SvmA0-^&vnRNt3zh)M|@tj%Ylt{*>#^?&b3xN_wB+8k;5)gdDab0qx( z;PMWD@bPi$y;D5-x+S834e|^i^XPR?<*KLvA zSF-g^w@Ahd5Z!IcKFoK?E2a#18vX#_whYzaIMEPexFORbR(TIJb{={oyq6Zl9+@8 zz^cS9_!;gczR zJ7vt}kjY~K$;gTAHADLKA&8Gzyc-oY7cgPPlwJswN`8)M3+K!IZ|BMJI7a?U^P~sA z^`ky{QvZcZPHJ_@v7Iilta8au_?_S1>=IYZCHsq9;wL_F;(J7>Faf{b?UZVqp?j`! z%8zcGqJ6p2{&X(fL$17e4qV&NTsgHMSAPC1M=t+2GKLI(vnxlQzC1_rs&nK~9GE6w zj(qyML*7QE|NAtDOlx<@o9wBIoi=&tahp8$JdWQ=p7kR(DMsFQA!`jo$t9glOILWW zd10Fzs>LxGVwIz9R{59DDo@p-ZECD?EWBj-GS+R8MSkPielyM@RiK$4dVz$#$FU&T zwX02J<82g`0mzS@YsyV=Q~m}_iyt!NU#Qtt-x=~Lzu);!L!Kll;=28Y{PdY2U4IA0 zUT4V0<*a`aN97b#E^094PwdaT`P>s|tX(4van&1g2dZ{IkYw-kB2TOY^J?pjp;8g$Ad1Eq0whpf7;L*BSC%JoLX zHYO@}ry|n$RaBzCM&$OR5xLbJk<#|C?EhC7SQVBVo{vcJiilkQR9L=vF(kJf6Osqs z3Ck6)gk{3VA-T&8$;>xHV*NfSvo8!w=dB@mtUDwV9uLYX9|UCPok7|3YCz8J3`zH~ zAsLtm%6m5kaKHmHy*(s>+K?D!}-`{JK!DVgSb2}tMyF9X@O(uQTD&vT}oH43h zTBGgKasd&)r(0#%v^KeEMXMD3vrVcR+vKvoZL)KEtGFL(kuS%z%KW7*65ih`Q{QQo z=So`ThG{KwZ9$7{S=%ai-q(s}*CN3IEppY{En+Wgk?$t9%9!OX^6;%KGH_3`++E)+ zue{bQ=M^=}2a{Xmmk}+pq`O(>?`@I`Zf=sIUM=#E{1&-!Vzd0ZvPpb{n&r1YH_5n{ znkCoKEHlk!Ic{u|ytQJ0><>1{w(AGTx{Xcp{^L#Z@^1s=z=Q$vxqX0iFKCh(7c|Lb zFAtDm#RKH#)dS>_-}=kIzD;uGg#+Z}^ZEXU{_;S1e>wVae>~a#a%tNDxwqE<*?M7r zsoUNt56y0r`%mpJb4OF3@Rvrp^xq9K^7=;k{L2Oz{d1!fOl*|dosHsos6oQH4br@{ zLGC-!PnzA0a?-C2^6Tjh$aX*Jn9)zxwl&D*H4XCd75(I)&+FyzS^cDNN4<3J>?bey z`$g3qt>*Vhp^|E4Ro&5HfI!W8=#C>sJdFD`Gc{JWv4xd>kWu0|$^^1Mw#g@J@ zczYkntG+TS)>l@(-3NQwN7k?JBe%Bok>aAhGXI)BvgfKk^5XZkvf->+dFSu7(m0WR z=*RVu=UV&7%2l;8s8_9o-l>r{KB$%Mztzg9K?H%<*T@--wQ}XE8aef{TB)M-{AJ(O z$ODNQd3S$rd7-mLj@{l{!jI9C{+=57b9s%Nyu7!J8QWW&Lu=%HUyXdfrng9IZ<%>p zZ`oPaTQc-Gte??at~tH8{MR1l&z;dr&VQws^c~$xR#o<9ltFJ9c0(`eDC#9IKLtNs z+Dn!>;HKfXzbmemGcKr>$-h*|uxF~Ja!|EgN|Nd2FICB?F;%kgfhu|2UnPx4s^rAa zt7OLcRkGukN||_XrQH2hrKCQnl+WXp;(@dNd0eG*!CCkH6ODJuD%59nSllGF+}QS^r|0T>fa8JUqNi zrhHy18{5j{mF=bCJEKg_{<&1%JW?v}b(fNhQYznES}L2XOJ&j1rSkBqQh9key!n?N z*>RUg{!v#dkCv25$2yO+P4UR}_j+X82#+k^;*sXFJ+dU}kv&$AT>V&yG#)CE+Pg}m ztDi?!m3ZXv3nkK?ERm;dB{Kf2VtI60zNjO4a{k^tdF9?b`DSvS{9K+VrEj}r<)2*A z_M1yKZFWf$wtYPA-{c|i)!6r7FKj&a{Wsjc$uB!)-%U<=JPwH&aLIC9!VxVldGR;m zaqFB?f$d*#8g5;yQ(n2>DVwfw%HoNc!cRDe;aIU+ay3~^OGTE<7g>y({mA(u1IYgS4NqY$)Is%DyS#geT`D24 zZ+_4w*FscZeHKLJc$@s>v&qs%o2>KLWE-7n#zliox%i(jDR2Sj!hXDg zi@zRw`Nl5dOYact+HT6#&ztf*_V@ET$fI?JJoZ=I$K{4x4Msn@5L#=AAsK!K6X5o# zxNavKT=W%r3V3;_e$E|M5SUeNhlgqFjeqp4MIvxELl;|Q0%!bTk_oAV^LM-{?|F!1 z6_~RHex!T$XI9yF0im(6RvAW07sQkUMfMVX^t9TywE0+vmZ` z0T14ZLExN;D{>qpA(y;>Kjr1TRsj@nn{opr(yj`t%mqsC+hmcYz|J?qc%*P;6P!Tg z-%Pn=qbc9v?v42sChvK;vZuM_C%N6*$S(u_UiddtF5Uw3wbGRHSD131o1^6!Yot^=g=eh3qU7d-D(yyJE7Z;y)9-U*v@D@-TMP2*)EU&8hsnt|Bi0lzqk zWBK6`fsX|hc*7o%NrSC&OO;j5eF>=7SSp7%cp%l-dc+$F*>bN=amm1Pmz2Nil)W$= z6Fp98{Frd{leu!~%v?Fgkt?U~&XMv!u0-l`WyzWx$^1&p2H3pf6Sl~GIdU@L(p9t+ z?n4Zq;0lLaJH{bk+xM|b(TE)8_SK~>md^_7Je}VTdBGj6I41C;UmDfMS{ldN3fa`HR!nprpWNR+a zIYF5JY}~e~7WuDMi~JL={uvn0Z%m7<=e~Dt@Z4v{hMxtEe1c0L&vWYK$C@MjG6|mK z)|a57Pv=jNjm_#uPlJn_Eb>JJrX8N6@H|6?l#h042Jnu#ABYTMSvARGj;@wdp2iYj z6_#IADbKf7$zL9;l*hMM%B`_V34LB6>n^R3pKh*@#bp(c6BV*5w?f8_sgR=2%VqUt zui!GVi2P8S$A%=4|uG!gD z;tY@6E~RqvUp?~pay~PtRK{OiDnoKg<;k(7GWAoBy!}*}{5GLXo;Xx0!@nq%B^Q>; z<#yh$DwT6Kd*n-gf9ySvoP32xM!TstU0)*4{Yb>~-V#|;Qz}PYrIPx|BcEO4k(WO3 z$OS}Bw>5a==C@14xwS<0%qx+{UoAnamB`%%9w~jkL?UZEa@t^zRBbPj`iWSO@mP?b zO5~e}M^5E?%c?!{jl(1T43E5dS&3xIOJu-n#gJCTa`h#}(kH)IhMhzt6e4o7yGWYW z7s?*U$j@FZlmqQW(zUfvZn=uzYYJuBjsp4WK!I$%yFk9#QXv0G7RVI^1#;o=0{KV^ zWa!gMzKbbo>{TFzi4P z-$t6{T`qYIYjzTrY{ls=x#Uz=mh@ZR&n1B)PGSO1`DLV2T828Mu+AwXE1c3@?3A1T zkt?k)=E?_WkhL@gV)Ea)GV<+Q>HW9d?DzNH#}>ROS0)V4l^5_>4_uTZJ5D8Atusf) z!k}DE=&k>64mlO?w(-Rr*|sA`HbGXN@jPKwLaVpj%$6m?WIP!r*Z(<3Ze;7`U!5bT zPlI)-&ym{=wl$%>?n@nFnc$EQhmko_1Orv;An0M2()aALorKcA-)on)ad^ajyDWYL zwt_AAEF|HUK^B=`i${AD&kZXiPvg150?fGr{;ZcN52MmADkL5>5sUbL@jVBYZ23cm z)ZPnA^`Idq`~@=pW>_k`-W#tXIKx)|YJ=w<%ad200Ee-S9FL9is3pEUDB|9ztcMoG zkCF#+4>=&$VDC`oqmL!G0;T&2%61_Ny3aXK@;M?fkJ7g>SL%MqkzQx#$Y;EmGb%^! zWR)hrND%aHhm7llpX$p>kvFsEGkB=Ya8fH#aEtA7J1et@K=j?G+horOxBzI@jLjwk zpyq4mS>%_bMOIV2 zTE%m`Rm!}?DuDn`eM>b+CqWUHMTV>}M@x@o8=i9RAaWXyB`y**FfS6+N-DQ z)L{iu{ZA!t-L2%Lp@?>&k{jP~OJ&+E&VT0cY<*&+)G%NE&+n(u^{ePBIt#rw&+x!sgXAjX)9Cf*ZkKw*C!&)e;4`N;{-k)(j0M5&C?v?$2SP$B3Dyk7tCRXltHxr z83^F!wM#k(%l-_}j2V7xH7vraR#Tqh?q23XXZ^CNvd8ijhwS__@tnhm8+>;A*)0^9 z|Ah$AqilvHP&q65nX-WkISm-L;Yu*X1;EBxhP*jP4qdYq+GPuC!MbeVJ8$!yNBGW0 zzVi{^xtQZr^t_Z+AFm`_a()?E5+4z_S>}`{?{&(VsLbYhPMJT-DW3xNuL0~2DsW0~)M^30 zZzcxx#@%F~Tuz3=$z-Dp$d#NgAf8c;_w9Aai7$|yKrE+owL|`PtwTQe3mFV#FGL@( z%d(5?GCF3LATgS+H`wHxH8!cZ*(O&&`UN4HKPtD$r-U&7xr7W5LYPlXCIRtNh}(}W zh?PZ_K$RvY`^({`wjqEMLo&6UZ;_F4M+5_>9LVN8VV!%Y0 zXWq!subyJ`G`5DJ@`^z-2Mqc7Ln1_Miq@x)y`{JU$ne+aqCn3uWPK;pKe+Z!UIH6^ zHudVM8b(YaaE_JC9;?)VzP}u7k&6Zpz6E(N!0|ZcR+8EvE5|Ip$J%q#;o+wIyqieI zDnpKM=Qya<70BlU2*t$3Y&_hdnYcqI^nqgTCGr#3QoPxa3EkjlaP&;OA)i4{4m^#> zIy&JPsOde3MGLq$bQN;GfzpfBB9~nw^4Z0pv^X^Ni9~`TM2eb0cmvoE6GWyRAfIG| zUCLe{@Qb+ZKgEzm$3<aIIYxfC;X#+mE@h{o7@b|@;K zik0~0r=-zS{P}u97wo6UM?r_8-FBhT&PGveVYTaAtmQY9n^yHhJ(PdJ6_<*9SjjWM zklcP6yV+nH@r-s~W=J!uytn@ioOQ#mP@bQH`MJKxbdEI=`tuo)i=GtO_QV=FIP?H& zZS2($r{_VScW{kI*esh!`Nk{hk2)J$V-d^0O<8*u4qty#HLR%p4C?ZbA-1m!vAj%z zAx~MGT>YQNtmr59igM>4+0JLhF8n>$`ORmI(ofeJ4G;8??fkzaE>n%Wd*vCP4ez+d zde)SAI7~(eHi&mV^Q&p`Nh?D`nrfoQNz-83r412#rXoUPR`36IsBtVoTSdxb(iFf( zlS9RpsR*Qfj54S6NOyK)fE+bv6rJgwq(0g$GDL&n%}Kg#4iOt3YKbz87Jk-lr0Ryj zEVQ}nNF67&ycE8PiZ=R0rQ;_{n16p>^Mqo$Z%(Oj{f6-jr-U| z!iIa~CgwLWzA=_KD#hv^@$?yEOtQ^pw6ZtZG09q$u~ME$M@S|$($|aHB078rcZr?V zYEfGZk2*`5Rk5vIMa^QhU4|+4rD`&Z4^;-Zl_c!~DY8s5%bcf6<449i>0ZlBAmjFY zER!#7mRR-?t6_0MwAiI;d5$qMQ$hDkdKc4hibMb+!O~#D6?91>KQiTfJk6j_$`1LPCeV~~QLjY{Pl`P$!luh84Rbrf2XeG* z*lU8DsP9-{bn=f@waIAM$Ia4-oEmRLH1c|`F8(O2@x5x-ckbNC2qT)GrhE*ky4pZ~ z>3d9%G^XdVL@}D)CYb6(_rwl*B~us59FYjEcqwZ-Tbz7fsjx#Ir)UL*#Xe*$khsC= z$dpoBsmF-Y29G{>+!8~}X=qJ_8NKW2v`57{&2XQy<*4h;)|wRIa&?gBx=C6yWlZi) z(X>9D(7pDV?&a^$185n;sYeXarn`e$zHoR$j=m4K%CR);qX3mo`1HP~SknKqy;U7` zG}rhBOLM!|_ol6t&$YDsQlqVX`uGyRSu*|UT26&1!cH?Z`lr)GJWfx;2u=M$^kfXj z8Huc0bF=g4qRdzYYA+G$=pbuOrko{Vl0ktM23ls25Yf{>vP zdQR4}Imh#Uj@oT4F7jdY3jLuVgR}WNLYqXyFiQ7As+rSt!ZL;_TX8 z7QR|VYtOAyTwU}urlK%eT4YDF(37(xM&&l+GdpOM%*YQK( z&XLxI=>(lX>6f|K(#2>pgvz_1$gUP!JoIKMUTAm#=6S~xn@&3O%Kx%wlln7NkM>SmKP%vtTu|Gb*nU~cc%MYm^$Q3b9l zx2q@0TFsj()y9tunWZI#`>}%IQ~f zRo_~F7i&tp-pFQ?S1F6U)12BS61JcoLz^?XaWsQ z;*2t-pr8CTi++Q;tCNK2Mh(aurVo z9z0fmRZXW=W2mE16cT>KuI(WG7%(mDOeR$_qAnd+;#M!^=V!{P>DNPI85_*-4KENu zmuItMQB2x|Ga7{c;J)Y>Z>{=1&%ac+xn=rW+CR&k*Ldn6&*9!Ck2xm4OSdMV z@#ytIyV`HjQsP{T0ZXwUZ1N|pTAoi>%h+8yOfbAL`EvN2VZL}MdcasnYk+7h9*-R` zX4AYC_4cnJ4t0;=DRS0(yC}nDKzM9|VN*Ath7lqTDFJHAF_)|D=8>;K@dzM;Ix$+_ z)LLCtc&Tz*GMQ5gxAt|Zf0^UdG+Vc-wpH_vRUH{ps+w|+H^20Bc>~PziN&AK(OS7$ z`5QdyRH;6!r(V-*ggzmtcm`#rlG|l^f?ffsyI7TJh|Vlqr)8RHe&|-~2j%xvr09p8 zq9cAd+n$qt#WWp_qf!`50ZL=ECLL%QJ`w!TJ)8CdOwrmrQZFILGHx@QOtqNJet`YT zf~%7ZEkk*hCevJ4+Qocpx)?{xOYG|F39Xq5&?=URb}0-tpwW3Kr6(N#A?ODRHlqu) z9zB_i_@8E}NN{V9$7dAVGo|#BMP)KVDh){0y+P>h5YipjY3{(h62?{|p1);{l$xGJ zpo>S;mtBiM^dh8i7~)?WJIN z)JwCC+z%F!J|^MV%@x0E)0f??>K$%%oTXXy9hR#)E#uHg?f&@1*7CuKUeY?)oLQ`X zM0vZ7;TcQzr1YtwIc}16)D&Uwb`>%%^6{+C;RaXn4pfj2{Va^xihpAW|}%f zj9Fg>btY?3`aF^qw1KAcE;_)DNd;T%qx~-f1(@QKVB+FnDvt5AEX%0AFzWR}K2zL! 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

    jKZ!rO4-$>qa68u&Uuo3kB&s-JE8__ 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�pD8Js7OAQE0Wr7Zo<+5gz`L$i(GjOSa!v$DI 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

    7$uxJjHibtPiu(n1AJDT zUBBIa2u$Ob9d2%5F3yOA8EZOc-g{?ON-a}e{d&C#CJ-%Z1sn%%gAIowh-^h`ufHIy z4(T(M==3+6|3#ABo(`U1pkVX5!@M>1*5FV4`(2sTF3J7mnDWp>cU*gC`acS}$g#^K zE+Z(2cP$^Su!R*b1t6)j;ObBtjhAu0*l~qwKA=4SBj+Jl9nH|(13jx%cPlHcu@`&O zh0gwT&}S^>clq4+#xX}E?2O+~REItj#)_|D`9>y9{h zPyIGP+Q&|cA&*z7iTe&REYbJs!0#wuk$yE3+jgcqvUlxFZxT2ksW~Y&_C8lzS99(Q z0;#t}C81}w8=wHLANZ;rauRrGB2@&z&Olls^Qx=EH(F)@rv^AnIZi7bM-d?Tka3_A zXcFv6guIM)bzvoE> zDo{@eV9g7^F(@ExS#y9JH#rng7G0=WT;xoJ@UQK}`!_DRG!?(-g9HV%Yx+a5>lg$p zL@({=P^%S!V+X*csUviC5Ed{R>_WtUUAv~l1}16NsY7N7t_mW;o!>`b*m=-o11sRjhV6^G2j zd!T>>EwIoNA4`_PF$x?OYKCAn;-p;kR}hR$O{PQSE*8YCk7bAqkO`y^Ob^IYPgNPZ zd3%y}=9=GcpdBaR4pi3GSL=KnrpSmMc?81~xHU*=p^|7bC~yyCSl`Ud=WfvsEknsk z(V>`Uk)4_M`ewLXO z6j}#^6(fBT7<>kbMsI@&f$z_qm+P!{J95G7A5avWi6o-N1Sq=+ZW;jH1P)5Ja@?Nv z?~e)>$1*s0+CQaxuzE}c4&5V|_^kj8x)x}45#dDyx&TdpOtr0oWSm`kL*JU18~Ypq zY*S-zH4lLT;F3XGG{GQGyj|E(!u^pjuWSx|^{64KCvxevtC~TbGVoYuZM9i{?mQR= zl4Rmz*tJPZgADMb@!{Poqd_aCQjVL+hF8Wn_@T%K>bX<8)^I!X;>hJbVRrUgtx+d* z9MBy{0etgfL0bw&a~JRk@N�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 literal 0 HcmV?d00001 diff --git a/pkg/processor/cryo/testdata/schema.sql b/pkg/processor/cryo/testdata/schema.sql new file mode 100644 index 0000000..06586e4 --- /dev/null +++ b/pkg/processor/cryo/testdata/schema.sql @@ -0,0 +1,316 @@ +-- The 16 canonical_execution_* tables the cryo processors write. +-- +-- Single-node form: no ON CLUSTER, no Replicated engine, no Distributed +-- wrappers. Column types, CODECs, PARTITION BY and ORDER BY match the cluster +-- definitions exactly, which is what the tests and the startup schema check +-- assert against. + +CREATE TABLE IF NOT EXISTS canonical_execution_block +( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `block_date_time` DateTime64(3) COMMENT 'The block timestamp' CODEC(DoubleDelta, ZSTD(1)), + `block_number` UInt64 COMMENT 'The block number' CODEC(DoubleDelta, ZSTD(1)), + `block_hash` FixedString(66) COMMENT 'The block hash' CODEC(ZSTD(1)), + `author` Nullable(String) COMMENT 'The block author' CODEC(ZSTD(1)), + `gas_used` Nullable(UInt64) COMMENT 'The block gas used' CODEC(DoubleDelta, ZSTD(1)), + `gas_limit` UInt64 COMMENT 'The block gas limit' CODEC(DoubleDelta, ZSTD(1)), + `extra_data` Nullable(String) COMMENT 'The block extra data in hex' CODEC(ZSTD(1)), + `extra_data_string` Nullable(String) COMMENT 'The block extra data in UTF-8 string' CODEC(ZSTD(1)), + `base_fee_per_gas` Nullable(UInt64) COMMENT 'The block base fee per gas' CODEC(DoubleDelta, ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name' +) +ENGINE = ReplacingMergeTree(updated_date_time) +PARTITION BY (meta_network_name, intDiv(block_number, 5000000)) +ORDER BY (meta_network_name, block_number) +COMMENT 'Contains canonical execution block data.'; + +CREATE TABLE IF NOT EXISTS canonical_execution_transaction +( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `block_number` UInt64 COMMENT 'The block number' CODEC(DoubleDelta, ZSTD(1)), + `transaction_index` UInt64 COMMENT 'The transaction index' CODEC(DoubleDelta, ZSTD(1)), + `transaction_hash` FixedString(66) COMMENT 'The transaction hash' CODEC(ZSTD(1)), + `nonce` UInt64 COMMENT 'The transaction nonce' CODEC(ZSTD(1)), + `from_address` String COMMENT 'The transaction from address' CODEC(ZSTD(1)), + `to_address` Nullable(String) COMMENT 'The transaction to address' CODEC(ZSTD(1)), + `value` UInt256 COMMENT 'The transaction value in float64' CODEC(ZSTD(1)), + `input` Nullable(String) COMMENT 'The transaction input in hex' CODEC(ZSTD(1)), + `gas_limit` UInt64 COMMENT 'The transaction gas limit' CODEC(ZSTD(1)), + `gas_used` UInt64 COMMENT 'The transaction gas used' CODEC(ZSTD(1)), + `gas_price` UInt128 COMMENT 'The transaction gas price' CODEC(ZSTD(1)), + `transaction_type` UInt8 COMMENT 'The transaction type' CODEC(ZSTD(1)), + `max_priority_fee_per_gas` Nullable(UInt64) COMMENT 'The transaction max priority fee per gas' CODEC(ZSTD(1)), + `max_fee_per_gas` Nullable(UInt64) COMMENT 'The transaction max fee per gas' CODEC(ZSTD(1)), + `success` Bool COMMENT 'The transaction success' CODEC(ZSTD(1)), + `n_input_bytes` UInt32 COMMENT 'The transaction input bytes' CODEC(ZSTD(1)), + `n_input_zero_bytes` UInt32 COMMENT 'The transaction input zero bytes' CODEC(ZSTD(1)), + `n_input_nonzero_bytes` UInt32 COMMENT 'The transaction input nonzero bytes' CODEC(ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name' +) +ENGINE = ReplacingMergeTree(updated_date_time) +PARTITION BY (meta_network_name, intDiv(block_number, 5000000)) +ORDER BY (meta_network_name, block_number, transaction_hash) +COMMENT 'Contains canonical execution transaction data.'; + +CREATE TABLE IF NOT EXISTS canonical_execution_four_byte_counts +( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `block_number` UInt64 COMMENT 'The block number' CODEC(DoubleDelta, ZSTD(1)), + `transaction_index` UInt64 COMMENT 'The transaction index in the block' CODEC(DoubleDelta, ZSTD(1)), + `transaction_hash` FixedString(66) COMMENT 'The transaction hash' CODEC(ZSTD(1)), + `internal_index` UInt32 COMMENT 'The internal index of the four byte count within the transaction' CODEC(DoubleDelta, ZSTD(1)), + `signature` String COMMENT 'The signature of the four byte count' CODEC(ZSTD(1)), + `size` UInt64 COMMENT 'The size of the four byte count' CODEC(ZSTD(1)), + `count` UInt64 COMMENT 'The count of the four byte count' CODEC(ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name' +) +ENGINE = ReplacingMergeTree(updated_date_time) +PARTITION BY (meta_network_name, intDiv(block_number, 5000000)) +ORDER BY (meta_network_name, block_number, transaction_hash, internal_index) +COMMENT 'Contains canonical execution four byte count data.'; + +CREATE TABLE IF NOT EXISTS canonical_execution_balance_diffs +( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `block_number` UInt64 COMMENT 'The block number' CODEC(DoubleDelta, ZSTD(1)), + `transaction_index` UInt64 COMMENT 'The transaction index in the block' CODEC(DoubleDelta, ZSTD(1)), + `transaction_hash` FixedString(66) COMMENT 'The transaction hash that caused the balance diff' CODEC(ZSTD(1)), + `internal_index` UInt32 COMMENT 'The internal index of the balance diff within the transaction' CODEC(DoubleDelta, ZSTD(1)), + `address` String COMMENT 'The address of the balance diff' CODEC(ZSTD(1)), + `from_value` UInt256 COMMENT 'The from value of the balance diff' CODEC(ZSTD(1)), + `to_value` UInt256 COMMENT 'The to value of the balance diff' CODEC(ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name' +) +ENGINE = ReplacingMergeTree(updated_date_time) +PARTITION BY (meta_network_name, intDiv(block_number, 5000000)) +ORDER BY (meta_network_name, block_number, transaction_hash, internal_index) +COMMENT 'Contains canonical execution balance diff data.'; + +CREATE TABLE IF NOT EXISTS canonical_execution_balance_reads +( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `block_number` UInt64 COMMENT 'The block number' CODEC(DoubleDelta, ZSTD(1)), + `transaction_index` UInt64 COMMENT 'The transaction index in the block' CODEC(DoubleDelta, ZSTD(1)), + `transaction_hash` FixedString(66) COMMENT 'The transaction hash that caused the balance read' CODEC(ZSTD(1)), + `internal_index` UInt32 COMMENT 'The internal index of the balance read within the transaction' CODEC(DoubleDelta, ZSTD(1)), + `address` String COMMENT 'The address of the balance read' CODEC(ZSTD(1)), + `balance` UInt256 COMMENT 'The balance that was read' CODEC(ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name' +) +ENGINE = ReplacingMergeTree(updated_date_time) +PARTITION BY (meta_network_name, intDiv(block_number, 5000000)) +ORDER BY (meta_network_name, block_number, transaction_hash, internal_index) +COMMENT 'Contains canonical execution balance read data.'; + +CREATE TABLE IF NOT EXISTS canonical_execution_erc20_transfers +( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `block_number` UInt64 COMMENT 'The block number' CODEC(DoubleDelta, ZSTD(1)), + `transaction_index` UInt64 COMMENT 'The transaction index in the block' CODEC(DoubleDelta, ZSTD(1)), + `transaction_hash` FixedString(66) COMMENT 'The transaction hash' CODEC(ZSTD(1)), + `internal_index` UInt32 COMMENT 'The internal index of the transfer within the transaction' CODEC(DoubleDelta, ZSTD(1)), + `log_index` UInt64 COMMENT 'The log index in the block' CODEC(DoubleDelta, ZSTD(1)), + `erc20` String COMMENT 'The erc20 address' CODEC(ZSTD(1)), + `from_address` String COMMENT 'The from address' CODEC(ZSTD(1)), + `to_address` String COMMENT 'The to address' CODEC(ZSTD(1)), + `value` UInt256 COMMENT 'The value of the transfer' CODEC(ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name' +) +ENGINE = ReplacingMergeTree(updated_date_time) +PARTITION BY (meta_network_name, intDiv(block_number, 5000000)) +ORDER BY (meta_network_name, block_number, transaction_hash, internal_index) +COMMENT 'Contains canonical execution erc20 transfer data.'; + +CREATE TABLE IF NOT EXISTS canonical_execution_erc721_transfers +( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `block_number` UInt64 COMMENT 'The block number' CODEC(DoubleDelta, ZSTD(1)), + `transaction_index` UInt64 COMMENT 'The transaction index in the block' CODEC(DoubleDelta, ZSTD(1)), + `transaction_hash` FixedString(66) COMMENT 'The transaction hash' CODEC(ZSTD(1)), + `internal_index` UInt32 COMMENT 'The internal index of the transfer within the transaction' CODEC(DoubleDelta, ZSTD(1)), + `log_index` UInt64 COMMENT 'The log index in the block' CODEC(DoubleDelta, ZSTD(1)), + `erc721` String COMMENT 'The erc20 address' CODEC(ZSTD(1)), + `from_address` String COMMENT 'The from address' CODEC(ZSTD(1)), + `to_address` String COMMENT 'The to address' CODEC(ZSTD(1)), + `token` UInt256 COMMENT 'The token id' CODEC(ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name' +) +ENGINE = ReplacingMergeTree(updated_date_time) +PARTITION BY (meta_network_name, intDiv(block_number, 5000000)) +ORDER BY (meta_network_name, block_number, transaction_hash, internal_index) +COMMENT 'Contains canonical execution erc721 transfer data.'; + +CREATE TABLE IF NOT EXISTS canonical_execution_native_transfers +( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `block_number` UInt64 COMMENT 'The block number' CODEC(DoubleDelta, ZSTD(1)), + `transaction_index` UInt64 COMMENT 'The transaction index in the block' CODEC(DoubleDelta, ZSTD(1)), + `transaction_hash` FixedString(66) COMMENT 'The transaction hash' CODEC(ZSTD(1)), + `internal_index` UInt32 COMMENT 'The internal index of the transfer within the transaction' CODEC(DoubleDelta, ZSTD(1)), + `transfer_index` UInt64 COMMENT 'The transfer index' CODEC(DoubleDelta, ZSTD(1)), + `from_address` String COMMENT 'The from address' CODEC(ZSTD(1)), + `to_address` String COMMENT 'The to address' CODEC(ZSTD(1)), + `value` UInt256 COMMENT 'The value of the approval' CODEC(ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name' +) +ENGINE = ReplacingMergeTree(updated_date_time) +PARTITION BY (meta_network_name, intDiv(block_number, 5000000)) +ORDER BY (meta_network_name, block_number, transaction_hash, internal_index) +COMMENT 'Contains canonical execution native transfer data.'; + +CREATE TABLE IF NOT EXISTS canonical_execution_nonce_diffs +( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `block_number` UInt64 COMMENT 'The block number' CODEC(DoubleDelta, ZSTD(1)), + `transaction_index` UInt64 COMMENT 'The transaction index in the block' CODEC(DoubleDelta, ZSTD(1)), + `transaction_hash` FixedString(66) COMMENT 'The transaction hash that caused the nonce diff' CODEC(ZSTD(1)), + `internal_index` UInt32 COMMENT 'The internal index of the nonce diff within the transaction' CODEC(DoubleDelta, ZSTD(1)), + `address` String COMMENT 'The address of the nonce diff' CODEC(ZSTD(1)), + `from_value` UInt64 COMMENT 'The from value of the nonce diff' CODEC(ZSTD(1)), + `to_value` UInt64 COMMENT 'The to value of the nonce diff' CODEC(ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name' +) +ENGINE = ReplacingMergeTree(updated_date_time) +PARTITION BY (meta_network_name, intDiv(block_number, 5000000)) +ORDER BY (meta_network_name, block_number, transaction_hash, internal_index) +COMMENT 'Contains canonical execution nonce diff data.'; + +CREATE TABLE IF NOT EXISTS canonical_execution_nonce_reads +( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `block_number` UInt64 COMMENT 'The block number' CODEC(DoubleDelta, ZSTD(1)), + `transaction_index` UInt64 COMMENT 'The transaction index in the block' CODEC(DoubleDelta, ZSTD(1)), + `transaction_hash` FixedString(66) COMMENT 'The transaction hash that caused the nonce read' CODEC(ZSTD(1)), + `internal_index` UInt32 COMMENT 'The internal index of the nonce read within the transaction' CODEC(DoubleDelta, ZSTD(1)), + `address` String COMMENT 'The address of the nonce read' CODEC(ZSTD(1)), + `nonce` UInt64 COMMENT 'The nonce that was read' CODEC(ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name' +) +ENGINE = ReplacingMergeTree(updated_date_time) +PARTITION BY (meta_network_name, intDiv(block_number, 5000000)) +ORDER BY (meta_network_name, block_number, transaction_hash, internal_index) +COMMENT 'Contains canonical execution nonce read data.'; + +CREATE TABLE IF NOT EXISTS canonical_execution_address_appearances +( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `block_number` UInt64 COMMENT 'The block number' CODEC(DoubleDelta, ZSTD(1)), + `transaction_hash` FixedString(66) COMMENT 'The transaction hash that caused the address appearance' CODEC(ZSTD(1)), + `internal_index` UInt32 COMMENT 'The internal index of the address appearance within the transaction' CODEC(DoubleDelta, ZSTD(1)), + `address` String COMMENT 'The address of the address appearance' CODEC(ZSTD(1)), + `relationship` LowCardinality(String) COMMENT 'The relationship of the address to the transaction', + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name' +) +ENGINE = ReplacingMergeTree(updated_date_time) +PARTITION BY (meta_network_name, intDiv(block_number, 5000000)) +ORDER BY (meta_network_name, block_number, transaction_hash, internal_index) +COMMENT 'Contains canonical execution address appearance data.'; + +CREATE TABLE IF NOT EXISTS canonical_execution_contracts +( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `block_number` UInt64 COMMENT 'The block number' CODEC(DoubleDelta, ZSTD(1)), + `transaction_hash` FixedString(66) COMMENT 'The transaction hash that created the contract' CODEC(ZSTD(1)), + `internal_index` UInt32 COMMENT 'The internal index of the contract creation within the transaction' CODEC(DoubleDelta, ZSTD(1)), + `create_index` UInt32 COMMENT 'The create index' CODEC(DoubleDelta, ZSTD(1)), + `contract_address` String COMMENT 'The contract address' CODEC(ZSTD(1)), + `deployer` String COMMENT 'The address of the contract deployer' CODEC(ZSTD(1)), + `factory` String COMMENT 'The address of the factory that deployed the contract' CODEC(ZSTD(1)), + `init_code` String COMMENT 'The initialization code of the contract' CODEC(ZSTD(1)), + `code` Nullable(String) COMMENT 'The code of the contract' CODEC(ZSTD(1)), + `init_code_hash` String COMMENT 'The hash of the initialization code' CODEC(ZSTD(1)), + `n_init_code_bytes` UInt32 COMMENT 'Number of bytes in the initialization code' CODEC(DoubleDelta, ZSTD(1)), + `n_code_bytes` UInt32 COMMENT 'Number of bytes in the contract code' CODEC(DoubleDelta, ZSTD(1)), + `code_hash` String COMMENT 'The hash of the contract code' CODEC(ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name' +) +ENGINE = ReplacingMergeTree(updated_date_time) +PARTITION BY (meta_network_name, intDiv(block_number, 5000000)) +ORDER BY (meta_network_name, block_number, transaction_hash, internal_index) +COMMENT 'Contains canonical execution contract data.'; + +CREATE TABLE IF NOT EXISTS canonical_execution_traces +( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `block_number` UInt64 COMMENT 'The block number' CODEC(DoubleDelta, ZSTD(1)), + `transaction_index` UInt64 COMMENT 'The transaction index' CODEC(DoubleDelta, ZSTD(1)), + `transaction_hash` FixedString(66) COMMENT 'The transaction hash' CODEC(ZSTD(1)), + `internal_index` UInt32 COMMENT 'The internal index of the trace within the transaction' CODEC(DoubleDelta, ZSTD(1)), + `action_from` String COMMENT 'The from address of the action' CODEC(ZSTD(1)), + `action_to` Nullable(String) COMMENT 'The to address of the action' CODEC(ZSTD(1)), + `action_value` UInt256 COMMENT 'The value of the action' CODEC(ZSTD(1)), + `action_gas` Nullable(UInt64) COMMENT 'The gas provided for the action' CODEC(DoubleDelta, ZSTD(1)), + `action_input` Nullable(String) COMMENT 'The input data for the action' CODEC(ZSTD(1)), + `action_call_type` LowCardinality(String) COMMENT 'The call type of the action' CODEC(ZSTD(1)), + `action_init` Nullable(String) COMMENT 'The initialization code for the action' CODEC(ZSTD(1)), + `action_reward_type` String COMMENT 'The reward type for the action' CODEC(ZSTD(1)), + `action_type` LowCardinality(String) COMMENT 'The type of the action' CODEC(ZSTD(1)), + `result_gas_used` Nullable(UInt64) COMMENT 'The gas used in the result' CODEC(DoubleDelta, ZSTD(1)), + `result_output` Nullable(String) COMMENT 'The output of the result' CODEC(ZSTD(1)), + `result_code` Nullable(String) COMMENT 'The code returned in the result' CODEC(ZSTD(1)), + `result_address` Nullable(String) COMMENT 'The address returned in the result' CODEC(ZSTD(1)), + `trace_address` Nullable(String) COMMENT 'The trace address' CODEC(ZSTD(1)), + `subtraces` UInt32 COMMENT 'The number of subtraces' CODEC(DoubleDelta, ZSTD(1)), + `error` Nullable(String) COMMENT 'The error, if any, in the trace' CODEC(ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name' +) +ENGINE = ReplacingMergeTree(updated_date_time) +PARTITION BY (meta_network_name, intDiv(block_number, 5000000)) +ORDER BY (meta_network_name, block_number, transaction_hash, internal_index) +COMMENT 'Contains canonical execution traces data.'; + +CREATE TABLE IF NOT EXISTS canonical_execution_logs +( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `block_number` UInt64 COMMENT 'The block number' CODEC(DoubleDelta, ZSTD(1)), + `transaction_index` UInt64 COMMENT 'The transaction index' CODEC(DoubleDelta, ZSTD(1)), + `transaction_hash` FixedString(66) COMMENT 'The transaction hash associated with the log' CODEC(ZSTD(1)), + `internal_index` UInt32 COMMENT 'The internal index of the log within the transaction' CODEC(DoubleDelta, ZSTD(1)), + `log_index` UInt32 COMMENT 'The log index within the block' CODEC(DoubleDelta, ZSTD(1)), + `address` String COMMENT 'The address associated with the log' CODEC(ZSTD(1)), + `topic0` Nullable(String) COMMENT 'The first topic of the log' CODEC(ZSTD(1)), + `topic1` Nullable(String) COMMENT 'The second topic of the log' CODEC(ZSTD(1)), + `topic2` Nullable(String) COMMENT 'The third topic of the log' CODEC(ZSTD(1)), + `topic3` Nullable(String) COMMENT 'The fourth topic of the log' CODEC(ZSTD(1)), + `data` Nullable(String) COMMENT 'The data associated with the log' CODEC(ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name' +) +ENGINE = ReplacingMergeTree(updated_date_time) +PARTITION BY (meta_network_name, intDiv(block_number, 5000000)) +ORDER BY (meta_network_name, block_number, transaction_hash, internal_index) +COMMENT 'Contains canonical execution logs data.'; + +CREATE TABLE IF NOT EXISTS canonical_execution_storage_diffs +( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `block_number` UInt64 COMMENT 'The block number' CODEC(DoubleDelta, ZSTD(1)), + `transaction_index` UInt64 COMMENT 'The transaction index' CODEC(DoubleDelta, ZSTD(1)), + `transaction_hash` FixedString(66) COMMENT 'The transaction hash associated with the storage diff' CODEC(ZSTD(1)), + `internal_index` UInt32 COMMENT 'The internal index of the storage diff within the transaction' CODEC(DoubleDelta, ZSTD(1)), + `address` String COMMENT 'The address associated with the storage diff' CODEC(ZSTD(1)), + `slot` String COMMENT 'The storage slot key' CODEC(ZSTD(1)), + `from_value` String COMMENT 'The original value before the storage diff' CODEC(ZSTD(1)), + `to_value` String COMMENT 'The new value after the storage diff' CODEC(ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name' +) +ENGINE = ReplacingMergeTree(updated_date_time) +PARTITION BY (meta_network_name, intDiv(block_number, 5000000)) +ORDER BY (meta_network_name, block_number, transaction_hash, internal_index) +COMMENT 'Contains canonical execution storage diffs data.'; + +CREATE TABLE IF NOT EXISTS canonical_execution_storage_reads +( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `block_number` UInt64 COMMENT 'The block number' CODEC(DoubleDelta, ZSTD(1)), + `transaction_index` UInt64 COMMENT 'The transaction index' CODEC(DoubleDelta, ZSTD(1)), + `transaction_hash` FixedString(66) COMMENT 'The transaction hash associated with the storage read' CODEC(ZSTD(1)), + `internal_index` UInt32 COMMENT 'The internal index of the storage read within the transaction' CODEC(DoubleDelta, ZSTD(1)), + `contract_address` String COMMENT 'The contract address associated with the storage read' CODEC(ZSTD(1)), + `slot` String COMMENT 'The storage slot key' CODEC(ZSTD(1)), + `value` String COMMENT 'The value read from the storage slot' CODEC(ZSTD(1)), + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name' +) +ENGINE = ReplacingMergeTree(updated_date_time) +PARTITION BY (meta_network_name, intDiv(block_number, 5000000)) +ORDER BY (meta_network_name, block_number, transaction_hash, internal_index) +COMMENT 'Contains canonical execution storage reads data.'; diff --git a/pkg/processor/cryo/values.go b/pkg/processor/cryo/values.go new file mode 100644 index 0000000..125747d --- /dev/null +++ b/pkg/processor/cryo/values.go @@ -0,0 +1,209 @@ +package cryo + +import ( + "fmt" + "math/big" + + "github.com/ClickHouse/ch-go/proto" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +// hashSize is the width of the FixedString columns holding 0x-prefixed hashes. +const hashSize = 66 + +// emptyHex is what cryo's --hex emits for a zero-length byte string, and what +// ClickHouse produces when hex-encoding a NULL coerced to an empty String. +const emptyHex = "0x" + +// picker resolves the columns a dataset mapping needs, holding the first +// failure so a mapping can list its columns without an error check on each. +// A missing or wrongly typed column is a cryo schema change, and stopping the +// whole block is the intended response: the alternative is a silently absent +// column, which the target schema cannot distinguish from absent data. +type picker struct { + table *decode.Table + err error +} + +func newPicker(t *decode.Table) *picker { + return &picker{table: t} +} + +func (p *picker) str(name string) *decode.Column { return p.take(p.table.Str(name)) } +func (p *picker) int(name string) *decode.Column { return p.take(p.table.Int(name)) } +func (p *picker) bool(name string) *decode.Column { return p.take(p.table.Bool(name)) } + +func (p *picker) take(c *decode.Column, err error) *decode.Column { + if err != nil && p.err == nil { + p.err = err + } + + return c +} + +// nullable converts an optional value into ch-go's nullable representation. +func nullable[T any](v *T) proto.Nullable[T] { + if v == nil { + return proto.Null[T]() + } + + return proto.NewNullable(*v) +} + +// hexOrEmpty returns a hex column's value, mapping NULL to "0x" so that a row +// cryo could not attribute to a transaction still lands under a stable key. +func hexOrEmpty(c *decode.Column, i int) string { + if c.IsNull(i) { + return emptyHex + } + + return c.Str(i) +} + +// nullableHex returns nil for a hex column that is either NULL or encodes a +// zero-length byte string, matching the empty-to-NULL guard the target schema +// expects. +func nullableHex(c *decode.Column, i int) *string { + if c.IsNull(i) { + return nil + } + + v := c.Str(i) + if v == "" || v == emptyHex { + return nil + } + + return &v +} + +// nullableStr returns nil for a plain string column that is NULL or empty. +func nullableStr(c *decode.Column, i int) *string { + if c.IsNull(i) { + return nil + } + + v := c.Str(i) + if v == "" { + return nil + } + + return &v +} + +// strOrEmpty returns a plain string column's value, mapping NULL to "". +func strOrEmpty(c *decode.Column, i int) string { + if c.IsNull(i) { + return "" + } + + return c.Str(i) +} + +// uintOrZero returns an integer column's value, mapping NULL to 0. +func uintOrZero(c *decode.Column, i int) uint64 { + if c.IsNull(i) { + return 0 + } + + return c.Int(i) +} + +// nullableUint returns nil for a NULL integer column. +func nullableUint(c *decode.Column, i int) *uint64 { + if c.IsNull(i) { + return nil + } + + v := c.Int(i) + + return &v +} + +// boolOrFalse returns a boolean column's value, mapping NULL to false. +func boolOrFalse(c *decode.Column, i int) bool { + if c.IsNull(i) { + return false + } + + return c.Bool(i) +} + +// fixedHash renders a 0x-prefixed hash into the fixed-width buffer the target +// column uses, right-padding with zero bytes exactly as ClickHouse does. +func fixedHash(s string) ([]byte, error) { + if len(s) > hashSize { + return nil, fmt.Errorf("hash %q is %d bytes, exceeding FixedString(%d)", s, len(s), hashSize) + } + + buf := make([]byte, hashSize) + copy(buf, s) + + return buf, nil +} + +// uint256 parses a decimal string into ch-go's little-endian limb layout. +// cryo emits every U256 as a decimal string under --u256-types string, and the +// values routinely exceed uint64, so this must never route through a float. +func uint256(s string) (proto.UInt256, error) { + if s == "" { + return proto.UInt256{}, nil + } + + v, ok := new(big.Int).SetString(s, 10) + if !ok { + return proto.UInt256{}, fmt.Errorf("value %q is not a decimal integer", s) + } + + if v.Sign() < 0 { + return proto.UInt256{}, fmt.Errorf("value %q is negative", s) + } + + if v.BitLen() > 256 { + return proto.UInt256{}, fmt.Errorf("value %q exceeds 256 bits", s) + } + + var buf [32]byte + + v.FillBytes(buf[:]) + + // FillBytes writes big-endian; the limbs are little-endian by both word + // order and byte order within each word. + return proto.UInt256{ + Low: proto.UInt128{ + Low: beUint64(buf[24:32]), + High: beUint64(buf[16:24]), + }, + High: proto.UInt128{ + Low: beUint64(buf[8:16]), + High: beUint64(buf[0:8]), + }, + }, nil +} + +func beUint64(b []byte) uint64 { + return uint64(b[0])<<56 | uint64(b[1])<<48 | uint64(b[2])<<40 | uint64(b[3])<<32 | + uint64(b[4])<<24 | uint64(b[5])<<16 | uint64(b[6])<<8 | uint64(b[7]) +} + +// internalIndex assigns a 1-based counter per transaction hash, walking rows in +// parquet file order. ClickHouse preserves neither insertion order nor, through +// a Distributed table, any recoverable order at all, so this column is the only +// record of the sequence cryo produced. +// +// Rows whose hash is NULL are counted under the same key they will be stored +// with rather than skipped. Skipping them collapses every block reward trace in +// a block onto one sort key, which loses one of the two rewards on pre-merge +// blocks with uncles. +func internalIndex(hashes *decode.Column, rows int) []uint32 { + out := make([]uint32, rows) + seen := make(map[string]uint32, rows) + + for i := range rows { + key := hexOrEmpty(hashes, i) + seen[key]++ + out[i] = seen[key] + } + + return out +} diff --git a/pkg/processor/manager.go b/pkg/processor/manager.go index d9bcf84..9f432b2 100644 --- a/pkg/processor/manager.go +++ b/pkg/processor/manager.go @@ -35,6 +35,7 @@ import ( "github.com/ethpandaops/execution-processor/pkg/common" "github.com/ethpandaops/execution-processor/pkg/ethereum" "github.com/ethpandaops/execution-processor/pkg/leaderelection" + "github.com/ethpandaops/execution-processor/pkg/processor/cryo" "github.com/ethpandaops/execution-processor/pkg/processor/tracker" transaction_simple "github.com/ethpandaops/execution-processor/pkg/processor/transaction/simple" transaction_structlog "github.com/ethpandaops/execution-processor/pkg/processor/transaction/structlog" @@ -487,11 +488,61 @@ func (m *Manager) initializeProcessors(ctx context.Context) error { m.log.Debug("Transaction structlog_agg processor is disabled") } + if err := m.initializeCryoProcessors(ctx); err != nil { + return err + } + m.log.WithField("total_processors", len(m.processors)).Info("Completed processor initialization") return nil } +// initializeCryoProcessors creates one processor per enabled cryo group. Unlike +// the other processors this is one config to many processors, because a group +// is one cryo invocation and therefore one unit of progress. +func (m *Manager) initializeCryoProcessors(ctx context.Context) error { + if !m.config.Cryo.Enabled { + m.log.Debug("Cryo processors are disabled") + + return nil + } + + for i := range m.config.Cryo.Groups { + groupCfg := &m.config.Cryo.Groups[i] + + if !groupCfg.Enabled { + continue + } + + processor, err := cryo.New(&cryo.Dependencies{ + Log: m.log, + Pool: m.pool, + State: m.state, + AsynqClient: m.asynqClient, + AsynqInspector: m.asynqInspector, + RedisClient: m.redisClient, + Network: m.network, + RedisPrefix: m.redisPrefix, + }, &m.config.Cryo, groupCfg) + if err != nil { + return fmt.Errorf("failed to create cryo processor for group %s: %w", groupCfg.Name, err) + } + + name := processor.Name() + m.processors[name] = processor + + processor.SetProcessingMode(m.config.Mode) + + m.log.WithField("processor", name).Info("Initialized processor") + + if err := m.startProcessorWithRetry(ctx, processor, name); err != nil { + return fmt.Errorf("failed to start %s processor: %w", name, err) + } + } + + return nil +} + // startProcessorWithRetry starts a processor with infinite retry and capped exponential backoff. // This ensures processors can wait for their dependencies (like ClickHouse) to become available. func (m *Manager) startProcessorWithRetry(ctx context.Context, processor tracker.BlockProcessor, name string) error { @@ -1228,82 +1279,21 @@ func (m *Manager) QueueBlockManually(ctx context.Context, processorName string, return nil, fmt.Errorf("failed to fetch block %d: %w", blockNumber, err) } - var tasksCreated int - - // Handle different processor types - switch p := processor.(type) { - case *transaction_structlog.Processor: - // Enqueue transaction tasks using the processor's method - tasksCreated, err = p.EnqueueTransactionTasks(ctx, block) - if err != nil { - return nil, fmt.Errorf("failed to enqueue tasks for block %d: %w", blockNumber, err) - } - - case *transaction_simple.Processor: - // For simple processor, enqueue a single block processing task - tasksCreated, err = m.enqueueSimpleBlockTask(ctx, p, blockNumber) - if err != nil { - return nil, fmt.Errorf("failed to enqueue block task for block %d: %w", blockNumber, err) - } - - case *transaction_structlog_agg.Processor: - // Enqueue transaction tasks using the processor's method - tasksCreated, err = p.EnqueueTransactionTasks(ctx, block) - if err != nil { - return nil, fmt.Errorf("failed to enqueue tasks for block %d: %w", blockNumber, err) - } - - default: - return nil, fmt.Errorf("processor %s has unsupported type", processorName) - } - - // Update execution_block table to mark block as processed - if err := m.state.MarkBlockProcessed(ctx, blockNumber, m.network.Name, processorName); err != nil { - return nil, fmt.Errorf("failed to update execution_block table: %w", err) + // Every processor's own ProcessBlock records the ledger row, registers the + // block for completion tracking and enqueues its work, so the manual path + // produces exactly the state the automatic path does. + if err := processor.ProcessBlock(ctx, block); err != nil { + return nil, fmt.Errorf("failed to queue block %d for %s: %w", blockNumber, processorName, err) } return &QueueResult{ TransactionCount: len(block.Transactions()), - TasksCreated: tasksCreated, }, nil } -// enqueueSimpleBlockTask enqueues a block processing task for the simple processor. -func (m *Manager) enqueueSimpleBlockTask(ctx context.Context, p *transaction_simple.Processor, blockNumber uint64) (int, error) { - payload := &transaction_simple.ProcessPayload{ - BlockNumber: *big.NewInt(int64(blockNumber)), //nolint:gosec // validated above - NetworkName: m.network.Name, - } - - var task *asynq.Task - - var queue string - - var err error - - if m.config.Mode == tracker.BACKWARDS_MODE { - task, _, err = transaction_simple.NewProcessBackwardsTask(payload) - queue = tracker.PrefixedProcessBackwardsQueue(transaction_simple.ProcessorName, m.redisPrefix) - } else { - task, _, err = transaction_simple.NewProcessForwardsTask(payload) - queue = tracker.PrefixedProcessForwardsQueue(transaction_simple.ProcessorName, m.redisPrefix) - } - - if err != nil { - return 0, fmt.Errorf("failed to create task: %w", err) - } - - if err := p.EnqueueTask(ctx, task, asynq.Queue(queue)); err != nil { - return 0, fmt.Errorf("failed to enqueue task: %w", err) - } - - return 1, nil -} - // QueueResult contains the result of queuing a block. type QueueResult struct { TransactionCount int - TasksCreated int } // initializeBlocksStoredMetrics sets initial values for blocks stored metrics to ensure visibility. @@ -1465,18 +1455,7 @@ func (m *Manager) checkGaps(ctx context.Context) { default: } - // Get the limiter from each processor - var limiter *tracker.Limiter - - switch p := processor.(type) { - case *transaction_structlog.Processor: - limiter = p.Limiter - case *transaction_simple.Processor: - limiter = p.Limiter - case *transaction_structlog_agg.Processor: - limiter = p.Limiter - } - + limiter := processor.GetLimiter() if limiter == nil { continue } diff --git a/pkg/processor/tracker/block_tracker.go b/pkg/processor/tracker/block_tracker.go index cd51547..b34a097 100644 --- a/pkg/processor/tracker/block_tracker.go +++ b/pkg/processor/tracker/block_tracker.go @@ -243,17 +243,40 @@ func (t *BlockCompletionTracker) MarkBlockComplete( blockNum uint64, network, processor, mode string, ) error { - // Write to ClickHouse - if err := t.stateProvider.MarkBlockComplete(ctx, blockNum, network, processor); err != nil { - return fmt.Errorf("failed to mark block complete in ClickHouse: %w", err) - } - - // Cleanup Redis keys completedKey := t.completedKey(network, processor, mode, blockNum) expectedKey := t.expectedKey(network, processor, mode, blockNum) metaKey := t.metaKey(network, processor, mode, blockNum) pendingKey := t.pendingBlocksKey(network, processor, mode) + // Read the expected task count before the cleanup pipeline deletes it + taskCount := 0 + + expectedStr, err := t.redis.Get(ctx, expectedKey).Result() + if err != nil { + t.log.WithError(err).WithFields(logrus.Fields{ + "block_number": blockNum, + "network": network, + "processor": processor, + "mode": mode, + }).Debug("Failed to read expected task count, recording 0") + } else if parsed, parseErr := strconv.Atoi(expectedStr); parseErr != nil { + t.log.WithError(parseErr).WithFields(logrus.Fields{ + "block_number": blockNum, + "expected": expectedStr, + "network": network, + "processor": processor, + "mode": mode, + }).Debug("Failed to parse expected task count, recording 0") + } else { + taskCount = parsed + } + + // Write to ClickHouse + if err := t.stateProvider.MarkBlockComplete(ctx, blockNum, network, processor, taskCount); err != nil { + return fmt.Errorf("failed to mark block complete in ClickHouse: %w", err) + } + + // Cleanup Redis keys pipe := t.redis.Pipeline() pipe.Del(ctx, completedKey, expectedKey, metaKey) pipe.ZRem(ctx, pendingKey, blockNum) diff --git a/pkg/processor/tracker/block_tracker_test.go b/pkg/processor/tracker/block_tracker_test.go index 90c13b6..068d89c 100644 --- a/pkg/processor/tracker/block_tracker_test.go +++ b/pkg/processor/tracker/block_tracker_test.go @@ -39,7 +39,7 @@ func (m *mockStateProviderForTracker) GetNewestIncompleteBlock( } func (m *mockStateProviderForTracker) MarkBlockComplete( - _ context.Context, _ uint64, _, _ string, + _ context.Context, _ uint64, _, _ string, _ int, ) error { return m.markCompleteErr } @@ -274,7 +274,7 @@ func (m *mockStateProviderForLimiter) GetNewestIncompleteBlock( } func (m *mockStateProviderForLimiter) MarkBlockComplete( - _ context.Context, _ uint64, _, _ string, + _ context.Context, _ uint64, _, _ string, _ int, ) error { return nil } diff --git a/pkg/processor/tracker/limiter.go b/pkg/processor/tracker/limiter.go index 0a90777..3d936c9 100644 --- a/pkg/processor/tracker/limiter.go +++ b/pkg/processor/tracker/limiter.go @@ -14,7 +14,7 @@ import ( type StateProvider interface { GetOldestIncompleteBlock(ctx context.Context, network, processor string, minBlockNumber uint64) (*uint64, error) GetNewestIncompleteBlock(ctx context.Context, network, processor string, maxBlockNumber uint64) (*uint64, error) - MarkBlockComplete(ctx context.Context, blockNumber uint64, network, processor string) error + MarkBlockComplete(ctx context.Context, blockNumber uint64, network, processor string, taskCount int) error } // GapStateProvider extends StateProvider with gap detection capabilities. diff --git a/pkg/processor/tracker/limiter_test.go b/pkg/processor/tracker/limiter_test.go index fa61bd8..f5b14b1 100644 --- a/pkg/processor/tracker/limiter_test.go +++ b/pkg/processor/tracker/limiter_test.go @@ -381,7 +381,7 @@ func (m *mockStateProvider) GetNewestIncompleteBlock( } func (m *mockStateProvider) MarkBlockComplete( - _ context.Context, _ uint64, _, _ string, + _ context.Context, _ uint64, _, _ string, _ int, ) error { return nil } diff --git a/pkg/processor/tracker/processor.go b/pkg/processor/tracker/processor.go index 9f0322f..69b222f 100644 --- a/pkg/processor/tracker/processor.go +++ b/pkg/processor/tracker/processor.go @@ -129,6 +129,9 @@ type BlockProcessor interface { // GetCompletionTracker returns the block completion tracker for checking tracking status. GetCompletionTracker() *BlockCompletionTracker + + // GetLimiter returns the block completion limiter, which owns gap scanning. + GetLimiter() *Limiter } // QueueInfo contains information about a processor queue. diff --git a/pkg/processor/transaction/simple/block_processing.go b/pkg/processor/transaction/simple/block_processing.go index 8f9e477..e2124db 100644 --- a/pkg/processor/transaction/simple/block_processing.go +++ b/pkg/processor/transaction/simple/block_processing.go @@ -189,7 +189,7 @@ func (p *Processor) ProcessBlock(ctx context.Context, block execution.Block) err if len(block.Transactions()) == 0 { p.log.WithField("block", blockNumber.Uint64()).Debug("Empty block, marking as complete") - return p.stateManager.MarkBlockComplete(ctx, blockNumber.Uint64(), p.network.Name, p.Name()) + return p.stateManager.MarkBlockComplete(ctx, blockNumber.Uint64(), p.network.Name, p.Name(), 0) } // 1. Mark block as enqueued in ClickHouse FIRST (complete=0) @@ -331,7 +331,7 @@ func (p *Processor) ReprocessBlock(ctx context.Context, blockNum uint64) error { if len(block.Transactions()) == 0 { p.log.WithField("block", blockNum).Debug("Empty orphaned block, marking as complete") - return p.stateManager.MarkBlockComplete(ctx, blockNum, p.network.Name, p.Name()) + return p.stateManager.MarkBlockComplete(ctx, blockNum, p.network.Name, p.Name(), 0) } // Use the high-priority reprocess queue for orphaned/stale blocks (mode-specific) diff --git a/pkg/processor/transaction/simple/processor.go b/pkg/processor/transaction/simple/processor.go index f8b0ada..321a9c9 100644 --- a/pkg/processor/transaction/simple/processor.go +++ b/pkg/processor/transaction/simple/processor.go @@ -200,6 +200,11 @@ func (p *Processor) GetCompletionTracker() *tracker.BlockCompletionTracker { return p.completionTracker } +// GetLimiter returns the block completion limiter. +func (p *Processor) GetLimiter() *tracker.Limiter { + return p.Limiter +} + // EnqueueTask enqueues a task to the specified queue with infinite retries. func (p *Processor) EnqueueTask(ctx context.Context, task *asynq.Task, opts ...asynq.Option) error { opts = append(opts, asynq.MaxRetry(math.MaxInt32)) diff --git a/pkg/processor/transaction/structlog/block_processing.go b/pkg/processor/transaction/structlog/block_processing.go index 9df6812..b399d68 100644 --- a/pkg/processor/transaction/structlog/block_processing.go +++ b/pkg/processor/transaction/structlog/block_processing.go @@ -204,7 +204,7 @@ func (p *Processor) ProcessBlock(ctx context.Context, block execution.Block) err }).Debug("skipping empty block") // Mark the block as complete immediately (no tasks to track) - if markErr := p.stateManager.MarkBlockComplete(ctx, blockNumber.Uint64(), p.network.Name, p.Name()); markErr != nil { + if markErr := p.stateManager.MarkBlockComplete(ctx, blockNumber.Uint64(), p.network.Name, p.Name(), 0); markErr != nil { p.log.WithError(markErr).WithFields(logrus.Fields{ "network": p.network.Name, "block_number": blockNumber, @@ -430,7 +430,7 @@ func (p *Processor) ReprocessBlock(ctx context.Context, blockNum uint64) error { if len(block.Transactions()) == 0 { p.log.WithField("block", blockNum).Debug("Empty orphaned block, marking as complete") - return p.stateManager.MarkBlockComplete(ctx, blockNum, p.network.Name, p.Name()) + return p.stateManager.MarkBlockComplete(ctx, blockNum, p.network.Name, p.Name(), 0) } expectedCount := len(block.Transactions()) diff --git a/pkg/processor/transaction/structlog/processor.go b/pkg/processor/transaction/structlog/processor.go index 34e1281..71f2226 100644 --- a/pkg/processor/transaction/structlog/processor.go +++ b/pkg/processor/transaction/structlog/processor.go @@ -252,6 +252,11 @@ func (p *Processor) GetCompletionTracker() *tracker.BlockCompletionTracker { return p.completionTracker } +// GetLimiter returns the block completion limiter. +func (p *Processor) GetLimiter() *tracker.Limiter { + return p.Limiter +} + // getProcessForwardsQueue returns the prefixed process forwards queue name. func (p *Processor) getProcessForwardsQueue() string { return tracker.PrefixedProcessForwardsQueue(ProcessorName, p.redisPrefix) diff --git a/pkg/processor/transaction/structlog_agg/block_processing.go b/pkg/processor/transaction/structlog_agg/block_processing.go index cdff57e..8de8908 100644 --- a/pkg/processor/transaction/structlog_agg/block_processing.go +++ b/pkg/processor/transaction/structlog_agg/block_processing.go @@ -204,7 +204,7 @@ func (p *Processor) ProcessBlock(ctx context.Context, block execution.Block) err }).Debug("skipping empty block") // Mark the block as complete immediately (no tasks to track) - if markErr := p.stateManager.MarkBlockComplete(ctx, blockNumber.Uint64(), p.network.Name, p.Name()); markErr != nil { + if markErr := p.stateManager.MarkBlockComplete(ctx, blockNumber.Uint64(), p.network.Name, p.Name(), 0); markErr != nil { p.log.WithError(markErr).WithFields(logrus.Fields{ "network": p.network.Name, "block_number": blockNumber, @@ -430,7 +430,7 @@ func (p *Processor) ReprocessBlock(ctx context.Context, blockNum uint64) error { if len(block.Transactions()) == 0 { p.log.WithField("block", blockNum).Debug("Empty orphaned block, marking as complete") - return p.stateManager.MarkBlockComplete(ctx, blockNum, p.network.Name, p.Name()) + return p.stateManager.MarkBlockComplete(ctx, blockNum, p.network.Name, p.Name(), 0) } expectedCount := len(block.Transactions()) diff --git a/pkg/processor/transaction/structlog_agg/processor.go b/pkg/processor/transaction/structlog_agg/processor.go index a39d044..abbebcf 100644 --- a/pkg/processor/transaction/structlog_agg/processor.go +++ b/pkg/processor/transaction/structlog_agg/processor.go @@ -262,6 +262,11 @@ func (p *Processor) GetCompletionTracker() *tracker.BlockCompletionTracker { return p.completionTracker } +// GetLimiter returns the block completion limiter. +func (p *Processor) GetLimiter() *tracker.Limiter { + return p.Limiter +} + // getProcessForwardsQueue returns the prefixed process forwards queue name. func (p *Processor) getProcessForwardsQueue() string { return tracker.PrefixedProcessForwardsQueue(ProcessorName, p.redisPrefix) diff --git a/pkg/state/manager.go b/pkg/state/manager.go index 6da2287..3771426 100644 --- a/pkg/state/manager.go +++ b/pkg/state/manager.go @@ -561,14 +561,15 @@ func (s *Manager) MarkBlockEnqueued(ctx context.Context, blockNumber uint64, tas // MarkBlockComplete inserts a block with complete=true to indicate all tasks finished. // This is the second phase of two-phase completion tracking. // ReplacingMergeTree will keep the latest row per (processor, network, block_number). -func (s *Manager) MarkBlockComplete(ctx context.Context, blockNumber uint64, network, processor string) error { +func (s *Manager) MarkBlockComplete(ctx context.Context, blockNumber uint64, network, processor string, taskCount int) error { query := fmt.Sprintf( - "INSERT INTO %s (updated_date_time, block_number, processor, meta_network_name, complete, task_count) VALUES ('%s', %d, '%s', '%s', 1, 0)", + "INSERT INTO %s (updated_date_time, block_number, processor, meta_network_name, complete, task_count) VALUES ('%s', %d, '%s', '%s', 1, %d)", s.storageTable, time.Now().Format("2006-01-02 15:04:05.000"), blockNumber, processor, network, + taskCount, ) err := s.storageClient.Execute(ctx, query) @@ -580,6 +581,7 @@ func (s *Manager) MarkBlockComplete(ctx context.Context, blockNumber uint64, net "block_number": blockNumber, "processor": processor, "network": network, + "task_count": taskCount, }).Debug("Marked block as complete") return nil From 55411c14b8628831d4589517048e80d000511871 Mon Sep 17 00:00:00 2001 From: Andrew Davis <1709934+Savid@users.noreply.github.com> Date: Mon, 27 Jul 2026 15:26:27 +1000 Subject: [PATCH 2/5] perf(cryo): recycle column blocks between flushes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A column block holds one buffer per column sized for the batch, and flush rebuilt one every time. At mainnet row counts that was the largest single allocation in the insert path. Reset already existed on all sixteen column blocks and was never called, so recycling them through a sync.Pool needed no new per-dataset code. The pool is the right shape here because rowbuffer can flush from both its timer and its size trigger concurrently. Measured on the heaviest fixture block, 23,598 rows across all sixteen datasets, decode through to a built column block: before 88.9 MB/block 12.1 ms/block after 65.3 MB/block 10.3 ms/block Recycling turns Reset from dead code into a correctness dependency: a Reset that misses a column would leave the previous batch's rows in place and the next flush would build a block whose columns disagree on length. TestColumnBlocks ResetCompletely fills, resets, refills and compares against a fresh block for every dataset, so that failure mode is caught rather than inferred. Adds benchmarks for the stages a task actually spends time in — parquet decode, mapping to rows, and building the column block — plus a concurrency memory report. The latter records that live heap stays flat at ~240 MiB from 1 to 32 workers while churn scales linearly, so replica sizing is driven by allocation rate rather than by working set. Co-Authored-By: Claude Opus 5 (1M context) --- pkg/processor/cryo/bench_test.go | 251 ++++++++++++++++++++++++++++ pkg/processor/cryo/coverage_test.go | 34 ++++ pkg/processor/cryo/memory_test.go | 87 ++++++++++ pkg/processor/cryo/sink.go | 30 +++- 4 files changed, 401 insertions(+), 1 deletion(-) create mode 100644 pkg/processor/cryo/bench_test.go create mode 100644 pkg/processor/cryo/memory_test.go diff --git a/pkg/processor/cryo/bench_test.go b/pkg/processor/cryo/bench_test.go new file mode 100644 index 0000000..85243a5 --- /dev/null +++ b/pkg/processor/cryo/bench_test.go @@ -0,0 +1,251 @@ +package cryo + +import ( + "path/filepath" + "testing" + + "github.com/sirupsen/logrus" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +// benchBlock is the fixture the benchmarks run against. 23000026 is the +// heaviest of the three, so it is a closer analogue of a real mainnet block +// than the lighter 23000000. +const benchBlock = "b23000026" + +// benchSink exposes the stages of a sink separately so a benchmark can +// attribute cost. The signatures are deliberately non-generic so one interface +// covers every dataset's datasetSink[R]. +type benchSink interface { + mapOnly(t *decode.Table, meta rowMeta) (int, error) + encodeOnly(t *decode.Table, meta rowMeta) error +} + +func (s *datasetSink[R]) mapOnly(t *decode.Table, meta rowMeta) (int, error) { + rows, err := s.decode(t, meta) + + return len(rows), err +} + +func (s *datasetSink[R]) encodeOnly(t *decode.Table, meta rowMeta) error { + rows, err := s.decode(t, meta) + if err != nil { + return err + } + + cols := s.acquireCols() + defer s.releaseCols(cols) + + for i := range rows { + if err := cols.Append(rows[i]); err != nil { + return err + } + } + + _ = cols.Input() + + return nil +} + +// resetChecker exposes a fill/Reset/refill comparison without leaking the +// row type, so one assertion covers all sixteen datasets. +type resetChecker interface { + checkReset(t *decode.Table, meta rowMeta) (names []string, fresh, reused []int, err error) +} + +func (s *datasetSink[R]) checkReset(t *decode.Table, meta rowMeta) ([]string, []int, []int, error) { + rows, err := s.decode(t, meta) + if err != nil { + return nil, nil, nil, err + } + + fill := func(cols columnar[R]) ([]string, []int, error) { + for i := range rows { + if appendErr := cols.Append(rows[i]); appendErr != nil { + return nil, nil, appendErr + } + } + + input := cols.Input() + names := make([]string, 0, len(input)) + counts := make([]int, 0, len(input)) + + for _, col := range input { + names = append(names, col.Name) + counts = append(counts, col.Data.Rows()) + } + + return names, counts, nil + } + + names, fresh, err := fill(s.newCols()) + if err != nil { + return nil, nil, nil, err + } + + recycled := s.newCols() + + if _, _, fillErr := fill(recycled); fillErr != nil { + return nil, nil, nil, fillErr + } + + recycled.Reset() + + _, reused, err := fill(recycled) + if err != nil { + return nil, nil, nil, err + } + + return names, fresh, reused, nil +} + +func benchLogger() logrus.FieldLogger { + log := logrus.New() + log.SetLevel(logrus.ErrorLevel) + + return log +} + +func benchSinkFor(ds *Dataset) benchSink { + s, ok := ds.newSink(sinkDeps{ + log: benchLogger(), + dataset: ds, + table: ds.Table, + network: "mainnet", + processor: "cryo_bench", + bufferMaxRows: DefaultBufferMaxRows, + bufferFlushInterval: DefaultBufferFlushInterval, + }).(benchSink) + if !ok { + panic("datasetSink does not implement benchSink") + } + + return s +} + +func benchFixturePath(tb testing.TB, dataset string) string { + tb.Helper() + + matches, err := filepath.Glob(filepath.Join("testdata", benchBlock, "ethereum__"+dataset+"__*.parquet")) + if err != nil || len(matches) != 1 { + tb.Fatalf("expected one %s fixture, got %v (%v)", dataset, matches, err) + } + + return matches[0] +} + +func benchTable(tb testing.TB, dataset string) *decode.Table { + tb.Helper() + + table, err := decode.File(benchFixturePath(tb, dataset)) + if err != nil { + tb.Fatal(err) + } + + return table +} + +// BenchmarkDecodeFile measures parquet decode alone, per dataset. +func BenchmarkDecodeFile(b *testing.B) { + for _, ds := range datasets { + path := benchFixturePath(b, ds.Name) + rows := benchTable(b, ds.Name).Rows() + + b.Run(ds.Name, func(b *testing.B) { + b.ReportAllocs() + + for b.Loop() { + if _, err := decode.File(path); err != nil { + b.Fatal(err) + } + } + + reportRowRate(b, rows) + }) + } +} + +// BenchmarkMapRows measures turning a decoded table into row structs, which is +// where internal_index and every null and hex decision happens. +func BenchmarkMapRows(b *testing.B) { + for _, ds := range datasets { + table := benchTable(b, ds.Name) + sink := benchSinkFor(ds) + + b.Run(ds.Name, func(b *testing.B) { + b.ReportAllocs() + + for b.Loop() { + if _, err := sink.mapOnly(table, fixtureMeta); err != nil { + b.Fatal(err) + } + } + + reportRowRate(b, table.Rows()) + }) + } +} + +// BenchmarkEncodeColumns measures map plus the ch-go column block build, which +// together are the work done on every flush. +func BenchmarkEncodeColumns(b *testing.B) { + for _, ds := range datasets { + table := benchTable(b, ds.Name) + sink := benchSinkFor(ds) + + b.Run(ds.Name, func(b *testing.B) { + b.ReportAllocs() + + for b.Loop() { + if err := sink.encodeOnly(table, fixtureMeta); err != nil { + b.Fatal(err) + } + } + + reportRowRate(b, table.Rows()) + }) + } +} + +// BenchmarkBlockPipeline measures everything a task does except the ClickHouse +// round trip: decode, map and encode all 16 datasets of one block. +func BenchmarkBlockPipeline(b *testing.B) { + paths := make([]string, 0, len(datasets)) + sinks := make([]benchSink, 0, len(datasets)) + total := 0 + + for _, ds := range datasets { + paths = append(paths, benchFixturePath(b, ds.Name)) + sinks = append(sinks, benchSinkFor(ds)) + total += benchTable(b, ds.Name).Rows() + } + + b.ReportAllocs() + + for b.Loop() { + for i, path := range paths { + table, err := decode.File(path) + if err != nil { + b.Fatal(err) + } + + if err := sinks[i].encodeOnly(table, fixtureMeta); err != nil { + b.Fatal(err) + } + } + } + + b.ReportMetric(float64(b.Elapsed().Milliseconds())/float64(b.N), "ms/block") + reportRowRate(b, total) +} + +func reportRowRate(b *testing.B, rows int) { + b.Helper() + + if rows == 0 || b.Elapsed() == 0 { + return + } + + b.ReportMetric(float64(rows)*float64(b.N)/b.Elapsed().Seconds(), "rows/s") +} diff --git a/pkg/processor/cryo/coverage_test.go b/pkg/processor/cryo/coverage_test.go index 11c3cc1..0f2d96e 100644 --- a/pkg/processor/cryo/coverage_test.go +++ b/pkg/processor/cryo/coverage_test.go @@ -139,3 +139,37 @@ func TestGroupRequiresGasLimitColumn(t *testing.T) { // Reached through the canary too, so no group can lose it. require.Equal(t, []string{"gas_limit"}, testGroup(t, "logs").RequiredColumns()) } + +// TestColumnBlocksResetCompletely guards the column pool. Reset was dead code +// until blocks started being recycled; a Reset that misses a column now leaves +// the previous batch's rows in place, so the next flush builds a block whose +// columns disagree on length. +func TestColumnBlocksResetCompletely(t *testing.T) { + t.Parallel() + + for _, ds := range datasets { + t.Run(ds.Name, func(t *testing.T) { + t.Parallel() + + table := fixtureTable(t, "b23000026", ds.Name) + if table.Rows() == 0 { + t.Skipf("%s has no rows at this block", ds.Name) + } + + checker, ok := ds.newSink(sinkDeps{ + log: benchLogger(), dataset: ds, table: ds.Table, network: "mainnet", + }).(resetChecker) + require.True(t, ok) + + names, fresh, reused, err := checker.checkReset(table, fixtureMeta) + require.NoError(t, err) + require.NotEmpty(t, fresh) + + for i := range fresh { + require.Equal(t, fresh[i], reused[i], + "column %q holds %d rows after Reset+refill but %d in a fresh block: Reset is incomplete", + names[i], reused[i], fresh[i]) + } + }) + } +} diff --git a/pkg/processor/cryo/memory_test.go b/pkg/processor/cryo/memory_test.go new file mode 100644 index 0000000..5c36157 --- /dev/null +++ b/pkg/processor/cryo/memory_test.go @@ -0,0 +1,87 @@ +package cryo + +import ( + "runtime" + "testing" + + "golang.org/x/sync/errgroup" + + "github.com/ethpandaops/execution-processor/pkg/processor/cryo/decode" +) + +// TestPeakHeapUnderConcurrency reports the resident cost of processing blocks +// in parallel, which is what sizes a replica. Allocation churn is not the same +// number: most of a block's allocation is released as soon as its columns are +// handed to ClickHouse. +// +// It reports rather than asserts, because the figure depends on the machine and +// a threshold here would be noise. Run with -v to see it. +func TestPeakHeapUnderConcurrency(t *testing.T) { + if testing.Short() { + t.Skip("allocates hundreds of megabytes") + } + + paths := make([]string, 0, len(datasets)) + sinks := make([]benchSink, 0, len(datasets)) + + for _, ds := range datasets { + paths = append(paths, benchFixturePath(t, ds.Name)) + sinks = append(sinks, benchSinkFor(ds)) + } + + for _, workers := range []int{1, 4, 8, 16, 32} { + runtime.GC() + + var before runtime.MemStats + + runtime.ReadMemStats(&before) + + var group errgroup.Group + + group.SetLimit(workers) + + // Each unit of work is one whole block: decode all sixteen parquet + // files and build every column block, exactly as a task does. + for range workers * 4 { + group.Go(func() error { + for i, path := range paths { + table, err := decode.File(path) + if err != nil { + return err + } + + if err := sinks[i].encodeOnly(table, fixtureMeta); err != nil { + return err + } + } + + return nil + }) + } + + if err := group.Wait(); err != nil { + t.Fatal(err) + } + + var peak runtime.MemStats + + runtime.ReadMemStats(&peak) + + // HeapAlloc straight after the workload counts garbage that simply has + // not been collected yet. Collecting first is what distinguishes the + // memory a replica actually needs from the memory it churned through. + runtime.GC() + + var live runtime.MemStats + + runtime.ReadMemStats(&live) + + t.Logf("workers=%-3d heap_sys=%6.1f MiB live_after_gc=%6.1f MiB churned=%6.1f MiB gc_cycles=%d", + workers, + float64(peak.HeapSys)/(1<<20), + float64(live.HeapAlloc)/(1<<20), + float64(peak.TotalAlloc-before.TotalAlloc)/(1<<20), + peak.NumGC-before.NumGC, + ) + } +} diff --git a/pkg/processor/cryo/sink.go b/pkg/processor/cryo/sink.go index d9cf01f..ed3c73f 100644 --- a/pkg/processor/cryo/sink.go +++ b/pkg/processor/cryo/sink.go @@ -5,6 +5,7 @@ import ( "fmt" "sort" "strings" + "sync" "time" "github.com/ClickHouse/ch-go" @@ -70,6 +71,32 @@ type datasetSink[R any] struct { buffer *rowbuffer.Buffer[R] decode decodeFunc[R] newCols func() columnar[R] + + // cols recycles column blocks between flushes. A block holds one buffer + // per column sized for the batch, so at these row counts rebuilding it + // every flush is the single largest allocation in the insert path. + cols sync.Pool +} + +// acquireCols returns a reset column block, reusing a retired one when there is +// one to hand. +func (s *datasetSink[R]) acquireCols() columnar[R] { + if v := s.cols.Get(); v != nil { + cols, ok := v.(columnar[R]) + if ok { + cols.Reset() + + return cols + } + } + + return s.newCols() +} + +// releaseCols retires a column block once ClickHouse has consumed it. +func (s *datasetSink[R]) releaseCols(cols columnar[R]) { + cols.Reset() + s.cols.Put(cols) } func newDatasetSink[R any](deps sinkDeps, dec decodeFunc[R], newCols func() columnar[R]) sink { @@ -135,7 +162,8 @@ func (s *datasetSink[R]) flush(ctx context.Context, rows []R) error { insertCtx, cancel := context.WithTimeout(ctx, tracker.DefaultClickHouseTimeout) defer cancel() - cols := s.newCols() + cols := s.acquireCols() + defer s.releaseCols(cols) for i := range rows { if err := cols.Append(rows[i]); err != nil { From 158d5658f3e2a841cc7cb28ee518419591219235 Mon Sep 17 00:00:00 2001 From: Andrew Davis <1709934+Savid@users.noreply.github.com> Date: Mon, 27 Jul 2026 15:30:48 +1000 Subject: [PATCH 3/5] perf(cryo): carry nullable values inline instead of behind a pointer The mapping helpers returned *string and *uint64, so every non-null value in a nullable column cost a heap allocation and an indirection, on rows the buffer holds until the next flush. Returning ch-go's own nullable representation carries the value inline and removes both. traces felt this most, having eight nullable columns: traces map 20,117 -> 3,149 allocs/block 574us -> 359us logs map 3,722 -> 7 allocs/block whole block 171,262 -> 149,698 allocs/block Bytes and wall time per block are unchanged within noise, since the pointers were small next to the decoded data. The win is allocation count and the collector work that follows from it, not footprint. Co-Authored-By: Claude Opus 5 (1M context) --- pkg/processor/cryo/ds_blocks.go | 34 +++++++-------- pkg/processor/cryo/ds_blocks_test.go | 10 ++--- pkg/processor/cryo/ds_contracts.go | 4 +- pkg/processor/cryo/ds_contracts_test.go | 4 +- pkg/processor/cryo/ds_logs.go | 20 ++++----- pkg/processor/cryo/ds_logs_test.go | 26 ++++++------ pkg/processor/cryo/ds_traces.go | 40 +++++++++--------- pkg/processor/cryo/ds_traces_test.go | 44 +++++++++---------- pkg/processor/cryo/ds_transactions.go | 16 +++---- pkg/processor/cryo/ds_transactions_test.go | 18 ++++---- pkg/processor/cryo/values.go | 49 ++++++++++------------ 11 files changed, 130 insertions(+), 135 deletions(-) diff --git a/pkg/processor/cryo/ds_blocks.go b/pkg/processor/cryo/ds_blocks.go index f27c5a5..062b1ab 100644 --- a/pkg/processor/cryo/ds_blocks.go +++ b/pkg/processor/cryo/ds_blocks.go @@ -29,12 +29,12 @@ type blockRow struct { BlockDateTime time.Time BlockNumber uint64 BlockHash string - Author *string - GasUsed *uint64 + Author proto.Nullable[string] + GasUsed proto.Nullable[uint64] GasLimit uint64 - ExtraData *string - ExtraDataString *string - BaseFeePerGas *uint64 + ExtraData proto.Nullable[string] + ExtraDataString proto.Nullable[string] + BaseFeePerGas proto.Nullable[uint64] MetaNetworkName string } @@ -86,24 +86,24 @@ func decodeBlocks(t *decode.Table, meta rowMeta) ([]blockRow, error) { // extraDataPair derives both extra_data columns from cryo's single hex field: // the hex form is stored verbatim, and the string form is the raw bytes it // encodes, which are arbitrary and need not be valid UTF-8. -func extraDataPair(c *decode.Column, i int) (hexForm, stringForm *string, err error) { +func extraDataPair(c *decode.Column, i int) (hexForm, stringForm proto.Nullable[string], err error) { + null := proto.Null[string]() + if c.IsNull(i) { - return nil, nil, nil + return null, null, nil } v := c.Str(i) if v == "" || v == emptyHex { - return nil, nil, nil + return null, null, nil } raw, err := hex.DecodeString(v[len(emptyHex):]) if err != nil { - return nil, nil, fmt.Errorf("extra_data %q is not hex: %w", v, err) + return null, null, fmt.Errorf("extra_data %q is not hex: %w", v, err) } - decoded := string(raw) - - return &v, &decoded, nil + return proto.NewNullable(v), proto.NewNullable(string(raw)), nil } type blockColumns struct { @@ -143,12 +143,12 @@ func (c *blockColumns) Append(r blockRow) error { c.BlockDateTime.Append(r.BlockDateTime) c.BlockNumber.Append(r.BlockNumber) c.BlockHash.Append(hash) - c.Author.Append(nullable(r.Author)) - c.GasUsed.Append(nullable(r.GasUsed)) + c.Author.Append(r.Author) + c.GasUsed.Append(r.GasUsed) c.GasLimit.Append(r.GasLimit) - c.ExtraData.Append(nullable(r.ExtraData)) - c.ExtraDataString.Append(nullable(r.ExtraDataString)) - c.BaseFeePerGas.Append(nullable(r.BaseFeePerGas)) + c.ExtraData.Append(r.ExtraData) + c.ExtraDataString.Append(r.ExtraDataString) + c.BaseFeePerGas.Append(r.BaseFeePerGas) c.MetaNetworkName.Append(r.MetaNetworkName) return nil diff --git a/pkg/processor/cryo/ds_blocks_test.go b/pkg/processor/cryo/ds_blocks_test.go index 5762ed9..b5fbd38 100644 --- a/pkg/processor/cryo/ds_blocks_test.go +++ b/pkg/processor/cryo/ds_blocks_test.go @@ -17,15 +17,15 @@ func TestDecodeBlocks(t *testing.T) { r := rows[0] require.Equal(t, uint64(23000000), r.BlockNumber) require.Equal(t, "0xe368c631c74a82c3043e6d44c4bef6e6139a6501b39c7700c2552554d10e6c3b", r.BlockHash) - require.Equal(t, "0x396343362be2a4da1ce0c1c210945346fb82aa49", *r.Author) - require.Equal(t, uint64(11210841), *r.GasUsed) + require.Equal(t, "0x396343362be2a4da1ce0c1c210945346fb82aa49", r.Author.Value) + require.Equal(t, uint64(11210841), r.GasUsed.Value) require.Equal(t, uint64(45000000), r.GasLimit) - require.Equal(t, uint64(239712557), *r.BaseFeePerGas) + require.Equal(t, uint64(239712557), r.BaseFeePerGas.Value) require.Equal(t, "mainnet", r.MetaNetworkName) // extra_data is stored twice: verbatim hex, and the raw bytes it encodes. - require.Equal(t, "0xe29ca82051756173617220287175617361722e77696e2920e29ca8", *r.ExtraData) - require.Equal(t, "✨ Quasar (quasar.win) ✨", *r.ExtraDataString) + require.Equal(t, "0xe29ca82051756173617220287175617361722e77696e2920e29ca8", r.ExtraData.Value) + require.Equal(t, "✨ Quasar (quasar.win) ✨", r.ExtraDataString.Value) require.Equal(t, time.Unix(1753492931, 0).UTC(), r.BlockDateTime) } diff --git a/pkg/processor/cryo/ds_contracts.go b/pkg/processor/cryo/ds_contracts.go index 544f1c1..a915891 100644 --- a/pkg/processor/cryo/ds_contracts.go +++ b/pkg/processor/cryo/ds_contracts.go @@ -28,7 +28,7 @@ type contractRow struct { Deployer string Factory string InitCode string - Code *string + Code proto.Nullable[string] InitCodeHash string NInitCodeBytes uint32 NCodeBytes uint32 @@ -129,7 +129,7 @@ func (c *contractColumns) Append(r contractRow) error { c.Deployer.Append(r.Deployer) c.Factory.Append(r.Factory) c.InitCode.Append(r.InitCode) - c.Code.Append(nullable(r.Code)) + c.Code.Append(r.Code) c.InitCodeHash.Append(r.InitCodeHash) c.NInitCodeBytes.Append(r.NInitCodeBytes) c.NCodeBytes.Append(r.NCodeBytes) diff --git a/pkg/processor/cryo/ds_contracts_test.go b/pkg/processor/cryo/ds_contracts_test.go index a449289..0c6691f 100644 --- a/pkg/processor/cryo/ds_contracts_test.go +++ b/pkg/processor/cryo/ds_contracts_test.go @@ -39,7 +39,7 @@ func TestDecodeContracts(t *testing.T) { // This contract self-destructs in its constructor, so cryo reports its code // as the literal "0x" and the target column stores NULL. - require.Nil(t, r.Code) + require.False(t, r.Code.Set) last := rows[3] require.Equal(t, uint32(3), last.CreateIndex) @@ -52,7 +52,7 @@ func TestDecodeContracts(t *testing.T) { last.InitCode) require.Equal(t, "0x363d3d373d3d3d363d73fe02a32cbe0cb9ad9a945576a5bb53a3c123a3a35af43d82803e903d91602b57fd5bf3", - *last.Code) + last.Code.Value) require.Equal(t, "0xf51217697e54d3e7c4d961223d0ec7a0f4962b08eb43d9e27c22df8e30b6b3e1", last.InitCodeHash) require.Equal(t, "0x269179116bc54c44db2053d1b6076ac2eacd45b921cf397525f967ff87095344", last.CodeHash) require.Equal(t, uint32(55), last.NInitCodeBytes) diff --git a/pkg/processor/cryo/ds_logs.go b/pkg/processor/cryo/ds_logs.go index 3fa44fd..71127a0 100644 --- a/pkg/processor/cryo/ds_logs.go +++ b/pkg/processor/cryo/ds_logs.go @@ -26,11 +26,11 @@ type logRow struct { InternalIndex uint32 LogIndex uint32 Address string - Topic0 *string - Topic1 *string - Topic2 *string - Topic3 *string - Data *string + Topic0 proto.Nullable[string] + Topic1 proto.Nullable[string] + Topic2 proto.Nullable[string] + Topic3 proto.Nullable[string] + Data proto.Nullable[string] MetaNetworkName string } @@ -121,11 +121,11 @@ func (c *logColumns) Append(r logRow) error { c.InternalIndex.Append(r.InternalIndex) c.LogIndex.Append(r.LogIndex) c.Address.Append(r.Address) - c.Topic0.Append(nullable(r.Topic0)) - c.Topic1.Append(nullable(r.Topic1)) - c.Topic2.Append(nullable(r.Topic2)) - c.Topic3.Append(nullable(r.Topic3)) - c.Data.Append(nullable(r.Data)) + c.Topic0.Append(r.Topic0) + c.Topic1.Append(r.Topic1) + c.Topic2.Append(r.Topic2) + c.Topic3.Append(r.Topic3) + c.Data.Append(r.Data) c.MetaNetworkName.Append(r.MetaNetworkName) return nil diff --git a/pkg/processor/cryo/ds_logs_test.go b/pkg/processor/cryo/ds_logs_test.go index e1d5164..0082e73 100644 --- a/pkg/processor/cryo/ds_logs_test.go +++ b/pkg/processor/cryo/ds_logs_test.go @@ -21,11 +21,11 @@ func TestDecodeLogs(t *testing.T) { require.Equal(t, uint32(1), r.InternalIndex) require.Equal(t, uint32(0), r.LogIndex) require.Equal(t, "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", r.Address) - require.Equal(t, "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", *r.Topic0) - require.Equal(t, "0x00000000000000000000000028c6c06298d514db089934071355e5743bf21d60", *r.Topic1) - require.Equal(t, "0x000000000000000000000000f2abf514dfbaf3323a5cb95bb2e4ab180a5ba3e8", *r.Topic2) - require.Nil(t, r.Topic3) - require.Equal(t, "0x0000000000000000000000000000000000000000000000000000000129d08a20", *r.Data) + require.Equal(t, "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", r.Topic0.Value) + require.Equal(t, "0x00000000000000000000000028c6c06298d514db089934071355e5743bf21d60", r.Topic1.Value) + require.Equal(t, "0x000000000000000000000000f2abf514dfbaf3323a5cb95bb2e4ab180a5ba3e8", r.Topic2.Value) + require.False(t, r.Topic3.Set) + require.Equal(t, "0x0000000000000000000000000000000000000000000000000000000129d08a20", r.Data.Value) require.Equal(t, "mainnet", r.MetaNetworkName) // internal_index restarts at 1 for each transaction and counts every log @@ -39,8 +39,8 @@ func TestDecodeLogs(t *testing.T) { require.Equal(t, uint32(1), rows[321].InternalIndex) // A log with no data at all arrives as "0x" and is stored as NULL. - require.Nil(t, rows[26].Data) - require.Nil(t, rows[62].Data) + require.False(t, rows[26].Data.Set) + require.False(t, rows[62].Data.Set) } func TestDecodeLogsAnonymous(t *testing.T) { @@ -53,12 +53,12 @@ func TestDecodeLogsAnonymous(t *testing.T) { anonymous := 0 for _, r := range rows { - if r.Topic0 == nil { + if !r.Topic0.Set { anonymous++ - require.Nil(t, r.Topic1) - require.Nil(t, r.Topic2) - require.Nil(t, r.Topic3) + require.False(t, r.Topic1.Set) + require.False(t, r.Topic2.Set) + require.False(t, r.Topic3.Set) } } @@ -67,13 +67,13 @@ func TestDecodeLogsAnonymous(t *testing.T) { require.Equal(t, 10, anonymous) r := rows[26] - require.Nil(t, r.Topic0) + require.False(t, r.Topic0.Set) require.Equal(t, uint32(26), r.LogIndex) require.Equal(t, uint64(1), r.TransactionIndex) require.Equal(t, "0xffbf7de7b5c7740694ec15a8dfd2b6c0e42fde82fd70db8eb8122a4f10c68257", r.TransactionHash) require.Equal(t, uint32(17), r.InternalIndex) require.Equal(t, "0xe0e0e08a6a4b9dc7bd67bcb7aade5cf48157d444", r.Address) - require.NotNil(t, r.Data) + require.True(t, r.Data.Set) } func TestLogsColumnsAppend(t *testing.T) { diff --git a/pkg/processor/cryo/ds_traces.go b/pkg/processor/cryo/ds_traces.go index 4a7d275..1860df5 100644 --- a/pkg/processor/cryo/ds_traces.go +++ b/pkg/processor/cryo/ds_traces.go @@ -26,21 +26,21 @@ type traceRow struct { TransactionHash string InternalIndex uint32 ActionFrom string - ActionTo *string + ActionTo proto.Nullable[string] ActionValue proto.UInt256 - ActionGas *uint64 - ActionInput *string + ActionGas proto.Nullable[uint64] + ActionInput proto.Nullable[string] ActionCallType string - ActionInit *string + ActionInit proto.Nullable[string] ActionRewardType string ActionType string - ResultGasUsed *uint64 - ResultOutput *string - ResultCode *string - ResultAddress *string - TraceAddress *string + ResultGasUsed proto.Nullable[uint64] + ResultOutput proto.Nullable[string] + ResultCode proto.Nullable[string] + ResultAddress proto.Nullable[string] + TraceAddress proto.Nullable[string] Subtraces uint32 - Error *string + Error proto.Nullable[string] MetaNetworkName string } @@ -171,21 +171,21 @@ func (c *traceColumns) Append(r traceRow) error { c.TransactionHash.Append(hash) c.InternalIndex.Append(r.InternalIndex) c.ActionFrom.Append(r.ActionFrom) - c.ActionTo.Append(nullable(r.ActionTo)) + c.ActionTo.Append(r.ActionTo) c.ActionValue.Append(r.ActionValue) - c.ActionGas.Append(nullable(r.ActionGas)) - c.ActionInput.Append(nullable(r.ActionInput)) + c.ActionGas.Append(r.ActionGas) + c.ActionInput.Append(r.ActionInput) c.ActionCallType.Append(r.ActionCallType) - c.ActionInit.Append(nullable(r.ActionInit)) + c.ActionInit.Append(r.ActionInit) c.ActionRewardType.Append(r.ActionRewardType) c.ActionType.Append(r.ActionType) - c.ResultGasUsed.Append(nullable(r.ResultGasUsed)) - c.ResultOutput.Append(nullable(r.ResultOutput)) - c.ResultCode.Append(nullable(r.ResultCode)) - c.ResultAddress.Append(nullable(r.ResultAddress)) - c.TraceAddress.Append(nullable(r.TraceAddress)) + c.ResultGasUsed.Append(r.ResultGasUsed) + c.ResultOutput.Append(r.ResultOutput) + c.ResultCode.Append(r.ResultCode) + c.ResultAddress.Append(r.ResultAddress) + c.TraceAddress.Append(r.TraceAddress) c.Subtraces.Append(r.Subtraces) - c.Error.Append(nullable(r.Error)) + c.Error.Append(r.Error) c.MetaNetworkName.Append(r.MetaNetworkName) return nil diff --git a/pkg/processor/cryo/ds_traces_test.go b/pkg/processor/cryo/ds_traces_test.go index d35174c..87d3799 100644 --- a/pkg/processor/cryo/ds_traces_test.go +++ b/pkg/processor/cryo/ds_traces_test.go @@ -35,32 +35,32 @@ func TestDecodeTraces(t *testing.T) { require.Equal(t, "0x763827e5a5197faf46175f7a83460028926cc6a2721acc9b50b5cceba824fe20", r.TransactionHash) require.Equal(t, uint32(1), r.InternalIndex) require.Equal(t, "0x2b4cdbcf60f009889e88b1982f1d1f9ce8fd2233", r.ActionFrom) - require.Equal(t, "0xbeefbabeea323f07c59926295205d3b7a17e8638", *r.ActionTo) + require.Equal(t, "0xbeefbabeea323f07c59926295205d3b7a17e8638", r.ActionTo.Value) require.Zero(t, r.ActionValue) - require.Equal(t, uint64(476176), *r.ActionGas) - require.Equal(t, uint64(221260), *r.ResultGasUsed) + require.Equal(t, uint64(476176), r.ActionGas.Value) + require.Equal(t, uint64(221260), r.ResultGasUsed.Value) require.Equal(t, "call", r.ActionCallType) require.Equal(t, "call", r.ActionType) require.Empty(t, r.ActionRewardType) - require.Nil(t, r.ActionInit) - require.Nil(t, r.ResultCode) - require.Nil(t, r.ResultAddress) + require.False(t, r.ActionInit.Set) + require.False(t, r.ResultCode.Set) + require.False(t, r.ResultAddress.Set) require.Equal(t, uint32(3), r.Subtraces) - require.Nil(t, r.Error) + require.False(t, r.Error.Set) require.Equal(t, "mainnet", r.MetaNetworkName) // cryo emits an empty return as the literal "0x", which the target column // stores as NULL. - require.Nil(t, r.ResultOutput) + require.False(t, r.ResultOutput.Set) // trace_address is an underscore-joined path of child indices, never hex. - require.Nil(t, r.TraceAddress) - require.Equal(t, "0", *rows[3].TraceAddress) - require.Equal(t, "2_0_0", *rows[7].TraceAddress) + require.False(t, r.TraceAddress.Set) + require.Equal(t, "0", rows[3].TraceAddress.Value) + require.Equal(t, "2_0_0", rows[7].TraceAddress.Value) require.Equal(t, uint32(2), rows[3].InternalIndex) require.Equal(t, "static_call", rows[3].ActionCallType) - require.Equal(t, "0x0902f1ac", *rows[3].ActionInput) + require.Equal(t, "0x0902f1ac", rows[3].ActionInput.Value) } // TestDecodeTracesRewards pins the behaviour the mapping exists to protect: a @@ -99,10 +99,10 @@ func TestDecodeTracesRewards(t *testing.T) { for _, r := range rewards { require.Equal(t, uint64(0), r.TransactionIndex) require.Equal(t, "reward", r.ActionType) - require.Nil(t, r.ActionTo) - require.Nil(t, r.ActionGas) - require.Nil(t, r.ResultGasUsed) - require.Nil(t, r.TraceAddress) + require.False(t, r.ActionTo.Set) + require.False(t, r.ActionGas.Set) + require.False(t, r.ResultGasUsed.Set) + require.False(t, r.TraceAddress.Set) require.Empty(t, r.ActionCallType) } } @@ -126,16 +126,16 @@ func TestDecodeTracesPostMerge(t *testing.T) { case "suicide": suicides++ - require.Nil(t, r.ActionGas) - require.Nil(t, r.ResultGasUsed) + require.False(t, r.ActionGas.Set) + require.False(t, r.ResultGasUsed.Set) require.Empty(t, r.ActionCallType) case "create": creates++ - require.Nil(t, r.ActionTo) - require.NotNil(t, r.ActionInit) - require.NotNil(t, r.ResultAddress) - require.Nil(t, r.ResultCode) + require.False(t, r.ActionTo.Set) + require.True(t, r.ActionInit.Set) + require.True(t, r.ResultAddress.Set) + require.False(t, r.ResultCode.Set) } } diff --git a/pkg/processor/cryo/ds_transactions.go b/pkg/processor/cryo/ds_transactions.go index 086464e..745630e 100644 --- a/pkg/processor/cryo/ds_transactions.go +++ b/pkg/processor/cryo/ds_transactions.go @@ -27,15 +27,15 @@ type transactionRow struct { TransactionHash string Nonce uint64 FromAddress string - ToAddress *string + ToAddress proto.Nullable[string] Value string - Input *string + Input proto.Nullable[string] GasLimit uint64 GasUsed uint64 GasPrice uint64 TransactionType uint8 - MaxPriorityFeePerGas *uint64 - MaxFeePerGas *uint64 + MaxPriorityFeePerGas proto.Nullable[uint64] + MaxFeePerGas proto.Nullable[uint64] Success bool NInputBytes uint32 NInputZeroBytes uint32 @@ -163,15 +163,15 @@ func (c *transactionColumns) Append(r transactionRow) error { c.TransactionHash.Append(hash) c.Nonce.Append(r.Nonce) c.FromAddress.Append(r.FromAddress) - c.ToAddress.Append(nullable(r.ToAddress)) + c.ToAddress.Append(r.ToAddress) c.Value.Append(value) - c.InputData.Append(nullable(r.Input)) + c.InputData.Append(r.Input) c.GasLimit.Append(r.GasLimit) c.GasUsed.Append(r.GasUsed) c.GasPrice.Append(proto.UInt128{Low: r.GasPrice}) c.TransactionType.Append(r.TransactionType) - c.MaxPriorityFeePerGas.Append(nullable(r.MaxPriorityFeePerGas)) - c.MaxFeePerGas.Append(nullable(r.MaxFeePerGas)) + c.MaxPriorityFeePerGas.Append(r.MaxPriorityFeePerGas) + c.MaxFeePerGas.Append(r.MaxFeePerGas) c.Success.Append(r.Success) c.NInputBytes.Append(r.NInputBytes) c.NInputZeroBytes.Append(r.NInputZeroBytes) diff --git a/pkg/processor/cryo/ds_transactions_test.go b/pkg/processor/cryo/ds_transactions_test.go index 9053713..39374ba 100644 --- a/pkg/processor/cryo/ds_transactions_test.go +++ b/pkg/processor/cryo/ds_transactions_test.go @@ -21,17 +21,17 @@ func TestDecodeTransactions(t *testing.T) { require.Equal(t, "0x5946ef0de28db53ffe00f0fcdb4cc19c9da234819430bf957cc4c15200d8bcac", r.TransactionHash) require.Equal(t, uint64(12963272), r.Nonce) require.Equal(t, "0x28c6c06298d514db089934071355e5743bf21d60", r.FromAddress) - require.Equal(t, "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", *r.ToAddress) + require.Equal(t, "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", r.ToAddress.Value) require.Equal(t, "0", r.Value) require.Equal(t, "0xa9059cbb000000000000000000000000f2abf514dfbaf3323a5cb95bb2e4ab180a5ba3e80000000000000000000000000000000000000000000000000000000129d08a20", - *r.Input) + r.Input.Value) require.Equal(t, uint64(207128), r.GasLimit) require.Equal(t, uint64(62272), r.GasUsed) require.Equal(t, uint64(2239712557), r.GasPrice) require.Equal(t, uint8(2), r.TransactionType) - require.Equal(t, uint64(2000000000), *r.MaxPriorityFeePerGas) - require.Equal(t, uint64(102000000000), *r.MaxFeePerGas) + require.Equal(t, uint64(2000000000), r.MaxPriorityFeePerGas.Value) + require.Equal(t, uint64(102000000000), r.MaxFeePerGas.Value) require.True(t, r.Success) require.Equal(t, uint32(68), r.NInputBytes) require.Equal(t, uint32(39), r.NInputZeroBytes) @@ -39,23 +39,23 @@ func TestDecodeTransactions(t *testing.T) { require.Equal(t, "mainnet", r.MetaNetworkName) // A plain transfer carries no calldata, which cryo emits as "0x". - require.Nil(t, rows[1].Input) + require.False(t, rows[1].Input.Set) // Legacy transactions have no 1559 fee fields at all, which is distinct // from having them set to zero. require.Equal(t, uint8(0), rows[2].TransactionType) - require.Nil(t, rows[2].MaxPriorityFeePerGas) - require.Nil(t, rows[2].MaxFeePerGas) + require.False(t, rows[2].MaxPriorityFeePerGas.Set) + require.False(t, rows[2].MaxFeePerGas.Set) require.Equal(t, uint64(31022955380952), rows[2].GasPrice) missing := 0 for _, row := range rows { - if row.MaxFeePerGas == nil { + if !row.MaxFeePerGas.Set { missing++ } - require.Equal(t, row.MaxFeePerGas == nil, row.MaxPriorityFeePerGas == nil) + require.Equal(t, !row.MaxFeePerGas.Set, !row.MaxPriorityFeePerGas.Set) } require.Equal(t, 18, missing) diff --git a/pkg/processor/cryo/values.go b/pkg/processor/cryo/values.go index 125747d..8abf67c 100644 --- a/pkg/processor/cryo/values.go +++ b/pkg/processor/cryo/values.go @@ -42,15 +42,6 @@ func (p *picker) take(c *decode.Column, err error) *decode.Column { return c } -// nullable converts an optional value into ch-go's nullable representation. -func nullable[T any](v *T) proto.Nullable[T] { - if v == nil { - return proto.Null[T]() - } - - return proto.NewNullable(*v) -} - // hexOrEmpty returns a hex column's value, mapping NULL to "0x" so that a row // cryo could not attribute to a transaction still lands under a stable key. func hexOrEmpty(c *decode.Column, i int) string { @@ -61,34 +52,40 @@ func hexOrEmpty(c *decode.Column, i int) string { return c.Str(i) } -// nullableHex returns nil for a hex column that is either NULL or encodes a -// zero-length byte string, matching the empty-to-NULL guard the target schema -// expects. -func nullableHex(c *decode.Column, i int) *string { +// nullableHex returns the null value for a hex column that is either NULL or +// encodes a zero-length byte string, matching the empty-to-NULL guard the +// target schema expects. +// +// These return ch-go's nullable representation rather than a pointer. A *string +// costs a heap allocation per non-null value and adds an indirection the +// collector has to follow, on rows the buffer holds until the next flush. +// Carrying the value inline removes both. +func nullableHex(c *decode.Column, i int) proto.Nullable[string] { if c.IsNull(i) { - return nil + return proto.Null[string]() } v := c.Str(i) if v == "" || v == emptyHex { - return nil + return proto.Null[string]() } - return &v + return proto.NewNullable(v) } -// nullableStr returns nil for a plain string column that is NULL or empty. -func nullableStr(c *decode.Column, i int) *string { +// nullableStr returns the null value for a plain string column that is NULL or +// empty. +func nullableStr(c *decode.Column, i int) proto.Nullable[string] { if c.IsNull(i) { - return nil + return proto.Null[string]() } v := c.Str(i) if v == "" { - return nil + return proto.Null[string]() } - return &v + return proto.NewNullable(v) } // strOrEmpty returns a plain string column's value, mapping NULL to "". @@ -109,15 +106,13 @@ func uintOrZero(c *decode.Column, i int) uint64 { return c.Int(i) } -// nullableUint returns nil for a NULL integer column. -func nullableUint(c *decode.Column, i int) *uint64 { +// nullableUint returns the null value for a NULL integer column. +func nullableUint(c *decode.Column, i int) proto.Nullable[uint64] { if c.IsNull(i) { - return nil + return proto.Null[uint64]() } - v := c.Int(i) - - return &v + return proto.NewNullable(c.Int(i)) } // boolOrFalse returns a boolean column's value, mapping NULL to false. From 0ae1fb2ba9332bb68c767b5f7901f1fc23220d72 Mon Sep 17 00:00:00 2001 From: Andrew Davis <1709934+Savid@users.noreply.github.com> Date: Mon, 27 Jul 2026 15:40:53 +1000 Subject: [PATCH 4/5] ci: pin golangci-lint and clear the findings a newer release surfaced MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The lint job tracked `version: latest`, so a golangci-lint release turned an unrelated pull request red: master last passed in February against an older binary, and 2.12.2 reports 55 findings in code neither branch touched. Pinning the version makes the job depend on the code under review rather than on whatever shipped that week. Clearing what it found: goconst is dropped. It flagged Prometheus label names, EVM opcode strings and SQL identifiers — `network` 45 times, `CALL` 43 — where naming them adds indirection without safety, and it was already excluded from three paths for that reason. The remaining findings were the same category, so the exclusions go with it rather than growing a fourth. The two G117 directives on Password fields no longer match anything and are removed. The three gosec findings are annotated where they are deliberate: two goroutines detach from a request context on purpose, and one slice index is bounded by the range it iterates. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/golangci-lint.yml | 2 +- .golangci.yml | 10 ---------- internal/testutil/testutil.go | 2 +- pkg/clickhouse/config.go | 2 +- pkg/ethereum/execution/geth/rpc_node.go | 3 +++ pkg/processor/transaction/structlog/memory.go | 1 + pkg/rowbuffer/buffer.go | 4 ++++ 7 files changed, 11 insertions(+), 13 deletions(-) diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index d5017dc..0e4b8bb 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -24,5 +24,5 @@ jobs: - name: golangci-lint uses: golangci/golangci-lint-action@1e7e51e771db61008b38414a730f564565cf7c20 # v9.2.0 with: - version: latest + version: v2.12.2 args: --timeout=10m diff --git a/.golangci.yml b/.golangci.yml index b70bb56..337aff0 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -14,7 +14,6 @@ linters: - durationcheck - errcheck - errname - - goconst - gocyclo - godot - goheader @@ -44,9 +43,6 @@ linters: settings: errcheck: check-type-assertions: true - goconst: - min-len: 2 - min-occurrences: 3 gocritic: enabled-tags: - diagnostic @@ -77,12 +73,6 @@ linters: - gosec - wsl path: _test\.go - - linters: - - goconst - path: cmd/tools/ - - linters: - - goconst - path: pkg/processor/cryo/ paths: - third_party$ - builtin$ diff --git a/internal/testutil/testutil.go b/internal/testutil/testutil.go index ce69206..696c9ea 100644 --- a/internal/testutil/testutil.go +++ b/internal/testutil/testutil.go @@ -79,7 +79,7 @@ type ClickHouseConnection struct { Port int Database string Username string - Password string //nolint:gosec // G117: test config, not a real secret + Password string } // Addr returns the ClickHouse address in host:port format. diff --git a/pkg/clickhouse/config.go b/pkg/clickhouse/config.go index 0e2f674..62410e0 100644 --- a/pkg/clickhouse/config.go +++ b/pkg/clickhouse/config.go @@ -13,7 +13,7 @@ type Config struct { Addr string `yaml:"addr"` // Native protocol address, e.g., "localhost:9000" Database string `yaml:"database"` // Database name, default: "default" Username string `yaml:"username"` - Password string `yaml:"password"` //nolint:gosec // G117: config field, not a hardcoded secret + Password string `yaml:"password"` // Pool settings MaxConns int32 `yaml:"max_conns"` // Maximum connections in pool, default: 10 diff --git a/pkg/ethereum/execution/geth/rpc_node.go b/pkg/ethereum/execution/geth/rpc_node.go index e3c8b3c..5500d40 100644 --- a/pkg/ethereum/execution/geth/rpc_node.go +++ b/pkg/ethereum/execution/geth/rpc_node.go @@ -135,6 +135,9 @@ func (n *RPCNode) Start(ctx context.Context) error { errs := make(chan error, 1) + // Detached from the Start context on purpose: service readiness is awaited + // after Start returns, under its own 30s bound. + //nolint:gosec // G118: see above go func() { wg := sync.WaitGroup{} diff --git a/pkg/processor/transaction/structlog/memory.go b/pkg/processor/transaction/structlog/memory.go index 1a1801b..c19f928 100644 --- a/pkg/processor/transaction/structlog/memory.go +++ b/pkg/processor/transaction/structlog/memory.go @@ -74,6 +74,7 @@ func ComputeMemoryWords(structlogs []execution.StructLog) (wordsBefore, wordsAft } // Resolve pending opcode at current depth: its wordsAfter is our wordsBefore. + //nolint:gosec // G602: i ranges over structlogs, so the index is in bounds wb := memoryWords(structlogs[i].MemorySize) wordsBefore[i] = wb diff --git a/pkg/rowbuffer/buffer.go b/pkg/rowbuffer/buffer.go index f511589..2fadeb5 100644 --- a/pkg/rowbuffer/buffer.go +++ b/pkg/rowbuffer/buffer.go @@ -189,6 +189,10 @@ func (b *Buffer[R]) Submit(ctx context.Context, rows []R) error { // Perform flush outside of lock if triggered by size if shouldFlush { + // Detached deliberately: the batch belongs to every waiter, not to the + // caller that happened to cross the threshold, so it must survive that + // caller's context being cancelled. + //nolint:gosec // G118: see above, the detachment is the point go func() { _ = b.doFlush(context.Background(), flushRows, flushWaiters, "size") }() From 22667a9b3a287bffccb4095197f2773cad0a8d3c Mon Sep 17 00:00:00 2001 From: Andrew Davis <1709934+Savid@users.noreply.github.com> Date: Mon, 27 Jul 2026 16:22:34 +1000 Subject: [PATCH 5/5] fix(cryo): find cryo output whose block numbers are zero-padded MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit cryo pads block numbers in the file name to a width it chooses, so a chain whose heights are shorter than mainnet's writes 01647952_to_01647952 where the request said 1647952. The glob asked for the unpadded form and found nothing, which surfaced as ErrParquetMissing on every block. Every fixture is a mainnet height of exactly eight digits, so nothing caught it. Collecting a hoodi block through the real binary did. It would have failed the whole of mainnet below block 10,000,000 and every testnet. The invocation writes into a directory of its own, so the dataset name alone identifies the file and the rest of the name does not need predicting — which also covers the network prefix, already wildcarded because cryo derives it from the chain id and calls hoodi network_560048. Also stops the fetch tests running in parallel. They write an executable and then exec it, and two goroutines doing that at once makes exec fail with ETXTBSY; it reproduced roughly once in ten runs. The tests that do not build a binary stay parallel. Co-Authored-By: Claude Opus 5 (1M context) --- pkg/processor/cryo/fetch.go | 14 +++++--- pkg/processor/cryo/fetch_test.go | 60 ++++++++++++++------------------ 2 files changed, 36 insertions(+), 38 deletions(-) diff --git a/pkg/processor/cryo/fetch.go b/pkg/processor/cryo/fetch.go index 2a9c978..c301f16 100644 --- a/pkg/processor/cryo/fetch.go +++ b/pkg/processor/cryo/fetch.go @@ -282,11 +282,17 @@ func (f *execFetcher) run(ctx context.Context, g *Group, from, to uint64, dir st return nil } -// findParquet locates the file cryo wrote for one dataset. cryo names output -// _____to_.parquet, and the network prefix is -// whatever cryo resolved the chain id to, so it is matched by wildcard. +// findParquet locates the file cryo wrote for one dataset. +// +// Only the dataset is matched. cryo decorates the rest of the name in ways that +// are not worth predicting: the prefix is whatever it resolved the chain id to, +// and the block numbers are zero-padded to a width it chooses, so a chain whose +// heights are shorter than mainnet's produces 01647952 where the request said +// 1647952. The invocation writes into a directory of its own, so the dataset +// alone identifies the file, and two matches are treated as an error rather +// than guessed between. func findParquet(dir, dataset string, from, to uint64) (string, error) { - pattern := filepath.Join(dir, fmt.Sprintf("*__%s__%d_to_%d.parquet", dataset, from, to)) + pattern := filepath.Join(dir, fmt.Sprintf("*__%s__*.parquet", dataset)) matches, err := filepath.Glob(pattern) if err != nil { diff --git a/pkg/processor/cryo/fetch_test.go b/pkg/processor/cryo/fetch_test.go index 7304c24..9783004 100644 --- a/pkg/processor/cryo/fetch_test.go +++ b/pkg/processor/cryo/fetch_test.go @@ -18,6 +18,10 @@ import ( // fakeCryo writes an executable stub in place of cryo. The body receives cryo's // arguments and is responsible for producing whatever output the test needs. +// +// Callers must not run in parallel: exec'ing a freshly written file races with +// any concurrent fork, which inherits the write descriptor and makes exec fail +// with ETXTBSY. func fakeCryo(t *testing.T, body string) string { t.Helper() @@ -57,8 +61,6 @@ func testGroup(t *testing.T, datatypes ...string) *Group { // endpoint carries basic-auth credentials, and anything in argv is readable // from /proc by every process sharing the PID namespace. func TestFetchPassesEndpointThroughEnvironment(t *testing.T) { - t.Parallel() - binary := fakeCryo(t, ` for arg in "$@"; do case "$arg" in @@ -78,8 +80,6 @@ exit 9 } func TestFetchBuildsArguments(t *testing.T) { - t.Parallel() - argsFile := filepath.Join(t.TempDir(), "args") binary := fakeCryo(t, `printf '%s\n' "$@" > `+argsFile+`; exit 1`) @@ -110,8 +110,6 @@ func TestFetchBuildsArguments(t *testing.T) { } func TestFetchDecodesEveryDatasetInTheGroup(t *testing.T) { - t.Parallel() - // state_diffs is one argument yielding three datasets, so a group naming it // must come back with all three decoded. src, err := filepath.Abs(filepath.Join("testdata", "b23000000")) @@ -142,8 +140,6 @@ done // TestFetchFailsWhenDatasetMissing covers cryo exiting successfully having // written nothing, which must not be mistaken for a block with no rows. func TestFetchFailsWhenDatasetMissing(t *testing.T) { - t.Parallel() - binary := fakeCryo(t, "exit 0") _, err := testFetcher(t, binary).Fetch(t.Context(), testGroup(t, "blocks"), 100, 100) @@ -153,8 +149,6 @@ func TestFetchFailsWhenDatasetMissing(t *testing.T) { } func TestFetchRemovesTempDirOnEveryPath(t *testing.T) { - t.Parallel() - parent := t.TempDir() log := logrus.New() @@ -179,8 +173,6 @@ func TestFetchRemovesTempDirOnEveryPath(t *testing.T) { } func TestFetchKillsHungSubprocess(t *testing.T) { - t.Parallel() - log := logrus.New() log.SetLevel(logrus.ErrorLevel) @@ -202,8 +194,6 @@ func TestFetchKillsHungSubprocess(t *testing.T) { // TestFetchStopsOnContextCancel covers pod drain: an in-flight fetch must // unblock rather than run to its own timeout. func TestFetchStopsOnContextCancel(t *testing.T) { - t.Parallel() - log := logrus.New() log.SetLevel(logrus.ErrorLevel) @@ -226,8 +216,6 @@ func TestFetchStopsOnContextCancel(t *testing.T) { } func TestFetchStderrIsBounded(t *testing.T) { - t.Parallel() - binary := fakeCryo(t, `i=0; while [ $i -lt 4000 ]; do echo "noisy failure line $i"; i=$((i+1)); done >&2; exit 1`) _, err := testFetcher(t, binary).Fetch(t.Context(), testGroup(t, "blocks"), 100, 100) @@ -265,8 +253,6 @@ func TestSweepTempDirsSparesRecentDirectories(t *testing.T) { } func TestVersionReportsBinary(t *testing.T) { - t.Parallel() - version, err := testFetcher(t, fakeCryo(t, `echo "cryo 0.3.2-37-g559b654"`)).Version(t.Context()) require.NoError(t, err) @@ -285,15 +271,11 @@ func TestVersionFailsWhenBinaryMissing(t *testing.T) { // credentials out of reach: they stay out of argv, but cryo echoes its target // back on stderr, and that text is embedded in the error the worker logs. func TestFetchRedactsEndpointFromStderr(t *testing.T) { - t.Parallel() - for name, body := range map[string]string{ "full url": `echo "error sending request for url ($ETH_RPC_URL): connection refused" >&2; exit 1`, "credentials": `echo "authentication failed for user:secret" >&2; exit 1`, } { t.Run(name, func(t *testing.T) { - t.Parallel() - _, err := testFetcher(t, fakeCryo(t, body)).Fetch(t.Context(), testGroup(t, "blocks"), 100, 100) require.Error(t, err) @@ -304,8 +286,6 @@ func TestFetchRedactsEndpointFromStderr(t *testing.T) { } func TestFetchErrorsAreDistinguishable(t *testing.T) { - t.Parallel() - parquet := filepath.Join(t.TempDir(), "blocks.parquet") require.NoError(t, os.WriteFile(parquet, []byte("not parquet at all"), 0o600)) @@ -337,8 +317,6 @@ cp ` + parquet + ` "$out/ethereum__blocks__100_to_100.parquet"`, for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - t.Parallel() - _, err := testFetcher(t, fakeCryo(t, tt.body)).Fetch(t.Context(), testGroup(t, "blocks"), 100, 100) require.Error(t, err) @@ -348,8 +326,6 @@ cp ` + parquet + ` "$out/ethereum__blocks__100_to_100.parquet"`, } func TestFetchErrorIsTimeoutWhenSubprocessOverruns(t *testing.T) { - t.Parallel() - log := logrus.New() log.SetLevel(logrus.ErrorLevel) @@ -368,8 +344,6 @@ func TestFetchErrorIsTimeoutWhenSubprocessOverruns(t *testing.T) { } func TestFetchErrorIsNoEndpointWhenPoolIsUnhealthy(t *testing.T) { - t.Parallel() - log := logrus.New() log.SetLevel(logrus.ErrorLevel) @@ -392,8 +366,6 @@ func TestFetchErrorIsNoEndpointWhenPoolIsUnhealthy(t *testing.T) { // spawning a helper that outlives it would keep an RPC connection open against a // node the worker has already given up on. func TestFetchKillsGrandchildren(t *testing.T) { - t.Parallel() - pidFile := filepath.Join(t.TempDir(), "grandchild.pid") log := logrus.New() @@ -426,8 +398,6 @@ func TestFetchKillsGrandchildren(t *testing.T) { } func TestVersionErrorIncludesStderr(t *testing.T) { - t.Parallel() - // The documented failure is a binary that exists but cannot load a shared // library, which says so only on stderr while the status says only 127. binary := fakeCryo(t, `echo "cryo: error while loading shared libraries: libssl.so.3: cannot open shared object file" >&2; exit 127`) @@ -530,3 +500,25 @@ func indexOf(t *testing.T, args []string, want string) int { return -1 } + +// TestFetchFindsZeroPaddedOutput covers cryo padding block numbers in the file +// name. Mainnet heights are already eight digits so this is invisible there, +// but it breaks every shorter height: the whole of mainnet below block +// 10,000,000, and every testnet. +func TestFetchFindsZeroPaddedOutput(t *testing.T) { + src, err := filepath.Abs(filepath.Join("testdata", "b23000000")) + require.NoError(t, err) + + binary := fakeCryo(t, ` +out="" +while [ $# -gt 0 ]; do + case "$1" in --output-dir) out="$2"; shift 2 ;; *) shift ;; esac +done +cp `+src+`/ethereum__blocks__*.parquet "$out/network_560048__blocks__01647952_to_01647952.parquet" +`) + + tables, err := testFetcher(t, binary).Fetch(t.Context(), testGroup(t, "blocks"), 1647952, 1647952) + + require.NoError(t, err, "a zero-padded, non-ethereum-prefixed name must still be found") + require.Equal(t, 1, tables["blocks"].Rows()) +}