From 7f5e323b990628405b66a06cbc81b63e4a7caf13 Mon Sep 17 00:00:00 2001 From: Kolby Moroz Liebl <31669092+KolbyML@users.noreply.github.com> Date: Thu, 6 Jun 2024 20:00:35 -0600 Subject: [PATCH 1/7] Add EIP: P2P History Network --- EIPS/eip-template.md | 375 ++++++++++++++++++ .../eip-template/maymounkov-kademlia-lncs.pdf | Bin 0 -> 215911 bytes 2 files changed, 375 insertions(+) create mode 100644 EIPS/eip-template.md create mode 100644 assets/eip-template/maymounkov-kademlia-lncs.pdf diff --git a/EIPS/eip-template.md b/EIPS/eip-template.md new file mode 100644 index 00000000000000..3b5a3561c28e01 --- /dev/null +++ b/EIPS/eip-template.md @@ -0,0 +1,375 @@ +--- +eip: +title: P2P History Network +description: Instead of every fullnode storing all the block history headers, transactions, and receipts distribute them amongst all nodes. To maintain the availability but lowering the storage requirements for all. +author: Kolby ML (@KolbyML) +discussions-to: https://ethereum-magicians.org/t/add-eip-p2p-history-network/20231 +status: Draft +type: Standards Track +category: Networking +created: 2024-06-05 +--- + +## Abstract + +An overlay network over Discv5 based off the `Portal Wire Protocol` [EIP-x](https://github.com/ethereum/EIPs/pull/8629). This overlay network is called the Portal History Network and serves headers, block bodies, and receipts. Look ups on the network are done via block hash. All data has strong validity conditions, but proving path will differ based certain fork transitions + +## Motivation + +Historical blocks and receipts currently occupy more than 700GB of disk space (and growing!). Therefore, to validate the chain, users must typically have a 2TB disk. + +With lightweight sync strategies based on the PoS weak subjectivity assumption, which was possible after the merge. Storing all the block history was no longer required to sync and played a centralizing force increasing the storage requirements and sync times to participate in the Ethereum Network. + +Instead of each Ethereum node storing a full copy of the block history, what if this burden was divided amongst all nodes enabling each node to store a fraction of the blocks, but having access to all historical blocks as a collective lowering the cost for everybody, well maintaining the current JSON-RPC interfaces. + +## Specification + +### Overview + +The chain history network is a [Kademlia](../assets/eip-template/maymounkov-kademlia-lncs.pdf) DHT that uses the [Portal Wire Protocol](./portal-wire-protocol.md) to establish an overlay network on top of the [Discovery v5](https://github.com/ethereum/devp2p/blob/56a498ee34ee0fb69ffd33dda026d632af4c4048/discv5/discv5-wire.md) protocol. + +Execution chain history data consists of historical block headers, block bodies (transactions and ommer) and block receipts. + +In addition, the chain history network provides individual epoch accumulators for the full range of pre-merge blocks mined before the transition to proof of stake. + +#### Data + +##### Types + +* Block headers +* Block bodies + * Transactions + * Ommers +* Receipts +* Header epoch accumulators (pre-merge only) + +##### Retrieval + +The network supports the following mechanisms for data retrieval: + +* Block header by block header hash +* Block body by block header hash +* Block receipts by block header hash +* Header epoch accumulator by epoch accumulator hash + +> The presence of the pre-merge header accumulators provides an indirect way to lookup blocks by their number, but is restricted to pre-merge blocks. Retrieval of blocks by their number for post-merge blocks is not intrinsically supported within this network. + +> This sub-protocol does **not** support retrieval of transactions by hash, only the full set of transactions for a given block. See the "Canonical Transaction Index" sub-protocol of the Portal Network for more information on how the portal network implements lookup of transactions by their individual hashes. + + +### Specification + +#### Distance Function + +The history network uses the stock XOR distance metric defined in the portal wire protocol specification. + + +#### Content ID Derivation Function + +The history network uses the SHA256 Content ID derivation function from the portal wire protocol specification. + + +#### Wire Protocol + +The `Portal wire protocol` [EIP-X](./eip-x) is used as wire protocol for the history network. + + +##### Protocol Identifier + +As specified in the [Protocol identifiers](./eip-x#protocol-identifiers) section of the Portal wire protocol, the `protocol` field in the `TALKREQ` message **MUST** contain the value of `0x500B`. + +##### Supported Message Types + +The history network supports the following protocol messages: + +- `Ping` - `Pong` +- `Find Nodes` - `Nodes` +- `Find Content` - `Found Content` +- `Offer` - `Accept` + + +##### `Ping.custom_data` & `Pong.custom_data` + +In the history network the `custom_payload` field of the `Ping` and `Pong` messages is the serialization of an SSZ Container specified as `custom_data`: + +```python +custom_data = Container(data_radius: uint256) +custom_payload = SSZ.serialize(custom_data) +``` + + +#### Routing Table + +The history network uses the standard routing table structure from the Portal Wire Protocol. + +#### Node State + +##### Data Radius + +The history network includes one additional piece of node state that should be tracked. Nodes must track the `data_radius` from the Ping and Pong messages for other nodes in the network. This value is a 256 bit integer and represents the data that a node is "interested" in. We define the following function to determine whether node in the network should be interested in a piece of content. + +```python +interested(node, content) = distance(node.id, content.id) <= node.radius +``` + +A node is expected to maintain `radius` information for each node in its local node table. A node's `radius` value may fluctuate as the contents of its local key-value store change. + +A node should track their own radius value and provide this value in all Ping or Pong messages it sends to other nodes. + +#### Data Types + +##### Constants + +We define the following constants which are used in the various data type definitions. + +```python +MAX_TRANSACTION_LENGTH = 2**24 # ~= 16 million +# Maximum transaction body length is achieved by filling calldata with 0's +# until the block limit of (currently) 30M gas is reached. +# At a gas cost of 4 per 0-byte, that produces a 7.5MB transaction. We roughly +# double that size to a maximum of >16 million for some headroom. Note that +# EIP-4488 would put a roughly 1MB limit on transaction length, effectively. So +# increases are not planned (instead, the opposite). + +MAX_TRANSACTION_COUNT = 2**14 # ~= 16k +# 2**14 simple transactions would use up >340 million gas at 21k gas each. +# Current gas limit tops out at 30 million gas. + +MAX_RECEIPT_LENGTH = 2**27 # ~= 134 million +# Maximum receipt length is logging a bunch of data out, currently at a cost of +# 8 gas per byte. Since that is double the cost of 0 calldata bytes, the +# maximum size is roughly half that of the transaction: 3.75 million bytes. +# But there is more reason for protocol devs to constrain the transaction length, +# and it's not clear what the practical limits for receipts are, so we should add more buffer room. +# Imagine the cost drops by 2x and the block gas limit goes up by 8x. So we add 2**4 = 16x buffer. + +_MAX_HEADER_LENGTH = 2**13 # = 8192 +# Maximum header length is fairly stable at about 500 bytes. It might change at +# the merge, and beyond. Since the length is relatively small, and the future +# of the format is unclear to me, I'm leaving more room for expansion, and +# setting the max at about 8 kilobytes. + +MAX_ENCODED_UNCLES_LENGTH = _MAX_HEADER_LENGTH * 2**4 # = 2**17 ~= 131k +# Maximum number of uncles is currently 2. Using 16 leaves some room for the +# protocol to increase the number of uncles. + +MAX_WITHDRAWAL_COUNT = 16 +# Number sourced from consensus specs +# https://github.com/ethereum/consensus-specs/blob/f7352d18cfb91c58b1addb4ea509aedd6e32165c/presets/mainnet/capella.yaml#L12 +# MAX_WITHDRAWAL_COUNT = MAX_WITHDRAWALS_PER_PAYLOAD + +WITHDRAWAL_LENGTH = 64 +# Withdrawal: index (u64), validator_index (u64), address, amount (u64) +# - 8 + 8 + 20 + 8 = 44 bytes +# - allow extra space for rlp encoding overhead + +SHANGHAI_TIMESTAMP = 1681338455 +# Number sourced from EIP-4895 +``` + +##### Encoding Content Values for Validation + +The encoding choices generally favor easy verification of the data, minimizing decoding. For +example: +- `keccak(encoded-uncles) == header.uncles_hash` +- Each `encoded-transaction` can be inserted into a trie to compare to the + `header.transactions_root` +- Each `encoded-receipt` can be inserted into a trie to compare to the `header.receipts_root` + +Combining all of the block body in RLP, in contrast, would require that a validator loop through +each receipt/transaction and re-rlp-encode it, but only if it is a legacy transaction. + + +##### Block Header + + +```python +# Content types + +PreMergeAccumulatorProof = Vector[Bytes32, 15] + +BlockHeaderProof = Union[None, PreMergeAccumulatorProof] + +BlockHeaderWithProof = Container[ + header: ByteList, # RLP encoded header in SSZ ByteList + proof: BlockHeaderProof +] +``` + +```python +# Content and content key + +block_header_key = Container(block_hash: Bytes32) +selector = 0x00 + +block_header_with_proof = BlockHeaderWithProof(header: rlp.encode(header)), proof: proof) + +content = SSZ.serialize(block_header_with_proof) +content_key = selector + SSZ.serialize(block_header_key) +``` + +> **_Note:_** The `BlockHeaderProof` allows to provide headers without a proof (`None`). +For pre-merge headers, clients SHOULD NOT accept headers without a proof +as there is the `PreMergeAccumulatorProof` solution available. +For post-merge headers, there is currently no proof solution and clients SHOULD +accept headers without a proof. + +##### Block Body + +After the addition of `withdrawals` to the block body in the [EIP-4895](./eip-4895.md), +clients need to support multiple encodings for the block body content type. For the time being, +since a client is required for block body validation it is recommended that clients implement +the following sequence to decode & validate block bodies. +- Receive raw block body content value. +- Fetch respective header from the network. +- Compare header timestamp against `SHANGHAI_TIMESTAMP` to determine what encoding scheme the block body uses. +- Decode the block body using either pre-shanghai or post-shanghai encoding. +- Validate the decoded block body against the roots in the header. + +```python +block_body_key = Container(block_hash: Bytes32) +selector = 0x01 + +all_transactions = SSZList(ssz_transaction, max_length=MAX_TRANSACTION_COUNT) +ssz_transaction = SSZList(encoded_transaction: ByteList, max_length=MAX_TRANSACTION_LENGTH) +encoded_transaction = + if transaction.is_typed: + return transaction.type_byte + rlp.encode(transaction) + else: + return rlp.encode(transaction) +ssz_uncles = SSZList(encoded_uncles: ByteList, max_length=MAX_ENCODED_UNCLES_LENGTH) +encoded_uncles = rlp.encode(list_of_uncle_headers) +all_withdrawals = SSZList(ssz_withdrawal, max_length=MAX_WITHDRAWAL_COUNT) +ssz_withdrawal = SSZList(encoded_withdrawal: ByteList, max_length=MAX_WITHDRAWAL_LENGTH) +encoded_withdrawal = rlp.encode(withdrawal) + +pre-shanghai content = Container(all_transactions: SSZList(...), ssz_uncles: SSZList(...)) +post-shanghai content = Container(all_transactions: SSZList(...), ssz_uncles: SSZList(encoded_uncles), all_withdrawals: SSZList(...)) +content_key = selector + SSZ.serialize(block_body_key) +``` + +Note 1: The type-specific encoding might be different in future transaction types, but this encoding +works for all current transaction types. + +Note 2: The `list_of_uncle_headers` refers to the array of uncle headers [defined in the devp2p spec](https://github.com/ethereum/devp2p/blob/9dbb8dcb1691e86fe848ccf3621adb6a7734e943/caps/eth.md#block-encoding-and-validity). + +##### Receipts + +```python +receipt_key = Container(block_hash: Bytes32) +selector = 0x02 + +ssz_receipt = SSZList(encoded_receipt: ByteList, max_length=MAX_RECEIPT_LENGTH) +encoded_receipt = + if receipt.is_typed: + return type_byte + rlp.encode(receipt) + else: + return rlp.encode(receipt) + +content = SSZList(ssz_receipt, max_length=MAX_TRANSACTION_COUNT) +content_key = selector + SSZ.serialize(receipt_key) +``` + +Note the type-specific encoding might be different in future receipt types, but this encoding works +for all current receipt types. + + +##### Epoch Accumulator + +```python +epoch_accumulator_key = Container(epoch_hash: Bytes32) +selector = 0x03 +epoch_hash = hash_tree_root(epoch_accumulator) + +content = SSZ.serialize(epoch_accumulator) +content_key = selector + SSZ.serialize(epoch_accumulator_key) +``` + + +#### Algorithms + +##### The "Pre Merge Accumulator" + +This data structure is designed to allow nodes in the network to "forget" the deeper history of the chain, while still being able to reliably receive historical headers with a proof that the received header is indeed from the canonical chain (as opposed to an uncle mined at the same block height). This data structure is only used for pre-merge blocks. + +The accumulator is defined as an [SSZ](https://github.com/ethereum/consensus-specs/blob/ef434e87165e9a4c82a99f54ffd4974ae113f732/ssz/simple-serialize.md) data structure with the following schema: + +```python +EPOCH_SIZE = 8192 # blocks +MAX_HISTORICAL_EPOCHS = 131072 # 2**17 + +# An individual record for a historical header. +HeaderRecord = Container[block_hash: bytes32, total_difficulty: uint256] + +# The records of the headers from within a single epoch +EpochAccumulator = List[HeaderRecord, max_length=EPOCH_SIZE] + +PreMergeAccumulator = Container[ + historical_epochs: List[bytes32, max_length=MAX_HISTORICAL_EPOCHS], + current_epoch: EpochAccumulator, +] +``` + +The algorithm for building the accumulator is as follows. + + +```python +def update_accumulator(accumulator: PreMergeAccumulator, new_block_header: BlockHeader) -> None: + # get the previous total difficulty + if len(accumulator.current_epoch) == 0: + # genesis + last_total_difficulty = 0 + else: + last_total_difficulty = accumulator.current_epoch[-1].total_difficulty + + # check if the epoch accumulator is full. + if len(accumulator.current_epoch) == EPOCH_SIZE: + # compute the final hash for this epoch + epoch_hash = hash_tree_root(accumulator.current_epoch) + # append the hash for this epoch to the list of historical epochs + accumulator.historical_epochs.append(epoch_hash) + # initialize a new empty epoch + accumulator.current_epoch = [] + + # construct the concise record for the new header and add it to the current epoch. + header_record = HeaderRecord(new_block_header.hash, last_total_difficulty + new_block_header.difficulty) + accumulator.current_epoch.append(header_record) +``` + +The network provides no mechanism for acquiring the *master* version of this accumulator. Clients are encouraged to solve this however they choose, with the suggestion that they include a frozen copy of the accumulator at the point of the merge within their client code, and provide a mechanism for users to override this value if they so choose. + +##### PreMergeAccumulatorProof + +The `PreMergeAccumulatorProof` is a Merkle proof as specified in the +[SSZ Merke proofs specification](https://github.com/ethereum/consensus-specs/blob/51343f54fe73eaffa550d78414faed6e63df5b62/ssz/merkle-proofs.md#merkle-multiproofs). + +It is a Merkle proof for the `BlockHeader`'s block hash on the relevant +`EpochAccumulator` object. The selected `EpochAccumulator` must be the one where +the `BlockHeader`'s block hash is part of. The `GeneralizedIndex` selected must +match the leave of the `EpochAccumulator` merkle tree which holds the +`BlockHeader`'s block hash. + +An `PreMergeAccumulatorProof` for a specific `BlockHeader` can be used to verify that +this `BlockHeader` is part of the canonical chain. This is done by verifying the +Merkle proof with the `BlockHeader`'s block hash as leave and the +`EpochAccumulator` digest as root. This digest is available in the +`PreMergeAccumulator`. + +As the `PreMergeAccumulator` only accounts for blocks pre-merge, this proof can +only be used to verify blocks pre-merge. + +## Rationale + +Look up are optimized for minimal lookup and single content per lookup. Models for doing bulk downloads of block history are being researched, for the majority of post [EIP-4444](./eip-4444.md) optimizing for faster single block look up times is considered more important. + +For pre-merge headers the embedded accumulator of [EIP-7643](./eip-7643.md) will be used, for merge till capella `HistoricalRootsBlockProof` the frozen accumulator in the beacon state will be used, but can be embedded in the client as well. For Capella onwards minus 8192 blocks `HistoricalSummariesBlockProof` the accumulator in the beacon state will be used. Well the EL client should already be aware of the latest 8192 blocks. A EIP to spec out these post merge validation path may be made + +TBD + +## Security Considerations + +Needs discussion. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). diff --git a/assets/eip-template/maymounkov-kademlia-lncs.pdf b/assets/eip-template/maymounkov-kademlia-lncs.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c7ce00cc61e2e354032095eb253ddd824c8f4069 GIT binary patch literal 215911 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 z zT17x4(wa>Gr?mqVR`zc$7jyHf9OjSoz9Wm0MmzSy9>{VXVMz&KcL+Omz< z00h}ez`Z6c87fmGawYon+GyR`b1a;9G7#iiX@F#Oj6PrXo`u1>n{Rq1w1neohq$Db zbM)SC*j;w}_5+*lOQFD@cl6%n&(EvwZRqa}SG&7+^ev~wKF-gQ_uR{054P-uJE}Y0 zPgU3Y3>YV;_A#NSA-;KOYANmbvJNR07~TCiNRXU7MOE(eTpC^3Sl*2_Q2EU&EJt8ozeg~3sDF3j{qb?l>n3dTiw{BWd59SMfh=SdkQM z(U*UE!XV@0Z;7P~b1Df6aP8^^9%0T6)7d9#VFga)Mh#kgw=xwd1!ixF@Z|;JMmq%I zOK{g?QjdaaU&nDS0F(ISDqWa{Dau)}nY4PY*IO1De^vGS?hNH20!my45Bp4`NSEKl z7IZ~WXu)7X*&i0KW`@xcZaa(EGP=4PnbJ8I4$QR* z&VVTv8W1@wL9u=mcE~N<0g4=v_dD>3IsZl??Hbi}p*;a#H*zpzxV~>!Y=0GbFNRP` zFO@QV=cF5pnImFBsa=eGu98e`blWe>1le(U++YpGGy9!nx{a42w73}Fjxj^hwp!MX zf!N;zpI0fLLVXAoIOPkH%oDfl z`wo6PHo;Ya8#Z}VGI=Id1_C~dkjg-Ol>!6QKU7e@h(Y6%77qOi}EmuSfah1LLQ*0)h8Wdan~0FD#{D*iZ)dK~gC zy%N93HkPZB!iA#EMrBQAyL`WuBAQF7C&*TmfOV*0y@XY>HaYCD7-CSIOr`U$sQ?v? z;#r~QRsTqhKI^<9hp?ztlR2^LhKb32?u|2-YJ4k7@hBDRIkl?kFIU`I6?w2wfOTj& z_q^ebLo@h@s;dpW)>B|Ktb;JNGd

uTyFn98vNo;py1he9+EjY`AG=#AXlp_fh5Y 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 z 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 Date: Fri, 7 Jun 2024 02:34:09 -0600 Subject: [PATCH 2/7] 7719: fix --- EIPS/{eip-template.md => eip-7719.md} | 44 +++++++----------- .../maymounkov-kademlia-lncs.pdf | Bin 2 files changed, 18 insertions(+), 26 deletions(-) rename EIPS/{eip-template.md => eip-7719.md} (92%) rename assets/{eip-template => eip-7719}/maymounkov-kademlia-lncs.pdf (100%) diff --git a/EIPS/eip-template.md b/EIPS/eip-7719.md similarity index 92% rename from EIPS/eip-template.md rename to EIPS/eip-7719.md index 3b5a3561c28e01..3a6a317d5a67d6 100644 --- a/EIPS/eip-template.md +++ b/EIPS/eip-7719.md @@ -1,9 +1,9 @@ --- -eip: +eip: 7719 title: P2P History Network -description: Instead of every fullnode storing all the block history headers, transactions, and receipts distribute them amongst all nodes. To maintain the availability but lowering the storage requirements for all. +description: Instead of each node storing a full copy of historical history divide the responsibility amongst the nodes on the network. author: Kolby ML (@KolbyML) -discussions-to: https://ethereum-magicians.org/t/add-eip-p2p-history-network/20231 +discussions-to: https://ethereum-magicians.org/t/eip-7719-p2p-history-network/20231 status: Draft type: Standards Track category: Networking @@ -26,7 +26,7 @@ Instead of each Ethereum node storing a full copy of the block history, what if ### Overview -The chain history network is a [Kademlia](../assets/eip-template/maymounkov-kademlia-lncs.pdf) DHT that uses the [Portal Wire Protocol](./portal-wire-protocol.md) to establish an overlay network on top of the [Discovery v5](https://github.com/ethereum/devp2p/blob/56a498ee34ee0fb69ffd33dda026d632af4c4048/discv5/discv5-wire.md) protocol. +The chain history network is a [Kademlia](../assets/eip-7719/maymounkov-kademlia-lncs.pdf) DHT that uses the [Portal Wire Protocol](./portal-wire-protocol.md) to establish an overlay network on top of the [Discovery v5](https://github.com/ethereum/devp2p/blob/56a498ee34ee0fb69ffd33dda026d632af4c4048/discv5/discv5-wire.md) protocol. Execution chain history data consists of historical block headers, block bodies (transactions and ommer) and block receipts. @@ -36,47 +36,43 @@ In addition, the chain history network provides individual epoch accumulators fo ##### Types -* Block headers -* Block bodies - * Transactions - * Ommers -* Receipts -* Header epoch accumulators (pre-merge only) +- Block headers +- Block bodies + - Transactions + - Ommers +- Receipts +- Header epoch accumulators (pre-merge only) ##### Retrieval The network supports the following mechanisms for data retrieval: -* Block header by block header hash -* Block body by block header hash -* Block receipts by block header hash -* Header epoch accumulator by epoch accumulator hash +- Block header by block header hash +- Block body by block header hash +- Block receipts by block header hash +- Header epoch accumulator by epoch accumulator hash > The presence of the pre-merge header accumulators provides an indirect way to lookup blocks by their number, but is restricted to pre-merge blocks. Retrieval of blocks by their number for post-merge blocks is not intrinsically supported within this network. > This sub-protocol does **not** support retrieval of transactions by hash, only the full set of transactions for a given block. See the "Canonical Transaction Index" sub-protocol of the Portal Network for more information on how the portal network implements lookup of transactions by their individual hashes. - ### Specification #### Distance Function The history network uses the stock XOR distance metric defined in the portal wire protocol specification. - #### Content ID Derivation Function The history network uses the SHA256 Content ID derivation function from the portal wire protocol specification. - #### Wire Protocol -The `Portal wire protocol` [EIP-X](./eip-x) is used as wire protocol for the history network. - +The `Portal wire protocol` [EIP-7718](./eip-7718) is used as wire protocol for the history network. ##### Protocol Identifier -As specified in the [Protocol identifiers](./eip-x#protocol-identifiers) section of the Portal wire protocol, the `protocol` field in the `TALKREQ` message **MUST** contain the value of `0x500B`. +As specified in the [Protocol identifiers](./eip-7718#protocol-identifiers) section of the Portal wire protocol, the `protocol` field in the `TALKREQ` message **MUST** contain the value of `0x500B`. ##### Supported Message Types @@ -87,7 +83,6 @@ The history network supports the following protocol messages: - `Find Content` - `Found Content` - `Offer` - `Accept` - ##### `Ping.custom_data` & `Pong.custom_data` In the history network the `custom_payload` field of the `Ping` and `Pong` messages is the serialization of an SSZ Container specified as `custom_data`: @@ -97,7 +92,6 @@ custom_data = Container(data_radius: uint256) custom_payload = SSZ.serialize(custom_data) ``` - #### Routing Table The history network uses the standard routing table structure from the Portal Wire Protocol. @@ -171,6 +165,7 @@ SHANGHAI_TIMESTAMP = 1681338455 The encoding choices generally favor easy verification of the data, minimizing decoding. For example: + - `keccak(encoded-uncles) == header.uncles_hash` - Each `encoded-transaction` can be inserted into a trie to compare to the `header.transactions_root` @@ -179,10 +174,8 @@ example: Combining all of the block body in RLP, in contrast, would require that a validator loop through each receipt/transaction and re-rlp-encode it, but only if it is a legacy transaction. - ##### Block Header - ```python # Content types @@ -220,6 +213,7 @@ After the addition of `withdrawals` to the block body in the [EIP-4895](./eip-48 clients need to support multiple encodings for the block body content type. For the time being, since a client is required for block body validation it is recommended that clients implement the following sequence to decode & validate block bodies. + - Receive raw block body content value. - Fetch respective header from the network. - Compare header timestamp against `SHANGHAI_TIMESTAMP` to determine what encoding scheme the block body uses. @@ -273,7 +267,6 @@ content_key = selector + SSZ.serialize(receipt_key) Note the type-specific encoding might be different in future receipt types, but this encoding works for all current receipt types. - ##### Epoch Accumulator ```python @@ -285,7 +278,6 @@ content = SSZ.serialize(epoch_accumulator) content_key = selector + SSZ.serialize(epoch_accumulator_key) ``` - #### Algorithms ##### The "Pre Merge Accumulator" diff --git a/assets/eip-template/maymounkov-kademlia-lncs.pdf b/assets/eip-7719/maymounkov-kademlia-lncs.pdf similarity index 100% rename from assets/eip-template/maymounkov-kademlia-lncs.pdf rename to assets/eip-7719/maymounkov-kademlia-lncs.pdf From b79aa6777356bb7104d042ae99feecfdfcb2027c Mon Sep 17 00:00:00 2001 From: Kolby Moroz Liebl <31669092+KolbyML@users.noreply.github.com> Date: Fri, 7 Jun 2024 02:41:07 -0600 Subject: [PATCH 3/7] 7719: fix --- EIPS/eip-7719.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/EIPS/eip-7719.md b/EIPS/eip-7719.md index 3a6a317d5a67d6..51538d5218b34d 100644 --- a/EIPS/eip-7719.md +++ b/EIPS/eip-7719.md @@ -12,7 +12,7 @@ created: 2024-06-05 ## Abstract -An overlay network over Discv5 based off the `Portal Wire Protocol` [EIP-x](https://github.com/ethereum/EIPs/pull/8629). This overlay network is called the Portal History Network and serves headers, block bodies, and receipts. Look ups on the network are done via block hash. All data has strong validity conditions, but proving path will differ based certain fork transitions +An overlay network over Discv5 based off the `Portal Wire Protocol` [EIP-7718](./eip-7718.md). This overlay network is called the Portal History Network and serves headers, block bodies, and receipts. Look ups on the network are done via block hash. All data has strong validity conditions, but proving path will differ based certain fork transitions ## Motivation @@ -52,7 +52,9 @@ The network supports the following mechanisms for data retrieval: - Block receipts by block header hash - Header epoch accumulator by epoch accumulator hash -> The presence of the pre-merge header accumulators provides an indirect way to lookup blocks by their number, but is restricted to pre-merge blocks. Retrieval of blocks by their number for post-merge blocks is not intrinsically supported within this network. +> The presence of the pre-merge header accumulators provides an indirect way to lookup blocks by their number, but is restricted to pre-merge blocks. Retrieval of blocks by their number for post-merge blocks is not intrinsically supported within this network. + +
> This sub-protocol does **not** support retrieval of transactions by hash, only the full set of transactions for a given block. See the "Canonical Transaction Index" sub-protocol of the Portal Network for more information on how the portal network implements lookup of transactions by their individual hashes. @@ -68,7 +70,7 @@ The history network uses the SHA256 Content ID derivation function from the port #### Wire Protocol -The `Portal wire protocol` [EIP-7718](./eip-7718) is used as wire protocol for the history network. +The `Portal wire protocol` [EIP-7718](./eip-7718.md) is used as wire protocol for the history network. ##### Protocol Identifier @@ -328,7 +330,7 @@ def update_accumulator(accumulator: PreMergeAccumulator, new_block_header: Block accumulator.current_epoch.append(header_record) ``` -The network provides no mechanism for acquiring the *master* version of this accumulator. Clients are encouraged to solve this however they choose, with the suggestion that they include a frozen copy of the accumulator at the point of the merge within their client code, and provide a mechanism for users to override this value if they so choose. +The network provides no mechanism for acquiring the _master_ version of this accumulator. Clients are encouraged to solve this however they choose, with the suggestion that they include a frozen copy of the accumulator at the point of the merge within their client code, and provide a mechanism for users to override this value if they so choose. ##### PreMergeAccumulatorProof From d9d372f7fb1e4c7915a61aff454c5b6184b43faa Mon Sep 17 00:00:00 2001 From: Kolby Moroz Liebl <31669092+KolbyML@users.noreply.github.com> Date: Fri, 7 Jun 2024 02:45:04 -0600 Subject: [PATCH 4/7] 7719: fix --- EIPS/eip-7719.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/EIPS/eip-7719.md b/EIPS/eip-7719.md index 51538d5218b34d..b3ae58b86831fe 100644 --- a/EIPS/eip-7719.md +++ b/EIPS/eip-7719.md @@ -8,6 +8,7 @@ status: Draft type: Standards Track category: Networking created: 2024-06-05 +requires: 7643, 7718 --- ## Abstract @@ -53,9 +54,7 @@ The network supports the following mechanisms for data retrieval: - Header epoch accumulator by epoch accumulator hash > The presence of the pre-merge header accumulators provides an indirect way to lookup blocks by their number, but is restricted to pre-merge blocks. Retrieval of blocks by their number for post-merge blocks is not intrinsically supported within this network. - -
- +> > This sub-protocol does **not** support retrieval of transactions by hash, only the full set of transactions for a given block. See the "Canonical Transaction Index" sub-protocol of the Portal Network for more information on how the portal network implements lookup of transactions by their individual hashes. ### Specification From f5d8af8e318264eebb77e80b503765775549c426 Mon Sep 17 00:00:00 2001 From: Kolby Moroz Liebl <31669092+KolbyML@users.noreply.github.com> Date: Fri, 7 Jun 2024 12:31:29 -0600 Subject: [PATCH 5/7] 7719: fix --- EIPS/eip-7719.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-7719.md b/EIPS/eip-7719.md index b3ae58b86831fe..ce5161a0dcacb9 100644 --- a/EIPS/eip-7719.md +++ b/EIPS/eip-7719.md @@ -21,7 +21,7 @@ Historical blocks and receipts currently occupy more than 700GB of disk space (a With lightweight sync strategies based on the PoS weak subjectivity assumption, which was possible after the merge. Storing all the block history was no longer required to sync and played a centralizing force increasing the storage requirements and sync times to participate in the Ethereum Network. -Instead of each Ethereum node storing a full copy of the block history, what if this burden was divided amongst all nodes enabling each node to store a fraction of the blocks, but having access to all historical blocks as a collective lowering the cost for everybody, well maintaining the current JSON-RPC interfaces. +Instead of each Ethereum node storing a full copy of the block history, what if this burden was divided amongst all nodes enabling each node to store a fraction of the blocks, but having access to all historical blocks as a collective lowering the cost for everybody, while maintaining the current JSON-RPC interfaces. ## Specification From befbfd2d814caaa159f3b35ee6050e1f40384c60 Mon Sep 17 00:00:00 2001 From: Kolby Moroz Liebl <31669092+KolbyML@users.noreply.github.com> Date: Fri, 26 Jul 2024 15:27:09 -0600 Subject: [PATCH 6/7] 7719: fix --- EIPS/eip-7719.md | 340 +------------------ assets/eip-7719/maymounkov-kademlia-lncs.pdf | Bin 215911 -> 0 bytes 2 files changed, 8 insertions(+), 332 deletions(-) delete mode 100644 assets/eip-7719/maymounkov-kademlia-lncs.pdf diff --git a/EIPS/eip-7719.md b/EIPS/eip-7719.md index ce5161a0dcacb9..895e68eade53b6 100644 --- a/EIPS/eip-7719.md +++ b/EIPS/eip-7719.md @@ -13,355 +13,31 @@ requires: 7643, 7718 ## Abstract -An overlay network over Discv5 based off the `Portal Wire Protocol` [EIP-7718](./eip-7718.md). This overlay network is called the Portal History Network and serves headers, block bodies, and receipts. Look ups on the network are done via block hash. All data has strong validity conditions, but proving path will differ based certain fork transitions +An overlay network over Discv5 based off the _Portal Wire Protocol_ [EIP-7718](./eip-7718.md). This overlay network is called the Portal History Network and serves headers, block bodies, and receipts. Look ups on the network are done via block hash. All data has strong validity conditions, but proving path will differ based certain fork transitions. ## Motivation Historical blocks and receipts currently occupy more than 700GB of disk space (and growing!). Therefore, to validate the chain, users must typically have a 2TB disk. -With lightweight sync strategies based on the PoS weak subjectivity assumption, which was possible after the merge. Storing all the block history was no longer required to sync and played a centralizing force increasing the storage requirements and sync times to participate in the Ethereum Network. +With lightweight sync strategies based on the PoS weak subjectivity assumption, which was possible after the merge, storing all the block history was no longer required to sync and played a centralizing force increasing the storage requirements and sync times to participate in the Ethereum Network. -Instead of each Ethereum node storing a full copy of the block history, what if this burden was divided amongst all nodes enabling each node to store a fraction of the blocks, but having access to all historical blocks as a collective lowering the cost for everybody, while maintaining the current JSON-RPC interfaces. +Instead of each Ethereum node storing a full copy of the block history, imagine that this burden was divided amongst all nodes enabling each node to store a fraction of the blocks, but having access to all historical blocks as a collective lowering the cost for everybody, while maintaining the current JSON-RPC interfaces. ## Specification -### Overview - -The chain history network is a [Kademlia](../assets/eip-7719/maymounkov-kademlia-lncs.pdf) DHT that uses the [Portal Wire Protocol](./portal-wire-protocol.md) to establish an overlay network on top of the [Discovery v5](https://github.com/ethereum/devp2p/blob/56a498ee34ee0fb69ffd33dda026d632af4c4048/discv5/discv5-wire.md) protocol. - -Execution chain history data consists of historical block headers, block bodies (transactions and ommer) and block receipts. - -In addition, the chain history network provides individual epoch accumulators for the full range of pre-merge blocks mined before the transition to proof of stake. - -#### Data - -##### Types - -- Block headers -- Block bodies - - Transactions - - Ommers -- Receipts -- Header epoch accumulators (pre-merge only) - -##### Retrieval - -The network supports the following mechanisms for data retrieval: - -- Block header by block header hash -- Block body by block header hash -- Block receipts by block header hash -- Header epoch accumulator by epoch accumulator hash - -> The presence of the pre-merge header accumulators provides an indirect way to lookup blocks by their number, but is restricted to pre-merge blocks. Retrieval of blocks by their number for post-merge blocks is not intrinsically supported within this network. -> -> This sub-protocol does **not** support retrieval of transactions by hash, only the full set of transactions for a given block. See the "Canonical Transaction Index" sub-protocol of the Portal Network for more information on how the portal network implements lookup of transactions by their individual hashes. - -### Specification - -#### Distance Function - -The history network uses the stock XOR distance metric defined in the portal wire protocol specification. - -#### Content ID Derivation Function - -The history network uses the SHA256 Content ID derivation function from the portal wire protocol specification. - -#### Wire Protocol - -The `Portal wire protocol` [EIP-7718](./eip-7718.md) is used as wire protocol for the history network. - -##### Protocol Identifier - -As specified in the [Protocol identifiers](./eip-7718#protocol-identifiers) section of the Portal wire protocol, the `protocol` field in the `TALKREQ` message **MUST** contain the value of `0x500B`. - -##### Supported Message Types - -The history network supports the following protocol messages: - -- `Ping` - `Pong` -- `Find Nodes` - `Nodes` -- `Find Content` - `Found Content` -- `Offer` - `Accept` - -##### `Ping.custom_data` & `Pong.custom_data` - -In the history network the `custom_payload` field of the `Ping` and `Pong` messages is the serialization of an SSZ Container specified as `custom_data`: - -```python -custom_data = Container(data_radius: uint256) -custom_payload = SSZ.serialize(custom_data) -``` - -#### Routing Table - -The history network uses the standard routing table structure from the Portal Wire Protocol. - -#### Node State - -##### Data Radius - -The history network includes one additional piece of node state that should be tracked. Nodes must track the `data_radius` from the Ping and Pong messages for other nodes in the network. This value is a 256 bit integer and represents the data that a node is "interested" in. We define the following function to determine whether node in the network should be interested in a piece of content. - -```python -interested(node, content) = distance(node.id, content.id) <= node.radius -``` - -A node is expected to maintain `radius` information for each node in its local node table. A node's `radius` value may fluctuate as the contents of its local key-value store change. - -A node should track their own radius value and provide this value in all Ping or Pong messages it sends to other nodes. - -#### Data Types - -##### Constants - -We define the following constants which are used in the various data type definitions. - -```python -MAX_TRANSACTION_LENGTH = 2**24 # ~= 16 million -# Maximum transaction body length is achieved by filling calldata with 0's -# until the block limit of (currently) 30M gas is reached. -# At a gas cost of 4 per 0-byte, that produces a 7.5MB transaction. We roughly -# double that size to a maximum of >16 million for some headroom. Note that -# EIP-4488 would put a roughly 1MB limit on transaction length, effectively. So -# increases are not planned (instead, the opposite). - -MAX_TRANSACTION_COUNT = 2**14 # ~= 16k -# 2**14 simple transactions would use up >340 million gas at 21k gas each. -# Current gas limit tops out at 30 million gas. - -MAX_RECEIPT_LENGTH = 2**27 # ~= 134 million -# Maximum receipt length is logging a bunch of data out, currently at a cost of -# 8 gas per byte. Since that is double the cost of 0 calldata bytes, the -# maximum size is roughly half that of the transaction: 3.75 million bytes. -# But there is more reason for protocol devs to constrain the transaction length, -# and it's not clear what the practical limits for receipts are, so we should add more buffer room. -# Imagine the cost drops by 2x and the block gas limit goes up by 8x. So we add 2**4 = 16x buffer. - -_MAX_HEADER_LENGTH = 2**13 # = 8192 -# Maximum header length is fairly stable at about 500 bytes. It might change at -# the merge, and beyond. Since the length is relatively small, and the future -# of the format is unclear to me, I'm leaving more room for expansion, and -# setting the max at about 8 kilobytes. - -MAX_ENCODED_UNCLES_LENGTH = _MAX_HEADER_LENGTH * 2**4 # = 2**17 ~= 131k -# Maximum number of uncles is currently 2. Using 16 leaves some room for the -# protocol to increase the number of uncles. - -MAX_WITHDRAWAL_COUNT = 16 -# Number sourced from consensus specs -# https://github.com/ethereum/consensus-specs/blob/f7352d18cfb91c58b1addb4ea509aedd6e32165c/presets/mainnet/capella.yaml#L12 -# MAX_WITHDRAWAL_COUNT = MAX_WITHDRAWALS_PER_PAYLOAD - -WITHDRAWAL_LENGTH = 64 -# Withdrawal: index (u64), validator_index (u64), address, amount (u64) -# - 8 + 8 + 20 + 8 = 44 bytes -# - allow extra space for rlp encoding overhead - -SHANGHAI_TIMESTAMP = 1681338455 -# Number sourced from EIP-4895 -``` - -##### Encoding Content Values for Validation - -The encoding choices generally favor easy verification of the data, minimizing decoding. For -example: - -- `keccak(encoded-uncles) == header.uncles_hash` -- Each `encoded-transaction` can be inserted into a trie to compare to the - `header.transactions_root` -- Each `encoded-receipt` can be inserted into a trie to compare to the `header.receipts_root` - -Combining all of the block body in RLP, in contrast, would require that a validator loop through -each receipt/transaction and re-rlp-encode it, but only if it is a legacy transaction. - -##### Block Header - -```python -# Content types - -PreMergeAccumulatorProof = Vector[Bytes32, 15] - -BlockHeaderProof = Union[None, PreMergeAccumulatorProof] - -BlockHeaderWithProof = Container[ - header: ByteList, # RLP encoded header in SSZ ByteList - proof: BlockHeaderProof -] -``` - -```python -# Content and content key - -block_header_key = Container(block_hash: Bytes32) -selector = 0x00 - -block_header_with_proof = BlockHeaderWithProof(header: rlp.encode(header)), proof: proof) - -content = SSZ.serialize(block_header_with_proof) -content_key = selector + SSZ.serialize(block_header_key) -``` - -> **_Note:_** The `BlockHeaderProof` allows to provide headers without a proof (`None`). -For pre-merge headers, clients SHOULD NOT accept headers without a proof -as there is the `PreMergeAccumulatorProof` solution available. -For post-merge headers, there is currently no proof solution and clients SHOULD -accept headers without a proof. - -##### Block Body - -After the addition of `withdrawals` to the block body in the [EIP-4895](./eip-4895.md), -clients need to support multiple encodings for the block body content type. For the time being, -since a client is required for block body validation it is recommended that clients implement -the following sequence to decode & validate block bodies. - -- Receive raw block body content value. -- Fetch respective header from the network. -- Compare header timestamp against `SHANGHAI_TIMESTAMP` to determine what encoding scheme the block body uses. -- Decode the block body using either pre-shanghai or post-shanghai encoding. -- Validate the decoded block body against the roots in the header. - -```python -block_body_key = Container(block_hash: Bytes32) -selector = 0x01 - -all_transactions = SSZList(ssz_transaction, max_length=MAX_TRANSACTION_COUNT) -ssz_transaction = SSZList(encoded_transaction: ByteList, max_length=MAX_TRANSACTION_LENGTH) -encoded_transaction = - if transaction.is_typed: - return transaction.type_byte + rlp.encode(transaction) - else: - return rlp.encode(transaction) -ssz_uncles = SSZList(encoded_uncles: ByteList, max_length=MAX_ENCODED_UNCLES_LENGTH) -encoded_uncles = rlp.encode(list_of_uncle_headers) -all_withdrawals = SSZList(ssz_withdrawal, max_length=MAX_WITHDRAWAL_COUNT) -ssz_withdrawal = SSZList(encoded_withdrawal: ByteList, max_length=MAX_WITHDRAWAL_LENGTH) -encoded_withdrawal = rlp.encode(withdrawal) - -pre-shanghai content = Container(all_transactions: SSZList(...), ssz_uncles: SSZList(...)) -post-shanghai content = Container(all_transactions: SSZList(...), ssz_uncles: SSZList(encoded_uncles), all_withdrawals: SSZList(...)) -content_key = selector + SSZ.serialize(block_body_key) -``` - -Note 1: The type-specific encoding might be different in future transaction types, but this encoding -works for all current transaction types. - -Note 2: The `list_of_uncle_headers` refers to the array of uncle headers [defined in the devp2p spec](https://github.com/ethereum/devp2p/blob/9dbb8dcb1691e86fe848ccf3621adb6a7734e943/caps/eth.md#block-encoding-and-validity). - -##### Receipts - -```python -receipt_key = Container(block_hash: Bytes32) -selector = 0x02 - -ssz_receipt = SSZList(encoded_receipt: ByteList, max_length=MAX_RECEIPT_LENGTH) -encoded_receipt = - if receipt.is_typed: - return type_byte + rlp.encode(receipt) - else: - return rlp.encode(receipt) - -content = SSZList(ssz_receipt, max_length=MAX_TRANSACTION_COUNT) -content_key = selector + SSZ.serialize(receipt_key) -``` - -Note the type-specific encoding might be different in future receipt types, but this encoding works -for all current receipt types. - -##### Epoch Accumulator - -```python -epoch_accumulator_key = Container(epoch_hash: Bytes32) -selector = 0x03 -epoch_hash = hash_tree_root(epoch_accumulator) - -content = SSZ.serialize(epoch_accumulator) -content_key = selector + SSZ.serialize(epoch_accumulator_key) -``` - -#### Algorithms - -##### The "Pre Merge Accumulator" - -This data structure is designed to allow nodes in the network to "forget" the deeper history of the chain, while still being able to reliably receive historical headers with a proof that the received header is indeed from the canonical chain (as opposed to an uncle mined at the same block height). This data structure is only used for pre-merge blocks. - -The accumulator is defined as an [SSZ](https://github.com/ethereum/consensus-specs/blob/ef434e87165e9a4c82a99f54ffd4974ae113f732/ssz/simple-serialize.md) data structure with the following schema: - -```python -EPOCH_SIZE = 8192 # blocks -MAX_HISTORICAL_EPOCHS = 131072 # 2**17 - -# An individual record for a historical header. -HeaderRecord = Container[block_hash: bytes32, total_difficulty: uint256] - -# The records of the headers from within a single epoch -EpochAccumulator = List[HeaderRecord, max_length=EPOCH_SIZE] - -PreMergeAccumulator = Container[ - historical_epochs: List[bytes32, max_length=MAX_HISTORICAL_EPOCHS], - current_epoch: EpochAccumulator, -] -``` - -The algorithm for building the accumulator is as follows. - - -```python -def update_accumulator(accumulator: PreMergeAccumulator, new_block_header: BlockHeader) -> None: - # get the previous total difficulty - if len(accumulator.current_epoch) == 0: - # genesis - last_total_difficulty = 0 - else: - last_total_difficulty = accumulator.current_epoch[-1].total_difficulty - - # check if the epoch accumulator is full. - if len(accumulator.current_epoch) == EPOCH_SIZE: - # compute the final hash for this epoch - epoch_hash = hash_tree_root(accumulator.current_epoch) - # append the hash for this epoch to the list of historical epochs - accumulator.historical_epochs.append(epoch_hash) - # initialize a new empty epoch - accumulator.current_epoch = [] - - # construct the concise record for the new header and add it to the current epoch. - header_record = HeaderRecord(new_block_header.hash, last_total_difficulty + new_block_header.difficulty) - accumulator.current_epoch.append(header_record) -``` - -The network provides no mechanism for acquiring the _master_ version of this accumulator. Clients are encouraged to solve this however they choose, with the suggestion that they include a frozen copy of the accumulator at the point of the merge within their client code, and provide a mechanism for users to override this value if they so choose. - -##### PreMergeAccumulatorProof - -The `PreMergeAccumulatorProof` is a Merkle proof as specified in the -[SSZ Merke proofs specification](https://github.com/ethereum/consensus-specs/blob/51343f54fe73eaffa550d78414faed6e63df5b62/ssz/merkle-proofs.md#merkle-multiproofs). - -It is a Merkle proof for the `BlockHeader`'s block hash on the relevant -`EpochAccumulator` object. The selected `EpochAccumulator` must be the one where -the `BlockHeader`'s block hash is part of. The `GeneralizedIndex` selected must -match the leave of the `EpochAccumulator` merkle tree which holds the -`BlockHeader`'s block hash. - -An `PreMergeAccumulatorProof` for a specific `BlockHeader` can be used to verify that -this `BlockHeader` is part of the canonical chain. This is done by verifying the -Merkle proof with the `BlockHeader`'s block hash as leave and the -`EpochAccumulator` digest as root. This digest is available in the -`PreMergeAccumulator`. - -As the `PreMergeAccumulator` only accounts for blocks pre-merge, this proof can -only be used to verify blocks pre-merge. +Specification of the _Portal History Spec_ can be found at [`/history-network.md`](https://github.com/ethereum/portal-network-specs/blob/882a254b9f4ab73129bc7c8e74a272a72e900069/history/history-network.md). ## Rationale -Look up are optimized for minimal lookup and single content per lookup. Models for doing bulk downloads of block history are being researched, for the majority of post [EIP-4444](./eip-4444.md) optimizing for faster single block look up times is considered more important. +Block history look up's are optimized for contacting the least amount of nodes and to obtain single pieces of history. Models for doing bulk downloads of block history are being researched, for the majority of post [EIP-4444](./eip-4444.md) optimizing for faster single block look up times is considered more important. -For pre-merge headers the embedded accumulator of [EIP-7643](./eip-7643.md) will be used, for merge till capella `HistoricalRootsBlockProof` the frozen accumulator in the beacon state will be used, but can be embedded in the client as well. For Capella onwards minus 8192 blocks `HistoricalSummariesBlockProof` the accumulator in the beacon state will be used. Well the EL client should already be aware of the latest 8192 blocks. A EIP to spec out these post merge validation path may be made +Validation for block headers will use different proving paths depending which block range they are from. For pre-merge headers the embedded accumulator of [EIP-7643](./eip-7643.md) is used for header validation, for merge till capella _HistoricalRootsBlockProof_ the frozen accumulator in the beacon state is used, but can be embedded in the client as well. For Capella onwards minus 8192 blocks _HistoricalSummariesBlockProof_ the accumulator in the beacon state is used. The latest 8192 blocks are already contained by the EL and CL node which can be used to validate that the headers are valid. -TBD +TBD ## Security Considerations -Needs discussion. +Needs discussion. ## Copyright diff --git a/assets/eip-7719/maymounkov-kademlia-lncs.pdf b/assets/eip-7719/maymounkov-kademlia-lncs.pdf deleted file mode 100644 index c7ce00cc61e2e354032095eb253ddd824c8f4069..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 215911 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 z zT17x4(wa>Gr?mqVR`zc$7jyHf9OjSoz9Wm0MmzSy9>{VXVMz&KcL+Omz< z00h}ez`Z6c87fmGawYon+GyR`b1a;9G7#iiX@F#Oj6PrXo`u1>n{Rq1w1neohq$Db zbM)SC*j;w}_5+*lOQFD@cl6%n&(EvwZRqa}SG&7+^ev~wKF-gQ_uR{054P-uJE}Y0 zPgU3Y3>YV;_A#NSA-;KOYANmbvJNR07~TCiNRXU7MOE(eTpC^3Sl*2_Q2EU&EJt8ozeg~3sDF3j{qb?l>n3dTiw{BWd59SMfh=SdkQM z(U*UE!XV@0Z;7P~b1Df6aP8^^9%0T6)7d9#VFga)Mh#kgw=xwd1!ixF@Z|;JMmq%I zOK{g?QjdaaU&nDS0F(ISDqWa{Dau)}nY4PY*IO1De^vGS?hNH20!my45Bp4`NSEKl z7IZ~WXu)7X*&i0KW`@xcZaa(EGP=4PnbJ8I4$QR* z&VVTv8W1@wL9u=mcE~N<0g4=v_dD>3IsZl??Hbi}p*;a#H*zpzxV~>!Y=0GbFNRP` zFO@QV=cF5pnImFBsa=eGu98e`blWe>1le(U++YpGGy9!nx{a42w73}Fjxj^hwp!MX zf!N;zpI0fLLVXAoIOPkH%oDfl z`wo6PHo;Ya8#Z}VGI=Id1_C~dkjg-Ol>!6QKU7e@h(Y6%77qOi}EmuSfah1LLQ*0)h8Wdan~0FD#{D*iZ)dK~gC zy%N93HkPZB!iA#EMrBQAyL`WuBAQF7C&*TmfOV*0y@XY>HaYCD7-CSIOr`U$sQ?v? z;#r~QRsTqhKI^<9hp?ztlR2^LhKb32?u|2-YJ4k7@hBDRIkl?kFIU`I6?w2wfOTj& z_q^ebLo@h@s;dpW)>B|Ktb;JNGd

uTyFn98vNo;py1he9+EjY`AG=#AXlp_fh5Y zEm0i^x~5l%GJrDA5yQGxvw$)MG2WI_1M4&F4g`I)jsp(Dj{;$Zo-! zJ%$@?lb|S)p z&S?))AZ60)1mz(ks**F&I$PM4j*$FeQxM6vq2BpVwmYj6<**bI%ne4gYv$Tkb` zm#vOsSCbY{RQD(xl(yG$#Y(0k^Q9vA42-kM&EB+C-MA)yCfchtqiY3{bs{V@Ha~Kc z1Zx+0o_15Co7IXV-O;DTD->5f2T_w}M5kwb-0DtkUt7M*X zTrjoLTnHbHI*n?|OAxhBz~ic2$W=_SJ&w~rySwv8uR_EYpq7zfCVpP|ai&cuaorDt zFxzM~x1t=%BP8B4r$xNX{K3D(7n>Ja!wmHt>7?_xs29Qk z5v@C(OXv0%^Gq#t4GCxUSro|pd?Hd#Zz_O&IMG>SlNxUhFLoHlZ1KjD)QT*S9<3)S zJgJ5TwL3W_ilt4rtDww9@Cgs=jf+S*aacG(s$5r3lbB`^>Lm`N^N1Ki$!TB*^!Jt- z5?D07dew8mq;5_B?EhNXm2R%tv>12-U^Tw-U+vn(ckk&sm~K|-56{t57a`|j-fcRX zK^ZATFQ_5;Df9=x#I} zs$xItZZ`$BcpTOaqBska8+9_y2%PTs2dHS~V*fv|-+zIzf1y7XM%I7BJ7$Le0o#P3 zm^hgK@9>V9;UC8T|16D};a^zs|8<&n?YrA*Hs**97ey4?ViO3PV9fX}QcpvfdAR-4 zHKb217t#=EtUWG3MiUWXV{Qq8SpNjnaRk`jXu|pG8KiSe+iv_0=mA<;<)^y+oWsnV zNUG}t_fySnc({d2IpdaM7nzWjRT&)*HzaeC=v#aO)L8!AP6 z{&b>R+a~bmC`+Bc*Xxoh+s`SbZt6Uz%EdwZ+A$VM*|hxR{RnM zu;pHY(|+zF!KwUa-Q#1aYQDt(isyw5IR>}0<^GZMcCItykYlTfa^-p*w~D<^DduK9 z`^Awr)zSk;NE#+Q*uChMI25ruCa=bKdKqaW_W>gdoBgGp|B@ok zxZPaYVzcS962Z3O&3vh0|595S3vO5C#r2LlGgCi2`PFsJd$DPxPWa-J>uq^1TtD1r z*j8sZQ`q4Ujth9~sBO}FJ65Ci^Gfvq?6KTOkIWu#l@^^VvF71tX?NFOw5_3e$5Yw5 zyB4G+_&Z~hi%76!y6>DtSDpg=!+h|`*|K3OsYgAtp?TiJ$S8M~7*{tJ&vW{P3vA4qIBHpvvqLovN8(;~NwuMcgMYeo=ykJU( zm641wj8h2|kC8OD4eT6SdOzcWP@a6xl;I1p?G%}CtL^?Fp{>KIdJ#&;i4z2@v;$RK zoD(ir_MD~xa=J<(AgfmK+*5l1D^c6fD5d4Qf$gU16M1uCz=_GrIB*bR+ zBz3XWopX-#3q@r9yx9Kq*(7j}`CwNmGfzIWu%askE+qmAalD-T4yotz@IhzYiv=vP zL(mG6Ymm%tVR1JD8?Njpmk80k+?w}(nU0605(*yhnu45`*BE_5^J5T(iKKFdP|v7BNp8!tgPFHJ4sYbD=*b2<=oTW zQhy?p8Qrr{P~Ozu3Zjx({VGWF+wPFpAt1ZQx747qVfRL~oKSw z*6sN~U0fI&vk|$v5zWb(9>y@^A4MI;)~}GM_Ov;(K#a*aJ5uoUPdjIw^;bLUROREx zL%HUBb)AaT{9u$q39=y*I6;7s6C^>P@rBHmH$vSBme|rwcf9*FWK%u zpK={zu-FHcU5GYk9ZevPN8${lK4SDGN#$GF{NPmG^g4KDdLu7cLcAEpE-WEUaXu}f zNGMk|p-F<@Ewe`i9&!z{RfCB0T(V6Q>AJ)a8@l0K+x4fPHg=`k|FklCF?9v(3vz;t@-HpP&*$c+n4JPK{Y& zPAO|V&~Vl-FCty0;t;>8UdN9FSwUt>(ow@m+c#*bd82k$`)`ik_?gjT=4&N)k)G==6EjPkmhl_02`c$vFz6s&lB<~U7 z;Wg6^c3q4m=}s}F)iRhJl43bXf+V**EK(N31eyrVhvlKJ;!_EqJI*#IQwcqP!i7|m zKNOZ!8C=O1%|5M~*rmyf#Y4@MhijfFA?cq~;DE(V%PVc_jX}An=R6~8pRr$oF-DKE z8_2Qu3@*BLxXN+HZZU#(0Kk?AZXp-r*VvrjE;#U`_CP$!AxHrSC=V)wmf z&hcCD*#l0z1ePCbuRWUPXJud09@H-;CNenb%^Yj+NFumOxwE4cU*pW$YkbQkxO(D2 zR>rP*6hb)3Fptddp4Cjbaf5?gai*;5-lNc1d-S<*Wl4avCQHDG3Lj4jJxpee>KiW* z%^9x{{Yp0MWFp#K>5TlNeMz;bsLtDnTk%PF)$}4=Tzf;7K~(74uo@V*cL1tr9j!br zvgdY8Vr12jkR&izFc?_i@eR|sINBE&I&g4H;1+Z5KmNH6kzqbM0hwXzoJ|>Y)g0Q? zgfTly#UJhbOVMGJ5qOq=&MpzKJ>v-AhD<%AmDD}tg*45?RK;qdvO*+@Rrf(|#Ya+j zJ&BaobWSFSB@c?Pb+a+q5%7W&#HgG+`uMps?-3ks*Zp3PA_LOlDIefcf&C z4Mmo^*r7jlbP2-Gbi6;shjZngVglU)xg%Or; z;se6hIqp;JYpcT7c9;=@HzoLNC>LAIuJG7uaLLH?iOu60((Y65m|+c`3C=bzm)KE# zVb@5pq;P)gxtgUu`WHvBrF@|FYQph5UqIv*Wi0U-&v1<8zJQy7sQhRHUORmN*nzFB zefx}fiRP8mHg>z*GU(W)_$lR~rJjDHg{!^C^Z6fKYjcQ7>)k6GBmD`sm7aawy2l7C z`QM&2hXX$s8snH68k3NUSVvD3zK57%44*H=0=WUq!9x393Zy;)tB1-3$dIjqHQM-0zywWZUOiZ0}g4=(Ga!fsvi=UGdH-ixB6 zrby*WJdURNH|86j*JWZ}rGErZEc^!F z$g5e^eaU)DSY+MSyGi6I^D=vN}u3k)8xaRvP zv&G(?)Ec)h5=E-BbWXI*(IMN-`FOipCzP||KTqZeWXT@Dbm4=>P@{oGekt{l;kN^{ z1k&SYnpCK%C}JLdf2nTY?ctiO_l|Y`BKfa(IK*}T-rai(xth4yHlX+52;Dxi#S zgiw?fg!}iUISAr4*4jc#&mf`7S@8x;a`R(sgU!eYGGiN2*j_n<#(dVu#{v;OK@M{nu@CRbT2wg8jb@Ep@LA+An>rQ9Y zfV1RsW8}_G$L&hT)tioGX5{Yv=LU}6%vR}rKp}A!@88CGFj_N|Lu92dqYH;dp|CM# z1tB+q8Ic7CN;nv~dGD)~L&!~INo~A`)wcT(c~C1kk#!8#*Fb8Kb@aMZlX*rNXB<(! zY?G)f%$Nm_RJPU{IosbpLZNb1u$66-y#Cjux=}rL2g?Df&yMPq8QrKj#Hv(^PyXA{ zF7hLHf4yX(hO)43NTcm|FLI}ba?7lsu|SzMC!lW%i0b)>d4|m(*8Pf!Q60gNH}JyN zsi2rW*RLRQ>NNE3`2M$p%HIxal%yJ`Z5f7|%VzXIi0bzFIYuAx%aJLU#SR!xtX9=}Yf z>2e`rS@1>}lLz;H@f1~0Dtx?0GN|Ozdr$};TXrtjZ0=)B8tg+}QsFfDt_=Ql=Z213 z*aOC+nhqagH!7hw6#z9Cp{>fEHNFC44o!5_eg%g4KVj_#nt4f0R3JpYd~#Lp@b7h+ z_=JH;o${BnZ(Ftbb%nJ-`U&W?b{a#MV0ooMz5)yUd0~VI#-gWT#tK^C# z4I|9A&+N_z+*?$41IC4jYtX;096EEYv)&Hsp&ZTC^3gk(_F^%XM_;Ah5mQSM-BvAm z{_kSTJw%fmLF3X=p{P-fiiL`ZCqsqE&8y&`LQ$bYQ4=jI793)s4k;E;6f_Naz~kyN zAZnjkC>Aix3j&BJq?|=4110psB#KsiCq0B4*L^{m> zx4c>{{u5k4lEeF-c}49FSAz*)sEUXSgoeq@9}QOrrcW3UAZ4ewIHvr=EGW*gKl@u^ z{>ukoTo3^el}NaXR0v!NWRO)F?4T)sO^a|vWpULh`CF5mH)NgS{Lp`G8?_@+aP5U{t6YA2F+I1(rTx zR*DyO{^pbMf5gkf%Zwf|3AhSXl4r~V>L)M$$rx&)zv=WhBK}?}3Y>fP-~JYaf8160 zH$cGzK$crSVOU&1J8(EzxDhnwQlh(8 z{l9Z?E%KEXa&X)K`uFR{d|0B}CgV<#$3IawqWw=qB19{(kgBwl3y@5eW8_9Tij6p^ zXq;}Xjthm#PRXwS6BhqdTxs1G3__KbN@>FvEW){FcHyrjU|g1*jw|CrqFQj-Nd?8* zZoghBc0m8`BnKQ{5~7!0hDLAda$_%(6=oyD(8#{t$0&`zJ6(S!D+WAH3%b)n&(K-OlLoAUboK6>fw3{CvzPr{mXJ>Fsnq#`Wuy&-&l1y0{=_Qg`u|bSdu#Ew|El>~Ki&MiNg(I*zP%>r|LN%a`u(S6n*G`{ zd+y5DXlZ{ptqzU3SNhL6p9<#2E407)?Y8=@yWh#lcbC3PQ#?_c;jZ`bRR{UcPEu^x zXYTahF+b9B$(Xj7f5r%3|Jd^!YyEtD@xOIg`=3nt=cygUdY|RI_CC~lpHZ_+<(SLg z6pZbB&3d!rc|G9sJZJe;_kFx4-S!>g!O*7oww#hT0qrF82oTeoL9~vz=e~tM*jjDk zQ&hdG^H*8lH%_~-k1+NzrM!&gd1UuB(`sCM+w(i#+KLaX=6+5(zvlYi>}Z>FXN1`v z!zSwARsFop@cO(Ic)wB8cdpcZUF~ewy+FS# ze)=C#(oDZ`;&O+6cvOsf*LDBQ&h2{K#`M+0=jfh1IH73MCjHi^u&%1E9NkaMH$=(1`IlT1Rm_gSFP@p7Nh zS2-!np4UJ{GtPM{fz(-KC#JTf(^cyE_;t5j*br{%o&NJOS5DzAaKLGM&Y?kWt0W3FTwB!E{AowTeh5mvz0k+OikBY(`2`IklBUK3o_h+EOx8soUwHip7~!5@?=n2s%-sGBu<6 zSFKimdnwNlpF}Ksn)x8AB>0pCj5$dR&zU_*A}Nt)aYj~#vPdhYEwEoG^Gj(!$ZW-3 zW0^w2mXs51sY1L2y))D`i}ItC)tDG@c*K)x2MgRasN8xQXQVk4_@c!z$4~xYliV9aU79( zPhQ3}<^jkoh#}~~Q3!Dmz0ovJT=8S38}!$VHzg%FXUMPS*oPyj5stj&-qIN2ME4%w26=--YGQ1%Mw;;H6>-Z=Mbt7LHN`np|fU3&wU zSl+VMGsfs8B%g@fQ-qr}9FHhtEm;k)8J>GbZDjf|coJvZ9Ew^{5^$*6M)zp(wK2ah zj&h3SoyATvl%0fH)Zy44cXa>>L1jtwn(p$G5z;Bs$#3!V>zs%rxS-?ZnV-2dqa-Bt zI7-x_M5D<_&SOZ-8bTl&L?SbmWDuJqwOnUKa*-0{My456xYwDlxx{~p*(49D)gncB zgdbrqD4El9&#g1!Q6wVb*)o-KB+N-22xPsob<|jR`M%7J6dP0X5o)tE>kX$FWvA!ztq5O!$pnc@4q{?m~YdtB$}~KgK*1fh1%9`SV^T}X4pP@f$9mU5=4g3x;3dM zv|FLfP|QB;!T0kSi+YjZb-yL7=tWP$YlP6jW|Nq!UeA5hN!xkvtOo5w$3sIAbB1e?NS5 zMSK~`lck=RIg6;7Ji@_!v7cyDLPpX8rA~jx^aZ)O7 z7M&%-WGs$6OrtWDMb@NnpIQ9@Z>qI0uI&=c1kEf!O#sqt@k~^XWsRYY;N{IP%Uq*K znM0#$`&v`}!|Ilz%!=R}@X$i)9BZkpig_LuR?fg1+Ff`;cZ;oBFO*uj;!*HK;W{CPBBB7|;wX zn$$d-w@?7C)G+j_J-2oL_?8@ItQegUpMl!h#kl7t^ z?L$JMlAH1JZl%QD!{{L;3RoBl0BAt!_wV%^5+O-X6yA;OM=Zo<$3<=6 zXF*V+SHNk2=lP(f?yWmcLhjU<0@}B_?i{|(G`Hu6liROpE zhC^1{fv=_yuxzv&WBB4kQdc1d!?juVuogTbb+UsMv)x9dXR;ipO%%zCMSY>JQJ{Di zaV&`%jtyGJtXy+H_M_h4zX)n6gA(p7)D$dziu#yu$|AO zx~QV-rYz|3y=PsQBHrd%PW?UhX*q3#_d6%#)0@hlxMpn9_XUGnn;5WPeYkib;7aVl zHk1P1ISo-;Fyx%*{Z?uPv}^M^#JLj`{+`>U9cq_#Y2b_gkSjAVriWlrwKsG`(u8i3 zy;W{vTRkcU@SPvYBb&u*8~LF-p^-Ab__TnouXDJir5v;}5>tl1n@ z1#TCiyaa9Sv{EJ=NBA1jbdPO+5f9?88v8b5uU0|0CQ`=z%8{_)M2m|!@(zxByY`xd z0x`8I6$2yeJI)AMUkD|oh~la>s6uCLl`i7RwTt^09ln6Q`rSy$FT)uj#I3mUR^Ux6 zR|(E+2Z)eQdsK+m%it-Q;rGJ2H8|#c{qUXGj@tc@bu|-t}5v{jIfEBd;wf21H5p$9}1ZK;xMiob;AAC`y##nh@AdkATXFjQE zg3tv~{rg%9s?9#=+Mq9632WT&-<)PXq+}I@v!nuR@?==O5#&|wXC4hINbRJ*fWLeC zwZw`ECwRk#p;J4jt+*suR8H?wCTte(R1Qk{ml6Z6zcL;!n)M&Czy>7I+ zHI5{2ly0~iL{qp6<#h~6-4iS#rBTfp8#NYDMvd2WgL88Xg*vp4cnCFqB17p1n4q}@ z|8BW??G*NS)ft?a0Rrus^*8k^YOT2m)CA}4O&_|uW~lDtgO*S*BWYOdT1FIN=10)w zwSs%rVYTvm^hPTe6VbHRuA(|M%kVyXt2Yrtrq{X@>(|#l>~`1PVaeYb{UVz?xQ!mPC(o5E~k#$+W*vr6K`ou=NznP?w4Ptv^uh@ zTAV!*$%z~&#e4AZy0gmOd*0N3_&4?r%b#^=ykiRMz%%1O9Bl!c_wl-^z14P)G=CSL znaq$Hp^221;PD;ix@imWb-L~LR03-ml{l{*adr5N<9Y9RO1FlFvRXDf=V@m~#bub; zOb|2hnYD>fsTK#uHG#IiYjE#FucIg)Yd}W4jsk{OePgSo|AE3uN;Eo-s0`(n7=+Q$ zsSdV%*b!{1qWM%4%Yeo&$2{vCp&J#Mu^FxO;7Tj`i7p*Fr{`T2VRb``v~#1H6{g3A z8pjLr6E1{qOz?&LN#%7Lns;)4;0B3CXV@E`YwWfkeH`9Y2RYNB_)f(_M+5B-*wis{ z64Cdct-fQQoSeR<$JTXPeB1mu&RTp^CbL{i{rW!k)zSp&-i@Quok=B-u$}?E$`1GL zHu$HI>Q&pWNrcz|DV03Zs5iW|?vb+x+wqXM-nA^6;N<%2czi`~By8l=2(EciZ#sgT ziox{efcEeg;pQYSWvw*j(w#KQG3Pj~R4j9rA$4NVwDT9hTlWWwzgCgr^d$ z{C&t{Y#|>UXL?!Ty}oM4G%&vGF?OCHmYiDmhDVCi;RA~%7W+4YiUmB@bWSuOjF`H{ z#8;ZL!iOM8hjYS*5Smd6WO-$q%4G44zULeozce=R-p27j&1$}~|2ZU3IEj&zp zSc-5WM#`BZ~=#?P8?zMn)+veH59@S>c1vZwCblYsB>M4R>?(cuLt z&uu28E#$#REG>>Ccy&$jWSa~em1B1XKR<7a`-ox+Vk)Xz(*eJf$OpPH*Nwe7Yw zl;ALxwH&&?Oh+21)CwvN7%U!uN5S$wsM(BSv`4e&mK+~JXhJWnYKOb@v3 z73&2P#1}Onl;wG%*2Gc$!dh(=o2xdeWNSQPT!-w!)uK{%v744qtSt*`uD97cNYAjf zRhzw+R%?#0+h}6PCI=iCQ)D_HqOHX&<~BCSD%rOb^4TF?XM2k>GG~G z&CY$24e_)lSdLXAP)20R%D5k`&2_LI`7Q(|hjd;9-fne05bkl!+qxz9}{*H)JQ^pRZrM3X9t zchrzr6)Y%zKBdt{cIM=sFJ&MGz>xWBRO~$>RhZb2sp&x_0s8n>Kh58yN3p(?t#dE92y(&r}A?micS)-N#O(9%)V zFN$hAJ2nHbXrZXNR2Gf&E+}h-6^SB>nuovUK7SlYt~=?Id#*oy2W904!^~DVp?Q80 zG!m6{pZKqsO~Bdapo;W*1&8Ms8kz_`S( zYbK18^@u?~2>mlfit>Mm&CKyFb76wfay2tU3kP>Q%*OgWl-hn*zo{)0+ab8dAEs{! zHFcE)sC$}On?Sp`fUEOG_sPyQ%ss1ydY!>(+5Q(}Zvk96uVsxU=`d4=JIu_?%#0_@ zOdaN=!_3SbW@ct)W@ctiUcP(hpF8zW)qAh%xQ=Z}mL=`wvb6TvW=Zo)ao)VytTXzj zVC8v>3e^a68`+&CW9Id53*Ft6IngH>9I**X>&*1fz4(F@**hD6YM8kv=p|o~u6bdF zMj!(xUB;8v%J%|i64jb)ThDJjmc2UMBYV<-VD#QTn4SOL*$J$cq2a?Ym|fZHFdgr7 zRcvfu2~XM%s5bEduT47?FrQhUSv(J@_Dh-4%R$LN)S)2em$DOF{_a1v`;nr+1e)MR z%xCC6(Ix5W>TQ!ebcPx*qoX?N3tE!QsD#xV6aG72s&WO!fEp{Ccy_;-5~ixe$@E*MXiutQa=A zDwuwsT|93`g~p;;aib`&BRuOs{qD5zJ4M&_C)hP~xzQw3j~PV-x$iS(jJSCP>~vs^ z3RRPvQu@_@_u5gZW};_z+fjqaIhU~EljUG2G$$_#$kM+vADXEId@qtPU)8g!9Tm{a zKNvabK%c>iEVn237A~3`6Lnc5>=BgQHR+7Ewm|eY@ zDZXXsCjUQ{w(^gq)j9slU~C)+F{!=rC)nWVVh>~jP$ZaCH0!?4L5fB9>_PxC4`d$p zGsP_}n7PQ}hCHU0y>9ZY7F=i!a(e3HHQDLZ9#8Q1!Oa5i$~APDXD6XW6E>AoqVCZq z#}aij8fq{BJKWZ){nINu9b%;aK$Wq@OhMfoGYZX1U))?kcrq$c6X0l- zXUq;jW%vi!u_NDL3zwz^pn`LTlu*>ZddJQF3CUoUYM+s7Asr~~1qWJHz zL`!7`{KE?sf*W1d|7Y*=_n^x!4aWd7ivYKfqN&Oc%8Qs3y5<4Oi-pdcc zz#^h5XcLYmykFk(eGkh2)Vrt=vrvg_?Cnp(``_3XAw9CCDo*BD*?~S~C`Ft9QUAw%bzK=JnWlJ% zNK>9}N^QI;M<=Ntne{h^mi$zj3I?90JOWYG@IDwyjR?`quXzo5XS!tjf3;P)Pgpm;iCKHD^U7B^3YnG1YN&x&L6$^ zpK&BOzuEl1+d{J6XeJ;mn@*x*n)&npYW%kk*#D^DyP@y~7NTR<_4wa?J2CS&XZCOP z-#H$dzBz;c)wBP=F!Fo!R=#2KoqJMBKW8>BGugliymnKnrcg9Y{a+~g@4-IZG5;dIjUDpu^= z;b}W6I3>-38-=Q=K%*PoKpNI}eLMfvR8>sZ8OC-MjtmuZ-7YGc4UNQ*1&yQ23Q2!I zSr^rU$clPcTNQX)m8f*^+oFJk3Q2k!UGNbwNh0%R9fE0-Cc4NzjXQ;=wPZg95O3do zkcQSI8g8?uDi($`za(cJ_N$s<7*d09!Ec5W7)f{vRR*e(h7!?(i883jfSocZulGAY zadUBX=uF11pV*Tg?>FBhBVn{;pddeS;s%+Y@9JN|g71H`^-~;QppRx*hO_Fo0c z;RzkTD_|IcA>B=;mEyXyZA8#WdMwucXxQvLgvtNh`6dXySkyEbhpH(@H$B#(H(JXi z%De_|hW{3G?i_jfEmwIfbPoSQsPcW=)O{7q?c&+x``rgFXZbbs)i3w9?uMxlJx|kM zbVSFrG%W=ARz&tv`Sy6*@$pz%@lBk(W`8m1Zrq86&e^_Cj(Ld8q|#gos2E*!98iS? zr8sTcj&GH1VNo%>uGE3#Mf2!ET^3IFzSBPwEXZ|HoK4RKYXnzuf3!ub2Mu-IV0&YR zp{f3?RghvKuF!jb=GAF(v)yA)fAHa{2f3j0{(LhXP@Gym)t*YpAbM!r?WH>)%l100 zq5E7^ihcp^bW+Xaz*F^ocHzBC$?6hk99bf01kSR9V7P~{exmAfxe7eH>wB(PqZBGi z!=(l?i?*eSf1{hEqT6~pbH94IOZ{pR%BU2<^Od`j)&0S+XAc8@P%^|z3~uwe=j!OU zrQ+}mM`zPXnphp5a2FL!H?mO?REc*OZ6iXT!oHJ8HxLHmBem)UWvQ;?ur6vAdVm!0e$Y0>%}+_w;=_BND(&`_d3Tq7 z4C?i!mi;k#^tEv0v&HkqmzjaV;)7xSxN!raL(s90M74G2i4#JR5WOKle&auUW+xSS zG4%$0GW9Ih=~D;mf+-`_m2F85IINm;d+o`5Kd6eEzYc#ry7GQ&gq~fHoPjxYiuXd` za4V~Cy!L4QsBU+i%=K=-8z7^byj`%_M2xq4^6_BocInz#c{JtYpvub%o*bll zwEd94GZE{0yP87JY@x$_h&8EN2#^z9dglqw%=(?eaWq|ra?djbV=DEYVEJ(t3~1eI zZQ;>;i4Y6zxvXtpL$w2j_Rb{frcI|iM~bja65sfu>+ z=)BNt#`WMpOdZ?ypn%YRe^!q80g{}PeY{V!QLogx!G z>v!_MwdUUk?B56f$kY|TQ<#{czqfx5{-aW7V);MP_Wy+XVq*DsiT@Avd4tA;686zA zXFww2Unm*rJsbR-fLc97hBjo#1__jvws7U{YBL&tV#E>`^F-y6J=~NV*bIzc7PP-qzI7(*t*x z%Q4FcoA6i07u^A1)7EW^tfp(>vn}B+lLas->=`$uZczgFD<3bvyPA#|!c(-eU<&bG zi?Qe)aOf-*ZNuDYW}n2iqO0Wt@w>Nw`>)#!Il{cX?$v@>ZAPynxLEWO!~minzCm z*4$xX7c$c{SozmWx)*0^YC-^1nXT4U()ug@<@dh7xmwz&nuxR(yUR;WD{#uoLZ&<;V z?RwNyNAaz{FxnHG?@z29tZmhym08p+x*EWJVnR%1_hiB6^WPr+BM^o!po@WW64W2umN0 zo~+Pg_gar^F>dN#nCZdX8!igU?FtURaVPg17HO1F%Kq*y0e&e9ExSpF@4z0;!&Y(y zRY;0jkZIBmG#&5Wx3$_laP577de|CQEJG15uArg}qkb=5GvK__4`u)*G|7-n*nB<6_wZRo_ZJema`O+Wi$sDRE^i@b@LC z?nodB=;dsw-y8PN-NAo^sb0x;?q=t}xIlHzT5O`cX1M)?sCL-hIp0({H2oYWypXw! zZ-M9X$U94N@!3Yv@WFll(JWn(MxSEbo0m7))7d#e$f{ufdHMdbOTEHLOMcX~Lfu=& zM8Xaiv)C4v00&tuf|H){G*Q00g>D(@pGZhYyQj1E0WU9& zVgx%5)EJy8_dx8$5r1OOL9Yj=4noJS*LZMzY{j8#@?1UBGn5CSK44QRgHTg zD>0=sq$3K{4ErFE@cCH4?2k_*8poS<(q1w2c*~!D-hVJ_A#2)W{|p^Ip2{I61$z#W zRkBM7j>{$cnouEQScTpOFNaOHxvGTXZ>? zz~^Lo0@LrO8(cOxPXCKOB>`hJ2 z>3%u6HXlkNATTW2p_BG8qM*7_e$vyDfZ^!&JbQkURwABA72NfPCvA}9~~JU@r2-=NgLk zTHUf9Not>n&y&=Z^_`RLG8%!y7A{C|h-;SPVA-wVs@DW^<~VSLSV5K+zKT(D3&PPy-#sA4@Ow)x9U5@`dR+7rXG2Hb7OUt2fT5$W zIn)TwUcO!yE168*r+_?^a$^Wc^1PDXAZ{G+jE!C1pPv5h{o5?BGQH|3zZln^RQ|t; z_=sir$Z^Ixh$Y970<03PuJ~)rLyQ8ZY#|!b4>^dRo5wTm2sZvQN%(Y0PrT&LgiDYS z+Jh-s?B#17gDX(dhkAjA-ENu+##BRgd4(k$G~l07d*kfF@w5IfFtABb;C(@(M*Xs? zsa2-hI(vqqNNr{}U}Zl+^@AoXYBAMVYBJ@Is#TfV)&d$Nxnku(&daEAjhAj0DT%AM zwQ>?qAPm$25%&;t_;>IFhMro#f6m*GF(g~-u#M1Ka`dzjR_LwIA7)0H*l{83@#3Nz zdw7*J@(OYPM91k*=J#A&_9Diq)tV+)*f{Gx-yv$tVSG?NNErjO&fwtF7j&wS=^S=S~~e?16;^Vt@?pg3-j-U1q8<{>n=Oo91E} zOy4uvGnsrppqdYSX7GoKsgMdp=i(Y9D`jdkT0vA0WYGND3}{NVYu8gjLdUHY#rey9kxh1yW7Nh z$09BAE-ASix&iWd9EtAXqfnu*Bc%BcsM?`!&N73Kae_2WM2tmFH@%KH42Cp_J`v8# zZb|MY*ZGK+57Nsjrmug+OS2nh4XC@I7lhcpV1KDlr=6+g6J7*>D92JPsU*kd48?Jb z0wtL%P~e)1#*<%?-zn59Q0R+PjGRD_Jj(gO%MB^bqk{O!d29ZowY8h$t=q!;|BM9^6_$md%K2E07Vd&4ef6yRJw}hCxdZN)GJ%~f}1ZB zZC3~EIkJp{)XKbywF&DrV(AXKz|j08n(MW#4UkYkT5_T%ns2X<8*rp*{7?QiVti2W z6SFbq_N-S1tOybFDJ0oDXx+IN4ePA%9PabV(Hi}k#+-7bxVt~IY|sBNGxvrg7{Ek0 zLilD8255)R$;_C>G^f5sn)!5!YelN z<<}vR0zLZG1FnYsn#RtE_ghm!65E_JzuGuyx7#WKk|nOB@s`xJG+nJTN*x;tY@@!D zN?se3W2Dq(t9_9ZlczJ+E!7R9i0=;zHmi+mgUtspPEDpK3^V73*wmkUZ=j^5HZGo% zTxdU|Bs#i3b(OQe3q!(;kFZO9Nn=?>o zdO>VzZUGaKuX`OXEnE>Qpw5u+FS*;phCnj(EY=)Ih}`b>1W>?R$A#^B^0yccI%kL5 zC%DOHj8Sa+COw*L@}tEx@FS91=`01Hi?4YgE!%p>4TMn`$Au7JhYp4b_Da-m5p`<# zb!qZwTA)eg;y*zAt+vvBx-u_P9bsbaRSF@*)M0;8#ua~iqRfV-9sh;>m8>^1VRkK4;#2Md4ZFaypG^z=fQi z&}_O0lhNVNh~pH&8IFC`5 zr4|m_p-@ONn?oT$HA)l0*xh?Bo3;q2plLLOT?wajxe;j%;7b8;$a(&zZx!18+#|?lFfVd z`8wGUHfK;C^0n8ctAqXWD31Qw!A=NMA-l#vrfm<1svxoY6ZxD@1Q_) zCod@wi|%0Iz%QK8BFxpyk%x)xMfHu) z--zh$pe%eD~2N>jeuY)3Rn_A)DTc4BTgFaTV&@sBgIxA zI%ZI?7v}Jemh7?Hz~&-KmBgG=Jd+Vdr6gb(t1b5@9%#+#z=ZiJgH0~}F;!|CroS9t zp;W2wy~fbcXICnqCES&cjnQBq6_3yOJ%6w)ULR_TJ)cTMck@H<+Z`*GK&8TgnnmO6 zC%`a{u6;*))-}VLBF>MxA?PTmxd@?Mik^JLLI?A`Cxt7BGAxZ+1rp~W2od)tFy5Tj zTwC9&$?h@6ie#8g7KyQ83hjV1-NZd>1Y6%U26^n)O$ex>f9%Ssa~zQjAh{$eyFDOkC$_pfzK@D2HI4N%^vC zt+krqmGr=VgnCoPo>jRfx0KYOFDE15oS&1nG@~AAIIqbMHl_l(+5^9L&NnR)>#aw} zfuOLgZ*sZ{aMzMPKRv)L6lX+kY%bbm$54>}v=d_#T&P7rjG`17PHMy&Nh)$ujM0jv zKWIpRdc%p;dQ4DIFf~Wsb+zYX40AfnU`g98fEH9R99b}_myC0(tdL?9j}3GTP&ciF zGbGocsEWvi9U4Tb`AMAq*ubiLAzr44B9^G4&y7xn@B$pIKjuhiPqinJK8rlXy9dpX zRnN3su#GG_+bk$;r+}9Is}X;L*+oc7o7(`FOuIp5FKN(Rc^e};LA5%IR)5rDqA2%g zzFKYHE*!K|u04f1>k6=1y#?6`Bc8fQqWYwYa`;c@eWIb-hH*smLbFOz9#pkt7GgF{e&dpG9gRcuQS32kPeRY-BD-+AVE;ttb@C2`Tiv%-Uc`x4 zi{&C<%+n24DK&|pyYF;z!iygRO8~Ed=7BWjqDd@_X`FK4+6rdG9;KN{Z#iVODD{Z# zLQQu<&9d&%L3j~CB;2Y2kkaa$W&ZtQQLtF@6=P(5m-*mZ=qXCf=O&a^!aqFkWhA{= z)t;yk(azFP{t)|?%(KXK32jbu^EKKPQPSn1YxHZ?Luur}aS_X;m{&fV-gDKx^;b7o zGNN&+lX=4J__Y@;DyrJ6^!dzf333=?SQfpCzsMG-JCMquaEKKi?O=P-vv-SaOnIVQ z%7df_MT7x4lKW~}zzWv^yQQGJk)Px1HMc+|$}XjPlQtpRJqt0v6D)D6E5tDDCdx|nk|q^^rQJe0 zfrX1SN{AdBg)AdWzit0;e-+awFmw^B=r9xH4nb*RgX zb)E#h#)*fjzpstAeujAYE3!*xvQUSs>#0C>!LIYBZq%N|OG(J%6)P4-i&0F1Xe|gv zJzNgn5(-&L?;H||k+DqX~!W` zt6q~U%Q5u-ExHQgy(>xee(wu*AGSZUF%w6@j05Mfj4u#HDS9Mf* zaPD_9fjN~z$0rGpj%y6mFpOLLcqH?uW;O0W$``xsh~3YgUx2Gq4~rLoPk)Y)z)3P8 z1wVs)>4!I~RCS_-TVCY0JbrP)v^S&-GC^)Da3VD#%hs<2w(gCma2<_#v!^sqjGGbt$v$22LKM16k!VGgD`En3=b=DsF9n>lY?3jLOD>?_Cu{Quc&2#y-xg7rn%Rgw`P<*`;kl)(`Sjy3(mAy;?7GO zyKfcIKsA;7GDQWvoN|ad?sU_>YnQTKLY zXMfSn?}hl7spD3G{_VOSLu$(PFoFQ_w+0Tk!=Um=7Kh>N9FwVZQSK6>6G&W?7X3m9 zTYoEe9sSgKRd2tpV)R30mQohGt}ztfku<|o|4ZpjfO!L6bp(d4#`jlcP7=VDI>|cK zCg2?bq|w2GCgQQt96AE16lq!XH_6CMa#A{Q;}hiI0(G07r4W&(W&2OqK=FqZtA5KG zEH+l=PU3X)dbFShx&;&WlmfpXPPy0J{KX_Zsi6AHjCzW&ItY7I{_dRt%c42<0uu%e z)&L_9d@@C#OhHAwtl%8M8R!n+R+o4nR`Y3>scYjmLG{xC-Pk1A@6$@i8BmT;c89f3 zv*EMj6&8v)2F<{z`-}PrDWH=#rN6t0`((nZ zuBFe%+wpm9CFlySc#i$vj38gHMhJ=2x-iA53-k!`N(hs9U>P+K_w}34=yzDImLC)8wi#Y`R+me3IE#^F zHM-c#)z8fqZ_BC=%lr(77SPMgOQ(rqLEx|O^>KB!CaKqu=*V&$ zU~k3VS(xQ}qK%j;VUqxx_IRz?b$gao+0AubufsLK>01E2`-dagP}?O8 zZ}KZ2yRqQUBVIpwI}g{w{a=PRDid*RiA+B4&JGq%pNgi(c)^?%BG2#ZFB_Q$RGFbK zCN9?Y)~DC^hst}8r}L+`ivx?wd0(zYEM2^3SzHL&Y;RPVix3qhxjx=(ldsVaFcT$Z zA4{tpHgUl+ro;yO~SSD}) zmnvGHrjO^q!$*(siAfmiN8F}McAH!0HE>Ny2S=|q?##j(@r-a$$@`Z;d z-LnVTbFYt&t98rW+Ove&~lZkUvH;Y=&nq}RQ{#|wj zjV^Fe=7nvyq~9inNYPUzjjc6Xauff#`?sD9gD8&FiE9Y&gZ&PmRCY1A;dH+QI`G@g z)Wh5j!b;0bj@PC04W$3U;!AUk>tf_law!)C@P9hPW`p)o#l@ltlZu@2}kOMNqqFMx^81+X@OQEzi*C)vJ_az?}N zq&7IrJhm4reY_ik{{Ey2aDue(ph@ULe)B%10n}9S##f@ zHqEnLusWWIBIZ@=>pgg7ueO$XSFHtNqBpDs%eY`WGeLDHX>?mYo@zE|E``1VQWU-- z_-1ERjVTjmsIId7v)nsWF^@RytGps6rr(i^aBz_L&6PM8+_ynZD7R0ri^uD>6ZLO} z-l)@VZ?oPf=vDgf4}*_#p4Da3+%0V=*tm}2*jJvW(*ks&E52C=hxUv? zrCqgNWoI>NnYpFY1le24Y)Ry*p-vagOd@vOs zb+`OI{UPbD`dj_VxjWnM*4@~dnsyl?;9FN#y0WjL>aNtE=II&S8o!lLSgOf@jNhRV zqEmy1KznsCF43|TpXH&9P3h~*9V!KNH4>BcY~7IxV`CWuk-YcXkn?tq#Gv|4?mwn2 zFyrDIB7VxgQX1~q^-QA5MK$=Oc(y@hSJ~3}8JA6`spTcSkQC4Nxf0ttYPPANiJ*nm zc}YU5?Li|Zr-x50XA?=K$~_5UwKK83-Cgzu9^QwhfZPCOX`gNRdXa52j{%&jT!_P0 z`?>9~%wiEUHmEYu*Qn-9xhjs!g~Fv`!yKc;CiD;uK+^;q(Y_y$yl*YKl_FP;nq!*i zSs@)IH7=lyUOZ!Ho=1_W@5-6{qx~%KOQz|6KZz@pV}!H9y40cvmM-=pzPM}K9|X<> z9nD3hAtrOjK7LxQ1-~Kp)z)~ySa`;#?~^jNo%zEfe+Qy$s|MF5cr`6^NTq7_L$>wv zci)R$aqQ&fg1)gF#7Prd1=nEigColNMH4ciG%cTZ{x`zh6azkmL>!zN=@^_Ww={ZF zCvb!+h4gF~dTEzDLCVsWpm1)!WrMv5YL$)O>@V>Vf3~XbMoZwsZ`{RSZCw7&V(_33 z+$>P$Eno{PzO7gwtn=X#B47$-L6^e&4O5xX)+U>N7!Vu_pq2)81eOMcERT#!J`65v zgXd=JhlwVQva{4Th}8{h7P}D0NlwX%I<> z*~Vlvp;`5hRZkbyg( zM0VgOx{t8!u8nRq8N5Q|=jb_(rnhI+X54nxmBDE=$$N&Q(emGzIGy*}hpkmb|LU@uigps~ z3sp3wKzI9(iWWe!Sr$ytyAAPEB2@>1ugw`iNyhAL<`YJ$W9QbBNI; zVp1|hh^RM}pS}7ZN)F=LNa^R>i`LTHq{#Ew^Dm{^4{-V+JF-oMMNQLsxL1L6LxOp% z$=F$9!AD>T+F4J1Ba&zqsk9lu_i}myZ29~?)_b!Y@8iyIm;G^Z&4kVOLe}ad$~1IZfhhP_zrKWAoR*CPc}Eo<-I`$c<(*Jr}B* zVseP$Gi=DTU22JN`9U!w-1J8NXh8Ra95=S^ffr>I4<>v3QKRKqkk|=5r|#X|(1U{Y z^h6yPX70%OB&?0o3qF7F4yEe4tU3p5DT(^J^Ral_Wr(M96~rE0!1Is&(30e_by~te zPQpmXy8(AvR`irz5ZBb_(!!U`$CR{H8)DPWa|Co-G&!CgFjOn7>Fm@Fbloj5{m)KQ z=Eo?5+YE9%<9rCYSR$V?A(<`x&Fcdmz?3oah=&K*>jY`P$FbT~=hrIJGK3T*3{81U zbCB4%$>(0(aLK^GVb@o{(SR)&Jst z{>{()!~L+be0w^6r~k9h{6D=IMWLA){~e6^KP=FHTqgg+2mLSS$^UpoGXIM_`sd33 z@rq<-rT>>7<^PvgB;dkU^T_Fnby7ve003yjMe0+{ISFgf8TX(Yk*dT4CrL(SNkx;G zsUMIE1@D!L_@Q3B2@V2WE*G?oBuhH%7Z3Y+PED~(`>^Uw4hpOH=^KVD2GAjfkzH^z zk8#?Nx-Hna%6MCs($Vw_*AD`|x!|30(D6BPncUk>;Ks@K*?l-z-FAWK;-bEDc^n&S z*g<#jH!Tc4*wHec_I8Zh9JavlVG;Q?xd8rSZD1_Zgw!_4sj3A_H=K=e#no-B%C;Xn zbj4^-ezxqUC3-P@pr#|9FLMw&6C>LnfcRJ)Nxo*A`KB{v4f&Q)N7-)o1O^E=GoOvPCHJO z;|C@M$1mIMd5f^DjDAJ(9QE*{x=@D_D01I9(tGoaHDAy#X1>PltNOhI#rT6WJ`H$_ znytfq%)6J_iH~6VfLw%Tn*B{$47X8dqfUdIdFF7x3_hmtr#A$&2-!9VOS#wMiFJ9w z(S=+gmRL5m2hSx%MvO>y$yz2-?>!Imi=%r(NSiuuaaKn+b?vM4N7Q3`IW++RJaXrJ(;d;3 z$D8>Giq^eHw1&d_*RgBSf;WKNLN#gKk`XD=1wHv+NeAS7nJE|F8X2hz*S_;Dy6c}$ ztS25#dUG<36m4c{+;kI`T+@8P&D2^Kg*TVmGwVqT7B*8>G(F|WB2@S3{%GndI`nY| z8Tyqcn=r^FNu$swveQCGbI*=9u~QkcF0?x=z@2>RN{#3DwlN zW&~Ps#^~IjvK`xig=aOq;I!cF`~D+B6v5xRl~1{)QZh2UfC({&gf>kfOejoxU&ycJ z=LD8QCbuzq={eiex$87 zl6!~84uk)_DH*xOT=`|KaaQ~Rk?J|yTVG7cg*i3ris-$NFkeA%_vQpAB51H@+uW!H z(O5C)@p} zdY?|4(98ljm~oazAG-kk2l{D&6l@ZNN$S~&MwFZ@$|{>YE$r{>6<3bBGw3amWx%fc zg-nu?8=HwpUKrwjAfL%FmP4v4LvnLKou;9z^SCo@YFTOd+sBVugU@RrV2IVbl^hho7IOckwifjCES2AFqrS#caVO{Ewq_9DYJ!GAz})dpe@>mrCa*;o=4N4c^_qf(dS z2)7@5)4V)knBkQy_E4|SO>O76^D#uO{JvQwOTG3$D<`#TPtTleBrUkzU_eO6Trje~ z01H_-L=r_@0}uN6OXvRTOMrPg0CCFCl zl=G_H0&+(l(4?01!uVV$2@I};=cuT<2oW{MczhK`;Kv;u{dVRgW-7BYAi!@9^TgA= zXKR(Y%tMXiPwjF|*2rB`d2TsH)Sv!jseWxb5?aQ>NDYl_EwG)HWr-qklpgEJqL$(o z=2tJdF45ZE{dUA5OLtI_!lT|&6g9S*rxYrj!D`{rh0Bg!*5ZLBC0g8o>>{!xuB` zY2GvcmjqZEjxyMm{RQ*(;+=2YdMLIqzhd1mkno!DxT||%-JXE+@Wq^XJ67Thn{coY1IsOJ9|7zuF8r(q zeDF2Wj2(0-!$XYq;SsxrP?Rwy8Z~6-NXI0GxneF7*ps&l%Iu^GX_tJsT*ymbmlBU? zx*8d7MEy*Pb2)JE(PfvkIg}{N&Y+{-ruHeOL)$#{ufy2J>`SXtl``Bjh>VQN=hrZ< z&d#XzCi)J%;rkV?p&O+*LnR(|J0;G3RS>xq;mMsHDkDe2bEBVjA zTnM1e8#Td>@umT2-?6%e1;W_0U%{k>csK;yc77ld<#n&1gsq|uhI;4erG)eB5nJVl z1bP_loNTzU_inh6qb`!8WXZVTM(q^KtDjgJW=s2tz{{$0?&(*Q-sO3G7*k^A0 z{XS}%8A2h|pVVQ#8zyNouVge*1rA3CNO^Es?P z5F!{`=x{KT!y`>PX$SLPG|u-z|C{BF6%%Mg!yU+op}0Wa!HdH7*V^}oQ0{iZ>j1wh zQ*_^{nKq})cksQ|Hu31Khl3YI1Ht@raM&c-k&f{)(xrZ1>yfm9*5MVL9z>1UV+%=A zaDl+8bQ3BM_Nx+O3q>*C_V3pYI@iHf6pg%hJVsIs59dNOOd>HWCA?Gyh-sNalTUWL z^A|E-#!{Tf_&gimyOxuT0Wyq4a5D#1hfaB^U-Gl^mf9Ax`S!N)p&NrJTD-*~Z#mi1 zR=nYif|wFI@@DK%wi<~Z2T&2blX(~mfdROpf(Te}&+(7rkq<{qRE&gSSqp+Ctan#8 zKibsZ($=uD$b#2^6dJlj&<@>jf1~}d%C?7A2$%~ggPUh=qjPBT$D^NdQVFSYf31;m zS`AgIY(=V1y{Nj~aL9mgKwPjXu1x?7Mz&HVh57rk3qW#oY_bG{3vtV7yuG6mMp1aF zytU$YAXP7fMwg*)@NetS!4DC%bXg9m=9uP7t4lyZw%8^F*3aZ50p|iBIUMp)pUDTe zbmGUV4jJ{MzA0Uk>7Hy6*KHT zLwrdXo)Ve+VP7FCf7rsO(qpAt&LehD6OVQW^EYwP(>gA+WBR;EQnaw}k1|lc&+W>O z`ku{%eizQz;t9Wu7o&qab1d-0Gzr@$qux_SE&p#Xq-eUQ31><(RlMxW;n?Y!z08@s zwngZ6z$EMqFIL0JE_Fp7|8_h%i`bP4XF=Lpx9E}wgRz?K2M=c4|O+LvkSU^1*v ze>)ub9VzT%3_bdclPV;SfXdxwMN-XnkutcgDZw~YN{Y$wVnZsjV#1KMr!4Hsf%>w5 zF(Y%tCVky8Wqn4E48|O4=e4u~+bvEDeB^Sa{L@-JUXz)k3r@c9wa(?DZ_>62zJsa{=ZMFey)aA4sbi@4pTyK3+|X7Id*VAzG%%YFURrdJR8{y6qn`7lT1Q1Wk7*=4=zd)u*&JPHRLuyME^zze%-8C=rn zgvAUiKa~ijgc{YnY(T0HOwp%8{GNyrGOT^x0ple=qYjRhSy!}m=Z$$RN0aE@q%$K^ z8U(Kq9QkT|vQ5+|EyJly>5d~9&qPh%Ze4oRJHBIYe7pCY$1A8h^)uf2T-KGdk&vyu zqKCBQ^PpF)m`xjK4(mZ_6GE(BP*I0vf1+J(DoIT)!-f0V>AihzU0TR9Sk#nQ80Y}2 zRN(BdwR(n&56|*~7B4S_c`X+gWqb?Y!UDNa*BCrUT7PPwT*x9RTSy{E2$@n3ZFX%? z{)ERVRyVcYFY3u(gwqlQnk;EVxRT8O4{PrfBzvGH`*!zg+qP}4wr$(CZQHhO+qP}H zd$oPn-h1wuxw9wYoH%hGDx&J;A5||Ek-y9@GtB}ciEdLxQhVne5HKy#Wi)Sr`iLpb za7nxZc97<4HpXbhUar>RW`U{^$1`dE=ZD6qE*M7Aa6SM+BDpB~k+Z?`_qJNGrs=WyZTDyD5$ zzzdsi+r7;_W3@-%HC{NMGnLEF{X*sP>dMX0uG_=LS#wvL(E{&9Z#-?$3fKTcc!KFZw6$=Cs(PQ*&z$ymtP(AMa0 z2mtawW|-Zwn$>S@v0mJ56{n4r34vH)fC#4XFW!d6lcqX}+>dmk&+mm|N{AIqH4fwp zBJP;&0KnKb`SAUoCg7n5#(~?#u<&a$UHB4#q#3S){a~-~;N=g9!2*q@qcsRv0!$?5 zZ3G)K6Y!*xUwIN!9U=j0z>Zg0Ks$Ed6b7OONDi%eHvRi(_bG~hJW^~!0TUzhc7 zjoc?HkgTTBt#*2xISFa4IJ5QIr2noiN~$AQ zXVX2jwIU;gyM|hw9&Z%rj#cITTvw@Xu}FEbpxb|qSeFYt5piMMq~M-(aS^_GvMXN55LrU+Sb{78$D=Ie)pA{>!ctTD3A1QV3ROGmgM zH_FHR;WX3aPV9A(Du{_iO+&yTlg}iM8~Ylg{qO#~QQ774iUIkmJd+)}?;Mzv?NaB% z@mm9CRm+9thC)jrD_n>0aTQOEH2i?I~|oDU4M5!o7LutbUr3037`n*v^_1*F&l5)gx{n_QsOwjwjzR@ z_AZ|`)RT`5Qh(bhuJoJbMUA%?fU|3@(t7D{^ON67vdSQ6Hl9;OSV9cbu6NT!QO#bg zes->vRO}LCsC$A;n|tInchQ12&{U#2N)ZqaT1ST?UgT}1HMcA*fWn>ms1gJBiae&y z3`L)k^9nmY>;RM%_%z9ZKIIOS$iai3_ld(P#%UcAJC@+2 zh~oXYrV5q9YwOBL%fRsJGGw6Z`njQZ8iL)SP@S)?cX_&51Imhhg1nqJdcWqd6*4_I zH^=*hwD50rLE7w~NbYv%HY1fPq7Q&d-I5m5@5xN2WTcMGV3ovFRzEuIF~<&M1=_?< zhPS->?mvRY74==)!JrXo;a2)~aA2ocb-T-901s()`__?{=J2+=2+DEXkS5dSv*wLpE#5m|le3ls(OVFj+-8t#fLcM2 z1eDjX`fUF4&d_fQ*@GC0Fvrm*T%c8Nc5rCcFEL}YMK4MF41*z1ZSi<<(Rtzk9 zN)||DI&0XlZ9VZ5%cf8C#Z}Hva|y-1b~%hJ-X#FOPqZXz1I{)Oz_mgp+2&HjJU@ar zoEjroa4G1gy~iZxhDBZ&wcpwpN-x;h$2ejBaF(;1>74F?eN8v%ZIjL&g&)#Z9nZI4 z^^13#<>D)l_7SX@Zi5N-UFC9S15S(TH7AwlKBr=cgp)}3iH9UYrh@=g&gIv0n{$gg zVwqZnYMNF*{258**gTVT5QKL{P$2Du&r_b}Egr9YwJKnh8Om!>KtAOrTbR!4m}Mxc z>yV!t8NG|Ah#JB?5F&lSEkL;$l-bTe|5u~5bqzaE(F$RZXILtvHtZvn3*_~IV(WCY z#|xHpvxC_k(vo!u=s6hCtbY<{xRX139PvenTgR<>(|u#iYFjciI8;-s=ADN zuDA@w>>G$UHd@$Ng-UI9)2a0Ok2Dgi8QIfdSw^nb2_76;-7BXTM#U#kN)JKaIVS+c^fv z4-t}3S=|HD1jb@J_XgmHp^7G~@neSd!QW`zl|6~`TX(28Wk6gCx*4Qpo}twpwJZmx zHj{gX?WF>TWF;wOtr*Gc>$dXI2WhaOi%whJdEwQ0h-KlMg)YEs0iU`IpPHpxVyANE z8<{7}P7?|dQA;wmOkm>JRjU5hpLGn`Qt-H#;bj$Uqty}*A6FaSVDi(DIC=&|nlQ^DHinKV@ zntSJExou27@wh#j`)7bs>AYFgnVRdnP&7g{_Ov%Ms4Pt8YmguwG%XJk_bO#=ipzaxr=+X}Q@ zn)h7TaAGb{w4*(E9d@S!V9}z&0Mq3I3o({1C+=vWHKFp9w#pr3pwAyFUD%#y4p&}>;hG9gjS?_sOZq@I;kE|rIO<1st-8*iy*M``N?}N7! zy!W2kuW8kQzyA}6v7E+FUJtciu{^q-B@e!jqHEgz5ig*MGlyQ`;MmW-3%q-WTf8!i9^PvCrw6XW>

YNE)xS|Qw-O31{0^izf^bkZJ6AhK0%C^yKd4C-`O zi+%MXyGXzl#u?fS0&$Gyy_xl?06WUTWQ>Y=-hlDvl^|N0k!DCA1d*x$1q2^OQJm^^ z)JHw_HWO9KUTR+xr+UrqN8VZyWY`cN#=R?t5DTt9sanUQvlhGrMrQ{WieGYB;;g`*Y6d1tC zg}?H_(K`rhTxK=+v<}&v2&^Hedh;x{#HjQ2q`KLAttP}ir^UQ07yi_L=MIdz?*%^p z21)TX3H;kSZ#c1|uy|5u^|49-vE4Z`mL)T?P_y2P-poKmc!WC7UT?TsZ5)(nrmM`| zw0IwNnq<22oYw^KHj7jGt|(RkLfPMMH7s*I*9#&mA#)v- zgLPu?Ywe+F*|dALo^|>NRx;7FD#8s*Qk%%l>BV$+p2BFRrBJu3FXx38!O=iMN@v3= z(Y|$^v0>YN5!pS)!nj&_O|U?ZeY`Wjh^hEasJ`H93^#}B`44`)gUo%#0drN_!}IQY zAwF4x4YC}IPoD7iBNHI2k$>);aj|2%yvlRI6i!0|gR74jyD-&)l|Mm)sCJD~P>ZQMN0lNOZ{@itk}-fZoWLoI|Fm!2X*9#s!A#QNPxlGr?V zU7nn}PzqCek^{VQSL=pUx4ch0+qcwV-C!3whh_<8X+J z5|8V%ja#6ZA|H`!hhI*v%{#m`!nAhl!eQO^`j1IQt_%jCS~kt;yG)FlnS>RFB}BVN zNj+Zh?Q-F;LQ=uTHHs@#TvFIE>Ne+ij4WCB12+vM5oJk$)VlNA$;ZJ`i`l&$Pr%%qTAV*Th+dE)U_?A*p6-!F^gI3{}K-)aaHvRp9hf zd5`cQR@^!{A?kd@E>%%Oz77V31#NF{UxW4qW9h4eeWU|T#}KhE#z`iD?LyALRG)!p zvUk;#z$>2#g(FJ271CC7qYWZ8;=9qMhPHB1%-o3*Zj8^Q<}YyOG3w=i?_bP9q`Dp# zDRMTclZnSfLgA_Mpz^@t1n*_>^B-@&BykpFR&kpB)}BDsO4{J9Bu$8TaaER&p?W;5 zPm>@sRrmqxtvsRqIM!7$fiG5a5ZT{V5$(EHy7NxZ{!G2cYw3OZvRx&N{bSqg%k|W~ z5;#)Hw&V4I7Z_Xc>UpBM>#O8$3X|)7x?Bxr>&x~o^Ris68o=9fkmU0E`c#eAf@jpD z>R$PEGQvB>eb%KD>Gg5EdJoBC*46W*0zzl1W8U+Sgh$=Q@sZL8Hp8PaP#C*Wd(=zC zrS?O{W>CEU1A?BpX7leb;h*CEpD=-*p6!3dHQ4`4o0S+OGuyxFs{Ze>0{g$0STVEz zpOsjtN!ntqqRa?3qhy5Ph=vQQCYLHRmyp8|!yO zEC}!cTB4ZsC+`c#32Tg6vhVO80u6_O~Y$G?7F8 zDq(lLZ9nxo<=o{+Z4d%Z|9;@zwHn%q=q7=Grhav6B=~GX=gdV7lgo+*kyLzy6J{k= zrbiJZXEhjKXg`=WETJhv&R2^h`RE{d-}?+}Wmta!{J7X8=%94F%<=j*GX6e4Q!vQz zkB7^cgzAmHk<8(lM^V)+iACNFBDx~K$-Dn>O)blbVaB}D**W`_|(^j@b7^!t~Ilp@^cO>Hm6hx(OD6!=pbX?jG-*?>UQS_T0|hhA9- zNqPofScOE2051tj?t@JgyrQvW3iHFAa72u42LXCUv6xV>>ptuD3Q6{!*Ycdy75M7b zP|w^i^?Kq%J1{57R^mG$Ht2Cu980gw&}s;8V$66es*A#c%LEG{@5fa+JmqCM5-e8h zM7hG~Un=D-l#(f^HQ^&AmqP`WaBwoqbz#`J*o?Fkj$zml4 z{(NjK+JqXw0eUcC{wDC_bwuz@s==_YmTNqV4I}|&$XK(;9k#oa(yS=rY=bP=G*-%` zxzTAQ@X`Y6AhK=Bd2L4P0R`wKMrK}PyZO3E8PTFb3g-fpj60b8iSpEx+@qiozZDtP zQ;5Y=%sEQzKnGwVkU@!uMw9%+Qf_!@r@FsOs6Gu;@I$gZ3cn@wnQ6A(l@DQDzpXox z_{eD1;T8O}mQfc5H`?0XpNwT26H@<8G>Izr7{QM$8pG&)Vlb$*9p}*0t z!~7`na-xRnn0fA(61BYy=aczLxDjxll;6h5+`4mlC%S#!DP$Uy4@xc7E-!iRKlQC; z{Ktegf){SMt5C}4M~p(XYw4aCO&^~B+<4FQ?+j*Av3rX-!g#;#9XOc#I(j$XzSg0h zR>khz9$Z~wt^#jP->%F17zSQCi%*(NHq&20X(2UlSm#EDV6WK^{%st{6%vqnd~xE; z!lP^z3BJN%gztJsguDLp+P!mZUQ;W$_W~HT0>1_rA^%;Zgkp#gZ~fd5>G(2+a#Q#6 z`_Fv*@vgn?F`kR-QTQND`2#*RejJGp7l$BO?qL918wf$R7Ye_<+~iT;(A@Py7Z{f; zJ^Pb$?+DEq{vRms4Sk^%XQF@yj-0U&90G^YBsT&v{>Za0=^0V3 zciCwA9ljPXZa`=5=%?O?H%ljjPP{L{FVC@$RZn(Lg*o5f9q=dNa_zy3J+@*eI_DkTzCjm`vcG_BKT|+1(@J z?=BYQ7t*v~tIUFB?*V>Xw8S3m_nckrCu4tNKR?cPu0nU_iq$LfC~;r5hP?*0rtG=8cAABtp*V8tEdz;wZ~&n*8$PI=#5C$)@O0Jw58ai z%SAj^u6>-!JHo4DR}nd~URH;8W4wrb5??!-kXVwqypuL{#dWBPFWXIWUPEREraIG4 zE{xO6OQ;^|4yDB^V)T{oz4SstacMXV^1GHZE`onl^-N)PT#FA4ku0O9vbk=3-S&^a z@P3ZIqJ{L0zYdfULXBmV*&?CRGXnKgkd{~8hm~7?pPJ$}Rux>I#tF0Rc;2k2Al*^c zvoI}p&Zp*7wnP}aGT_Y8nD{*}acKieij8J{$m zQWPsxL-ggJ@xCJe%yvXpB0&>h%+wK~B5784sZ(EOPhUv2 zurc$`=A}Z^<}bo8+&7vx z>=3#+5^0kc^*(H+Qv%2@7~Cqkm0Z>%6c;JNfFB1gM>@y-nOjKh zIRa@V(mT`gbt-57T+fyW?pYM0r<7&Mvd3o|LSz%|cCg=4BBZ$q(=A_K!9|QJ)nb&r zzhG3`-mCa@A)^)Gom#psyS4tv4hug+H*cR%NruXNp zIfb}sSXD0-OeZnH1z@fJrPLaaUW2a0ik4EVtmEHu$3TG8gcfa}dra7Y9UscNe3yILERebF?+xMaXE3A{wR?j3Bf$ zO>%x=N%@KIiHLyM5x&IX*`p*>0=*jdjHS9_nrq!q`d-1s4X-1R56$OTq^yTv#9Skr zPv3}U-w;fwEJaE>RvOP0HDIuDf1G z)CN^;@@AYFhwj7alk|I*k!NF&dX7;V9f+o|wJ|dfI|_q3^cS>-ZPG$gpRLI8_}mBo zkQ=ELQYr>ElGTR*u$`lIFd)yX88MXsoLA|D>?u@AbqW{*K?IHg_DR9;qm#=;cJ_kl zEz0;v1knIQ1MI$|WmBzfEMsYhpn_6DPeOtf+R@5GFhY}@%**R|uHkS~SPn3e)fQplndT)yHI zhf%>KQg75)qL`r_43kGj(b~|>Wa7-=ySd!p97Dv#eq2|?5Fy{4A_;V$mRN{XZ~e`u zd@tyL{Qch~eQceMAGtcoL6}fJb^_iP!YzETe22dE=J|wR6*NQF(GJW^P#CQAN}B9( zv@KVB3iw^x-%U-DwHWP@eh~B5$$xwyz+`_^0_<7&QezZ#lOT@LVPKM8ZX>S#YW*QMU_=BxJbmGydWpgZ(glvT4ryI#{-E>y%8+m7o#n zB@qK(SKF(l89G|#6gxNv1{>V%jd8hrrdHq>O(LsfATEA<5IU(m+Ps01%%y85I`8mB z$~0n2bD-^6e1)tkU`rJUsDSPk5ilLH=C#{eZEwE^CHp1i*j1heYbf(8kV~TEWT(Ws zjy-%+p3S&Nm8UKe3i8HUtZxk%>-p*%y`aI{#AYHTJ%6( zu-6BiUfYNDY;gSSx-6~(AI3^bXal!r@dfE{iP=r1u*bdrFngyrNCyircW`4cBj!-m zCCed#n$G)YyQpN`fFiuy-hor0o`q9`KWU*~7M7Iv`T4i)%Ma)k8oS@W%dLNko`1+K zCPr4K|5tAP4a)zg>naY(%<(Vp_CJN!|K#HSPl@^e@N?-DnE%!;{eAtzxBbu1Jj*|e zhX23jF3W!u75{I{-E4J9Tg_3F7$ju`Bfo={{zX0sw%Z2 zvkgS^c^S9h1{fSs8+>NJX2vG`4*I6EiZHzU7VtTsb@Sm*KQ%Zp21tqkMKqBLVfj4u zmfb1uJ6Pd$XZ^kelbI}z*juktXo_&5xHI0{Q_`AcRMz zo!;~M?@$ad^YGB>Xn&e-g!YxbSGPk*peF@-7P7;-yu)a-Fzn$-F<;hmb8>`cKZ+IO zTj3lCJ73u2)qGROu3vUxZY>)~+f;Gb|9F_+B-fEMK<~zMK7Bms+Ij5$UP6%H$(L*} z?n9$op4Dcyza=)UrbfE0SUqnrd7t=@#ipJXM&6&QU!c$tzJ_%*r9hCUe$(zK!Rl%F zwU6Wg-=31VI?_49u{;Ualg{Etwt^A@d>M;sSVee8 zz+&Qdg_P1fqrJa*IAy-VPK0laIK>b$4dGb=AVs9a8&!%`c*%)Gd4rViDv2UOdR#9& zB4I|6TyqB?kr5?IRZtPKLEq5HxQ3(fBFX$+6dQ`7P=oXOf^eeF8C{T)co>L0K_0mp zS%_Ij0%g9%CyGf1UGZgzn3Vq+c!vSx-3YytWSV1|aYwisR7dz7I;GOMPzZp4zFC6V zdCph00yxiS@}^{YiZGG^Wk(qS|4nd*Yre?^;RWAn-Ia-1EG00erwRUGz@a39HWGw{ ze1i}nRu>!fdPKI3Xo~CNJj4O`~T`?7X?1-Nj^O;mc z-`_nA+R8RH^GYg!JhDMRx%e<}3AykP>`HocHz5P=R2JzbqX-41Ul4{Ia>bOSfC1hJ z6`pt-)8;|oeOW~SnMrF}82lhk%*r4=PDU$6z|`Ueeqs%Hz9HoUM_>>;ElOc z5UV`p>=+**c263@uh9>kSjCDxE=^!SO__{LSUFgbQ}WOnNmJ+}MJeEztNJCBh=Qz{ zoc$B@kl?iB`7|&x<3osf$TVWcoKx0<2+osAuS`~=D?%{pwv9|tSr;KS1FR_Ha!+$9 zSa{m_;4uZ0`=Zad;z39~|8vvF+r#ISioPNu>?dzMSka222h zAF$o>^@HELZ|e+LLzCyb2PXg=`B|NOmCijvJI%uJl#zXuAe3HGWpIMnq|kohY8M4g zZasjarOKU&2~&mPHj?f**VA?bcueU@tTWAOdC-6O$xi8D*!&ppwX(Ew(m=fNg3k3` zMgOQnM?PDA3U?K-d8kt}t3Q2mjvVF*dx#xR^Yo8?ko%&Umq!SS!rB{uPfTu!S&2aVu@?L^V=EHuaf|5O1n5scW$Ngb52V2ZzzER#(NG`Y)bToC>tKQ8$ok4o+a(Mx% z1*N^AB-=u^IA-M$FiDh7t3C@^Xw>TZSkA7Yd%sn7uc0q8Elrs9owCMA7+_EzVd5V# zI#iUNG>lkvsB5-kdI8mpU(0nj8HagszNbuiCH(!(>qIE2uxT=GmRUTcmKz!Vg&SZC zwUvzHI`UkurE8F9GJAezzC1s0 z4&w78b@~07z4rBnis6Ka`x1xgY|O|t45HFB2tJ_K0uqi2G!D$i=rMX-F=(fSrX+5d zxh~c4r_M}u@#;!l_9-85CT2k^iRtLI*F>cf>vG-Qv_Hq$hOG89ay|UK49A`@GgyhV zmn%DPC49WV5r?<%S*pWewkG9dB0AZuU0?O#VLVfIbRs(XDf-)s8B2CYYW4a;!ilj% zWlN1t*B%x3xebhN==$RI(=}JOD`~=tnY56#`4@VMwudG~3FEQIyOTRNZ&KA^pBRrt z>WNR5SPCLs;rf6PGtT;i7w4ZkH5+zs7h+u}RMN;LOwoLwQpWMi^0vahQ~{p%qF=o) z?j^{p1xrcGltz@tBCI)h12hlfS0$Hdykf&_m^0@}*d3_pP&xWTIN@ao^Get}WK>wu z_c*1DJh{3$INs>es%Of_Bg+*y>9}h{^Iph^K{Xqaa>|)C>p0ZEqhZ`-wPuPva)u_O zBf})Whk}73XYdfRUq^lyAPMpv96vdwY6lAuYh#=q2B!@nB(BrAiu6YcxH9}ngd*`Z z$#)OFuCsRcVAE79pNG$yOzgMVUO9<9VJ9Pu`JSWnK8P_uYQR$B%x zPy+|Fd@P<@SW%rlH;~{`PNCkDR;sU0Qg(Dt(&+a)vCU~i`t^=dsiHqn8(|QMB+JI{4GbajhNsui*;ZTI=g@eDCa_mw ze4=+FF#WJ7G=ZSHBYq#`t;O7p`=y4?g>SF|HEJ)*0~5Zw8h)bQKyFl?Ge?EF2^Z2q+g4+(ldMbJ56UV*BZui3_+NPn?2Jxr zhso?iQWEpVH5}sZX;y)E_N&=P<-hgx7NO@{IfQ{!HjIZg);d5oik&s;qni!<_As`@ z8l?!NE^&U~6e=G&>(ZK!0nE#%-mqVb1l~ZcI5?#nQfUM37b2%t)_R1zG4yT(#Tehh z?{PuXG8CW4Wg*FLH90l`4=bM67VATi4n-(W+L=)atFRMXFqdO|qY(Bzhs#SD&);7a zE*73wt8nb}66drw{iln**0gP5`l}X4m)-CtXh*%SobL}30;G7?ZA;=%_Q18guc+$) z>NgW~TCQ~M##pLb#yXnaA>1fQ_KJbvh$@vOs$_znoA1#Pu{5g*^Mt|H1dJ-oN!&lq z4P5M40t9O74zh*sX_*X1)i^Ksa4VzO43LkiLMQ-r>?bWU+6Auf7rVa5RLo$Mq=|Yb zJKSzUH;WNbmYj1*7oGKj7?S~GB_T*zhwbIP8gr{v9zxCe{s^-h0y_vRWmB;Q$?L%< zw}O|h)QVgY?3u(N5~Mw`j%qjLTU-x_xC_EC0;Zvq4#MN3n#TeV@d1Rj??u(YPMWpz zyBEgTmnNrn>YV`;KJdrF1cXLjamMpu%hTrD?W&x>W>Lc!rNN1;6A!JqoQR zSQWx4e+(mm<`l%AoVSv{u4n2%)9=nDLq&m&B=R(C4J3;epQ;n#HfLb+!ORpzG@RSo z#J~ffozvSWLl;pRx^6=6dzd*{*0lDPm^cak0iB%$@a`P+4PKPOzpDibQ{3I$foOD> z8%6Wg#ja2Fa!%y=zJz|+vQyZX@Jp8f~uriEW+Gq#%__+>r5lr8_Y!!?ACt(aR&Q6TJ>NyZ*1Ms|PH3=ZnTE{%MNVLf+7unFy93qvnSbdfo{e>&#cpEkbf zS=cLm^v+=K6MV`UqbZQ&cMr-6n-nkOedf7j)`%@S44yc50e3KnTI!csFc@>MdUCA8 zsIBSY62|Cp&l9^)0_kYd$~SW}xym zHyG;XMcK5}1w@k-B>@@dsZnqbb%OGp zD08>9U~_aiZWW`EaxBl>liuS``jPK>nqRZL!y0(PRW7;r4UV6#GyNQftgTayR2!HC z5i(tQn;&-dzN5rUJ!-94uy3ERGx!FwBSomt2%9LLG2n5buN<@ZT|+Oj`{Co(eVDLJ z^P`JK1!|Q&f?tlWeF4`?xpe-G0{lyK|C0i6(Eld|_^af&vQz)87yOyukl2aNwUO`Tq?LF#hW+{BPhuu==De)+vIlg0j3aVFV)Sj7UYb zz_P+J(LAkie24ON0-@lzR|so+0WrQ7pjE!gy|5qPrO_GRtKOL&vha5>z8?(mnLpY4 z0w{SEniyHM(Q>^U3(EqtH*Ur=TjMV6OX4vy&zP1E=Ps8I(?jO|5Y|Q?@E4NruKKl4 z>&G@=bS{VQjyle(eb2}AksoWE?zu}$%%X3T-dXe>pBh{b19zP6HLlM|=v%H!?;Fxb z5f8#pyH~O2D~Jy@Ff{K=)yvXdBi+L&#{K=fZPKpzC}+>{mybd$cs`zZ>F?fal#1Z2 zO5MaD*DsYfvy&;b;qZGqBMbbp_1m3ArdG*H5tiiXvbPRrCXL8dgK)E9w=TmGs`LSw z?YrUTK`;&y-Q6#I4Rwn>Z1F`>qL`HQp?#H-IK>0wO2%FZMts|{W_O3_yu^4pHS8%W zk!3ZC?PwLoR@Wpq8ppQ;3us}>O_M7JCvZySs%Y|V#u_lPQcz~?F;&+YtmRi~*!7py zYCU9)9&LJJrp}yH?0bDA(^z9suhUK_-cvI9dm~0_9JRKCM5C(t=<+HC$5;Hqk<}^* zk>S#!=6K4Hr4ygUt!e>0B#Tu83mct6to`kPEMTVX(jr zCo%Smg=4jX^)ZT(Vc$m1S1Reu6S~ZgbSDvS&TK`OiTjLtI}(j?0+l&J3@k%;%t!vK z0~B^mO^c(+`H2<-EB6AV-{Q2_hv)F2eQ32=#I4eW8&*Xlb~+rmhj(S3CQ{pqDbJZO zSv?%JxPPxO-+`T1&M|6>7h&n62{}m-YK1=R_i505_}l8h=V-Ltm1e0P-OPCv{l0qw z`+F(x97Ux%Of3Y^fWSyXYj%4(N{^$2npqq}!awGjeg|1;5$%qOm6~KBCF`?sH>9!$obz_R7YRvE;uf>Ug_e zi>eY2J@%Zj$VE#1KF}Z~IVVEGSn78X$M^X*aPeW3jx8y{Ry`)}r|TtluR)^N9Ci2| z1O^pUNGw-)y-c#dNK5WZ8lJ{YkA{j$5n{3vq>#KQ(QQnH3@r&c4Jj%eUOFp&YX%~I zsrtE)e4g@n-L6_}`;?L{5BFiP-jyz%YGpj~WEY1>HsIRdL0v`V)BK0+>Gsn`K#2Hk ztxT*$Hpkq(+L%yNZX(Vr;km-gM&GSm|8K}B-lLovEh=PRPzL|)kMoS*>?F8wT(ZhT zlwqFZi(A+o)rE0x(a0NJJ2~6bL(mpfH477Dk_IjCHxucX6SJPIKbKbb(U5@psGLGVQt%ge5 zvTMyVQw@}%9>iotIhXfrr4*Z~v!CrBRF$DTrD!zqA)R(<^;CC2)0i<7xwJvwNXmhBlwSRUZy4 z@PtpAf{-V+fzq)Bs|+ZXQL5YX{vCK6ig7`!v6F1%ob_nJYt!P4j2o-d&vhD#;i}Hq zhYx4BgI^U>n8{5bbb89q*YT}P?6Oh{)>P4eER|YQ)VUg4M2Sh|{=Vz1CIraT102q> zNYmX~z^gW9USk)sdt<4>Gsu;|;X+)Px!F6a`%rbQ++)6638@Fl#A(O5Iu}uV3DOjt zu!SJyk3r1{-FOX)&NeV&0ynL@b_9145Bt8%6Lu|C>t*pp=df<-@RBpby?c zDFdm&1chMVu*HHlWsM=8pBaJN3S$~PFSkyPLnV5^zqRDthW)64i7+7?A>gEKY-bby zHa}pU+ODoR%c?-%#wwGX__+wd3A0{r#;3C!GWr*;0N0Ru4we&ahj{Ux^02xjubwxt2O9NfZB-egktLlz8^)&bh_;~A1M zimu5!2T?-MnA>q0)&jXPlzEyC!VBRYr<Q+Fj|{P3`QZ?*RYo5Zce(}bzHQ)iA=?QK`$&}K z>N&WUQyT+I80<2~h;O4c$fVo8L9vEegqYFX^SFKRqK8;XpZ9P)*LD^%VNA0n$zn7p z+jmg%grJ&*cM9E0k>Co3kdgOSGBaE4gM91`$fyfj=vr>elMxa~U+%rO}(5fb$Pa7Fa=4sObB z*O#A-DF+7id$kuuSmfl9uJ6*^Am>QL${)tlz$B zAz`3InxYdscjood>Bfl31;NWqe@(}AsZ8W3(#p11>u;PMm?lT28jzy7sjfy6DOdCP zn@;g;AG`8qsrsUyaty^<-K)zjZ;W)z6}h{nv8hqIs8iPY8W+Djw+*j)U1C);@QO}4 zPV6%uQh+)pj`e4)f*y=;j~qUVEqtS-Xxy6chwiN#LHZGi zj+tzo&-e*j{p2C-%x^+$5TPZx0l+E0Ss1Pp4m~|e&S>pKx6b_%{3%eciRax_sv?@j zKQ~V-{rKJ&gb(;6C#xnUsJ_OcR>?C0ngjKc%S31Eh+5;Wecj9^E7g4x9*5QtEmEP4 z3{cAZx(zo$x7HSDU^B+|+(IYO*V=bo+8uVw&474^XtNuRh;v!(OD03}$|4Y)+n3G_rbsF?>yO8mnr^uzkXL~9 zzBe7l`k)U_$FZ^?l0B-obaa$>uJ{?XH}#m0?xT#~Wnv_+oEjkF2+SD+U3yhm`2f;iY>@e#=Y(MQ*;wao_pRs=ZyDmZvk0y9^mKo-INaS?am_1@T^>T z(vxXcP1JOa)3_^q&JM-XtRF(2NtddfJqiqJ+bMJwxt7%#-A$yWUBUxi?KjxfzSO5B zief(unTkBL^Nmx7M%z1BbKI!Zn*J>G@GJdB>g5MuI-)Y^-v#(Th3!8DI2-f-N7witv>rV|BN7`p`yPO46$yt6|Afo zT#-z;2$PB|48c)kkwR60O!KW)E3JU2oHiK*qQu?jRTGcjT37R=^+vsmqlaM8X!kt@cZqc9o5hTHJHLo$XYrILS^ZqUcEol}! zD)+_?%dyzh1!?JbhiY=m1ZN_Yxzjt>qAm^Xe%)rL#*R)Rv|}ad#0feq-!oMt#in}s zOT0zYS|5VTljm)v>g|acTRNTTOsL@M2p@`J-T6VX^b4B`m)KsVLWU1XuK4Bz`SH_< zh7zvgRwRo7A9I>prHJI~b*P9HvH42J`!gp8vFPyC^OBlA3*k!5Xm0)Zi=IzyJleG- z%r{9i>FW3z*E+DT)Osav&mX0Va6>Tr^Q~b?r)di)&FW%CV~*aC>y?+?`O}K(=jku7 zHIgc{D$ErXT&n97)|-0sk`2c9yJyhvYJW%8Uhl&t;*h=CB$_RoDcgjq2xe zt|+q6vs516GVwcg%D5U7<3fWmuQZ7sO>#5uT%NUY{d9#IeAGu1ao#qv)8y(wB^q9X zZG2tJaTluGNh&l4VfRXdX&;x?2lx{5^8Rbk8oAEdZw!THiv5lZl~OYdl%NiCkcWwH zl+8Z^o@iLigeAZGpH2z(nZWk^))GUd0>J%XNJ)$7h*=`mUeD=v4U1i= z!peAg4PQHg%b``DyxSuvtkGk6;&8M1RaWAc!DnxQJ@1Zn#y$iFrq&^1C%cNy!6?dc z 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 Date: Wed, 31 Jul 2024 14:27:13 -0600 Subject: [PATCH 7/7] 7719: update spec link --- EIPS/eip-7719.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-7719.md b/EIPS/eip-7719.md index 895e68eade53b6..4ba8b46d02d48f 100644 --- a/EIPS/eip-7719.md +++ b/EIPS/eip-7719.md @@ -25,7 +25,7 @@ Instead of each Ethereum node storing a full copy of the block history, imagine ## Specification -Specification of the _Portal History Spec_ can be found at [`/history-network.md`](https://github.com/ethereum/portal-network-specs/blob/882a254b9f4ab73129bc7c8e74a272a72e900069/history/history-network.md). +Specification of the _Portal History Network_ are on [ethereum/portal-network-specs](https://github.com/ethereum/portal-network-specs/blob/bc7f4d0d930f79a610f54ab3160bd3ee93e92cae/history/history-network.md). ## Rationale