From 81e210d567661496368aabcb9a20e6af4196bc8d Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Fri, 15 Nov 2024 09:31:51 -0300 Subject: [PATCH 01/29] persist last_verfied_block in prover_server --- crates/l2/.env.example | 1 + crates/l2/proposer/l1_committer.rs | 38 +-------------- crates/l2/proposer/prover_server.rs | 45 ++++++++++++------ crates/l2/utils/eth_client/errors.rs | 2 + crates/l2/utils/eth_client/mod.rs | 70 ++++++++++++++++++++++++++++ 5 files changed, 104 insertions(+), 52 deletions(-) diff --git a/crates/l2/.env.example b/crates/l2/.env.example index a90392b37..ae6ab5310 100644 --- a/crates/l2/.env.example +++ b/crates/l2/.env.example @@ -24,6 +24,7 @@ PROVER_SERVER_LISTEN_PORT=3000 PROVER_SERVER_VERIFIER_ADDRESS=0xE25583099BA105D9ec0A67f5Ae86D90e50036425 PROVER_SERVER_VERIFIER_PRIVATE_KEY=0x39725efee3fb28614de3bacaffe4cc4bd8c436257e2c8bb887c4b5c4be45e76d PROVER_CLIENT_PROVER_SERVER_ENDPOINT=localhost:3000 +PROVER_CLIENT_INTERVAL_MS=5000 COMMITTER_ON_CHAIN_PROPOSER_ADDRESS=0xe9927d77c931f8648da4cc6751ef4e5e2ce74608 COMMITTER_L1_ADDRESS=0x3d1e15a1a55578f7c920884a9943b3b35d0d885b COMMITTER_L1_PRIVATE_KEY=0x385c546456b6a603a1cfcaa9ec9494ba4832da08dd6bcf4de9a71e4a01b74924 diff --git a/crates/l2/proposer/l1_committer.rs b/crates/l2/proposer/l1_committer.rs index c803d90c4..3eb465895 100644 --- a/crates/l2/proposer/l1_committer.rs +++ b/crates/l2/proposer/l1_committer.rs @@ -70,26 +70,12 @@ impl Committer { pub async fn start(&self) -> Result<(), CommitterError> { loop { - let last_committed_block = get_last_committed_block( + let last_committed_block = EthClient::get_last_committed_block( &self.eth_client, self.on_chain_proposer_address, - Overrides::default(), ) .await?; - let last_committed_block = last_committed_block - .strip_prefix("0x") - .expect("Couldn't strip prefix from last_committed_block."); - - if last_committed_block.is_empty() { - error!("Failed to fetch last_committed_block"); - panic!("Failed to fetch last_committed_block. Manual intervention required"); - } - - let last_committed_block = U256::from_str_radix(last_committed_block, 16) - .map_err(CommitterError::from)? - .as_u64(); - let block_number_to_fetch = if last_committed_block == u64::MAX { 0 } else { @@ -422,28 +408,6 @@ pub async fn send_transaction_with_calldata( .await } -async fn get_last_committed_block( - eth_client: &EthClient, - contract_address: Address, - overrides: Overrides, -) -> Result { - let selector = keccak(b"lastCommittedBlock()") - .as_bytes() - .get(..4) - .expect("Failed to get initialize selector") - .to_vec(); - - let mut calldata = Vec::new(); - calldata.extend_from_slice(&selector); - - let leading_zeros = 32 - ((calldata.len() - 4) % 32); - calldata.extend(vec![0; leading_zeros]); - - eth_client - .call(contract_address, calldata.into(), overrides) - .await -} - async fn wrapped_eip4844_transaction_handler( eth_client: &EthClient, wrapped_eip4844: &WrappedEIP4844Transaction, diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index 8522af1b6..e0d8cea8f 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -31,7 +31,7 @@ pub struct ProverInputData { use crate::utils::{ config::{committer::CommitterConfig, eth::EthConfig, prover_server::ProverServerConfig}, - eth_client::{eth_sender::Overrides, EthClient}, + eth_client::{errors::EthClientError, eth_sender::Overrides, EthClient}, }; use super::errors::ProverServerError; @@ -41,7 +41,9 @@ pub async fn start_prover_server(store: Store) { let eth_config = EthConfig::from_env().expect("EthConfig::from_env()"); let proposer_config = CommitterConfig::from_env().expect("CommitterConfig::from_env()"); let mut prover_server = - ProverServer::new_from_config(server_config.clone(), &proposer_config, eth_config, store); + ProverServer::new_from_config(server_config.clone(), &proposer_config, eth_config, store) + .await + .unwrap(); // Using an unwrap, if we can't initialize the prover_server any error_handling is pointless, we may want to retry inside the initialization. let (tx, rx) = mpsc::channel(); @@ -95,26 +97,38 @@ struct ProverServer { on_chain_proposer_address: Address, verifier_address: Address, verifier_private_key: SecretKey, - latest_proven_block: u64, + last_verified_block: u64, } impl ProverServer { - pub fn new_from_config( + pub async fn new_from_config( config: ProverServerConfig, committer_config: &CommitterConfig, eth_config: EthConfig, store: Store, - ) -> Self { - Self { + ) -> Result { + let eth_client = EthClient::new(ð_config.rpc_url); + let on_chain_proposer_address = committer_config.on_chain_proposer_address; + + let last_verified_block = + EthClient::get_last_verified_block(ð_client, on_chain_proposer_address).await?; + + let last_verified_block = if last_verified_block == u64::MAX { + 0 + } else { + last_verified_block + }; + + Ok(Self { ip: config.listen_ip, port: config.listen_port, store, - eth_client: EthClient::new(ð_config.rpc_url), - on_chain_proposer_address: committer_config.on_chain_proposer_address, + eth_client, + on_chain_proposer_address, verifier_address: config.verifier_address, verifier_private_key: config.verifier_private_key, - latest_proven_block: 0, - } + last_verified_block, + }) } async fn handle_sigint(tx: mpsc::Sender<()>, config: ProverServerConfig) { @@ -150,7 +164,7 @@ impl ProverServer { match data { Ok(ProofData::Request) => { if let Err(e) = self - .handle_request(&mut stream, self.latest_proven_block + 1) + .handle_request(&mut stream, self.last_verified_block + 1) .await { warn!("Failed to handle request: {e}"); @@ -167,8 +181,8 @@ impl ProverServer { // Seems to be stopping the prover_server <--> prover_client self.handle_proof_submission(block_number, receipt).await?; - assert!(block_number == (self.latest_proven_block + 1), "Prover Client submitted an invalid block_number: {block_number}. The last_proved_block is: {}", self.latest_proven_block); - self.latest_proven_block = block_number; + assert!(block_number == (self.last_verified_block + 1), "Prover Client submitted an invalid block_number: {block_number}. The last_proved_block is: {}", self.last_verified_block); + self.last_verified_block = block_number; } Err(e) => { warn!("Failed to parse request: {e}"); @@ -255,8 +269,9 @@ impl ProverServer { let journal_digest = Digestible::digest(&receipt.0.journal); - // Retry proof verification, the transaction may fail if the blobs commited were not included. - // The error message is `address already reserved`. Retrying 100 times, if there is another error it panics. + // Retry proof verification, the transaction will fail if the block wasn't committed. + // It's being caused by the prover_server advancing faster than the block_generation_time + commitment_tx_approval_time + // The error message is `block not committed`. Retrying 100 times, if there is another error it panics. let mut attempts = 0; let max_retries = 100; let retry_secs = std::time::Duration::from_secs(5); diff --git a/crates/l2/utils/eth_client/errors.rs b/crates/l2/utils/eth_client/errors.rs index 80db0773a..baa885332 100644 --- a/crates/l2/utils/eth_client/errors.rs +++ b/crates/l2/utils/eth_client/errors.rs @@ -32,6 +32,8 @@ pub enum EthClientError { GetTransactionByHashError(#[from] GetTransactionByHashError), #[error("Unreachable nonce")] UnrecheableNonce, + #[error("Error: {0}")] + Custom(String), } #[derive(Debug, thiserror::Error)] diff --git a/crates/l2/utils/eth_client/mod.rs b/crates/l2/utils/eth_client/mod.rs index 30be0d3d8..28061c85e 100644 --- a/crates/l2/utils/eth_client/mod.rs +++ b/crates/l2/utils/eth_client/mod.rs @@ -20,6 +20,7 @@ use ethereum_rust_rpc::{ utils::{RpcErrorResponse, RpcRequest, RpcRequestId, RpcSuccessResponse}, }; use ethereum_types::{Address, H256, U256}; +use keccak_hash::keccak; use reqwest::Client; use secp256k1::SecretKey; use serde::{Deserialize, Serialize}; @@ -555,6 +556,75 @@ impl EthClient { let address = overrides.from.ok_or(EthClientError::UnrecheableNonce)?; self.get_nonce(address).await } + + pub async fn get_last_committed_block( + eth_client: &EthClient, + on_chain_proposer_address: Address, + ) -> Result { + Self::_call_block_variable( + eth_client, + b"lastCommittedBlock()", + on_chain_proposer_address, + ) + .await + } + + pub async fn get_last_verified_block( + eth_client: &EthClient, + on_chain_proposer_address: Address, + ) -> Result { + Self::_call_block_variable( + eth_client, + b"lastVerifiedBlock()", + on_chain_proposer_address, + ) + .await + } + + async fn _call_block_variable( + eth_client: &EthClient, + selector: &[u8], + on_chain_proposer_address: Address, + ) -> Result { + let selector = keccak(selector) + .as_bytes() + .get(..4) + .expect("Failed to get initialize selector") + .to_vec(); + + let mut calldata = Vec::new(); + calldata.extend_from_slice(&selector); + + let leading_zeros = 32 - ((calldata.len() - 4) % 32); + calldata.extend(vec![0; leading_zeros]); + + let hex_string = eth_client + .call( + on_chain_proposer_address, + calldata.into(), + Overrides::default(), + ) + .await?; + + let hex_string = hex_string + .strip_prefix("0x") + .expect("Couldn't strip prefix from last_committed_block."); + + // TODO return error + if hex_string.is_empty() { + panic!("Failed to fetch last_committed_block. Manual intervention required"); + } + + let value = U256::from_str_radix(hex_string, 16) + .map_err(|_| { + EthClientError::Custom( + "Failed to parse after call, U256::from_str_radix failed.".to_owned(), + ) + })? + .as_u64(); + + Ok(value) + } } #[derive(Serialize, Deserialize, Debug)] From c72c380e45b455e5c82ab24bb2adcd40c14359dc Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Fri, 15 Nov 2024 11:51:41 -0300 Subject: [PATCH 02/29] pr_comments: unwrap -> expect --- crates/l2/proposer/prover_server.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index e0d8cea8f..d80c724ff 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -43,7 +43,7 @@ pub async fn start_prover_server(store: Store) { let mut prover_server = ProverServer::new_from_config(server_config.clone(), &proposer_config, eth_config, store) .await - .unwrap(); // Using an unwrap, if we can't initialize the prover_server any error_handling is pointless, we may want to retry inside the initialization. + .expect("ProverServer::new_from_config()"); let (tx, rx) = mpsc::channel(); From bd3c7cc08b80beab77fc6bdf013153653362f2b3 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Fri, 15 Nov 2024 16:39:04 -0300 Subject: [PATCH 03/29] cargo clippy --- crates/l2/proposer/prover_server.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index 126e041c6..0190dd7ef 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -1,4 +1,3 @@ -use bytes::Bytes; use ethereum_rust_storage::Store; use ethereum_rust_vm::execution_db::ExecutionDB; use keccak_hash::keccak; From 772b1fa6bc6c75ae09b01c2c0adf846db4de3337 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Fri, 15 Nov 2024 12:40:06 -0300 Subject: [PATCH 04/29] wip --- crates/l2/proposer/prover_server.rs | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index 0190dd7ef..bdab4a370 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -256,12 +256,36 @@ impl ProverServer { block_number, receipt, }) => { + // When the prover_server gets the zkProof: + // 1. Check the block_number that is going to be submitted to see if it was already committed. + // - The last_committed_block_number has to be greater or equal to the block_number to verify. + // 2. Send the `verify()` transaction and wait for it. + // 3. Handle the Submit with a SubmitAck. + // Note: this may be a bottleneck, the prover_client is idle waiting for the transaction to be validated. + // But a SubmitAck may not be representing that we want to advance in the proving process. + // Extra logic to save the proof and advance the proof generation process in order to send saved proof incrementally + // may help. + + loop { + let last_committed_block = EthClient::get_last_committed_block( + &self.eth_client, + self.on_chain_proposer_address, + ) + .await?; + + if last_committed_block >= block_number { + self.handle_proof_submission(block_number, receipt.clone()) + .await?; + break; + } else { + sleep(std::time::Duration::from_secs(1)).await; + } + } + if let Err(e) = self.handle_submit(&mut stream, block_number) { error!("Failed to handle submit_ack: {e}"); panic!("Failed to handle submit_ack: {e}"); } - // Seems to be stopping the prover_server <--> prover_client - self.handle_proof_submission(block_number, receipt).await?; assert!(block_number == (self.last_verified_block + 1), "Prover Client submitted an invalid block_number: {block_number}. The last_proved_block is: {}", self.last_verified_block); self.last_verified_block = block_number; From a195fe5302297e07b46f3a981e7410e0934d879b Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Fri, 15 Nov 2024 16:18:36 -0300 Subject: [PATCH 05/29] prover_server: only respond if block was committed --- crates/l2/proposer/errors.rs | 8 +++ crates/l2/proposer/prover_server.rs | 81 +++++++++++++---------------- 2 files changed, 45 insertions(+), 44 deletions(-) diff --git a/crates/l2/proposer/errors.rs b/crates/l2/proposer/errors.rs index df37f122c..80cccd853 100644 --- a/crates/l2/proposer/errors.rs +++ b/crates/l2/proposer/errors.rs @@ -28,6 +28,14 @@ pub enum ProverServerError { EthClientError(#[from] EthClientError), #[error("ProverServer failed to send transaction: {0}")] FailedToVerifyProofOnChain(String), + #[error("ProverServer failed to write to TcpStream: {0}")] + WriteError(String), + #[error("ProverServer failed to access Store: {0}")] + FailedAccessingStore(#[from] StoreError), + #[error("ProverServer failed to get data from Store: {0}")] + ItemNotFoundInStore(String), + #[error("ProverServer failed to create inputs for the Prover: {0}")] + FailedToCreateProverInputs(#[from] EvmError), } #[derive(Debug, thiserror::Error)] diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index bdab4a370..89dcc80ef 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -1,5 +1,5 @@ -use ethereum_rust_storage::Store; -use ethereum_rust_vm::execution_db::ExecutionDB; +use ethereum_rust_storage::{error::StoreError, Store}; +use ethereum_rust_vm::{execution_db::ExecutionDB, EvmError}; use keccak_hash::keccak; use secp256k1::SecretKey; use serde::{Deserialize, Serialize}; @@ -256,32 +256,9 @@ impl ProverServer { block_number, receipt, }) => { - // When the prover_server gets the zkProof: - // 1. Check the block_number that is going to be submitted to see if it was already committed. - // - The last_committed_block_number has to be greater or equal to the block_number to verify. - // 2. Send the `verify()` transaction and wait for it. - // 3. Handle the Submit with a SubmitAck. - // Note: this may be a bottleneck, the prover_client is idle waiting for the transaction to be validated. - // But a SubmitAck may not be representing that we want to advance in the proving process. - // Extra logic to save the proof and advance the proof generation process in order to send saved proof incrementally - // may help. - - loop { - let last_committed_block = EthClient::get_last_committed_block( - &self.eth_client, - self.on_chain_proposer_address, - ) + self.handle_proof_submission(block_number, receipt.clone()) .await?; - if last_committed_block >= block_number { - self.handle_proof_submission(block_number, receipt.clone()) - .await?; - break; - } else { - sleep(std::time::Duration::from_secs(1)).await; - } - } - if let Err(e) = self.handle_submit(&mut stream, block_number) { error!("Failed to handle submit_ack: {e}"); panic!("Failed to handle submit_ack: {e}"); @@ -306,16 +283,18 @@ impl ProverServer { &self, stream: &mut TcpStream, block_number: u64, - ) -> Result<(), String> { + ) -> Result<(), ProverServerError> { debug!("Request received"); - let latest_block_number = self - .store - .get_latest_block_number() - .map_err(|e| e.to_string())? - .unwrap(); + let last_committed_block = + EthClient::get_last_committed_block(&self.eth_client, self.on_chain_proposer_address) + .await?; - let response = if block_number > latest_block_number { + // Send inputs to the prover only if the last_committed_block (that comes from the OnChainProposer contract) + // is greater or equal to the next block_number. + // Since the block_number passed to the function is the lastVerifiedBlock, we are essentially checking if the + // block was committed after starting the proving process. + let response = if last_committed_block < block_number { let response = ProofData::Response { block_number: None, input: None, @@ -333,15 +312,21 @@ impl ProverServer { }; let writer = BufWriter::new(stream); - serde_json::to_writer(writer, &response).map_err(|e| e.to_string()) + serde_json::to_writer(writer, &response) + .map_err(|e| ProverServerError::WriteError(format!("handle_request: {e}"))) } - fn handle_submit(&self, stream: &mut TcpStream, block_number: u64) -> Result<(), String> { + fn handle_submit( + &self, + stream: &mut TcpStream, + block_number: u64, + ) -> Result<(), ProverServerError> { debug!("Submit received for BlockNumber: {block_number}"); let response = ProofData::SubmitAck { block_number }; let writer = BufWriter::new(stream); - serde_json::to_writer(writer, &response).map_err(|e| e.to_string()) + serde_json::to_writer(writer, &response) + .map_err(|e| ProverServerError::WriteError(format!("handle_submit: {e}"))) } async fn handle_proof_submission( @@ -396,6 +381,8 @@ impl ProverServer { Err(e) => { warn!("Failed to send proof to block {block_number:#x}. Error: {e}"); let eth_client_error = format!("{e}"); + // We should never get this error message, it's being handled + // by the line that checks: last_committed_block < block_number if eth_client_error.contains("block not committed") { attempts += 1; if attempts < max_retries { @@ -416,27 +403,33 @@ impl ProverServer { Ok(()) } - fn create_prover_input(&self, block_number: u64) -> Result { + fn create_prover_input(&self, block_number: u64) -> Result { let header = self .store .get_block_header(block_number) - .map_err(|err| err.to_string())? - .ok_or("block header not found")?; + .map_err(StoreError::from)? + .ok_or(ProverServerError::ItemNotFoundInStore(format!( + "block header not found for {block_number}" + )))?; let body = self .store .get_block_body(block_number) - .map_err(|err| err.to_string())? - .ok_or("block body not found")?; + .map_err(StoreError::from)? + .ok_or(ProverServerError::ItemNotFoundInStore(format!( + "block body not found for {block_number}" + )))?; let block = Block::new(header, body); - let db = ExecutionDB::from_exec(&block, &self.store).map_err(|err| err.to_string())?; + let db = ExecutionDB::from_exec(&block, &self.store).map_err(EvmError::from)?; let parent_header = self .store .get_block_header_by_hash(block.header.parent_hash) - .map_err(|err| err.to_string())? - .ok_or("missing parent header".to_string())?; + .map_err(StoreError::from)? + .ok_or(ProverServerError::ItemNotFoundInStore(format!( + "missing parent header for {block_number}" + )))?; debug!("Created prover input for block {block_number}"); From 7482b3f14aeebffbbf714e0df58ff5a79ef1f1a7 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Tue, 19 Nov 2024 11:55:21 -0300 Subject: [PATCH 06/29] add docs for OnChainProposer.verify() --- .../l2/contracts/src/l1/OnChainProposer.sol | 13 ++-- crates/l2/proposer/prover_server.rs | 60 +++++++------------ 2 files changed, 32 insertions(+), 41 deletions(-) diff --git a/crates/l2/contracts/src/l1/OnChainProposer.sol b/crates/l2/contracts/src/l1/OnChainProposer.sol index ccdc8b944..1530294c3 100644 --- a/crates/l2/contracts/src/l1/OnChainProposer.sol +++ b/crates/l2/contracts/src/l1/OnChainProposer.sol @@ -122,20 +122,25 @@ contract OnChainProposer is IOnChainProposer, ReentrancyGuard { } /// @inheritdoc IOnChainProposer + /// @notice The first `require` checks that the block number is the subsequent block. + /// @notice The second `require` checks if the block has been committed. + /// @notice The order of these `require` statements is important. + /// After the verification process, we delete the `blockCommitments` for `blockNumber - 1`. This means that when checking the block, + /// we might get an error indicating that the block hasn’t been committed, even though it was committed but deleted. Therefore, it has already been verified. function verify( uint256 blockNumber, bytes calldata blockProof, bytes32 imageId, bytes32 journalDigest ) external override { - require( - blockCommitments[blockNumber].commitmentHash != bytes32(0), - "OnChainProposer: block not committed" - ); require( blockNumber == lastVerifiedBlock + 1, "OnChainProposer: block already verified" ); + require( + blockCommitments[blockNumber].commitmentHash != bytes32(0), + "OnChainProposer: block not committed" + ); if (R0VERIFIER != DEV_MODE) { // If the verification fails, it will revert. diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index 89dcc80ef..3a0411f10 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -293,7 +293,7 @@ impl ProverServer { // Send inputs to the prover only if the last_committed_block (that comes from the OnChainProposer contract) // is greater or equal to the next block_number. // Since the block_number passed to the function is the lastVerifiedBlock, we are essentially checking if the - // block was committed after starting the proving process. + // block was committed before starting the proving process. let response = if last_committed_block < block_number { let response = ProofData::Response { block_number: None, @@ -360,43 +360,29 @@ impl ProverServer { let journal_digest = Digestible::digest(&receipt.0.journal); - // Retry proof verification, the transaction will fail if the block wasn't committed. - // It's being caused by the prover_server advancing faster than the block_generation_time + commitment_tx_approval_time - // The error message is `block not committed`. Retrying 100 times, if there is another error it panics. - let mut attempts = 0; - let max_retries = 100; - let retry_secs = std::time::Duration::from_secs(5); - while attempts < max_retries { - match self - .send_proof(block_number, &seal, image_id, journal_digest) - .await - { - Ok(tx_hash) => { - info!( - "Sent proof for block {block_number}, with transaction hash {tx_hash:#x}" - ); - break; // Exit the while loop - } + // The verify function in the OnChainProposer contract has two requires: + // "OnChainProposer: block not committed" + // "OnChainProposer: block already verified" + // + // We should never get `block not committed`, it's being handled + // by the line that checks: last_committed_block < block_number. + // + // If we get `block already verified`, it means that we are sending a block_number that is + // smaller than the `lastVerfiedBlock` from the contract, which is being tracked by ProverServer::last_verified_block. + // We shouldn't get this error neither. + // + // Both errors are taken into account, in conjunction with any error derived from sending the transactions. + match self + .send_proof(block_number, &seal, image_id, journal_digest) + .await + { + Ok(tx_hash) => { + info!("Sent proof for block {block_number}, with transaction hash {tx_hash:#x}"); + } - Err(e) => { - warn!("Failed to send proof to block {block_number:#x}. Error: {e}"); - let eth_client_error = format!("{e}"); - // We should never get this error message, it's being handled - // by the line that checks: last_committed_block < block_number - if eth_client_error.contains("block not committed") { - attempts += 1; - if attempts < max_retries { - warn!("Retrying... Attempt {}/{}", attempts, max_retries); - sleep(retry_secs).await; // Wait before retrying - } else { - error!("Max retries reached. Giving up on sending proof for block {block_number:#x}."); - panic!("Failed to send proof after {} attempts.", max_retries); - } - } else { - error!("Failed to send proof to block {block_number:#x}. Manual intervention required: {e}"); - panic!("Failed to send proof to block {block_number:#x}. Manual intervention required: {e}"); - } - } + Err(e) => { + error!("Failed to send proof to block {block_number:#x}. Manual intervention required: {e}"); + panic!("Failed to send proof to block {block_number:#x}. Manual intervention required: {e}"); } } From fe4d0d97f215ed7aa5dc5bb5149d2846c426c9f6 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Tue, 19 Nov 2024 12:02:38 -0300 Subject: [PATCH 07/29] pr_comments: rm map_err --- crates/l2/proposer/prover_server.rs | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index 3a0411f10..5292dd0fc 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -1,4 +1,4 @@ -use ethereum_rust_storage::{error::StoreError, Store}; +use ethereum_rust_storage::Store; use ethereum_rust_vm::{execution_db::ExecutionDB, EvmError}; use keccak_hash::keccak; use secp256k1::SecretKey; @@ -390,20 +390,16 @@ impl ProverServer { } fn create_prover_input(&self, block_number: u64) -> Result { - let header = self - .store - .get_block_header(block_number) - .map_err(StoreError::from)? - .ok_or(ProverServerError::ItemNotFoundInStore(format!( + let header = self.store.get_block_header(block_number)?.ok_or( + ProverServerError::ItemNotFoundInStore(format!( "block header not found for {block_number}" - )))?; - let body = self - .store - .get_block_body(block_number) - .map_err(StoreError::from)? - .ok_or(ProverServerError::ItemNotFoundInStore(format!( + )), + )?; + let body = self.store.get_block_body(block_number)?.ok_or( + ProverServerError::ItemNotFoundInStore(format!( "block body not found for {block_number}" - )))?; + )), + )?; let block = Block::new(header, body); @@ -411,8 +407,7 @@ impl ProverServer { let parent_header = self .store - .get_block_header_by_hash(block.header.parent_hash) - .map_err(StoreError::from)? + .get_block_header_by_hash(block.header.parent_hash)? .ok_or(ProverServerError::ItemNotFoundInStore(format!( "missing parent header for {block_number}" )))?; From d72d0fe4b389efd1f9dc1a44fd2df338b05db18c Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Tue, 19 Nov 2024 12:31:19 -0300 Subject: [PATCH 08/29] docs --- crates/l2/proposer/prover_server.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index 5292dd0fc..0a34aed8c 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -360,18 +360,18 @@ impl ProverServer { let journal_digest = Digestible::digest(&receipt.0.journal); - // The verify function in the OnChainProposer contract has two requires: + // The `verify` function in the `OnChainProposer` contract has two `require` checks: // "OnChainProposer: block not committed" // "OnChainProposer: block already verified" // - // We should never get `block not committed`, it's being handled - // by the line that checks: last_committed_block < block_number. + // We should never encounter the "block not committed" error, as it's handled + // by the check: `last_committed_block < block_number`. // - // If we get `block already verified`, it means that we are sending a block_number that is - // smaller than the `lastVerfiedBlock` from the contract, which is being tracked by ProverServer::last_verified_block. - // We shouldn't get this error neither. + // If we get the "block already verified" error, it means we are submitting a `block_number` + // smaller than the `lastVerifiedBlock` tracked by the contract, which is stored in `ProverServer::last_verified_block`. + // We shouldn't encounter this error either. // - // Both errors are taken into account, in conjunction with any error derived from sending the transactions. + // Both errors will trigger a panic, along with any errors resulting from sending the transactions. match self .send_proof(block_number, &seal, image_id, journal_digest) .await From 48c7bfc1341a7a4bb807e350ce5e3202e098298b Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Wed, 20 Nov 2024 15:20:41 -0300 Subject: [PATCH 09/29] fix --- crates/l2/proposer/prover_server.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index 99bf6c041..72e35694d 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -1,5 +1,5 @@ use ethrex_storage::Store; -use ethrex_vm::execution_db::ExecutionDB; +use ethrex_vm::{execution_db::ExecutionDB, EvmError}; use keccak_hash::keccak; use secp256k1::SecretKey; use serde::{Deserialize, Serialize}; From 1a53969d84542fd09fcacd7fae7194af0e29ce91 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Wed, 20 Nov 2024 16:50:00 -0300 Subject: [PATCH 10/29] retry if any error is present --- crates/l2/proposer/l1_committer.rs | 81 +++++++++-------------------- crates/l2/proposer/prover_server.rs | 30 +++++++---- 2 files changed, 45 insertions(+), 66 deletions(-) diff --git a/crates/l2/proposer/l1_committer.rs b/crates/l2/proposer/l1_committer.rs index a07eb7d18..f96439ea0 100644 --- a/crates/l2/proposer/l1_committer.rs +++ b/crates/l2/proposer/l1_committer.rs @@ -5,16 +5,15 @@ use crate::{ }, utils::{ config::{committer::CommitterConfig, eth::EthConfig}, - eth_client::{errors::EthClientError, eth_sender::Overrides, EthClient}, + eth_client::{eth_sender::Overrides, EthClient}, merkle_tree::merkelize, }, }; use bytes::Bytes; -use ethrex_blockchain::constants::TX_GAS_COST; use ethrex_core::{ types::{ - blobs_bundle, BlobsBundle, Block, EIP1559Transaction, GenericTransaction, - PrivilegedL2Transaction, PrivilegedTxType, Transaction, TxKind, + blobs_bundle, BlobsBundle, Block, PrivilegedL2Transaction, PrivilegedTxType, Transaction, + TxKind, }, Address, H256, U256, }; @@ -121,23 +120,27 @@ impl Committer { let blobs_bundle = self.generate_blobs_bundle(state_diff.clone())?; let head_block_hash = block_to_commit.hash(); - match self - .send_commitment( - block_to_commit.header.number, - withdrawal_logs_merkle_root, - deposit_logs_hash, - blobs_bundle, - ) - .await - { - Ok(commit_tx_hash) => { - info!( - "Sent commitment to block {head_block_hash:#x}, with transaction hash {commit_tx_hash:#x}" - ); - } - Err(error) => { - error!("Failed to send commitment to block {head_block_hash:#x}. Manual intervention required: {error}"); - panic!("Failed to send commitment to block {head_block_hash:#x}. Manual intervention required: {error}"); + let mut retries = 0; + let max_retries: u32 = 100; + while retries < max_retries { + match self + .send_commitment( + block_to_commit.header.number, + withdrawal_logs_merkle_root, + deposit_logs_hash, + &blobs_bundle, + ) + .await + { + Ok(commit_tx_hash) => { + info!("Sent commitment to block {head_block_hash:#x}, with transaction hash {commit_tx_hash:#x}"); + break; + } + Err(error) => { + error!("Failed to send commitment to block {head_block_hash:#x}. Manual intervention required: {error}"); + retries += 1; + sleep(Duration::from_secs(2)).await; + } } } } @@ -291,7 +294,7 @@ impl Committer { block_number: u64, withdrawal_logs_merkle_root: H256, deposit_logs_hash: H256, - blobs_bundle: BlobsBundle, + blobs_bundle: &BlobsBundle, ) -> Result { info!("Sending commitment for block {block_number}"); @@ -326,7 +329,7 @@ impl Committer { gas_price_per_blob: Some(U256::from_dec_str("100000000000").unwrap()), ..Default::default() }, - blobs_bundle, + blobs_bundle.clone(), ) .await .map_err(CommitterError::from)?; @@ -352,38 +355,6 @@ impl Committer { } } -pub async fn send_transaction_with_calldata( - eth_client: &EthClient, - l1_address: Address, - l1_private_key: SecretKey, - to: Address, - nonce: Option, - calldata: Bytes, -) -> Result { - let mut tx = EIP1559Transaction { - to: TxKind::Call(to), - data: calldata, - max_fee_per_gas: eth_client.get_gas_price().await?.as_u64() * 2, - nonce: nonce.unwrap_or(eth_client.get_nonce(l1_address).await?), - chain_id: eth_client.get_chain_id().await?.as_u64(), - // Should the max_priority_fee_per_gas be dynamic? - max_priority_fee_per_gas: 10u64, - ..Default::default() - }; - - let mut generic_tx = GenericTransaction::from(tx.clone()); - generic_tx.from = l1_address; - - tx.gas_limit = eth_client - .estimate_gas(generic_tx) - .await? - .saturating_add(TX_GAS_COST); - - eth_client - .send_eip1559_transaction(tx, &l1_private_key) - .await -} - async fn wrapped_eip4844_transaction_handler( eth_client: &EthClient, wrapped_eip4844: &WrappedEIP4844Transaction, diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index 72e35694d..1c5daeb73 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -371,18 +371,26 @@ impl ProverServer { // smaller than the `lastVerifiedBlock` tracked by the contract, which is stored in `ProverServer::last_verified_block`. // We shouldn't encounter this error either. // - // Both errors will trigger a panic, along with any errors resulting from sending the transactions. - match self - .send_proof(block_number, &seal, image_id, journal_digest) - .await - { - Ok(tx_hash) => { - info!("Sent proof for block {block_number}, with transaction hash {tx_hash:#x}"); - } + // Both errors will trigger a error, along with any errors resulting from sending the transactions. + let mut retries = 0; + let max_retries: u32 = 100; + while retries < max_retries { + match self + .send_proof(block_number, &seal, image_id, journal_digest) + .await + { + Ok(tx_hash) => { + info!( + "Sent proof for block {block_number}, with transaction hash {tx_hash:#x}" + ); + break; + } - Err(e) => { - error!("Failed to send proof to block {block_number:#x}. Manual intervention required: {e}"); - panic!("Failed to send proof to block {block_number:#x}. Manual intervention required: {e}"); + Err(e) => { + error!("Failed to send proof to block {block_number:#x}. Retrying [{retries}/{max_retries}]. Error: {e}"); + retries += 1; + sleep(Duration::from_secs(2)).await; + } } } From 4bb237dcb570750de5f722ef286e3b2284f5c13c Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Wed, 20 Nov 2024 17:56:22 -0300 Subject: [PATCH 11/29] separate logic into 2 different functions --- crates/l2/proposer/l1_committer.rs | 17 ++------------ crates/l2/proposer/prover_server.rs | 12 ++-------- crates/l2/utils/eth_client/mod.rs | 36 +++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 25 deletions(-) diff --git a/crates/l2/proposer/l1_committer.rs b/crates/l2/proposer/l1_committer.rs index f96439ea0..5d1b716ba 100644 --- a/crates/l2/proposer/l1_committer.rs +++ b/crates/l2/proposer/l1_committer.rs @@ -386,24 +386,11 @@ async fn wrapped_eip4844_transaction_handler( } } - // If receipt was not found, send the same tx(same nonce) but with more gas. - // Sometimes the penalty is a 100% warn!("Transaction not confirmed, resending with 110% more gas..."); - // Increase max fee per gas by 110% (set it to 210% of the original) - wrapped_tx.tx.max_fee_per_gas = - (wrapped_tx.tx.max_fee_per_gas as f64 * 2.1).round() as u64; - wrapped_tx.tx.max_priority_fee_per_gas = - (wrapped_tx.tx.max_priority_fee_per_gas as f64 * 2.1).round() as u64; - wrapped_tx.tx.max_fee_per_blob_gas = wrapped_tx - .tx - .max_fee_per_blob_gas - .saturating_mul(U256::from(20)) - .div(10); commit_tx_hash = eth_client - .send_eip4844_transaction(wrapped_tx.clone(), l1_private_key) - .await - .map_err(CommitterError::from)?; + .bump_and_resend_eip4844(&mut wrapped_tx, l1_private_key) + .await?; retries += 1; } diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index 1c5daeb73..01afcb5bf 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -541,18 +541,10 @@ async fn eip1559_transaction_handler( } } - // If receipt was not found, send the same tx(same nonce) but with more gas. - // Sometimes the penalty is a 100% warn!("Transaction not confirmed, resending with 110% more gas..."); - // Increase max fee per gas by 110% (set it to 210% of the original) - tx.max_fee_per_gas = (tx.max_fee_per_gas as f64 * 2.1).round() as u64; - tx.max_priority_fee_per_gas += - (tx.max_priority_fee_per_gas as f64 * 2.1).round() as u64; - verify_tx_hash = eth_client - .send_eip1559_transaction(tx.clone(), l1_private_key) - .await - .map_err(ProverServerError::from)?; + .bump_and_resend_eip1559(&mut tx, l1_private_key) + .await?; retries += 1; } diff --git a/crates/l2/utils/eth_client/mod.rs b/crates/l2/utils/eth_client/mod.rs index 229befe99..3d6069643 100644 --- a/crates/l2/utils/eth_client/mod.rs +++ b/crates/l2/utils/eth_client/mod.rs @@ -26,6 +26,7 @@ use secp256k1::SecretKey; use serde::{Deserialize, Serialize}; use serde_json::json; use sha2::{Digest, Sha256}; +use std::ops::Div; pub mod errors; pub mod eth_sender; @@ -119,6 +120,41 @@ impl EthClient { self.send_raw_transaction(encoded_tx.as_slice()).await } + pub async fn bump_and_resend_eip1559( + &self, + tx: &mut EIP1559Transaction, + private_key: &SecretKey, + ) -> Result { + // If receipt was not found, send the same tx(same nonce) but with more gas. + // Sometimes the penalty is a 100% + // Increase max fee per gas by 110% (set it to 210% of the original) + tx.max_fee_per_gas = (tx.max_fee_per_gas as f64 * 2.1).round() as u64; + tx.max_priority_fee_per_gas += (tx.max_priority_fee_per_gas as f64 * 2.1).round() as u64; + + self.send_eip1559_transaction(tx.clone(), private_key).await + } + + pub async fn bump_and_resend_eip4844( + &self, + wrapped_tx: &mut WrappedEIP4844Transaction, + private_key: &SecretKey, + ) -> Result { + // If receipt was not found, send the same tx(same nonce) but with more gas. + // Sometimes the penalty is a 100% + // Increase max fee per gas by 110% (set it to 210% of the original) + wrapped_tx.tx.max_fee_per_gas = (wrapped_tx.tx.max_fee_per_gas as f64 * 2.1).round() as u64; + wrapped_tx.tx.max_priority_fee_per_gas = + (wrapped_tx.tx.max_priority_fee_per_gas as f64 * 2.1).round() as u64; + wrapped_tx.tx.max_fee_per_blob_gas = wrapped_tx + .tx + .max_fee_per_blob_gas + .saturating_mul(U256::from(20)) + .div(10); + + self.send_eip4844_transaction(wrapped_tx.clone(), private_key) + .await + } + pub async fn send_privileged_l2_transaction( &self, tx: PrivilegedL2Transaction, From 76a6588964d8b44fc88204e8a2806f20071345cc Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Thu, 21 Nov 2024 10:05:21 -0300 Subject: [PATCH 12/29] committer: improve retry logic --- crates/l2/proposer/l1_committer.rs | 54 ++++++++++++++++++++---------- crates/l2/utils/eth_client/mod.rs | 39 +++++++++++++++------ 2 files changed, 64 insertions(+), 29 deletions(-) diff --git a/crates/l2/proposer/l1_committer.rs b/crates/l2/proposer/l1_committer.rs index 5d1b716ba..fc3172372 100644 --- a/crates/l2/proposer/l1_committer.rs +++ b/crates/l2/proposer/l1_committer.rs @@ -23,7 +23,6 @@ use ethrex_vm::{evm_state, execute_block, get_state_transitions}; use keccak_hash::keccak; use secp256k1::SecretKey; use sha2::{Digest, Sha256}; -use std::ops::Div; use std::{collections::HashMap, time::Duration}; use tokio::time::sleep; use tracing::{error, info, warn}; @@ -120,26 +119,40 @@ impl Committer { let blobs_bundle = self.generate_blobs_bundle(state_diff.clone())?; let head_block_hash = block_to_commit.hash(); + + let mut wrapped_eip4844 = match self + .build_commitment_tx( + block_to_commit.header.number, + withdrawal_logs_merkle_root, + deposit_logs_hash, + &blobs_bundle, + ) + .await + { + Ok(tx) => tx, + Err(error) => { + error!("Failed when constructing the commitment for block {head_block_hash:#x}. Manual intervention required: {error}"); + // TODO: retry instead of throwing error. + // it may fail in the estimate_gas fn. + return Err(error); + } + }; + let mut retries = 0; let max_retries: u32 = 100; while retries < max_retries { - match self - .send_commitment( - block_to_commit.header.number, - withdrawal_logs_merkle_root, - deposit_logs_hash, - &blobs_bundle, - ) - .await - { + match self.send_commitment(&wrapped_eip4844).await { Ok(commit_tx_hash) => { - info!("Sent commitment to block {head_block_hash:#x}, with transaction hash {commit_tx_hash:#x}"); + info!("Sent commitment for block {head_block_hash:#x}, with transaction hash {commit_tx_hash:#x}"); break; } Err(error) => { - error!("Failed to send commitment to block {head_block_hash:#x}. Manual intervention required: {error}"); + error!("Failed to send commitment for block {head_block_hash:#x}, retrying. Manual intervention required: {error}"); + wrapped_eip4844 = + self.eth_client.bump_eip4844(&mut wrapped_eip4844, 1.1); retries += 1; sleep(Duration::from_secs(2)).await; + continue; } } } @@ -289,13 +302,13 @@ impl Committer { BlobsBundle::create_from_blobs(&vec![blob]).map_err(CommitterError::from) } - pub async fn send_commitment( + pub async fn build_commitment_tx( &self, block_number: u64, withdrawal_logs_merkle_root: H256, deposit_logs_hash: H256, blobs_bundle: &BlobsBundle, - ) -> Result { + ) -> Result { info!("Sending commitment for block {block_number}"); // TODO: This could be done using BlobsBundle.generate_versioned_hashes but we use different hashing crates @@ -334,23 +347,28 @@ impl Committer { .await .map_err(CommitterError::from)?; + Ok(wrapped_tx) + } + + pub async fn send_commitment( + &self, + wrapped_eip4844: &WrappedEIP4844Transaction, + ) -> Result { let commit_tx_hash = self .eth_client - .send_eip4844_transaction(wrapped_tx.clone(), &self.l1_private_key) + .send_eip4844_transaction(wrapped_eip4844.clone(), &self.l1_private_key) .await .map_err(CommitterError::from)?; let commit_tx_hash = wrapped_eip4844_transaction_handler( &self.eth_client, - &wrapped_tx, + wrapped_eip4844, &self.l1_private_key, commit_tx_hash, 10, ) .await?; - info!("Commitment sent: {commit_tx_hash:#x}"); - Ok(commit_tx_hash) } } diff --git a/crates/l2/utils/eth_client/mod.rs b/crates/l2/utils/eth_client/mod.rs index 3d6069643..86c63cece 100644 --- a/crates/l2/utils/eth_client/mod.rs +++ b/crates/l2/utils/eth_client/mod.rs @@ -125,13 +125,19 @@ impl EthClient { tx: &mut EIP1559Transaction, private_key: &SecretKey, ) -> Result { - // If receipt was not found, send the same tx(same nonce) but with more gas. // Sometimes the penalty is a 100% // Increase max fee per gas by 110% (set it to 210% of the original) - tx.max_fee_per_gas = (tx.max_fee_per_gas as f64 * 2.1).round() as u64; - tx.max_priority_fee_per_gas += (tx.max_priority_fee_per_gas as f64 * 2.1).round() as u64; + let tx = self.bump_eip1559(tx, 1.1); + self.send_eip1559_transaction(tx, private_key).await + } - self.send_eip1559_transaction(tx.clone(), private_key).await + /// Increase max fee per gas by percentage% (set it to (100+percentage)% of the original) + pub fn bump_eip1559(&self, tx: &mut EIP1559Transaction, percentage: f64) -> EIP1559Transaction { + // TODO: handle as conversions + tx.max_fee_per_gas = (tx.max_fee_per_gas as f64 * (1.0 + percentage)).round() as u64; + tx.max_priority_fee_per_gas += + (tx.max_priority_fee_per_gas as f64 * (1.0 + percentage)).round() as u64; + tx.clone() } pub async fn bump_and_resend_eip4844( @@ -139,20 +145,31 @@ impl EthClient { wrapped_tx: &mut WrappedEIP4844Transaction, private_key: &SecretKey, ) -> Result { - // If receipt was not found, send the same tx(same nonce) but with more gas. // Sometimes the penalty is a 100% // Increase max fee per gas by 110% (set it to 210% of the original) - wrapped_tx.tx.max_fee_per_gas = (wrapped_tx.tx.max_fee_per_gas as f64 * 2.1).round() as u64; + let tx = self.bump_eip4844(wrapped_tx, 1.1); + self.send_eip4844_transaction(tx, private_key).await + } + + /// Increase max fee per gas by percentage% (set it to (100+percentage)% of the original) + pub fn bump_eip4844( + &self, + wrapped_tx: &mut WrappedEIP4844Transaction, + percentage: f64, + ) -> WrappedEIP4844Transaction { + // TODO: handle as conversions + wrapped_tx.tx.max_fee_per_gas = + (wrapped_tx.tx.max_fee_per_gas as f64 * (1.0 + percentage)).round() as u64; wrapped_tx.tx.max_priority_fee_per_gas = - (wrapped_tx.tx.max_priority_fee_per_gas as f64 * 2.1).round() as u64; + (wrapped_tx.tx.max_priority_fee_per_gas as f64 * (1.0 + percentage)).round() as u64; + + let factor = (1.0 + percentage).ceil() as u64; wrapped_tx.tx.max_fee_per_blob_gas = wrapped_tx .tx .max_fee_per_blob_gas - .saturating_mul(U256::from(20)) - .div(10); + .saturating_mul(U256::from(factor)); - self.send_eip4844_transaction(wrapped_tx.clone(), private_key) - .await + wrapped_tx.clone() } pub async fn send_privileged_l2_transaction( From 2bd4870472dc6260e9b7bb6526c28ba2ec193c0c Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Thu, 21 Nov 2024 10:12:38 -0300 Subject: [PATCH 13/29] committer: simplify --- crates/l2/proposer/l1_committer.rs | 4 ++-- crates/l2/utils/eth_client/mod.rs | 25 ++++++++++--------------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/crates/l2/proposer/l1_committer.rs b/crates/l2/proposer/l1_committer.rs index fc3172372..0f0b9c048 100644 --- a/crates/l2/proposer/l1_committer.rs +++ b/crates/l2/proposer/l1_committer.rs @@ -148,8 +148,8 @@ impl Committer { } Err(error) => { error!("Failed to send commitment for block {head_block_hash:#x}, retrying. Manual intervention required: {error}"); - wrapped_eip4844 = - self.eth_client.bump_eip4844(&mut wrapped_eip4844, 1.1); + + self.eth_client.bump_eip4844(&mut wrapped_eip4844, 1.1); retries += 1; sleep(Duration::from_secs(2)).await; continue; diff --git a/crates/l2/utils/eth_client/mod.rs b/crates/l2/utils/eth_client/mod.rs index 86c63cece..74bc8dd0b 100644 --- a/crates/l2/utils/eth_client/mod.rs +++ b/crates/l2/utils/eth_client/mod.rs @@ -127,17 +127,16 @@ impl EthClient { ) -> Result { // Sometimes the penalty is a 100% // Increase max fee per gas by 110% (set it to 210% of the original) - let tx = self.bump_eip1559(tx, 1.1); - self.send_eip1559_transaction(tx, private_key).await + self.bump_eip1559(tx, 1.1); + self.send_eip1559_transaction(tx.clone(), private_key).await } /// Increase max fee per gas by percentage% (set it to (100+percentage)% of the original) - pub fn bump_eip1559(&self, tx: &mut EIP1559Transaction, percentage: f64) -> EIP1559Transaction { + pub fn bump_eip1559(&self, tx: &mut EIP1559Transaction, percentage: f64) { // TODO: handle as conversions tx.max_fee_per_gas = (tx.max_fee_per_gas as f64 * (1.0 + percentage)).round() as u64; tx.max_priority_fee_per_gas += (tx.max_priority_fee_per_gas as f64 * (1.0 + percentage)).round() as u64; - tx.clone() } pub async fn bump_and_resend_eip4844( @@ -147,29 +146,25 @@ impl EthClient { ) -> Result { // Sometimes the penalty is a 100% // Increase max fee per gas by 110% (set it to 210% of the original) - let tx = self.bump_eip4844(wrapped_tx, 1.1); - self.send_eip4844_transaction(tx, private_key).await + self.bump_eip4844(wrapped_tx, 1.1); + self.send_eip4844_transaction(wrapped_tx.clone(), private_key) + .await } /// Increase max fee per gas by percentage% (set it to (100+percentage)% of the original) - pub fn bump_eip4844( - &self, - wrapped_tx: &mut WrappedEIP4844Transaction, - percentage: f64, - ) -> WrappedEIP4844Transaction { + pub fn bump_eip4844(&self, wrapped_tx: &mut WrappedEIP4844Transaction, percentage: f64) { // TODO: handle as conversions wrapped_tx.tx.max_fee_per_gas = (wrapped_tx.tx.max_fee_per_gas as f64 * (1.0 + percentage)).round() as u64; wrapped_tx.tx.max_priority_fee_per_gas = (wrapped_tx.tx.max_priority_fee_per_gas as f64 * (1.0 + percentage)).round() as u64; - let factor = (1.0 + percentage).ceil() as u64; + let factor = ((1.0 + percentage) * 10.0).ceil() as u64; wrapped_tx.tx.max_fee_per_blob_gas = wrapped_tx .tx .max_fee_per_blob_gas - .saturating_mul(U256::from(factor)); - - wrapped_tx.clone() + .saturating_mul(U256::from(factor)) + .div(10); } pub async fn send_privileged_l2_transaction( From b04a492818c60206a684ac1fb482d922a75f95c8 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Thu, 21 Nov 2024 11:42:18 -0300 Subject: [PATCH 14/29] prover_server: save state module --- crates/common/types/account.rs | 2 +- crates/l2/Cargo.toml | 1 + crates/l2/utils/mod.rs | 1 + crates/l2/utils/save_prover_state.rs | 399 +++++++++++++++++++++++++++ crates/storage/store/storage.rs | 3 +- crates/vm/execution_db.rs | 35 ++- 6 files changed, 433 insertions(+), 8 deletions(-) create mode 100644 crates/l2/utils/save_prover_state.rs diff --git a/crates/common/types/account.rs b/crates/common/types/account.rs index 378419199..28ac9b9bf 100644 --- a/crates/common/types/account.rs +++ b/crates/common/types/account.rs @@ -37,7 +37,7 @@ pub struct Account { pub storage: HashMap, } -#[derive(Clone, Debug, PartialEq)] +#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] pub struct AccountInfo { pub code_hash: H256, pub balance: U256, diff --git a/crates/l2/Cargo.toml b/crates/l2/Cargo.toml index 408198c35..124942993 100644 --- a/crates/l2/Cargo.toml +++ b/crates/l2/Cargo.toml @@ -27,6 +27,7 @@ secp256k1.workspace = true keccak-hash = "0.10.0" envy = "0.4.2" thiserror.workspace = true +directories = "5.0.1" # risc0 risc0-zkvm = { version = "1.1.2" } diff --git a/crates/l2/utils/mod.rs b/crates/l2/utils/mod.rs index c1de728c3..ff60a5e53 100644 --- a/crates/l2/utils/mod.rs +++ b/crates/l2/utils/mod.rs @@ -5,6 +5,7 @@ use serde::{Deserialize, Deserializer, Serialize, Serializer}; pub mod config; pub mod eth_client; pub mod merkle_tree; +pub mod save_prover_state; pub mod test_data_io; pub fn secret_key_deserializer<'de, D>(deserializer: D) -> Result diff --git a/crates/l2/utils/save_prover_state.rs b/crates/l2/utils/save_prover_state.rs new file mode 100644 index 000000000..0efb8260c --- /dev/null +++ b/crates/l2/utils/save_prover_state.rs @@ -0,0 +1,399 @@ +use directories::ProjectDirs; +use ethrex_storage::AccountUpdate; +use serde::{Deserialize, Serialize}; +use std::fs::{create_dir, read_dir, File}; +use std::io::{BufReader, Read}; +use std::path::{Path, PathBuf}; +use std::{ + fs::create_dir_all, + io::{BufWriter, Write}, +}; + +#[derive(Serialize, Deserialize, Debug)] +pub enum StateType { + Proof(Box), + AccountUpdates(Vec), +} + +#[derive(Serialize, Deserialize, Debug, Clone, Copy)] +pub enum StateFileType { + Proof, + AccountUpdates, +} + +#[cfg(not(test))] +const DEFAULT_DATADIR: &str = "ethrex_l2_state"; + +#[cfg(not(test))] +#[inline(always)] +fn default_datadir() -> Result> { + create_datadir(DEFAULT_DATADIR) +} + +#[cfg(test)] +#[inline(always)] +fn default_datadir() -> Result> { + create_datadir("test_datadir") +} + +#[inline(always)] +fn create_datadir(dir_name: &str) -> Result> { + let path_buf_data_dir = ProjectDirs::from("", "", dir_name) + .ok_or_else(|| Box::::from("Couldn't get project_dir."))? + .data_local_dir() + .to_path_buf(); + Ok(path_buf_data_dir) +} + +#[inline(always)] +fn get_state_dir_for_block(block_number: u64) -> Result> { + let mut path_buf = default_datadir()?; + path_buf.push(block_number.to_string()); + + Ok(path_buf) +} + +#[inline(always)] +fn get_state_file_path( + path_buf: &Path, + block_number: u64, + state_file_type: StateFileType, +) -> PathBuf { + match state_file_type { + StateFileType::AccountUpdates => { + path_buf.join(format!("account_updates{block_number}.json")) + } + StateFileType::Proof => path_buf.join(format!("proof_{block_number}.json")), + } +} + +/// CREATE +fn create_state_file_for_block_number( + block_number: u64, + state_file_type: StateFileType, +) -> Result> { + let path_buf = get_state_dir_for_block(block_number)?; + if let Some(parent) = path_buf.parent() { + if let Err(e) = create_dir_all(parent) { + if e.kind() != std::io::ErrorKind::AlreadyExists { + eprintln!("Failed to create directory: {:?}. Error: {e}", parent); + return Err(e.into()); + } + } + } + + let block_number = path_buf + .file_name() + .ok_or_else(|| Box::::from("Error: No file_name()"))? + .to_string_lossy(); + + let block_number = block_number.parse::()?; + + let file_path: PathBuf = get_state_file_path(&path_buf, block_number, state_file_type); + + if let Err(e) = create_dir(&path_buf) { + if e.kind() != std::io::ErrorKind::AlreadyExists { + eprintln!("Failed to create directory: {:?}. Error: {e}", path_buf); + return Err(e.into()); + } + } + + File::create(file_path).map_err(Into::into) +} + +/// WRITE +pub fn write_state_in_block_state_path( + block_number: u64, + state_type: StateType, + state_file_type: StateFileType, +) -> Result<(), Box> { + let inner = create_state_file_for_block_number(block_number, state_file_type)?; + + match state_type { + StateType::Proof(value) => { + let mut writer = BufWriter::new(inner); + serde_json::to_writer(&mut writer, &value)?; + writer.flush()?; + } + StateType::AccountUpdates(value) => { + let mut writer = BufWriter::new(inner); + serde_json::to_writer(&mut writer, &value)?; + writer.flush()?; + } + } + + Ok(()) +} + +fn get_latest_block_number_and_path_from_state_path( +) -> Result<(u64, PathBuf), Box> { + let data_dir = default_datadir()?; + let latest_block_number = read_dir(&data_dir)? + .filter_map(|entry| { + let entry = entry.ok()?; + let path = entry.path(); + if path.is_dir() { + path.file_name()?.to_str()?.parse::().ok() + } else { + None + } + }) + .max(); + + match latest_block_number { + Some(block_number) => { + let latest_path = data_dir.join(block_number.to_string()); + Ok((block_number, latest_path)) + } + None => Err(Box::from("No valid block directories found")), + } +} + +fn get_block_state_path(block_number: u64) -> Result> { + let data_dir = default_datadir()?; + let block_state_path = data_dir.join(block_number.to_string()); + Ok(block_state_path) +} + +/// READ +pub fn read_state_file_for_block_number( + block_number: u64, + state_file_type: StateFileType, +) -> Result> { + // TODO handle path not found + let block_state_path = get_block_state_path(block_number)?; + let file_path: PathBuf = get_state_file_path(&block_state_path, block_number, state_file_type); + + let inner = File::open(file_path)?; + let mut reader = BufReader::new(inner); + let mut buf = String::new(); + + reader.read_to_string(&mut buf)?; + + let state = match state_file_type { + StateFileType::Proof => { + let state: risc0_zkvm::Receipt = serde_json::from_str(&buf)?; + StateType::Proof(Box::new(state)) + } + StateFileType::AccountUpdates => { + let state: Vec = serde_json::from_str(&buf)?; + StateType::AccountUpdates(state) + } + }; + + Ok(state) +} + +/// READ +pub fn read_latest_state_file( + state_file_type: StateFileType, +) -> Result> { + let (latest_block_state_number, _) = get_latest_block_number_and_path_from_state_path()?; + let state = read_state_file_for_block_number(latest_block_state_number, state_file_type)?; + Ok(state) +} + +/// DELETE +pub fn delete_state_file_for_block_number( + block_number: u64, + state_file_type: StateFileType, +) -> Result<(), Box> { + let block_state_path = get_block_state_path(block_number)?; + let file_path: PathBuf = get_state_file_path(&block_state_path, block_number, state_file_type); + std::fs::remove_file(file_path)?; + + Ok(()) +} + +pub fn delete_latest_state_file( + state_file_type: StateFileType, +) -> Result<(), Box> { + let (latest_block_state_number, _) = get_latest_block_number_and_path_from_state_path()?; + let latest_block_state_path = get_block_state_path(latest_block_state_number)?; + let file_path: PathBuf = get_state_file_path( + &latest_block_state_path, + latest_block_state_number, + state_file_type, + ); + std::fs::remove_file(file_path)?; + + Ok(()) +} + +pub fn delete_state_path_for_block_number( + block_number: u64, +) -> Result<(), Box> { + let block_state_path = get_block_state_path(block_number)?; + std::fs::remove_dir_all(block_state_path)?; + Ok(()) +} + +pub fn delete_latest_state_path() -> Result<(), Box> { + let (latest_block_state_number, _) = get_latest_block_number_and_path_from_state_path()?; + let latest_block_state_path = get_block_state_path(latest_block_state_number)?; + std::fs::remove_dir_all(latest_block_state_path)?; + Ok(()) +} + +pub fn path_has_state_file( + state_file_type: StateFileType, + path_buf: &Path, +) -> Result> { + let file_prefix = match state_file_type { + StateFileType::AccountUpdates => "account_updates", + StateFileType::Proof => "proof", + }; + + for entry in std::fs::read_dir(path_buf)? { + let entry = entry?; + let file_name = entry.file_name(); + let lossy_string = file_name.to_string_lossy(); + + let matches_prefix = lossy_string.starts_with(file_prefix); + let matches_suffix = lossy_string.ends_with(".json"); + + if matches_prefix && matches_suffix { + return Ok(true); + } + } + + Ok(false) +} + +#[cfg(test)] +mod tests { + use ethrex_blockchain::add_block; + use ethrex_storage::{EngineType, Store}; + use ethrex_vm::execution_db::ExecutionDB; + use risc0_zkvm::sha::Digest; + + use super::*; + use crate::utils::test_data_io; + use std::fs::{self}; + + #[test] + fn test_state_file_integration() -> Result<(), Box> { + if let Err(e) = fs::remove_dir_all(default_datadir()?) { + if e.kind() != std::io::ErrorKind::NotFound { + eprintln!("Directory NotFound: {:?}", default_datadir()?); + } + } + + let path = Path::new(concat!(env!("CARGO_MANIFEST_DIR"), "/../../test_data")); + + let chain_file_path = path.join("l2-loadtest.rlp"); + let genesis_file_path = path.join("genesis-l2-old.json"); + + // Create an InMemory Store to later perform an execute_block so we can have the Vec. + let store = Store::new("memory", EngineType::InMemory).expect("Failed to create Store"); + + let genesis = test_data_io::read_genesis_file(genesis_file_path.to_str().unwrap()); + store.add_initial_state(genesis.clone()).unwrap(); + + let blocks = test_data_io::read_chain_file(chain_file_path.to_str().unwrap()); + for block in &blocks { + add_block(block, &store).unwrap(); + } + + let mut account_updates_vec: Vec> = Vec::new(); + + // Generic Receipt + let receipt = risc0_zkvm::Receipt::new( + risc0_zkvm::InnerReceipt::Fake(risc0_zkvm::FakeReceipt::new( + risc0_zkvm::ReceiptClaim { + pre: risc0_zkvm::MaybePruned::Pruned(Digest::default()), + post: risc0_zkvm::MaybePruned::Pruned(Digest::default()), + exit_code: risc0_zkvm::ExitCode::Halted(37 * 2), + input: risc0_zkvm::MaybePruned::Value(None), + output: risc0_zkvm::MaybePruned::Value(None), + }, + )), + vec![37u8; 32], + ); + + // Write all + for block in &blocks { + let account_updates = + ExecutionDB::get_account_updates(blocks.last().unwrap(), &store).unwrap(); + + account_updates_vec.push(account_updates.clone()); + + write_state_in_block_state_path( + block.header.number, + StateType::AccountUpdates(account_updates), + StateFileType::AccountUpdates, + )?; + + write_state_in_block_state_path( + block.header.number, + StateType::Proof(Box::new(receipt.clone())), + StateFileType::Proof, + )?; + } + + let (latest_block_state_number, _) = get_latest_block_number_and_path_from_state_path()?; + + assert_eq!( + latest_block_state_number, + blocks.last().unwrap().header.number + ); + + // Delete account_updates file + let (_, latest_path) = get_latest_block_number_and_path_from_state_path()?; + + assert!(path_has_state_file( + StateFileType::AccountUpdates, + &latest_path + )?); + + delete_latest_state_file(StateFileType::AccountUpdates)?; + + assert!(!path_has_state_file( + StateFileType::AccountUpdates, + &latest_path + )?); + + // Delete latest path + delete_latest_state_path()?; + let (latest_block_state_number, _) = get_latest_block_number_and_path_from_state_path()?; + assert_eq!( + latest_block_state_number, + blocks.last().unwrap().header.number - 1 + ); + + // Read account_updates back + let read_account_updates_blk2 = + match read_state_file_for_block_number(2, StateFileType::AccountUpdates)? { + StateType::Proof(_) => unimplemented!(), + StateType::AccountUpdates(a) => a, + }; + + let og_account_updates_blk2 = account_updates_vec.get(2).unwrap(); + + for og_au in og_account_updates_blk2 { + // The read_account_updates aren't sorted in the same way as the og_account_updates. + let r_au = read_account_updates_blk2 + .iter() + .find(|au| au.address == og_au.address) + .unwrap(); + + assert_eq!(og_au.added_storage, r_au.added_storage); + assert_eq!(og_au.address, r_au.address); + assert_eq!(og_au.info, r_au.info); + assert_eq!(og_au.code, r_au.code); + } + + // Read Proof back + let read_proof_updates_blk2 = + match read_state_file_for_block_number(2, StateFileType::Proof)? { + StateType::Proof(p) => p, + StateType::AccountUpdates(_) => unimplemented!(), + }; + + assert_eq!(read_proof_updates_blk2.journal.bytes, receipt.journal.bytes); + + fs::remove_dir_all(default_datadir()?)?; + + Ok(()) + } +} diff --git a/crates/storage/store/storage.rs b/crates/storage/store/storage.rs index 96073c485..83fa12447 100644 --- a/crates/storage/store/storage.rs +++ b/crates/storage/store/storage.rs @@ -13,6 +13,7 @@ use ethrex_core::types::{ use ethrex_rlp::decode::RLPDecode; use ethrex_rlp::encode::RLPEncode; use ethrex_trie::Trie; +use serde::{Deserialize, Serialize}; use sha3::{Digest as _, Keccak256}; use std::collections::HashMap; use std::fmt::Debug; @@ -39,7 +40,7 @@ pub enum EngineType { Libmdbx, } -#[derive(Default, Debug)] +#[derive(Default, Debug, Serialize, Deserialize, Clone)] pub struct AccountUpdate { pub address: Address, pub removed: bool, diff --git a/crates/vm/execution_db.rs b/crates/vm/execution_db.rs index edf65021c..2ce1c8d0e 100644 --- a/crates/vm/execution_db.rs +++ b/crates/vm/execution_db.rs @@ -6,7 +6,7 @@ use ethrex_core::{ H256, }; use ethrex_rlp::encode::RLPEncode; -use ethrex_storage::{hash_address, hash_key, Store}; +use ethrex_storage::{hash_address, hash_key, AccountUpdate, Store}; use ethrex_trie::Trie; use revm::{ primitives::{ @@ -52,15 +52,23 @@ pub struct StateProofs { } impl ExecutionDB { - /// Creates a database by executing a block, without performing any validation. + /// Creates a database and returns the ExecutionDB by executing a block, + /// without performing any validation. pub fn from_exec(block: &Block, store: &Store) -> Result { // TODO: perform validation to exit early + let account_updates = Self::get_account_updates(block, store)?; + Self::from_account_updates(account_updates, block, store) + } - // Execute and obtain account updates - let mut state = evm_state(store.clone(), block.header.parent_hash); + /// Creates a database and returns the ExecutionDB from a Vec<[AccountUpdate]>, + /// without performing any validation. + pub fn from_account_updates( + account_updates: Vec, + block: &Block, + store: &Store, + ) -> Result { + // TODO: perform validation to exit early let chain_config = store.get_chain_config()?; - execute_block(block, &mut state).map_err(Box::new)?; - let account_updates = get_state_transitions(&mut state); // Store data touched by updates and get all touched storage keys for each account let mut accounts = HashMap::new(); @@ -142,6 +150,21 @@ impl ExecutionDB { }) } + /// Gets the Vec<[AccountUpdate]>/StateTransitions obtained after executing a block. + pub fn get_account_updates( + block: &Block, + store: &Store, + ) -> Result, ExecutionDBError> { + // TODO: perform validation to exit early + + let mut state = evm_state(store.clone(), block.header.parent_hash); + + execute_block(block, &mut state).map_err(Box::new)?; + + let account_updates = get_state_transitions(&mut state); + Ok(account_updates) + } + pub fn get_chain_config(&self) -> ChainConfig { self.chain_config } From aae4054d48fa95c4ee42e4263f9b4f5cd35b4fbb Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Thu, 21 Nov 2024 12:53:31 -0300 Subject: [PATCH 15/29] [wip] prover_server: basic logic --- crates/l2/Makefile | 24 +++++++++ crates/l2/proposer/errors.rs | 2 + crates/l2/proposer/prover_server.rs | 79 ++++++++++++++++++++++------ crates/l2/utils/save_prover_state.rs | 12 +++-- 4 files changed, 98 insertions(+), 19 deletions(-) diff --git a/crates/l2/Makefile b/crates/l2/Makefile index 54f011bd1..dbcde6ae1 100644 --- a/crates/l2/Makefile +++ b/crates/l2/Makefile @@ -103,3 +103,27 @@ test: docker compose -f ${ethrex_L2_DOCKER_COMPOSE_PATH} up -d --build BRIDGE_ADDRESS=$$(grep 'L1_WATCHER_BRIDGE_ADDRESS' .env | cut -d= -f2) ON_CHAIN_PROPOSER_ADDRESS=$$(grep 'COMMITTER_ON_CHAIN_PROPOSER_ADDRESS' .env | cut -d= -f2) cargo test --release testito -- --nocapture docker compose -f ${ethrex_L2_DOCKER_COMPOSE_PATH} down + + +# Purge L2's state + +UNAME_S:=$(shell uname -s) +PROJECT_NAME:=ethrex_l2_state + +ifeq ($(UNAME_S),Linux) + PROJECT_PATH := $(HOME)/.local/share/${PROJECT_NAME} +else ifeq ($(UNAME_S),Darwin) + PROJECT_PATH := $(HOME)/Library/Application\ Support/${PROJECT_NAME} +else + $(error Unsupported platform: $(UNAME_S)) +endif + +.PHONY: purge_prover_state +purge_prover_state: ## 🧹 Removes the L2 state, only use to start fresh. + @echo "Are you sure you want to delete the directory: $(PROJECT_PATH) ? [y/n]" + @read answer; \ + if [ "$$answer" != "y" ]; then \ + echo "Operation canceled."; \ + fi; \ + rm -rf $(PROJECT_PATH); \ + echo "Directory deleted." diff --git a/crates/l2/proposer/errors.rs b/crates/l2/proposer/errors.rs index c556df382..189c712b9 100644 --- a/crates/l2/proposer/errors.rs +++ b/crates/l2/proposer/errors.rs @@ -37,6 +37,8 @@ pub enum ProverServerError { ItemNotFoundInStore(String), #[error("ProverServer failed to create inputs for the Prover: {0}")] FailedToCreateProverInputs(#[from] EvmError), + #[error("ProverServer failed to save state: {0}")] + FailedToSaveState(String), } #[derive(Debug, thiserror::Error)] diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index aa27a4ea6..32ec3e316 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -1,3 +1,8 @@ +use crate::utils::save_prover_state::{self, *}; +use ethrex_core::{ + types::{Block, BlockHeader, EIP1559Transaction}, + Address, H256, +}; use ethrex_storage::Store; use ethrex_vm::{execution_db::ExecutionDB, EvmError}; use keccak_hash::keccak; @@ -16,11 +21,6 @@ use tokio::{ }; use tracing::{debug, error, info, warn}; -use ethrex_core::{ - types::{Block, BlockHeader, EIP1559Transaction}, - Address, H256, -}; - use risc0_zkvm::sha::{Digest, Digestible}; #[derive(Debug, Serialize, Deserialize, Default)] @@ -267,6 +267,18 @@ impl ProverServer { block_number, receipt, }) => { + // Save Proof + save_prover_state::write_state_in_block_state_path( + block_number, + StateType::Proof(receipt.clone()), + StateFileType::Proof, + ) + .map_err(|e| { + ProverServerError::FailedToSaveState( + format!("Failed to write proof: {e:?}").to_owned(), + ) + })?; + self.handle_proof_submission(block_number, receipt.clone()) .await?; @@ -296,6 +308,12 @@ impl ProverServer { block_number: u64, ) -> Result<(), ProverServerError> { debug!("Request received"); + // How to Handle shut-downs? + // 1. Read latest proof from file + // 2. Check if we have the proof + // - if proof_number == latest_verified_block -> handle request and send inputs to the prover_client + // - if proof_number > latest_verified_block -> else resend tx with the same proof_number bumping the gas + // - if proof_number < latest_verified_block -> the proof may have been stored/deleted incorrectly or with errors. send inputs to the prover client to start again let last_committed_block = EthClient::get_last_committed_block(&self.eth_client, self.on_chain_proposer_address) @@ -371,6 +389,19 @@ impl ProverServer { let journal_digest = Digestible::digest(&receipt.0.journal); + let mut eip1559 = match self + .build_verify_tx(block_number, &seal, image_id, journal_digest) + .await + { + Ok(tx) => tx, + Err(error) => { + error!("Failed when constructing the verify for block {block_number:#x}. Manual intervention required: {error}"); + // TODO: retry instead of throwing error. + // it may fail in the estimate_gas fn. + return Err(error); + } + }; + // The `verify` function in the `OnChainProposer` contract has two `require` checks: // "OnChainProposer: block not committed" // "OnChainProposer: block already verified" @@ -382,23 +413,33 @@ impl ProverServer { // smaller than the `lastVerifiedBlock` tracked by the contract, which is stored in `ProverServer::last_verified_block`. // We shouldn't encounter this error either. // - // Both errors will trigger a error, along with any errors resulting from sending the transactions. + // Both errors will trigger an error, along with any errors resulting from sending the transactions. let mut retries = 0; let max_retries: u32 = 100; while retries < max_retries { - match self - .send_proof(block_number, &seal, image_id, journal_digest) - .await - { + match self.send_proof(&eip1559).await { Ok(tx_hash) => { info!( "Sent proof for block {block_number}, with transaction hash {tx_hash:#x}" ); + // Remove the proof file + // Handle errors, a retry may not be sufficient. + save_prover_state::delete_state_file_for_block_number( + block_number, + StateFileType::Proof, + ) + .map_err(|e| { + ProverServerError::FailedToSaveState( + format!("Failed to delete proof: {e:?}").to_owned(), + ) + })?; break; } Err(e) => { error!("Failed to send proof to block {block_number:#x}. Retrying [{retries}/{max_retries}]. Error: {e}"); + + self.eth_client.bump_eip1559(&mut eip1559, 1.1); retries += 1; sleep(Duration::from_secs(2)).await; } @@ -440,14 +481,14 @@ impl ProverServer { }) } - pub async fn send_proof( + pub async fn build_verify_tx( &self, block_number: u64, seal: &[u8], image_id: Digest, journal_digest: Digest, - ) -> Result { - info!("Sending proof"); + ) -> Result { + debug!("Preparing proof"); let mut calldata = Vec::new(); // IOnChainProposer @@ -503,14 +544,22 @@ impl ProverServer { }, ) .await?; + + Ok(verify_tx) + } + + pub async fn send_proof( + &self, + eip1559: &EIP1559Transaction, + ) -> Result { let verify_tx_hash = self .eth_client - .send_eip1559_transaction(verify_tx.clone(), &self.verifier_private_key) + .send_eip1559_transaction(eip1559.clone(), &self.verifier_private_key) .await?; eip1559_transaction_handler( &self.eth_client, - &verify_tx, + eip1559, &self.verifier_private_key, verify_tx_hash, 20, diff --git a/crates/l2/utils/save_prover_state.rs b/crates/l2/utils/save_prover_state.rs index 0efb8260c..38705484b 100644 --- a/crates/l2/utils/save_prover_state.rs +++ b/crates/l2/utils/save_prover_state.rs @@ -11,7 +11,7 @@ use std::{ #[derive(Serialize, Deserialize, Debug)] pub enum StateType { - Proof(Box), + Proof(Box<(risc0_zkvm::Receipt, Vec)>), AccountUpdates(Vec), } @@ -172,7 +172,7 @@ pub fn read_state_file_for_block_number( let state = match state_file_type { StateFileType::Proof => { - let state: risc0_zkvm::Receipt = serde_json::from_str(&buf)?; + let state: (risc0_zkvm::Receipt, Vec) = serde_json::from_str(&buf)?; StateType::Proof(Box::new(state)) } StateFileType::AccountUpdates => { @@ -326,7 +326,7 @@ mod tests { write_state_in_block_state_path( block.header.number, - StateType::Proof(Box::new(receipt.clone())), + StateType::Proof(Box::new((receipt.clone(), vec![5u32; 8]))), StateFileType::Proof, )?; } @@ -390,7 +390,11 @@ mod tests { StateType::AccountUpdates(_) => unimplemented!(), }; - assert_eq!(read_proof_updates_blk2.journal.bytes, receipt.journal.bytes); + assert_eq!( + read_proof_updates_blk2.0.journal.bytes, + receipt.journal.bytes + ); + assert_eq!(read_proof_updates_blk2.1, vec![5u32; 8]); fs::remove_dir_all(default_datadir()?)?; From 0eae814f3167bd945c7e91b0d1df795ec4e64d32 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Thu, 21 Nov 2024 15:42:54 -0300 Subject: [PATCH 16/29] [wip] prover_server: simplify logic --- crates/l2/Makefile | 3 +- crates/l2/proposer/prover_server.rs | 110 ++++++++++++++++++--------- crates/l2/utils/save_prover_state.rs | 46 +++++++++++ 3 files changed, 121 insertions(+), 38 deletions(-) diff --git a/crates/l2/Makefile b/crates/l2/Makefile index dbcde6ae1..2b8516350 100644 --- a/crates/l2/Makefile +++ b/crates/l2/Makefile @@ -1,6 +1,6 @@ .DEFAULT_GOAL := help -.PHONY: help init down clean init-local-l1 down-local-l1 clean-local-l1 init-l2 down-l2 deploy-l1 deploy-block-executor deploy-inbox setup-prover test +.PHONY: help init down clean init-local-l1 down-local-l1 clean-local-l1 init-l2 down-l2 deploy-l1 deploy-block-executor deploy-inbox setup-prover test purge_prover_state L2_GENESIS_FILE_PATH=../../test_data/genesis-l2.json L1_GENESIS_FILE_PATH=../../test_data/genesis-l1.json @@ -118,7 +118,6 @@ else $(error Unsupported platform: $(UNAME_S)) endif -.PHONY: purge_prover_state purge_prover_state: ## 🧹 Removes the L2 state, only use to start fresh. @echo "Are you sure you want to delete the directory: $(PROJECT_PATH) ? [y/n]" @read answer; \ diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index 32ec3e316..1d4fe52a1 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -190,7 +190,6 @@ struct ProverServer { on_chain_proposer_address: Address, verifier_address: Address, verifier_private_key: SecretKey, - last_verified_block: u64, } impl ProverServer { @@ -203,15 +202,6 @@ impl ProverServer { let eth_client = EthClient::new(ð_config.rpc_url); let on_chain_proposer_address = committer_config.on_chain_proposer_address; - let last_verified_block = - EthClient::get_last_verified_block(ð_client, on_chain_proposer_address).await?; - - let last_verified_block = if last_verified_block == u64::MAX { - 0 - } else { - last_verified_block - }; - Ok(Self { ip: config.listen_ip, port: config.listen_port, @@ -220,7 +210,6 @@ impl ProverServer { on_chain_proposer_address, verifier_address: config.verifier_address, verifier_private_key: config.verifier_private_key, - last_verified_block, }) } @@ -251,15 +240,24 @@ impl ProverServer { } async fn handle_connection(&mut self, mut stream: TcpStream) -> Result<(), ProverServerError> { + // Get latestVerfiedBlock + let last_verified_block = + EthClient::get_last_verified_block(&self.eth_client, self.on_chain_proposer_address) + .await?; + let last_verified_block = if last_verified_block == u64::MAX { + 0 + } else { + last_verified_block + }; + + let block_to_verify = last_verified_block + 1; + let buf_reader = BufReader::new(&stream); let data: Result = serde_json::de::from_reader(buf_reader); match data { Ok(ProofData::Request) => { - if let Err(e) = self - .handle_request(&mut stream, self.last_verified_block + 1) - .await - { + if let Err(e) = self.handle_request(&mut stream, block_to_verify).await { warn!("Failed to handle request: {e}"); } } @@ -287,8 +285,7 @@ impl ProverServer { panic!("Failed to handle submit_ack: {e}"); } - assert!(block_number == (self.last_verified_block + 1), "Prover Client submitted an invalid block_number: {block_number}. The last_proved_block is: {}", self.last_verified_block); - self.last_verified_block = block_number; + assert!(block_number == (block_to_verify), "Prover Client submitted an invalid block_number: {block_number}. The last_proved_block is: {}", block_to_verify); } Err(e) => { warn!("Failed to parse request: {e}"); @@ -305,15 +302,56 @@ impl ProverServer { async fn handle_request( &self, stream: &mut TcpStream, - block_number: u64, + block_to_verify: u64, ) -> Result<(), ProverServerError> { debug!("Request received"); // How to Handle shut-downs? // 1. Read latest proof from file - // 2. Check if we have the proof - // - if proof_number == latest_verified_block -> handle request and send inputs to the prover_client - // - if proof_number > latest_verified_block -> else resend tx with the same proof_number bumping the gas - // - if proof_number < latest_verified_block -> the proof may have been stored/deleted incorrectly or with errors. send inputs to the prover client to start again + // 2. Check if we have the proof of the last_verified_block+1 + // - if we don't have it -> handle request and send inputs to the prover_client + // - if we have it -> resend tx with the same proof_number bumping the gas + + let proof; + let has_proof = match save_prover_state::block_number_has_state_file( + StateFileType::Proof, + block_to_verify, + ) { + Ok(bool) => { + if bool { + proof = match save_prover_state::read_state_file_for_block_number( + block_to_verify, + StateFileType::Proof, + ) { + Ok(state) => match state { + StateType::Proof(p) => p, + _ => unreachable!("Expected Proof state type, but got something else"), + }, + Err(e) => { + error!( + "Error reading state file for block number {}: {}", + block_to_verify, e, + ); + // If we reach here, we may have encoded the proof wrong. + // Or it was lost. + // How can we recover this error? + todo!("Proper error handling") + } + }; + // Do not send inputs to the prover + false + } else { + // Send inputs to the prover + true + } + } + // Send inputs to the prover + Err(e) => { + error!("Error checking if block_number_has_state_file: {e}"); + true + } + }; + + let send_input = !has_proof; let last_committed_block = EthClient::get_last_committed_block(&self.eth_client, self.on_chain_proposer_address) @@ -323,7 +361,8 @@ impl ProverServer { // is greater or equal to the next block_number. // Since the block_number passed to the function is the lastVerifiedBlock, we are essentially checking if the // block was committed before starting the proving process. - let response = if last_committed_block < block_number { + // Also checks if there is a proof saved. + let response = if (last_committed_block < block_to_verify) && !send_input { let response = ProofData::Response { block_number: None, input: None, @@ -331,12 +370,12 @@ impl ProverServer { warn!("Didn't send response"); response } else { - let input = self.create_prover_input(block_number)?; + let input = self.create_prover_input(block_to_verify)?; let response = ProofData::Response { - block_number: Some(block_number), + block_number: Some(block_to_verify), input: Some(input), }; - info!("Sent Response for block_number: {block_number}"); + info!("Sent Response for block_number: {block_to_verify}"); response }; @@ -422,17 +461,16 @@ impl ProverServer { info!( "Sent proof for block {block_number}, with transaction hash {tx_hash:#x}" ); - // Remove the proof file + // Remove the state path. + // We don't store the account updates atm. // Handle errors, a retry may not be sufficient. - save_prover_state::delete_state_file_for_block_number( - block_number, - StateFileType::Proof, - ) - .map_err(|e| { - ProverServerError::FailedToSaveState( - format!("Failed to delete proof: {e:?}").to_owned(), - ) - })?; + save_prover_state::delete_state_path_for_block_number(block_number).map_err( + |e| { + ProverServerError::FailedToSaveState( + format!("Failed to delete proof: {e:?}").to_owned(), + ) + }, + )?; break; } diff --git a/crates/l2/utils/save_prover_state.rs b/crates/l2/utils/save_prover_state.rs index 38705484b..3894109f2 100644 --- a/crates/l2/utils/save_prover_state.rs +++ b/crates/l2/utils/save_prover_state.rs @@ -155,6 +155,11 @@ fn get_block_state_path(block_number: u64) -> Result Result> { + let (block_number, _) = get_latest_block_number_and_path_from_state_path()?; + Ok(block_number) +} + /// READ pub fn read_state_file_for_block_number( block_number: u64, @@ -260,6 +265,37 @@ pub fn path_has_state_file( Ok(false) } +pub fn block_number_has_state_file( + state_file_type: StateFileType, + block_number: u64, +) -> Result> { + let block_state_path = get_block_state_path(block_number)?; + let file_path: PathBuf = get_state_file_path(&block_state_path, block_number, state_file_type); + + let mut path_buf = file_path.clone(); + path_buf.pop(); + + let file_prefix = match state_file_type { + StateFileType::AccountUpdates => "account_updates", + StateFileType::Proof => "proof", + }; + + for entry in std::fs::read_dir(path_buf)? { + let entry = entry?; + let file_name = entry.file_name(); + let lossy_string = file_name.to_string_lossy(); + + let matches_prefix = lossy_string.starts_with(file_prefix); + let matches_suffix = lossy_string.ends_with(".json"); + + if matches_prefix && matches_suffix { + return Ok(true); + } + } + + Ok(false) +} + #[cfg(test)] mod tests { use ethrex_blockchain::add_block; @@ -346,6 +382,11 @@ mod tests { &latest_path )?); + assert!(block_number_has_state_file( + StateFileType::AccountUpdates, + latest_block_state_number + )?); + delete_latest_state_file(StateFileType::AccountUpdates)?; assert!(!path_has_state_file( @@ -353,6 +394,11 @@ mod tests { &latest_path )?); + assert!(!block_number_has_state_file( + StateFileType::AccountUpdates, + latest_block_state_number + )?); + // Delete latest path delete_latest_state_path()?; let (latest_block_state_number, _) = get_latest_block_number_and_path_from_state_path()?; From 5c571047d1284a7220adc77c6ac347ef1c77741d Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Thu, 21 Nov 2024 16:26:57 -0300 Subject: [PATCH 17/29] wip --- crates/l2/.env.sepolia | 42 +++++++++++++++++++++++++++++ crates/l2/proposer/prover_server.rs | 36 ++++++++++++++----------- 2 files changed, 63 insertions(+), 15 deletions(-) create mode 100644 crates/l2/.env.sepolia diff --git a/crates/l2/.env.sepolia b/crates/l2/.env.sepolia new file mode 100644 index 000000000..d6186b061 --- /dev/null +++ b/crates/l2/.env.sepolia @@ -0,0 +1,42 @@ +ETH_RPC_URL=https://sepolia.internal.lambdaclass.com +# If set to 0xAA skip proof verification. +# Only use in dev mode. +DEPLOYER_CONTRACT_VERIFIER=0x00000000000000000000000000000000000000AA +# Risc0Groth16Verifier Sepolia Address +# DEPLOYER_CONTRACT_VERIFIER=0xd9b0d07CeCd808a8172F21fA7C97992168f045CA +DEPLOYER_ADDRESS=0x01bdD706463BC3A556a7efD8497A5b008D77dc71 +DEPLOYER_PRIVATE_KEY=0x6af50ad46abba29eb4ec311491d8853d61637a4995a84abf1b95335217ecf26e +# If set to false, the salt will be randomized. +DEPLOYER_SALT_IS_ZERO=false +L1_WATCHER_BRIDGE_ADDRESS=0xf17f34ab68661df61c7c98a555e1afa18487da3e +L1_WATCHER_TOPICS=0x6af50ad46abba29eb4ec311491d8853d61637a4995a84abf1b95335217ecf26e +L1_WATCHER_CHECK_INTERVAL_MS=1000 +L1_WATCHER_MAX_BLOCK_STEP=5000 +L1_WATCHER_L2_PROPOSER_PRIVATE_KEY=0x6af50ad46abba29eb4ec311491d8853d61637a4995a84abf1b95335217ecf26e +L1_WATCHER_L2_PROPOSER_ADDRESS=0x01bdD706463BC3A556a7efD8497A5b008D77dc71 +ENGINE_API_RPC_URL=http://localhost:8552 +ENGINE_API_JWT_PATH=./jwt.hex +PROVER_SERVER_LISTEN_IP=127.0.0.1 +PROVER_SERVER_LISTEN_PORT=3000 +# Not the same account as the COMMITTER_L1 Account +# The proposer is in charge of blob commitments. +# The prover_server is in charge of verifying the zkProofs. +PROVER_SERVER_VERIFIER_ADDRESS=0x021a564BC7e32a296Ef810B159D0CafAC989f6f9 +PROVER_SERVER_VERIFIER_PRIVATE_KEY=0x12d6bc4c62d05526e187f50250357d3f32911b832cc5797ed395b3a2ffe4e17c +PROVER_SERVER_DEV_MODE=false +PROVER_CLIENT_PROVER_SERVER_ENDPOINT=localhost:3000 +PROVER_CLIENT_INTERVAL_MS=5000 +COMMITTER_ON_CHAIN_PROPOSER_ADDRESS=0x9cca5124e47ddac7ad812886b032eb295666e22c +COMMITTER_L1_ADDRESS=0x01bdD706463BC3A556a7efD8497A5b008D77dc71 +COMMITTER_L1_PRIVATE_KEY=0x6af50ad46abba29eb4ec311491d8853d61637a4995a84abf1b95335217ecf26e +COMMITTER_INTERVAL_MS=1000 +# 1 Gwei +COMMITTER_ARBITRARY_BASE_BLOB_GAS_PRICE=1000000000 +# 50 Gwei +COMMITTER_MAX_BLOB_GAS_PRICE=50000000000 +PROPOSER_INTERVAL_MS=5000 +PROPOSER_COINBASE_ADDRESS=0x0007a881CD95B1484fca47615B64803dad620C8d +# https://dev.risczero.com/api/generating-proofs/dev-mode +# 1/true means fake proofs +# The RISC0_DEV_MODE=1 should only be used with DEPLOYER_CONTRACT_VERIFIER=0xAA +RISC0_DEV_MODE=1 diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index 1d4fe52a1..a94572404 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -307,15 +307,14 @@ impl ProverServer { debug!("Request received"); // How to Handle shut-downs? // 1. Read latest proof from file - // 2. Check if we have the proof of the last_verified_block+1 + // 2. Check if we have the proof of the block_to_verify == latestVerifiedBlock // - if we don't have it -> handle request and send inputs to the prover_client // - if we have it -> resend tx with the same proof_number bumping the gas - let proof; - let has_proof = match save_prover_state::block_number_has_state_file( - StateFileType::Proof, - block_to_verify, - ) { + let proof: Option)>>; + let has_proof; + match save_prover_state::block_number_has_state_file(StateFileType::Proof, block_to_verify) + { Ok(bool) => { if bool { proof = match save_prover_state::read_state_file_for_block_number( @@ -323,7 +322,10 @@ impl ProverServer { StateFileType::Proof, ) { Ok(state) => match state { - StateType::Proof(p) => p, + StateType::Proof(p) => { + has_proof = true; + Some(p) + } _ => unreachable!("Expected Proof state type, but got something else"), }, Err(e) => { @@ -332,27 +334,31 @@ impl ProverServer { block_to_verify, e, ); // If we reach here, we may have encoded the proof wrong. - // Or it was lost. + // Or it is missing. // How can we recover this error? - todo!("Proper error handling") + has_proof = false; + None } }; - // Do not send inputs to the prover - false } else { - // Send inputs to the prover - true + proof = None; + has_proof = false } } // Send inputs to the prover Err(e) => { error!("Error checking if block_number_has_state_file: {e}"); - true + proof = None; + has_proof = false } }; - let send_input = !has_proof; + // Force a possible pending or unsent verify function if we have a valid proof saved. + if let Some(pending_proof) = proof { + //self.handle_proof_submission(block_to_verify, pending_proof) + } + let send_input = !has_proof; let last_committed_block = EthClient::get_last_committed_block(&self.eth_client, self.on_chain_proposer_address) .await?; From 6f194177a9cbafe22a6fe28cb743bfd9148d14c6 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Thu, 21 Nov 2024 16:29:46 -0300 Subject: [PATCH 18/29] rm file --- crates/l2/.env.sepolia | 42 ------------------------------------------ 1 file changed, 42 deletions(-) delete mode 100644 crates/l2/.env.sepolia diff --git a/crates/l2/.env.sepolia b/crates/l2/.env.sepolia deleted file mode 100644 index d6186b061..000000000 --- a/crates/l2/.env.sepolia +++ /dev/null @@ -1,42 +0,0 @@ -ETH_RPC_URL=https://sepolia.internal.lambdaclass.com -# If set to 0xAA skip proof verification. -# Only use in dev mode. -DEPLOYER_CONTRACT_VERIFIER=0x00000000000000000000000000000000000000AA -# Risc0Groth16Verifier Sepolia Address -# DEPLOYER_CONTRACT_VERIFIER=0xd9b0d07CeCd808a8172F21fA7C97992168f045CA -DEPLOYER_ADDRESS=0x01bdD706463BC3A556a7efD8497A5b008D77dc71 -DEPLOYER_PRIVATE_KEY=0x6af50ad46abba29eb4ec311491d8853d61637a4995a84abf1b95335217ecf26e -# If set to false, the salt will be randomized. -DEPLOYER_SALT_IS_ZERO=false -L1_WATCHER_BRIDGE_ADDRESS=0xf17f34ab68661df61c7c98a555e1afa18487da3e -L1_WATCHER_TOPICS=0x6af50ad46abba29eb4ec311491d8853d61637a4995a84abf1b95335217ecf26e -L1_WATCHER_CHECK_INTERVAL_MS=1000 -L1_WATCHER_MAX_BLOCK_STEP=5000 -L1_WATCHER_L2_PROPOSER_PRIVATE_KEY=0x6af50ad46abba29eb4ec311491d8853d61637a4995a84abf1b95335217ecf26e -L1_WATCHER_L2_PROPOSER_ADDRESS=0x01bdD706463BC3A556a7efD8497A5b008D77dc71 -ENGINE_API_RPC_URL=http://localhost:8552 -ENGINE_API_JWT_PATH=./jwt.hex -PROVER_SERVER_LISTEN_IP=127.0.0.1 -PROVER_SERVER_LISTEN_PORT=3000 -# Not the same account as the COMMITTER_L1 Account -# The proposer is in charge of blob commitments. -# The prover_server is in charge of verifying the zkProofs. -PROVER_SERVER_VERIFIER_ADDRESS=0x021a564BC7e32a296Ef810B159D0CafAC989f6f9 -PROVER_SERVER_VERIFIER_PRIVATE_KEY=0x12d6bc4c62d05526e187f50250357d3f32911b832cc5797ed395b3a2ffe4e17c -PROVER_SERVER_DEV_MODE=false -PROVER_CLIENT_PROVER_SERVER_ENDPOINT=localhost:3000 -PROVER_CLIENT_INTERVAL_MS=5000 -COMMITTER_ON_CHAIN_PROPOSER_ADDRESS=0x9cca5124e47ddac7ad812886b032eb295666e22c -COMMITTER_L1_ADDRESS=0x01bdD706463BC3A556a7efD8497A5b008D77dc71 -COMMITTER_L1_PRIVATE_KEY=0x6af50ad46abba29eb4ec311491d8853d61637a4995a84abf1b95335217ecf26e -COMMITTER_INTERVAL_MS=1000 -# 1 Gwei -COMMITTER_ARBITRARY_BASE_BLOB_GAS_PRICE=1000000000 -# 50 Gwei -COMMITTER_MAX_BLOB_GAS_PRICE=50000000000 -PROPOSER_INTERVAL_MS=5000 -PROPOSER_COINBASE_ADDRESS=0x0007a881CD95B1484fca47615B64803dad620C8d -# https://dev.risczero.com/api/generating-proofs/dev-mode -# 1/true means fake proofs -# The RISC0_DEV_MODE=1 should only be used with DEPLOYER_CONTRACT_VERIFIER=0xAA -RISC0_DEV_MODE=1 From 23dcf3e11069326facb41635618cf671ed4a4cec Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Thu, 21 Nov 2024 18:38:37 -0300 Subject: [PATCH 19/29] fix comments --- crates/l2/proposer/prover_server.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index a94572404..5f33a76bd 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -277,8 +277,9 @@ impl ProverServer { ) })?; - self.handle_proof_submission(block_number, receipt.clone()) - .await?; + let _ = self + .handle_proof_submission(block_number, receipt.clone()) + .await; if let Err(e) = self.handle_submit(&mut stream, block_number) { error!("Failed to handle submit_ack: {e}"); @@ -307,7 +308,7 @@ impl ProverServer { debug!("Request received"); // How to Handle shut-downs? // 1. Read latest proof from file - // 2. Check if we have the proof of the block_to_verify == latestVerifiedBlock + // 2. Check if we have the proof of the block_to_verify == latestVerifiedBlock + 1 // - if we don't have it -> handle request and send inputs to the prover_client // - if we have it -> resend tx with the same proof_number bumping the gas @@ -346,16 +347,17 @@ impl ProverServer { } } // Send inputs to the prover - Err(e) => { - error!("Error checking if block_number_has_state_file: {e}"); + Err(_) => { proof = None; has_proof = false } }; - // Force a possible pending or unsent verify function if we have a valid proof saved. + // Send a transaction with the saved proof. if let Some(pending_proof) = proof { - //self.handle_proof_submission(block_to_verify, pending_proof) + info!("Resending saved proof {block_to_verify:?}."); + self.handle_proof_submission(block_to_verify, pending_proof) + .await?; } let send_input = !has_proof; From f43dbc88c83a8b92573ec09e07047907c7738fb8 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Wed, 11 Dec 2024 18:11:04 -0300 Subject: [PATCH 20/29] feat(wip): save proofs in file --- cmd/ethrex_l2/src/commands/prove.rs | 7 +- crates/l2/proposer/prover_server.rs | 134 +---------------- crates/l2/prover/src/lib.rs | 4 +- crates/l2/prover/src/main.rs | 6 +- crates/l2/prover/src/prover.rs | 2 +- crates/l2/prover/src/prover_client.rs | 7 +- .../sp1/elf/riscv32im-succinct-zkvm-elf | Bin 4120668 -> 4119672 bytes crates/l2/utils/mod.rs | 2 +- crates/l2/utils/prover/mod.rs | 2 + crates/l2/utils/prover/proving_systems.rs | 136 ++++++++++++++++++ .../save_state.rs} | 26 ++-- 11 files changed, 172 insertions(+), 154 deletions(-) create mode 100644 crates/l2/utils/prover/mod.rs create mode 100644 crates/l2/utils/prover/proving_systems.rs rename crates/l2/utils/{save_prover_state.rs => prover/save_state.rs} (95%) diff --git a/cmd/ethrex_l2/src/commands/prove.rs b/cmd/ethrex_l2/src/commands/prove.rs index 12fa233f7..26249c6cf 100644 --- a/cmd/ethrex_l2/src/commands/prove.rs +++ b/cmd/ethrex_l2/src/commands/prove.rs @@ -1,5 +1,8 @@ use clap::Args; -use ethrex_l2::utils::test_data_io::{generate_program_input, read_chain_file, read_genesis_file}; +use ethrex_l2::utils::{ + prover::proving_systems::ProverType, + test_data_io::{generate_program_input, read_chain_file, read_genesis_file}, +}; use ethrex_prover_lib::prover::create_prover; #[derive(Args)] @@ -30,7 +33,7 @@ impl Command { let chain = read_chain_file(&self.chain); let program_input = generate_program_input(genesis, chain, self.block_number)?; - let mut prover = create_prover(ethrex_l2::proposer::prover_server::ProverType::RISC0); + let mut prover = create_prover(ProverType::RISC0); prover.prove(program_input).expect("proving failed"); println!( "Total gas consumption: {}", diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index df5dd911e..d277ccf6e 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -5,6 +5,7 @@ use crate::utils::{ prover_server::ProverServerConfig, }, eth_client::{eth_sender::Overrides, EthClient, WrappedTransaction}, + prover::proving_systems::{ProverType, ProvingOutput}, }; use ethrex_core::{ types::{Block, BlockHeader}, @@ -30,9 +31,6 @@ use tokio::{ }; use tracing::{debug, error, info, warn}; -use risc0_zkvm::sha::Digestible; -use sp1_sdk::HashableKey; - #[derive(Debug, Serialize, Deserialize, Default)] pub struct ProverInputData { pub block: Block, @@ -52,136 +50,6 @@ struct ProverServer { proving_output_per_block: HashMap>, } -#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)] -/// Enum used to identify the different proving systems. -pub enum ProverType { - RISC0, - SP1, -} - -#[derive(Serialize, Deserialize, Clone, Debug)] -pub struct Risc0Proof { - pub receipt: Box, - pub prover_id: Vec, -} - -pub struct Risc0ContractData { - pub block_proof: Vec, - pub image_id: Vec, - pub journal_digest: Vec, -} - -impl Risc0Proof { - pub fn new(receipt: risc0_zkvm::Receipt, prover_id: Vec) -> Self { - Risc0Proof { - receipt: Box::new(receipt), - prover_id, - } - } - - pub fn contract_data(&self) -> Result { - // If we run the prover_client with RISC0_DEV_MODE=0 we will have a groth16 proof - // Else, we will have a fake proof. - // - // The RISC0_DEV_MODE=1 should only be used with DEPLOYER_CONTRACT_VERIFIER=0xAA - let block_proof = match self.receipt.inner.groth16() { - Ok(inner) => { - // The SELECTOR is used to perform an extra check inside the groth16 verifier contract. - let mut selector = - hex::encode(inner.verifier_parameters.as_bytes().get(..4).ok_or( - ProverServerError::Custom( - "Failed to get verify_proof_selector in send_proof()".to_owned(), - ), - )?); - let seal = hex::encode(inner.clone().seal); - selector.push_str(&seal); - hex::decode(selector).map_err(|e| { - ProverServerError::Custom(format!("Failed to hex::decode(selector): {e}")) - })? - } - Err(_) => vec![32; 0], - }; - - let mut image_id: [u32; 8] = [0; 8]; - for (i, b) in image_id.iter_mut().enumerate() { - *b = *self.prover_id.get(i).ok_or(ProverServerError::Custom( - "Failed to get image_id in handle_proof_submission()".to_owned(), - ))?; - } - - let image_id: risc0_zkvm::sha::Digest = image_id.into(); - let image_id = image_id.as_bytes().to_vec(); - - let journal_digest = Digestible::digest(&self.receipt.journal) - .as_bytes() - .to_vec(); - - Ok(Risc0ContractData { - block_proof, - image_id, - journal_digest, - }) - } -} - -#[derive(Serialize, Deserialize, Clone)] -pub struct Sp1Proof { - pub proof: Box, - pub vk: sp1_sdk::SP1VerifyingKey, -} - -impl Debug for Sp1Proof { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.debug_struct("Sp1Proof") - .field("proof", &self.proof) - .field("vk", &self.vk.bytes32()) - .finish() - } -} - -pub struct Sp1ContractData { - pub public_values: Vec, - pub vk: Vec, - pub proof_bytes: Vec, -} - -impl Sp1Proof { - pub fn new( - proof: sp1_sdk::SP1ProofWithPublicValues, - verifying_key: sp1_sdk::SP1VerifyingKey, - ) -> Self { - Sp1Proof { - proof: Box::new(proof), - vk: verifying_key, - } - } - - pub fn contract_data(&self) -> Result { - let vk = self - .vk - .bytes32() - .strip_prefix("0x") - .ok_or(ProverServerError::Custom( - "Failed to strip_prefix of sp1 vk".to_owned(), - ))? - .to_string(); - let vk_bytes = hex::decode(&vk) - .map_err(|_| ProverServerError::Custom("Failed hex::decode(&vk)".to_owned()))?; - - Ok(Sp1ContractData { - public_values: self.proof.public_values.to_vec(), - vk: vk_bytes, - proof_bytes: self.proof.bytes(), - }) - } -} - -#[derive(Serialize, Deserialize, Clone, Debug)] -pub enum ProvingOutput { - RISC0(Risc0Proof), - SP1(Sp1Proof), -} - /// Enum for the ProverServer <--> ProverClient Communication Protocol. #[derive(Serialize, Deserialize)] pub enum ProofData { diff --git a/crates/l2/prover/src/lib.rs b/crates/l2/prover/src/lib.rs index 4c99e12fe..64469fe67 100644 --- a/crates/l2/prover/src/lib.rs +++ b/crates/l2/prover/src/lib.rs @@ -2,8 +2,8 @@ pub mod errors; pub mod prover; pub mod prover_client; -use ethrex_l2::{ - proposer::prover_server::ProverType, utils::config::prover_client::ProverClientConfig, +use ethrex_l2::utils::{ + config::prover_client::ProverClientConfig, prover::proving_systems::ProverType, }; use tracing::warn; diff --git a/crates/l2/prover/src/main.rs b/crates/l2/prover/src/main.rs index a442c5877..caa9d8b97 100644 --- a/crates/l2/prover/src/main.rs +++ b/crates/l2/prover/src/main.rs @@ -1,6 +1,6 @@ -use ethrex_l2::{ - proposer::prover_server::ProverType, - utils::config::{prover_client::ProverClientConfig, read_env_file}, +use ethrex_l2::utils::{ + config::{prover_client::ProverClientConfig, read_env_file}, + prover::proving_systems::ProverType, }; use ethrex_prover_lib::init_client; use std::env; diff --git a/crates/l2/prover/src/prover.rs b/crates/l2/prover/src/prover.rs index 4c408df39..f56f54ed1 100644 --- a/crates/l2/prover/src/prover.rs +++ b/crates/l2/prover/src/prover.rs @@ -1,5 +1,5 @@ use crate::errors::ProverError; -use ethrex_l2::proposer::prover_server::{ProverType, ProvingOutput, Risc0Proof, Sp1Proof}; +use ethrex_l2::utils::prover::proving_systems::{ProverType, ProvingOutput, Risc0Proof, Sp1Proof}; use tracing::info; // risc0 diff --git a/crates/l2/prover/src/prover_client.rs b/crates/l2/prover/src/prover_client.rs index a81dcd9b8..48ff26ea8 100644 --- a/crates/l2/prover/src/prover_client.rs +++ b/crates/l2/prover/src/prover_client.rs @@ -1,7 +1,10 @@ use crate::prover::create_prover; use ethrex_l2::{ - proposer::prover_server::{ProofData, ProverType, ProvingOutput}, - utils::config::prover_client::ProverClientConfig, + proposer::prover_server::ProofData, + utils::{ + config::prover_client::ProverClientConfig, + prover::proving_systems::{ProverType, ProvingOutput}, + }, }; use std::{ io::{BufReader, BufWriter}, diff --git a/crates/l2/prover/zkvm/interface/sp1/elf/riscv32im-succinct-zkvm-elf b/crates/l2/prover/zkvm/interface/sp1/elf/riscv32im-succinct-zkvm-elf index a6fe4d63571695577ac7342fdf6f59302b03d3be..01f51eafeb1ab34ddd7edb4ce76aaef650b21133 100755 GIT binary patch delta 809992 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ℑ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 z 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 delta 810921 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
    ye1x4 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%0AAr2SW&HU9=)OrG{-`!k|{T|f&&+c|~{J4Uk! zNd9DJ&3DIHi`XLRJ^6pPsZ#}*0TI8{G4;wu@*g>C{m*a?`4KYzEd}cTn+|A!eerY( z$S#t6p|j@u;AV^c9=g+6^LOKw(@F)>s+@^!~!rk=$d8hb5IR)yS<^2|xJD)c29$s*X_s4hx0}7e2knuqc?l;Eg zcjM9}Gv!SD6@KqCr_Hr?+bxYYPaJOk@HqTbHw6|57TgQYW5Ux=l* zQ(uCmZ&459{YR>Q*TA({IwSR1+}ijSoNqi4OYf%Tr{ZGcd+`Y4hj58;JexqN2|R<# zj9jbFwU#ud2A_#JHD^?r!gn*3*2dOx?qF{9T#qCM#SbeHatk+yD811!CxdOuub z+yoCZJ{-r!EpV0b@wghN|DzQ#FOFS67jQ9_QLg%OoR8^!QzzLy&YGWz3&}Tj`FET( z{~;b^>i_MW%1i&ZgTQbKqy_}|m^x`|11I2H$RFeuaDlVt2jdy!4|Msd&YHg$KTBTU z`MlvQ`BeY6jKJin{zco*;noHhRsK9;<$;E|bWYyMcAPriw4zbs&Y z3uu9XcmM_THQXd;&EJiOkiU+A)Gv3|{99O_eAMq@dGb+zjOE59%jX}11p@MAW1v!{to( z_CsuJ0PbmI6F4iM zzyGsqbR7Y^1*@=a@T8NID>OUso?Vmmhhy9Rr-5_3@%MkWz(d`V6?O%_v>>@c%dxG0 z{3*#5xEI?E_$SC0pBg6%ynSl2ffn79o*H;l;B$K<+gpO|9zFcDWPV~yz!vy5DA1=T zv)zmdYq;FyvU~{3m~OT6_H&tN?8#*(V?^>h&u4Cz35Lns9K^?7#GDe(esa4IPscLF zGuK@u@!E@%1x_E#Tck>oZbhH-&@1V#;_hO7E7TrOl?`3 z8imm$Ou|q^NhKBH8Jh?$?Xg z>wR74em?g(=RV)>ciqIS7sKi`ZiSRvm~38$T|;xv%%pG>JkvESFEPs{quO$J07bVk zbIO!Uy}JU9Sf+SpxhpX0cJ{{*Ouj`MCx8F{5dty=v$Sh;2K&rn1H9jBLo^x7h=%=z z(`XmZ<})4!5Mg&rOSlxvfJ9rytyl&e>Wn*?N92sN-2pv=WfUB~&ddCN>KqP$VRsn7 zH)0tTuXiouth<;A<%q-nogKb|WrP!sVDMRY|N9C&xQ83C-TqF~ckuahQ%k44{@uA8 zg8kCel3^_63-%~K+~foDMaEKo<{sr|`@HmjO)Vupz-4Y~soZ0Q*Gyi@zhx}tf7qk^ zPLr4NzZ*;WL-y7a4*TE4AcKHknp%!BmKBD#t{|lngCdic9b9ZI&o_A~|B$hie6~5kM zh5g(9`wZG+zcjTRY%DuCZIAN9OkTEsuCbKA9mnjT@-9*NBLnr1VHGC0*OIqzlY8$Xz((sD0!L#0D ztjZ28`@SL^%v{B|yKM(hwF?N;<9x<{|L^l z@m_%&-}7FDXMO1XEKdBapEip8X$S%(4Zgr@IAxpnn|Q&G-tXd0zj}X&tN!x-6z8^) zk*F;E*#W$^o%d#(dSJ{4z9nF%^M1rb_xJM>P1shlKd@gIIzGsES-2(j1f`NK#&Qev zePpkPcpqVVI#?cp*T=XgI#KZ=0l6o;-SGd2g-PKp(bs{6SZ>Jzw}V3#@hLpkZ|#l2 za!VGu^((O4k_zWvvD^~<(%ngm8C=UfndM$!RubTzv^r@C?+@G(&0mM*mZ-nNa!b@F zKg*v*BT`OdURSCZ zGxoR$hxZtNh4YOQQrZMFyZZIp#t4ix1&)^j>ApZVo@4Tt;pxUDxae?S{yx0OHVf~WNK`R%yZk={G-HsfD#=~1ouSkO#h z#L=yR;2)gS%RAwKHbJ#4>~ zSLFHpMBHnT_f(uc*n0+^nD2d?tba=6u>YS!AaRH{dDi8xZ(`& z$8ke}cLgp#)BAZmb6Du8|F0s@>1DDOXU-bLQQfz+Xkz4yk8F7Zyn)y3Wi;+>b` zsQ-%#IuS^_+!r_m4;}5Dfv1e|J_;|r!aEb!Ug_NzH;?ts#Ti$755k4xvVH$Qlt2Rk zZRyU!`PX=lz-uRXkHp#YvV%peAT8x8JYtg1Ka00r=lvp{F~$2eyn0%8bpFzKzDZ#B zbT;S)q5B^cSr4c^UT~A&z`;0khIcodYurP8v(NX&83*`pXcggJ2k@gfZL4o5&}>$? z3ol{?%~#@?W&@k?9FuRCO4Dq{6Dc_1K)?Qpc!yd43cM?3HgF$-ikbe17vhPxc|U@a zZuee+I~lLS`LlffSv>0w?-%iW z?RLehy`!DfUZ!33+~O1{+VA^IU+5x=6mA?^6D%+YQFc0c&+guTy1<&0?#6^?ZOv$fpL6Snrh?Tc+`UIU@Ys) zJzwM;o`CfKj}fS*z!q0v|3e~&1;}^6BM$OAJQ**;`ibp$oNw|A@q<`D#eWNDnf!n8 zEG!?AbN+mj=Fm35Xac+jgl9Y$kHh*i{s}n4Y+x~-j&%psxa`5~V6{7e?DWWb0t4}C zv;Nh1ZRF@f@dpW{ngVO_dgC8)aq4M7TX%pRy3vr}Oy`qvk$F`cishC?OMEa4FT@wP z@;5lU{+D0M64*(Bvt5BFopl4xVHwA(tFVmw)&IdV?pLqFGOSmBh-KKWuER2{cl|FP zf)kK&yB64rSKm6M)!$=z>@>dg8B^PxUHXZnjq!S^Iyk00HS9b%m{Xm+|*l zx>L>X#Hq%A;9kc6U}<=?{9cE*339Ns6mrEfLz^GP_ah+Bt*&qqt}?$#KLyKkulWMJ z!1x?2?S|$@V(AUlmtyHn)njo@%ml6_Al<7Ln2M!)Ro{$r&EJ-og{8aJ{9L@v_SlmUctSzm28cP`{6*olt**XBpQYPX8}0 zl@{1c0cqLP+p#np>i=SCIMlnav=i#T@D{AUIX@yJvgUi^A56X|BNhd;z$FyeMFIUf z(B00OzYn)D4bd8B&A*M4$ZOO5le6Z3!(GVBJd#wx^jP;OpapthY1!0$u(W*Y6R`YA zSamM8lTw4RUz%FBG6NzL9K{4>QY!5+CNk;X3#9wSv6Td*>EydG;YYsTVVU93naa$i z{DiA34-MOu6{d;Pvx9m!6Z!_035fM>2YW5!w5Aa2A7Wo9}tiU z2VEg~IbU?>;XMq?goEbq!!qHZ{uIlEgS!0+ev@W=K9&gw%`e6>-w>JpZzBPjaL@u> z%lJ^-_!2A=4w_$vWx_%I4VDQ9b@!D_LNVd6!=3S1EE5h5?vg)+WxgTI%ZK7W5s(Q7 z{TuYhKAsd#IE;5IOu;hYz~7J$Z^6r0CLDBL?@uff4ka!>;0Y!knQ+i~!{QZPj-07llSA zJ(UzrIMlimxCYCFL%qwd#xmicGo!y^nQv&6{!b2|Zv|r+CK&Xd-GF7nq1bI;4VDRq zX19YDEE5h}oCiJ4_YRnF(5cuvuuM3Vx_k|m35Q;8d;2~^rDndN^&iDKi-1fxXo35% zOgO0PuuM3pJ3dP#V!}Z^63c{x`VlM>4(csfCLGjSLaxl3nRN8Owx&=3m4z;h=8DGT~6-u1N0l+_G`J|LfnJpGiO_9A>yn^e&bO zhXt;oNqT|jmI(&^P5IeaCKwjE4L*crf+5Q_R1KI3hSrwu@JgN<<`49iT!AxZ@V?HS z59`2_1i}dfcK|<&nGevXBI`xY5bINLBbN7l{mJ-REU)kSoAte4;wj+uU3XZ3<@H_n z_WXhcZ3d^gLY*3z>|6%+0$#Y+o z>3jd}ozqQcB-8Cz;t>yJv$ia8!T9d<|EcZ$o6SQM7`xaPco-Ki@m`8k9`;^|Czg6Y zh0`DLehya|zl=LQ=JT(2r~j`pfww6zYPm1)9$rx9{V~p8>HQg=V!RQT8Gnse8-FM3 zn-e}Tc0`+CDghm_48U2Yz*sy2>o=|+z!@h02EH0grIG=~_ju^z{s4c*({V5I^746B zkH~TZWR2Je0%a8F1f{@J&S4%uhu4@5zKn-H;dk<}}ic7nl3|d$@uDjJ_@Zim$>a zhr8$V*RDOIK(xd7;BYJ}sE@>J@VU_n!8y*FzW_@eQeT4Q3aQ6nxuWWESZ+bI@TIs( z1mqHHfoXV-8Ta3eOT$I2XL2okY97E+$(tz@{-bzX z2}msuU!Qrbj(wAl*{J2kt{u1mOD)&@TUcuOBG~}t_kD|x*|3&B7fUVI@{eJu-vXSyA{i=~#U_pfGzgS90)A4@IQ19}WgCDiiYVW~qU zZhNP`L!LT=qyB#-0jWegi2K4zLEW)xunvNJdZ1$X1pL9q>}#W3|aUB1Fr1q zE8PW0GQ~srXo(9h#=Am?@1JqOx(~90oo%BXRN$m%ef~L|Y5Wpyemy%V zV+utMXrH5~QzoB;GgkZc55%SKa0_Dc6>nC!l)xxc;7UBx_!?Yhd>w8uz5&mF&hH?G zcNyP-tDpDzxwsL#_iz3(BY~EXf|pz+Vud@Lb%nXOXJ>y;U&QBPdDx`o+l)JzeA`~UDPjF7$np3z ztdrFj;l$2n{{Kz_!%Tta@HP%e58!2-RE6cSlkjS@qW1BV1Gb4$I$;5n*xI< z@Dv3)yDM@Ho?`M-aW(l)F24-VG5IHP8hL$v{|uL!{3d)KdHuJq+h)@LuQmk^%wz|~ z2je>944l}-zuynTjV6BqUdt8L9n8YJP5vGn&jIjt=dcdE5+jiEs=s7!<6?H8Q?Eba z43lrhznT2u$8yO{zBm5e+|nXkVDgvYugJ@gPM(_BJOah0z(RZ)JD}kU3%rG=n0zhX z%?70Hmks=Z=a_ular^{~Gt?dQ!lfqP7vJKqU@W+lz-m)q9IiIL9>2*7dQX?)dXs+= zuP3jU^fSD}m?tGr5b_Zx&=;6|CccKeHoX_( z29qCyzl#nin*X0qV5cdt1Ru>M*L(gBPFSP&EH3yM_b0DU$)C8B$tUz}6Z}M8ujnzj zm&xbgUBrr>;&zY$A+A1!ggOkDk0b}(KBEL_oAEd9IYH((i0 zsOxclN5+s*{~I4{B~Z2A7uX>y82^rIKlS;bAD7hR+u_6wKA(zHj1R$`jCaq$Mz|KCPntSL}}CmKJ5ryDQDCB{$U znZ}iPj`15}a|LVg{7+;4l5HTc$P{S6OO3bVa^szNweg?0$~b{;bFJ}yxW>2>&W}-P zv{D>KpvbrvE->zkM;PbfJTuB2j|+_#;kBmxavWB=aEJWd9LJ>A>H$1Mpv-LGD{Q|J zxdk_O@^3!daUy*|wD9|MEJHB$FIa|b>SioMGW9>%^#3v@(?CK_Gz3$(!!pKGr{E&v z4p@d%noq+rpiv)&WrU>eiDg8j?vq3RFGDO1WKkfPppf z^(SHJ|JBp5bhql8v2@Ss+hYWzJJrBlSOysCd$Dvb>IboOChCW=^d0JDSo#X}6Ii-) z_0w4T0(I;K0y5yxz$;kVZuNh#^w;Wluym*D53uwF>QAtA*Xl2@bkFMl!_rwf$AWJN zNN1o0zQ;1cQU8o($fW)aOWUpf3(J^K9oIkVJJkDN=_}O9Si1XY;r;(00y1LJ0-dq+ z_v%Bj3>wwlu?$kxy|4^Q)yHEQ<*NH*>5SATW9ePVT-sLI;jLI+@3s7=SYGcl!t0yoocU4t3&;ONbT^)kOr9c$`<%n99rGdKFLZf|wwc;t|R@9-}2(Zb6tE^ILU zf0L}R*%$a7uld^hFI=$Io3FA5iQjtfg|iRwuk**?9pCwU7M{`Qog?eVzW0HF1V;bh zeF|RtqxTuO@h9)I@y?&U&&Q=Zy)VLJpU#>OPNM(s^_zPxDRALQw0u|#T#6HZ_mfEV z&YItZ)5up5kR9|H7+LdKcqs>*LO>dxOYkRHCp_*RNdG_I6nK#W?_-^#*@9=9{JwdN z`LMot^u@0mUyAEEpkjAGZ#wG%y^DvMI`T`5K-M38Im}HejXF89u5cMHZDwMT1}}WE zaMt_=oVVLwv3gwbxA!Jo9G4Rn=NfFomBz6j2rNC+U!wMdcr4=m3J2qA(-e2d3H$i` zF*r!~U#lI7M_|3=ci{1fzWlv-ciUFSg2e>#+O-CP6?kou_tQA_Fu#L(oQ8D=Z3Z)J z@8iqwhf6u31kPFRc@C~J2RIt9Z9PEx|9c7aJTs@Ymd52%3A?$5hYj??`B-;&KCZyw z$7>Ux=j&sn5ewh18?) z2z(v^+5Vl*nx7XVAazUw4`8Wd>czMk4 zv3-U_0bL;(51@dyoY~HrKM4;u8@S3@^Vi}LUH;>*aphL^7exque<1Ybpg zwglvicROo7ekixZys0JP$!3SgJ8StIEG@fwAeNpWT4)wdAs~H+7B~Y-)2|+mrRi5+ zfTinD7h~yb)K_BZJk=Ah9n)TqTNn9R@Q|+=;xS+uMO4O+%W+`?-#Kw#h)CSZ7?kl! ziSq<3xkYivD$x+;8~S4dazW_Y5JWR@3&&81zLf?V5f8;twnh zTiBA5&-sBbSYXZHgry-%k=Fv*K>kj?nZ*V!=K#dBaWyV*uEEkWYJP^fhcYHzjEiZ> zx4GUu{j|ueE?Wq?I(5|n4d5{7t3R*J1EEUSnB$JVRFeTDHef-b|N z0Na;c1c%}pE_rIG_~0~LjcHlKN_8EsyfG&nvdLrnwzI4)C2DZeO*ug?>HTo~!pNHM zg0pYViM~`TKZ_}F0WEMg-n}#@`W6ivcnoj5B_}AOfNby+XD$CZF8VGfn8~b}cnm(zWGD!>Lp=bE5G8`IDS=hlBB&&vSxO z8VcFLqj(hMv*``R>z%dyXL!M^oS@Dfz&__hmb~jnnn9Y_1m zC7;I4#s`n!^tadx>dR}DRz~Q*y zZoh+3&YHgrr_c5Ihn+RQ4DTY(8HXqIm9y)AwJD>-N2!E<~)Cii<~uo zv6LsTS8SoP<{!c9@6lQx7kuvA+W$8Ym@(h)pnXwf-N3=Pp1fAF5zd+)iBlf*`4^ov z{~8{;*k7Rz7ld~E=N6<9NL%91V4AaT;AWiius^_hXU%WI<4rziWMs_`#5LsgDOeJk z=TZwSB~V)G@6lh*nvc7Xx8X;89U0}U`O9$DqrQ^8?yUK@aRvDb*Df3~3daa&feZpg zG(6hS#GEyM2bP9OJr~bkLDNk@o|5g(n%{w?AyWT>t5)W;j<~M6i2h#!THsm&^B<=r zBOn_rbJqNmIOPdHB-`k$`LA&*c^#4+ba73BxF{y_>| zf?TruaY=Ijpuvsnf5g)HX!#~wAJ@Otf8g9B{T$a}m+>B896OW1coUe88|ZGs{+wN| zz`Kk;!m~{I|KU>OjLYe6jfde%;~R0UcPv;*Aj1cO^;mjCJ)_TYwz)#_qiHyd`(U|3 zT0RRGnS3!GYg~fm3Pub4|NR7NOo2CWz3~sY(YV8ysPoYsrr}bqP_)DcN8q0Hj;RD> z6g(V{?xZ`63r69R&d$>RUqPU0rV0;)JW!w`>rPcC%@C@TDER|gI{c&l`1o8+}7@vyQ7#HAL<8yF> z@kqSG_);vxblu@tY+qil#d`fI!=D#jz`tKc=OO>5mb|S_rGPHsyBprpzkll=&D!Z4 zm5B>}!(}J>$Lvo$D$lzGSLJ&rTrKneLwum^)l{OP-uvOqGrSMNMZJ8}Isi8h^Z7w| zJb7LV!lrjTF2UNcJ%m%w_vIhHn*Kkl*awzUAngk8$MKf2-W7Q1)!xtJigDgmIDew| z8+iI8?`m9qo%j1O0%=qGx6X3?<*b)9ZX7QbX7+- zeSkVKDl$I{Bp{VysH=3(W2qD27?2fqW2qB0E@ zj}{IPmvT#Vfbl<^d#lg?gRACvx4DKow5WfuR1S#!oriPhMR}e-K8+_(e7|3z7_Vjr z`bFluaY}Fh7**nQte^30!kH$YIDzdMACD&*UyKVQNB#dC0(qvu^H`2p&-i7$c8T{I zoUp?CO}yX26L1ZKX|zxDmU_q8;wZ*dRZEtrGnn*)3S z&otg7<*|;M+fL*FOg;-&V|h$vOn3>dmAvd<0(TRT9Yza((;iD5P(Os_0M(^9bDeKD zK6KXnr?NhIZ8!Fs6j}58;zIKLS=^{noa_QxUFtc) z#I~Jy7fYp$miXX9$@en-|EC0ArGWnY?{8;aq0MzsB~-V?QVG@jW2uDd_E_qa`d}=T zPTdU`_cr~14+7=pUySLECz=(G$8yhg136gggnA%ein|ezTY9y#<|ksQ1L~=`Hf91d z2uLN;0=HqQMCv&>p^u-2d%;=ruizB&`V-P^&YJ%LA7R#SKZX8Z0$Si;0>@!#&*cnG zb=G_VK83vgfMS}n=5NNM$m>7aQ|_$!XYeHQ`r-4JQ|SLCpanKl;5Mv32WWSFWX-4G z`^f77p6IOklX00@f4sBiC*v2$Ys>k__4NM|&;lzc@GjQp_#=imd+!?b*CR<={wdsA9@e-|1{P4 zG%V7aj=|DY&v)xTjisqBj>^Y^-v~%sJ<4t1BnAv&TkSS*mzcJ?#Q7z22GX5=is#c% z=|`_4r$vs=GA_6TkI3}*{4QLGY1#RY&;MT_Fr~&ftyQ@BJ@41?s1Ll~!dq&+-^HUp z@~*|DAA4`W>7RJlwih5zWUlO@0Y}pS-pM@8D9C{}@-B z?f;3ZBp>ddiv%13S=rn2n1~eh}Wp`r5Q!gJ+ohG+aequh4Q# zrFZ+M(v%Ze#0t4oA{nLbbcQT(!S8rVKfi-BZ)QTlxE$A+9X^9g$?H?o_7>{Q=l+W9 zkMll{`9OODji$iCIN^)_t<&ZAJL>^0!VTorkK*ZEA=)txH$JGr%_jd5F8b1!ufvTo z08{%G$f@M?1a z8}M51SnxN2>OOvjHnV7%c#NVYK1jv^S4bO{Y@B+WFFy$99`9X%M`wAThf7ZIF2-B> zs(Jsvnm}{52KbksaYcXcTkxC#-g6{>lK1_1e4ckH&N8?3U7TV33*MqvKz z`Po=TOzL^K+zi_nVCn8%{~I4XOh5)8y25fS0}AyjEF&QGYApS^`eiKLulfxv0}k~& zSb9%&EtV0H>wn{ePYFo(s|CKoG9*)fjb(_XZp1PkQ2&f&jHmt`%ZN$+Hdsh3IO=pP0~U1;Ed9T_4^BMJ_l6fZYrYsKA4mVMBa*pM zpmhWH<4$Zqzli+0vu>aoA3|P-WIsD={&(DyybkHQ-4$8$J#pXTc>mWOoD&B88H~ia zY(Pi7cR1??O7Kwf`ZoKrv*zEx7nt?Gch>w)JSIi~eP2KLZUR^f9ENW)8#vQh^CR$` z?%56gf< z4`2xHNZ&D-fb=bsoi%?0mH~-#jBhouLmvq4#4=#e74E?@U{F7ZrMFaL;;`AJorb>FlC~_x~ya8Lff%;6FIacpaARQ#bG-mhMwsho!q!Z^ToKx8hmG-{S>p z>Hl{UDANG`16LaVgR71Ax+fYl>JF3eHj_UH?=tR!rF+)$-LQ1Wve5p=2R#W$e;h6G z!7*5d&Fa25-*^C)QM2ar@o3{S@D$_WSYFk%`~_HE%~+)Wi4Tei$eT&D#0OVmc`;E> zz;+hvdhC~`mPH2P5)W2gdh3E z0&h0OY*#k0&wu%a0&_aqGXIay{E6@XGl#Rl`A;l!M5CR5{ewSr#+%Xz=MByLVO8FY z(%ol3H~o+Dy!jNmNvz1!eUEH5sj-3eUzH`8>y38lL2Z^rT>lj6#s{|}#n@v0WnGpZvX?`lKc zJl#bt{H&K*v03hn+A%XAvta6%vCM+0N5>_HvtH_j@yX%abolbh0soEVZCQO)n`C)A zjh_7rw1o8kVQ0Y#=M#{YuOB;aJ~*!%sNUUHMC} zJO!GcyKnNpe#cykrR_h{mESKZIam>6gK~zl!$Jbm5)O8rVQRU|bS}nO7x-cIqj<_i z-YanBrQYRu*BI}ov3-hOz;67<9@)W>wR}{{4)R}-{|Xz_ zMGp9LJn?FO02^`Tc<(Lu(Esne)(5szVEtB}0;$DxAE(~SyW4d>Uw{*?_a2VZ9zQXt z>Km1xg^N%0AG1A+GjiN5VT)hlx~YEs&G*v(*EO6N?3TxZ9j4BwA)4(Abiu`Qz0+}) z+2HB8aGuW>;@W$>&%=vM`I&gv13o`HMxfjjSdG^#@&#VPWt>r1sW`;1arRQ5{|?tI z_x>*~%Jt!t>eUk1uHi1C1*}-Bwj{-UmSdFt+_#M2DJDDB)h7*m` z?{58J6QH3AkEj;+$J~+7f8b^gpcu<78u&nD$PyQv zf*Z{aCgP$pf5205waG8Tby%uuIR9Tu;0pq+JH!oG&)~2H?0^mSVg)&Xn6vC&HgN|| zUFml?7v~$_hozE6OI)xJSM+zcNc#V`2$X67{}-<@?(`s)%6KqtFrI*S8!yH?jH_{p z@y|HZIeh=`@(}NOR6-rM=i?N!!nHWvcnOxLM$c#|E;N_;11yiR=0Cx?+fQu$V)LmB zBa@f*ho4{&*g^qaVK}aB^e)21-+Nz-Q~&Ed8W&`n@d7S2`Du8m@l3q!XIVdN|KftX z3G4_1atLw30^Dn--@&8U?w|}$H~A;=cyj=ixZdPn$JI@Kd+TtgUvSj^@|z6;%@PQg zxZo>nH@F4o|LXJGaq(~7J7oPoy??=lE#A9vi8;W%7x7q=ckO>%kU}8Otk4AyHO|0x z14rTc;bgrWaa@pzE6fi1l{zZlmVKZd2D()>!i!}zJi^#9Uw zX@Tb`kVHc=n1CE%gR|zhVrgj9jkx)4xjwSQ2R~uy|Dz>7*oDVpxyiDeD@{v z|I)o`;Ajd+Z>2sKOXs2Pho$pSpM<6FP@jUO?@$-uBJ*d)&cXICHjIoBklssIxD-ow ztR9P{dsSbHrTbM+#nPRsZ^qJ_s%K&8P1SR;bkFM8{RD=Zz+x-|2raM_k2QV*%K$?2 z&tMrZs9(f(khuo?rKx4b2aG8h1LhLuMJ5(p%e$EL*YhbQZ#Eb5Dkj}&rt`B{4p4{H zyMN|y(K8-c>+MYE0!^2^n*wGzoUNPCzFiX zdb(Gm>#&UZcDfC|hGopAUpP$ol^>fkMAL6b48t-c(|@mE36?=-J>99C&{iyi+|uZb zg9CUIl2LKKytv3e3-W)A`(+F_(VbEEWZq1;0`<;o_WSpX#M|bQ$}oEiF7MzQvTt!& zNADkSbtmti@wU#9X@BE_U9v(KU*LZ@y-#lIF#LjtX_yZ2`HOL5y7%RH^ z1AMJti*2o6hyB98{Qe=8lJ!p|D6e{(vFtDU z{vUyKW-MfbTFcvgLapYA(_N+P{(t;#mouEh2BcC|GC?6{T;hD(F6IZg$LX%pUXP^? zsH?Etl1%ruyc^3cjcFk7H-5)UCED#acsrI$Ug`WkmRpqIc5uM&{Lu;Sq56C*w@m#g zmP)qPt-lpZ9T@7?@4<`-bto3pxWG69Qi(F$WAZGPN}1}O<9~Pxe|&H$ZXUq#xaWz!{AxVZ z_$55ncnvPd_2u7sEXJ5_fDhDAV2ANXxcnraufsD2dVhuU^Srm<;AHRZc&+gcS$~kv z{}LmRJ=h1D@h;(fK zx(}90sm{V{jQeA$)tb-4QYqD^VyU$10xVCFb1WE6pxFob1#I*f>IxTQc?{K~u{?I_ ztFb)S>WNq?wR$R+O0AxOrBX)=^Z&OIkjFv`+=WLO&&N}Y7vd7*N3m`DS7N_3wfs)g zE_GlHL20@#TF>)_*NUb8@AfHw?S@KK;|h$yQYqEvf5w1>E2MqHVl4Miy%EbjR(JiJ zrkPr<RkCwdnJdJR1at*E;I-DL%ZbgDPaBR@Bi#z#AA1mNn39{1xwSq+U=lf zf2OBsXy!Y2Nl6YHo-*evurxgB&d+0Mc+~%3X?M!x{Z}r@*$1!#8Wt^3hNaV&29+K#0TbqdEn1ddEi4l9`!s4$gC zdbjs*)+xEI-*PQn7MbnICWCYF8aAk(jK**kjtjH#!7AKoNN($2%}81vIUN7U1`Z%F zkpf|*!E>C$?c;fP=urB10@A&{;jH<$aRK=>m;cRK^MB&8Qjmfr%8* z75a;B^Y3;8apPG&pO4Ep!)S>Q&cs8{_4)H~!Fk@7;3AVBi)+p`@Bfnsj2-C51EqM4 z@w<4}C4PgS;8c_U3)=&dKjkR5Ko4+lEVoFVgxALi3?d=}g1!jSllwaYj`BgY3XQ+W^3D}nGMeLWRmb(_v&~S^UGeD51W<8c$(u*OI z_%%~rD(yEowU|mrEtEQQ(#puuHsgZ9E9w8oU+OREPzub*^S59!t~M^kDJT25s>vfEKt}3YZ;~PuW%lVi>S2vBh(9>qdLZm2cAk^o-O7-;)A&^pat&3@)W2S z;u4%KD^UJTXU)Hh(ao%vtjr@lbOBdp{Fd^GWy&lkexO`2qN>L45yDcQ7^zM0uhU za3LGeE3nvEH}Duf&+OoRXU(t27m(NO|K+UtxM$l07Y>T~O42I~_)2sfzS!*GB4^#e z<@i#QzsFhg3-D-@|Btig-@#YLOo5#ez*^vUd^K)MKQdF1r~J3JRz^J(}Y^77&#CosfW^JhLs z|G(T6m`(w)7PtjJWAdwwHGeDKVRrDev*s)DALR9lZHc*n7WfVagMER6UWlyuF1Rguy=A95 zYyM2UKY4xbZ*bQ9Ox&5g)|ps^3uu8Ca5@F_5^i?Z{C0e_*}#F7ku~2LA7|D-#aZ(O zcmR3VH1qc#T|f)Oa2^Hpzp-z zBVKFrk2`DrX}r$lzjW687Fy3&ByWx++qrhch&;e;oD9AF=x#`j^~iqr)Yz-=D)=EnEYOEMt1pFkVIgCDUj`~ z8yJX}nEW_r%}>TlP5x15&9B6doBSuvQJ((4o_8)N$^V0v95m;vmtasK8e1U7t4%)mOS@Z4iCnn$5S@Q$%=O%xZ zv*hW2;)966q?eXU#9i2awkT{K#4JpW#Ez`f=|>j^-aYfJ6dEP(VNX&2rWa zoQO{#ufysqoi#rJ4MOdcM)T6P?imAt8 znKe^S#`VTG;6~$_xY_tl%v`hEKNG6=5b#S=%Y();nfy8~zM*yEFn9~+-{}1=PP)na zLtJD0DK4Gi^IzhFTKCTZY$o8Brk3%1BqKZ2&v0JBvP1n??x6Pkz;hO7~Gf94&FdL%0g3$qs0IYn(OzAx<3bKlSrMVNT!XbC znu4oL{xQ58>tp_YjKB_4;5S@yyT1Z|;)HYj2M*oeXL1?q0Ttpj*6-mC=tf*(wpWJB z@9^7Og)7YVVs!*6%?4ZWbW`A{5BS1>$)AgBX8R3}#Jf!SJMeB(el<>->&w50i$=7b zP%PL&pqPN3(Z02;fOP_*FYaXWm*V_;{RXeVrGA6KeYnh&UxU-{_vPQhQfH!t{=bHR zT*7FH4?ek7-U)CqMt zmO7z+2G7SjegCDi<~L)hbn0)h)HxPu|CygBP)(pWk|XZ$QDiA0`7|t*EL!4&!?08` zbx$mHM%@QXol$4uo;Z_$Z2uDHX#WJp5Rh7_D~!WZDb*+8kY=9gosgz9oE zl~DZ*wk>TX4wtC^YifB_14N~1+=?3?@U`|k-1S`F@ErIt_Z;g}lZ#VL{tDa?>wsfE z-o*iF`B(9r1$_T6It>18Is#+Q^96puOR$c3+OOv^GCRz})5+_P*T>;PlYa=`LtY0g zZ_4@)`tOb%@=0j7e=h3b1PV-n+nn_P@5Ix|rxTFA;J^)$HQy00GWn~VH9rAYk(X~+ z$olVuHr?X~1lCg^(S2H-`DtX`Kwn({P;M~VZQwCy&9B6{3v+{|E`Ly6WX*TR4dl1D z{9WQ00WEMZfnswBU&T*jeJsDl%dlS3l+TzcHRVsl^Ra$m@d`WAdiuH z5theD{V2{gpY@huc`P;mB$lT{y&B6ER=9B zo7El8E*}f#5@?}7TOv{^UUJqAtig%Y5q%22bJqNSaR>6!yvq8WzKpE-L$K5_bq1D7 z7%lYwM-h;gPYYyXY1!0$@f`CZQ!bX4P4k1Ww3O3AmA-s^fi8*59p6jzuXuEY(-PvM@?4#GO|Ilctzusv=gZ$fx~>HnnC^dc~X zfHs}y<3zK8+i(%q19%!wdBk6l7w}BnOD-{6+`l0*WZ@s7!WE|c!8r3#){pu>z5_}? zb{H-3K@TjKNZlLD8L5xQat7)gEGM8Ih~NBw1BG>=M2WJzITc8Eb$8rnQ z7h$;t>dUd*Q}tE2wN_K9Ct|-ewVY2SlsY80SSsZ)2lH$CQojGMwe+Mke!owF`L4ih zEcZCm`6DcqQr&@CEVn>6crlhrsh(yIKq~cPxa=|iuDL$6>Hj|?P)>m~*&+9ApZ|*t zS>l3ZT*?`zhNAbv)s)wl&1;;);*`G**OFJ?fJZO$j^WanxrBERu$OQy_DfUCea3P| zui(t(euHn|nlg6&JF+i=!Ozry>@TK;34 zeSt6kCtg7LiEamjHb>U-L+~22{mGl@|7!{8)afG>s4xX;aKhucL7v-S%9hBw!S=X$ zq;Dtka3fBkfIQaYa6ap6`H6T64(kvlsyXL$71$hyO0aSE4MTf$K|FqiyJJc9MZTF)VT z?5yj5hKtFoH{$WQ7XhgQvHssg0WFY+7nv1K#WltSINRK!skqtXXW%-Me**u2b5{a*MMb;4Hj_d?6P?&Y;0r^IP$1^HlA?39I}S_zkDD zn$N%gA+Uo>s=d>Z-!g`4Ef5zRhck^&#Gg=J@9`Bl&*ZPg)5+`S|4Z;#bIabr#adqa zzmEt^)ByehSFwT)x#G9C3Esle8b~GUjmymji|`_|{-rpLywnLPUxLd_{vo`byxfBD z^Zz#qRGI=G;Gq=I1Na>eHyiBs9qk0x$E*NfY|2l=2~YYz0q={Wr;%B(|3<{jc1k7=hj93OtEBQ$Wx7 zGhAXeuo=HYc|F5+KTrouJ{3P~@&oZ2lRpg?vHh4fy;BGzRQMyj1s_TQJ)>3FK331- zOjG_vyv_JEyyXSIy*F{jOTI7Z_G4%_{@@z)ATWyp(GnN*#*2)P$N3kY7R=*L!*bfzhTwF&<$&7v~$lgtLsl#u>&*|D`E6 z?uQeMFT=ZH7x@F2M_`+A6|OV>23H&J_Y-yE9e>4AaS|{{2X=P>ba3GeZRow~85KDasmZn*qfu(6yABCkUR%ha| z#(lALPMVM95~wl%>ct=|O|cdjilwbqpM|9@SC7Eb(5Oe^a^qqwotfsZz|xsH^ZO41 z(voR`$ymBq^>i#vtNIo!y_b3xmhM}9HSwTY9_mUgeS`W{EKRF=ExyS3U3{@x=Knt;ut)>=Gc1Ef-9Q7DL8tl~Tx0wL zmO-cHo3IQr)y=rkxCJ*m)BeT>d++4qcLJxdhBU3mI_n0qu{6Evfmj+M^{H4ID)pII z8Zz|=yvz7PEG;36wEqm72}n~JE%CusSejDxL@Z6MdK%6*z6Fmkz5|aoF2PfbAHcIh zhy71{u!O(@Q(ze`GcL!K#?Rscn$l?5J9r7(SGU)(Uz%F_^+*n1)fUlt$=mN6VtUKU z@caqmSKCW-0dLisN}H!-pza!!v$y%7cSj!zCRsrIq`zzmi#adv0ybiY|Ah)Q$v*z>g$K>@@Y@D;^C*iNi>mat& zS@X+(rT^bX0ew6DkOE>Y@F{LG8~Ddr^9j4!1b>RdHt9!-Z+KextL?$AX^-%r*r&{~lR4a45cyy#5vI)15V6h|9_A z3EbqY`CDdHVn739O}nUgH0A)(w1vH;~s$yx$*@HJ^&Nm>mps*8C}W2YG$U zCOU_C>Hnt^_=^J4fk-W1=Byid0`Eu5rMF;%v*zn@XOnN!99i>iaRzy<9Go>$~DZ&YCa9Cz~C->#X??aUps2r&yX|mZ<;#l0d>`zQAT|yVGy6 zUz%D59iALEt@^iL=V56%Po;ke@kz+h=8>HX>34z zaCf?2oJVgYJ_k$NpUx!^e~P88&vp4jj-a#RjC2RTV`;jjwU-0>(VT#EP6z$Z^&R2( zgL~eIK>8QHbLfgYedT=^ZrteIL&|^a-AioVY>vg{=8E>i_KFU`vPApmh>kxrIb1={ z;Cd_v)a*tqUt>9-=+9>HZ?~uOp%Mp_&4Vvj@TRZvPV3|Lo6jGcMlg{VlG=6Xh20++_aAIG^>y6Cg4YOFmlSf?`}{ zuE-Vm73u$@B|aEWV3#Q{87Htooir+S*7D2ozU0FZ5Id}O*8B!62c)jYRi?Y%gwtZC zz%~LCjeo#$MRWr@vAu`CW4|=D9D4$lmNOntP;SAAeUrm8)*;#qEGMY9_;noP9t54- zJ?_wtk6_rLd@v}rwg}5DnBz7$x9Enr@ z@b2>${ePYb98ZB_%q1b!j!avo5N0U!Oa?eYh!!%xwM~(I$(bVFZl-G}F;&(^Z z@`=0Y|L2$k*pC9U5(Y$hHkgVt_VVt68^-ubIuTFA`kBzfxE5v+z&?bat`ed>7CH7h$=C>dUcQa`jc%J_XlezcjVH z+>7@JPC#pUpJS54N?0df>*1-m^+ftX^3hX4|Nk}tx#YUSUb%dbNS(-JtFppKER{6f zc^#HZsO8%Z;4w2k1IsPY{5mXG^k~+Xr>gBqJXM=bzcjU6LhmTIpjWJWRLQ;|AeW?sQc~&q9!68l70Gb5 zb`6#*veV@!n+?i6U4k=D@K@|HJkz)guQy(WQ~M6k{y#2whQJ5{(GnNDfEO88;dhc^da6K;*_iWzY*Dtmlh0g;}7bxcT!QBte}q>Xr<}VPbSNqrLtauL4cp0u>17W3O0}al){?~X^k$;T0<7y5t?ETnfN}GhB5{I`) z`v3j}0(Rg6!5F;L7YOdfiKF}m7vM}&{y#X~_y?R~+&&>8*ma3tzYCTt7A^GuhZ4vm zpzr^uIY$NJgJF0$d3hA2cf7$_^D#Vzd|Q`a<*fN<@dWbn6v+BtI){0A|KChNE{U%2 zEtX5B{t?R+Q8!_^V(LGzoU!_EELTL`X0PaqsoP@xr`c(L_r3tT?MeHe7+hjDApa1_*;*{tl!j4Q31Ku8 zOLvQPLyOQIhSA+(h?YWiq9GJXC`O@Jy2Vmz2t$|@`3X@7Azv+FNc+9s=Uney@9jJu z{qels*SXGhuIoD2bSec=gmRPN_+-w|_##|sJP~ilQeioPGCaVa#FjGC;@$yl0HxSj;DW+=wer|Mg=^r?C> zE;hakml#jOvy5lr`Np#kOyckVOv007s5G9BHyJ;Vb>@=mU^%wG|Nk=HZt_>)owz48 zmJ|HZSx?~C1H*XGXu|JgkU^vV8%v+7Yq5+8b>oz{&(#NFJJB@9eygrM%vdI_jv)!< zKlwp)R)Ye%n;m3k%r%w*M&pXqZtfTf!B{-+An#l8_-5XdasTGt;aw!y8c)N1tFC=( z5I30=xS7Q0!DKK$waNjvJKurj02-fZ_LmC2h9?~C5BL_|>#ve9_?3i|>-=?lSX27U zX9#*=`!QQDJo^w|U|-xPt6NYgcfs`XTwKwvTQH6HcH*75%9M9#YErPJ&aD4AB(yRW zxCUn$&%#}dU&nHQcuNQ>@$%EU1v7X*F9&RP5O+u>e`h?+cm$rHmi7NZ5=u1zSKvJ3 zA923%!OfURjJslK0j<#4xXQ$@!&{7J;|k~K`+skdAZMTjtivhS`!4w%w=zDeIcH>i zF79GnjPs1=;v(bs@y@sc@%R7!AYremVaCBUk=day&NRLm=NmtTbGrExcor`<@r}5` zcrPxE%=#-6!|^Scxfm4gtyFNKbKD~Qbv%|qq`nNxAW|1#8MNvVSVpYH#Y zadiJd1;&$*X);X0U5ra`p7Fgn-*^TtGJXV4FfPT@jGxA(I6giVC?jF9$*>ex7?DbU@*fM7UT>cNlSx=?GNj@P<1}n%$|JDfs%tO5m|wMKrfbEk9+@f2uuN2K*-88p zmO)zJ;u*5Pp1(|$c_hs1;Yaa>xa|%8GQ17v8ZW?U#vkDU#((1u#>X6j&-LZE!(pY# za4`wPM*9O!!sRBu5YIB+ggco0wK&)K#6zi&@jyJ^>_7QX*8gE9;dwHY7;nPG#{2Mw z3;h{1I*bYr@J_~Q=76W;D$|9XBu;rc#=0NI`oGS6CexD)ZB2&0xP$S9IM;YE9$QPuuP<=y4!Yq?87SA`n4VN3=jw_At#+!_%J4>NuX+pFe1?6>N$_Ot=qU@+=u$$HIYavhdY zTFR4!_&F?nKFhu3+KJ_iqUQ!)sk9%+9~N;y^-Wk>M7;t_i>Pa`jF}4Rk(kK(*NrC7f9go*m5JvJ(*kl?U5aOn@MGdiTs+cy7|ts69)*)ed0&s$8jr#Ce*fnd68y%WOj02^ z;C2$_jDC>{azK3z*ZvB5``x|n7mmhYIiSW@VmYAt-v;rpCF{R#a)!@PfeF|68ZX2J zW4xE)vI*WR@T@z%*WgkHnZ85%9`C|Y7cworxzJTsz81|fZPn^5L zyDy&gsrQ9=#uo3vc-nW~mt(0=yd?%h@gl4*B<hK{GsrrN-(xSZb`Ei|tjiK;m^< zb?tzmO`{f>FAt-1*&-8{7XAqD{LNP|+(g2R-+jUtc>G`9+i-^#Iqnb%!4KG0U?=ul zb?t6rIpCp3@)qoPzkf@da$8O?jOCS?FbqbJP}Rj}C~_I%Lir*x9{rY&kH>A_@t%a! z*LjyPf-UCnpFs8I1C(n75N&1o{JKo0AHG}#QZgPg%Cy!XAFppSdO(Cw($ zaiRP#7C5&mC;q+wbNhN{jemlRiOaWYWbVJ}=-5$Q*8dSCtRq9N%kZnS7O)$qe3%n` z`Yi=a%80G;DL99CTetu5tz&CE6AvRkIU%mV7-xxxvO0|?Vf*@=V1g@PrLz`LfeSv$ ziT?*f^8f3s@t_SY@^MbE*B#(eXN_NpYc}P?WdGrK)#k_?pM+~kDEY!?xDhvF)VGSF ziNWJI)A()N|8{wADqCXkfy=Mn=<=&S!+p$E^c5ZxS&mNu-;rPk%}>~G)wP$5&LAn_|K1xEj^Hu2xg{xXIRJBBgxb&e}CA!vo$ZN<^?X@S-x1lxRu z7Vvtsy}QSVu0o3Tm-b zNPTo6t0QNy-NmoPat6Bp+gK{R$;F$D;tvj}u=-q60cnvNakK3?@%hUbxS50vG@;Jb z^KiQ{-XGu&zvNK7Z2adlxb4oINa9cNboOU;MTtSJbDSYDXxug~Uwt6nb`$G=bf3=- zXG95ps_lZM0=mQ5*fwb&?6>OL^Nr;UZ^i|`<+v;f!EJc7@nl>YnuI$^*tN^=a4$|N z_FpzzA+GlE)wr4Q>p0W65_d3u56{@`_x}io+ej#+jxw>Fbu3L{GUVVszxy3};cU|) zc{tDbB7CRu5Iog3X#M}zCFl-6;tgbonwSHmA0J!e zN8(N9fEPGxd?3!`fKeB4h!F20f7At(x57Ej&-%ZHgc>qv0dL^V=Ca#~H(`2&fBZOI zJ3fHG(OQ6W@KhXi3BCqb8qdPxjbFn>f4Qqp*8dYuh!eB|?eQius5|1M8t=}y?LXc< z@VtM$d*j_4un7f7g>S+sWBu<3Jc0MR3Ptb#*O4H76mNWe9!nFdH(~p++ZQ;8cs3d2 z07)mt*8B%xIb(G*Y`^(@D3%sullhQnG$;|_QiP9%d= z=t^hJKOAq!)<4%v3a-V{LT>#{3~nSrnnZUPho#BX6LAYCnOLS^zg5>h&SfZLsMtNq z-DBc%6}^CW?Dd2CTj#p<|3?ybl0h%C!%vDGAA~O;;AT`vM|B^Z{GT7ylbkjG6vT%}=$GH73#am2#C=MF= z3KrpT0S7$Y?eHiGZB2%G_+<)=)&?r{0q$esoA5N^I`h@y5))58g%-KRf0yiToM)We zp7p=d?9jY@QZR@L$#N_$&>8PA@t!!17SIZh#wkhujBdquu)nsz0-R;y%W!)t%qya( z{4d&vyf`!&wv!>70*-PSQnQ%JOgtT5LV8id!GcvwI}DFsAN zE;RXlc&EwmFfJsn1+2vd`}qpLk2i3DcCG?{;1UzB#j}WO`6r&nD;ysWgAOFrkU^W| zN^CEa;ke505L}DfGKh3gK7yNJof+T2+0*>9;k#I_s(9nS_mg;?`TYMA5@gV6hR?AK zBK1}*SBd(2ycz3Dre>$d*7%|LM-%VitnuFXPvQwA@cx7K*(GR(@mL0ldJ>jCR+nHI z#p-);9@gKAS>delHTWXp+Co1#OPu*PG1y6h^s(-+8;{2_oyui+WQW)qKL*QnuRa0G z7*e;#GH<9mVj0Bh&R8ZYHktnugB~QvbscZ~M`2iII(0uRm!0}zJPPv)C#v8iXN{NO zNyN29mN{#D1(vI#Zv9_Ff{aql@CKIaSp6>U&sw4W5X-1ne}ZKYt3SswDAilB3|jT~ zSY}4I{_+QcB*@gL8LF{e&HloEtFFD9)l5dYu4dC%ymAuV;>3f=eCW*%6M~s|2o=;pRDmY#|w@?GEcr2Ki)jldJi2_`T_4)liJi)|Q;0g-V{a54l#C7WZ9`7|3 zI=M@1mp=?nBO&=DU%;7ozB$0vcr|Xy9x|w=<8pI=Rrp=Jzl(o|ms4I2mKNyLH8y19 z<9@u0cz=0Rli$C4#3g8kQe0pL*|Rt;(^qgA&M;nu7f{UrHS8(YuH~ayc{Q+3Vn$W#*{DbKllNn z9PabY4yWRy%ntcD?PT8tBk%=r0nz>s;ykQpSb@7>t-z0Bvwt<-#PRl%^;as;ss{y_ z49DSo<1GA-IpAe@zlna(-G!UtCa%R^z>CfPYjB0}+c=&4&1C(P3hW}G#$@;hmvTVu z!(-2;2~Y7Y&>m+QcfwWV*Q;b0t}rd|0R9|nm#xO7>|eM3SCVii8MM!T!)4|Gf8)zc zyzMz0(8N!{?KmTyCoaKh?R|xZ;$7^oCv-pFHo<)V{}mGKW%oMHF$KJhGtTG{OyIJR z>-tY;8Zc_Zy*P7{@AKnxS?!E3!YRfRacOqwYdD33V$L8ZDvtkjS~5)b|10(vxGf&< z;`{aFjEqmi70eq6E}oBTunxkz@G$9f7k>elhbCbQ36;kC_u^SFzeiBO4symLogo|F zl*03g#~VL5jHLqc#vdx-S8+B8GRB^9*7!mkN)0t(841Z;7U~r^-FOY|Z~O)>Fn$*o z8Gndnt$sN#+1|My5ZnS>6c$Yrv}S$Fsc%XO;``o!~udOuul;we}z zV~rn-H(~yAD=NRMa}<~7|8q!?nMrpz7t740z5vV2rXGm9;N~Pqg(o{}{4U&&xW1rx z!CB)galVU3>;JbdK{M>Y*OEd1BC^G~u{C};o@gqN>#Xtf@cqPfEg9>q@!RlY#GB~) z|Ex>U42$tIWQcB&IK$7JHU1S|N?aF{ z8Xt}iC$7KiHN#oskKp#iwSsRrYy4f@nRuv8yxS#ch8o<94D?Y{fwpa6km@$iuKUtguJjuYZIXS^0qpa4CCoz7ao?|7<-AKfpu#*f3Zi0dG} z$XVl;;AcZJXcONVCHTv18ZI{nSmmq*ypGor*URh|XN~X19}$=5Kk34w&X29}WAV3A z0d2wyqXb`pA^2AlFLBla?!z_2b(F7k*7$3}74w#h zd%|tp#>y*|Rk$>}M^JW5?2@s3zR&U;oiQKbyp83CCA#Ip``z3$x@tt zqey`dkU{Q%G{Xil4~u0k-fbM;;pCP}-hxT~Z^rW_RPsl+SR7!gsjxiGFTtzKE!vB? z?d3dvb6#>w_g^R(XaT(`JidRNf%4fBf=oQ?Du0i6D$cvw`%Ju?{q^bhD(86r#9$;| zNjxDcjlVT>)_C|R2~q(~ctULcBH|fryJR8uTXpUK@#0Y`w2nk+k$-OC*Kj!FBImPj zWi+2MJ&Lwo@K%oa-vsb9v@2rAu`GIatP2R&@Rp*oMnS21S88z%^I~ zq3-Y^maAm6i$B0+C1XTZN2$;kSjIqxbI;qD8SymdSFyB!{zgHep8_O9_jCRl* zdkyQ=$e@*i1`AY$n4GQ=bPq@Yx@Oy&-{xBLu8-?v!a0B)m6=0Cr52bP^^6fXu(?Q&I5?@}U zLh7-DSpRjC8b8_K0P`Ch;CW-o|3QQN8%$hU>U=YM-fd(93~K;mG3 zhEhNVF1pL#F`efep9H@ZgKsqPTbwmM36CePS3z0m5;VgSJe3UU7x4^J;1*|%e}gBO zQT_v-P5ulr$W_v8NNml22wr8%4_lI8Tc9=e8^7&hEG=+8UM_vgvzIJJZ#c*MBn0nD z{=5AdR^x4B{h<2`H}ml@Xmbglc#QKI+TqOc-lyPA6TCa%l!@MF;auY!JZ!R$_rj&d zd3f?&8fX2#n1r?WX#&6ZC#H$Ib4t>LCC>2~@(l?rXQ-Zu?GKgB!E%NgpNDM=KPUU^ zHjE}+Y7(T0KgA^v`U-u~pnz>AzYNm#Tvn1ljdEoz_`$@byrz#fpLxpB;o+D1<4ST4 zw)N^|;!Z*kWAlkilNzYN#7{JiO6Xt)I3;TJsH>~P5C ztm=>WTg?H^n*S19X7W$L1IXWp3{w7^&YJ&SyeiHgf6`M;LaEsy>x$UALr1*M9N~!2#wvYySCov&p|6r# z+~}QDTAhyPj#SrA}kRk1bR8SgRi zInElNi!)~PNsk`jKbN2x8ePp9l0naKw6n%<#)YQE=HZIR{PWK~Tw~%V45bAqPxo(+ zH_S12dL2oS0yINsoIKUPfE|JNns^cJPh6jIAH_qkE~0PZ9OGZ{gi>Gr@3>H273mH~ z4Wmh@aW85hGkhQCxI&4+`B=_aJphk4z7$V2F2J*mN8mE!BD^Xz2{)0j&UieQQLG1? zgm)O1U}<8F-;1Ti)H84woIrw{&>Clrzk$Q9Cc{n=#F}9@mL^o!U}U{vVYe_TgH~tE6c!N8=Q^}C?gum=2ImbIC1XFMy;!=!UHC4_U--z=}yw!-<8gGq< z>Hi+Wqj=8|A-5HE35|nm$dG0H0PatLTEN42JZG3rf;8#tc!oP;@eeK@=jS_gSjvyL z#=&kZ6^OU}cu_}!ZK8eHZ`HL)BfVv9Xosho3Z0D0a0)v~i;Q=U%iym9ak09I=oOF*b@GQK`#B*@+T%W%e?&2K=c_gG$ zfF5uh&Uni2Fi~s{P$mVK_)=VKT#nP8_WQ5Kt&G>=qB@5O!8;^qA4(&Bh^0m1jn@!( zIo9vE?Q_<6<56*osZ($j`OhFhTJTI~jd#O!@6zOxo}MH~6KaM$oQ4xz0ppxCJ_$>U zsqe(nLh5Na%lIK&Z2TD3F~|Co96UvW->Pfp-N~2Y*&!MvyvO(s%b?33liW(4d>8-K zG?vfC#6z)+k#gs!v5b)c&aLm}@1?L@HIjeXR9;)q1#~&*Pr_d$NFVig83x|VpO8}l z=|y>wQf4YBS3wo-P7c! zXULWiOvc$9Fz%AZ!E1OIe|8{W!sAt3ka{hb85Pz+oQ;dfFYPM-sooeox^Dmdf~9!X zz2ukmUk1r$5|Zxomrx!j9>T|GE zDBku9&c$*I!L+PClFhm)RmHz16Wri=;e^(Mdc>25sVw9sETzs$GTUc6_acj9%d zo(s)4J(5WXp7$A2ak6n5PBT6NryFPBw#LWdOyf+PWqca$5SoN+61o_7!^Ni0a&ekz z((`aiU7Upq7nt}UTx6V&%Z;zbVY(@xkOZ9=BOB@T$q=Uy7v*bpJs!_@t+U*`ay{Z)8n|dmiKsFJ}=T~DU5uCDr0ITQ*(?QMUB4S$ z&lf9}`2CyUK1;n1!aF$uotQe|%xQlAa3~3R%l!_c@NDB7a3uxAGhJdZ$2mTu#9%Jo zMqIi`=8gB9HU1Hn3aCHDd%VNoOA@3;n&BJV#rQ`&!1!0Z*!Xu`Zu~c{G_J*)@rfKj zDtO`zvE$?M{F_CBG_h9T44i_yxE-!?*7!&)U7)@W+pA^__8SuutDm&6Tm>@7XETw> zm`F~*Aqo3r5K+VErjkLH^AJBVgQGsfcVIa~y{sy+45H1hz~-|seV!!Wfup>+SjJTJ z4RQQ4mN7M24v4ROnDQAjrR>lDG{INOAK^D?I6!oV!vVKq83V;`hx|vmZt1h=j)wS? zSh{2o1<3Mzi#cN%^-tiG7yX!e8n?r%q{4JU)6ucz_)z>L_%;s z{)f1Js{aaJYvOOZrW7hwtNhn|AcPPU}72Zqn4&!oM{Hl+y#+k2quf=U&_kKsb*1HP# z4^6_yBn&g&j4O@5#$|8#0=DB0Z~B++gNtM97`hy9y5D!%-FR4)-+wv|^JnciEqM}o7{Z_y;_#v!=di~8j|1U5Z{wBk6 z^CZ7~D=msX3$j zaGB2#%)%AMPvA|)&*B}%%djnP1#XpHcfeo`US4-R*8jIj$TJz%;~~bM;SI*y>J`8{ zADq?6A7Cf0tUCZd;EoGTycSPZ%lq%-TUp&S0XN6x#z$aVUvT@-J8I|ygf z1<}_K=(NE&moC!F`VKtIIh5;k2?+yChRt}hIfJk9EGClf(GX4KyHK&?111KkSSA{E z8s3hjN>Y9|XN~7#86#}6{_#J&kRUaVw?w|36)(r?L0DEhbv`aMf6aR}meo$pX`aZ$Uq?!|a3fmL< zBP78#Y3~>6_wke1_VFLs_Ho{e_51i4Z2R~hZ1Z3EQhkSIB-lYx+rWd$>le7Bfsx?V@sA~5;Jq0y9~wDc|Gp+6Z-mdV9jA=){uvit^Z?TF6Xg7*0ymQ&qgHqL0L!S=9Wq|w z)hmN^p36TL%b-=ikE22BDx9$zGf2~2{s~wHZIN>omO&fp0gqh6OCb{UfY)OgwK{jd zj%Czp{$>@NF@sj~Uxj7R*0=+_h@(O4DwOmpriFF?6JDc52b>+&{Xd2GlOUrq(-m;& z>&%Q;=k|G624#VZAG?-!xeQ93+n>iWDD?pC-{2SI@jRYBrG*#0$!j+TWr1_kO5z0} zPc|-L9SJfjOB3TA_J4<&k3qTC`PFsxTO{?p`Ym!Lwk@(8+ZITCzkUl1!1f7+Q#J{(U&K2^W7@zksp^{tw$hdC~g%eh%9~ z_+JBG{89b*!jD-0?Wjzge~C~(}x^zoon)u3@WLB%nLHeX1v8OzER#L=Mu)0R6yfz zz0JHqT)jJFkV%a zRofAF#rg+WSK{+b{(JEN;}!S{tbcm44G+UjD4+A^KT5tmDY(uhh|j<`n*y%Fld--= zn}+Yh`ci2no?YtC@Ks#;g!fx`hROdw{4nONS^WLK!|z}ak)Yq@%EgPY*7ycoiS-S} zW4PS-ZM^wuf4~p$_Gi5};%vGs-uTN=EL~dn{QngR(x;l?J1l*w{s~K;sei-LW$Hh0 zGxIe3FP1LUc*2yp3)TB$=|cDXml!l9LHbZLw7}Ab>cg@0q55bneW*SbOBbq7!qSE6 zQ?YcR`b;ccDEA+1d|`kD>7#h#&yTV6k@{RLU8KGMOBbmJ;?a}+`+&=^bdkod!qSE6 zk$86J^W5?2`RhoqQ*SZ$TXpRj@A78^bdgM*@^sv513%Et%-0Ib)VmzZOsMPsej9o8 zVkXoZlzc2R;RKieMO-$9^W8)b%khAanNMr9j0Bkpb%%scxj|qi)EzFyG85Lg11!MNOz0|9 zBW7mHbn)B&j~2sv2bJ;}H#E4w#b@GBrb1n8(l>Jp#!RRcX!9kX19mBxb?U7%Ny6gA7VR(+J@iNPq?k2%~c@l z|6IJ~IX|<_$IBObFT^#AyqDtpA3iteDqYBB{<-YG)W^fGNhlEl`W08Zdk7rzW=zoT*1zpF^tzD^VP zK^44!0{goiX5w`p`1ovm6$R>I^%kD6-pAj=l^eW25^wbW6mQa*P}cu1N%&b4@Hcpm z@sGI1_*X0~5^ssY?^s$u{WtDo{`#jDOBZRp@m+C?i{<$@IFJPCBhAnpOADwE!+#hb ziKR(3ehltxd;*ph(s+9;V@%x<%b;Y7o_~YRB*-As3_b9ALwP6I7F6!grWmpDrdLuc1GW<+}jDhVgLnbc>) z@sLHB%SiJN#xm$yx&5DHCY3?9*m)b4%Tn{V`5beVY!6+AcSw-ySZkR41rrHZ!88{? z56d7dcbe4ASVP6#t54kW!!M02iAsk%?*?uKbt^MO#8Ju|XG3iSz6F&mT%Q zC}0V0yU7>uBCdMW|E67&ySd?*?L8C^F@K^y3a`4)-;msZzhg}4UG$vD=KcR%684Zm zCz|)1<1^rYe8Y_%@$tW%HC~GkCaxbYpD;DH#@pkz#I*vKh(i)I!<8g-#3>}mTz!wT z#vi~vh&OTZSDZEeIzErM-lqTTtnpoVAaQ-JXn7AG*+_zBXidVESRX9%oHc$CE;0p7 zbk_J3e6!hqsk6q*@f6~Ef?Mz5^M6Uu4BwOC0jy2b?B3WKKNQa+u1(y-S>wI&i^TO? zF*iADd^}!DJQ~!r@H6-Fs3i%SVIdj*4{HrKIcxk2{4H^9;>P#I*7$+=SK``5XEi+Qj+J8owI%Bd$$6-C5%g;mgbcUUSxXB_2uKU1eeLn@i9Pf8d+RAoIOk1sT(0 zYy3ET4{>dw3!ODS7|$~CJDfE>70)Fe4|3+;mt2Bocm*#u1#EZL_|JGHaeewd;FY0$V{dghG4teU4i|^e<}MTFQJ$jyO1c0*Dw>8sdp+a zFf-?LT=uD-NoV3ApT%bWO$Z((A^CHkp%iC)<^43i{4qbOKg1odK91MmT&!Jo%mYcm zV9Z(+b>aEAt;v529)fAX`1yZ62_sAaAK|n)zC}L8-HpG*dB)%165}87EaP8sh4JsW zDsr^`BnE$zkVFOIjh`97X~vCb#Al%K1F^J#x;d5>P#=b+1=L4kIb-!PSX$IQfAe2S zk{~Uh8QSApj632A4+#3gv`||o>`*?ma&LQsB-^Ab&66~P6QVOWss%v-g z_$`B~kGsKmmuEv6RLh+gFes%3qcOq#!451fs6J^2U*%?urMp|Q`!R!%_y4YdY7(Tz zIUH2(SUUXFH0tx{I>qC#^syGW8p{|t$>raRrG+%!{b$~!Ql9z_EMr1%c;3bpbM){3 zI6(3*O`|5)3iQR&q*}oJSgwjH4k(vhqn$iXQ(*LD!~VUn462TNa z-jHNC50@6!`yaV(?;&BQx$N%8$xpZnFi*UK^S<_%u*#4ZPVr%e{-G$u<5VmM&3$f~5=8pJQn;^;WzUXOkc;7#{F&oS+$+VQEtJ zp|~CH;CATYtnuDhT1?#!OCPH*#?pf7OR%({bI7;R<3866!|@iMA-ERHRiN=3v5b24 zI4pgto`|z?^qV%EVVSeWmtyJicw_x9C!wS+Au(8uWf18OYq9jP`W-BTN?nEb7=MiI zOu8BSjsG`!3D1sP6|MNcDx&ZI4`yPJ>%M?oGO^6Xa-FMx#4>22J02#Q6aL4a<6)hc zuEjEj)Jw2j#$~R&LA&^tjP^PEzhBKvN`>W}P$*OF*QSOt5hXst3x^s%FYJ$Z{q3EC zubbsKO*RB7LlF-Fucmr>sfYEXWjMFBM#)fPO!9lok zo-gn$ya_jnqKUz9{1w)F#2L8Ub=WW67^w(gC;qkM&<`*p-ATnkbP3nVAZ4g&7kM;apQ-DIQ?F0H<&OeY)L% z55@Z8@?X5yly}_Yytex<^fhiz!Y!tcF2z&L0fynTC{S0s2k>kYpCdL0sKjMhEA$(l zYT`$f@~|433_VHMVG6tee@9#g&8>JF)-zgwH<$u9;AZ>$34MXb5Z4MfeuCS26F&%t zStj9d5+-tndca(K57zbk20R1nW%d}JZ1$foapR@9l>B<#e~zn6{JSSu|Fg)TO_cg1 zbHB-uj+1Kr8MVO$;D9k;af8NW}3X| zTwXYs_+fZ41?aQi*?5PE=ixEL^@PS@dsR)uX~8*lgMLa#!aS334<3@>GdzGd89$5* z5`Fw}oZiU$DZI+~IdPJYFTop(!k{Ts;t17+;1r7+)p( zH}m;N;k70ncDrUe(WIxsKH@V40}YtFTNg>esPMMCy02OhoDr@r%yPzlkiJ@l>lB zzQi&WtG~te=f{7-GVy497nX@h{TG&rOT7=vRi$qHR6G@9ng0`m6cS|a)(kDM%-!lE zuw1w5)>sx3bvrEch`K$Nsakyomc>fl70bNg*5AY+mjszuG(%r36N&mFEZ4RA5-c;N zx&X^esUC@E7+;TNCe-*?Ec1w4{}Y1=B*-0#W|)HI4o7`2mOC8vgIMlx)U&bN(WvKQ zxj|7si{%DJy#ybC-TKR2FbRE3hBesU#lDIC#;;mE#|I4DBkG6ITd`c%o5>_Mu|xU3 zpIlWHSne?wV7ZF)CiO?mRTkDIwBf5$G7n_97X-Ji59fT|fQ)3U3NY&>cGb$r&)W>kju}ncL^N z0=~u3+|J{#RN$+cW-)4EBuA zEpP|+TXk*WZ(O%jNH3!=xk}^=QphANaxGVdv_O&bRI|Ud(BcN=zi8sj z|JAjtOoHsN1#dAe@D1K!`~yxp%(u`lc!u#V+$Y_~|G<^T|KR?IM{!wy5`tP1l8^8^ zG@j2Li}8WtmOkDbuQfglXSVY3Bk?NZWANxBef$KxGjg>4B?RqB7=M({&=F@H?cEu- z%kb_YZtdM04>0bB3ym+v>x?hKi`%e&y#Df=3?#gwU$tVW?Znx~_yg?5UzqrW1vKH) z{!#2XdCP$>VniJj;yQv#=a6 z-V%cxEC*Eg!g4@$9+vXd7hyTUc-uc1f;pl1{P|BPgDXg|SHUpsx9Zws809i3b=0q5 zqLK<$kV$SZYOoB_R#>izq5GvqgLInnYAl0P7qjO3r!q)GzxoxDAfr@wcpb|q)g2B^ zPK^fXJXhd#I2xpG^?O^)piFo1W16H!gS5zbES5p4<*&o5LK5@e>gXkQ^XAF~07PJ(PKY@&?EOm=~6q{8FLyc-_g`f~^0akTA8qCL{!#@!Dtn zo65v8KB6)4{c&=Z&)*aWQRnp3=z!53QsREW23$e~*o)8qNf>cBQzK^({fGp8_8gWbQt!ZWM$srIe&P|S zQ46WB#Zuwub42NLEGMM#->{s3`qY-GQJ1%p^-mUy@vTy$CejS6vGnPQoR$otf3fso zwsV&wQ==~H z8S58|UvSp=N-Pyrzlx=T>bGzUJ%9PRz4u7)TXpS6#?qv_WQV#8$-y5cF1PXj8cY84 zMXVL4`$2ak-qYE;4Gx!2_6hAss4_kUFP`G#9q@({@3Zi<`@M5;+XuXR;kCwjc=QY( zzi1Kf|7V$mA!Jx?dzv92{~6 zQa}c|WTM$;c91h@xtNb)%X|ehaN#2FWAWZ)-Y4O9oME*3aRP(zv=u&{k6W$u4zDI5 z+awga0^(XH2G?VIM#b1~)wQ=8ONAfB1+Vx6l;R1dLhs;htLx%n@Bs;xRdor$Mm*$0 z@6Yg-4c=d2DNrl;9o}I46YlezkN<{88~=g*35ChQza;pry0%{%?o!#I9f{H<4`4aK zc;`OtQlm52&bL%$?dWv^_lzcg!V+Jew8&9-hdF^`@bXXG3CZ{0+L4g*sXxP$aof+l zPsh8AJK?ooo)c8b^2+}AIL9Z!_j>TOul)WG<380)#XKBJ{%`THviK^H_a8yir98d5 z1aUT=WjqwmH@+Vi8^3}}jJIPspjPN-Tv+413s?OeIbQ$%Bw;p9c(yb#706f?J1&4P zr{gWA4>R$G&|h|^VL1WKpN-`V)!ndESe=Wd!gcTe&m%$3STpp;a>nXG*bkcIARqg! zy7oIRW9id;=@Q1oz@vE>rO(&7o6>i&bg|x~?#~#KF5M6|ig%dGAd)_>qEsm$<;2wJ zjCIgmZ4M}dD#W|~@l9HSEB1QdgNN+%z8~k*dOw7-5_A3Y|7;SvG|F`+#V?iOpoRC- z*tS5K#Ot=|+Ja+JqXX=6XZ#A53YEGRY2KD+M-G_cT#Tt;80?@BIpbY4i5xJ6ZwQE& znghrge}Get%8kGE$|z~EJa$}%gdiOkF7ba4aD&8`dcTMJuz!vmkNum!AP)T*9!f%o z=lzGrJ#bsBHy}lLDg`igM+KBSYXw&0S;W88#rdH*KqnFg9GzSD zt(V)Kb%(q0wuQbzFXCNT-|>8fH<)lHZArYZi)3JRBAb|?Iom+{3_l;e*Hec4*Ub=e53MOgfBA{ngYAwd8UBgIET3Op;X`|yx7Di z-~%{g{l>#{xWdF=z(uA4Tky@Mym0@Oybd=NI1S%ncDNj;wDC9g zJX78d+`;U>8=pnoRX7ZeT*ZC3$#6U#V0#~Er1|cS) zjo-mVY_&@k{6F+t}*R_ea#}hb!&I6a?l(xRY!|*x8^@JY4dR4Lh zCI%0akj)MSG@)Fle>g)nepU-NV;+b%a;)KhZZzH>=NUJ}`Nl19k@4Yper#F)6N95k zC^s37#cPdE!ZNdI1y02>6ROX|G83x1V*8bgb8y{PE;!z~SSGf*_5T7AWG2%B24b1% z)R$qI+0<8ISsT#&S+^%yLdvHBJ)SDjmbc@IZIzR7SWmg`n`xDU&9t9}s6 zWvYG@Pcwc3%fzMeXR!SW$3iTZseArR43?1~*Rk%f0?T!-UV~*2s^7p>#_wX8=`{W! zmYGid36?>w{v0#&y5rL)TS<`1PBVOuWoA?Vf@N-3S7W)%)PG^Q4AuW(x$M-9D&ng^ z-30er#Ph!lVl&xyMh4ueiEK{MpwU&x?M ze66#_Z^D0@13clZ@%gwh&jEUwedMh1|HEm-!J8S$b ze42?5ch-0j?n+z->1=0>&&B8I{__6+1DBu~KE?ydpzHZQXN@<0D=E0t9N<)Ejb~$d z5>j`^@+740h4oR6`8PS}M}ps~YlGubqvbei0p5U|jb*)#ZkccimgQN!@p#^l9GzSD znNU9-Ugds)N4@9`%KcdG4>bQrSe}#$Wc`z8y~9pQjcyn;!w@VFB4rdH@prJ?aOmsz z3o`k9z<7W;0eM!u5zjVvKsV!*WqQw-7|g@1a1&YoWTyLogkwq2KK~Q%rOBcS5znY( zafx<_^Y_Kc$NF2W{y5usATGq2asnKo+!?YZ1h3#(l0RPm5`x!B=)wV_=Y4kh8E2p7 z53md88UKkh&-U@Xc)980#J7`z7mSnfPUBQ8C+ODS#2}3XX`*;b435CkMCuGIEu=mU zON*#8v7CVVG^~S6##lD?8~@E`1|Qj+mK)Z6tL0Dzku=GCW)|u5ept>(2hjsq&Opb= z{)_?Xf-Fjv{10O30`=!u#=vM7Z+&uV)FL{Dx$NTUf zw1*_DCBr&Wqz^m17h5xQ!c+787$|kt_)~Z@71W9A101~IoBR(vpZzuezj%*vnD9PL z$PU`4C*l6agK*j9zJPqZ%J^zL&*YzuldkajAHv&>=it5G{QeIK$yfOu7GOD}c;kmh z@OQW+3DReuI&1t(EN86#2FnSlf5fxz_3w&*#p%SOc|g|x^bg_$-Qg%KEue0T3vhQ5 zqyiT>YkVM<7EoV??HIWV`;CuYjT!&dwRe%Q*|flYcpC+#vzHuj1+Ki>x6m4F|7+bp7_=r~D;c7x7WZ}50xrZ-A@yKv&+u~Wx9ZxV z#&Q*u;LM@9@l?-I);qJ0%)fjEgM=J1#2a71z%?9D`#kYO7NZyaAkD;?SYOKx!jeDU z5`%o)g1Fv6-Q}$DX*iuY_kVE{zw8n;Lj{%ts^7$w=Ff1~VX1(|*JIlvo3P)iYrim- z7Wo%<7{=5u=P%d&IqTzuc&CJ*4<1H_92cMDtnn#0iwfvvy9CcL{tVA&f4QHK@(=we zw(j2&PbPn;1@t7L)o|Yh=V3WOyfNx=4$dJ#2IVcz8lQxvK=l;7+_czKEEUxFbWDrM z`OB6ZJVb)us%z&MOOuu3b|ZZSSL1mUsE=yf@lLEKl)52~$7OPZgI^>bU-$f{6p_vI ze=Z49fbMV}wtdncmkg-(o#s>MvnYgU~6OASRY{{?ZFD>w-$sjw-Ho z{KGdg|M{)D_SyzJ+}&V@=_W1*c*s}|u&hD;6(%nE*BDFw&o;9D=bJ&bg$#wp-{QSy zOzgzdO#BaA{*r$gee}mHHYVN<=al>S#dyAn=Z7SmKn8uKo|2axb4XQ1zFI^d*2f0=c~XHsAj`bn<)Lfp*6Z^BjV zukQm&afXRMi+?iZZ^T(X&j0^M!Wz?rjW^L`K0|O2?rqNKEZpD3bMa*2dfnfE=VM(x zAH$_4|9rfe;F6@hSP;>ny z1{adB$Luf|58;6EmKa=xbFcAdc#RZbT#WOKC*lFdcj0{F2k@}ia{cpPB9c&KGCYNg zji1L8j9VxAlCRIEEAXd1uPSjdL`y6a>u6v zuaY1$p=Njs%fzF856e`l{s_ywp#BugWv2cT%cxg>gNtwz5@aGv*(^5e|G^}TC4)Xn zb#>MP&cQO#sL#bSu+9U;&KkcJKS5kC>jlmlUxep{WYF90|C0oBfGt>NGTq@@T!HnD zr|IXhHQoZt#HBtQ@4$M-xy~9t4~H^wXhMGyQW$jlN#$+M8owPMOk8if7dvbGMJ$6> zy$ahKme;V~s%tx)!uS7W`IW^(-r-c546;6N!{yidiRTAg_oq`-V<)x;*lqTg^}fbf z%1isAe*TtUu>Sk4y0#4&bdw#rHP|87#N`0z8B6{V4e}S6xa7adSn}T=HrQd7$sjvC zW-L3r+#r92iA(-BjV1rr4f20);*vkyX%b|I-q_;76)(t~uZwY{$S{?6>OL1;$eT z`}Okk{lASSgVb=dvFxxH_ve7Cq{dXJ@0QqFq5e4ey4;|U%R=HyoHhO;9({vvp_RD& zCTCgyD@fRIi_h=|4kmfOi*qJ>e~9z%^8N(RHvSxEn#*u2{@48J)%RFijQKY?_=N<& zRo6b=CpFrkHHq@O-=F32^?VAHE|G6UR-63NLWg|C$M2>BE%Cg&eFaLXH>*shcIL9Z!|EPeaJoT$MANP%pmKgl# z?ABj?&6Wf?pziQH)+Uk``WyR==lLwYzsDIbCs8J@uBY;MznpQ2i~(GZ<&2ZrO?=X6 zv><0Z*~MSLazYdM{$-S*)*L{Z^q8-?Nu24=xE)S;$opix-S{-Tc$SZ6ZC45mx zy5K&OUyip77d{o{2HV(OuG@W4fkP zZh!S=Tt46L{}s*&7x;v4NvJXY5f?w}<2!NioOd-|W&9T&Qs(3Ti5Ge|+Qvj=+ysYP zOu|7V6h7~FI0R=b@@|Psja%b(i+%ifyv_Jzym^U_pDteN-Dw-o|4GYyLU%Hx8~4QH zjr-#K%2#83whdo-zVHahSDnUvAFnU|NK4|--h+Y z;(K^9&Y_d#rt){Z%FH8wyZz%a!0(E>{nd@bZ{h+p;XrIhd2{Ty>e{4^eA)cz+`7MV zy&lV;nnorW<&`*xF%&IU_=q!7qcNp_ayc5yn9}^=J0!@U(j8iz$zP@7d9J{la5Sjg zMD?DSF_Z4%$7SiS8e0f%mbDsR9@8--W+1#oHq@|Nb8dGN`ly ztGdww^r6gTvf9n=UcUmrVB11Ha_W0_1OJBQD$*|K(Zif@NDUt%!JhH=*q&kb+4Y!@tpd7ejm1d{tebH4`tAtnOlE{=?(lHwgq(RS>F#}El|q)zJWXUsy~Ki zddHvt|Kt;*QGA#g^)gp?Zg5rfFmajtdmBssYw`Sz{xZH1&->VW9M1Yg9IZe6Iz0)C zqXg2plBeL@PyG(};4Ulu4M{o9Gv10bjhlSS)2;F8xa>1uUMIYkdBd&0{D=ezTO=Xc z_^;FPPUF6KuknRAg#&2*!C3x3U-ji!Dxe;UrGn~FSWd{T|B1m3B*+06qkLQh7VX2_T|G{zs>Qxu>osp8>%>R@sm)SogNRza3zTF&9 z`g8#<`NB8h^EjUa=;QY$JWmhERJ;!_$Hz%|_=N9Rd`x@*&R=Ps|1Tk76dCk?Dw*OO zpLJp|70UtC)3F>t{ScM|sOMnYf^)Ios%uXG;6yuZR-ntF%dk}$+1{D?~q@)>sGX3e~- z@jBx_ac*-T{}*pC4!-9u`d}Y#jN7%Sa~K>b32Ai+L35mAd>CGAd?e03#OFT-?=n6C z7ai*3?QxB9N4)$njkErDCZQ}{6B2?R;={dr<4wl>@DAgPai1f6{!4IXOYbZ3D&yg@ z|4}Y3&;Qqwu#-N`;j)rZ{V?vo#*g~faqcO;z_;<#j@}>OZD)9I!~;5ce}-FC_}6*~ zKk%Q^;l_-i=hvk48AA{w9>RYh8 zs$~924nh+AR$beLt3XEaR1#&>|HY`6QM}Fh%0XOq4BF_?jQ9^&MzyRRlE438rd9^A z-qQU)Wp5wY<=8&{pIeXawuBJEVi9_nTD7!lt1Zc}2t~0pjD{kFcn?Kt5n|&Giy`C| zLT(`>!w^CUA-513A*B6Y$90{@`#Rp&@ALWGzSkeE*LgggPsjOiJ-+XQC5UxTxeb;e zo-XsB7#usMeGtWJun3kYR)g)ZL~)(ZVDwnFY!bzO6Z()aLE6d7+n&Uh46gJ%7M37Z z{|~_u#LJ}qQh>imkSNwo;xQ-lgdJR_CsVC(PK7?+$$%p^<@-6IKx|A_HSGfHHxe*n%IOrHk_ zZ%o1^uwJm}{B_7G?*dONi1ZJH6D0!x9F4}_&g$~|DIfN~#L3aC5)mI8WCxFICiEmkoc9Zk*Ck7iU*Vx4$K zRq!G)QQjFPnK_?a9M5C2$bczCbO`g$dg3US17LQ0rX3`+00a;W9731D2qcsXjRW-+wau zc%oPfP&6eq!y4GO$oDZWIzLtZPdHgaD)>EYD>&qWWCg?X{~JlLHQE5%Cha>lwU6h( zwvRuDZ6Ei)(Drefn+w}6{t^!L{rW%PB25T`>IOIp60T^(c;LmU4sVR{*RYM5!P8Rt z7G>fuh~gtn)XUs{9=x(F8s}5tMW;o43A~Z z4+;q9S4BJzp7(qrITN{CNw|j^>$_VkJcka_-75HL6hf_j4w z`mSZ%|Cgv%g)`YiO4Jtd%!JJCmtVp=90Z;2^ItL<$|(67F25@3)9+&i{MqQs1&+fg zpy;=375e{u6YIYo;&AWpX`*W*hx@@B=0w~Lwk^;Tj*h10XIZSoemcogfg>+vCd59= zXP9gBCBNenB(%Jd3j%nNn^1Rn4xOgCyWw0T|JJk0e}v1CXL$PoKZLCE!SH0{x+lEA zv&s|GNLcVfG_3A{I~aZg&NBQPTmb83w=O@j2{rN~;ZnmF!V7MWTJSP>MI=wS`$%Xx zKT=o>uSS6w34-zic-<|WAUTT805N>;G_S#}+!d>9tDI0nJ z?0u0L_b!^nHW-8Dn<8w+==30sKy zH_e?!LT?nbgmYorq&LHBXySaI!Ly#jF5u&Ju*8h=tFXk3@>{UPi1K@|#1Kbt{_8#_ zL4rmVK8MR-{SBv#pF>vp&aecnawm8(tj_}s^Q`hC;AfF*OilIdufM0eOG%KZRD&wm zK4^3eEJ3OAYFJ`M`6gI`Ot}`8AXB~*mM&7Rhb3nG_1ARwAPEu!s;~r>pizDjmY`8y z4ogrfzX(eoD>uN>rOI!@5<|*sV42AL`rFohL_&1%=#^oasnWO5hdyW|X4=5DhBM&N zw?)HlXLu?ZYEb9H<%Z9IJ1sEleju9GF09ZwrfEa934%~2N;$X905#wZ;os7Z?6jm&a z6js4SPe$AbFEIQLyv6WZc=}V3{-^M2)506!B}U$qAfX!t(5ZK?-?+zP6tdxshI_y* zmqi)$gNI_T?+=v0Sw?;q+}HTO8O}HI!~zmZQP77gaGgky5~{*JaD{naFB_H`s{CMB3ap$1+o`%AY=br*j*h10 zp@xb7rsi@IR+t)}1&@0=YT|R@>13$Gs21+@OeDVpKFt*99o=&y_Ef02|2>t9pz#$#2IO9qD;7X8sN{gXm@Sbs4niy2%UGni%MqCeNLWUwTr|D=(N{&K^j|5>1~`4iP& z83i%;&afD?-YZb7{cZV0Oikf_Hc;hQcPPl9m8eUB%@B#8xuJW~rd&8S4kS@RD;gZHk zUJln8o&@K<5y{Vo-OG{v9q{O+oa?XkBrHlMq`8OS{5K;9kHJ$-lRgbg3x!8IPdK-7 z%M8B)HyD0XhMe0_Sv^0PaeFGz z7#`{FZrD~}5gZ*&&5u$6@yA80@cMrhB^HN40k~}TFJmAjeid#o8NLaZl40;d0!7{m z7x)^1Q>`8VBNMnZ2CbQ^xJXRXnLuwoS~Gzs1W>nOPe z-e&lDxU;eU2JQ|g-~aE(HPH;CFc_|SJ1WpHcpP$V@^j&8qkkLR?VU*fPI!TlzY1@7 zHFzpMT1@!{c+<<~{Qnjbq{&p_pRlxu@-SVsrsfmch8)&9&7BMvArJ0`BY)1b%3p%> zXhFSp{5@QTzRD9nkx=k{l<*t87z3S1_S=DBX!t0&`h!USIJjbM#AD$ZhEIhzd>F}3 zhc`u>aFa;b93{9ZaNS3d!NqX)M%D&@{r_KZ$B!fVQn=!aVmH;xH^K9b{3m$Zm&LAJ z?kUki2mb^8Pt>0EFNcJd4bfMxPKLLb8eaqFAlDXo6fQ8l4j%ofI^^^EaD(BE@QBYM z`44c`=bq*Hzbzzmpa$9}f5170UAwS`DsK(1qejXZu+&g_XSnR^h&#bmhWCNzduIJf zbJ-+F6RU%RVF{Y>;NCA>WVjzZ1`dAxhDI&(tomobv&_TjmGF(|>y67A&*;ng$1fn0 zAVH@N?tvxflplZ_4L<^}H~a)FU8efaz|y74FTm1;%CErEg~|2*4H8O?!n?4YXg-9a zqpA6nD|pt641?8>E!SPJ*eibr%cuy3B^#Q43GM?DESAI^C-8YQQ}1%~Is<)(#ihOcQb@BiOMLakA_3tnXSUU*u zT1fl!W4b^p5X=+A#NIP_Z^-beu(ZH_IFW7nLim~l3Bj(EgfB^u8V4^Rz+Fv-(j`M< z1v=cwr3*_8i~d`jJhnE}q zH}I**^=mjCcVr$h^1XLt{Vzo!ycwMCMxe0HD2#$LkZS>^!`;7&YA_SdH+(%j)D-Ax zxWvd`geMzrOptIc272Q08(d`+(mD|3rUkmgD~-G#+#P#u;tB9-BcBAXH}uQc2Z?ibl7+;Jq> z7#It0GzO=_?)#|3r^6YBC&Aa@P&cKw!Z|-g`U~LohVO>k{-|=+|3xIs!2#I>HCh8p z6o*H;`xureR{jG1H@pK0(gK+~hph6B@Jqe{^mY@y}IsZS3gf+(DG|y^~ zfTa(WuYn~dl;^^Z3g{khnP-(h4@(d$uYx9w?HUz8^bde-0lOQy==Tme%wG(SCSmgCVz-za zq{-zF4iDbr^>StT+qo%{$N4Svt^7T>v@u$o+-}GlS^ssWJA{M+6tqvp;q;$UGq8LD z`j$n%-sq1*ZuvCH@by&x6^WlyGpH~;7X!;T!`)*JMsG>AxBMLXmRG|0G5f^Ym;=i{ zVqiI_;V-Ef)*Jo>eaoVs_iL)YIUM?BSz?EanACY~WA3@*BpMdKrfL@YWpCDm| zDN(ylOdN*A;p9J~4EiCT<$t?Xe!4Xu&dMJtY8-9cFnF_>Cq}{<_zMp{^#+$3{lpj& zBq~+mR9J#c`3zWsM)@4L#PC#DnpEYN!IiL#eVN$q^Q`iR;RJHOTqoRGpP&k#!O|ki z|AD1Nl)s0i36;0Niw*w?uY^xPK?-od9wDoK54bbKJUn>*FPDUD67=l!RL^Q~1}yV} z@;R_fB+64^JJVeTM+euG;QW@_MJ-&<>v-CpF33SCEy3q?KAXd<(v&!uc-Z&9Sra|H3-viE$Do``z^j^CrMz@VhP$W4TmTYGk9*Nv?DLf8`+CrDXOAX%# zPk%G&qPO8~$W50e+`M*C0VG4q+c2=4z7G=x4z&wko_xVoutnx{)1flX2I9iPMZ|g25Av*X9HEdU-t7~4U=(S6tLq-&* zccEfg%*%|t9=YWQ;2D%b2g4^M}sOG`c9dK*lIvS7Iuxzkz_q{MQcNfP$2`TT6c!Zykf%48W$m$75i>P5&c zi+qHUAA#Jm$Y&V&(a0?$PPkg5Fd7BR;$X3n3vV@i68amcQ+RNj0(NgjdEY6`-Ycbk(ZdEWA&T8T>OYdtNoc#wMY!M zoc%c^8*LI!Mq#>PG0WLGDnOjCK|d}pGWylXEsOmUBfn|?1ee=Pf+(zx@kYb7IFuF$ zkJj!^xB~^&XFp!`9Lm$(TX0w8x=Q}xS>-N~9X5$3w1$f?&`Y$3dRBRVSXxYZ5L^!H zbXeh8<>$iEqRLZY8-|HXNr;Z7<|^1u28CP07Sh4}3}GZOvI!#z%WI6i?EmkMWw6M| zyg8*+U^YLaJZ3CV8? z+;(+vr$p+X?iTn2Rk$18JyZzfZ+KSuyYKo>kuRKsKw$wE(?5tGq9K1o8|f z{UC!fpP&k7z{jJo0|`>V8$GMM20jJ3UIl;Av&tLbvylJ8+yCrY<-fxhAkQTKAcO2~ zVS*|g3|AQk$9q=!$?$A(;O(#RtnzBO2D$D%pYp8oXW@I0C$xz+`UF+@0bYuNHt`+@ zg{<;@;Z?|WW*g~Q<)!c%GU zMvZn+`-4MPc}Msk$kl#`XO$PjyS~jOSyh-EBt%o?MQ|1l^ogm3p4GwqaDU`lfpif5I- z0VigoAPa&-`BoByRbe}P2dpi0Q1_5k-V0u2hKRch>(E#=)~F z2&=+M_;py8C@J8No>l%UyxL^YrANpr?*_}vs@w~fnN_)857vLX91cPuI+~h`V7nUb zw16)eu^-4mNmjoL;7+UsWuCuAt@G>lOyYAZB+{MSIjC>?4bG^z}!!oza?KRoe?NY~=l8pQWSmyem1(Dwd%T%xS zqt=m7VlvowACz1TO!&#;s$*qhPz{qErl1+bo1T>?un zv@e#!Qm^0wLwfqo?)`ecL`Fhzbr}bX!nU<-v63=cmbP8GN7PnveieNye-kcR6Af|E z-)iiCM{XH$!jb#$!{Nn-kAjyQJ`T3$ z_haFeMt&;XX!vya4a12^By2MYQ{asEq7q*W_cnYvJjU?Vu$}Z~!_m>yd?Re*K65s& z0O)C7dh3LHoCFEF?tUP2;GTl?QSj9S21XV46fB=}Gl5Qlbi>DJKxW_F)eUF zpwFj0VQCSS*TT{TYX31TT@d^K_cnJf`;&4M&ia`oDpdXj7?vko+`3>|fztfX-yMp%7 z(_YE2?S7GiZ5UWi@5L!mOuxYBcSmlyH(V9dpJw#OB~Y*lr@^(xpc-C+L9iACam1Ae z8Cc!}eaoUhEv8=|age_= z32t8;SQZCsx<(mxMJ`E>s#`LM){Ug>xlmI?*Wf}=m+MrJWaP4Gb>`IK5E z2@*7F@E6mZ48v|dgYB&6(gh1VpU-kGqol}ZcrPqbt@gh$=w(!F^7;oq#Aed?KN*%T z%0=EvYH)l_VHJBV+sad@v}IIX`2kTc#Q7rh<^=h8^<2X=FqU%7a99kkXsh{S|bnk12*9e3@pD3SFTN+Dz+RH6>vN9 zk;wHVNHVbUgL-pY$>@u`;~|l~TtY}m=!HRw0`h!o053A!7yV9iqN^tZ;RXU<&&*Hv zj2TC|n*@J|Tu&PlxA+8A_$T}w3R$Ytn@yuh={hr>I55Z!B>;#uVv!`+a}wTa-V%Da7nDlCGBprB3s zu4k2h2p@@j2NI+JE&GM6@_)dik?RGlzMfS+5I!X=KzIr744luuGbEJ_pI_}_yOb{^%CB}{lf%R$bqxW4eNgJvl!^lJWuef`e(vx zO@VImtnym;Kgjih)=Qp)@h{`@RT8$Lpi#fYvpV<#-ie7uqq=Ke$SOYs?u=YBIKi{Z z$HBdkYl~d#Ib4bunWe2)_{;zegMqO z>hnjTI|(yP2EE}r!+G!$!-L^^-(p3s8%K%t zL}I7Ke0q}->WRd0u+&ib7Fb$HZ^C^5ON$FjkkB8X;z`?u#pIg&q7Aw46E@o2) z%UE*ZE?SRnKyLXKxc(zw1UhL2yciCO49k(e9|YDzq-{8(5Ds5}Oi0xF+!7@Pg&CZQaK4TjH#w;7%cFE?lO7r_}H zM-HdMmF98ht6&>7v*75E-%TXJhRrFQ?@ALF$pcx0$&1|ZmM$s9N_Z~4C6HJvZB>pCUILj_^{`=U<{=S(9u?{?@{TAx$nA8g@n&z( zs^-esj7(dGE(5t!Y07jU+@O~^T0<09Oa{Rv=$GI$d{lTj zO@>_u@tBBd@>00b@MUln9L(Po;XZhlkq0BAykAseDS+j-F|aK1Y5i06Eq{Q%2_EJ3Bb1YQSg4L|m*^3UO|$aU|YQ5dqycZMa1Ii&y7T_+Mcgb4xf19vl= z4ObaH7@lP~2VQOFk$$lKh)g~#K^PufeuX6n!~7}0ND?F{RACe>eW*MJmOfNI6}A)A z8E|woHJ=09iR!g$dBd4uy^Y?M*}4T2myD{8^7w`%EaB3N)Ig#^E(pIepG(#}kr0eq zR@5DC;T!G*oh+cDpZy3AS1~ay_WS}YEvO4@izU4A46A)HEG?!h^0lzURKnk@aj%jf zO|G|U+C7?@!BkU2nM!Nma)LBhDi9Q#dBX(lhh84Gid2i4^ss2ucn-(Egx#kYScNZP z+r%5;=-~6&ux;X>ja&-2$Iw*!ec|Zfm2Eh`WkMf?YT*ts3gTc?%)yC9E_;&kfrH3? zqLGXJbus&SMlSX>VxM7Nb-1%;)Xl8O%S5rTQ_E$ZRbB;4 zft6?~7cxA_{$;0y7F{cm?aA^PngLNw-{yzGacGHTvfx7uF>&E?-@g2o*#i z?JURC!BK|q<3QLhaaP{1IFtv5*yqF2V&ReQhQhW}M!?a*+lW~t*k1XJ*+aS@4=tIl zM%NVHN-x!!GEKq6viNH>@{5sM7J1ttQJpSFZux51mhn0`I+~hqC~kFhN*Ql43Nl_F zi#b?kuMn0h9L_UL6P=G- zI2c`ixLf(lUat19!9}!y6hkKAE%5S~y|C9$xD!W&3hH1yd;|{k%Acffi45Ge$Su!> zN29MZ?o;q|IM`fJfG^-mSc5j>2%gVOGJA44@`{ora{W=r_$>PB&}s0tqybkBVbQlU zq_zLf%LB*0#nu@AO~{3VcPMmEZWTt23>B<{g5gmCCEfCg=vx-~JflAzc_|gr77+PL zFK17b=4PQFeHI?+?s{0dKzTkaO{{!7EKRCh2TPMH-v_?~YnQz3S>+$V(ghshp8OLM zq={AGOIW%<`5U-Dtk=go9vQOA_k^W}%2}`-b_c-G(bU`>4o6+ECv4$*8wD9Q$H3A= zo3Ya!r#6|i*bFZZou;|#;4$l?dEs$*Dr}p4X-R4q1|055`G5-sR^bbH`ccE()Rs{J zwi*W=N;u6iECmsLEl`|yML#azJZiYV9`B=664b$-7+B7NucwJ+yvVqgWBRd?ew;^2 zhB0~8ajE)nSbuR@ia}gqWz4|x3Fupv0#uAn&A{?F^eu~i#_@?%gN)-NJ`DrQVzAiA z<6MD$TwZcQ*UTf@UAy;Owg$w*@qc9f*%i3FuoE{c6zSsqkkT9%h)H}lFL&aTD}ki%aY-`nEvuBQtd5YhP`F6Uv9cQ7=Je5N-;=Lz~ai( z3@l%ZzGcavyV0ME+_K1vt}^~){Mm$?F|d3aEE7$5@a;;t9M-2WUiGZkKD8mjrV&_iI@CTn)a5B_@=AhRyozeutxj8-=i4zJGgyM+BIf>sX)VZ1sg@ z?SuT-#L9AhtV@5I1Tqjevc3<4r3>^azxQBi;^5*D4)*>xmyY31tRv#^5m;I*7klAW zHB%OGt!J8P<^4*zDP&m6n=#Y$LX5kiAD6F)>09oJzUACfE@FI5o%BnEr=ai^tUKjd z@OmSc0(G91S|H1hp>J9AN5u43q%d)16P8H{Qxw>$&rZ$I@^k20mJG}0r0QEw{pXRdHW_>iuZ=Pgb(e8d zs{e@D*Y0{OQ5;h!GQ1aZ%U$4ZUq&rb0_PdN7#?BxZn&-CH{edn@=%`~oob>IZbhMi zm(nc~$uJf!8Z-6Ce zm2ZLPnID<`CoDm%@`dmixToyv#9^aPP=$A3iCX2gutcr$r*K{1Ahh3MbjT{-5tg7- z-W8UhRNf2T2=6QPmjVp;393*6OVB7E3ro-_kAWo!l}~{s2$joW2}0$wVY?hnhUJj_ zIrw@c33fed=JZfvKu;G7pW^*IIGCtdex8P<&z1j#rO%ZIv3^OHDkos+bLHPzjtFx9 zQwccCSl&K}V$JXo!w2_J={qpA5R*tXy$w4nT!gPwpdhsB?A`{%emoghJf0_|Dj zP)aDy?Y!_2a?78=4cP0o!X1w1vJM=y0PWNVo&oEFqT@Y>g-&-9;d5?7;Sf?J2QOXVsqu zO9hm#fTaS;Gfv>X$t;sF8-?|T=fU+~MFzLRXM7#;0{BV8cf;>*jO2@8+bREoqob*L zX@UgXE2D@*X%T&g>?T-RK;!gXSXw}N=)VxUDUw?}TdBV3NZpbdg4h?z6@pHW;5LBVn{JT=w8)fxTC$Sq$4 zFN*1BEQtIsL~c2lxeM-$6r={0@5jLM!|)n1&_@tNe}=JNi`??3aHsE5^&5=-4v8@| zkx3ATlj~9oWO+yQEsK7g(ccxhWs$Eo^1YB-4py#C3!@CXpkP@Xj4<*8ky{q|w0k1^ zIQKw5E^mnR!l)MxB&TnB*;{=&~qr~ z_S^j=NK~r9!|*iohR@@$1fj~GhG)R~p}ZBH7_K=&Si5r36?(2 zVV58$xu?r6gCJeRR3f~{IM5}wWqlL_FC(}7I-E^`bcvPBt3!S1|1|e23O*rVQK-K! zav0}r=*Q)q7Df8$C$apHA>|EPsE23qBRl0juoTGe-1uH13HheUhQQ+t7sHi?kA$x= zJPN+Y@QJW(^6_wVG&N6zgBGs{Qd_vwnVls=T^{a-B}3iS?EfOa2m$Nzayl$65d5?a zUGg$41b8xU#Un5%i=Y05O;bll!2b1mQSe(-9_&<#ft>J#9sP0@T> z4|jugMfn=egZ1%7?$m;*q;Yi!r*@~7brKSUXBfSutT z$8%EmeI!2&J`mOdoemcn`MmLLWJZ$^bSx!&28F3c;Xm*U<6x&#nBa{(AFiMP{d|qi z6uBwTO>h<*yvvUNXW=nMzA-_<5*+FaA-kN)PRe8;EwcHU)E2Tl7=6pb;H{?1X2MHM zhD+cTh7%u?u-YWFE@Q&}F>1m?;T*%`U}yMRILq*3a0kPmz?+T#wiBpe#Ni6G;nma{ zTJD2^WoeP3*CYJ_$R$X_gB1#v7EmsRC1{n8ge7RhgB55L2@CpVxa<`FvP{PWg6Nf=;;(mY53;S%K~&L4r;d7Q+&B%8$Vkbjr(Mi5cbRV2K&! zm9UHg<=0?GlPj-=WfaLl`|}GuBuJEo2fxq*OOz^q0ZWuCZ-na%{{TynseB8(!tfuk z#F)z6X<-b&(*OK6ISCRZs*nLokSXsBOHe6yf+gsb_kkrym9yaj!w18qhI8O)0SEEN zbM7R}G79-{t>K|?=gm3a z!Elk$KMR%?2oDw;SPHCsAuI(_z6@^vb0XTh-WMc93X5SWkQzJ&cY}jX0YUqTXO({m zOM#TXfo+UzhNFXD5QOs+W<`FMK9)Wz@f*MG#z6XbuX4I%Ycw^Bvn8g5iji9$2`~CR z(!UU1X1EScG?;|fNvIqW24e3sxWtHoE|(+V4n}?f+zq*|mUqHqOa`yQ6-K@Vt~GLLvCiwFAPnXo zo3QVhjB}%q4X>vFx&t}}Zu@6c;7j4nU+{2&bQz;&4cy7do8fMT53XP>F%>#KLBawO zvMHHtk*eSoM&Tj20uHVlAb%fTZRAoTDL{D0jysjp&I${t^49PeQ=r75B;=WdaqtMk zVz}{b33E;E?tIAQGgHRiPIwL89CjmKaeU2uqA87s3(~%7?=ew8}@p z612+4!4jl$1nd7;5+q8)Bi)?}OH3%A4ogfZPl6?gl&8RUrn?x94nA!T+tu*uNM18= zRj(ZqHo)o-TD}*qCo{V)91i+9s^WU|Y;!y)kH4Nemj^ z3C`G-nnCApqXOk4w>%Wy2Yo&LJ*P5(f=Q@FVFavKHC}?V;NatqnEe1(!dcW@dQpxU z-$fb5d5?40bQ}4;a5eTAhxW2l%lRSIf#s1HSe6V%82wV@mQRoj{)(QIzY?y4v#^r_ zFNX8BM-@zbKtd%6+DGZ_PF8;E`2wRD+YsvGZF>?E!y!V&}F z!9@#Ly4Z8VokxQ7p(C|?UV%#LnW&4mv{E+1x*8ZYy#`p?0G zk?#=5nW?|=399fTEHR+`3tW~oNOxK1g{<-eV2KIk?r_k@K|;FgEli85JP*DR4!%Vo zGxbEDpbBTf_V;wpgYUvX)?um9?VeS?4wgPvz7Jjj>!$i`&no`_ejWJ%Byg8M-K9?s z6I7us+=N1F5=7p|v&sj+5+lk(;4ETDub!UmS>=;q2|DGA;8K{mE&O!NLZ6@t_rnsD z$`8YKa(f((j;7|PVLP{7%`I1%S7fr4i<=#}@gnnv^7Bc1#-D70*O4GmK28jRhE9$8 z{icNSFw->G4R$}J>I=fo0KO`fIAb<=*I97X6ODMf!QjbFMo4 zBuVE;cY}S2l#5^~vGPdR#y}|?9Zk(Az%~ZP)fB$T`eyUI1Qp9yz@wX^fwc&Jo-DiI zSK|I1c)e+~ZSZDzUoSu40`_FsYa5orMTSvJxcOV7N=tbyUy6a{1iaW3=t1~ju&!6{ z!4Dg`o65PFkskt&fwe%#Pi1|pFbP#CEHEqu>h?!!0WCj-zGcy0`d6yHXS$o@RIk zEM27X*|5Zf@;q2#K>1c!VnlfXEHM!ttZ#Rdur!&#H;mzxhW`a`F}xIRNf)TYf5UvX zD#kc=s8pdXY^Rd;aC9^^cZBU!GQNTLCkeVO^1=tp$?dR=ifYemV2S!|o{xUD zeGmf-Th=$OtIZ=pf@nW-5pMq)7wQa;f~CoW6(0F~Sejh<16Z0E|AGCUueT4nKzTeY zO|JTNuylC`slR0SB?;2!!6gp(fJQ!}6)1%AvtVgrb+{OoCRY9tmM#n?7VLY!L4^!o z2ul|R=j+Iq!P14vE0KSaAmeg>t$}HBS%8aUT{6MsW$ zGl)63KIY)*n1knxTmdc`4O@Tx1G$_&21iqKe#~KE&B8Uk_8nD8vMtw?n4gORKarcu zVs2KQm>JmDp(5p~61Te~a@#~zeFziF;%w6{kvz^z(2vXOc1zV?vU|i&pl_@G?~D2T zd~`H5KOZaepf~xPH3eLj5tjJ|STbBmyh|NchIO!c{D=$7;(lJIs0>?TW%wPAj;7}A zu_Cf7_#tnJluyzS)KXjr}hwpE;OJV*|=!M22Bp9t;cx~z2ioiz*B zGFFzFIC>Qm%TnPLdq!~<=Qq)h%Nt_)S$jqH@1k#u{NW|US#fd3|2EK z^X_l84>BynNcb!C^^jKUaA|4=yTZ}IC(vNqCi`AWoarGBM#dZ*6LT;+=3uOmi~Wq4 z{dGnzopOE5{^o>H5C_l29K2-Y;-Des;0+@e`>iqizl>b$(=SVHfkYb;^biNVVcSRj zja(e$#~c(Ix!706?57yH*k6=tpKzBM1#xg+%)vuOE)JHYI&e=Ix!A9d*?(o^V*hQ5 zeWHc?(I|+6J*TI(z`k&FG&N_#Hi!-~a#s4t_TZ;$VBsL5rHt zKc&%Zqx8Ij_vcI_^?_}f^5E#;la8?MnE7{w_PRz4HTqJ9@3xH8rcgJTYd#T*<3H=IMh7hYlH2gdaK!0U}X58h(90N!MH1l;nJr~--6 zBxIR{v2eZN)8R(LQ{WtKS!MYe*THLyd=b3G@DjM~sZoZ@;H{B7;Z~9`wJcI-gsTj{ z2X{6OK8NdQa=qF72i)Dr+g!~Bth7kJ4_s>Ghro-lA01SHOL`?F)RN&w5~R;BfybBv zTnXC(&V^?g`K_=m@ZGTZ3y(B+zsM&X?$*ejAODS>1G(I?d547ZiIKs_aE0LwaA|oY z{~jIK?5KHRPL{208!ICutj;vhJ<$l~plUxOE8ulz17{**t2 zmsK9_^QQoxkud9=NMR$qz;F}1#PFYRzTuYF5Ojt!;Y!21!Sf9753e}KT+-`7LcLKq z3|?mVa53O2=u)a6Q|&pP!y2W#3*h|ZSASc%OJJD?RGxreH9QlpYmxloYr305f=mo* za3d^pyK)U|SFbzaE4`GDQM!9$yg0^>!_mS18s3=LrAsiA?M$7XC!w+Tu;2kx;UD1< zhPzx#5Z>6u)#F9v2f>pcjO+)%6^4u80$83t5dEX!&DfXnK!)&%aAKM@$lSsbnZu#wCM(aGr5k0ykXUCHOF($WMY>wi+J1;wStNyz;anSK;kXx{e#S6N-YL zpc47Zv#H<*#crLKzdDEYzw))>U@8@bL^UlZO>uL&Q$+KEx|<^#-}ydN^%XPEXNF~J*$Wu9|k zd3!C#bK*7<89eKfRbUyB@D~M!XJkaeiqJsqu6D6{Z)@L z4Bw2n>>0X{rv8&tg%zEP-6_6028&C_96xRMS5j+mIc#h2i7?;o$@K;5+CZOPJlvIgz5|x8eXRBwegMnIJG4vx@fsQO zChcUezY&%X2TBkpq=e7CPSjq(jcD&6w~>j1pwWrrJ6OJkRpuQmdV?@fyY;~KiDJuq^bD7{~dz*!0>lyg!g@y7K0fziJ*zvzQ@crIO?O;?-TV5EA6vB zAJBxzyZZt>w3Y($zFm>$t?<&fie00xK+#9^IYGF|%NN4(N#*69pI=9X*Ax>&tiMvC zA)kaFn`-MF%!K6wVVdEvPucgMJKW9k^4YL_|4Ya9+pv7RV@=D@U%Suf0-h|BVJ-d# z!`k<{xeXxa|5g2xT4_gW-%D_6*Zs>D!qfN;I=;&2hV+rJnug& z#}$Rip!*J%uV2Xr*hT)**97(V#mT98|BYTi}Yx*{*hnP`(Q8J}TQy=GisTZ-!St*~Jy`WR`Hv zX6A)5g3=G;TYsX3zb#IEA&TbNkPOt#xEtz6aH#cq)=;0v&PRaS@9=bX>VH&thN z`2kzW@bYLi90?bgse8(wRPYZbGT%ZU!z&UA41AxB-o{#RY>`{-9iFhAF1Wr6 z+<3TqVYnaY;P`d+W`c_6BP+baLGVVpXqLCX5}pr__WTq)&;R0M2d4VcwAK{ho8sg+ zzKVo#h97~et|@c{w7fLoSMcgfid>E_@NVg?-Q@F%T#;|mA~pS2 z9ok>ef(+*rI_9guUp<_d@mR6T_g#?Dvb9@!J_h03>;}Otvxg;{{AqYZ*I}-$cle)H ztzGScp{}KGfxOnO-J0oz!OMhF;AwC{mu$9eVTO;wYwsSKT>pP>&9ConxNm537#-23 zwd?duaqvsL;^1mnJ}fxj7qH*hb}r}6{NSZdksmRmotyqsadM)%6y}YUTr z30?%20I<-BHZ?lC z&{g>++X6Rc4GezOQ!*Gfr=45$NPkyCMTH-NOITdAhF`(CI}LQpyubab@wa=StM&fQ zgx6nK=(2s6B|ajd<;8``4EC7Y&NaMRoSaxrhRfb#hvXgH3KuOePCA%>eLJ`Kue@Xh zHo|3T1Cj+Aazi^eE;B#bMc2bikuM1SCEPb8boi?vIaeQWV>`ECVzyi4oA41hclUwG ziRO2acNyv$`QC`MK=DoOTt)w($(d~~+&OP(@U!M3{}|30FjO;iJ#MB&;f+B7SpTmh zVdXnRDRt6Vui3 zT3CnWdbs`?e2|Eu@Rln1eH1hYbZT+Yi%D zhh(_UI~N8IGf0gm!1cQnCTF^eUR2bzdLEv^G+LPKv#Idvyzq&cop`wC8MyjthNaK2#fS_y=D>l$ zM`?qYfV-Vh=oWi_bKwjWLzXBsh(=`T$H{BQLo=eH_!v4wC zb-`sBZd1pBZiH{KlIi4^xU9dc^(|0$d4}82kqo`Ul~-iAMKkk*FWg97==yRT(KKIv>J`${9S}NQM%X2Va@tMsygMY>~gM$75mk!-AoGfaR1F4UYv|IA1CwV`>t|)S1uVbpb;D72 zT}Hw!c(ORTUbmTz1I~1G3pR94M)1w`B44AsVfkq6RL>v5@*TzHKEvIrGlK6VZt(Ks zV0q9x!^;nQD}Q`|I4GU2B7EQEuzyO!$*ZaRvC`}*WN_lf!YP4`QO~&#$-8m+eu-k{E_fa%c8xSFEs}6O+hw|r-w$-Jmxw`C&l zROre)57{x()%{uEM)(%^Vz*4!a8^Fgl!jf_cXtXfDc^16^D@%p7w?ssayI=TEFbt8 z5%^>M-?(?Ct5`h9P2(jOF*tCaOjq*RAXn>mxs%}aFAZ|@z5IT7!&igcYG2@u@YIh7 zxwW3l4#;#H-)FV+1ui=z)73ti@3#0ep*!L18-|68o2>skbkB5K&MI;%d=19J3vMn> zUd8$yuGl)vm3#TWdeG#RMagr!Q9bFR>xU)xc&p&a^M)lSs=agQ;@@F!e@Wj=H{$1l zV80Qp|Bv*~bW5s+C1<*AH;@>>7N5b}nVu zoj%yL^-Wp~PcI*woaq+8S;)(M3v7WGoiR8W#Jxvly3J*SgU7t3Mb3t^#tu%nw!Q#& zkuU=X+Qd5^OO#d&PVR7u;H75{P6p)^xC318Gi-oYo;5hxC4Y+kH-lW;u3?LIJ1*0e z?ld@gZn>IAZD-smUpDp*hMdaGwhP;8Hfh1c0Z;pFh+EEMzru^*O+OBC^}fKL!}ER~ z;x>BTt&A2qdx+cMr`EafqUl52CeJ^^lV2)uOMRDBPRMkf5)B1zgKyF`BxJ8*+wJ-G z)0jFh7~)3wODwe$>GKlX;vuT1kZnOh}-6) z{@Bwg@VbbX!HMcGhqy97toAvBnT)A+9zV7u860&M1u$2^c0DheI7I$Kj9;0YDj#${ zG1P{WSwBxqo=Ol-Domam=3JPW;C=kU zC61U$iA)CbuBAZc^7%!xq{Pw1tTiR|>`Oqg)<>gbckLbu!xqrDa~Y}yZXTl|H@$A#Z6bj$q2RD3rD`h*(p z7-qN@&i7#H?O|)F^d_O_@babt^0v>Tsak2{@Ttv*(`RfI; z{@?Zxi_bkr_%oe!w+627#d`0X^oYguSu%)Px%1%_%Zig{#|J;mV#B>$J$wEbmfQCQ zzJT|=z^J&53l=`=zkoN-8R{0%V!`^q<|UR(YP{KJIOJtEAa@LP`F`A9v5KI3fMMw! zT>J`a!OWqq)K4tsAF_7PLbJU6!VLs1Eu!1<7GDt)ix_skKo<%>!ll?2e*N$DH6?yF zGU)sxt5eP}*V1RWesiWPm{^p&AaTb}b`OWwpHqXj47PVr9^Q)|t>Gz{QeVJNV0q|e znx6mf*qL`)Q7G^V#jrd=k?VQ%KD=Xe*DzP*r{V!weCwyrFjw#A_Nnlef$VsS!l3&Y zwmYiBy6}UpGmv}xrEsvHkn?|u+PC-PE4^=U@7IrlceD8n@gH2v^-Y%7l~2R9C`v~C z9Ju??B3Iy}{tdX>nMKJ0uR4HthMuOt-hOen_O7HiJ1jqHCidVr-r1l8udGS|s!3SO zJsI8c{0H93J)8<(z@2*HaL?!_($#PU8CLr)dJkSYsVI3{F42p(u;v#h&yL3p;>Wm` z6uAw)f_K1;ON;ofgAbz5Noe_6QF3lSWH3L9`%IDR=vTM%;AstH=xg*lyr8kjwe>+d z?}+yNa6yq{bOkN?CcJDfhPBUd*O7b|d2F%E^L!G#ai0V?fqawHld!&Dv772^v;|&V zQtTT1>e%N<986&t`2x%;;c2(NoV}|D*Yq zP~yEJSMD?XMG|^)C)8ip8*&WqfxTOlJo%gs=aIo=-zCf7HTA`Ah3BpC{CkVtGVgE7 zC|=xtyU1(6-XnXs8`E^VztOd+FEU&HIzSVq$ ztSM^p9p_S^-v~l)e<@t?Yb3wpMkcQ9bg3T&iML6p;EqPP0cqoIzloO{lZ#Dj*Y9Tf zxaV-U(bwQ`eu`Rt(Y@Mda11|1J&s2(a=iRQxVrW5tWx82{)kz z1)5B!+8(vc)$O7S4tcQr5_Fc&ue7`K3FUxOU+Q2p^PREn*ay z3f=r5^GrSZfj`#&lOJa0%VRIA=DmzlCZzi?*n|F4DZ{r~>_ z#ESgvUA-@G4Q#Io9rg?@c$L4YCF}p)B*^cZEcFJXpQVP}zt;lHf#tU@j?*D%kKamjT`;1HhIb7 z|J^br2K4MFx z-ydK7|7K7V)BTeJ;n4rn==79{Y{35&s;QBh_xBrqK%bgZ56)I+7&|K6zT|M!Ej|KDqh3|T7ja$I(K&qH%-emEp&NX=`9p|z5o8~*>^xqm$7{d zYR!D~j8RA;Wz3HV25*gEG;87o-iaFV zjJIMm-hj8p>t9{{W(L^T^&bD2PuQ9Hb{$<^U0q$>Z^m-zU(jZ1Qzm%Pdtlp8wb4w# zN7L;dP&ZZEJT|IW&x2Q|YGb;RVBLzfZPT>#Dhh_?7`Bs3>$Yu}dC$|$w592`X6MYT zmCdGvrW9Xd<#j5Q#w$(au%?9;T5~Xd#ac^)5=PWw3;sk?nueh?o*(dIt)=;hGzGr% zEx&=iLD-`~($qYo6t7@`U2 z=x+L)Se`lMbTm|V${UG)DV&DVSoRuMTN>V9U6V7|&|9O=7M<2&)JWfLy0o7yg}D{nWUvEOjz)yX2Xh2c0HUH*9I4GEjpvc5|QhWnNv--RZPwO_s17| zG4+LYh(_jdNW5!+ZSOI=I833%io8-tHAzr(-?Dg*-_3a~Io_y$bT_n02IG8WcNei7 zTKbI+t#hD9Qd>}nZflEDF6xvRFRwUWUTY~c4|gIlI%r0(xSmIuL6kxhQFLYfy($XY zi$S0aINB-~lSu&bkL+(P{-zaa%05&G%YZ1?r_M)r3`(?#Mur}gsPd3P`JIXGBL+-?*`H8=Q6C zzr4FLv_eP%Ox1;GqG;DEyAs`13bC?UC1=@-G|jJMVE>HhQJ}nMG@8Tw-<5k68)^>F z7Sm{9@Ub*M_~47^F~N&IRXw?!Ap70CqQGue@H(RKB_!GlL1L(grW_O0CMn2WktatA z1w|id+~$>celn7)VnX|npc`_fEMV<6bWZ8UZZ>00rfbocU|rMk(xEI%ge#%#g%W1e zwuMxSZblzm-Q0`bnGxns!QU3^W^}LDjlCFWliwcgma^zZ6ql7At7E|;^3WMduP(GJ z5a`-oFxK`);UG&Cf~yod-ph^Ny9nc49OhkD3b9bsF{Kh+kHL(4jDfJS)gA)ter)y! zYpOX2?8mGt+ImjardEuLtfOYa%tN$UxyS^#xQTKd9xKqFy%-bSg|B;?9!xOJ-q97r zEyzUEJQ&{8w9##=r)eANy5Ks2r#lWTKT)$_*@@a!y`)YU>rgWfW-Qj4d&xICePoD_ zCUlhxjElxwtc~uCdq`}K0YUt0gMO1SyzQmM+9ex08YUcHrJvlWUo3&V;q+N|0qvUx1{qY6n&mz?0D=I?BS2B$hp9!1c z(uOZ(ri3qwyFl?$6K+E^I)yg>rCdI!f$+goezNG)%<(O!!nfZWU7_Gsc=}UOwfd)0s@#&}=tmo3^W) zS~{=g@Lw})=gTL28RnU4zfY7%jtuHxM$hgh7RkWkD^hz0sBDpQ#x`jijFSsr$r*(&u(_B};uTE~ z+kzurFwQE_>S5E2E{D)iCGc|kTndz4z7R5F$^kf>ZD~0UZ(3Rb z!u{HCV12zgxZp1tp}fnvWq4C*KXPm=0iZ3*mjm`BF0>0K<*a+pw(Xln9~==^Q4i7# zx7y-05l;{oTEYduuyw57P{6Zu!6bUzDaY+_anfkQpTt^X7jp`mW&o}k zc58tO9`w>LP2h*Pl8SYV3{O=gLG2W&og%f2xjj-ZP zOdsBP-56Ua*XhIMi9{%xamuyD5Uzzh6Mou-6sqz@)1Z7$h1H-^WJs>Li&c)^W{fM) zkwHX3(fxpK^hDu02X%@byKt8kbzE>ORviDy$Cl4fSQ7~gg@>F{Acz@4#IQEw--c6B zpbQ{Nm-D;aA_-LoQ-^3hcF>Sf+hQ*%yy}?VRQ$`dJL-5PW3K68fO5Pq7EVc zP%*&3-K2OY7B&21$6(_H@ig52j?n;r-eL@cSFSa>Vfun=oZ%EJ%Howw7sV@~4xW?Z zE4jfEuf$l%&t$Q{5P=K%)5<`+bbrA#9KFO#FY(e#yu{(|AjwP@_uFvkHE_`&W-(a3 z(`bP$?;5q!L&tBI0#tZg+@m4u1~}q9V`BJvw-*!8ik@fc{?4o=O75il!|7`9@%KhG zEcn21I^jiLNAv?vpg+LRZhYSu-4vnkR*9w`4E?}(1k?OzvlREJGH)%E(Vx(qsubXas)Eq}gPD?e zM-mM@2BCK(a38~S;ph(yBYGN78k$&lMJ^`RAn1?(A*pQ^uSY~!^l=dr^tuMmeP|5b zi_yR`3K2@dVx}V-+(FZy=!U`|Nfc6zzPPKRx3Y7%!}Ygzh=4>~91w)R~t6|^{qqp3Inz+siuCh{T zmQT+@8S1hwWlASC_r^)dqH|hIQAk4BBIOo;q@BtaP{UOaS+<~*CY5e(p=EIH9uXdX zD6r#=#l1*&^rDRLr01wo{YlO{Yi~lBoTHY1qr$&aX;IuR2c;hH*2kE}4tdHLMfI>= zc(Dhg2kj-XV87)oYgiW?U5qD4INu%&m;BM_2LBvpc7b6x8a?s8=M8_vmFk3gvnQNY zZw?xXNPmp-&B6!)aC6&9Ca z#&;M$2d^_4OyS%j_a^qb@NIl2yjlE_+M;dfoy2SnZr@}y%%bj4;U8N{U3A>6iorErFlu68?GryV@Su?XNMmU(95GTKIzWC{ zT=gXZR<~X|P#*#ZU2F95L$=(z8?rx!+(a6(TZX*WVpx(Guek0Usn_(DjHR714D9S< z_lMWsF}mOhv`|C#!jS44azAR|tPq%=iU^Mq?<8Ll!ttF)<}xrN!gr?Z6U9*RjtES= zE+#OM4v0Ubh$+3s)TLZgcFPpe3fssspg)AB?5k;#q7;{~3C_0{uQP@=N#3}F6m+;d zq(3w;Sd*3SJed3iwv?E3F%$1rh?cSxW6I$*aYwRzv|e41>!AosqK!0(DQ!WsUVJE( zk+v|!s)Qd(TbN>167NV0OO7_)SrQ*wc+x?Ch#W6t(mQDq%b!R(d_G$5-$drMq+Kkz zvA6IXQBdRgr}%?$d&ZYWeSt1bV?dD<(ibeTnqV7g0}C%{(mP2g%Xk*nuEEa~wURz$^z(lC}Zj3o_Yd9oMMWo&65 zypk#iY&;C0KV&9bti|}D^c-87$rdYs_>j6}<2l%(uZ&(WXN=yvt3)vHEE=N^_4!Nd z*kV~mD(NUT-o>SNQVd>4rFW7eUQw?ahwoZh2}9`rEZP|Ro$!_AgoU^UR7w3 z_bMFp2S1O@p>}!0z+*Mf!S32l-b`gR+f3(DniEUs#1m+^AUbqki897;3bd=BDD4tU z6a}RabPyydmrY9~N(vlgK~c(`!YQl{bBUx>qYo!RiwhyXEdL!2xcCqqUHrje5Pv*6 ze3ey7X(m19+NSR03@2wfDJ`ZudMt}`R?p-zX3Q-gBIUwb(rhPJ^4CI|PUudw8PpAb z|AsFNIupg){zfa^sHRsKJH)OHKNH~tPt?c(j@aO^Lj>TGqpSR$hgC3iW1;Zqj^c_PQ%8=e; zn3ixK4{xT(M#UUQ>QPRc!`+3y9top(&?3YRvR zqXro=TQuaz86rEz^v5<}%e6*Lg$_?%i%YRwJq@{R8s)2w;krg29=Pa@TTQJ7-l;W844mjB-f;Ezj!B|pnU8aF0xdz3vXJg*7{8g>QE||OR68B zT5|C-AgY zT^xz%99x|H1rqIMdW@qY^$}Fj7YaI4l0>C)YoMszdS8@Oa9j6`Td zBnk+p7$yVLO{(`xD$a9ucN|=RiuS|QGm>i-Ftw%ag_MPRpGag#MY+6B6@6)<$MbzE z;TeT!6BswRrJhB14P5_9R0`iH1f=@374mhA?i^T|DG7`29iqTdA`9>jg?rG}%U3bF ze-xi95>wgt54;l)I$8X$F`x*r7ycofLaK-fr^>75?YYmwRJlaPhmKw6vtK%vg)qO| zW8!n+=ls(c0Dstlr8SiTd&eKOqjRTI5@mpc%$x-twvLXh92~O%D6Xt!ShS+<+}=@ofDZgS|!rzTae`h zdFm$0cu@yhl<|a+=)Ncq=tPZh7a0Y%${|njtnyh-Xx~Npj%rbWjuOi|xmeYL{buUp z;EZRC;qnlQ(sWAXOTEjda~W610+;UTdCfJmPBy1G8QaL(Df|`(8;hkP|E4`ndDRM~ zq9uX!luer%39{DiZ^7Z?2k|)L4?h^ERO7xXX6TNGMRCu-nu0h}z&*eP0|Nj&aByM& z3iB}W=<@0cb5@~Lo}n;j(1|}D?3=~95Wb*v6+yi-^O5NDN_j24Dr$na$V=_~C;E{~F>&x(i%W#pT6Tos zu_){^grr48-An6tFxy?Zme#1Crua-vF&KX^6kCJ7NISX4FZfdMlSLvtb*|rJ)K_RQ|2tziEZc-WgQ#q!?5b!avBxtM}Fy79`Kb)$5N;`?!yAVIKviyqK7!I1MF{_bK&&0W<9vm zw7$h#Aff7*Cfu^t99PT&L)(i=E8gyriL9{~3$5rd5-R3sA!tPxb#*}!Jsye6ae^Xx zSdu0;@EZpsPj7J=i$coDZm7{j=~+;y<8@)rY(|`b2oj2fqWm5;_=x(pAXJ3gfN&)a zSPFt9y1&UIH3Mf(WVPg2mMdht8!c!R5GN=?t>}X(5A_T@R*tNeG_zHRzUqpzbyTZd z7Tmoj0S1=WnT+zq^7a%{_s9a|{?!mCQbLwAoJ_VPuQ*H|_uw_3EYY&@`w}u=_(b7Ml zLsMW}rn4aN%%}*ecv-+Vei*wJ4e(jR`flPrg9vvzj5xs>)lc#iAIaJ5IP^JwvCpKItVgj$9 zU^!i7;-Q;u(@(UHYb?ZKnu#aHBCmH-dfu_|CPmtHt*mF`1)6lMd+TW(50N}lIi7M#A-Os%Rr#VZUu8eW^d#%gFw z{>FN*4ina=E=-PwRa@!NAa}${X zJ}MnE^NzS+Qd~Ymo0dF3oGT3prkh89YxQmnZ;m#q{oXjKjO*syY*uqqW-OgCGT3R`);tX_ z<{BBj9L+;p%KbxW_UzeyK|9uRb(RTDDQVi1tR0n1{$#pI%bVC);*w><$KO~D@We+} zElm5V*{wVJG2wXQP9SY{+pQiQ3mGkzbDfxHS-7~S^R|}H=PcJq8JdZ=TT=O!k|v=o zOY1>sOR1-DZ1|gp`aQVQ8Y%R{QNw=?(yt?4ReABh)~JH1XHs}4Q%Cp1Cy>1iK1<`K zQs|IrH|yl`c+0AkmxVViMV-*5#er+Y3j!eu#NdzLSj!6jZP21CnNB`$&_z4LN~f~; zHjOGfdB?TWrkU1SO7;qES=0ruW~q6mi0LlIVA{&2WbWu%;NE(HHVppwl{Fep{L<<% zTrMRPpTs2}tj0)=x9J*O!50Ru`S4I4T>EBv4(=-pieHAN?sZ>TYvN^}jdui9x za+!>#$8a-4&&E@MFSMl&`dqEKtGIiCnI8E~BVOfMeJ0jW`i`?IMYLO5+_ob3EZ$7c zd6t!iaOt?y#}Z>L=z|eHXa`xp3=t>ts=UIoFy6y?@lHo(WL7gnczg^n~HzmK9JFoJQK{y$CFP6DxJ!Xv&k4R+2VTYJI@@6)| z=xjw(XH$7kcT<@xJ`0h>;V@H%Yv9>NM$@#km&OM|Be$g0kyfda#dqia;{f)wm`0Z& zXFr_K-#QSk|I9kRu)Bl+0i~q6CA?`Vnuj(mM$i#qT;bNwt-1(WieaK-5Qr?2~UXVe`G#a9Hw%)ukbndkkK?7jv8GubN#NLmT7zy1EftfBJ=0UnB2*`deCx z9C!s(_}(CzFEVAN0t3YoeB`U`(QmE0)>T{hTm_~LwrP2qxK(aiRvWCfujm*44b1r6 z_lp;weiByg+p*|C)(rhFJyTP2m`p4}f6v8pB?}Mt37X~^uI=K}B)EyU+CJH6cN;w^ zl!I+4ImBMDe_I(3?}o2KfFaQ^`gW(W~fumvomwkv2vu8iF2li`kA^{#2 z@Oj(L5A6dhBKoAI9>&#u69eI~*YWGE=Wn-ibxxP;jy2V1x!FCaku?%+Ks;;lbT^xPXurQ3t;d!3-jO z-K#%?gE?Rf2sMMD>;&e>(N-wKAJG4QB}_jU?8c!|uC#E?=XNH-`l40>Zk-h$&^GrA zdu&H|XuEx5+xcJFllBQ8-XNuTU^JM(u z1I@-~e_-_=CJnrBU4IAv@8bVsZR`4bpI%grML7Ka3(PNKmg(v)p4EAfTB0|=BY*G) zs?mN|ap*i2y`DusWzpn1PVO&Q^jQ`izMkWJ0*l_kp=+*IGj4*zuJ-z?&CJm@z&3_+ z1C0NpT5bdUghlUHp;fE&M(Dl48=%(t*bNG~+twrP1{E!#JCx}2`WTpejf%5Cf6bzA zv8Zz`$N3@_eThZKU&nDin?<*>Xv6g!=TlkqVHO>91IPIU7QLHAd*8@$UcjQav1q58 z)SSn`u{SAZ*~c&GW8sFI6#h);H!5_S@VaR?E99m&X@|mQ7PW5SXs>6{+COo$t5~$t ztsLzcEczjXPJ`4&g(cA%)8IK4ow`X)dnnw!iPKrTjYBuE=%7Dyw3l$`n%gTOIZu0IhRDn>kb7Bq_pgld%|rbhHjv3VFY`k5 zS9pBNU0(B0KgA6cKn?r^Hn2gt8`@o}Zs>1^YXKkKr84w3BnRzom7z&RzpfUjA~oQw zSnk7^dsKbcwjC|yC((gYr~#)2HQ>}({Z)vWI!K7n_RVdAehWk|gn1W1T?R_d+ z6a2aoE?a8WW|ah-HlyLm&0g2wc_H9he9(mUL?PX{XbUH#*5=GD<#6^ccjm79RdS|0 zh{MkLKQ-W@NLkAE2N)@eAVuu`@?D6r>K{_ECsTNw^U|2T`jBeO%6*vmus0=mTW(UD5m2go)0>1n^GZtgmNsL1= zh7HL@DJz1zN%Wk@V1wq`;`vaBPo*DMSxRt$*B)1Sj17?z(-H3>_D*gj0z?*t$Wr>!u8L1`vtqNV8N$6q5S|d=_TQ`w&g7&-=v1ekT=^C&g`4Rpg_$2~ z-o@GX)Y~fOrM=u?|52JjSZS3S#tjY$=<*IHfE{k30lUD6p+F(r)Nr{`psC?T8-|nL zQw@XQ0^8qH#ZwXzQg>Z;5|!#QmwwKU3!kTnDRS5s%I=ngJotr5h^R2Js}wZ|H5twJ|9;6z z;X)HiVO9`W@C}ZL{$_98_%xokf4oqW@u0y%#6&UIL~9z>sjP4qa2lF+P+f zSab)APORbNp07e@`~h{|%A!O2D>xHvo<%pY=(j9-@BoEex@-1p7JZdPn+K{mi#tJQ z4pjIC-57d|MTZUIXqU3+78b1@%yG`KXd8=m8^Up(%c8fi=npJ9V<;#0k1YB*iymCd zasC~Pe!!xMVI1enSachUnsprK^I7y?EIMX5$N6V0`UHy(AHi{6&Y};nX#aYS^FkK= zD~tAM;5g4?(OX%xqLJf#6pLQNqF=J;)Fw{u?^*OC1|18NN2=rGSok%IzQv->CPUh(!mE;b<4J=v^$@Yb?jP zl|?tP=sx2(&a+tbIu`w!MGqa%$z98$J6Lqe1dj7>SoCcbN>@5(wy2RjU-(=83VV0@Z>QMMQizY0Nb`y(^v^m<} zv1l)cqdkX3KWEWJF30&*7M&5}Xdhxx&*NxsVbS`D9PQ;S+HDd?yMjeOR-tqyJ0Dm0 zB%v>{=-~;D_I?(1k{s=gDwN{Ju>Ck|tY*>9lR4TmS@a_oO-0B2Do)0r`3O1^q}K8+Epz2GK-E{#BpBEqIa`smlHV7N3!Tz z7JZjR%@aAfXS3+vS+r&`$GMe7Z)DNWS#Z;9 zh2wlYi~gBKzgMA@)lWTDA(znKvgqq9I`%X*=O#G)G(~Ku{laDyEulS5S8yiuXck?s zM8$sLlhYM`MH%CPKjF|dEcz~sPCSF-dZcs%Gg$N=EL!_B zj`I>0-OQr>&f+*{S@bU~+I0oTc@B%-%%b13==8HWxmUC3XDs@o0>}9Z7JZ*Z<10DN zm$K*^ENYy?aXyblpJ&nLpL3jl%A$|6Xx+IS=VdH=+GLH5P7X6S#7p&qqKg*&&Ud_?o&7#_`Iob^@I_NhX?Ij$#=C>T_sVw>~ ziyn75$9XG@9=L|1y^}@914p}#MQg6$XfI;XZ&`HN?>NqHvFNc^avh zMGw4*lY1G9zQm#dyI${&Y`9u{;1?IL*idjZz$J;pcFcnHgVz`ad>P;4%@Mn(p3>JNW zMSI`Qah|P0sg!%o?FwrUx|2mG-JzhRlIjI2l!}*6v1sjI6r726A%ix-pZ}uBuZZ?L zC9Non9^R&~ByFtMvFIl(df=TL=QS+)E{jh5E64c~7JZFHwZCzkf6k)MvgoM0IL>FV z=s#Gr_HK^z5*FReqW$jSIA>Y(FD%;iUXJq|7QLB8zh}|u_i=KsX3@`B^hcXH&R4ML z`z#vY!g0QoMc-gi<9?3wc`W)oi#9*NasDZTj)f;4P(?yfVjTV;hc0K)2N-l540uQp zMX5Zw@F9gl+;HSuDDfMYG#D&M&a&v^P20 z%_@|Z{px=!W*Kdr=lz@G{FDl%<+t%I6|E=)E>WW5mtx*jp~TsGo8w$iqJs0MDik@7 zg&+Ngv&O3bsN@RHo!(KP#QB(a)SR(AsYC_m{_m0u7Dq2#x>Qe=0GRARARJg`g6^fk4LgQx& zt*9=xM1_*h+dflhMVzhA6`WD$Mkpvzq4Ou7t2vK@AAOm{*~s^ClHaPB-dng;vD*CtoY%66gDssIas1Uj;3V;4l8G zkV~AOQPGk$4*o{Xc?|qcg%antl&H}8*l#(`H>yzL{J9bpoELq^alT8166ebA6|`iH zpQ=zA!N*l7aUS>s$N85klsLbtLIvl`nAy(2~MGs8BM+AsrR8#Q9zoic@0IAQK}%u(q)wbQ z-cZpZ=doaRR?&(KcSUD~T(ZW;DwK3Spi)IEIA5wn#Wd;IML|oPXDU&#x~}V@>XG1F z-Ie29*KJXvLT9_Xn)6t=sJlulVdtk+v^0W0>Y?U52Ch({ zr1QTK4gQIm`hJtf!-!s!`nFB&IqB_L{anj7EXOkNM~f}nj@gC>n>LvX;i|>)fz|Cn z9p>MeII?YIX42su6J9>$q|=#9+R$t_W}CLFn_4=rurx*KI!02@q9X$ zadq3t>z?hYo}SUNMvMPV>j4a4{nEJBmf0`?0a;)D`bwrF$<#o)iLqg0)aB^?~YZ_K5%S&qndWooOmyIdbWa=*khBX5C-?o zi4W}8UU696FEJikN9gr~CHV>jgNC&Y=gF3Rg2+-0=1AE1GqZc!pL6jmE8xM|$tF1N!uX2npy{xAc5*b- zTojMN6KBQy!Is&{Q84YI`0a4gGw}<0TaM|*G|RO0nBiKGn(qyP`!0^xz_q`KUj=uh z;sfEW#qq^(+9B?MHUv(u=+|BdY-!QW!P2$bqZ+Jw*l^&|pCl>+6I(UDM-W@JGB|bLD zt`wf&Q~i`T-nx-|@T=Hs1U%Bk`C%GNoD$Gldka?OFT z>RQu7yfivyfUz7GsbIi zSav$&iCf3&z2MTZdX+y~K{66QiO&vXUq9QP3`>5U>;q$3G>*fT3MX3#U>(r_jvw6r z2M&76Ao_Ox02Xb-&W!Ku_&=zpYyNLz1Tc@-LtQKU&wbQ2bxt7F$T_;6Hw;`gJ;#p4 zaLG4QS-fd{Dla7bpOY7g7{3HVAjH_iF#Lf zC1D-bw&a}n#E$V$OIv=}3*uO{6C+cPqz}5}+IA~rR?+?yHb_`ZrjH^LV zwmjwHcpN$}RiHDR_=#<|FN`NU!NZrv&pNVQA}uu!T@KCSFSoQ?58<+t;-`SVH2xCI zToykcj(y(VuWiBd_+u6EP_D(FH)+Qd6MXE~KsfY<_;5J-()fFUT`w(EM+F#0b}V!w z;`>&62C(@UV?4Z@HAne*s;bHSRq+Y4+Jjz11&Y6q8^ECrcT^iI3ZZ>4m7R#Jgg?9i zN_5zt5~gq^{23O+0xEtmP7fSH^4_7pRd_FsG`oq2==U zs&FGR7Kms7-M?&j09J=&DH97$ve^9ORa9G(fIl5nPe}+SAYqCEqtw}1oTnD|cOVq3Mu3MAW zDq-oviCV5jFSz%*1Xdt}m8gTh-OL`)`+9XJ>R@H3WTT=JL|+LDQpwKnTBqb7WwV`c zBpQ@TtVt((!Vd$ISUPI2rVHoXkT^Y%c5^!Uvwi`-wEm{VbXfLSqA{2s!ZTs%O^M-3 z_>>_*igduujc37(TN0z%j=DMVRIfm#&{dmZ{@>K2LSE4sHvUaLwB;t9q32y{R&}uK zy#$*7*^nk`)5GSolRe<79_pdP!RZXi+GL%ow{>tyZBpr_O>kc!*&WvQOb%2yM-v== z4>NUP)vzQpcfYwuJv&Fj&R)q8O0m;kP>XGXwY`(|O41QOPj-VJUQo}PCcq}0;D|oS zVM-?JUgYE>+6n5mt4DS?tQwIVr5Y9Ah1R_k=4ETDk`2`X)2{83EeWk^N-U^ApY1whV~#(ACPQ>B@ZWtDZ%^HVAGm6g0)7jO)&R*B{*3jtqFcm z5Q$Ed0(TJgrh&;BYbukY6xf-H&!@xE#}Z9SaOX{l&J?`47ERUdN7aCH?nvluN4%AI zyJH~S`?Ew03hyKa^)oa}cP%_Oa4MpJlvZBL{vs6yr~OTZkDayCVX-ssY7y1?Y$MTb@r0P___ZT>*}ys2&93 ztPQjyYTOL_)g@K4xd}u#58{ZF6wTFODVi(EWiWp+c>0h45zLk3rC1)+0zKp)#pg{R z;_%HX&U_d)5IVZIz13TrkV;E z4KIJDkVd-Hea@hzAC6XZrMdLmyvhc}4Zotn=vuw_!{e$Ju=oo`MYxqgn}-&EH#&%U z?=KT+rP*qWRWUt?luY;0mx*pw?NHd}COw$^Rbq;YcQf4mRidkcvaR>mi3x)e`IM2% zTbWea$z!3@!2`>zp}Ahl!Xww1nRoCI!~acJ+w$-bHRgCRJk7OYE*_5Tx}j?imzVr% ztfTHpEK#|k3r777T>w~G^;L{%*&oy|fV8yi2a@i(?gx@%7}#aq59EPOihH^M`K6UV zke1Nb_rY)-OiD|?ic+rqDs-|6kgI;LE=eGxlTMI;jdHCoC5*d|SZ zsIRqL#sgc3bvzI#E#xd(+^+?XQ6q?@Jdgnm??x6Ci+LbzsaJBF79g7(Pj1tK(OtJ` zsupsa7L3XTJy1Kbq6Y$~lw8tPs9e+4C~eV#^`ZS&af`+@@waHI7IKTmpv5g(Koha9 z2kK6qBsXTkWKCjE7BFqvPOncMhAyDRGy^Za*fGb_4O_$0D0r$qF|}>@e#uKKs_;}Q z7Q@|H40mm=?pPLV>z5oUs%PEc!^z2kss)~u5ho4bcCp$^??Dc3f3b;0c}Dc>*1ns)*Y@oK-Jsf#oAeC7`#BiU$p4~ zi;JNQ@4kBCKyF zIW~~&NUE0wlbsg)@zHQ=7ON|JIt!ksZJC-JGtgX^J5_g&_skgHl*;DuvQjD+i)CQ* z)a2M9&Y~r!SeNsk?ndpU>e2E@fz@ZtJOhOEJ|8(0j@f zEXXc6B>9hk4&xje1^4C^zD&N_8J4X`HncY{lKME-{5r!EE0U@Kr)u7avz7S9X-bC> zg}lZ<*}_+-g4YEW9Hw?gTphYY|3!+)FjAE9>I3p|T-0=mhg; zBx{598X+onePHZK3QPE2f=fepcj6^T?T zqZ!$pW9PlJ>uI@6M#JpiG+M+FQsMNIT69a(F~_%1wC9t-hHzK)U2*m^pf&EV~^ zd^#_J*+4-sc$Zk1GIOTqWpN;KX&nt*ZUn8fl70JXS-jzuvg}MsPm91OSdZL=9*;s$ zp&ahdY%iboG=UF-=Vv8*SBVQNs6ocf<9}{Ce-P|gXrq?MliY$ zAkAUQG09PrToZ5AVm!u*ndhPGSl-Y*EAOU^yk(?w=@x(Y9c1YBGtmftJtld6U%X6{ z!KEUtVZcvivbanfo18nqTy~mRBQhBaj|=h2te3WPHg0U^V2O0j?Bv)6l(*RsKrbieA6`?1NYh<-YD{BC+p$D zvy!#)o?j@h;%;2Qs}T;)B^wKL0vyV#STYIVB`*Vnawx8|dvNGPU7NEsxgw$_#fuet z@DXexYT{pZK^NW4#!{12%aebG$|cG8eq@-?xac!$?**{wPHQ6cS(fZ4hbuHd`j-p> zXW##QU>)IKIW+B<=Gu61+|w<~wKSXsaO-w!2~1v^tgH?~=_q{-X8Qfwqfnp61)}fD zWEYsXA<>mK1YEQ3urY&Y9s5sVxJ~Y2cA?#YiqV>CT=j5^pjHT3^nryTExJH)!=Prg z^CfW}dMz%XxNlH5n~ysOmA2)*gQ5i;&s2(ygGxXn;2BM&*gL3Ni~-y@sK6%ZmBK=I z@aQ#(({?q8$2Fbdmj@|%i=s_qpxe+fdwZE4RJ@ruBaotW&aOh`F}n&qWoCdhIj1r9 zW=+G%;}#e1G@H1lr93yQX?83h^IXqp@l%5U20&T-56hC5!?kZECV-vCq@G^QSSDVb zm5eJaTL!&KDAW;E5CY7Tp2218N;nQWtpg=ZvYS#pDrqTVUUFlLM4S zqp-Dc2HrSO`4+b50V_^ol))B#;iZ!>Yi-ZNljV4^C{zdKLffj6<7q7jL_dBX4~$Cd zKwy*g58x9sf1RgbzkVe?Q_*97vNn)*^)*NSiMs&bG>bcSXM!hz_NX$r$uyqCZTd>0O=h`@og)Z~QY6$6U4A43I}Kw5OO2I#v; zL5tIGG%Qr1`r*j~0-2t34^AAcs|2fylP;JH4Lcf!pQF%4-;8Fzu|qoC zIS3kFPBwHN?;X-%JWPE#+1Pn9zMKrp#mg7yk(deserializer: D) -> Result diff --git a/crates/l2/utils/prover/mod.rs b/crates/l2/utils/prover/mod.rs new file mode 100644 index 000000000..a0063165f --- /dev/null +++ b/crates/l2/utils/prover/mod.rs @@ -0,0 +1,2 @@ +pub mod proving_systems; +pub mod save_state; diff --git a/crates/l2/utils/prover/proving_systems.rs b/crates/l2/utils/prover/proving_systems.rs new file mode 100644 index 000000000..2b13ae29d --- /dev/null +++ b/crates/l2/utils/prover/proving_systems.rs @@ -0,0 +1,136 @@ +use crate::proposer::errors::ProverServerError; +use serde::{Deserialize, Serialize}; +use std::fmt::Debug; + +use risc0_zkvm::sha::Digestible; +use sp1_sdk::HashableKey; + +#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)] +/// Enum used to identify the different proving systems. +pub enum ProverType { + RISC0, + SP1, +} + +#[derive(Serialize, Deserialize, Clone, Debug)] +pub struct Risc0Proof { + pub receipt: Box, + pub prover_id: Vec, +} + +pub struct Risc0ContractData { + pub block_proof: Vec, + pub image_id: Vec, + pub journal_digest: Vec, +} + +impl Risc0Proof { + pub fn new(receipt: risc0_zkvm::Receipt, prover_id: Vec) -> Self { + Risc0Proof { + receipt: Box::new(receipt), + prover_id, + } + } + + pub fn contract_data(&self) -> Result { + // If we run the prover_client with RISC0_DEV_MODE=0 we will have a groth16 proof + // Else, we will have a fake proof. + // + // The RISC0_DEV_MODE=1 should only be used with DEPLOYER_CONTRACT_VERIFIER=0xAA + let block_proof = match self.receipt.inner.groth16() { + Ok(inner) => { + // The SELECTOR is used to perform an extra check inside the groth16 verifier contract. + let mut selector = + hex::encode(inner.verifier_parameters.as_bytes().get(..4).ok_or( + ProverServerError::Custom( + "Failed to get verify_proof_selector in send_proof()".to_owned(), + ), + )?); + let seal = hex::encode(inner.clone().seal); + selector.push_str(&seal); + hex::decode(selector).map_err(|e| { + ProverServerError::Custom(format!("Failed to hex::decode(selector): {e}")) + })? + } + Err(_) => vec![32; 0], + }; + + let mut image_id: [u32; 8] = [0; 8]; + for (i, b) in image_id.iter_mut().enumerate() { + *b = *self.prover_id.get(i).ok_or(ProverServerError::Custom( + "Failed to get image_id in handle_proof_submission()".to_owned(), + ))?; + } + + let image_id: risc0_zkvm::sha::Digest = image_id.into(); + let image_id = image_id.as_bytes().to_vec(); + + let journal_digest = Digestible::digest(&self.receipt.journal) + .as_bytes() + .to_vec(); + + Ok(Risc0ContractData { + block_proof, + image_id, + journal_digest, + }) + } +} + +#[derive(Serialize, Deserialize, Clone)] +pub struct Sp1Proof { + pub proof: Box, + pub vk: sp1_sdk::SP1VerifyingKey, +} + +impl Debug for Sp1Proof { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("Sp1Proof") + .field("proof", &self.proof) + .field("vk", &self.vk.bytes32()) + .finish() + } +} + +pub struct Sp1ContractData { + pub public_values: Vec, + pub vk: Vec, + pub proof_bytes: Vec, +} + +impl Sp1Proof { + pub fn new( + proof: sp1_sdk::SP1ProofWithPublicValues, + verifying_key: sp1_sdk::SP1VerifyingKey, + ) -> Self { + Sp1Proof { + proof: Box::new(proof), + vk: verifying_key, + } + } + + pub fn contract_data(&self) -> Result { + let vk = self + .vk + .bytes32() + .strip_prefix("0x") + .ok_or(ProverServerError::Custom( + "Failed to strip_prefix of sp1 vk".to_owned(), + ))? + .to_string(); + let vk_bytes = hex::decode(&vk) + .map_err(|_| ProverServerError::Custom("Failed hex::decode(&vk)".to_owned()))?; + + Ok(Sp1ContractData { + public_values: self.proof.public_values.to_vec(), + vk: vk_bytes, + proof_bytes: self.proof.bytes(), + }) + } +} + +#[derive(Serialize, Deserialize, Clone, Debug)] +pub enum ProvingOutput { + RISC0(Risc0Proof), + SP1(Sp1Proof), +} diff --git a/crates/l2/utils/save_prover_state.rs b/crates/l2/utils/prover/save_state.rs similarity index 95% rename from crates/l2/utils/save_prover_state.rs rename to crates/l2/utils/prover/save_state.rs index 3894109f2..0505adc71 100644 --- a/crates/l2/utils/save_prover_state.rs +++ b/crates/l2/utils/prover/save_state.rs @@ -9,9 +9,11 @@ use std::{ io::{BufWriter, Write}, }; +use super::proving_systems::ProvingOutput; + #[derive(Serialize, Deserialize, Debug)] pub enum StateType { - Proof(Box<(risc0_zkvm::Receipt, Vec)>), + Proof(ProvingOutput), AccountUpdates(Vec), } @@ -177,8 +179,8 @@ pub fn read_state_file_for_block_number( let state = match state_file_type { StateFileType::Proof => { - let state: (risc0_zkvm::Receipt, Vec) = serde_json::from_str(&buf)?; - StateType::Proof(Box::new(state)) + let state: ProvingOutput = serde_json::from_str(&buf)?; + StateType::Proof(state) } StateFileType::AccountUpdates => { let state: Vec = serde_json::from_str(&buf)?; @@ -297,6 +299,7 @@ pub fn block_number_has_state_file( } #[cfg(test)] +#[allow(clippy::expect_used)] mod tests { use ethrex_blockchain::add_block; use ethrex_storage::{EngineType, Store}; @@ -304,7 +307,7 @@ mod tests { use risc0_zkvm::sha::Digest; use super::*; - use crate::utils::test_data_io; + use crate::utils::{prover::proving_systems::Risc0Proof, test_data_io}; use std::fs::{self}; #[test] @@ -360,9 +363,13 @@ mod tests { StateFileType::AccountUpdates, )?; + let risc0_proof = ProvingOutput::RISC0(Risc0Proof { + receipt: Box::new(receipt.clone()), + prover_id: vec![5u32; 8], + }); write_state_in_block_state_path( block.header.number, - StateType::Proof(Box::new((receipt.clone(), vec![5u32; 8]))), + StateType::Proof(risc0_proof), StateFileType::Proof, )?; } @@ -436,11 +443,10 @@ mod tests { StateType::AccountUpdates(_) => unimplemented!(), }; - assert_eq!( - read_proof_updates_blk2.0.journal.bytes, - receipt.journal.bytes - ); - assert_eq!(read_proof_updates_blk2.1, vec![5u32; 8]); + if let ProvingOutput::RISC0(risc0_proof) = read_proof_updates_blk2 { + assert_eq!(risc0_proof.receipt.journal.bytes, receipt.journal.bytes); + assert_eq!(risc0_proof.prover_id, vec![5u32; 8]); + } fs::remove_dir_all(default_datadir()?)?; From 992191a6c4a545118b6e439fa74c60acb8c4a975 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Thu, 12 Dec 2024 12:19:37 -0300 Subject: [PATCH 21/29] feat: module that saves proofs from different proving systems --- crates/l2/utils/prover/proving_systems.rs | 2 +- crates/l2/utils/prover/save_state.rs | 271 +++++++++++++--------- 2 files changed, 168 insertions(+), 105 deletions(-) diff --git a/crates/l2/utils/prover/proving_systems.rs b/crates/l2/utils/prover/proving_systems.rs index 2b13ae29d..d9bb92c27 100644 --- a/crates/l2/utils/prover/proving_systems.rs +++ b/crates/l2/utils/prover/proving_systems.rs @@ -5,7 +5,7 @@ use std::fmt::Debug; use risc0_zkvm::sha::Digestible; use sp1_sdk::HashableKey; -#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)] +#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq, Serialize, Deserialize)] /// Enum used to identify the different proving systems. pub enum ProverType { RISC0, diff --git a/crates/l2/utils/prover/save_state.rs b/crates/l2/utils/prover/save_state.rs index 0505adc71..67fc87739 100644 --- a/crates/l2/utils/prover/save_state.rs +++ b/crates/l2/utils/prover/save_state.rs @@ -1,6 +1,8 @@ +use crate::utils::prover::proving_systems::{ProverType, ProvingOutput}; use directories::ProjectDirs; use ethrex_storage::AccountUpdate; use serde::{Deserialize, Serialize}; +use std::ffi::OsString; use std::fs::{create_dir, read_dir, File}; use std::io::{BufReader, Read}; use std::path::{Path, PathBuf}; @@ -9,17 +11,15 @@ use std::{ io::{BufWriter, Write}, }; -use super::proving_systems::ProvingOutput; - #[derive(Serialize, Deserialize, Debug)] pub enum StateType { Proof(ProvingOutput), AccountUpdates(Vec), } -#[derive(Serialize, Deserialize, Debug, Clone, Copy)] +#[derive(Serialize, Deserialize, Debug, Clone)] pub enum StateFileType { - Proof, + Proof(ProverType), AccountUpdates, } @@ -38,6 +38,25 @@ fn default_datadir() -> Result> { create_datadir("test_datadir") } +#[inline(always)] +fn get_proof_file_name_from_prover_type(prover_type: &ProverType, block_number: u64) -> String { + match prover_type { + ProverType::RISC0 => format!("proof_risc0_{block_number}.json"), + ProverType::SP1 => format!("proof_sp1_{block_number}.json").to_owned(), + } +} + +#[inline(always)] +fn get_block_number_from_path(path_buf: &Path) -> Result> { + let block_number = path_buf + .file_name() + .ok_or_else(|| Box::::from("Error: No file_name()"))? + .to_string_lossy(); + + let block_number = block_number.parse::()?; + Ok(block_number) +} + #[inline(always)] fn create_datadir(dir_name: &str) -> Result> { let path_buf_data_dir = ProjectDirs::from("", "", dir_name) @@ -55,18 +74,26 @@ fn get_state_dir_for_block(block_number: u64) -> Result String { + match state_file_type { + StateFileType::AccountUpdates => format!("account_updates_{block_number}.json"), + // If we have more proving systems we have to match them an create a file name with the following structure: + // proof__.json + StateFileType::Proof(prover_type) => { + get_proof_file_name_from_prover_type(prover_type, block_number) + } + } +} + #[inline(always)] fn get_state_file_path( path_buf: &Path, block_number: u64, - state_file_type: StateFileType, + state_file_type: &StateFileType, ) -> PathBuf { - match state_file_type { - StateFileType::AccountUpdates => { - path_buf.join(format!("account_updates{block_number}.json")) - } - StateFileType::Proof => path_buf.join(format!("proof_{block_number}.json")), - } + let file_name = get_state_file_name(block_number, state_file_type); + path_buf.join(file_name) } /// CREATE @@ -84,14 +111,9 @@ fn create_state_file_for_block_number( } } - let block_number = path_buf - .file_name() - .ok_or_else(|| Box::::from("Error: No file_name()"))? - .to_string_lossy(); - - let block_number = block_number.parse::()?; + let block_number = get_block_number_from_path(&path_buf)?; - let file_path: PathBuf = get_state_file_path(&path_buf, block_number, state_file_type); + let file_path: PathBuf = get_state_file_path(&path_buf, block_number, &state_file_type); if let Err(e) = create_dir(&path_buf) { if e.kind() != std::io::ErrorKind::AlreadyExists { @@ -104,7 +126,7 @@ fn create_state_file_for_block_number( } /// WRITE -pub fn write_state_in_block_state_path( +pub fn write_state( block_number: u64, state_type: StateType, state_file_type: StateFileType, @@ -127,8 +149,7 @@ pub fn write_state_in_block_state_path( Ok(()) } -fn get_latest_block_number_and_path_from_state_path( -) -> Result<(u64, PathBuf), Box> { +fn get_latest_block_number_and_path() -> Result<(u64, PathBuf), Box> { let data_dir = default_datadir()?; let latest_block_number = read_dir(&data_dir)? .filter_map(|entry| { @@ -158,18 +179,18 @@ fn get_block_state_path(block_number: u64) -> Result Result> { - let (block_number, _) = get_latest_block_number_and_path_from_state_path()?; + let (block_number, _) = get_latest_block_number_and_path()?; Ok(block_number) } /// READ -pub fn read_state_file_for_block_number( +pub fn read_state( block_number: u64, state_file_type: StateFileType, ) -> Result> { // TODO handle path not found let block_state_path = get_block_state_path(block_number)?; - let file_path: PathBuf = get_state_file_path(&block_state_path, block_number, state_file_type); + let file_path: PathBuf = get_state_file_path(&block_state_path, block_number, &state_file_type); let inner = File::open(file_path)?; let mut reader = BufReader::new(inner); @@ -178,7 +199,7 @@ pub fn read_state_file_for_block_number( reader.read_to_string(&mut buf)?; let state = match state_file_type { - StateFileType::Proof => { + StateFileType::Proof(_) => { let state: ProvingOutput = serde_json::from_str(&buf)?; StateType::Proof(state) } @@ -192,21 +213,21 @@ pub fn read_state_file_for_block_number( } /// READ -pub fn read_latest_state_file( +pub fn read_latest_state( state_file_type: StateFileType, ) -> Result> { - let (latest_block_state_number, _) = get_latest_block_number_and_path_from_state_path()?; - let state = read_state_file_for_block_number(latest_block_state_number, state_file_type)?; + let (latest_block_state_number, _) = get_latest_block_number_and_path()?; + let state = read_state(latest_block_state_number, state_file_type)?; Ok(state) } /// DELETE -pub fn delete_state_file_for_block_number( +pub fn delete_state_file( block_number: u64, state_file_type: StateFileType, ) -> Result<(), Box> { let block_state_path = get_block_state_path(block_number)?; - let file_path: PathBuf = get_state_file_path(&block_state_path, block_number, state_file_type); + let file_path: PathBuf = get_state_file_path(&block_state_path, block_number, &state_file_type); std::fs::remove_file(file_path)?; Ok(()) @@ -215,28 +236,26 @@ pub fn delete_state_file_for_block_number( pub fn delete_latest_state_file( state_file_type: StateFileType, ) -> Result<(), Box> { - let (latest_block_state_number, _) = get_latest_block_number_and_path_from_state_path()?; + let (latest_block_state_number, _) = get_latest_block_number_and_path()?; let latest_block_state_path = get_block_state_path(latest_block_state_number)?; let file_path: PathBuf = get_state_file_path( &latest_block_state_path, latest_block_state_number, - state_file_type, + &state_file_type, ); std::fs::remove_file(file_path)?; Ok(()) } -pub fn delete_state_path_for_block_number( - block_number: u64, -) -> Result<(), Box> { +pub fn prune_state(block_number: u64) -> Result<(), Box> { let block_state_path = get_block_state_path(block_number)?; std::fs::remove_dir_all(block_state_path)?; Ok(()) } -pub fn delete_latest_state_path() -> Result<(), Box> { - let (latest_block_state_number, _) = get_latest_block_number_and_path_from_state_path()?; +pub fn prune_latest_state() -> Result<(), Box> { + let (latest_block_state_number, _) = get_latest_block_number_and_path()?; let latest_block_state_path = get_block_state_path(latest_block_state_number)?; std::fs::remove_dir_all(latest_block_state_path)?; Ok(()) @@ -246,20 +265,15 @@ pub fn path_has_state_file( state_file_type: StateFileType, path_buf: &Path, ) -> Result> { - let file_prefix = match state_file_type { - StateFileType::AccountUpdates => "account_updates", - StateFileType::Proof => "proof", - }; + // Get the block_number from the path + let block_number = get_block_number_from_path(path_buf)?; + let file_name_to_seek: OsString = get_state_file_name(block_number, &state_file_type).into(); for entry in std::fs::read_dir(path_buf)? { let entry = entry?; - let file_name = entry.file_name(); - let lossy_string = file_name.to_string_lossy(); - - let matches_prefix = lossy_string.starts_with(file_prefix); - let matches_suffix = lossy_string.ends_with(".json"); + let file_name_stored = entry.file_name(); - if matches_prefix && matches_suffix { + if file_name_stored == file_name_to_seek { return Ok(true); } } @@ -272,25 +286,14 @@ pub fn block_number_has_state_file( block_number: u64, ) -> Result> { let block_state_path = get_block_state_path(block_number)?; - let file_path: PathBuf = get_state_file_path(&block_state_path, block_number, state_file_type); - - let mut path_buf = file_path.clone(); - path_buf.pop(); + let file_name_to_seek: OsString = get_state_file_name(block_number, &state_file_type).into(); - let file_prefix = match state_file_type { - StateFileType::AccountUpdates => "account_updates", - StateFileType::Proof => "proof", - }; - - for entry in std::fs::read_dir(path_buf)? { + for entry in std::fs::read_dir(block_state_path)? { let entry = entry?; - let file_name = entry.file_name(); - let lossy_string = file_name.to_string_lossy(); + let file_name_stored = entry.file_name(); - let matches_prefix = lossy_string.starts_with(file_prefix); - let matches_suffix = lossy_string.ends_with(".json"); - - if matches_prefix && matches_suffix { + println!("FILE_NAME{file_name_stored:?} || TO_SEEK{file_name_to_seek:?}"); + if file_name_stored == file_name_to_seek { return Ok(true); } } @@ -305,9 +308,13 @@ mod tests { use ethrex_storage::{EngineType, Store}; use ethrex_vm::execution_db::ExecutionDB; use risc0_zkvm::sha::Digest; + use sp1_sdk::{HashableKey, PlonkBn254Proof, ProverClient, SP1Proof, SP1PublicValues}; use super::*; - use crate::utils::{prover::proving_systems::Risc0Proof, test_data_io}; + use crate::utils::{ + prover::proving_systems::{Risc0Proof, Sp1Proof}, + test_data_io, + }; use std::fs::{self}; #[test] @@ -336,45 +343,88 @@ mod tests { let mut account_updates_vec: Vec> = Vec::new(); - // Generic Receipt - let receipt = risc0_zkvm::Receipt::new( - risc0_zkvm::InnerReceipt::Fake(risc0_zkvm::FakeReceipt::new( - risc0_zkvm::ReceiptClaim { - pre: risc0_zkvm::MaybePruned::Pruned(Digest::default()), - post: risc0_zkvm::MaybePruned::Pruned(Digest::default()), - exit_code: risc0_zkvm::ExitCode::Halted(37 * 2), - input: risc0_zkvm::MaybePruned::Value(None), - output: risc0_zkvm::MaybePruned::Value(None), - }, + // Generic RISC0 Receipt + let risc0_proof = Risc0Proof { + receipt: Box::new(risc0_zkvm::Receipt::new( + risc0_zkvm::InnerReceipt::Fake(risc0_zkvm::FakeReceipt::new( + risc0_zkvm::ReceiptClaim { + pre: risc0_zkvm::MaybePruned::Pruned(Digest::default()), + post: risc0_zkvm::MaybePruned::Pruned(Digest::default()), + exit_code: risc0_zkvm::ExitCode::Halted(37 * 2), + input: risc0_zkvm::MaybePruned::Value(None), + output: risc0_zkvm::MaybePruned::Value(None), + }, + )), + vec![37u8; 32], )), - vec![37u8; 32], - ); - - // Write all + prover_id: vec![5u32; 8], + }; + + // The following is a dummy elf to get an SP1VerifyingKey + // It's not the best way, but didn't found an easier one. + // Else, an elf file has to be saved for this test. + let magic_bytes1: &[u8] = &[ + 0x7f, 0x45, 0x4c, 0x46, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + ]; + let magic_bytes2: &[u8] = &[ + 0x02, 0x00, 0xF3, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD4, 0x8E, 0x21, 0x00, 0x34, 0x00, + 0x00, 0x00, + ]; + let magic_bytes3: &[u8] = &[ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x20, 0x00, 0x07, 0x00, + 0x28, 0x00, + ]; + + let prover = ProverClient::mock(); + let (_pk, vk) = + prover.setup(&[magic_bytes1, magic_bytes2, magic_bytes3, &[0; 256]].concat()); + + let sp1_proof = Sp1Proof { + proof: Box::new(sp1_sdk::SP1ProofWithPublicValues { + proof: SP1Proof::Plonk(PlonkBn254Proof { + public_inputs: ["1".to_owned(), "2".to_owned()], + encoded_proof: "d".repeat(4), + raw_proof: "d".repeat(4), + plonk_vkey_hash: [1; 32], + }), + stdin: sp1_sdk::SP1Stdin::new(), + public_values: SP1PublicValues::new(), + sp1_version: "dummy".to_owned(), + }), + vk, + }; + + // Write all the account_updates and proofs for each block for block in &blocks { let account_updates = ExecutionDB::get_account_updates(blocks.last().unwrap(), &store).unwrap(); account_updates_vec.push(account_updates.clone()); - write_state_in_block_state_path( + write_state( block.header.number, StateType::AccountUpdates(account_updates), StateFileType::AccountUpdates, )?; - let risc0_proof = ProvingOutput::RISC0(Risc0Proof { - receipt: Box::new(receipt.clone()), - prover_id: vec![5u32; 8], - }); - write_state_in_block_state_path( + let risc0_data = ProvingOutput::RISC0(risc0_proof.clone()); + write_state( + block.header.number, + StateType::Proof(risc0_data), + StateFileType::Proof(ProverType::RISC0), + )?; + + let sp1_data = ProvingOutput::SP1(sp1_proof.clone()); + write_state( block.header.number, - StateType::Proof(risc0_proof), - StateFileType::Proof, + StateType::Proof(sp1_data), + StateFileType::Proof(ProverType::SP1), )?; } - let (latest_block_state_number, _) = get_latest_block_number_and_path_from_state_path()?; + // Check if we the latest block_number saved matches the latest block in the chain.rlp + let (latest_block_state_number, _) = get_latest_block_number_and_path()?; assert_eq!( latest_block_state_number, @@ -382,7 +432,7 @@ mod tests { ); // Delete account_updates file - let (_, latest_path) = get_latest_block_number_and_path_from_state_path()?; + let (_, latest_path) = get_latest_block_number_and_path()?; assert!(path_has_state_file( StateFileType::AccountUpdates, @@ -407,19 +457,18 @@ mod tests { )?); // Delete latest path - delete_latest_state_path()?; - let (latest_block_state_number, _) = get_latest_block_number_and_path_from_state_path()?; + prune_latest_state()?; + let (latest_block_state_number, _) = get_latest_block_number_and_path()?; assert_eq!( latest_block_state_number, blocks.last().unwrap().header.number - 1 ); // Read account_updates back - let read_account_updates_blk2 = - match read_state_file_for_block_number(2, StateFileType::AccountUpdates)? { - StateType::Proof(_) => unimplemented!(), - StateType::AccountUpdates(a) => a, - }; + let read_account_updates_blk2 = match read_state(2, StateFileType::AccountUpdates)? { + StateType::Proof(_) => unimplemented!(), + StateType::AccountUpdates(a) => a, + }; let og_account_updates_blk2 = account_updates_vec.get(2).unwrap(); @@ -436,16 +485,30 @@ mod tests { assert_eq!(og_au.code, r_au.code); } - // Read Proof back - let read_proof_updates_blk2 = - match read_state_file_for_block_number(2, StateFileType::Proof)? { - StateType::Proof(p) => p, - StateType::AccountUpdates(_) => unimplemented!(), - }; + // Read RISC0 Proof back + let read_proof_updates_blk2 = match read_state(2, StateFileType::Proof(ProverType::RISC0))? + { + StateType::Proof(p) => p, + StateType::AccountUpdates(_) => unimplemented!(), + }; + + if let ProvingOutput::RISC0(read_risc0_proof) = read_proof_updates_blk2 { + assert_eq!( + risc0_proof.receipt.journal.bytes, + read_risc0_proof.receipt.journal.bytes + ); + assert_eq!(read_risc0_proof.prover_id, risc0_proof.prover_id); + } + + // Read SP1 Proof back + let read_proof_updates_blk2 = match read_state(2, StateFileType::Proof(ProverType::SP1))? { + StateType::Proof(p) => p, + StateType::AccountUpdates(_) => unimplemented!(), + }; - if let ProvingOutput::RISC0(risc0_proof) = read_proof_updates_blk2 { - assert_eq!(risc0_proof.receipt.journal.bytes, receipt.journal.bytes); - assert_eq!(risc0_proof.prover_id, vec![5u32; 8]); + if let ProvingOutput::SP1(read_sp1_proof) = read_proof_updates_blk2 { + assert_eq!(read_sp1_proof.proof.bytes(), sp1_proof.proof.bytes()); + assert_eq!(read_sp1_proof.vk.bytes32(), sp1_proof.vk.bytes32()); } fs::remove_dir_all(default_datadir()?)?; From 067d787d3f5f069cdfe183e398ad222f7fc78eb0 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Thu, 12 Dec 2024 14:28:56 -0300 Subject: [PATCH 22/29] refactor(prover_server): integrate the save_state mod with the prover_server --- crates/l2/proposer/prover_server.rs | 82 ++++++++++++++--------- crates/l2/utils/prover/proving_systems.rs | 7 ++ crates/l2/utils/prover/save_state.rs | 80 +++++++++++++++------- 3 files changed, 113 insertions(+), 56 deletions(-) diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index d277ccf6e..b0e7eae85 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -6,6 +6,7 @@ use crate::utils::{ }, eth_client::{eth_sender::Overrides, EthClient, WrappedTransaction}, prover::proving_systems::{ProverType, ProvingOutput}, + prover::save_state::*, }; use ethrex_core::{ types::{Block, BlockHeader}, @@ -17,7 +18,6 @@ use keccak_hash::keccak; use secp256k1::SecretKey; use serde::{Deserialize, Serialize}; use std::{ - collections::HashMap, fmt::Debug, io::{BufReader, BufWriter, Write}, net::{IpAddr, Shutdown, TcpListener, TcpStream}, @@ -47,7 +47,6 @@ struct ProverServer { on_chain_proposer_address: Address, verifier_address: Address, verifier_private_key: SecretKey, - proving_output_per_block: HashMap>, } /// Enum for the ProverServer <--> ProverClient Communication Protocol. @@ -137,7 +136,6 @@ impl ProverServer { on_chain_proposer_address, verifier_address: config.verifier_address, verifier_private_key: config.verifier_private_key, - proving_output_per_block: HashMap::new(), }) } @@ -250,16 +248,24 @@ impl ProverServer { let mut tx_submitted = false; - if let Some(inner_hmap) = self.proving_output_per_block.get(&block_to_verify) { - // If we have all the proofs send a transaction to verify them on chain - if inner_hmap.contains_key(&ProverType::RISC0) - && inner_hmap.contains_key(&ProverType::SP1) - { - self.handle_proof_submission(block_to_verify).await?; - // Remove the Proofs for the block_number - self.proving_output_per_block.remove(&block_to_verify); - tx_submitted = true; + // If we have all the proofs send a transaction to verify them on chain + + let send_tx = match block_number_has_all_proofs(block_to_verify) { + Ok(has_all_proofs) => has_all_proofs, + Err(e) => { + let error = format!("{e}"); + if !error.contains("No such file or directory") { + return Err(ProverServerError::FailedToSaveState(error)); + } + false } + }; + if send_tx { + self.handle_proof_submission(block_to_verify).await?; + // Remove the Proofs for that block_number + prune_state(block_to_verify) + .map_err(|e| ProverServerError::FailedToSaveState(format!("{e}")))?; + tx_submitted = true; } let data: Result = serde_json::de::from_reader(buf_reader); @@ -291,23 +297,34 @@ impl ProverServer { return Ok(()); } - // The proof is stored, - // then if we have all the proofs, we send it in the loop's next iteration. - // Check if we have an entry for the block_number - let inner_hmap = self - .proving_output_per_block - .entry(block_number) - .or_default(); - + // Check if we have an entry for the proof in that block_number // Get the ProverType, implicitly set by the ProvingOutput - let proving_type = match proving_output { + let prover_type = match proving_output { ProvingOutput::RISC0(_) => ProverType::RISC0, ProvingOutput::SP1(_) => ProverType::SP1, }; // Check if we have the proof for that ProverType // If we don't have it, insert it. - inner_hmap.entry(proving_type).or_insert(proving_output); + let has_proof = match block_number_has_state_file( + StateFileType::Proof(prover_type), + block_number, + ) { + Ok(has_proof) => has_proof, + Err(e) => { + let error = format!("{e}"); + if !error.contains("No such file or directory") { + return Err(ProverServerError::FailedToSaveState(error)); + } + false + } + }; + if !has_proof { + write_state(block_number, StateType::Proof(proving_output)) + .map_err(|e| ProverServerError::FailedToSaveState(format!("{e}")))?; + } + + // Then if we have all the proofs, we send the transaction in the next `handle_connection` call. } Err(e) => { warn!("Failed to parse request: {e}"); @@ -403,15 +420,12 @@ impl ProverServer { &self, block_number: u64, ) -> Result { - let proving_data = - self.proving_output_per_block - .get(&block_number) - .ok_or(ProverServerError::Custom(format!( - "Entry for {block_number} isn't present" - )))?; - - let risc0_contract_data = match proving_data.get(&ProverType::RISC0) { - Some(ProvingOutput::RISC0(risc0_proof)) => risc0_proof.contract_data()?, + // TODO change error + let risc0_proving_output = + read_proof(block_number, StateFileType::Proof(ProverType::RISC0)) + .map_err(|e| ProverServerError::FailedToSaveState(format!("{e}")))?; + let risc0_contract_data = match risc0_proving_output { + ProvingOutput::RISC0(risc0_proof) => risc0_proof.contract_data()?, _ => { return Err(ProverServerError::Custom( "RISC0 Proof isn't present".to_string(), @@ -419,8 +433,10 @@ impl ProverServer { } }; - let sp1_contract_data = match proving_data.get(&ProverType::SP1) { - Some(ProvingOutput::SP1(sp1_proof)) => sp1_proof.contract_data()?, + let sp1_proving_output = read_proof(block_number, StateFileType::Proof(ProverType::SP1)) + .map_err(|e| ProverServerError::FailedToSaveState(format!("{e}")))?; + let sp1_contract_data = match sp1_proving_output { + ProvingOutput::SP1(sp1_proof) => sp1_proof.contract_data()?, _ => { return Err(ProverServerError::Custom( "SP1 Proof isn't present".to_string(), diff --git a/crates/l2/utils/prover/proving_systems.rs b/crates/l2/utils/prover/proving_systems.rs index d9bb92c27..a702b59c8 100644 --- a/crates/l2/utils/prover/proving_systems.rs +++ b/crates/l2/utils/prover/proving_systems.rs @@ -12,6 +12,13 @@ pub enum ProverType { SP1, } +/// Used to iterate through all the possible proving systems +impl ProverType { + pub fn all() -> &'static [ProverType] { + &[ProverType::RISC0, ProverType::SP1] + } +} + #[derive(Serialize, Deserialize, Clone, Debug)] pub struct Risc0Proof { pub receipt: Box, diff --git a/crates/l2/utils/prover/save_state.rs b/crates/l2/utils/prover/save_state.rs index 67fc87739..cecc95bdd 100644 --- a/crates/l2/utils/prover/save_state.rs +++ b/crates/l2/utils/prover/save_state.rs @@ -23,6 +23,23 @@ pub enum StateFileType { AccountUpdates, } +pub fn state_file_type_from_state_type(state_type: &StateType) -> StateFileType { + match &state_type { + StateType::Proof(p) => match p { + ProvingOutput::RISC0(_) => StateFileType::Proof(ProverType::RISC0), + ProvingOutput::SP1(_) => StateFileType::Proof(ProverType::SP1), + }, + StateType::AccountUpdates(_) => StateFileType::AccountUpdates, + } +} + +pub fn state_file_type_from_prover_type(prover_type: &ProverType) -> StateFileType { + match &prover_type { + ProverType::RISC0 => StateFileType::Proof(ProverType::RISC0), + ProverType::SP1 => StateFileType::Proof(ProverType::SP1), + } +} + #[cfg(not(test))] const DEFAULT_DATADIR: &str = "ethrex_l2_state"; @@ -129,8 +146,8 @@ fn create_state_file_for_block_number( pub fn write_state( block_number: u64, state_type: StateType, - state_file_type: StateFileType, ) -> Result<(), Box> { + let state_file_type = state_file_type_from_state_type(&state_type); let inner = create_state_file_for_block_number(block_number, state_file_type)?; match state_type { @@ -212,6 +229,16 @@ pub fn read_state( Ok(state) } +pub fn read_proof( + block_number: u64, + state_file_type: StateFileType, +) -> Result> { + match read_state(block_number, state_file_type)? { + StateType::Proof(p) => Ok(p), + StateType::AccountUpdates(_) => unimplemented!(), + } +} + /// READ pub fn read_latest_state( state_file_type: StateFileType, @@ -292,7 +319,6 @@ pub fn block_number_has_state_file( let entry = entry?; let file_name_stored = entry.file_name(); - println!("FILE_NAME{file_name_stored:?} || TO_SEEK{file_name_to_seek:?}"); if file_name_stored == file_name_to_seek { return Ok(true); } @@ -301,6 +327,30 @@ pub fn block_number_has_state_file( Ok(false) } +pub fn block_number_has_all_proofs(block_number: u64) -> Result> { + let block_state_path = get_block_state_path(block_number)?; + + let mut has_all_proofs = true; + for prover_type in ProverType::all() { + let file_name_to_seek: OsString = + get_state_file_name(block_number, &state_file_type_from_prover_type(prover_type)) + .into(); + + // Check if the proof exists + let proof_exists = std::fs::read_dir(&block_state_path)? + .filter_map(Result::ok) // Filter out errors + .any(|entry| entry.file_name() == file_name_to_seek); + + // If the proof is missing return false + if !proof_exists { + has_all_proofs = false; + break; + } + } + + Ok(has_all_proofs) +} + #[cfg(test)] #[allow(clippy::expect_used)] mod tests { @@ -405,25 +455,16 @@ mod tests { write_state( block.header.number, StateType::AccountUpdates(account_updates), - StateFileType::AccountUpdates, )?; let risc0_data = ProvingOutput::RISC0(risc0_proof.clone()); - write_state( - block.header.number, - StateType::Proof(risc0_data), - StateFileType::Proof(ProverType::RISC0), - )?; + write_state(block.header.number, StateType::Proof(risc0_data))?; let sp1_data = ProvingOutput::SP1(sp1_proof.clone()); - write_state( - block.header.number, - StateType::Proof(sp1_data), - StateFileType::Proof(ProverType::SP1), - )?; + write_state(block.header.number, StateType::Proof(sp1_data))?; } - // Check if we the latest block_number saved matches the latest block in the chain.rlp + // Check if the latest block_number saved matches the latest block in the chain.rlp let (latest_block_state_number, _) = get_latest_block_number_and_path()?; assert_eq!( @@ -486,11 +527,7 @@ mod tests { } // Read RISC0 Proof back - let read_proof_updates_blk2 = match read_state(2, StateFileType::Proof(ProverType::RISC0))? - { - StateType::Proof(p) => p, - StateType::AccountUpdates(_) => unimplemented!(), - }; + let read_proof_updates_blk2 = read_proof(2, StateFileType::Proof(ProverType::RISC0))?; if let ProvingOutput::RISC0(read_risc0_proof) = read_proof_updates_blk2 { assert_eq!( @@ -501,10 +538,7 @@ mod tests { } // Read SP1 Proof back - let read_proof_updates_blk2 = match read_state(2, StateFileType::Proof(ProverType::SP1))? { - StateType::Proof(p) => p, - StateType::AccountUpdates(_) => unimplemented!(), - }; + let read_proof_updates_blk2 = read_proof(2, StateFileType::Proof(ProverType::SP1))?; if let ProvingOutput::SP1(read_sp1_proof) = read_proof_updates_blk2 { assert_eq!(read_sp1_proof.proof.bytes(), sp1_proof.proof.bytes()); From cc2b05adc74eece0715b72b4ad9d463c68254fa1 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Thu, 12 Dec 2024 15:35:02 -0300 Subject: [PATCH 23/29] feat: basic error handling --- crates/l2/proposer/errors.rs | 5 +-- crates/l2/proposer/prover_server.rs | 30 ++++++++-------- crates/l2/utils/prover/errors.rs | 13 +++++++ crates/l2/utils/prover/mod.rs | 1 + crates/l2/utils/prover/save_state.rs | 52 ++++++++++++++-------------- 5 files changed, 59 insertions(+), 42 deletions(-) create mode 100644 crates/l2/utils/prover/errors.rs diff --git a/crates/l2/proposer/errors.rs b/crates/l2/proposer/errors.rs index 34600ae2a..8d2adbe4e 100644 --- a/crates/l2/proposer/errors.rs +++ b/crates/l2/proposer/errors.rs @@ -1,6 +1,7 @@ use std::sync::mpsc::SendError; use crate::utils::merkle_tree::MerkleError; +use crate::utils::prover::errors::SaveStateError; use crate::utils::{config::errors::ConfigError, eth_client::errors::EthClientError}; use ethereum_types::FromStrRadixErr; use ethrex_core::types::{BlobsBundleError, FakeExponentialError}; @@ -47,8 +48,8 @@ pub enum ProverServerError { WriteError(String), #[error("ProverServer failed to get data from Store: {0}")] ItemNotFoundInStore(String), - #[error("ProverServer failed to save state: {0}")] - FailedToSaveState(String), + #[error("ProverServer encountered a SaveStateError: {0}")] + SaveStateError(#[from] SaveStateError), } #[derive(Debug, thiserror::Error)] diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index b0e7eae85..4f687af42 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -5,8 +5,11 @@ use crate::utils::{ prover_server::ProverServerConfig, }, eth_client::{eth_sender::Overrides, EthClient, WrappedTransaction}, - prover::proving_systems::{ProverType, ProvingOutput}, - prover::save_state::*, + prover::{ + errors::SaveStateError, + proving_systems::{ProverType, ProvingOutput}, + save_state::*, + }, }; use ethrex_core::{ types::{Block, BlockHeader}, @@ -253,9 +256,12 @@ impl ProverServer { let send_tx = match block_number_has_all_proofs(block_to_verify) { Ok(has_all_proofs) => has_all_proofs, Err(e) => { - let error = format!("{e}"); - if !error.contains("No such file or directory") { - return Err(ProverServerError::FailedToSaveState(error)); + if let SaveStateError::IOError(ref error) = e { + if error.kind() != std::io::ErrorKind::NotFound { + return Err(e.into()); + } + } else { + return Err(e.into()); } false } @@ -263,8 +269,7 @@ impl ProverServer { if send_tx { self.handle_proof_submission(block_to_verify).await?; // Remove the Proofs for that block_number - prune_state(block_to_verify) - .map_err(|e| ProverServerError::FailedToSaveState(format!("{e}")))?; + prune_state(block_to_verify)?; tx_submitted = true; } @@ -314,14 +319,13 @@ impl ProverServer { Err(e) => { let error = format!("{e}"); if !error.contains("No such file or directory") { - return Err(ProverServerError::FailedToSaveState(error)); + return Err(e.into()); } false } }; if !has_proof { - write_state(block_number, StateType::Proof(proving_output)) - .map_err(|e| ProverServerError::FailedToSaveState(format!("{e}")))?; + write_state(block_number, StateType::Proof(proving_output))?; } // Then if we have all the proofs, we send the transaction in the next `handle_connection` call. @@ -422,8 +426,7 @@ impl ProverServer { ) -> Result { // TODO change error let risc0_proving_output = - read_proof(block_number, StateFileType::Proof(ProverType::RISC0)) - .map_err(|e| ProverServerError::FailedToSaveState(format!("{e}")))?; + read_proof(block_number, StateFileType::Proof(ProverType::RISC0))?; let risc0_contract_data = match risc0_proving_output { ProvingOutput::RISC0(risc0_proof) => risc0_proof.contract_data()?, _ => { @@ -433,8 +436,7 @@ impl ProverServer { } }; - let sp1_proving_output = read_proof(block_number, StateFileType::Proof(ProverType::SP1)) - .map_err(|e| ProverServerError::FailedToSaveState(format!("{e}")))?; + let sp1_proving_output = read_proof(block_number, StateFileType::Proof(ProverType::SP1))?; let sp1_contract_data = match sp1_proving_output { ProvingOutput::SP1(sp1_proof) => sp1_proof.contract_data()?, _ => { diff --git a/crates/l2/utils/prover/errors.rs b/crates/l2/utils/prover/errors.rs new file mode 100644 index 000000000..2cf4b81bc --- /dev/null +++ b/crates/l2/utils/prover/errors.rs @@ -0,0 +1,13 @@ +#[derive(Debug, thiserror::Error)] +pub enum SaveStateError { + #[error("Failed to create data dir")] + FailedToCrateDataDir, + #[error("Failed to interact with IO: {0}")] + IOError(#[from] std::io::Error), + #[error("Failed to de/serialize: {0}")] + SerdeJson(#[from] serde_json::Error), + #[error("Failed to parse block_number_from_path: {0}")] + ParseIntError(#[from] std::num::ParseIntError), + #[error("{0}")] + Custom(String), +} diff --git a/crates/l2/utils/prover/mod.rs b/crates/l2/utils/prover/mod.rs index a0063165f..79f4125c2 100644 --- a/crates/l2/utils/prover/mod.rs +++ b/crates/l2/utils/prover/mod.rs @@ -1,2 +1,3 @@ +pub mod errors; pub mod proving_systems; pub mod save_state; diff --git a/crates/l2/utils/prover/save_state.rs b/crates/l2/utils/prover/save_state.rs index cecc95bdd..89d0fbdf2 100644 --- a/crates/l2/utils/prover/save_state.rs +++ b/crates/l2/utils/prover/save_state.rs @@ -1,3 +1,4 @@ +use crate::utils::prover::errors::SaveStateError; use crate::utils::prover::proving_systems::{ProverType, ProvingOutput}; use directories::ProjectDirs; use ethrex_storage::AccountUpdate; @@ -45,13 +46,13 @@ const DEFAULT_DATADIR: &str = "ethrex_l2_state"; #[cfg(not(test))] #[inline(always)] -fn default_datadir() -> Result> { +fn default_datadir() -> Result { create_datadir(DEFAULT_DATADIR) } #[cfg(test)] #[inline(always)] -fn default_datadir() -> Result> { +fn default_datadir() -> Result { create_datadir("test_datadir") } @@ -64,10 +65,10 @@ fn get_proof_file_name_from_prover_type(prover_type: &ProverType, block_number: } #[inline(always)] -fn get_block_number_from_path(path_buf: &Path) -> Result> { +fn get_block_number_from_path(path_buf: &Path) -> Result { let block_number = path_buf .file_name() - .ok_or_else(|| Box::::from("Error: No file_name()"))? + .ok_or_else(|| SaveStateError::Custom("Error: No file_name()".to_string()))? .to_string_lossy(); let block_number = block_number.parse::()?; @@ -75,16 +76,16 @@ fn get_block_number_from_path(path_buf: &Path) -> Result Result> { +fn create_datadir(dir_name: &str) -> Result { let path_buf_data_dir = ProjectDirs::from("", "", dir_name) - .ok_or_else(|| Box::::from("Couldn't get project_dir."))? + .ok_or_else(|| SaveStateError::FailedToCrateDataDir)? .data_local_dir() .to_path_buf(); Ok(path_buf_data_dir) } #[inline(always)] -fn get_state_dir_for_block(block_number: u64) -> Result> { +fn get_state_dir_for_block(block_number: u64) -> Result { let mut path_buf = default_datadir()?; path_buf.push(block_number.to_string()); @@ -117,7 +118,7 @@ fn get_state_file_path( fn create_state_file_for_block_number( block_number: u64, state_file_type: StateFileType, -) -> Result> { +) -> Result { let path_buf = get_state_dir_for_block(block_number)?; if let Some(parent) = path_buf.parent() { if let Err(e) = create_dir_all(parent) { @@ -143,10 +144,7 @@ fn create_state_file_for_block_number( } /// WRITE -pub fn write_state( - block_number: u64, - state_type: StateType, -) -> Result<(), Box> { +pub fn write_state(block_number: u64, state_type: StateType) -> Result<(), SaveStateError> { let state_file_type = state_file_type_from_state_type(&state_type); let inner = create_state_file_for_block_number(block_number, state_file_type)?; @@ -166,7 +164,7 @@ pub fn write_state( Ok(()) } -fn get_latest_block_number_and_path() -> Result<(u64, PathBuf), Box> { +fn get_latest_block_number_and_path() -> Result<(u64, PathBuf), SaveStateError> { let data_dir = default_datadir()?; let latest_block_number = read_dir(&data_dir)? .filter_map(|entry| { @@ -185,17 +183,19 @@ fn get_latest_block_number_and_path() -> Result<(u64, PathBuf), Box Err(Box::from("No valid block directories found")), + None => Err(SaveStateError::Custom( + "No valid block directories found".to_owned(), + )), } } -fn get_block_state_path(block_number: u64) -> Result> { +fn get_block_state_path(block_number: u64) -> Result { let data_dir = default_datadir()?; let block_state_path = data_dir.join(block_number.to_string()); Ok(block_state_path) } -pub fn get_latest_block_number() -> Result> { +pub fn get_latest_block_number() -> Result { let (block_number, _) = get_latest_block_number_and_path()?; Ok(block_number) } @@ -204,7 +204,7 @@ pub fn get_latest_block_number() -> Result> { pub fn read_state( block_number: u64, state_file_type: StateFileType, -) -> Result> { +) -> Result { // TODO handle path not found let block_state_path = get_block_state_path(block_number)?; let file_path: PathBuf = get_state_file_path(&block_state_path, block_number, &state_file_type); @@ -232,7 +232,7 @@ pub fn read_state( pub fn read_proof( block_number: u64, state_file_type: StateFileType, -) -> Result> { +) -> Result { match read_state(block_number, state_file_type)? { StateType::Proof(p) => Ok(p), StateType::AccountUpdates(_) => unimplemented!(), @@ -242,7 +242,7 @@ pub fn read_proof( /// READ pub fn read_latest_state( state_file_type: StateFileType, -) -> Result> { +) -> Result { let (latest_block_state_number, _) = get_latest_block_number_and_path()?; let state = read_state(latest_block_state_number, state_file_type)?; Ok(state) @@ -252,7 +252,7 @@ pub fn read_latest_state( pub fn delete_state_file( block_number: u64, state_file_type: StateFileType, -) -> Result<(), Box> { +) -> Result<(), SaveStateError> { let block_state_path = get_block_state_path(block_number)?; let file_path: PathBuf = get_state_file_path(&block_state_path, block_number, &state_file_type); std::fs::remove_file(file_path)?; @@ -262,7 +262,7 @@ pub fn delete_state_file( pub fn delete_latest_state_file( state_file_type: StateFileType, -) -> Result<(), Box> { +) -> Result<(), SaveStateError> { let (latest_block_state_number, _) = get_latest_block_number_and_path()?; let latest_block_state_path = get_block_state_path(latest_block_state_number)?; let file_path: PathBuf = get_state_file_path( @@ -275,13 +275,13 @@ pub fn delete_latest_state_file( Ok(()) } -pub fn prune_state(block_number: u64) -> Result<(), Box> { +pub fn prune_state(block_number: u64) -> Result<(), SaveStateError> { let block_state_path = get_block_state_path(block_number)?; std::fs::remove_dir_all(block_state_path)?; Ok(()) } -pub fn prune_latest_state() -> Result<(), Box> { +pub fn prune_latest_state() -> Result<(), SaveStateError> { let (latest_block_state_number, _) = get_latest_block_number_and_path()?; let latest_block_state_path = get_block_state_path(latest_block_state_number)?; std::fs::remove_dir_all(latest_block_state_path)?; @@ -291,7 +291,7 @@ pub fn prune_latest_state() -> Result<(), Box> { pub fn path_has_state_file( state_file_type: StateFileType, path_buf: &Path, -) -> Result> { +) -> Result { // Get the block_number from the path let block_number = get_block_number_from_path(path_buf)?; let file_name_to_seek: OsString = get_state_file_name(block_number, &state_file_type).into(); @@ -311,7 +311,7 @@ pub fn path_has_state_file( pub fn block_number_has_state_file( state_file_type: StateFileType, block_number: u64, -) -> Result> { +) -> Result { let block_state_path = get_block_state_path(block_number)?; let file_name_to_seek: OsString = get_state_file_name(block_number, &state_file_type).into(); @@ -327,7 +327,7 @@ pub fn block_number_has_state_file( Ok(false) } -pub fn block_number_has_all_proofs(block_number: u64) -> Result> { +pub fn block_number_has_all_proofs(block_number: u64) -> Result { let block_state_path = get_block_state_path(block_number)?; let mut has_all_proofs = true; From 4b714675f0ee65bae232d99f21e5ff36ed7eb44d Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Thu, 12 Dec 2024 15:42:44 -0300 Subject: [PATCH 24/29] chore: lint --- crates/l2/utils/prover/save_state.rs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/crates/l2/utils/prover/save_state.rs b/crates/l2/utils/prover/save_state.rs index 89d0fbdf2..3ac244404 100644 --- a/crates/l2/utils/prover/save_state.rs +++ b/crates/l2/utils/prover/save_state.rs @@ -240,9 +240,7 @@ pub fn read_proof( } /// READ -pub fn read_latest_state( - state_file_type: StateFileType, -) -> Result { +pub fn read_latest_state(state_file_type: StateFileType) -> Result { let (latest_block_state_number, _) = get_latest_block_number_and_path()?; let state = read_state(latest_block_state_number, state_file_type)?; Ok(state) @@ -260,9 +258,7 @@ pub fn delete_state_file( Ok(()) } -pub fn delete_latest_state_file( - state_file_type: StateFileType, -) -> Result<(), SaveStateError> { +pub fn delete_latest_state_file(state_file_type: StateFileType) -> Result<(), SaveStateError> { let (latest_block_state_number, _) = get_latest_block_number_and_path()?; let latest_block_state_path = get_block_state_path(latest_block_state_number)?; let file_path: PathBuf = get_state_file_path( From 787addc533e9bbc7c35985b283e6bc22940f8e7f Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Thu, 12 Dec 2024 17:32:22 -0300 Subject: [PATCH 25/29] chore: simple docs --- crates/l2/proposer/prover_server.rs | 2 +- crates/l2/utils/prover/save_state.rs | 137 ++++++++++++++++----------- 2 files changed, 85 insertions(+), 54 deletions(-) diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index 4f687af42..0590f9e5a 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -325,7 +325,7 @@ impl ProverServer { } }; if !has_proof { - write_state(block_number, StateType::Proof(proving_output))?; + write_state(block_number, &StateType::Proof(proving_output))?; } // Then if we have all the proofs, we send the transaction in the next `handle_connection` call. diff --git a/crates/l2/utils/prover/save_state.rs b/crates/l2/utils/prover/save_state.rs index 3ac244404..1ab5db1d6 100644 --- a/crates/l2/utils/prover/save_state.rs +++ b/crates/l2/utils/prover/save_state.rs @@ -12,50 +12,76 @@ use std::{ io::{BufWriter, Write}, }; +const DEFAULT_DATADIR: &str = "ethrex_l2_state"; + +#[cfg(not(test))] +#[inline(always)] +fn default_datadir() -> Result { + create_datadir(DEFAULT_DATADIR) +} + +#[cfg(test)] +#[inline(always)] +fn default_datadir() -> Result { + create_datadir("test_datadir") +} + +#[inline(always)] +fn create_datadir(dir_name: &str) -> Result { + let path_buf_data_dir = ProjectDirs::from("", "", dir_name) + .ok_or_else(|| SaveStateError::FailedToCrateDataDir)? + .data_local_dir() + .to_path_buf(); + Ok(path_buf_data_dir) +} + +/// Proposed structure +/// 1/ +/// account_updates_1.json +/// proof_risc0_1.json +/// proof_sp1_1.json +/// 2/ +/// account_updates_2.json +/// proof_risc0_2.json +/// proof_sp1_2.json +/// All the files are saved at the path defined by [ProjectDirs::data_local_dir] +/// and the [DEFAULT_DATADIR] when calling [create_datadir] + +/// Enum used to differentiate between the possible types of data we can store per block. #[derive(Serialize, Deserialize, Debug)] pub enum StateType { Proof(ProvingOutput), AccountUpdates(Vec), } +/// Enum used to differentiate between the possible types of files we can have per block. #[derive(Serialize, Deserialize, Debug, Clone)] pub enum StateFileType { Proof(ProverType), AccountUpdates, } -pub fn state_file_type_from_state_type(state_type: &StateType) -> StateFileType { - match &state_type { - StateType::Proof(p) => match p { - ProvingOutput::RISC0(_) => StateFileType::Proof(ProverType::RISC0), - ProvingOutput::SP1(_) => StateFileType::Proof(ProverType::SP1), - }, - StateType::AccountUpdates(_) => StateFileType::AccountUpdates, +impl From<&StateType> for StateFileType { + fn from(state_type: &StateType) -> Self { + match state_type { + StateType::Proof(p) => match p { + ProvingOutput::RISC0(_) => StateFileType::Proof(ProverType::RISC0), + ProvingOutput::SP1(_) => StateFileType::Proof(ProverType::SP1), + }, + StateType::AccountUpdates(_) => StateFileType::AccountUpdates, + } } } -pub fn state_file_type_from_prover_type(prover_type: &ProverType) -> StateFileType { - match &prover_type { - ProverType::RISC0 => StateFileType::Proof(ProverType::RISC0), - ProverType::SP1 => StateFileType::Proof(ProverType::SP1), +impl From<&ProverType> for StateFileType { + fn from(prover_type: &ProverType) -> Self { + match prover_type { + ProverType::RISC0 => StateFileType::Proof(ProverType::RISC0), + ProverType::SP1 => StateFileType::Proof(ProverType::SP1), + } } } -#[cfg(not(test))] -const DEFAULT_DATADIR: &str = "ethrex_l2_state"; - -#[cfg(not(test))] -#[inline(always)] -fn default_datadir() -> Result { - create_datadir(DEFAULT_DATADIR) -} - -#[cfg(test)] -#[inline(always)] -fn default_datadir() -> Result { - create_datadir("test_datadir") -} - #[inline(always)] fn get_proof_file_name_from_prover_type(prover_type: &ProverType, block_number: u64) -> String { match prover_type { @@ -75,15 +101,6 @@ fn get_block_number_from_path(path_buf: &Path) -> Result { Ok(block_number) } -#[inline(always)] -fn create_datadir(dir_name: &str) -> Result { - let path_buf_data_dir = ProjectDirs::from("", "", dir_name) - .ok_or_else(|| SaveStateError::FailedToCrateDataDir)? - .data_local_dir() - .to_path_buf(); - Ok(path_buf_data_dir) -} - #[inline(always)] fn get_state_dir_for_block(block_number: u64) -> Result { let mut path_buf = default_datadir()?; @@ -114,7 +131,7 @@ fn get_state_file_path( path_buf.join(file_name) } -/// CREATE +/// CREATE the state_file given the block_number fn create_state_file_for_block_number( block_number: u64, state_file_type: StateFileType, @@ -123,7 +140,6 @@ fn create_state_file_for_block_number( if let Some(parent) = path_buf.parent() { if let Err(e) = create_dir_all(parent) { if e.kind() != std::io::ErrorKind::AlreadyExists { - eprintln!("Failed to create directory: {:?}. Error: {e}", parent); return Err(e.into()); } } @@ -135,7 +151,6 @@ fn create_state_file_for_block_number( if let Err(e) = create_dir(&path_buf) { if e.kind() != std::io::ErrorKind::AlreadyExists { - eprintln!("Failed to create directory: {:?}. Error: {e}", path_buf); return Err(e.into()); } } @@ -143,20 +158,20 @@ fn create_state_file_for_block_number( File::create(file_path).map_err(Into::into) } -/// WRITE -pub fn write_state(block_number: u64, state_type: StateType) -> Result<(), SaveStateError> { - let state_file_type = state_file_type_from_state_type(&state_type); - let inner = create_state_file_for_block_number(block_number, state_file_type)?; +/// WRITE to the state_file given the block number and the state_type +/// It also creates the file, if it already exists it will overwrite the file +pub fn write_state(block_number: u64, state_type: &StateType) -> Result<(), SaveStateError> { + let inner = create_state_file_for_block_number(block_number, state_type.into())?; match state_type { StateType::Proof(value) => { let mut writer = BufWriter::new(inner); - serde_json::to_writer(&mut writer, &value)?; + serde_json::to_writer(&mut writer, value)?; writer.flush()?; } StateType::AccountUpdates(value) => { let mut writer = BufWriter::new(inner); - serde_json::to_writer(&mut writer, &value)?; + serde_json::to_writer(&mut writer, value)?; writer.flush()?; } } @@ -195,12 +210,13 @@ fn get_block_state_path(block_number: u64) -> Result { Ok(block_state_path) } +/// GET the latest block_number given the proposed structure pub fn get_latest_block_number() -> Result { let (block_number, _) = get_latest_block_number_and_path()?; Ok(block_number) } -/// READ +/// READ the state given the block_number and the [StateFileType] pub fn read_state( block_number: u64, state_file_type: StateFileType, @@ -229,24 +245,28 @@ pub fn read_state( Ok(state) } +/// READ the proof given the block_number and the [StateFileType::Proof] pub fn read_proof( block_number: u64, state_file_type: StateFileType, ) -> Result { match read_state(block_number, state_file_type)? { StateType::Proof(p) => Ok(p), - StateType::AccountUpdates(_) => unimplemented!(), + StateType::AccountUpdates(_) => Err(SaveStateError::Custom( + "Failed in read_proof(), make sure that the state_file_type is a Proof".to_owned(), + )), } } -/// READ +/// READ the latest state given the [StateFileType]. +/// latest means the state for the highest block_number available. pub fn read_latest_state(state_file_type: StateFileType) -> Result { let (latest_block_state_number, _) = get_latest_block_number_and_path()?; let state = read_state(latest_block_state_number, state_file_type)?; Ok(state) } -/// DELETE +/// DELETE the [StateFileType] for the given block_number pub fn delete_state_file( block_number: u64, state_file_type: StateFileType, @@ -258,6 +278,8 @@ pub fn delete_state_file( Ok(()) } +/// DELETE the [StateFileType] +/// latest means the state for the highest block_number available. pub fn delete_latest_state_file(state_file_type: StateFileType) -> Result<(), SaveStateError> { let (latest_block_state_number, _) = get_latest_block_number_and_path()?; let latest_block_state_path = get_block_state_path(latest_block_state_number)?; @@ -271,12 +293,15 @@ pub fn delete_latest_state_file(state_file_type: StateFileType) -> Result<(), Sa Ok(()) } +/// PRUNE all the files for the given block_number pub fn prune_state(block_number: u64) -> Result<(), SaveStateError> { let block_state_path = get_block_state_path(block_number)?; std::fs::remove_dir_all(block_state_path)?; Ok(()) } +/// PRUNE all the files +/// latest means the state for the highest block_number available. pub fn prune_latest_state() -> Result<(), SaveStateError> { let (latest_block_state_number, _) = get_latest_block_number_and_path()?; let latest_block_state_path = get_block_state_path(latest_block_state_number)?; @@ -284,6 +309,8 @@ pub fn prune_latest_state() -> Result<(), SaveStateError> { Ok(()) } +/// CHECK if the given path has the given [StateFileType] +/// This function will check if the path: ../../..// contains the state_file_type pub fn path_has_state_file( state_file_type: StateFileType, path_buf: &Path, @@ -304,6 +331,8 @@ pub fn path_has_state_file( Ok(false) } +/// CHECK if the given block_number has the given [StateFileType] +/// This function will check if the path: ../../..// contains the state_file_type pub fn block_number_has_state_file( state_file_type: StateFileType, block_number: u64, @@ -323,14 +352,16 @@ pub fn block_number_has_state_file( Ok(false) } +/// CHECK if the given block_number has all the proofs needed +/// This function will check if the path: ../../..// contains the proofs +/// Make sure to add all new proving_systems in the [ProverType::all] function pub fn block_number_has_all_proofs(block_number: u64) -> Result { let block_state_path = get_block_state_path(block_number)?; let mut has_all_proofs = true; for prover_type in ProverType::all() { let file_name_to_seek: OsString = - get_state_file_name(block_number, &state_file_type_from_prover_type(prover_type)) - .into(); + get_state_file_name(block_number, &StateFileType::from(prover_type)).into(); // Check if the proof exists let proof_exists = std::fs::read_dir(&block_state_path)? @@ -450,14 +481,14 @@ mod tests { write_state( block.header.number, - StateType::AccountUpdates(account_updates), + &StateType::AccountUpdates(account_updates), )?; let risc0_data = ProvingOutput::RISC0(risc0_proof.clone()); - write_state(block.header.number, StateType::Proof(risc0_data))?; + write_state(block.header.number, &StateType::Proof(risc0_data))?; let sp1_data = ProvingOutput::SP1(sp1_proof.clone()); - write_state(block.header.number, StateType::Proof(sp1_data))?; + write_state(block.header.number, &StateType::Proof(sp1_data))?; } // Check if the latest block_number saved matches the latest block in the chain.rlp From b58e573b235c469f19f83dfdf742232e8f7902f8 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Thu, 12 Dec 2024 17:39:16 -0300 Subject: [PATCH 26/29] chore: docs --- crates/l2/utils/prover/save_state.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/crates/l2/utils/prover/save_state.rs b/crates/l2/utils/prover/save_state.rs index 1ab5db1d6..18fefe716 100644 --- a/crates/l2/utils/prover/save_state.rs +++ b/crates/l2/utils/prover/save_state.rs @@ -132,6 +132,7 @@ fn get_state_file_path( } /// CREATE the state_file given the block_number +/// This function will create the following file_path: ../../..//state_file_type fn create_state_file_for_block_number( block_number: u64, state_file_type: StateFileType, @@ -160,6 +161,7 @@ fn create_state_file_for_block_number( /// WRITE to the state_file given the block number and the state_type /// It also creates the file, if it already exists it will overwrite the file +/// This function will create and write to the following file_path: ../../..//state_file_type pub fn write_state(block_number: u64, state_type: &StateType) -> Result<(), SaveStateError> { let inner = create_state_file_for_block_number(block_number, state_type.into())?; From defb9ba3c327ba2cb1384acf13a93ddc54005adf Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Thu, 12 Dec 2024 17:43:05 -0300 Subject: [PATCH 27/29] chore: docs --- crates/l2/utils/prover/save_state.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/crates/l2/utils/prover/save_state.rs b/crates/l2/utils/prover/save_state.rs index 18fefe716..5046fcfec 100644 --- a/crates/l2/utils/prover/save_state.rs +++ b/crates/l2/utils/prover/save_state.rs @@ -12,6 +12,9 @@ use std::{ io::{BufWriter, Write}, }; +#[cfg(not(test))] +/// The default directory for data storage when not running tests. +/// This constant is used to define the default path for data files. const DEFAULT_DATADIR: &str = "ethrex_l2_state"; #[cfg(not(test))] From 21fee227606c4ee7277c97ad499b88fc1cc06e53 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Mon, 30 Dec 2024 14:20:40 -0300 Subject: [PATCH 28/29] fix --- crates/l2/utils/prover/proving_systems.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/l2/utils/prover/proving_systems.rs b/crates/l2/utils/prover/proving_systems.rs index 4dd16c7c0..56ee56a90 100644 --- a/crates/l2/utils/prover/proving_systems.rs +++ b/crates/l2/utils/prover/proving_systems.rs @@ -69,7 +69,7 @@ impl Risc0Proof { Err(_) => vec![0u8; 4], }; - let mut image_id = [0_u32; Self::SELECTOR_SIZE]; + let mut image_id = [0_u32; Self::IMAGE_ID_SIZE]; for (i, b) in image_id.iter_mut().enumerate() { *b = *self.prover_id.get(i).ok_or(ProverServerError::Custom( "Failed to get image_id in handle_proof_submission()".to_owned(), From 508f59ad65ee34d666ed71f2edcae12216c0ac45 Mon Sep 17 00:00:00 2001 From: fborello-lambda Date: Mon, 30 Dec 2024 14:28:51 -0300 Subject: [PATCH 29/29] chore: Makefile Changes --- crates/l2/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/l2/Makefile b/crates/l2/Makefile index 28433ab3c..c4e4ffb64 100644 --- a/crates/l2/Makefile +++ b/crates/l2/Makefile @@ -1,4 +1,4 @@ -.PHONY: help init down clean restart cli update-cli-contracts init-local-l1 init-l1 down-local-l1 restart-local-l1 rm-db-l1 clean-contract-deps restart-contract-deps deploy-l1 init-l2 down-l2 restart-l2 init-prover rm-db-l2 ci_test test +.PHONY: help init down clean restart cli update-cli-contracts init-local-l1 init-l1 down-local-l1 restart-local-l1 rm-db-l1 clean-contract-deps restart-contract-deps deploy-l1 init-l2 down-l2 restart-l2 init-prover rm-db-l2 purge_prover_state ci_test test .DEFAULT_GOAL := help L2_GENESIS_FILE_PATH=../../test_data/genesis-l2.json @@ -136,8 +136,8 @@ test: ## 🚧 Runs the L2's integration test, run `make init` and in a new termi # Purge L2's state - UNAME_S:=$(shell uname -s) +# This directory is set by crates/l2/utils/prover/save_state.rs -> const DEFAULT_DATADIR PROJECT_NAME:=ethrex_l2_state ifeq ($(UNAME_S),Linux)