From 6559a3d510fc2209d7d99d9bce99746078182f50 Mon Sep 17 00:00:00 2001 From: gyan0890 Date: Wed, 29 Mar 2023 00:09:45 +0530 Subject: [PATCH 01/17] Committed Chapter 1.5 of StarkNet Book v1.0 --- .../chapter_1/pages/environment_setup.adoc | 131 +++++++++++++++++- 1 file changed, 129 insertions(+), 2 deletions(-) diff --git a/chapters/modules/chapter_1/pages/environment_setup.adoc b/chapters/modules/chapter_1/pages/environment_setup.adoc index 3b2f89c07..3ca6f5f11 100644 --- a/chapters/modules/chapter_1/pages/environment_setup.adoc +++ b/chapters/modules/chapter_1/pages/environment_setup.adoc @@ -1,9 +1,136 @@ [id="environment"] [#setup] -= Setting up your environment += Setting up your local development environment == Contributing 🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. -🎯 \ No newline at end of file +🎯 + +_*Disclaimers: At the time of writing this tutorial, Cairo 1.0 is at a very early stage and is prone to errors and bugs. Any suggestions/fixes from the community are most welcome._ + +To write and deploy Cairo contracts on StarkNet, as of today, you will need to install 2 types of repositories: +* CLI to deploy the contract on StarkNet and interact with it (cairo-lang repo) +* Cairo repository: To compile your Cairo 1 smart contract to sierra + +The above repositories require you to have the following minimum prerequisites: +* Python 3.9 (You can download from https://www.python.org/downloads/release/python-390/[here]). +* Rust (You can install Rust from https://www.rust-lang.org/tools/install[here]). + +If you already have Python and Rust installed, make sure to double check your Python version and update Rust to the latest version. + +Let’s start with installing the CLI on your system. + + +== CLI Installation + +++++++Step 1: Set up your virtual environment ++++++ + +We recommend working inside a Python virtual environment, but you can also install the Cairo package directly. To create and enter the virtual environment, type: + +[,Bash] +---- +#Activate your cairo virtual environment +python3.9 -m venv ~/cairo_venv +source ~/cairo_venv/bin/activate +---- + +Make sure the venv is activated – you should see (cairo_venv) in the command line prompt. +Your terminal should look like this: +TBD - Picture + + +++++++Step 2: Install the necessary dependencies ++++++ + +Make sure you can install the following pip packages + +ecdsa, fastecdsa, sympy (using pip3 install ecdsa fastecdsa sympy). +On Ubuntu, for example, you will have to first run: + +[,Bash] +---- +sudo apt install -y libgmp3-dev +---- + +On Mac, you can use brew: + +[,Bash] +---- +brew install gmp +---- + +There might be some other libraries which are not direct dependencies but they might be indirect dependencies that you would need to install based on your operating system. + + +++++++Step 3: Install cairo-lang CLI ++++++ + +If you had cairo-lang installed previously, uninstall it and install the latest downloaded version. + +[,Bash] +---- +pip3 uninstall cairo-lang +---- + +[,Bash] +---- +pip3 install cairo-lang-0.11.0.1.zip +---- + +Once you have installed the cairo lang package and installed it, make sure to test your installation by running the following command: + +[,Bash] +---- +starknet --version +---- + +Your final output should look something like this: +TBD - Picture + +If your output is as per the above screenshot, then you are all set to get to the next steps! Let’s go! + +____ +NOTE: For M1 and M2 users, if you face any issues while running starknet - -version command, +then you may refer to https://github.com/OpenZeppelin/nile/issues/22[this] article to follow alternate steps to install the dependencies in Step 2. +____ + +== Cairo 1 Installation + +++++++Step1: Clone the cairo repository and set it up using the following instructions:++++++ + +[,Bash] +---- +# Clone the Cairo compiler to the $HOME directory +git clone https://github.com/starkware-libs/cairo/ + +#Rename the cairo folder to .cairo in order to keep it hidden +mv cairo .cairo + +#Checkout into the working branch and generate the release binaries +cd .cairo/ +git checkout 9c190561ce1e8323665857f1a77082925c817b4c +cargo build --all --release + +---- + +++++++Step 2: Add Cairo 1.0 executables to your path:++++++ + +Now that we have built the Cairo 1.0 binaries, we need to add them to the PATH environment variable. Add the following in your .bashrc or .zshrc: + +[,Bash] +---- +#Add the below command to your .bashrc or .zshrc +export PATH="$HOME/.cairo/target/release:$PATH" +---- + +After that, open a new shell and check that the following command returns a version number: + +[,Bash] +---- +cairo-compile --version +---- + +Your output should look something like this(not necessarily inside the cairo_venv): +TBD - Picture + +Woohoo! Now we have everything we need to compile, deploy and interact with our first Cairo contract! \ No newline at end of file From c69574021b340298ec3ae07a03b34498138ab221 Mon Sep 17 00:00:00 2001 From: gyan0890 Date: Wed, 29 Mar 2023 14:54:29 +0530 Subject: [PATCH 02/17] Adding Chapter 1.6 for StarkNet Book Chapter 1, v1.0 Cairo 1 --- .../chapter_1/pages/deploying_contracts.adoc | 201 +++++++++++++++++- 1 file changed, 200 insertions(+), 1 deletion(-) diff --git a/chapters/modules/chapter_1/pages/deploying_contracts.adoc b/chapters/modules/chapter_1/pages/deploying_contracts.adoc index eb644eae7..b6ceba1dc 100644 --- a/chapters/modules/chapter_1/pages/deploying_contracts.adoc +++ b/chapters/modules/chapter_1/pages/deploying_contracts.adoc @@ -5,4 +5,203 @@ == Contributing 🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. -🎯 \ No newline at end of file +🎯 + +_*Disclaimers: At the time of writing this tutorial, Cairo 1.0 is at a very early stage and is prone to errors and bugs. Any suggestions/fixes from the community are most welcome._ + +In this chapter, you will learn to compile, deploy and interact with a StarkNet contract written in Cairo. +Follow the below steps in order to accomplish the above goal! + +++++++Step 1: Setting up account related environment variables ++++++ +Type the following commands on your terminal in order to set the account related environment variables. You can use the default wallet provided by OpenZeppelin for ease of use. + +[,Bash] +---- +export STARKNET_NETWORK=alpha-goerli +export STARKNET_WALLET=starkware.starknet.wallets.open_zeppelin.OpenZeppelinAccount +---- + +++++++Step 2: Setting a new account for the tutorial ++++++ + +You need to make sure your starknet CLI is set up with a proper account contract, and funds. For safety, let us create a new one just for this chapter. + + +[,Bash] +---- +#Generic Syntax +starknet new_account --account + +#Create your new account named "test_v11" +starknet new_account --account test_v11 +---- + +Once you have run the above command, monitor the transaction and wait until it has crossed the "Pending" state. +Then proceed with the below instructions. + +* You should get your expected contract address +* Send 0.1 ETH to it +* Monitor the transfer transaction. Once it has passed "pending", proceed + +Deploy your account once you have funded it with 0.1 ETH. You can either use the +https://faucet.goerli.starknet.io[faucet] or bridge Goerli ETH from Ethereum to Starknet. + +Account deployment command: + +[,Bash] +---- +starknet deploy_account --account test_v11 +---- + +Your sample output should look something like this: +[,Bash] +---- +(cairo_venv) gyan@Gnanas-MacBook-Pro .cairo % starknet deploy_account --account test_v11 +Sending the transaction with max_fee: 0.000568 ETH (568383605914463 WEI). +Sent deploy account contract transaction. +Contract address: 0x03f42fc2355be54197a8b270ff2cb8e2eb7902e777b3498f8ad58c6c147cce60 +Transaction hash: 0x3d15e05389ecd1ff65555220be57f0ab43729877b20ca086048276917ed2838 +---- + +Monitor the transaction until it passes the "pending" state. + ++++++Step 3: Create, compile and deploy your contract++++++ + +Before we get started, make sure that the below commands are working properly on your system: + +[,Bash] +---- +starknet --version +starknet-compile --version +---- + +You can now create a folder of your choice where you would like to practice your cairo skills (TBD: Insert a smiley). Inside the new folder, create a file name TBD-Italics(hello_starknet.cairo). + +[,Bash] +---- +#Create a new folder for practicing your cairo skills +cd ~/ +mkdir cairo_practice && cd cairo_practice + +#Create a new file called hello_starknet.cairo +touch hello_starknet.cairo +---- + +Copy paste the following piece of code into your hello_starknet.cairo file: + +[,Bash] +---- +#[contract] + mod HelloStarknet { + usestarknet::get_caller_address; + usestarknet::ContractAddress; + + #[event] + fnHello(from:ContractAddress, value:felt252) {} + + #[external] + fnSay_Hello(message:felt252) { + letcaller=get_caller_address(); + Hello(caller, message); + } + + } +---- + +Compile the above starknet contract using the following command: + +[,Bash] +---- +starknet-compile --hello_starknet.cairo hello_starknet.json --replace-ids +---- + +The above command should compile to produce a hello_starknet.json in the same folder, however if the above command doesn't work, then here is an alternate approach to creating & compiling your cairo contracts. + ++++++Alternate Option++++++ + +Instead of creating a new folder, work within the same .cairo/ folder that you had created while installing the cairo lang package. We will use cargo run to run the starknet-compile if it doesn't work out of the box on some systems. + +[,Bash] +---- +#cd into your .cairo folder +cd ~/.cairo + +#Create the hello_starknet.cairo file in your .cairo folder and compile it +cargo run --bin starknet-compile -- hello_starknet.cairo hello_starknet.json --replace-ids + +---- + +Now that you have your account ready from Step 3, let’s declare your compiled contract and deploy it using the new account. + +[,Bash] +---- +starknet declare --contract hello_starknet.json --account test_v11 +---- + +____ +NOTE: If the declare command throws the following error: Error: OSError: [Errno 8] Exec format error: '/Users/gyan/cairo_venv/lib/python3.9/site-packages/starkware/starknet/compiler/v1/bin/starknet-sierra-compile' + +then, you need to copy the starknet-sierra-compile from the .cairo folder to add it to the Python Libs using the following command: + +(Assuming that you are within the .cairo/ folder) +cp target/release/starknet-sierra-compile ~/cairo_venv/lib/python3.9/site-packages/starkware/starknet/compiler/v1/bin/starknet-sierra-compile +____ + +____ +NOTE: Once you have replaced the library, you can run the starknet declare command again and you should get a class hash as the output. +____ + +For example, a class hash that was deployed a while ago can be found on StarkScan https://testnet.starkscan.co/class/0x03ae6bb224f12a8818c3ad59cc248968e8ee3a3081ff805610141695381a28f7 [here]. + +Using the above generated class hash, deploy the contract: + +[,Bash] +---- +starknet deploy --class_hash 0x03ae6bb224f12a8818c3ad59cc248968e8ee3a3081ff805610141695381a28f7 --account test_v11 +---- + +____ +NOTE: P.S: If you run into any fee related issues, please add the flag --max_fee 100000000000000000 to your CLI commands. +____ + +Monitor the deploy transaction. Once it has passed "pending", proceed. + +Wohooo! If all goes well, you have just deployed your first ever Cairo 1.0 contract on the StarkNet testnet! Congratulations. + ++++++Step 4: Interact with your contract++++++ + +If you quickly browse through the above contract(hello_starknet.cairo), you can see, the contract has a simple function: Say_Hello which we are going to learn to invoke in this step. + +[,Bash] +---- + +#Function that we will be invoking +#[external] + fnSay_Hello(message:felt252) { + letcaller=get_caller_address(); + Hello(caller, message); + } +---- + +The syntax to invoke a function in your contract is: + +[,Bash] +---- +starknet invoke --function --address
--max_fee 100000000000000000 --account + +#Invoking our Say_Hello function +starknet invoke --function Say_Hello --address 0x00e0309ca73c5097533ba200e08426b7efb3ee6b79ab6956bd4bb684d3385556 --input 152 --max_fee 100000000000000000 --account test_v11 +---- + +Monitor the transaction. Once it has been accepted on L2, the first acceptance is indicated and once it has been accepted on L1, the tx has been added to Ethereum. + + ++++++Step 5: Explore your transaction on StarkScan++++++ + +Once your tx has been accepted on L2, you will be able to explore the events emitted and other details of your transaction on StarkNet block explorers like StarkScan. + +Here is an example of the tx that I just invoked using the above command: +https://testnet.starkscan.co/event/0x01093a8f548de7e7353f7b74ee85d9724a8c2874548dd57d89acc56dd750c8be_0 + +TBD - Insert Image + +If you switch to the events tab(example data in the image above), you should be able to see that the Event Data emitted is the caller and message(Index 0 and 1 respectively) as per the contract code. The caller is the address of the account that you created to deploy the contract and the message is the input that you have sent while invoking the Say_Hello function. \ No newline at end of file From 0807fb8ca2176668c9f9d1dda13f3d0724b57aa9 Mon Sep 17 00:00:00 2001 From: Gyan Date: Wed, 29 Mar 2023 15:03:23 +0530 Subject: [PATCH 03/17] Update environment_setup.adoc --- chapters/modules/chapter_1/pages/environment_setup.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chapters/modules/chapter_1/pages/environment_setup.adoc b/chapters/modules/chapter_1/pages/environment_setup.adoc index 3ca6f5f11..390840775 100644 --- a/chapters/modules/chapter_1/pages/environment_setup.adoc +++ b/chapters/modules/chapter_1/pages/environment_setup.adoc @@ -90,7 +90,7 @@ TBD - Picture If your output is as per the above screenshot, then you are all set to get to the next steps! Let’s go! ____ -NOTE: For M1 and M2 users, if you face any issues while running starknet - -version command, +NOTE: For M1 and M2 users, if you face any issues while running starknet --version command, then you may refer to https://github.com/OpenZeppelin/nile/issues/22[this] article to follow alternate steps to install the dependencies in Step 2. ____ @@ -133,4 +133,4 @@ cairo-compile --version Your output should look something like this(not necessarily inside the cairo_venv): TBD - Picture -Woohoo! Now we have everything we need to compile, deploy and interact with our first Cairo contract! \ No newline at end of file +Woohoo! Now we have everything we need to compile, deploy and interact with our first Cairo contract! From 88ad18e8bc7877dd044008ee757acaced53d4020 Mon Sep 17 00:00:00 2001 From: Gyan Date: Wed, 29 Mar 2023 15:04:42 +0530 Subject: [PATCH 04/17] Update environment_setup.adoc --- chapters/modules/chapter_1/pages/environment_setup.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapters/modules/chapter_1/pages/environment_setup.adoc b/chapters/modules/chapter_1/pages/environment_setup.adoc index 390840775..89143b3f7 100644 --- a/chapters/modules/chapter_1/pages/environment_setup.adoc +++ b/chapters/modules/chapter_1/pages/environment_setup.adoc @@ -10,7 +10,7 @@ _*Disclaimers: At the time of writing this tutorial, Cairo 1.0 is at a very early stage and is prone to errors and bugs. Any suggestions/fixes from the community are most welcome._ -To write and deploy Cairo contracts on StarkNet, as of today, you will need to install 2 types of repositories: +To write and deploy Cairo contracts on StarkNet, as of today, you will need to install 2 types of repositories: + * CLI to deploy the contract on StarkNet and interact with it (cairo-lang repo) * Cairo repository: To compile your Cairo 1 smart contract to sierra From 2a5ba440d0cdbd1d4b62bd185d69e40f27ae3548 Mon Sep 17 00:00:00 2001 From: Gyan Date: Wed, 29 Mar 2023 15:05:16 +0530 Subject: [PATCH 05/17] Update environment_setup.adoc --- .../modules/chapter_1/pages/environment_setup.adoc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/chapters/modules/chapter_1/pages/environment_setup.adoc b/chapters/modules/chapter_1/pages/environment_setup.adoc index 89143b3f7..c10e9a99e 100644 --- a/chapters/modules/chapter_1/pages/environment_setup.adoc +++ b/chapters/modules/chapter_1/pages/environment_setup.adoc @@ -11,12 +11,12 @@ _*Disclaimers: At the time of writing this tutorial, Cairo 1.0 is at a very early stage and is prone to errors and bugs. Any suggestions/fixes from the community are most welcome._ To write and deploy Cairo contracts on StarkNet, as of today, you will need to install 2 types of repositories: + -* CLI to deploy the contract on StarkNet and interact with it (cairo-lang repo) -* Cairo repository: To compile your Cairo 1 smart contract to sierra +* CLI to deploy the contract on StarkNet and interact with it (cairo-lang repo) + +* Cairo repository: To compile your Cairo 1 smart contract to sierra + -The above repositories require you to have the following minimum prerequisites: -* Python 3.9 (You can download from https://www.python.org/downloads/release/python-390/[here]). -* Rust (You can install Rust from https://www.rust-lang.org/tools/install[here]). +The above repositories require you to have the following minimum prerequisites: + +* Python 3.9 (You can download from https://www.python.org/downloads/release/python-390/[here]). + +* Rust (You can install Rust from https://www.rust-lang.org/tools/install[here]). + If you already have Python and Rust installed, make sure to double check your Python version and update Rust to the latest version. From 282a03a2d261d43117fff7e6199ab8192940d70a Mon Sep 17 00:00:00 2001 From: Gyan Date: Wed, 29 Mar 2023 16:06:39 +0530 Subject: [PATCH 06/17] Update deploying_contracts.adoc --- .../chapter_1/pages/deploying_contracts.adoc | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/chapters/modules/chapter_1/pages/deploying_contracts.adoc b/chapters/modules/chapter_1/pages/deploying_contracts.adoc index b6ceba1dc..61f327cb3 100644 --- a/chapters/modules/chapter_1/pages/deploying_contracts.adoc +++ b/chapters/modules/chapter_1/pages/deploying_contracts.adoc @@ -10,7 +10,7 @@ _*Disclaimers: At the time of writing this tutorial, Cairo 1.0 is at a very early stage and is prone to errors and bugs. Any suggestions/fixes from the community are most welcome._ In this chapter, you will learn to compile, deploy and interact with a StarkNet contract written in Cairo. -Follow the below steps in order to accomplish the above goal! +Follow the below steps in order to accomplish your goal! ++++++Step 1: Setting up account related environment variables ++++++ Type the following commands on your terminal in order to set the account related environment variables. You can use the default wallet provided by OpenZeppelin for ease of use. @@ -36,11 +36,11 @@ starknet new_account --account test_v11 ---- Once you have run the above command, monitor the transaction and wait until it has crossed the "Pending" state. -Then proceed with the below instructions. +Then proceed with the below instructions. + -* You should get your expected contract address -* Send 0.1 ETH to it -* Monitor the transfer transaction. Once it has passed "pending", proceed +* You should get your expected contract address + +* Send 0.1 ETH to it + +* Monitor the transfer transaction. Once it has passed "pending", proceed + Deploy your account once you have funded it with 0.1 ETH. You can either use the https://faucet.goerli.starknet.io[faucet] or bridge Goerli ETH from Ethereum to Starknet. @@ -53,6 +53,7 @@ starknet deploy_account --account test_v11 ---- Your sample output should look something like this: + [,Bash] ---- (cairo_venv) gyan@Gnanas-MacBook-Pro .cairo % starknet deploy_account --account test_v11 @@ -64,7 +65,7 @@ Transaction hash: 0x3d15e05389ecd1ff65555220be57f0ab43729877b20ca086048276917ed2 Monitor the transaction until it passes the "pending" state. -+++++Step 3: Create, compile and deploy your contract++++++ +++++++Step 3: Create, compile and deploy your contract++++++ Before we get started, make sure that the below commands are working properly on your system: @@ -116,7 +117,7 @@ starknet-compile --hello_starknet.cairo hello_starknet.json --replace-ids The above command should compile to produce a hello_starknet.json in the same folder, however if the above command doesn't work, then here is an alternate approach to creating & compiling your cairo contracts. -+++++Alternate Option++++++ +++++++Alternate Option++++++ Instead of creating a new folder, work within the same .cairo/ folder that you had created while installing the cairo lang package. We will use cargo run to run the starknet-compile if it doesn't work out of the box on some systems. @@ -167,7 +168,7 @@ Monitor the deploy transaction. Once it has passed "pending", proceed. Wohooo! If all goes well, you have just deployed your first ever Cairo 1.0 contract on the StarkNet testnet! Congratulations. -+++++Step 4: Interact with your contract++++++ +++++++Step 4: Interact with your contract++++++ If you quickly browse through the above contract(hello_starknet.cairo), you can see, the contract has a simple function: Say_Hello which we are going to learn to invoke in this step. @@ -195,7 +196,7 @@ starknet invoke --function Say_Hello --address 0x00e0309ca73c5097533ba200e08426b Monitor the transaction. Once it has been accepted on L2, the first acceptance is indicated and once it has been accepted on L1, the tx has been added to Ethereum. -+++++Step 5: Explore your transaction on StarkScan++++++ +++++++Step 5: Explore your transaction on StarkScan++++++ Once your tx has been accepted on L2, you will be able to explore the events emitted and other details of your transaction on StarkNet block explorers like StarkScan. @@ -204,4 +205,4 @@ https://testnet.starkscan.co/event/0x01093a8f548de7e7353f7b74ee85d9724a8c2874548 TBD - Insert Image -If you switch to the events tab(example data in the image above), you should be able to see that the Event Data emitted is the caller and message(Index 0 and 1 respectively) as per the contract code. The caller is the address of the account that you created to deploy the contract and the message is the input that you have sent while invoking the Say_Hello function. \ No newline at end of file +If you switch to the events tab(example data in the image above), you should be able to see that the Event Data emitted is the caller and message(Index 0 and 1 respectively) as per the contract code. The caller is the address of the account that you created to deploy the contract and the message is the input that you have sent while invoking the Say_Hello function. From 8f65e016d7e591ce606eeef1fc2a7e289a7bcfc3 Mon Sep 17 00:00:00 2001 From: Gyan Date: Wed, 29 Mar 2023 16:07:04 +0530 Subject: [PATCH 07/17] Update deploying_contracts.adoc --- chapters/modules/chapter_1/pages/deploying_contracts.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/chapters/modules/chapter_1/pages/deploying_contracts.adoc b/chapters/modules/chapter_1/pages/deploying_contracts.adoc index 61f327cb3..8be5a720a 100644 --- a/chapters/modules/chapter_1/pages/deploying_contracts.adoc +++ b/chapters/modules/chapter_1/pages/deploying_contracts.adoc @@ -13,6 +13,7 @@ In this chapter, you will learn to compile, deploy and interact with a StarkNet Follow the below steps in order to accomplish your goal! ++++++Step 1: Setting up account related environment variables ++++++ + Type the following commands on your terminal in order to set the account related environment variables. You can use the default wallet provided by OpenZeppelin for ease of use. [,Bash] From 650bb88950ed1f15bec1b9875d6ebd52fef2d4e6 Mon Sep 17 00:00:00 2001 From: Gyan Date: Wed, 29 Mar 2023 16:08:07 +0530 Subject: [PATCH 08/17] Update deploying_contracts.adoc --- chapters/modules/chapter_1/pages/deploying_contracts.adoc | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/chapters/modules/chapter_1/pages/deploying_contracts.adoc b/chapters/modules/chapter_1/pages/deploying_contracts.adoc index 8be5a720a..74cfe9495 100644 --- a/chapters/modules/chapter_1/pages/deploying_contracts.adoc +++ b/chapters/modules/chapter_1/pages/deploying_contracts.adoc @@ -140,10 +140,7 @@ starknet declare --contract hello_starknet.json --account test_v11 ---- ____ -NOTE: If the declare command throws the following error: Error: OSError: [Errno 8] Exec format error: '/Users/gyan/cairo_venv/lib/python3.9/site-packages/starkware/starknet/compiler/v1/bin/starknet-sierra-compile' - -then, you need to copy the starknet-sierra-compile from the .cairo folder to add it to the Python Libs using the following command: - +NOTE: If the declare command throws the following error: Error: OSError: [Errno 8] Exec format error: '/Users/gyan/cairo_venv/lib/python3.9/site-packages/starkware/starknet/compiler/v1/bin/starknet-sierra-compile' - then, you need to copy the starknet-sierra-compile from the .cairo folder to add it to the Python Libs using the following command: (Assuming that you are within the .cairo/ folder) cp target/release/starknet-sierra-compile ~/cairo_venv/lib/python3.9/site-packages/starkware/starknet/compiler/v1/bin/starknet-sierra-compile ____ From 55e068e548f96d6a9866b2bab49437d44fbaac00 Mon Sep 17 00:00:00 2001 From: Gyan Date: Wed, 29 Mar 2023 16:09:20 +0530 Subject: [PATCH 09/17] Update deploying_contracts.adoc --- chapters/modules/chapter_1/pages/deploying_contracts.adoc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/chapters/modules/chapter_1/pages/deploying_contracts.adoc b/chapters/modules/chapter_1/pages/deploying_contracts.adoc index 74cfe9495..0c6301f02 100644 --- a/chapters/modules/chapter_1/pages/deploying_contracts.adoc +++ b/chapters/modules/chapter_1/pages/deploying_contracts.adoc @@ -142,7 +142,10 @@ starknet declare --contract hello_starknet.json --account test_v11 ____ NOTE: If the declare command throws the following error: Error: OSError: [Errno 8] Exec format error: '/Users/gyan/cairo_venv/lib/python3.9/site-packages/starkware/starknet/compiler/v1/bin/starknet-sierra-compile' - then, you need to copy the starknet-sierra-compile from the .cairo folder to add it to the Python Libs using the following command: (Assuming that you are within the .cairo/ folder) +[,Bash] +---- cp target/release/starknet-sierra-compile ~/cairo_venv/lib/python3.9/site-packages/starkware/starknet/compiler/v1/bin/starknet-sierra-compile +---- ____ ____ From 35738d73386d1e8b8a9d4e76b86933820ee0b544 Mon Sep 17 00:00:00 2001 From: Gyan Date: Wed, 29 Mar 2023 16:10:03 +0530 Subject: [PATCH 10/17] Update deploying_contracts.adoc --- chapters/modules/chapter_1/pages/deploying_contracts.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapters/modules/chapter_1/pages/deploying_contracts.adoc b/chapters/modules/chapter_1/pages/deploying_contracts.adoc index 0c6301f02..3d3aa57bd 100644 --- a/chapters/modules/chapter_1/pages/deploying_contracts.adoc +++ b/chapters/modules/chapter_1/pages/deploying_contracts.adoc @@ -141,9 +141,9 @@ starknet declare --contract hello_starknet.json --account test_v11 ____ NOTE: If the declare command throws the following error: Error: OSError: [Errno 8] Exec format error: '/Users/gyan/cairo_venv/lib/python3.9/site-packages/starkware/starknet/compiler/v1/bin/starknet-sierra-compile' - then, you need to copy the starknet-sierra-compile from the .cairo folder to add it to the Python Libs using the following command: -(Assuming that you are within the .cairo/ folder) [,Bash] ---- +#Assuming that you are within the .cairo/ folder cp target/release/starknet-sierra-compile ~/cairo_venv/lib/python3.9/site-packages/starkware/starknet/compiler/v1/bin/starknet-sierra-compile ---- ____ From fb7e23f45a8d27b5742721ffcbfd12784466eaa1 Mon Sep 17 00:00:00 2001 From: Manmit Singh <49245208+SupremeSingh@users.noreply.github.com> Date: Sun, 2 Apr 2023 14:48:11 -0700 Subject: [PATCH 11/17] :art: overall nits and improvements (#49) Co-authored-by: Manmit Singh --- .../chapter_1/pages/cairo_basics_1.adoc | 2 +- .../chapter_1/pages/cairo_basics_2.adoc | 2 +- .../chapter_1/pages/deploying_contracts.adoc | 17 ++--- .../chapter_1/pages/environment_setup.adoc | 70 +++++++++++-------- chapters/modules/chapter_1/pages/erc1155.adoc | 2 +- chapters/modules/chapter_1/pages/erc20.adoc | 2 +- chapters/modules/chapter_1/pages/erc721.adoc | 2 +- chapters/modules/chapter_1/pages/index.adoc | 4 +- .../modules/chapter_1/pages/openzeppelin.adoc | 2 +- chapters/modules/chapter_1/pages/proxy.adoc | 2 +- .../modules/chapter_1/pages/recursion.adoc | 2 +- .../chapter_1/pages/starknet_contracts.adoc | 2 +- .../modules/chapter_1/pages/transpiling.adoc | 2 +- chapters/modules/chapter_2/pages/bridge.adoc | 2 +- chapters/modules/chapter_2/pages/caigo.adoc | 2 +- chapters/modules/chapter_2/pages/coffee.adoc | 2 +- .../modules/chapter_2/pages/compiling.adoc | 2 +- .../modules/chapter_2/pages/dependencies.adoc | 2 +- .../chapter_2/pages/deploying_devnet.adoc | 2 +- .../chapter_2/pages/deploying_testnet.adoc | 2 +- chapters/modules/chapter_2/pages/devnet.adoc | 2 +- .../modules/chapter_2/pages/explorers.adoc | 2 +- chapters/modules/chapter_2/pages/hardhat.adoc | 2 +- chapters/modules/chapter_2/pages/index.adoc | 2 +- .../modules/chapter_2/pages/indexing.adoc | 2 +- chapters/modules/chapter_2/pages/juno.adoc | 2 +- chapters/modules/chapter_2/pages/nile.adoc | 2 +- .../modules/chapter_2/pages/pathfinder.adoc | 2 +- .../modules/chapter_2/pages/starknetjs.adoc | 2 +- .../modules/chapter_2/pages/starknetpy.adoc | 2 +- .../modules/chapter_2/pages/starknetrs.adoc | 2 +- chapters/modules/chapter_2/pages/testing.adoc | 2 +- .../chapter_2/pages/testing_protostar.adoc | 2 +- .../chapter_2/pages/testing_python.adoc | 2 +- chapters/modules/chapter_2/pages/wallets.adoc | 2 +- .../chapter_3/pages/account_abstraction.adoc | 2 +- .../modules/chapter_3/pages/accounts.adoc | 2 +- chapters/modules/chapter_3/pages/blocks.adoc | 2 +- chapters/modules/chapter_3/pages/fees.adoc | 2 +- chapters/modules/chapter_3/pages/hints.adoc | 2 +- chapters/modules/chapter_3/pages/index.adoc | 2 +- chapters/modules/chapter_3/pages/l1l2.adoc | 2 +- chapters/modules/chapter_3/pages/provers.adoc | 2 +- .../modules/chapter_3/pages/sequencers.adoc | 2 +- .../modules/chapter_3/pages/starknet_os.adoc | 2 +- chapters/modules/chapter_3/pages/state.adoc | 2 +- .../modules/chapter_3/pages/transactions.adoc | 2 +- .../chapter_3/pages/verifiers_cairo.adoc | 2 +- .../chapter_3/pages/verifiers_solidity.adoc | 2 +- .../modules/chapter_4/pages/community.adoc | 2 +- chapters/modules/chapter_4/pages/data.adoc | 2 +- .../chapter_4/pages/decentralization.adoc | 2 +- chapters/modules/chapter_4/pages/fractal.adoc | 2 +- chapters/modules/chapter_4/pages/index.adoc | 2 +- chapters/modules/chapter_4/pages/market.adoc | 2 +- .../chapter_4/pages/parallelization.adoc | 2 +- .../modules/chapter_4/pages/recursion.adoc | 2 +- .../modules/chapter_4/pages/throughput.adoc | 2 +- .../modules/chapter_5/pages/allocation.adoc | 2 +- chapters/modules/chapter_5/pages/cairo.adoc | 2 +- chapters/modules/chapter_5/pages/cairovm.adoc | 2 +- chapters/modules/chapter_5/pages/casm.adoc | 2 +- chapters/modules/chapter_5/pages/felts.adoc | 2 +- chapters/modules/chapter_5/pages/hints.adoc | 2 +- chapters/modules/chapter_5/pages/index.adoc | 2 +- .../modules/chapter_5/pages/integrity.adoc | 2 +- .../modules/chapter_5/pages/polynomial.adoc | 2 +- chapters/modules/chapter_5/pages/silicon.adoc | 2 +- chapters/modules/chapter_5/pages/turing.adoc | 2 +- .../chapter_6/pages/arithmetization.adoc | 2 +- .../modules/chapter_6/pages/cryptography.adoc | 2 +- .../chapter_6/pages/efficient_starks.adoc | 2 +- chapters/modules/chapter_6/pages/fri.adoc | 2 +- .../modules/chapter_6/pages/geometry.adoc | 2 +- chapters/modules/chapter_6/pages/index.adoc | 2 +- .../chapter_6/pages/introduction_starks.adoc | 2 +- .../modules/chapter_6/pages/low_testing.adoc | 2 +- .../chapter_6/pages/number_theory.adoc | 2 +- .../chapter_6/pages/starks_snarks.adoc | 2 +- .../chapter_6/pages/trust_verification.adoc | 2 +- package.json | 13 ++-- 81 files changed, 132 insertions(+), 126 deletions(-) diff --git a/chapters/modules/chapter_1/pages/cairo_basics_1.adoc b/chapters/modules/chapter_1/pages/cairo_basics_1.adoc index 66aaa35f1..a207880d2 100644 --- a/chapters/modules/chapter_1/pages/cairo_basics_1.adoc +++ b/chapters/modules/chapter_1/pages/cairo_basics_1.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 \ No newline at end of file diff --git a/chapters/modules/chapter_1/pages/cairo_basics_2.adoc b/chapters/modules/chapter_1/pages/cairo_basics_2.adoc index 308bea0ce..00e6d24c6 100644 --- a/chapters/modules/chapter_1/pages/cairo_basics_2.adoc +++ b/chapters/modules/chapter_1/pages/cairo_basics_2.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 \ No newline at end of file diff --git a/chapters/modules/chapter_1/pages/deploying_contracts.adoc b/chapters/modules/chapter_1/pages/deploying_contracts.adoc index 3d3aa57bd..dfde3f213 100644 --- a/chapters/modules/chapter_1/pages/deploying_contracts.adoc +++ b/chapters/modules/chapter_1/pages/deploying_contracts.adoc @@ -2,13 +2,6 @@ = Deploying Starknet contracts -== Contributing - -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. -🎯 - -_*Disclaimers: At the time of writing this tutorial, Cairo 1.0 is at a very early stage and is prone to errors and bugs. Any suggestions/fixes from the community are most welcome._ - In this chapter, you will learn to compile, deploy and interact with a StarkNet contract written in Cairo. Follow the below steps in order to accomplish your goal! @@ -152,7 +145,7 @@ ____ NOTE: Once you have replaced the library, you can run the starknet declare command again and you should get a class hash as the output. ____ -For example, a class hash that was deployed a while ago can be found on StarkScan https://testnet.starkscan.co/class/0x03ae6bb224f12a8818c3ad59cc248968e8ee3a3081ff805610141695381a28f7 [here]. +For example, a class hash that was deployed a while ago can be found on StarkScan https://testnet.starkscan.co/class/0x03ae6bb224f12a8818c3ad59cc248968e8ee3a3081ff805610141695381a28f7[here]. Using the above generated class hash, deploy the contract: @@ -201,9 +194,13 @@ Monitor the transaction. Once it has been accepted on L2, the first acceptance i Once your tx has been accepted on L2, you will be able to explore the events emitted and other details of your transaction on StarkNet block explorers like StarkScan. -Here is an example of the tx that I just invoked using the above command: -https://testnet.starkscan.co/event/0x01093a8f548de7e7353f7b74ee85d9724a8c2874548dd57d89acc56dd750c8be_0 +https://testnet.starkscan.co/event/0x01093a8f548de7e7353f7b74ee85d9724a8c2874548dd57d89acc56dd750c8be_0[Here] is an example of the tx that I just invoked using the above command: TBD - Insert Image If you switch to the events tab(example data in the image above), you should be able to see that the Event Data emitted is the caller and message(Index 0 and 1 respectively) as per the contract code. The caller is the address of the account that you created to deploy the contract and the message is the input that you have sent while invoking the Say_Hello function. + +== Contributing + +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. +🎯 \ No newline at end of file diff --git a/chapters/modules/chapter_1/pages/environment_setup.adoc b/chapters/modules/chapter_1/pages/environment_setup.adoc index c10e9a99e..1e5c4f930 100644 --- a/chapters/modules/chapter_1/pages/environment_setup.adoc +++ b/chapters/modules/chapter_1/pages/environment_setup.adoc @@ -3,25 +3,13 @@ [#setup] = Setting up your local development environment -== Contributing - -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. -🎯 +== Pre-Requisites -_*Disclaimers: At the time of writing this tutorial, Cairo 1.0 is at a very early stage and is prone to errors and bugs. Any suggestions/fixes from the community are most welcome._ - -To write and deploy Cairo contracts on StarkNet, as of today, you will need to install 2 types of repositories: + -* CLI to deploy the contract on StarkNet and interact with it (cairo-lang repo) + -* Cairo repository: To compile your Cairo 1 smart contract to sierra + +At the time of writing this tutorial, Cairo 1.0 is at a very early stage and is prone to errors and bugs. Please be sure to fetch and update the repositories we mention below, regularly. The above repositories require you to have the following minimum prerequisites: + -* Python 3.9 (You can download from https://www.python.org/downloads/release/python-390/[here]). + -* Rust (You can install Rust from https://www.rust-lang.org/tools/install[here]). + - -If you already have Python and Rust installed, make sure to double check your Python version and update Rust to the latest version. - -Let’s start with installing the CLI on your system. - +- https://www.python.org/downloads/release/python-390/[Python 3.9] + +- https://www.rust-lang.org/tools/install[Rust] + == CLI Installation @@ -36,16 +24,32 @@ python3.9 -m venv ~/cairo_venv source ~/cairo_venv/bin/activate ---- -Make sure the venv is activated – you should see (cairo_venv) in the command line prompt. +Alternatively, you can also use the pyenv environment manager to create a virtual environment. To do so, run the following commands: + +[,Bash] +---- +#Install pyenv +curl https://pyenv.run | bash + +#Add the following to your .bashrc or .zshrc +export PATH="$HOME/.pyenv/bin:$PATH" +eval "$(pyenv init -)" +eval "$(pyenv virtualenv-init -)" + +#Restart your terminal and run the following commands +pyenv install 3.9.0 +pyenv virtualenv 3.9.0 cairo_venv +pyenv activate cairo_venv +---- + +Either way, make sure the venv is activated – you should see (cairo_venv) in the command line prompt. Your terminal should look like this: + TBD - Picture ++++++Step 2: Install the necessary dependencies ++++++ -Make sure you can install the following pip packages - -ecdsa, fastecdsa, sympy (using pip3 install ecdsa fastecdsa sympy). On Ubuntu, for example, you will have to first run: [,Bash] @@ -60,20 +64,25 @@ On Mac, you can use brew: brew install gmp ---- +Finally, install the following dependencies: + +[,Bash] +---- +pip3 install ecdsa fastecdsa sympy +---- + There might be some other libraries which are not direct dependencies but they might be indirect dependencies that you would need to install based on your operating system. ++++++Step 3: Install cairo-lang CLI ++++++ -If you had cairo-lang installed previously, uninstall it and install the latest downloaded version. +If you had cairo-lang installed previously, uninstall it and install the latest downloaded version. To do so, you will have to download the file over https://github.com/starkware-libs/cairo-lang/archive/refs/tags/v0.11.0.1.zip[here] and place it in your path so you can build locally. [,Bash] ---- +#Uninstall the previous version pip3 uninstall cairo-lang ----- - -[,Bash] ----- +#Build locally pip3 install cairo-lang-0.11.0.1.zip ---- @@ -84,11 +93,7 @@ Once you have installed the cairo lang package and installed it, make sure to te starknet --version ---- -Your final output should look something like this: -TBD - Picture - -If your output is as per the above screenshot, then you are all set to get to the next steps! Let’s go! - +If you see a version starting with 0.11.0, then you have successfully installed the CLI. ____ NOTE: For M1 and M2 users, if you face any issues while running starknet --version command, then you may refer to https://github.com/OpenZeppelin/nile/issues/22[this] article to follow alternate steps to install the dependencies in Step 2. @@ -134,3 +139,8 @@ Your output should look something like this(not necessarily inside the cairo_ven TBD - Picture Woohoo! Now we have everything we need to compile, deploy and interact with our first Cairo contract! + +== Contributing + +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. +🎯 \ No newline at end of file diff --git a/chapters/modules/chapter_1/pages/erc1155.adoc b/chapters/modules/chapter_1/pages/erc1155.adoc index 2dd1a49fd..77d970f58 100644 --- a/chapters/modules/chapter_1/pages/erc1155.adoc +++ b/chapters/modules/chapter_1/pages/erc1155.adoc @@ -4,7 +4,7 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_1/pages/erc20.adoc b/chapters/modules/chapter_1/pages/erc20.adoc index d4a83f8e6..92dd55fb0 100644 --- a/chapters/modules/chapter_1/pages/erc20.adoc +++ b/chapters/modules/chapter_1/pages/erc20.adoc @@ -2,5 +2,5 @@ = Deploying an ERC20 -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 diff --git a/chapters/modules/chapter_1/pages/erc721.adoc b/chapters/modules/chapter_1/pages/erc721.adoc index f46abe2a4..2a97ceb0d 100644 --- a/chapters/modules/chapter_1/pages/erc721.adoc +++ b/chapters/modules/chapter_1/pages/erc721.adoc @@ -4,4 +4,4 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 diff --git a/chapters/modules/chapter_1/pages/index.adoc b/chapters/modules/chapter_1/pages/index.adoc index 1919cb93b..b6c0209cd 100644 --- a/chapters/modules/chapter_1/pages/index.adoc +++ b/chapters/modules/chapter_1/pages/index.adoc @@ -3,7 +3,7 @@ = Getting Started with Cairo programming and Starknet contracts Developers who finish this Chapter can build their own Cairo smart contracts and deploy them on the Starknet network. -We will learn everything required to code in Cairo, the language to operate on the Cairo OS (more on this at a later Chapter). -Then we will create and deploy a not-that-simple contract to allow DAO members to vote entirely on-chain. +We will learn everything required to code in Cairo, the language that lets you generate STARK proofs for general purpose computation on the Cairo OS (more on this at a later Chapter). +Then we will create and deploy a contract to allow DAO members to vote entirely on-chain. After finishing this tutorial, try to hone your skills by earning all the points in the https://github.com/starknet-edu/starknet-cairo-101[Cairo 101] workshop, code your own https://github.com/starknet-edu/starknet-erc721[ERC721 (NFT)], or deploy a customized https://github.com/starknet-edu/starknet-erc20[ERC20]. \ No newline at end of file diff --git a/chapters/modules/chapter_1/pages/openzeppelin.adoc b/chapters/modules/chapter_1/pages/openzeppelin.adoc index 67d276493..27e5592bd 100644 --- a/chapters/modules/chapter_1/pages/openzeppelin.adoc +++ b/chapters/modules/chapter_1/pages/openzeppelin.adoc @@ -4,4 +4,4 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. diff --git a/chapters/modules/chapter_1/pages/proxy.adoc b/chapters/modules/chapter_1/pages/proxy.adoc index 580d7e50a..c0702b4d3 100644 --- a/chapters/modules/chapter_1/pages/proxy.adoc +++ b/chapters/modules/chapter_1/pages/proxy.adoc @@ -4,7 +4,7 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_1/pages/recursion.adoc b/chapters/modules/chapter_1/pages/recursion.adoc index 88315801b..1e40690f3 100644 --- a/chapters/modules/chapter_1/pages/recursion.adoc +++ b/chapters/modules/chapter_1/pages/recursion.adoc @@ -20,4 +20,4 @@ Instructions on how to compile and run the program are embedded in link:./recurs == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. \ No newline at end of file +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. \ No newline at end of file diff --git a/chapters/modules/chapter_1/pages/starknet_contracts.adoc b/chapters/modules/chapter_1/pages/starknet_contracts.adoc index 1a54f8aaf..3cf94db46 100644 --- a/chapters/modules/chapter_1/pages/starknet_contracts.adoc +++ b/chapters/modules/chapter_1/pages/starknet_contracts.adoc @@ -9,5 +9,5 @@ Contracts on Starknet are written in Cairo. You can transpile a Solidity contrac == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 \ No newline at end of file diff --git a/chapters/modules/chapter_1/pages/transpiling.adoc b/chapters/modules/chapter_1/pages/transpiling.adoc index a3f6941f8..63d733c60 100644 --- a/chapters/modules/chapter_1/pages/transpiling.adoc +++ b/chapters/modules/chapter_1/pages/transpiling.adoc @@ -17,6 +17,6 @@ You are closer to the moon. == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_2/pages/bridge.adoc b/chapters/modules/chapter_2/pages/bridge.adoc index 026496881..0ddeb18d1 100644 --- a/chapters/modules/chapter_2/pages/bridge.adoc +++ b/chapters/modules/chapter_2/pages/bridge.adoc @@ -2,4 +2,4 @@ = Bridge -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. diff --git a/chapters/modules/chapter_2/pages/caigo.adoc b/chapters/modules/chapter_2/pages/caigo.adoc index 8002cff04..d3db61b87 100644 --- a/chapters/modules/chapter_2/pages/caigo.adoc +++ b/chapters/modules/chapter_2/pages/caigo.adoc @@ -4,4 +4,4 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_2/pages/coffee.adoc b/chapters/modules/chapter_2/pages/coffee.adoc index b4c340cff..9c17052b5 100644 --- a/chapters/modules/chapter_2/pages/coffee.adoc +++ b/chapters/modules/chapter_2/pages/coffee.adoc @@ -4,4 +4,4 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_2/pages/compiling.adoc b/chapters/modules/chapter_2/pages/compiling.adoc index a8039c5f4..662b9d0d0 100644 --- a/chapters/modules/chapter_2/pages/compiling.adoc +++ b/chapters/modules/chapter_2/pages/compiling.adoc @@ -5,5 +5,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 \ No newline at end of file diff --git a/chapters/modules/chapter_2/pages/dependencies.adoc b/chapters/modules/chapter_2/pages/dependencies.adoc index 9d0a875bd..87ec397fd 100644 --- a/chapters/modules/chapter_2/pages/dependencies.adoc +++ b/chapters/modules/chapter_2/pages/dependencies.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 \ No newline at end of file diff --git a/chapters/modules/chapter_2/pages/deploying_devnet.adoc b/chapters/modules/chapter_2/pages/deploying_devnet.adoc index ec2164fd2..0f3cbcc76 100644 --- a/chapters/modules/chapter_2/pages/deploying_devnet.adoc +++ b/chapters/modules/chapter_2/pages/deploying_devnet.adoc @@ -5,5 +5,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 \ No newline at end of file diff --git a/chapters/modules/chapter_2/pages/deploying_testnet.adoc b/chapters/modules/chapter_2/pages/deploying_testnet.adoc index 0f1117ed4..c90c55939 100644 --- a/chapters/modules/chapter_2/pages/deploying_testnet.adoc +++ b/chapters/modules/chapter_2/pages/deploying_testnet.adoc @@ -2,5 +2,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 \ No newline at end of file diff --git a/chapters/modules/chapter_2/pages/devnet.adoc b/chapters/modules/chapter_2/pages/devnet.adoc index 47f3ea308..6052e5ddc 100644 --- a/chapters/modules/chapter_2/pages/devnet.adoc +++ b/chapters/modules/chapter_2/pages/devnet.adoc @@ -60,4 +60,4 @@ The interaction with the devnet and the testnet is very similar. If you want to == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. diff --git a/chapters/modules/chapter_2/pages/explorers.adoc b/chapters/modules/chapter_2/pages/explorers.adoc index be2715731..6a02c6542 100644 --- a/chapters/modules/chapter_2/pages/explorers.adoc +++ b/chapters/modules/chapter_2/pages/explorers.adoc @@ -4,4 +4,4 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_2/pages/hardhat.adoc b/chapters/modules/chapter_2/pages/hardhat.adoc index d6d5f4a64..e9f665007 100644 --- a/chapters/modules/chapter_2/pages/hardhat.adoc +++ b/chapters/modules/chapter_2/pages/hardhat.adoc @@ -4,6 +4,6 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_2/pages/index.adoc b/chapters/modules/chapter_2/pages/index.adoc index 2db09db8a..a84dbb970 100644 --- a/chapters/modules/chapter_2/pages/index.adoc +++ b/chapters/modules/chapter_2/pages/index.adoc @@ -15,4 +15,4 @@ We are currently able to operate with the Starknet Alpha. The recommended steps == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. \ No newline at end of file +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. \ No newline at end of file diff --git a/chapters/modules/chapter_2/pages/indexing.adoc b/chapters/modules/chapter_2/pages/indexing.adoc index 16b3ecb9e..d569d0e34 100644 --- a/chapters/modules/chapter_2/pages/indexing.adoc +++ b/chapters/modules/chapter_2/pages/indexing.adoc @@ -4,4 +4,4 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_2/pages/juno.adoc b/chapters/modules/chapter_2/pages/juno.adoc index a8a924f01..e99cc3708 100644 --- a/chapters/modules/chapter_2/pages/juno.adoc +++ b/chapters/modules/chapter_2/pages/juno.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_2/pages/nile.adoc b/chapters/modules/chapter_2/pages/nile.adoc index 24e75c064..67d55177a 100644 --- a/chapters/modules/chapter_2/pages/nile.adoc +++ b/chapters/modules/chapter_2/pages/nile.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_2/pages/pathfinder.adoc b/chapters/modules/chapter_2/pages/pathfinder.adoc index df450af08..0747dadcf 100644 --- a/chapters/modules/chapter_2/pages/pathfinder.adoc +++ b/chapters/modules/chapter_2/pages/pathfinder.adoc @@ -4,6 +4,6 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_2/pages/starknetjs.adoc b/chapters/modules/chapter_2/pages/starknetjs.adoc index 0cefbdc79..4be53e734 100644 --- a/chapters/modules/chapter_2/pages/starknetjs.adoc +++ b/chapters/modules/chapter_2/pages/starknetjs.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_2/pages/starknetpy.adoc b/chapters/modules/chapter_2/pages/starknetpy.adoc index 827e11a59..0c841ce93 100644 --- a/chapters/modules/chapter_2/pages/starknetpy.adoc +++ b/chapters/modules/chapter_2/pages/starknetpy.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_2/pages/starknetrs.adoc b/chapters/modules/chapter_2/pages/starknetrs.adoc index 6b48c131e..ae080004d 100644 --- a/chapters/modules/chapter_2/pages/starknetrs.adoc +++ b/chapters/modules/chapter_2/pages/starknetrs.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_2/pages/testing.adoc b/chapters/modules/chapter_2/pages/testing.adoc index 770110e70..a3dc18c58 100644 --- a/chapters/modules/chapter_2/pages/testing.adoc +++ b/chapters/modules/chapter_2/pages/testing.adoc @@ -18,4 +18,4 @@ Ideally, we would like to test all possible flows in our smart contract. Thus, o == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. \ No newline at end of file +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. \ No newline at end of file diff --git a/chapters/modules/chapter_2/pages/testing_protostar.adoc b/chapters/modules/chapter_2/pages/testing_protostar.adoc index 4a8f21e92..b9e3fa1cb 100644 --- a/chapters/modules/chapter_2/pages/testing_protostar.adoc +++ b/chapters/modules/chapter_2/pages/testing_protostar.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 \ No newline at end of file diff --git a/chapters/modules/chapter_2/pages/testing_python.adoc b/chapters/modules/chapter_2/pages/testing_python.adoc index 74cbcf675..eb8951700 100644 --- a/chapters/modules/chapter_2/pages/testing_python.adoc +++ b/chapters/modules/chapter_2/pages/testing_python.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_2/pages/wallets.adoc b/chapters/modules/chapter_2/pages/wallets.adoc index 505c26e97..9e70411a2 100644 --- a/chapters/modules/chapter_2/pages/wallets.adoc +++ b/chapters/modules/chapter_2/pages/wallets.adoc @@ -4,4 +4,4 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_3/pages/account_abstraction.adoc b/chapters/modules/chapter_3/pages/account_abstraction.adoc index c427be46f..85036c486 100644 --- a/chapters/modules/chapter_3/pages/account_abstraction.adoc +++ b/chapters/modules/chapter_3/pages/account_abstraction.adoc @@ -567,5 +567,5 @@ To relieve smart contract applications such as ERC20 tokens or exchanges from th == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. diff --git a/chapters/modules/chapter_3/pages/accounts.adoc b/chapters/modules/chapter_3/pages/accounts.adoc index a4886f65e..2528f2c38 100644 --- a/chapters/modules/chapter_3/pages/accounts.adoc +++ b/chapters/modules/chapter_3/pages/accounts.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_3/pages/blocks.adoc b/chapters/modules/chapter_3/pages/blocks.adoc index b88adb113..789d76e33 100644 --- a/chapters/modules/chapter_3/pages/blocks.adoc +++ b/chapters/modules/chapter_3/pages/blocks.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_3/pages/fees.adoc b/chapters/modules/chapter_3/pages/fees.adoc index d94df32c9..60e523723 100644 --- a/chapters/modules/chapter_3/pages/fees.adoc +++ b/chapters/modules/chapter_3/pages/fees.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_3/pages/hints.adoc b/chapters/modules/chapter_3/pages/hints.adoc index 7b632eb0b..dcd1c3f03 100644 --- a/chapters/modules/chapter_3/pages/hints.adoc +++ b/chapters/modules/chapter_3/pages/hints.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_3/pages/index.adoc b/chapters/modules/chapter_3/pages/index.adoc index 9c0234834..cedc7b0cd 100644 --- a/chapters/modules/chapter_3/pages/index.adoc +++ b/chapters/modules/chapter_3/pages/index.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_3/pages/l1l2.adoc b/chapters/modules/chapter_3/pages/l1l2.adoc index 501e169bc..0335369d3 100644 --- a/chapters/modules/chapter_3/pages/l1l2.adoc +++ b/chapters/modules/chapter_3/pages/l1l2.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_3/pages/provers.adoc b/chapters/modules/chapter_3/pages/provers.adoc index e188ff95b..078059ef2 100644 --- a/chapters/modules/chapter_3/pages/provers.adoc +++ b/chapters/modules/chapter_3/pages/provers.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_3/pages/sequencers.adoc b/chapters/modules/chapter_3/pages/sequencers.adoc index f51fabb6d..43c62d9e8 100644 --- a/chapters/modules/chapter_3/pages/sequencers.adoc +++ b/chapters/modules/chapter_3/pages/sequencers.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_3/pages/starknet_os.adoc b/chapters/modules/chapter_3/pages/starknet_os.adoc index cb2773776..c0e45e4b8 100644 --- a/chapters/modules/chapter_3/pages/starknet_os.adoc +++ b/chapters/modules/chapter_3/pages/starknet_os.adoc @@ -7,4 +7,4 @@ The OS handles everything which is done on the network -- contract deployment, t == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_3/pages/state.adoc b/chapters/modules/chapter_3/pages/state.adoc index a03e2a155..ebdaa3d0d 100644 --- a/chapters/modules/chapter_3/pages/state.adoc +++ b/chapters/modules/chapter_3/pages/state.adoc @@ -5,5 +5,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_3/pages/transactions.adoc b/chapters/modules/chapter_3/pages/transactions.adoc index b3f5fbe84..18f4645b9 100644 --- a/chapters/modules/chapter_3/pages/transactions.adoc +++ b/chapters/modules/chapter_3/pages/transactions.adoc @@ -9,4 +9,4 @@ NOT_RECEIVED \-> RECEIVED \-> PENDING \-> REJECTED || ACCEPTED_ON_L2 \-> ACCEPTE == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_3/pages/verifiers_cairo.adoc b/chapters/modules/chapter_3/pages/verifiers_cairo.adoc index 0339a3a82..5b8fd0371 100644 --- a/chapters/modules/chapter_3/pages/verifiers_cairo.adoc +++ b/chapters/modules/chapter_3/pages/verifiers_cairo.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_3/pages/verifiers_solidity.adoc b/chapters/modules/chapter_3/pages/verifiers_solidity.adoc index be5809c31..d68964ae7 100644 --- a/chapters/modules/chapter_3/pages/verifiers_solidity.adoc +++ b/chapters/modules/chapter_3/pages/verifiers_solidity.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_4/pages/community.adoc b/chapters/modules/chapter_4/pages/community.adoc index 308b995cd..78aa34f6d 100644 --- a/chapters/modules/chapter_4/pages/community.adoc +++ b/chapters/modules/chapter_4/pages/community.adoc @@ -21,4 +21,4 @@ Types of workshops - 0 to 1 - Thematic (ERC20, ERC721) Define Program (2-3h): - == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_4/pages/data.adoc b/chapters/modules/chapter_4/pages/data.adoc index 9ff1bd3f4..950ac762b 100644 --- a/chapters/modules/chapter_4/pages/data.adoc +++ b/chapters/modules/chapter_4/pages/data.adoc @@ -32,6 +32,6 @@ The data availability problem: == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_4/pages/decentralization.adoc b/chapters/modules/chapter_4/pages/decentralization.adoc index b4bb64130..5b9aff24a 100644 --- a/chapters/modules/chapter_4/pages/decentralization.adoc +++ b/chapters/modules/chapter_4/pages/decentralization.adoc @@ -17,4 +17,4 @@ While every other decentralized network has only Sequencers, Starknet has two co == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_4/pages/fractal.adoc b/chapters/modules/chapter_4/pages/fractal.adoc index 96ad03292..4aad44970 100644 --- a/chapters/modules/chapter_4/pages/fractal.adoc +++ b/chapters/modules/chapter_4/pages/fractal.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_4/pages/index.adoc b/chapters/modules/chapter_4/pages/index.adoc index 695b648aa..849498d77 100644 --- a/chapters/modules/chapter_4/pages/index.adoc +++ b/chapters/modules/chapter_4/pages/index.adoc @@ -4,4 +4,4 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_4/pages/market.adoc b/chapters/modules/chapter_4/pages/market.adoc index fd7ce76dd..27a9a13bf 100644 --- a/chapters/modules/chapter_4/pages/market.adoc +++ b/chapters/modules/chapter_4/pages/market.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_4/pages/parallelization.adoc b/chapters/modules/chapter_4/pages/parallelization.adoc index 7d00719e4..7d920157c 100644 --- a/chapters/modules/chapter_4/pages/parallelization.adoc +++ b/chapters/modules/chapter_4/pages/parallelization.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_4/pages/recursion.adoc b/chapters/modules/chapter_4/pages/recursion.adoc index 20752999a..52edd101a 100644 --- a/chapters/modules/chapter_4/pages/recursion.adoc +++ b/chapters/modules/chapter_4/pages/recursion.adoc @@ -10,5 +10,5 @@ Ability to verify a proof within a cairo program: - Prover generates a proof of == Contributing -🎯++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_4/pages/throughput.adoc b/chapters/modules/chapter_4/pages/throughput.adoc index 00c7c6f48..265871ed4 100644 --- a/chapters/modules/chapter_4/pages/throughput.adoc +++ b/chapters/modules/chapter_4/pages/throughput.adoc @@ -4,7 +4,7 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_5/pages/allocation.adoc b/chapters/modules/chapter_5/pages/allocation.adoc index 4aceab47e..d4fad9677 100644 --- a/chapters/modules/chapter_5/pages/allocation.adoc +++ b/chapters/modules/chapter_5/pages/allocation.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_5/pages/cairo.adoc b/chapters/modules/chapter_5/pages/cairo.adoc index a155d8176..a7bb9d024 100644 --- a/chapters/modules/chapter_5/pages/cairo.adoc +++ b/chapters/modules/chapter_5/pages/cairo.adoc @@ -8,5 +8,5 @@ Cairo stands for CPU AIR and consists of a single set of polynomial constraints == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_5/pages/cairovm.adoc b/chapters/modules/chapter_5/pages/cairovm.adoc index 14ce0825a..f0f7d83a4 100644 --- a/chapters/modules/chapter_5/pages/cairovm.adoc +++ b/chapters/modules/chapter_5/pages/cairovm.adoc @@ -4,6 +4,6 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_5/pages/casm.adoc b/chapters/modules/chapter_5/pages/casm.adoc index ccb22c51d..86874526c 100644 --- a/chapters/modules/chapter_5/pages/casm.adoc +++ b/chapters/modules/chapter_5/pages/casm.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_5/pages/felts.adoc b/chapters/modules/chapter_5/pages/felts.adoc index 1aa8d7559..b6a210585 100644 --- a/chapters/modules/chapter_5/pages/felts.adoc +++ b/chapters/modules/chapter_5/pages/felts.adoc @@ -43,4 +43,4 @@ In other words, when we are using modular arithmetic, unless the denominator is == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_5/pages/hints.adoc b/chapters/modules/chapter_5/pages/hints.adoc index 05f6bd623..1116c6860 100644 --- a/chapters/modules/chapter_5/pages/hints.adoc +++ b/chapters/modules/chapter_5/pages/hints.adoc @@ -4,7 +4,7 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 Python code can be invoked with the %{ %} block called a hint, which is executed right before the next Cairo instruction. diff --git a/chapters/modules/chapter_5/pages/index.adoc b/chapters/modules/chapter_5/pages/index.adoc index 14ef9830e..9d1ad7c0d 100644 --- a/chapters/modules/chapter_5/pages/index.adoc +++ b/chapters/modules/chapter_5/pages/index.adoc @@ -24,7 +24,7 @@ cairo-sharp submit --source example.cairo --program_input input.json == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 == Sources diff --git a/chapters/modules/chapter_5/pages/integrity.adoc b/chapters/modules/chapter_5/pages/integrity.adoc index 681b38704..052b1bedb 100644 --- a/chapters/modules/chapter_5/pages/integrity.adoc +++ b/chapters/modules/chapter_5/pages/integrity.adoc @@ -4,4 +4,4 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_5/pages/polynomial.adoc b/chapters/modules/chapter_5/pages/polynomial.adoc index e1ec40a17..a5762469d 100644 --- a/chapters/modules/chapter_5/pages/polynomial.adoc +++ b/chapters/modules/chapter_5/pages/polynomial.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_5/pages/silicon.adoc b/chapters/modules/chapter_5/pages/silicon.adoc index 1787213c2..a3f70d884 100644 --- a/chapters/modules/chapter_5/pages/silicon.adoc +++ b/chapters/modules/chapter_5/pages/silicon.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_5/pages/turing.adoc b/chapters/modules/chapter_5/pages/turing.adoc index 967e155fb..0f07b4f7c 100644 --- a/chapters/modules/chapter_5/pages/turing.adoc +++ b/chapters/modules/chapter_5/pages/turing.adoc @@ -12,5 +12,5 @@ While this section is being built we recommend reading the video session for thi == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_6/pages/arithmetization.adoc b/chapters/modules/chapter_6/pages/arithmetization.adoc index 21a73571d..7bf0290f1 100644 --- a/chapters/modules/chapter_6/pages/arithmetization.adoc +++ b/chapters/modules/chapter_6/pages/arithmetization.adoc @@ -266,4 +266,4 @@ Next we will go into the details of low-degree testing, showing how this magic, == Contributing -🎯 {pp}+*{pp}+STARKer: {pp}+*{pp}+ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 {pp}+*{pp}+STARKer: {pp}+*{pp}+ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_6/pages/cryptography.adoc b/chapters/modules/chapter_6/pages/cryptography.adoc index 371a0a0ad..7a297a3eb 100644 --- a/chapters/modules/chapter_6/pages/cryptography.adoc +++ b/chapters/modules/chapter_6/pages/cryptography.adoc @@ -62,4 +62,4 @@ What is the downside? Mainly that proof sizes go uo from 288 bytes, in SNARKs ca == Contributing -🎯 \{pp}+_\{pp}+STARKer: \{pp}+_\{pp}+ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 \{pp}+_\{pp}+STARKer: \{pp}+_\{pp}+ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_6/pages/efficient_starks.adoc b/chapters/modules/chapter_6/pages/efficient_starks.adoc index def5d3805..41ef1a274 100644 --- a/chapters/modules/chapter_6/pages/efficient_starks.adoc +++ b/chapters/modules/chapter_6/pages/efficient_starks.adoc @@ -12,5 +12,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_6/pages/fri.adoc b/chapters/modules/chapter_6/pages/fri.adoc index 08230711b..cc156562b 100644 --- a/chapters/modules/chapter_6/pages/fri.adoc +++ b/chapters/modules/chapter_6/pages/fri.adoc @@ -32,4 +32,4 @@ In summary, the direct solution (test) requires too many queries to achieve the == Contributing -🎯 \{pp}+_\{pp}+STARKer: \{pp}+_\{pp}+ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 \{pp}+_\{pp}+STARKer: \{pp}+_\{pp}+ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_6/pages/geometry.adoc b/chapters/modules/chapter_6/pages/geometry.adoc index 370c0014a..8f3f9649a 100644 --- a/chapters/modules/chapter_6/pages/geometry.adoc +++ b/chapters/modules/chapter_6/pages/geometry.adoc @@ -73,4 +73,4 @@ More generally, note that if $g$ is the generator of a field $Z_\{n}$, then $Z_\ == Contributing -🎯 {pp}+*{pp}+STARKer: {pp}+*{pp}+ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 \ No newline at end of file +🎯 {pp}+*{pp}+STARKer: {pp}+*{pp}+ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 \ No newline at end of file diff --git a/chapters/modules/chapter_6/pages/index.adoc b/chapters/modules/chapter_6/pages/index.adoc index c3d082c96..4fe9ca269 100644 --- a/chapters/modules/chapter_6/pages/index.adoc +++ b/chapters/modules/chapter_6/pages/index.adoc @@ -4,4 +4,4 @@ == Contributing -🎯 {pp}+*{pp}+STARKer: {pp}+*{pp}+ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 \ No newline at end of file +🎯 {pp}+*{pp}+STARKer: {pp}+*{pp}+ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 \ No newline at end of file diff --git a/chapters/modules/chapter_6/pages/introduction_starks.adoc b/chapters/modules/chapter_6/pages/introduction_starks.adoc index 407d09ffd..fa981852d 100644 --- a/chapters/modules/chapter_6/pages/introduction_starks.adoc +++ b/chapters/modules/chapter_6/pages/introduction_starks.adoc @@ -41,4 +41,4 @@ To understand how STARKs are computed, we need to delve into the arithmetic of m == Contributing -🎯 \{pp}+_\{pp}+STARKer: \{pp}+_\{pp}+ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 \{pp}+_\{pp}+STARKer: \{pp}+_\{pp}+ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_6/pages/low_testing.adoc b/chapters/modules/chapter_6/pages/low_testing.adoc index d63ddeb37..9aaee6f9b 100644 --- a/chapters/modules/chapter_6/pages/low_testing.adoc +++ b/chapters/modules/chapter_6/pages/low_testing.adoc @@ -114,4 +114,4 @@ which is an n*log(n) algorithm for polynomial evaluation (improving over the nai == Contributing -🎯 \{pp}+_\{pp}+STARKer: \{pp}+_\{pp}+ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 \{pp}+_\{pp}+STARKer: \{pp}+_\{pp}+ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_6/pages/number_theory.adoc b/chapters/modules/chapter_6/pages/number_theory.adoc index 5aea3473a..184b2855c 100644 --- a/chapters/modules/chapter_6/pages/number_theory.adoc +++ b/chapters/modules/chapter_6/pages/number_theory.adoc @@ -75,4 +75,4 @@ Until now eveything seems ok. However, what happens when, for the finite field $ == Contributing -🎯 \{pp}+_\{pp}+STARKer: \{pp}+_\{pp}+ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 \{pp}+_\{pp}+STARKer: \{pp}+_\{pp}+ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_6/pages/starks_snarks.adoc b/chapters/modules/chapter_6/pages/starks_snarks.adoc index 9c2d3ce37..f15a5493d 100644 --- a/chapters/modules/chapter_6/pages/starks_snarks.adoc +++ b/chapters/modules/chapter_6/pages/starks_snarks.adoc @@ -4,5 +4,5 @@ == Contributing -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/chapters/modules/chapter_6/pages/trust_verification.adoc b/chapters/modules/chapter_6/pages/trust_verification.adoc index ac171a45e..c6c96267f 100644 --- a/chapters/modules/chapter_6/pages/trust_verification.adoc +++ b/chapters/modules/chapter_6/pages/trust_verification.adoc @@ -57,4 +57,4 @@ This was already discovered since the 1990s, however, it was not implemented bec == Contributing -🎯 \{pp}+_\{pp}+STARKer: \{pp}+_\{pp}+ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. 🎯 🎯 +🎯 \{pp}+_\{pp}+STARKer: \{pp}+_\{pp}+ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. 🎯 🎯 diff --git a/package.json b/package.json index 8e95e3a98..c54707686 100644 --- a/package.json +++ b/package.json @@ -7,18 +7,17 @@ "generate": "antora antora-playbook.yml" }, "dependencies": { - "@tsconfig/node16": "^1.0.3", - "prettier": "^2.8.1", - "starknet": "^4.17.1", - "ts-node": "^10.9.1", - "typescript": "^4.9.4", - "@antora/lunr-extension": "^1.0.0-alpha.8", "@asciidoctor/tabs": "^1.0.0-beta.3", + "@tsconfig/node16": "^1.0.3", "algoliasearch": "^4.14.2", "asciidoctor": "^2.2.6", "html-to-text": "^8.2.1", + "prettier": "^2.8.1", "simple-git": "^3.15.0", - "standard-version": "^9.3.2" + "standard-version": "^9.3.2", + "starknet": "^4.17.1", + "ts-node": "^10.9.1", + "typescript": "^4.9.4" }, "prettier": { "trailingComma": "all", From e646f8cce460fda85298d48c3247596aaff41ea6 Mon Sep 17 00:00:00 2001 From: JameStark Date: Tue, 4 Apr 2023 13:52:48 +0100 Subject: [PATCH 12/17] Add version --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 8e95e3a98..1bb43269b 100644 --- a/package.json +++ b/package.json @@ -31,5 +31,6 @@ "@antora/cli": "3.1.2", "@antora/lunr-extension": "^1.0.0-alpha.8", "@antora/site-generator": "3.1.2" - } + }, + "version": "1.1.0" } From d54a1c05d7d71f208e095b5f7b12df9ab170d8d3 Mon Sep 17 00:00:00 2001 From: l-henri Date: Tue, 4 Apr 2023 16:02:14 +0200 Subject: [PATCH 13/17] Review session for environment setup with James and David --- .../chapter_1/pages/environment_setup.adoc | 58 ++++++++++++------- 1 file changed, 36 insertions(+), 22 deletions(-) diff --git a/chapters/modules/chapter_1/pages/environment_setup.adoc b/chapters/modules/chapter_1/pages/environment_setup.adoc index 1e5c4f930..b5f947e61 100644 --- a/chapters/modules/chapter_1/pages/environment_setup.adoc +++ b/chapters/modules/chapter_1/pages/environment_setup.adoc @@ -3,17 +3,22 @@ [#setup] = Setting up your local development environment +This section will cover three steps: + +* Installing prerequisites +* Installing the `cairo-lang` CLI +* Installing the `cairo` Cairo 1 compiler + == Pre-Requisites -At the time of writing this tutorial, Cairo 1.0 is at a very early stage and is prone to errors and bugs. Please be sure to fetch and update the repositories we mention below, regularly. +In order to install and use `cairo` and `cairo-lang`, install the following: + -The above repositories require you to have the following minimum prerequisites: + -- https://www.python.org/downloads/release/python-390/[Python 3.9] + -- https://www.rust-lang.org/tools/install[Rust] + +* https://www.python.org/downloads/release/python-390/[Python 3.9] + +* https://www.rust-lang.org/tools/install[Rust] + -== CLI Installation +== `cairo-lang` CLI Installation -++++++Step 1: Set up your virtual environment ++++++ +=== ++++++Step 1: Set up your virtual environment ++++++ We recommend working inside a Python virtual environment, but you can also install the Cairo package directly. To create and enter the virtual environment, type: @@ -45,10 +50,13 @@ pyenv activate cairo_venv Either way, make sure the venv is activated – you should see (cairo_venv) in the command line prompt. Your terminal should look like this: -TBD - Picture +[,Bash] +---- +(cairo_venv) satoshi@nakamoto-notebook % +---- -++++++Step 2: Install the necessary dependencies ++++++ +=== ++++++Step 2: Install the necessary dependencies ++++++ On Ubuntu, for example, you will have to first run: @@ -68,44 +76,48 @@ Finally, install the following dependencies: [,Bash] ---- -pip3 install ecdsa fastecdsa sympy +(cairo_venv) satoshi@nakamoto-notebook % pip install ecdsa fastecdsa sympy ---- There might be some other libraries which are not direct dependencies but they might be indirect dependencies that you would need to install based on your operating system. -++++++Step 3: Install cairo-lang CLI ++++++ +=== ++++++Step 3: Install cairo-lang CLI ++++++ -If you had cairo-lang installed previously, uninstall it and install the latest downloaded version. To do so, you will have to download the file over https://github.com/starkware-libs/cairo-lang/archive/refs/tags/v0.11.0.1.zip[here] and place it in your path so you can build locally. +If you had cairo-lang installed previously, uninstall it and install the latest version. [,Bash] ---- #Uninstall the previous version -pip3 uninstall cairo-lang +pip uninstall cairo-lang #Build locally -pip3 install cairo-lang-0.11.0.1.zip +pip install cairo-lang ---- Once you have installed the cairo lang package and installed it, make sure to test your installation by running the following command: [,Bash] ---- -starknet --version +(cairo_venv) satoshi@nakamoto-notebook % starknet --version +starknet 0.11.0.2 + ---- -If you see a version starting with 0.11.0, then you have successfully installed the CLI. +Please check that the version returned matches. ____ NOTE: For M1 and M2 users, if you face any issues while running starknet --version command, then you may refer to https://github.com/OpenZeppelin/nile/issues/22[this] article to follow alternate steps to install the dependencies in Step 2. ____ -== Cairo 1 Installation +== `cairo` Cairo 1 compiler Installation -++++++Step1: Clone the cairo repository and set it up using the following instructions:++++++ +=== ++++++Step1: Clone the cairo repository and set it up using the following instructions:++++++ [,Bash] ---- -# Clone the Cairo compiler to the $HOME directory +# Go to your $HOME directory +cd ~/ +# Clone the `cairo` Cairo 1 compiler git clone https://github.com/starkware-libs/cairo/ #Rename the cairo folder to .cairo in order to keep it hidden @@ -113,12 +125,12 @@ mv cairo .cairo #Checkout into the working branch and generate the release binaries cd .cairo/ -git checkout 9c190561ce1e8323665857f1a77082925c817b4c +git checkout tags/v1.0.0-alpha.6 cargo build --all --release ---- -++++++Step 2: Add Cairo 1.0 executables to your path:++++++ +=== ++++++Step 2: Add Cairo 1.0 executables to your path:++++++ Now that we have built the Cairo 1.0 binaries, we need to add them to the PATH environment variable. Add the following in your .bashrc or .zshrc: @@ -136,8 +148,10 @@ cairo-compile --version ---- Your output should look something like this(not necessarily inside the cairo_venv): -TBD - Picture - +[,Bash] +---- +(cairo_venv) satoshi@nakamoto-notebook % cairo-compile 0.11.0.2 +---- Woohoo! Now we have everything we need to compile, deploy and interact with our first Cairo contract! == Contributing From 3cdb9820925a1f32566ca71bb083d57460aea70b Mon Sep 17 00:00:00 2001 From: gyan0890 Date: Mon, 3 Apr 2023 12:24:24 +0530 Subject: [PATCH 14/17] Committing chapter 1, section 1.1 and 1.2 --- .../modules/chapter_1/pages/what_is_starknet.adoc | 0 chapters/modules/chapter_1/pages/why_starknet.adoc | 14 ++++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 chapters/modules/chapter_1/pages/what_is_starknet.adoc create mode 100644 chapters/modules/chapter_1/pages/why_starknet.adoc diff --git a/chapters/modules/chapter_1/pages/what_is_starknet.adoc b/chapters/modules/chapter_1/pages/what_is_starknet.adoc new file mode 100644 index 000000000..e69de29bb diff --git a/chapters/modules/chapter_1/pages/why_starknet.adoc b/chapters/modules/chapter_1/pages/why_starknet.adoc new file mode 100644 index 000000000..e320120a4 --- /dev/null +++ b/chapters/modules/chapter_1/pages/why_starknet.adoc @@ -0,0 +1,14 @@ +[id="whyStarknet"] + += Why StarkNet + +== The Problem + +== The Solution + +StarkNet attempts to tackle the Blockchain Trilemma and provide a system that is inclusively accountable, decentralized, scalable, and secure through the use of zero-knowledge STARK proofs. + +== Contributing + +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. +🎯 \ No newline at end of file From 063bd7147e34c63b9a8f3c2fb0b52d95c15086d9 Mon Sep 17 00:00:00 2001 From: gyan0890 Date: Wed, 5 Apr 2023 00:15:43 +0530 Subject: [PATCH 15/17] Adding Chapters 1.1 - 1.7 of Chapter 1, v0.1 of StarkNet Book --- .../chapter_1/images/cairo-compile.png | Bin 0 -> 65203 bytes .../modules/chapter_1/images/cairo_venv.png | Bin 0 -> 43815 bytes .../modules/chapter_1/images/tx_invoke.png | Bin 0 -> 200024 bytes chapters/modules/chapter_1/nav.adoc | 20 +-- .../contracts/cairo/simple_storage.cairo | 21 +++ .../chapter_1/pages/deploying_contracts.adoc | 16 +- .../chapter_1/pages/environment_setup.adoc | 4 + .../chapter_1/pages/what_is_cairo.adoc | 12 ++ .../chapter_1/pages/what_is_starknet.adoc | 14 ++ .../modules/chapter_1/pages/why_cairo.adoc | 20 +++ .../modules/chapter_1/pages/why_starknet.adoc | 11 +- .../pages/writing_first_contract.adoc | 148 ++++++++++++++++++ 12 files changed, 243 insertions(+), 23 deletions(-) create mode 100644 chapters/modules/chapter_1/images/cairo-compile.png create mode 100644 chapters/modules/chapter_1/images/cairo_venv.png create mode 100644 chapters/modules/chapter_1/images/tx_invoke.png create mode 100644 chapters/modules/chapter_1/pages/contracts/cairo/simple_storage.cairo create mode 100644 chapters/modules/chapter_1/pages/what_is_cairo.adoc create mode 100644 chapters/modules/chapter_1/pages/why_cairo.adoc create mode 100644 chapters/modules/chapter_1/pages/writing_first_contract.adoc diff --git a/chapters/modules/chapter_1/images/cairo-compile.png b/chapters/modules/chapter_1/images/cairo-compile.png new file mode 100644 index 0000000000000000000000000000000000000000..f7e07162933e8f995da8cb3483f9d43ba443281d GIT binary patch literal 65203 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 Yd=C}Xg6m@_hx?q4hQZy+JJ#X<1Hs8A3IG5A literal 0 HcmV?d00001 diff --git a/chapters/modules/chapter_1/images/cairo_venv.png b/chapters/modules/chapter_1/images/cairo_venv.png new file mode 100644 index 0000000000000000000000000000000000000000..bf53faf437c63e5a42cb2160fcb8eb3ca6e1c915 GIT binary patch literal 43815 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 Ybwv?Q<&a(Y1>i^Kh2rxi_@% literal 0 HcmV?d00001 diff --git a/chapters/modules/chapter_1/images/tx_invoke.png b/chapters/modules/chapter_1/images/tx_invoke.png new file mode 100644 index 0000000000000000000000000000000000000000..1940a5f3dcf77add307a252031bc41576c486c44 GIT binary patch literal 200024 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℘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 felt252 { + balance::read() + } +} \ No newline at end of file diff --git a/chapters/modules/chapter_1/pages/deploying_contracts.adoc b/chapters/modules/chapter_1/pages/deploying_contracts.adoc index dfde3f213..15b1685b1 100644 --- a/chapters/modules/chapter_1/pages/deploying_contracts.adoc +++ b/chapters/modules/chapter_1/pages/deploying_contracts.adoc @@ -69,7 +69,7 @@ starknet --version starknet-compile --version ---- -You can now create a folder of your choice where you would like to practice your cairo skills (TBD: Insert a smiley). Inside the new folder, create a file name TBD-Italics(hello_starknet.cairo). +You can now create a folder of your choice where you would like to practice your cairo skills 🎯. Inside the new folder, create a file name _hello_starknet.cairo_. [,Bash] ---- @@ -87,14 +87,14 @@ Copy paste the following piece of code into your hello_starknet.cairo file: ---- #[contract] mod HelloStarknet { - usestarknet::get_caller_address; - usestarknet::ContractAddress; + use starknet::get_caller_address; + use starknet::ContractAddress; #[event] - fnHello(from:ContractAddress, value:felt252) {} + fn Hello(from:ContractAddress, value:felt252) {} #[external] - fnSay_Hello(message:felt252) { + fn Say_Hello(message:felt252) { letcaller=get_caller_address(); Hello(caller, message); } @@ -171,7 +171,7 @@ If you quickly browse through the above contract(hello_starknet.cairo), you can #Function that we will be invoking #[external] - fnSay_Hello(message:felt252) { + fn Say_Hello(message:felt252) { letcaller=get_caller_address(); Hello(caller, message); } @@ -196,9 +196,9 @@ Once your tx has been accepted on L2, you will be able to explore the events emi https://testnet.starkscan.co/event/0x01093a8f548de7e7353f7b74ee85d9724a8c2874548dd57d89acc56dd750c8be_0[Here] is an example of the tx that I just invoked using the above command: -TBD - Insert Image +image::tx_invoke.png[Invoking a transaction] -If you switch to the events tab(example data in the image above), you should be able to see that the Event Data emitted is the caller and message(Index 0 and 1 respectively) as per the contract code. The caller is the address of the account that you created to deploy the contract and the message is the input that you have sent while invoking the Say_Hello function. +If you switch to the events tab(example data in the image above), you should be able to see that the Event Data emitted is the caller and message(Index 0 and 1 respectively) as per the contract code. The caller is the address of the account that you created to deploy the contract and the message is the input that you have sent while invoking the _Say_Hello_ function. == Contributing diff --git a/chapters/modules/chapter_1/pages/environment_setup.adoc b/chapters/modules/chapter_1/pages/environment_setup.adoc index b5f947e61..5dd51c18c 100644 --- a/chapters/modules/chapter_1/pages/environment_setup.adoc +++ b/chapters/modules/chapter_1/pages/environment_setup.adoc @@ -53,6 +53,7 @@ Your terminal should look like this: [,Bash] ---- (cairo_venv) satoshi@nakamoto-notebook % +image::cairo_venv.png[cairo venv] ---- @@ -152,6 +153,9 @@ Your output should look something like this(not necessarily inside the cairo_ven ---- (cairo_venv) satoshi@nakamoto-notebook % cairo-compile 0.11.0.2 ---- + +image::cairo-compile.png[cairo-compile version] + Woohoo! Now we have everything we need to compile, deploy and interact with our first Cairo contract! == Contributing diff --git a/chapters/modules/chapter_1/pages/what_is_cairo.adoc b/chapters/modules/chapter_1/pages/what_is_cairo.adoc new file mode 100644 index 000000000..1a2b02e7a --- /dev/null +++ b/chapters/modules/chapter_1/pages/what_is_cairo.adoc @@ -0,0 +1,12 @@ +[id="whatIsCairo"] + += What is Cairo? + +Cairo is a Turing complete programming language for creating STARK-provable programs for general computation. Cairo is the native smart contract language for Starknet, a permissionless decentralized Validity-Rollup. + +Cairo 1.0 is the upgraded Rust-inspired version of Cairo, allowing developers to write Starknet smart contracts in a safe and convenient manner. + +== Contributing + +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. +🎯 \ No newline at end of file diff --git a/chapters/modules/chapter_1/pages/what_is_starknet.adoc b/chapters/modules/chapter_1/pages/what_is_starknet.adoc index e69de29bb..a3f78da5e 100644 --- a/chapters/modules/chapter_1/pages/what_is_starknet.adoc +++ b/chapters/modules/chapter_1/pages/what_is_starknet.adoc @@ -0,0 +1,14 @@ +[id="whatIsStarknet"] + += What is StarkNet? + +== Introduction + +Starknet is a permissionless decentralized Validity-Rollup (also known as a β€œZK-Rollup”). It operates as an L2 network over Ethereum, enabling any dApp to achieve unlimited scale for its computation – without compromising Ethereum’s composability and security, thanks to Starknet’s reliance on the safest and most scalable cryptographic proof system – STARK. + + +== Contributing + +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. +🎯 + diff --git a/chapters/modules/chapter_1/pages/why_cairo.adoc b/chapters/modules/chapter_1/pages/why_cairo.adoc new file mode 100644 index 000000000..ea98cc038 --- /dev/null +++ b/chapters/modules/chapter_1/pages/why_cairo.adoc @@ -0,0 +1,20 @@ +[id="whyCairo"] + += Why Cairo? + +StarkNet's scalability tool, ZK Roll-ups, enable a new paradigm called Provable Computation. In this paradigm, we allow programs to prove they have been executed without having to be re-run. In order to write such provable programs, we need a programming language that can be effective and be easily learnt by developers. + +If you are looking for a cost-effective provable computation programming language, consider Cairo. It is native to Provable Computation and includes low-level access to memory, underlying primitives, and functional-style programming. Listed below, are some of the benefits of Cairo: + + +* It is a specially designed, provable language for smart contracts + +* It is not bounded by the EVM + +* Its functions are imported rather than inherited + +* It supports Solidity to Cairo transpiler + +* It includes full low-level access to underlying primitives + + +The upgraded version of Cairo offers Rust like syntax, which is easier to understand for developers. + +== Contributing + +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/antora-front/CONTRIBUTING.adoc[here]. +🎯 \ No newline at end of file diff --git a/chapters/modules/chapter_1/pages/why_starknet.adoc b/chapters/modules/chapter_1/pages/why_starknet.adoc index e320120a4..81352cada 100644 --- a/chapters/modules/chapter_1/pages/why_starknet.adoc +++ b/chapters/modules/chapter_1/pages/why_starknet.adoc @@ -1,12 +1,19 @@ [id="whyStarknet"] -= Why StarkNet += Why StarkNet? == The Problem +Ethereum scaling has been a major discussion topic since the network was launched. Commonly known as the blockchain trilemma, most applications have to choose 2/3 features between scalability, security and decentralization and compromise on any one of them. + +Several NFT launches have seen the gas fee spike up to 1000s of dollars congesting the network, thereby casting doubts on Ethereum's ability to scale. == The Solution -StarkNet attempts to tackle the Blockchain Trilemma and provide a system that is inclusively accountable, decentralized, scalable, and secure through the use of zero-knowledge STARK proofs. +Layer 2 solutions can offer scalability to Ethereum by helping off-load a lot of computational work done at the Ethereum layer to another layer. Roll up solutions have the potantial to scale Ethereum in a way that billions of users across the globe can use it seamlessly. + +Amongst the existing rollup solutions, it is well known that zk-Rollups are going to be the future roadmap of Ethereum. Ethereum is the only truly decentralised blockchain, and with that comes the sort of open source innovation and soul that is so unique to the Ethereum community. We bet on decentralisation, innovation, and general purpose logic and composability. + +StarkNet, built on the concept of Validity Proofs(ZK Proofs under the hood) attempts to tackle the Blockchain Trilemma and provide a system that is inclusively accountable, decentralized, scalable, and secure through the use of zero-knowledge STARK proofs. == Contributing diff --git a/chapters/modules/chapter_1/pages/writing_first_contract.adoc b/chapters/modules/chapter_1/pages/writing_first_contract.adoc new file mode 100644 index 000000000..c2270b09d --- /dev/null +++ b/chapters/modules/chapter_1/pages/writing_first_contract.adoc @@ -0,0 +1,148 @@ +[id="writing_contracts"] + += Writing your first StarkNet contract + +In this chapter, you will learn to write your first StarkNet contract. We know you are super excited and so are we! This contract is a simple read/write contract where you will learn to read and write from storage using cairo. Our contract will be called _SimpleStorage_. + +Follow the below steps to learn to write your first StarkNet contract. + +++++++Step 1: Contract [#macro] and modules ++++++ + +You can create a new folder to write this new contract or create it inside your .cairo/ folder. Let us create a new file called simple_storage.cairo + +[,Bash] +---- +touch simple_storage.cairo +---- + +You can open this empty file in your editor of choice(ex: VS Code) and start writing the below lines of code - your first cairo contract. + +A StarkNet contract will always start with the [#contract] macro to indicate that this is a StarkNet contract. Remember that you can also create other Cairo files that are *NOT* contracts because Cairo is a programming language by itself. + +All the Cairo contracts are defined by the keyword _mod_ which implies that it's a module containing some logical piece of code. +You can write first below lines of contract in the _simple_storage.cairo_ file. + + +[,Bash] +---- +#[contract] +mod SimpleStorage {} +---- + +++++++Step 2: Creating the Storage ++++++ + +In order to store variables on-chain, we need to create a Storage structure called _Storage_. This struct will have all the variables that you would like to have in contract/permanent storage. +Create a Storage struct within your SimpleStorage contract as shown below. + + +[,Bash] +---- +struct Storage { + balance: felt252 +} +---- + +____ + +NOTE: The storage struct will always be named _Storage_. +____ + +++++++Step 3: Defining events ++++++ + +Yes! You read it right. Events are now supported in Cairo. You can define an event just like a function with the name of the event, in this case it is _BalanceIncreased_ and the values you would like to emit within the bracket as arguments. + +[,Bash] +---- +//The keyword to define a function is "fn" + #[event] + fn BalanceIncreased(balance: felt252) {} +---- + +++++++Step 4: Writing your first function ++++++ + +Below is a simple function called _increase_balance_ which takes in the amount as the argument of type _felt252_. +The function is fairly simple. We read the balance variable(defined earlier in the storage struct) using "::read()" function and simple increase the balance by adding the amount to it. +We then write the new balance to the existing storage variable and update the value. + +Last but not the least, we log/emit the event with the updated balance using the name of the event function. + +[,Bash] +---- + #[external] + fn increase_balance(amount: felt252) { + let new_balance = balance::read() + amount; + balance::write(new_balance); + BalanceIncreased(new_balance); + } +---- + +You might have noticed a macro called _external_ that is added to this function. This means that the function called be called externally or outside of the contract. +For functions that are modifying a storage variable, you would need to add the external macro. + +There are other types of macros as well that you can add to a function: + +* event + +* external + +* view + +* constructor + + +Let us see another function in the next step and the macro used. + +++++++Step 5: Writing your view function ++++++ + +As you saw in Step 4, we are able to write to our storage using balance::write(), but how do we read from the storage? (Hint: That's also being done in the above function). + +In the below function, we are reading the current balance of the storage variable _balance_ and returning it. You can observe that we use a "->" symbol to return the variable, similar to Rust. + +This function can be a _view_ function because it does not modify any variables. + +[,Bash] +---- + #[view] + fn get_balance() -> felt252 { + balance::read() + } +---- + +++++++Step 6: Putting it all together ++++++ + +Your final contract should look something like this. + +[,Bash] +---- +#[contract] +mod SimpleStorage { + struct Storage { + balance: felt252 + } + + #[event] + fn BalanceIncreased(balance: felt252) {} + + #[external] + fn increase_balance(amount: felt252) { + let new_balance = balance::read() + amount; + balance::write(new_balance); + BalanceIncreased(new_balance); + } + + #[view] + fn get_balance() -> felt252 { + balance::read() + } +} +---- + +You can now follow the steps given in exercise (How to refer an internal doc here?)[1.5] and [1.6] to compile and deploy the above contract. + +Congratulations on successfully writing and deploying your first Cairo contract! + +== Quick Challenge + +Once you have deployed the above contract, you would need to invoke the contract and also "call" the _get_balance_ function. The _call_ syntax has not been mentioned in the previous chapter but it's fairly easy to use and that's your ++++++challenge++++++! + +If you have successfully been able to call the function and display the balance, take a screenshot and post it on Twitter, tagging us at @StarkNet. + +== Contributing + +🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. +🎯 \ No newline at end of file From 7833188c94fcf35e5b7bcceffd0c9c5d92eef43b Mon Sep 17 00:00:00 2001 From: gyan0890 Date: Wed, 5 Apr 2023 15:09:16 +0530 Subject: [PATCH 16/17] Fixed most of Davis's comments and updated the syntax for 0.11.0.2 version --- .../chapter_1/images/cairo-compile.png | Bin 65203 -> 0 bytes .../modules/chapter_1/images/cairo_venv.png | Bin 43815 -> 0 bytes .../chapter_1/pages/deploying_contracts.adoc | 72 +++++++++--------- .../chapter_1/pages/environment_setup.adoc | 20 +++-- .../chapter_1/pages/what_is_starknet.adoc | 2 +- .../modules/chapter_1/pages/why_cairo.adoc | 4 +- .../modules/chapter_1/pages/why_starknet.adoc | 4 +- .../pages/writing_first_contract.adoc | 18 ++--- 8 files changed, 58 insertions(+), 62 deletions(-) delete mode 100644 chapters/modules/chapter_1/images/cairo-compile.png delete mode 100644 chapters/modules/chapter_1/images/cairo_venv.png diff --git a/chapters/modules/chapter_1/images/cairo-compile.png b/chapters/modules/chapter_1/images/cairo-compile.png deleted file mode 100644 index f7e07162933e8f995da8cb3483f9d43ba443281d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65203 zcmZU)1z1#1+c*pY0wN_S-5??o(!J6l-AGAEcjrn-r-(F5NlS=?3M@#2bc1yF(z~#` z=fA(_dEWPZuJ1e7HD~6`%sqL}J$IcrZB1q32ec2cu&{_#RTOlwu<&RxX*YuVn72x8 zohcU9!&i>-^4hBM^32*^?(ZC3>@Wp!8AkZVdV^02Oh2Z+awvLD*iOhQ{QeW!8?1fB zdh(B0MLpC6&;4w5x|#}E?}_*rC^X<$D^n6BSf3`~J+?D{F`psIRe0EO-j3+_aj^;> zMehFjA$YTb{puK3nSDrh27BP~PJ)g6y}iwkdV8hiSa|ne(aqyX#N={XD=8~u8AmTd zGyUhVSzYVIRGQEWfMvq{6i7cFR$R1LQfB|i2RIg10I?DKDE|9r+au-M38mDAg&fh? za&0Q{f?KUh@l#s?DSw{Ie8%&n!%}-rpDc!hHS;>PoXSJ6Fxm;!qbXPLir_shgZ1j) zzg$wWdMwT1BCN4rZWF&V`3RuPvPEhJ*KHr#Ak1tPxwKO`ht~hVK~rbY*KWzS12K6@BFwaY9D5h#n5IMKEQgfsOka>s)D_?;BJ>KLPR;F)5XX@qlROg( zUnirJqkr)yE>RoixF7LWq{rh!;S?U?C?NKV*`jBRC|+;gg;Fcd04_&2)%&6>0yIoM zj8qF<&a~y^e|%dfh;aEJQ}!l{27>z%&pP3rtTlU26`ACYUH=Demp;mO-&kW@dOjLE zBA<};pMPM%_6n_GHm9eruIC#Wq08ZGeyP`)tiKkD$UZANN4|A6OMVe1Ms@VaazLGW za(y=`fjWmMg^8LSB6*$2ryi@f7ecm;-!s&|L8+tp{WqiN=5CZqpkS=|#e)q>o3oyf zR_5*7fS=Dm5*Cb{7FoT737`8T`S8i# z^s%kYFd5qCg$I+2Z2pp7CoD>UrFtZdYqScRXtSfah8ha#4)D3X(yncIJ-93Oqw&{d zv>BdnO0;5obeb12Jw3sf{w4eQORQb~xeueM(gzP>+V!t0d>+0(2Uj0$OiFI`KehC=&AC1NaF$`hl zN%v&L5^d4*wv(-y$`PLkg}#0GC!9DhMbHC(rIQIaoSzJDLslRQw`45p(ClGZxXD|Y zXV`Xc#f^!pI`7xhxZwZllo`iOexJVfuoa6p+#kZx8>p(;in=h2U`!%WW*7 zb=*ALC;`ryVniwd`x8|q-L!`au_~!11NTZFaw%7(YN#-LqY{tGQy672AK=--o=j*{ zk}0CDif}4Ys(38%z^+hTh(1Y~vzTU2|2r9vQf6_61J6$iR|TzNs&Qur(c60romgdw z`)|v#aQZrpjVV7ze6g{1Au)_Mc-v%*GkXtm@wkTWuv=zBAuoE$6TdY={tP!SL92In z?KSLqh~!Fa%eoN^KLCVIdc{Hg=!nn)SHy~*C6Yf$TdsoHg@c|wFFLp~29~VCen9p$ zj?shfDMe$fVBG82!`NSOoU!IT%01YR;!3r?aUxQSRp@nPDxD%QF5oVY^cdyW|dOQQkksB%J{W7bgrE{tWs+iPgFj%OPn)y*RQO!OZjN>uPiTLp{!F)5^wa@dNMa>KW3?Rc)s6LdV3}*vWwzDw2E1O zpVpugn>OI^b%Luz#)iQLy!m3&psznMSi|9I$J2Z122cAn3Z|O&)q_adKdva9iV6!6 z3uk1x2^hfBg4I;JE6T zcd_L9EU75)Kh6`R!S##{4SaIa6j6`yptm6}p+ zceZvuZGP|FA9Wa+uqsJVYDo+`cG>;oTkF?xAm>Zymwh;SbUrk*l5zTT<*JNs#Io$e zvW{{|yrM>D@z^jTvJf62A_$+m$xyve(ObW}>|0Ny6N>RR_wEAOatpFs6llzn%;v+% zyVrw_kF(O)X547Pd9R@}wR5s_lzF5us<5i?uIpVFP1jWyip7mZP+l|YkzBXDQPj#? zx`rP|5`N$;<@uxfW{(V5E366@L+(eu5&OAeZ@#{PyMHC=dm^Qhh+_CNzv-ch;ECA@ zy%N%XGMi$XDw~3yr4Ob5 z>`$T<4gUMVHquts%liQr$4fisp-y<=S#|%7x<{_I!1}GiVcZmFL9Q)7m;L0#pi{bd z`c3&G-E>|5(y(;}PbYC4$D{8#-@|wlensC!?2eiC9&X>kh7np*p_9W?5IeYS&7ZxI z%i)@VBZ_)lg9sy&A``lAEB4BE?!%0KREHMwt3T!D1glhV{dv-?@v=Z5R4sGBLZ9`Z z;6T{-YC6obHNctiqv*>zaZ4iffWL|hJ5+^{68=P=DkST(m@D9uwEugbLGb9^i-NQ7 z{H?H-Y`FT#pIMW##+|Vs{#^0kDSBJY#k|=cJKhPq*MEqzTS8^*!mg3433>5D2`juR zZ^m_9^rhCB4Hv9H};Tw1hRk$0%nS9muJZ!{%9GtSk&{Hbx?~#dXikul%mIW_F*Oaf{Rx z)uh$z*CtlDSU5NMAr|=zvJK{{aH{<0sApf)211itPR@gXD`L7tkx#Dh?>hBoJ7uXF zNlk`Lk8|U4i9|pPA6vhmMEl%*O^KU7yP|$-w0;c^KDus}Ncs7bAzJeDOv%;9+m(C@ zKa0i3t<^ueimayG@|W#`I~fNHc7ye9ELN#H>U=>q;BM?;9ASJ%{MU48eKbiZjckqO zk--u3nBOE#%>ga+Qbz#+OXO2*Gs;aVypl@dh9NGnfc3L*ieidTPC-o>r~JP`yVI?D zMoZR<5?V13nc%1JKb3y(?#>!z>{IeCB>eZJHbbWHZitc?+!*k|{&%Ri<-zuwiYW;r znNoaBnEjIQTR1%*IuV-gf3fg2&$P~s>MuIPe#QLv z@?`MA&GQqwl{!@Sb;|Pc$+9vNuFPHl^$l#4?WBY%<$@8s&lM&Ys(UuQ<+v=kYp)y> z8O$fm1hnmb*z4Wx_y`h4*91CVoOfEH!M>L%ho^xYVZ!jBK{}M^(#p>cSB6-|R)F_r zdH3cE(bh0$ff13zg@EA%74;O58l=n@9$%^t=z{F zrop0>g6Q-OkAc5M42;zX;G!u$L&)uV8Q$NA1B_GnfSVguy*-gsm~3bhA(nz3cI*vq zMZ&NLgGBY8Ws+d^M#>>vm&D+7<$8@c236nwS zp|?B%VG9VAB6&^RY7jtBQ}aG^??OHnY6DmmRYRFF!9otIPvtW@afb+jkPW z3QGS0$9ze%I{5f_NbvFb`}_0y3-Y>q+4H>=7Z>N_7vK{R;K9`3@eXwJu?paE^Je>Z zBmdKmf}OXGm!pS|qq`gPKkZssyZib`v$Fov(f>aG9;aP^H39;BDt6@9v7}(?{n2_Uk{u|6TYWKqYGevt_jTAy*fSjDbjUYF-`4lFTQ7)~^-x*9j)o92l6mgknzT0RU z+ng_Nv5SfC=IGzttS6;ILf*TcC~Rh*dA8oWYh!pI>4BZRNzd4F+8gRAW@I_S7L+h| zaIx_z@)YJil~@Am2Wz6m5QmqfJ{*7~>hOrv9vrw+)(FZ+9q%x?p|?k<#qxbFv_t_v zH2yBw6J73e2F>6zdb7jsz4J%Mra##LGq|Xd3FjD66rr*W1)?de`!-cF^_*6nmMX@P z0queB9S3OKSV^UD%0zkZu_yHJdb&8T^FhQ!Sr~sIm)ne)NWGQ4GBE=>-5WcDq=Pik zN;(3XfY`rBqexE7&zO(eKXMlZJTCaa#g+EiZs`4;)lpy#$=6}*fiC}k4$a^(ed3p? z>m#I@#V^~t{Ys(aQdgJOnESLVfx79pwjVPbs3zL75c` z;3=s$RK@q3Kf4&oq%U zOdBik|_PD0nf0f8-50;P!Zt$rku1vH zZq1<-CB38|6fI6mimuENc4bZfOiY(1!DAsCF|DwtVgG&o9m8f=+N#L1buM{o|CyF$ zooY7YJx{TZ&Fyg;o`1QMi;ml(e+8UuN)NnV5U}e7M4hi+2)q3ilk}C4opUHHA=gRB6%i;-n~biDaLmvl58v(#Aw0v1 z&9fhCXGu#8xleC+CRNMVSsuoJvRj7U2yKN(){g-5pPXAEN`-MbpSbBmWN|?BXaB zU`Zfy^v&bAbtGTJ{V*}$^*0osdVU!?TX^Ypeptm+x=Q{NjS{7H0d--gX>FhJXpKX> z2K`q)ylObLBcfF9>v2-WEif+H1T^?3=aukZk(}f!Y7K`n|19NpjnbZ>lJy6_(+7o^ zX1e_0{+FDItbd|-LL|{_0{?8k(Y)+s)D)=jKCS%P!*X!bC|R1L%VT@6*c~@Jzv7p3 zdA<05Ch>Kb&JB&7jKSB5FaJUYH}qHGQtHq8S^xU#E1TU)bwC^ZbfM9W&vDi*ziSuL zr%&onVKS2b1^P-W z$-sXQIi6rM)a!O`0fWSo$wB`?;6err3XgzBdcvC{g#J19q-6I7I}zYKfGA8NTlqbE zB2eeD-~|uweY-QNv)P|w3d+=n3-*rnaSR3-5rA?J?*Gz!J`+`pt zC@u84aNh-Eake5brJVL?bCSv_eGVTXwWL1m$Y@S_X+M2j)f9V)>Szmv&D$&Ehkb&J z2)W2ymv0IFFsb)NHYxQq7$DB@GjtiW@4k_>1DY<{BZ-nR$#ka zr7zV?C~4r+Ef=pABk4Ous8h`pTFH~+(uou*m6UUDzkW)kfDcB*AYJcxejIJZ2%D^H zJ;=iCs&NT)%EI?xZECpTh=>KzhjhhtgT~kPv@RkyLGh2+Xpyd*V5xJm!~iBubToPV z6i5@0xRWQs(~f9_Cf4{|mp4L}k=-NEzsM;fvwF^z0>bSb%Ytx?zfsv40#u$Cq@>bH z<>wf>_nTnbCkO2Dk~$e|eBg8MK#)<=PyI?RsV_Q-Hg=)`yK+iuBFtuRF~K->5VAF8 ztoWfbm12PGvxdw3jxS*=IcW*wuMCM}LZN%>*yQgRwUK|G!SRTY%8z;8=zlf;Wq1to zcy&8$0pUeu%8tE4O2Xe{+fkx0=z>f~F`)7bZpY4`n*cM?vi_~?YM8{UJFfHva56e_ z0!jy7X9PBVO2DFM^!RY!z6g4~T?;@!OQ0}vkIT#-NG;(0ojiRKbGJ$3yGqg3kaS_% zAJmCY|1d5W$R#N$2>s^&+c~}OQCBGT*Z755NW_N7^qeEWDwC$!Gvk4%ZPO`Hs?x|6 z@tQTo`VLF@P?T<0Xa8rwA{5_kl0_BnrG^Ek%|d_rMdyJ`!$pd?E>=my7;p^0d~LKe>uLZ{-BrU|16IQpaqi->cP8_YC7-$> zvIGr}Zu1uqV@Y7+8h(7ElvELFIhh;#a6`^tpV=peB>{U>6wbMKqc@o)!4Tm0n>1$)o5M8y{X#L3h z#Is9@a-Wvroew52i4S1wVpkA=QeW`hA8mU`s0b@ZN>!OgZska>=;qI!B>xXuDI9bj zAQnP8`d6tgxT*dPE%~@1`SHigud5L~@7tx*V4RwHrB(Ws8xUYElC;Wks%%|!%vSOT zY#VLpKlKYJ=SIp=nb*7*n|_k3C3h&{uF_rX7BIyC)B%`+J8D+@>(p(;t@&{fy~!)OwENg|hQ??oQW(B(%l_ z)n}Lm(4VO?NMEjNzs@zGuSe-GloHj6766a=PlY@VNxu_)qnS1V z^Q*B6ostmKuFGDBJLz9H749uz)jK2kDFhdBYj)>hK4>b*-+V*Ay*)DZ_khGspwbq= zJqEH~+H@b4msx{chlH*zz3#v#KX$9osJr0=1RVaN^@S{tSv^+rt@64LQurxKM|6S_ zZF?)!6fj{Oy251(JZ%9OW7ZKGQ|G%rG=MQ`&TH>71H{DuWLgBN3ambSys&B+dX?ey zx3r-VI^~I``veH)p!L+i=WPHhB6kAr4@ku$HjjFyKa`-^mCiLaD=r<*{oHJt*S|KuMY!4ZiBWK~!`HiK)q0`l@sr%3=Bc$Q`&Z-gq?IYWkOTA1)|D*2L?y{ie$IaP38p`#FIqe6iShuC@vz zko<1^%kY(<3w81f2ov@{F&kibtrXzZ1?A-RL)x={Rq7l32(o;Elrs+*>=iIepyJbQ z`Ri5fqPzjj=+ss9CB0mKwFCu2+js;w>j-5@0)4EKT%T`&PALgNmFPN)rZ@TiD}lGz z)*%9>@A>}jWih)#oGx2@_H~aP{$eX{8W@#T0J3MGtMtmM5X6I*{8WqWj#E#455Kmk zZDoyBqoZZC0QJ=~(nWB#{KnaFZD|x*Qy8uo|0EK1nKxj)sI_GtM3e3e_GA~72b4Q# zKdR>3UhZxU>P@rdGfp(SMj_WQTo@#bAy@K1MRL3!emabZ@>58I*{>JtG;YWw` z)yrOh3s%lKzaUpjP4opUo+jE+WrAB z2m^?q=%#`7z11_Y)0QQtf{1PqDXo+-(tUgA)8jxH{}UHsza!(vqHkftg#D=!U#TL` zbjv-%U);y(uFxyjEXKW0Oe;qlg)8u2UCc>XPWtVm4`c)jTCd#OuSA}58x2;5-d^e? z8pD#FEfDz1H^W%2soj%6Cl_>U7ifLCpKlpEG_fElY{a4o-J}-Bt8-oW5pm3{zipl& zec*G{EQX73AHg;f_#T9bxGh#-Zp4GVQ}%O9c?InhM!`2Q6b4r+%L@)3E;L%uC*eJy z)IMHnF}hjyhp3y0f>FZsnscn*;>w*7Q>~s9!sjz-Uecg2#5Pq^z?rpb?z``1`4YZJ z8+=kmePQQW1>3FDZ(3qq6X57G;5T1~b|$l3W)jiInF<|wRN~nM-4>WvEO)NPq~x3Z z81JurhZn>g@A^QxKxqrovPojgAp}6(D73xnB_f)1>y3X*`5HUx`mgu$OsnT6>|**O z^mV4A@}{O3Z5>8-cHb`qgSry(&L0mE4Fsw*t`Xgru;p!CyVpx4^8#wUcrfFvKWxbJ z-e!aECn{}a6EbnRyC(nM^x8fs5%{s2$4!Lyk(Wv~y8Uh?ctfhj{8zKsZ*GICs7_}6 zi@t8^yY!Wh9iexfab5|j7t0K%hJyB^#p1bE7+DsSn%oU=DT7}$X0R!fC@OC@1$6E0 zfVcGdhWkgr`Dp)ZQh3(_cmi_+Spf=-P|2bm)~{aaXJ*Z2CJo@7Klz;A1+5)?B;?+) z9k{CbZtrQ69DIayJN8a2z}qzNQRdNL((7L0AgFOtWi=6x}DNTp(|x|L+&v%Ul2 zs!9+Vt``;~0~fob92ogtoawqkHgdO7Mml_y`P#a>94BIorH|pI=7P&|N(*@_hV#Zb zBSa1actwu4?L6zbp>p3QQ~m9q~HGgAAtC^i@_Hc?`OXma5n|bJTF>L0ilhr&Ha~sb<4V& zK^RgW=)2_FGI(Z0PQ1|KZYiJ_J!FZ$x(=#9OVXV8`w8W!N2h-QYxbfOQafYnoPR`K zkE)JCYXOC?oUz0Oh@>6Z=|Ye~^gn7N)d4211_D|dsen|Np7`hlKTsfPU+X7CLM=r9 zg@}T(gf`e0{6@I2gk1Df?^_S6^8WTzmFahv4jRU(-*-(^r5O4j!3=MdK(sC!J#iko z8;j$LUU6p8+{we6sl9`vImxd-x2hY|=<7V@(=j{y`ts28t8s(eNWQ3%Cc$z%*~Irx zm+MsAeq6;W&xf`!3JFOa@Ax?|=GfhaoTl>=hww`2e6!^eXZ7!uCeF*31na-faB1o4qo|u@oCihMIA;k;jwIxGC}QnBgSG!$LG{22_s5lZo4l5 zIfbNYxl1lc2u1NtvkUsoirWyPjRYJLsQYk#E91SBfaWsW{&l{am zjWgG<%Hh|Qe*?WX+Zdb%H#iQ4n=GI6irMCbkClHlswIR^b#V-e)I-W9Rg`lJS0B~+GeY&YOvcOdHVD9h&+#Cph^D;c^Z7vUBdlc z;i$Q49@Jx9PJP~Om!mLWf?$|2hUW_!d7%{-EBU@c(PETT9=Nd*J}ZZW8lU8e zeg1NjDGJTn4-!7-ELo?!W&2tE_MUmu8w1}#j?B&&s`3uRwQ29ONjnb(Pg%wSw$>{d zw!5(swD=SB$bJtfmj>YD{~TpUJM8O0{!|RYO;(JLNd6EP9Ij1nZ zUz8+w;PD71liq_qp4-1DF`@&(C7|~|nznqFY(rfyJ}p~KKM}F@-cTDNdaY1*y;HGtl#sxmdDlEWx#3>?9Jm*@D!u^$`qhSpSx94rcx}FM0 z6>moW4x6NMD1}KZGF5&7PXSvS5E{wSZj1tnYZkZcn4XG>v;(e`@7YK5=mQAc6=Dfo z9?ekjQJr$g=b0n;>KNa0i#p!*y+oT=t+ zreg4}vD3g8wM-q8Gk@{U*LL``hK1Le;#@cmzBV`9dyu3aQOA4S(uQE>4%11{9@>hy zN2NCM_xA^)>c2m{tMftViZab?*0i5n6d%hF>?!!$fWxJ`BrQkr#Ab{GY>?{K<6wtr zVy*l$0B1)FZWJY=_E|Le%NwXB!Ln=RSIBbXwBjnS47Douo$5fZ-86BUT?=P%@Etx; z-z{5R<@-&@=UY+XYx_5omTHI;6sZ89>WqS{T=t`vkh^Q;d;mlZ4%TO--JE^}C*)$F zo=`#b(5o?a}V&}rsdM&31iGo?C3J5tH*k9S~%vCjKs4KSU*O^`_@Z~n}2%PLFxAaP9! z-m`DZCCa3|(`veY>`18}W3to32?5v9tp%c_O;7+$m)u@-@VL~7Q8IqFb4CPN8c$x= z-_s)gwBx)L&C|W^j&iHEuF6|BtTn4F2)#CWsia|>C*I+IYC+(Ae3@q7b-}NZNb)tB zm@a$jcgI}U0{ofoyv^0>8q@0|6~Nbl`<5$7i-`f?F>QX2|0adoGvx00*ps)8tvi6? zehBIPGuVi<=~#hu+JVFq`?Z1OVs0oN}2U`JG9VE-O|tqJ*+M{4-!Q4y!rkKC1nHxTy^e1)IJN7 zC9h?GtOlFQ#tRdea?X0LiN+toDyzuogQN*}So5O~KAcYprK(H`I`+X%XYOxT!|slC z?Nhmp7n4x$Ag0YOTqHF4i^fx@AO^R@Pj7P*$hIX6<*M!)i8ij>$T$ zX|!d)I-W;!r%6iRn-t;NiuD^10V?~9loc#ME7PCO9RfWc;(ivW^V)+F(LmX^!xsD8 z=1tHReCZtY<$O1R?@6?x&?8>w+pwGE8#y~4w~6()!#L>@uEP*!xIH*x4>DuP>bscW zP-FH(SO4~ICzt1u&hQ@ke0x}RHOjAE5iYw8Mqlu0hu&&~h1efZU=%Qgp!yu4Gqr$d zz?Kf0`J1MPiXkMthc>Ah={|R2IHBRCXLkGSU`!)N$^bq#4kkm0UTs!ZMHrP#_zNk) z00Se7%9XHPhCtj72M7Eg_I)71L(51&1!c1d*=4r_rvh-fbgxfA?2~Ag$)2zS!aGOj zOU#4;OS#fOIt2!0XCF0D=P(8m#TL+f%U4r9H;_SFGlE`?R6K14{e^S7g6uEhOV?U&V3tnX zz)(iDe%PV~oEN`cuD{rE8FE~EFk8)iJAG7wQleoov0pKBp}EIpyc6k7G)sOmR|gSa z2GDl{w3-v7lq3*1hEBxZ2Yo?ODFArk5W@?m z`#wGgm(QFESE=4P)7(o%EJ;9#nbbogIfo?i zH!GJyJ`z(djunlOdG+5WREGySIo;EelKY-#rN#@Ap+FQ({qKqlQ%opX&O`8`AZPVL!lrAjO5;m5|J|Ual4#`@^fruEd5$-?_KWUJ7En?=`Zp?!J!G zx6!9KtZBy{wkQ*}nY4>kMJ^8kafg84CFmU9b;suCZqiLN7y+N1Kq#a;6#e=)C}O{DkD1UUYzB z+Z18hDkF7URKai=IC!a3>j6*-h^P>irAvwPe2b>dpZ9S}$8Rmv;~1ZTgjL>?Mw@Il z-czn76Ar2!@6Ql+{=NPSLrmE0Ikj@O=2R1|=mp<})ME5UD+)12STYPri6?M;cjvk~SiJ0;UR3JWbT|J(xc0 z|Ll7{pml96l`C3e@u)b3HCN-}+K(OWx^CMCBq&Pw1`*qmu`P(N&s82jn+o^a&G)yq zUXgD`uokOjR9PsL7+On_Q3A48q}!xakyZ*e+s}R8XO$u9WLTAqA7&rxjdSi#UqX;f z`sj;oTsGq)N}mhd>z1z|7x)qI&F^<`U5r5CIn;=6QR|pEtKNN4b|iOVV!*Q}Q?y1T zq@za+|MoNI7VHV|h7_M8@cCzy{tquZCe1hFV6`*LQWbJxFgheKIy|GUX?12RZs@0SF`o4>6 zz5-KtI+;m(L*W#|tx&iP*`2h zfk%Ms(OBUnRTK~#!+ZfL+|+`Lj4Uke%YsQdx}inlwK5|{8xPfNN=nku<#-o6)e|Mk z)vaMTF;AKO-)Q}X9B(KqddS{?V76n?NUUJqDApnKdug8^|H(FaQPE&2&4j#9P<`qz zaa%?u2*%8onO;9mS|(kAYZ&vGJA44ET-VeNNoPVQ^GWmRK&u& z7!8h7Bs%|%uo0y#McU8?6v=%cGYC{~kG`ZyQvLGNC+xu(ywFUJlb&;Ss$46EC6(Fn zs6F`Rnm${tJt4@?{HN4o3V_8_-$q6p4i1F#mztUJ!6f}pYF6Z}yq7O4JRee5_LWT; zT9uO7Gj>ojT%&_ehdq^`FRf273>7vp@@tjh*XQKvROUWu^yNA-F7q&cWSyLXO_+jE zj#BwqEIHeBips)US}A9m>`S#LTBq|3^3)-;2z44OB5801aP>$UIJSaqwx@0HeH73z z#lv4jcoa5hl|r`?F*r6BH-lkV`70;;SWB*`v1NDh^6N;YFY6TqbL=O{m17;g!$5w2 zjR{wG#kH8@;qsvPENR_u#Sl*t{;HI1Vwc-GqTN&Y83nEaHP9KjQWJRb40#bs9U>ut zFkBV_BmJz9&!bY97!Lexd>wEgZKH#y+;xfCsN3$MaJIl~r=L5o8?Ic?Y^NTN^_rin zoGxDsGmdXNq>=yi?yey3$VQf9rwA&r;`1ig7XYtfVxaeJ8Cb%6dpMZU!dl;G3)_5(UseqtM$_!F zP;6+eJ3~@Uf-#GJ%1Q&to?&pe#)2Z=p|s6L^5Re98ao#=-&kuZ`I&Nv-`=<^YYH){ zyN~1rAh~qAiFJw3I#;FzP~L6^P@>Li#pGS!pTMu%VwFI?v|}^(Y^14mww}r*-!LS^ zUX)&f)%qbQ0GB-J-ORqW0vn03*)SC)Um%fBD69+rAg;XNvVXM<`lkYHv(NMkprxBQ zPN{wiYEQz0mm;pG4hvgsULKX-g)gL{DD=_kGU`1I4Wg{a<)vG7%K%^3>ogi>YY@wl zwP z{ws#dsV7>w$?+q7&}CrjcguDi9e6lQ^9%CzKD?X*9XSttXK*O__L4Tu(P_*It&OpN zE!y zqGdVQb0@ijbaha_;}gCWtw7OyLPx-u@MQ*&G1pq-XJZbx-Y~(>fYxJV0)%X5q_E3J z=pa@pzK=%GUd@mI)!Q zyn}qBCpvF;z^iC2r|F|`y{`{A%{xA*rrL4~iBmy)_jEsg8yp~P_T21ad;IMe{bYS| z^*yR5WcXBUU-n`*ZMUeOy5`7k8gwfW&*0p2XA^K~#mohtwjXwJJp6*OR6a#)w1JFn zbA@d_E9la~|1vG?t-TF>MEhrC-9@(LOYLmj?bral&9kYB(y8>O5Zv&Wx9%&kFdFJE zL8_}yv9wbdeo*d1|NiB3qgwid2Kwte_f1RK2x-@^6DV16h(bSTwL>tbKtuA8J5eME zw>qiCWkxsIU+#9fbdbU`xGF>%jk>+j6D=X(pfhrQchE=-nRv!zb4Id}I@+CMH2ts} zx(wE2g@l|B^1}^MpW3Yy3yf4*wEwh%9Zr8J5kEpKeduD6vaLU@38vh~PUqAliR2?? zJd;I^6$qMUJhL!MuJ7AnQL-+0kN&cXRC$U%{`6{=x-{}bLecyt$Yp@vS3ZGmOI)sU ziUld^JgfguzMzmQ*MaFi6bztMa%VT$l8wcx5l=PVuhEtrf?%B}FN~_iV|>D;8-gD6 zfq*4emUTw*gxMYf5?4lazk-kj1d(F`*jAe{1bjG_bN1YI)C*$oE~x|WOZfiiB%;$3 zZq-+Y5{UVe=$1J6t6odY+V;|5d@}?O~m=M#X9` z;TS_mpw4#(oyxf~z4BrBIp;GpS7XE;6T<{G+Dlb}{LGWeDRnelJ#HF&4KG*12m!b*2PMuL{UBm82YbD_wC8}RThX6!AkQRdAt=h4w@ zQ}w)->J^A*Z?#i&b+8NMtfFVXJ&@gP_S6>!w=R0X%4>2Eog~rZz03RR=4Gfw6sp=k z8vGQ$qX^?3@uI!tIAwYW>T%>e%YS=ndtph2fO>5^iP4Tx{j|}j*?cA~FKsh4sGcXL zn%Qv=(8#?eELI;npxWh7gCpH_%i|&|^~#5=gG5k|e^#XaQB^N{;2Qo|Wk%#O^E1-D zZ@s!sge_ODPJ*X$O2~-(A%zBjn-8YWx^7tpD3ZY6(FydFMIV0YUUKN6v+Y#~k%bqK zFw|{zZaV_IkxD5sz(hZ?2sqy!>P8?NF0H6`+>NH&Sj$itEqt)R(b%Uw2s5&O&bJw@ zx{vHn^xyJV>jRbSk9EbEog*##(5hN!kO6FL+EK*B;c=Or3A{2E|5k^3k8%#YR*$P> z3LCS0c%RB;KGvYzla3M|H?&MdTx|@HF-%S#vnMT5X4e>9AXE)FzcND9M{sivaI90W?`5Oy z<6`P98_YnUV#R9x-V5Nm`Y-Dd;_R>bkM#?P12XVziz~eWOOvBlXfhry;{(Hb|5O^S z`$swg{qZ+&tg>*L6emdMOgFi|E?NgDuDvb7NprXPR`Dl+qAW{5rqoep48?N!d zM8M-G4;K*Ke(S&mIm^(Vec6nX$Y)-M`Fd^A7N6wHpA&hnv%^Q2H3nyug|^Tx50yKH{+IMb?2QMbhu=xTM+ZV_Wv+9gp? zxK?<6@(kh+FW$&7QY!d##tDQ<;Z)PcZ1%tb<>Sedw}b>KXp?a{Yzl)ai z)u&smCWS$8=-IauLtETEmqu%`s%;RJvq0sP#HKSH-(w$YgiT%6=s-q_2jFl%HxH`Z z1```sj(7-7h65OPlt7LqW;^RY(1=lx3&Lh?*k54FUHgucXYU_1OE^`YAU}T@<>l7` zrVlBA!X9;p6blhQe1qVgMR5{X?TQb<8;ep!6BUCa&Y9Nnvw_kN$dp+yB>ClA`tq#< zOF+VnJrZrRz6wo=1TU^Zr)*M)#7Sv?$10U+WfjA5-`hocfWu! z$Hy8){lic>Dvy(*e$tNYTuN;L(y;Y$E&?C-)I z$thTova4Kn= zdx20cKS@`|L5`=+HO~WfOzh)I8fG($Ii!k#7i+Fhf&(|=IAu3aUjxo8i({o4g3?#A zodQEFAJO|StQdN}tufV77Z5ovi?1s@PbB=f&Llz083A^Ia~nA*v-Q`p8m7$HFlu7B zjqHyPqM&3~R2csM#dnmrQ^g~I-cqu-;l70o8UBK{@?|bhK?ymx>*?>PoKQjXq$X|5 z53CGH)TOT-Pw z$*$k_Rxv!eM=Rw+Fd1n2_G8$qjIN=hv~#{DIB69)5y{4Q*9MF55oP=$Ms26}-Qgvd zdFLS3(wwDxpKV?KBEB-sK3@g04lC^93ct8ZGI(Mw?R<5X>9`2=f(n<`S5gi zN#gd<50_Q+sj1jCZO=4RwjXjnne0GW_)=!TCSO9jtV}(J{wdf6k!y0rr-DrknWRCh zb)anaQb>*j#?vOY>N-FyQA=h<|D#fy~b zbLcvBBo}(_EaWw_k8#G?gp7U8K`4`9f2=p`gh(F*&lsq!251F(%)?jZFhox5G zmj$)Ec~Z6YeAu+b+G5xSnW9%|0GIr7J2wEGUWBBK!nivpqV5UzhgnHQx#{qHMQkefLz~de!zB$Q#yFaDB z)czhD8;2ZCeFJq$H#fX^>PJff0nEyIToqX;1{V(%m5f(v8xf zfD9pB4k;qt-7vt+>~Hft@B1F#AO11N#J<ck*)CTZICD$+Jb4bOJeuro$q-RWz~B$2aj`%Ca*pnn2S7_6xL?ej>@K1qCm&whcP|a#yq* zWMq*_j1mr6CJV8o8rJb-mqH)BaQ)=RBg$*e{14g7$sj^0Wqar$0$1OYUD-ytEu-}w z7%jEQ`BcZF#x!7G4T8=$u$0sTPL`UTNV`i$sA})ejt`RcDHmwfn5&DyoX`7eMX~^xudRl4H)6Y0SZflv>nAJ2 ze5*`J=N#hl_cjzto=Nzj21>gAnlihmTRQI1UW>wUPsV>x6Xv&L){vll_%GWFLLJ)% z0KBQ4lzc*^i#50{N&b`hGRO$8$OuiP22fwFqcXAM8fxB0E+ZrO`+y_7Kom^Lp9aBcu5%uG=nW^bf6#EsruE0bsV@ZD6MCkFP9jd zD=K0sm?T>8u4M_cL^Yrx5P8b~2PMgU7rdPUmcJrF@_i1jU``dbw6bTLLG}(3k5U^v zE9NZpSY?2SPDt)Yr05FPuT*MubgW@m2st{bV3`0Rh6qBiE+Iww>fR+pEjW*RsKkMzQFzk)z3k^7PT>{x$y8SMBSy)YRttelLuQu|jFmJ%KLg^VI#| z3s#o--t8+=_Yi%*quMY$SY*V|LZuf2WxQ<@CiUbGtw3VDJ0ZkjGu z+P!^o<~(0{g+8?SIAKkL$!E|r*v4B@tH5fUQW7rwpp^JZ{|>THQ$ogWwXGEQNOH{YY2Ny32fa5(%{wt{vf_|0|hx6JV5O;5@9XR06h zpH*NhabrLI9qyua=s;3W1AC}j3AP~%2F3 zC!8B++2e-8Exz$E5=mdU5ak^oF*zLHXWrz)Qx(L@T;KYAb|`uRbeia7#l+Z+q%g^tMqUD2b<}YRM4fK_7<* zFvQH{(tT?!(;q*KvjOgdP#3)JP?TJ%6@?V0&7Xm_O!hLq35~J%=_{7%364c#iOdS` zfIFR8RefK!=ghieVj1{ub>7YyjN*sS)edu6kZseBDPPs(D_3(4kekk5rsqh=`QCeEcwj!7n``2Hw|2On6R5Mz&D8@xB`p4=G8wk>qC{)j>zq+ z(fhc94!NT^q%lNvBFO~Q0nx{&Wn-w+e~v>$H5Tj{>6JJ zJLzv!h6puH2SrRV%Q-$E!^77R;uw}B_ZViK80tS4$ zMKOL@_VQ;8QM)LnIKNNKDqk9=1M|zgl$xU3h?Bye3iL5~RQ25w4{wN+2kx}Cir2dw z9gcip*-Q@%4s!Me&(EeS|$wiQ-Ys$aVi= zAxKb_XS>)DvMRxM)^41@&KvIfruE{rSer0-zdNi1Y1b(#e8*qGEg1_u)th>C%n)-c zrj*a>7n25u(md8b1pIV1X!|tAv#ZIUJu30wnxn zHjcVr(XxPVSk#^(<}S%|O~@n*RVJ-DOo3RVnMARswa<>M_d3KF-k%4U|2*v8ezokf z!7qH`LK(Dp{ zKM_c-wZ{{1k0;lYP`&rw{nh2k=GI3%#(1|h$GqO`@o3oosau6!@soyRLHBvq6NDN7 zo&Ud=VFdHm3Z-{{et&?^5FY*ttg5?dV6{fTUY)&gQ!xTda;@FcU0DUCk#_7C84`xR z;2L7osqMTvTN(K~;i%=yUTNI;CaY=B_fG-`H3-!q9o2`7*b1d(1jcz+uX66^3K={g zNh22HK}bNCqCeIq>SX%QVfSx+;+Nqxz{zJmCIml0pOyE9pD4C{)gu0oBoOLf10hOT zaJl9DIOa#VgNEvq`{9WaF%u=7%(TL*TuBl`UC;TswaDC882x{(Pl&aw$P3`z!u{i$ zSA_Z`3ctD(<-M36L^vr}EqALWCIe9ZFj{&8P4yMzNLlc{ip|Qr2mxDF)ONfFKL=2D*2nJ%c9YG}vmhSme zM(SSc<&kjsFynU=-)3CeP3ZW|t*d5k#4E*en|>pPPNXj+3lc=7$8>1I z=-7V8xCE1GoZRoIG>JDKcpy9d-Pd`2SOZ_+X@Tjjz(joJ+tjlcf50=7eP#xVVR9jO zz3aytB1Q%V3tU|keU@F3r9rL|LNY{^%Z4Q%VutZ16D-4GUozoH7T;hz;Sx0C@HB?-3*c6Bn7J_$^@7$Xa8pKN;p*gH#jk8DX{IQkiWhfiv&%>6*mxt zH*N^-Ub6t?{sfP^iKy!u*~XF@I2D0LBfXEgYd$Mk$jg1|v*dM8&E)+4;QlDTfBh!R zEr|lF2J(LwKp2OP*S#hDO(r*s##PXRtZTT+`JpjY_wgumB1Qp;096SWodS6mYvZ~Q zpaVv-$q?Nn=DqXjZ!8579SB|TM=Z3J-*ik~Zai$;XQ$fuwb?9eRDWAY#qVE}WD8*Pb63(YxOcjv(cXm>}8=>1bU_(mXPb85;bJ%C% zE_}5%R7v15UU(ZDw841hDZJI6m9{Tg@3a4qCo*JwlM_=J)_Ap6IMg_wBX?KFR0e<~ z+Wevd!rNbh4jh?IV+wCNp>2nJ;g*={eS?o9wuNXxVcJtmooI*lyj$T7>nh@t8P@Mt z5){VA`%2Q;-Ps4sMSLRmUpn2hGW5ydh$AD!FtD{LAO{vDb;ca zF_$SI!W zp05kV-q_B7bMYc}!)Q-(oak`Ja)tskn-IayET_@|MLJX#FR< zZvrNB5yyEKvfvIJazOPUmL5Gu2PR4or98Dec%+%c=T6!6l9^V7A)J#vmYZt)qh zmYv3xI>WuYMJbqztAMxku9R30w%2gu>T1-RpT4JlD9`xcVm4(A2CUz3Y#x|0d z6OW6$^UVi4Dn6Gl65Ka^DcFCffMs>qzoDSD>WnVq-Ro&6>Ig%ZNxAv}-8(TKPsUaE zeHJ&+b{I{6O0UxI21lO$D$7c&#C< zAo@0*|E`3W5cu|hTR(h(Q4D93qHeMBNS|m55kN z=7jG4_IB*`WD$3*My8ln4K5)Ds{CuEdt{|+5}Ok_osf)yibGa$##&?Jj0T#(!Vf~f zei%8j#KOAGesvLXtdrHn)FJ(Z?9(*yc%{8Cb{u2`qV2qRBD;$iVt!+^y5}VYN1|@S zYPT&?O=xy`&AS6?h@js0Q(?kHc^aOVSqj@qZ*hV z@ett^1D7T;`Ho#gC1Fnz4kEU^raJdV!&bh7gDoA2Fvz8HCqVm%gAA+YoWK>77Qch^ z<9Xe6SAN$zxhKW9G1}F-d3DWXe2FcpP@UU?vu4wH#-r-N7NER9cQq3OxL))e-d7e1 z%Di3Mvq2LVD*>$!pGUg*~AkO=j$$E*rT58n}k?2(R8S3^6|oAkQOu*a(NEL z2d-SiBecR3QYeEd1p{Ldi?A1NpL>QXlQbY(T+H^#IvD*6aY+982eaUkBH&Tw`Xq>F z={t3F%VPKNdXsc1t*`^@NHad1`Se@sO<86ig{ zS@lGdM`!p*O6H7=&sU7}M69LHmFasHee%`!T0p)0DWJ|d9r~!o@nE67#(7~|k!qK) zpfixmqN#g4q~?a=WQEbHU%;nvdpc=@{*(|CPmUE++H{wlzAdps6(>dpoe5SE)>tiCSf!o^>MVw)l3hA195#z;vl-qsF7N$K ziUXpLM|7g7c#jO&X3j7o!f()q&|E$62vZZSDiocsIvT$iUU%q1X;#gkC;2cA<}pW6 zFs0XKJ+A&!_~2dY!zSE`TL}&Yq|K)t$8qp+6ZgxJ_oLNzd+nDmr#>*o3None-EZ;` zLdkA${Q{d^5J8+>+!#8Y>DuSV?=Fs*YYMAJs3c$YsPo)emamix0-#BP>-liZd$;8- zDvM;#4MPm$M_v16RZ;XYfj$G@hr3#EPK9O0xv4gbAMWyYPZ(QIV@Cm&J)W+{!F6(yBHxI z!@n3U7dyH<2jQV$N{kXObiiRUn=no^_tz(nVyTH_-l0ceKzW&7IhVQ+A@-BB&FCQ! z))}k9g@Nwhh;_S`2c$7A942*#08N5x6bd z-CLba%!1)3oTb?F7mf;!MgMh31 z{L0yHk0L%{M&hWRnidRI+-tJBB5pDDx9E;LQwXxzWv3l`Z>L{zv+UBZO?o zkv3iWxzJEUw(2yINAwwa)=?;yujiJod?ZCeCyNCQ{=99bCBxjF{_IP>N5VeCrtjW( zFunkw0Mo*;n_aLHrv~_?i_#1;NOL=Xj&*&C^}n|+!Q*dgYrDC#D4|D{?0ORO`{Olnws;&H45)p@^qo(Fcj?qvE7- zyXa0+`qHrjSPGYk`o`xY-&@Q}%a=@f30|Z$&Xe2I#iaF`79BrmWYyps!T%iZy->6%UX+qS+r1Bm>0E;_8My+Z`cGN`)f;i#6JKQ=co5S&>l*6dGO0|DueE7T za7=kJ5T3%4Ueiul4oY?l5>Dy_f>8u!%(16|;Vn^txjS5lmWT< zqvL`rR<%4g3H*DufFbU0y36zR`unU(O>M)NgV*CYTl-*Fu54flS2;sk4Rrr{PEEL>!(}@ z(vtd|rVnSxnZ(xIYh*T#)G9thIet-Oz|^XSLK9u3W7P;FUqiODfh4RmGVg)8 z`zBTC4nN(P+m9wLlRB&i<8Cq4%NMMLKq-}>OB(7~O z>hrBDCEA6!04vpdI~)a!I0Ox7C4$Q-l6 zi-ix;{qcR2htz;1j(nkmY^AK%FFQx>j#p*HUb15Px)zKV3YWcGdaE}1IYFpis2+ig z@#A1q;TQ0&|HjsR@V#g%|HC+8aAG}VFJ2qFe%c}dNg7LW{K1Kzf$fW#n8?yG$n_V3 zC9(wW6kaC+SC9_6J}(EXu&Q;vj!G`2JI{8y6xEEu3Rhk1E@Ydc>0r6Te%*Q2cb`H= zd5E*I2@4md-Aoq0qhMt~?XUQ?eV>RfUV><%&>&0wLq6%9s$OeinozP)xWf3R9sk3m z2t0P_%umTO8>}<&OfN`7#5BJpY@e>SP+z?qUrgGcseEod1Q{?`xzT@b#mPJTxY1ss zRayE%8^-s-m|Zr9&N;)FQn%fl{cVli>^ zg=eJMY-G~SebR){e%Ldgh0wljsF=-t$UykC!Fi^Ys`vs1fJqftI#i2((?YH)s7#9m z7OYp4Q+P?Ul9zdQS=sz1Gg) zB38#Egj}$;D|}EjJM`;)^lgGQf+2VGw=Pt*{22)0B=n=rlMit!x5!s`CTiI7?0$0E zq{3gyjrgD%dSEJ(JmzLk=FC_`+|iX`q=WJw_@1-Awzl#`)fztVT<(rpbN6#Z*+Wvm ziUzzB8jLmKm@^VgE)UGO%eiz2{Xow*uIzdjkXvms>L>Zj*;dL}t0;QV@I;ineB2^5 zoV|#8ZtU6R+w#_^`c0uK0b1(vsAWgbU(6Ui7IJjKe`4Fp5#5mCj*!Ml6# z7}|cpzv%Neob&QwvnIunyv6JznDDa3^Zl0NZx!Ck41H-z+ANeLHk}&EAUflO-%;qO zkcGu3j$WJ@S)dvM3k{*gZKp?2qYaMxKN}M6EdDto-_Y3dfkWBz5pZKPOve%i*`n8W zj5b2qyB9mFd&j(nLK-angQqo+myGdPHs3EoVG5CKfD_uF)KpLEvNykMS&AXV+zJV! zYM>E6(o1eG-Sdelw6j}xo;eGOW(#8}Jhqo|Z#-Vy3&`un!Rq!rIgfMpeuFi9jp%lTfQGz%zr04|bhJAwDp?1`@R&!xC1 zr5Ygv6nZyY6rf}B+Gpv3eLZn;xW3&vP7r zVjoItEncqbXU)Z*@gwNu#1onHLhaOQklMUWEogqqaMiqz=(#Nx>*2|qoLL5|(r_4F zF!&<5{&G}DS6hT8qDz!3xm*8fl_@zTzZ91#xWXBX<9 zBehIrPDBg7RaLKXY{%F5N9@xbm^vXhU?vR}FL#W}To;+$i4C$}$7mmExE}y~4#G95 z>=z2CSl72)%u;>A(f5RSY0=}qVKJZAE#8`M8K%D%^xAV2HLaoo|#2L_?x zv%_RPyJUcC0yd8Dq_yoDNQc-H6yn2|GkpmF4HH@}0Cf_uKOT#*1cI^*hi1(I z6qmo3AOBQHdx2)G1K*$p^|80xVXH2_1B}ad{|KZisTQJMNSwXXKEHfK8F#tY{MC>% zxwM zxbOwvv-mx+k8~Bg=R41j{P*8Jjkf7X<5b3xBi@QrL`^a|MQ&Y9wXd6eisEbHY$@kJ zbu}d|YX)^LTJ&}lBWMlAHBH}!#cYl(b40^7PZYw?rsFP_GgSdW4zoq|jSlYNSZG*f zyLdv-xSDQjOY%@f=|`yPzY zE#3}a1~?!NX4s1NC4WM+7{e(d26qZ{y&CIQd;J?|l_?U<8M3d9Oes>cv;`$F0NEN$ zC2gBF<~=FW@P{&6RZNliH5B$gOwbcfMaMxMArS{#oY%M ze{$CqTOxgk#3}y=M*9r)%bEv0lHK_H0hc!QUG;!`oU&W`p%3_p!dmBE*%qt3PaLvz^L|Dxvl2a?&AWLG)}D!4qQqs ze%Ph zZLuo+7eLJli3-OkHq+VR|D)i-pBZ$Io6C3`5y*^WPK~fXeBmE`RhnH_KSCt5^AeXV z=-cUO3*ocP%z{p>VWh(M`$Pr@NscFl5ijlTwkX4Iu5UTdeWcpD+U!J)pI@eRW(TK` zK)edxtQ4$D&ta}sAiv-nEb-~sx9qCVUS?syQol#CEh}cCRL3NS`ibmnf673#`M66f z7qvt(w?o(%pw6>!Jh4{U@$FTaa8{zKk_SUJ;)I0wcLyLhvMqXr1Sv7Q0OW z*6V-)t6_Ty0RT$HXwUPomaF}Gc4iLKoOHS3sTlw%6)hvJ64O6d7?9riZ>1pvY`Q>X z06#9KHpRfl+yvg;rAC~q>@;<@tAi|06B7>)axrCG3^C!x|AIrvJu7Y;eJ=Gx$#hZ> zw+6p84a~IFXz9=Jyr=&^$XyPX7!57sOA&X~%wVx@g9G%4#MFk3#)SD{osNZ$zuw5;?n$sRcVPF>54Vc=;4x(o&5msL3 zEDno-w`&f5Ep~>rKZyl7MKjSiWwieFr*YWY;5A&#UsHw^?_Lu_A&TiR*7K}!n3go= zV*d-^xjAa|fCt6cN4wzO4b{w z{i7-=>eNv-_9=Jlrs8_4(4hRFXw=k^+(V=ZDw&2G)96XE<@nwC^<_nmovhW*PRT82 zW;V@-L9X7n1}%v~U$_;6IH_&=CoM-hZ zQg*Li4kcwG1%;lUI{cQulo}HwR285wlg-{5n3>=T&PSKGpVL z_OvXXPQk+I$YbKan@n_*`2XUpae>BOH|$cV7pV((bCpI=&drtopUpc?b*nAb83!%Oz-KUC~%*!0-{{Lv5sdBVo+ zht)Rhl4)aJMYX$5*z@PPVSFLIj%JsTbA>%)XNf_Q#CqeCPmT0YCKqCb-uR6jI?<;H zU-3=*Edim|%o(9f9R0ViX}p~<#g1$KH3z_Kou7m-Zl-o7>j)cz-G|=fy;oxYeK>=i zpvUw2drPaNikWD0k?MI$_wvEcg0zS~q4BTj>|rb}O|aby&KKlL;o8;%)7dYnYyk)3 zw)M@IfTA2ri@!&_1cTQT>MRL{ViBk3G4MDa*^ZR&OZ;Fw!dU^oS3SV4+#FcuAkBP4 z!C^9&q5becY|_@0t_n{jQ>CRe$fauG@Y~B@i}RXys+WZofQQF+eq#USVDnP2N_6(( z7Xx)&J13Q*Zmwrx)XpNbnV3}?>S1ibpA*FwtelP42y~4h8dj^?;REL zO`2j`fJ;XE4yI}?rE}wU;8+g&K7Uu*So(naP7mb!#Z!B$%QCoijbo2>oj8&W531>O z_%A0uZVd5%sBQ-L$fk=hSfBefcp1VjtMX-mGMUnuFmW*I7?6=K>IT_k;qkvKjB3Xr zLXrKH-FUgWsQo`(dSALv5)5xr@Sjr-P-d~dc_Ecie3O5SIylKg*g@6t^ya=!>~`^k zr3uE@cp9TV@w}!QJs)=551h+?FEZjT{TCBY5ywPRUdSPxh4#Aa*_;=cJNQaq_2%x3 zUF_nMSy{wpy!RR2flRX4)xfj`Q)Ol?texySMnOFE|Ip-V?>582@ono}M zBVTrT?<8@PbeaWQvgVNr)7oo==aas#pNZFRV&ZY36Qvjknm3gB+$!UoEhX6iAFQ(L#kD}Cru#|du#5-xt3oH)LXbuFM zK;nSzQH$3-KzrbAf2{ajY(m$qr=*~*H=2%A;bRKz#roww3dV9;nGb_f46L0IZF9;z zl5RxV@oMT2dd_?PH}AM|&csH1^B4Bc#HyKqbh~j76ZXcco5NhoJBO1EWCROshRB<| zr3EolL;$&Za22I_Jx%H@N!p7e`s2$n@}s52v*Dga+!eDPH^#m9rm=_Wk~b_kfB{}t z;sp-YjdM6x$b1n5nY09NephJu`@gv2)}Qa$a7CmR!ti}ItuD{z+c`*W=rK0l=tlcl zyJQJJ$VdcG+Es*JV zHL}TA3|*^U(6wsOd-Iy74qYivVP0njmw&Tss0mj_oRTCMj3E|1#>)<|WGSGlLuZtq zKm>D@Zk1dOG3!pockWG})A&xhh#Z%Rq40K%8pC@MW=SdQBd%KAiQn zJC>n*2~xAOC5Xz^AiQf>90BhF`FrYD;dhA1aG8Cdd{NkVqHscfK42YET%*;qOnrWt zL=ED;c}q@9iz{hhVL3DOC*2*DuMnqox;>S4b(|0Je7DMDGEV%*ZnmD^Vw$}KmsI#m zAu|XHQ!mIyO$o)^$K`!b;E=?xzkZkUlXE^-pxS^}pWQM(D_3lX;A^ ze?pvEX@&;*)OHBz`(AsKzkZpYJW!|(rhXeua9peL_R~oN!W6uHwfP!yTf<_pW8PQ@ zd5T0NA=*Ctmw&!oSC8mV<>o$t+3ra~I}pBeLUVG+aLAs>5dGIboFUUOLS}C_=|`Fy z?$Z6(SLWODK-&++n1LTOBLt3O$O6MCfhDfFJ0rEj8boNwYgG17%6CD0Y5YIzTdn+# z92E|AX1^tw=qt}HKu1j5(M(U}QYHS^w3_HVkH1K4w<~U@DZ1DPw708OfOGmPLC6+!8oY2M}8cCo``1x@!G$S$M@;f@>53Z+23Z@Nlq)G+g` ztY?k4IqEK^EP&Fhy`LIG88DJ(p#MS80U#(gT3O~L{985<-Z?ddT;U*5$b~FpwnJOO zk1bmLmh7A+n)F^`pbB|?P_VWf;%=9du|*O{tdC?@?tNb-#>i@)6-Z%j(*SODy=|f0 z77ukopB+!bXr!>j0hfOv158{#AZ6Zw_CZ%ZS(x!fze_yHzK&>?GA3tf*HP@(ha_0~ z6qW~qn;n2dS%L=FjJ1UPd-Cq6-`QoQKdA}NloAA2tXkVYjDii^V9FJSr0WhJ>d| z{I3j`g~vw|vFhC@+t+AE?i=6l%oe0#&A^W^W-?$HJ7jv)18w7Cj0Llxe44RkfdJPQ zpeBTNPwcK)3}eSHL;1Ac(0E(Pv8<9f3dJhiSN&%sUcFT}<)^^HXNY(uC4Cy*Gx+|* zzJ)ER$ZJ0*W$ z*o!+j=S%W|nMtn%w0S?F9Vd$FX@y*K+Wyu%rZp{wZcp$dcG~xGy}D^^OGu2?kC7R-KO>$~Wy3=Cqb-26PJ} zA0&wA$!2+|Kdh%CCE`x4)bv;%7GCDy=ogASm*27p6vbP#E-cv;XAF_G3j68Oa2KWuA%-`lpQ~`)_NjeG7l7C^05cdD#XjN}>w6GAY zNa|jD7nw{`J8Wf;dII_yFM=$mri2v-((JICHCr?ghG;5#4-Sm>`UZVd)s526C+;ptxT4 z?s)A&L(pxMb)wmTU-<38OFgRPjx_}#+Lf0U#z){UB|~&sjXAokbJk~oj`ija5=b9V zDc68q>3U-hI!RsIU9Bm z-W{Zv1s{Sn5QWg0U^uTu{+6!`_g)(!>T6Of>aPX7|gNV5MzP#WJWLeG3M#ACR$|0uA(eJCZ;=H zS5*}#4FS%ke^3~}UqAEQh%fs<#h~zr-}w?j8@q*1&fY7IE`b2WmyE8dl$a4aRLAsl zr-yQ>+9X1erLa(0AesUjQ2-nPtk_P5Rlh^Z3~bQRe43%NgoSj0y490UNSBsecr^7Q ze;)IPLzz}ap||nA?@)Kq_lf~BedBYBPNFGVjwMj^V23CIsPo#MeDS(bvnTf9?Kc`c z0Lvl2Xae^OQx9fTOZNsW0}HLj0$r8WpItbv#Ko6g^Qs>SVfez`qqNnIzvRPs6Fw3P z^#J2G*Hpv{oZ+Xc@P7Aeh3`|eI`(xPHa9;ZU%+Zj)reY~KIVkzNdD~A2(s5%{UsX( zdGWyEvS#L=ocMx!6XZe|@q0)D)h8-t$m#Zt{QZWG>2O6jW)0p~;4r$P^oi9#am!tJ z`Iu&F?)|4z#W+~r=Z@>DcYAi-<>o6b>5jM zh|wBtkjpo7ap8q~Kbu9|8JZj^W6&ley5_e+yR2ID?{(JBKQS&=&l)d?Na{G4FE`j{ zMcGQBiZAdlU}PXyE=+psc>%WJ&Fo)bYdK!{a7C-!O(vzuYpVnYk0f{z*c@fs%9LEN z$Q*7eaH5;6OiS_0KjgQd&@BtR`#j=b^$o*}zEuQ$c<`GriEx+Ji&P0uR8EnoB*U0O zOnx;jWzdC_g%)H|IXa z>u^}ZWx% zq!>TaoDkQ)V~CH8TmT_v+eMnvCIVVE#~Oy!k-!pzIs5}y_Y*t`m5&%UPkVo{OO{Kq zDdj8-RC8VnUA-&T!ypfmCF43EFR!==V02Pff3*R%>x0DNv_$zK4nmeSt)%7Z%W_9$ z)LV&GJ?8?M#;$SRVv|i#(cF~6Ft1XAxqM>md5^2sJRJ)KipZCkoxG-4}QqN5F z-*Mj`l0Ntmuiht-GzIySwv4}+TJ+W)6fb&UNyFB2jw9_$6G)>~C$i$g2c;C%ewJu5 zr4zQsZV-)ueBmp8kZs%*R!IC%ti<BHi6!E~_HNV~t#I+zLW@cs+8 zskk!Bkb7k=^R3}<9-c7U4yKvv8Q~i9`xNW8;n(>PqXX^ zIg3OS!*gtCQ^Er&l@*JXHX|6bIPYR_%izj{8ychLD(Lvh)Py1_o8$RK8a)J`2{xba z?LKU!!@PR}c>A)O8Bz{)w6Y~7U!{h~GNoswr$qGOe_fs-;xko{)QD?1t1JdiZ-iGb z9%+GbZ*PL~0~hGfr#SeTN4I<>(v#c3Px9^>u6O{G6u$;F zW4bc!w8f0QcB=?p6mAb<>zz;nXc7VI_dHSqB(AJt@c}FBSITuDoCGHg(~VkR8d+sb z1I)0iejPEeH)yxzeJ~x6%h$?UyK1fE-ZF>wfP!FY0%6GiE&=`D6`(kBiIF!4eOYmo z+~Ixq!j&nWFu~>IaS2~O$0+M3KjOUgIERd_#9B`Cxw{BnpduMtP#fmFtl0Mb`P$jp z8;wBE&fVeR6HhNa1HJQcT?01jk$3uuNBvm;W?hW$=^?k$SMz#p2DRScPSy~Ol;pNr zWt$Ee?NO~lGS^$+`_qlm&mxZOye;Q*0;gyX{sliWJ~qyAZ7Oruj}UvFe`2#Z``g*x zY$&~wbf3qZm(z?D zg|*{xj{m~DWa$wzt@lllI35(7=uhFEh#{iQ;WhhHw3mLgnBU|hC3C$!DeL{-kEW*w zdnZn|!hWc5C_BG=ozR~lTKUfd;#8Ly3EJXY-T_Aol}itodj?LSomiz%2~du6b&l6D zb+@XK2@SQ??_(ViX65c{y`_`i%*x-Cn20{c9*)j;11BX~WiP^FU!l^t%#35`MAZ*K z=!5CT&( z%&)=bsGZU8&vr^bze7JGL|=6ro4G24W2wFXt)B_7LyytT1`oK6RT;$Hsbli=(2a*0 z+bDjcI>XhzBn611s_+0Oj!{h_&vVRs{B8RW#K(-VH5nxaMC( zQaYEGCy&9N0bsVt%b;;~()4mZ-nu2noJWOj=^0cF`pg?O>7)Y75|yC4Z7EQ)XTqJIo~+(`ZSdZG!|VW*=^1` z-AymA-J~0ksBS4-2sr*zy5cnk&!VU-U{yZ($pCep@kdm91e|ULT$6Mq4)PVtTOEcS zVgOWD)DcyKb`SL6U&M721llNZieQffa5qiz0ptvv7dLoib2#Aws@wYwlrA8-H4H7T3i}j@%N%{-Hqo@$xg%YtiQKHbb*5NW>KRD$Q3Y=a`zsneB`^g0nO^so)m@| zXyUgs3G`B)w@f1HW=1J84#ejNl;hos2!Y0-J7M?keW$cGKQ=F=3y%&f@K$&tBQEpm zp5|JEW`~u(yytIa(uhVVFo^kAZuzC$ z8p>fxfaoE+)D$Z!x>C6zWvUGg_f9lv?1O%uvOhL4aI+wKya1q#YOVa@C@&g^?sXE~ zT9b@??^}3t(j#JQ!Jl9cmnx%zu-TS?&wt-Wq6>B?WV&(4mShWoZeGjXE>5>i!;pyw z4>j!S5+YFO8zBmiOChwEx@b>;brsQBs*bzPt7pjg#BTwhQ1Z2f-EcbAvt)|OZHJ`? zJU9C)e#%7ECIU)c6pc7=x*oghw21lDJOMrL9UDdNU4pdj9y3#XK+icnA(1V_2Y23+ z(5X<|YKmbe;eJ=MadjK9ya|f2n1J&fhS4zcB|Ko{ieQSLvU!=!&zMg)j{nAl@^k^~jnoSeEYAS4RaHK%X)ZV@@rwB(Wh!!;2$ni~B_DefW zwO|a@odf4cE0Lhr7X0S;7`)2zS5e*}(;;Mf(N2=Jyr#$M9yJCmGM>z9G&navd+pd*(r}K#LtKFJ z{Kyr-_=DRPAH$R`J~fU`HjUGK=XLg+dxZR1DH|r~8~%r zG-*XzQGCB`>WbZ`c<42i7j7(P!oXoHb|6_KHpg&4cjUhJioo{ln2u^nrG>? z97K5d1_>a^R{%dpMYJ19Z;yQ^sJ)80od5JX^tgv5jZ6yal-QS~o+4Q1=}+N<7$a=?1aE#XEX? z_Q2HjGc;dxTg(sbUqvdr8F1X%qZ;nb_H<9YOi2a(kA_E3BhgF&+~hOfN3a#?=uLA* z9`nym1HIzQR|)&l@MGwZ?OJOPT|K006yt*2pVG6Lz$M)~D=2n~U6jsdU6ob+X%RP? z>O=q={)*dLgC~k&EI~`SmnHuQ@9200#j!p9BqbtkPB@0fEf2>PQrUt?&3-%Ly?Y#| zLv*&$`$KAGP+qv8;J$Vwt%~njw?NpDkZdr8XOP>pYy_j2I@J}M<+1{+Ch<}*H4b#W z)xtU~xehhGC}KX3`Vvx5qnv$zZT|o{2=K-L!lYCzT;kB;&Lo3RxbcOhK}|ROm8Iu$ zV7jEm9j3)hIp;J>C|cBPpZmw~Iq21t{5~gI90xK5|N1h%0bkB|bmWWu!XotL0{H@{ za^wrmjS))V*Q2Q__&o7$b&R70Z#a1kT~8TrPE1+6tzgB^*HwSNtEeXA)$quhKYixa zMgE3PGUA&UqE(#K*W1Iofol+YhlISo`AS*1!Xw+SWEa(LI;&k#{Byu-VrYb~ElkhD z1!J#?9B+>lg!5_e30~by50$25x|{Kp9MD9u4-3U&4wjNc((iF<6fSwJSQ~#3{u12p zi-&3#p zU(wVOY@+X-7vpBGqJD5W?sNW5ffn5av(kJ%O94{8n|cZD$*j)j8&yxK$vQvw;V6FB ze+%t$sXn2rC@JsxJkfy2uU_h|Oi2+nFqumID(dKhUxY*T-Sxku86KS!k=QhP%r_@= zHN$pA^?KRePc;53QSs$IobC)FD$mHiBZff{dn~)O!E9|NohpOTMD7ZKFx@L#eX>sq z#LCw(Fq1!)U#OM_PSIe2mK8L;RmuL(5&G)y^@erY=3xdhR~}bG`5nfiW>R{&5*{{?a#J?CPfj<9-+I8HtY1|@-O}XP(P-o_zZnI zml>sldW|z=0PVE21mpirx^@-zCmM*6#Cdj?U`&RSC+R?IJ-rAukevjJG_%n4@2h<# z(Z&E>UH&uEm%9;M^C@@JOQ zihYJH*o7*+7d-7R_hNfIhC7vqucT{abIGfV+w$(l^cm4yo=s`&8}8Xjf4d#=dJ3;r zk^ky9?MF9S=}9Za;N|XPhqybk^0q;_fAy#-sK*jEF;D9XYR)x~1MvW@e86T$v>q4s z^m57IZBpGSQv3!?19A{q;(D&Q$jPe254`C70GarRp~gnO+G)(TaV;dD#?C0-6$bm% zD6usn$yOzK z0vaurbj$+64Q~qA=A4Ug81WW$`Z({iv%;hCVw}X1NH9$rQ8uJweN$1zNj$EcP20Rj zO&9qQ%2B@mXSzniWPlIw)NuN0t7xMn{fb=EJg+y7BQwICH;iU3s2feG_M(oZ>0lNK)t{K0ps0wfqg&aAn0(LhRPnX zaOLG3u|cQG((POG?q1k7294exZPks!qU2rr(Sl}q@irh`JlgXTdA~Y*chhShtjPle zKoyEFsqc&7_Au%`D29LzaU|dPAh`7f{`IJD5I#GSL0!_6sj5@-XS9?#9>4h7Y?04B zmqlavTY8RSLx$=&;dZ2S3L-gZ)VgZjT?4{yECQ zT2SJrjM0LD;Wb~BrsD-JD$uPvHTxD)E_GP*_y>koQVeU?Y#4I8d z1*pg?7l1(d^-$dvN?%I@jIE9`x{o8ip20C* zjsCzx+SO$*hL+x=`)K^n*zI30qy1N}E2!@U7<^!kch)0~(#ni~CRve`Uj7yEn{i6t zsoIH*73K#{3ks2n^=P%UR^D<-oMbDWZ)flCLpX3Hpv^@cc)(P`u%i4nPrQ|eynQ%u zn%zYS1JarIZwb2BO;s|@@VDKl;df-chcp}zVN28u=>$H5n{W4AzQ zbjHdsjGRPW0=Iv#N5je3*xaZAvA{*u`}A#!iw#^uYO<56e}CckPlCGbFz z{ag(bpS<4k;P%rGQD#%;RCLJM$s~r0!4a0MxubV)_)3{*B?tr~W%8qXfcJTq;sr`- zDfAEK^vpKnis1KdB!G3RDo1kc%Xro+ON>z`e3LNVZ>+Yml^v*mM2XF#sdHfB!M zRS^;4QZ^yoQgPd;hk?pJ$UcHCFDjX1OO<}N+LfP54*dPAnN=|5U?QnV_dQ2R?hC$p zYw$IZVY|J93L7X9>Ui#$CIOdipJq}&VDI%x4qFy4pJ3~S!`B2J-0`FRd|#;7I-Dqz znjiK^rn2lHy-jyacW88cyD_Q-vwC3z6;reEVYT6^)E zmf4d%xVYv#0fp749N!fn3Hw>tu{Sm?WINFP z&v4Gwl(SCTWd1|CF_iZ`UNAKha@Y8Q;1LDPZ2aD3srr>$I~R%uwn9eug&i9iwcU3> zNsFqZl~e0T_6+#H3-n!Z7mAF3wpXaWAa1d`Czd&dNvF?+2{MvHLkG99^p3m+-@Ole zdXR5Ef5rFI`uh7tUB92|te_rIDk1`a)o3Ao%^B?*E0j^8eA8|chVhbimZFFF!B;;( zlBr}AZzxQeRTIkqJ&w3tSuy~6Nf(Mx4xmL5!o9?v6x*&>Kd{UAIJd3k6a%@Wz6Q!O zq8RCDYztzLpRoSStlrL(9M*02$zDIu+BI@1k@eLO9pr|{v|#+P2rp9@#-XN-R+evu zP17KrTsPgD|4j!-sHC|}Z( z-gSMv`oignw#F%{6~Bq{{xqe|;Rtb&$Eo}ZZmF>5ns7(v3mmi+%lT9 z&YQZl6wfH&)ox+Q^ZwaRoubLe-OVTJ^0>TlEK1WOt0@_`XynrP3fIGZkgdWBzL;jO z;COY#QJ$h@T580ippn6bJqY+|x&mV)8SM`Kx|3Wo!to4ZHGKc~Ev6eTw27WxP-S-D zIyNYJ!wU$MGE7cxh0!z~7#L4?#7v@P^hMZ?1)%A|7`Ws z%mVo{ZxKi3OzxZ|ao780<%RB*&%{}NCDDzd`h)D3;6K64lA2e7I17uf%&6Y=SI7U3 z@x!cCyAg((NmcW4nRkk21%=yWiG5M%A9Jd$os5|m;{#z=SYTdO3aBuchE=vY)dG8M@IRt66TBa;=X5M>+AB|2H zj+(;wuiW#`y_8Tn#l8hx?l6=fU)^{@nP$~;P}qb;&CBc!r>iFI_if6?UETD)M@^xn z%znX?=ZN-7*-GACfhzOi1=T9%`2GXX-;qN}F#c$N?eM_xzg0g#OR-ls3Y@Gp8piAR zT-E~eR!DNs7H|p2#3;b5Y6Q+f`4*TCq!)Q<(~w-af#?IW z&h+_E{7wj){irdx&f(tN7HV+=(LllF(L`v~Ej-^r6Q+Qkb45v!Q96II97vtKe5p{Y zl1!$kzKTWWD~w)uuE6LC&qN&xkz3dA2w5+*Y?K8|Yrbkq=X}vcJlJ;Np|fyNmJF9d z$h*|w1B#G=8PLbO-HPh*;y2-i zm>2VUqK`9Gd>>t;KzMt1m)f(vvkourW$rclzZfsI&@!cBHVEj9WfOglU;OO6tPx3- zR~Q=qt7k=&1*_H8;$XW!)E5RK0CJ>=ZY^E_3o_Z|e8GSNB_rcdcdKul1L|^J|14cdAuV zax}-8b!_#^;xVtUyq-paAek2dU4cBWD3NTQ=dZunf01CbWxR;sJ&yzs&S{u)B!9?w zx#i~mDT+TI-&~+9U!z~3{T0a8<=gbVqcMw;R-X9CM5f*qV6Nz`{A`m`1@T;OajqV9 zr(`#j5#6AkLLGa!j zxwO^rgem8o=E#qB@B7uH+ysNo3u^Ud7T2AV6q&)%>ArL^Nr5@^rRYvi_0zA%<$l~A zgej7Sh9S_aUGZh}h|wg3spQ-OW}F&@B7kd-X0~xsgc)DQ^tlWgf{o+uP%i&o_;e2R z&(rty^>sNlMnW+7ptl5=7h!7@fR<4YsURSjah)}aZ@S5kaUIDh3)H>IfU92QWm;!_ zN-Dyk*D+?1A?rfP;0ZXHrYqF?I2;cu`^yviAMc43N)+Ib+z=221+UXhKnBwe--Moq zmW_QVH^{uMwSg#t9C9`hE7|uLmL88{qELA_q#3A2*qQ>YK^5Z3JppYX>DC=qG2ldT zvV)g?6khv5VHj51vfSNCb=2NfXx0}L-0l!Dem02mY^SsbI))%J@7$|rDX2@%&ioDDwGVpU_m)Oj3d@PYl* ztkNQax4)dL)ckTe&m`y{VS*|68au?X;>4}urD+AQr_I?>i#q&3*;`-LhwOkW&EqV+ zcnWU$q__t-YW(;vh=pW6j#N>HUPJfkS`CC)~eXXmU z_d_@B)t5@E+)7VUNjCmCZ8yzL)a0!Y#%9)6g(S?GA_LTvU&g7ibt+c%{15kXxlF;y z(nmJT0(eDrp3hlxooz@#mGZnBy-uQ>F;O5cs=8RogIMh&@&l$7715gbDG7n5D8-!q z?yK4>?I0huj`BY`If$9#XNzQ2DD!UaP*JxwAhyX%L2?6Q=IW$FtX9>;LqoXKy<$A> zPXnfNbDDlh>|ezH7ThpB*)UUYm$b9!FiwCc98Ha4P8jy1!bZ{k2k>F-Ad1ibMn+oz z#djZ>4a}2LYW9Z}dSbt2jU2lC$lHuTfMBPN#{zGR?ms`pxVd;Dt{1!}P2C$Ivnz4tVYZ0H4=lfdc;Y(A% z(E<0DXC1eA5!ZKSoKevIY06e4`x?}%HegsBK1KL?8k?vsd3#fapgu^^AWj#RTQ{Df zygIz#=n=xdS0k;}2QngG2t^@{a#iId0+PkeKP6_xG@Lr8=y&+*Wd+3hyY*(GMoSk8 z=t1h4pP{u>=y7ayiZhzreI3D#@BWb*BWeWkMAWY^q^tUEGa3G>QWi=*#O*Frlr(X+ z@IRH^bJ%vKhH7$73DfgLvnz;82EZrq$9seD5txjk&UXZSGoE&O;X)P9(JwRrE00_; zq%hWK&#oeI)?1-ZcbZ+uGEfJw)UP#kKej{9j`R>T~MN9KCheS~nN%#b~T~7t5Ff%3!Mm&8R4#SXkHVyCl zkeu=1RbYgYG1Ndp=$~}n0s5rfgbvYlm=Y)qQ1pgLPu>dc@1gu*mD+~FiNxF^o#=p5szjCU&Gvl>Q{DK_& z?((Zky`m#frnQxQ4Q^?bwOdXeE9cZXc{{a8U)MO&E3aevx(7WejivV#g1G9Z@6Zct zD(O!8^F9iMmQc}9--~G=k$lM7%~(`$VBU$O16OW>vFcs)D}mRoB;`I`_uWHG6YqW> z%ji;em%N)U#aZ3rLgHqnM5G@}4x;C4(W5JvA{YGa3t*(}^$e)vDbiVZ)Ef}_6&T0V*}CTR68$|Sc#-ID*(*u%K?pAsPNY4}4f@jFbs z$t=aDpiy4wDspiFmgKUNjtJ5Jd@}MLy9;=l!8!EXl>t&hK;I^4kja+&4&VLHTSK#B z-!PB>-cE-6F5!7N_~HEiInTn>h{Aksp_N%TEtP4RcSmpyJklC)j35=KgILdRE7EKT z6ga)mUkDgdlQ%Yj;0>5ApbM@vQoR4C_OUJc;78t_gquGtz{(C)g1?B2-O4)uq`LrZ z9Mc`*@aqB`)IaXm-(R8DeF84nZ1)o1jJ`otBr@q#XI|Q1NC2g^MKB)c8*WUfwCx_R3kFI*;E)K))gKFemJUSbkC!uir@O_C9iqfmz|0ecy z-7fD7*lc5;p5r$>_8vX|J(CJ1&)(Udk;))<_Mdvd7~{);@7-Yo;vCgG{Ma&Q!Mu$E zN@oer)qpd7q~Ue{_I>$VeAW7mT^-!l>0eQ-@P_S=MxobQ5qz|l)FI4&)y9K2U3SN{ zq%10)uj0xXR``1rE) zHT-Ym`TmBa$SVK0k~!IgO$X7R(Jod$Wi7$xBPDZdJ-D&RQEW85V z=x}K~L3#{@qdq>|t%jzmA}xtO`<_;}epv8dVSZ&{9-q?_-SjXUTo)QRisZH}tq+RQ z`5u=7F9C8W8jAbK6!b$YFmHPw*@eNOZDaZi4JLnkl9wi7o@8(LN$8VMJt@VcPJ2>D z1%t$T_kkpP?Vd++67D;7lQGFmA8cC#?MuyRs;}c@&cDULZxzMVj{2 zJ4O9mvXV((bJsL~q@eE7yLb9bG4A)3bi%XJC9~s|3AYSJdgZp=&IXN>SV!TqvJW)& zHie+7xiFb2@>+wzrw&4zgxN=<>ehd%$)3R+x1bAK8u;-qQ1`5u;we#Mu&ISx4 zjv9E_)yH&{eJ2eLI_O}VRbyE=<+fIRD(EWSg^>aYCLUrxOCvM-R8&NxS z=R;zA#pGUJK7A&hAxXO{@hzK-K(H?GDPjdqe@6L|fnqMn^^bj>{u{yj;A@*43TN-L zlUnB&G2A!W3dsGjGt6>9Eh}c|m}T%K@%E}$b70u^#AoP7%^R$M&AFiq)($IieYgG| z8K#8EvnPMuU_Eyx_1Q2i%|qB26BPpe)~DDY$~n%Ua&_R1uF!dEU(YuMve$Kr7F2Wd zGias_YcZ#aNs$cqozTJ4&=@p}< z#=<*KRYIUagz|dVC_L`L1#szJV+vdk(tYDIWrz^6iU*c36=b5o#^04HSBg)HrM4`R|dADNJ5g?N!va_pWU#>Ge14y1aR`S9&=DW>sQ` zw~DM9Q|AuMrn%ms7aB3rmWZ?CWV^1;D)%eOx-OHsuSJ@HnT=(y!~E7(QtS=?o2iX- z=iwKi&!i8~303?5hSQR@^Te(y^!cA?}H3#AZl|M=p9jZ=w&*9SO;!eLI}rC&`PqG_Zi~U5*iwPeWk36Z2Gprz9Y-&=j&e1Fo;9e!-OaJF_>RP3&d|oBt*s5xNKiUdx zJgBw;ZzZW5Q<d) z!#o@q%k?=<7UQFBp!xG{Fg7d3q+PTh`#5O$ZU4ay_J6Ii*)s9bx@&x1t28`vM^;%k zF0>oo`5AKeOoY;BX(FB19?;Kvl$h=9IKjyimREWAWIy*oMk_fd?j(cooNN_u`?lx% z)mFgQgDL$l6nU!>r!5KClVAL*T|!_bkUxB|`D*}jX`~N!&V(<&hyRd{jcH2Jd>{AMn6be+JvDfDl;hfFG4f!aD30Z z27o*lASe{%l(uA|FfyE|%d{7`BOKoA78%SEunqSeex^ZTa4e!r;u^0PQAqfC9{QP6 zRU4W9kuSv-`Iw`XpT?#6eXK6ZQgrR)AE$!_=eLpe?g|ES%JaFKG9?rG<$QQCAu&{% z{6$J4L2C^XbZ1O&P4X5+3SKyh5pK||E8PoHQFk7&q z;L^mOnxKNmER>hMKy|m%z-?}_YCEdQZzAE(oD)qMr@&Q%dt$>zV)Ia{FE5yIQiSt7`RzZ^!n?vH#@$QWmOie|g>Lw_~klmHpZnKyiYVAw)*o;R;VeW$HNNq!_sZ(-aaqV-p*DBm9_;BV@I zm*twY#tN*_FYB{qZShA#-{TuosXXyHhTabY7a2dDp9K5P0CX^i?M)bgv_(MLJ-9f% z4cxm$FhdCB@ z>pCF`b$C;njr^~88cMTPbZM5t)2#Ax!FkQ8N{g!FWhKrFp#Ng*L^`v87|GCy;9&`` z%nKx5`ton(SuXMSwT?sXo@Tm80aH2WK_joW8E$W9v+qY77GTbu75MfF za)Q&$`jW#QGy|@{IrPzNgHZq9ez&}NeD17t85GfY6X|t!f4F8G4W*nLb0d6W{vr#wcNT=V-sjyp~Pp=(}n8=FuL{AUvG5^-nct@R|j_?IV0m#%3QZ69(RM1&s1y3K7OLY%nWK3#>UyNU6%`Y<@~eqWG3tn zI&6tuPdaSuETX|__KA{zT-zPG*8M%F?T9X@hemDxERMyyo|uh{Vf($TR98dbsEq;&3T3^5&mmSMT|&wZI+Tj8ylFbDzcvWMQK)fn<1FB37eEy36aht| zy_6%d0l(JKA_Hlq`$HOrP~I4a+~12W&vp`|iXoQzCak95$~~+CX|j1!X0=ufsUAWD7!$~TWSryA zoW$QeyHFtcRoybEtz!I*?}Uuzc5!?_G~8cx@km_w>UiKlZOflR)CiZD_#sR(7Y(Snjb)FmbD-iYH#Vtl|EC=(U@DF01x2 z;k^oREv?Hp{YQ~bL;<930#9f(r@wYSc2G)#>uW}mU;4{t_19C^ooiyGuw&inL2G)Qd(=uU0>a&vN^g z_;T$73ZPhM9F3($2%=`-S@U>%qBsv_Htdh;ucZcGh@ehY)I3W_J z-41nZZ}jISk4D4Z;;>CSA33~wjo%y^AfE)0_4EGDeyM2sQ$H8swcEU_sc<0{i{D0l zs~Y?1vKZY!`SKBGFr3$lP266GXgHX}v2~SW0%jFXm5os}IG*l6dXTqzVMHq~qh1~d zU$%rX0?BLAJ^>T}XZBH5rT6O&s#ky^VO|MPUfzcU&n8{vpNi5E92t~d9sR}=KmUa1 zgCh3sj}1G-ow=e_Bct;tuPHx$=1uruL%A4zisX5P=BmVS8ZdyYy!O0?nm)mY%`YyEK^^nFu?D2J#~2+zaT=uy)vfCU*!j+JAM1nNoJQY?wLD!R zI_z4yt#LSJLdRK-axY7i!s%cUVikn~62x?IQ_FZ5($V`0G&y|~%PmdIiV$js z`TzZp?HRT~J`1=^x0+E7;eL=bX0Ns|`h^nDg_TkCg}Ilv@4C!P0z@XwsuTjJi888} z3cNjvRxIyxBXtSpOBt&X7WIC1@t@bq!e(|uc*aQ|7;w1?%ppgr_Rpa7B8?cPW?jDk zBO`ib_|cf2meBpbn9qzcR@*V7NekBVXYcKeEoVPJuN6vlW;Nf1D&G0S((kZSvGq#R z=G`WNg}*oghu9LWC-e1e6kUXhrELOw-jzF+C6^l&NSt?Al+hVe!UTuY)mg}PNGGCS zLyS*$&pro)lIQ%DLvU}P`qVilv<$nUHDoyOQ<^=h!W5_2fxP$i!~p974h`9Wn10M@ zq?TG3mRf{#zGfIn%lAI3-wLvnyb}H~Rxn;uMhF(R9sg51(7`BC;Wq5w#mIa-b>X_u z(7cX+h9sixjI!h#27rkv=pyJ>62m%-6H=kz`O1vHh<_9*Q>d7_5*SzW%mr`0gFC@~ zN8Yu3!e&RhY1jwQ!~>MzBTmdZcN@{o4+`@RW#R93X>gzM@gra_xvKe)DyB*cpyl9R zHc<0{?(WeZr%BHpPEINaSm&{Urr7U@FMc)HqHdAW4@r#gLF>gT+h)sc>ZM^y`WZx$ zI!2P9<1tgwNS<-D@G=8TR`pb#|q^~Og9l_mA>d6L_%Q$Y@6*`*ua8ZoAK;LPi^EIaU zCp+>_NArh;4gL|3Jes#mIWP3^J=uBw0J(=7Lo}4b$K*g4WUuc;{hv7#ULHOgS4Plx zNP|u=b09+CnDuwGr(|UU`%Q{=s{a9~(4zvJXBmV|pB*%!V!W6RSq?951j+IZPP%4O z#*dhylj-{3`M3B?oISX(e4lm;tV@6|8QySt%bsy)9#1=wTkMAFJ z3|y9@)Kl(BgB+DM#znxIxT(_y%L;h?19k~WC^fKPA3wyrs=lxGN8azy=4F{QG|Mx+ z@!mEVr#%6UKTgXMayz!y%qZMfzz?it9UCOjF`C74{>MFGTc3B!HupjvBzI&43AH(d z!fu23ZveH+(bl3barN_~**vrWxnDEK3dh++)XI=r>^d=?`yXe<}=C6MM9s8D-9NR{7>j`MLTM1!!N#l=bD{AsjdhXH^5CQ7}9RJy7z6eXSS z{UjkpFj*wh3NA98&Yuxb@hvUM3p{(FY0jkmW$BNO!YYU?x4nS^I{H_!!(k69#1=+u z5zPrxA)5=3JoIXyEOYn2?_JSI;cyJ2m0nh-gLrA>t-Uw={POL^sW^}~O2+fuXGZS+ zVGS^6S*sQoCpVSJ(C~cAn84c!-P8M}X10ICLwoLN90#c^Bs4rd{z~MvxEYRB!lyf` z3fEn|=p|27a(^DXy&niGyT^x#q^U)`uH^-%Yyleu&-Z=rV%J}?VSfpNl@^8%Ax4)O z>!m0`=JQDq50j2f%WLcdCS?>D?bH_EJqqZNcpbWWe6SO{xLx2V=pHM3yvf@gA*e`! z5>1o$E4wI|R~t6s{j|GF7=Gnh@|2aI7T)kwp><2PF=SVN@NvV!sU^{V39S2xqF!G) z@ehbm4$tjrcOkZWEt5sBcPgIwBaJ5cd^sKE<>^6fc?(nv-31q~c63Hut=g30d<{%_ zYJ764XdE9~VxnDEjsX77TZU|pm&Na2QpM6r!M*H*_DgohL z9<4Mde?Vm|g zGI6JR+tU9{5@`9Qi51tLmu~g-Ra4NEXD9*sFeBX{hX`Y2ji7|d6{JHvpiU~$H7xVT z596W?$w82HP5J436hpugGV~?(U}`^UHD9V;!K)_|i<_D+TobDzdG)!-%kYk+TW$7> z1q=-cNx%KQdP7x52$SZT5dmW*ujB%0fmS6A9&;>69iDxvRb-TkCmE7+qI>qQ#`uXH2eZbMH?m{*>>+_@+wFi?1OWsj9&n+)G2-n&dG+ak?+r*`ZAXY@U7&Z2J zxx(!KK~n1ST4Icis^WXe@QA?>-+X0xa21I|3K#)JqX~j?{Qq}xDajKN5jL%mclX+HDN9+ zSZv2;NVk`Gs;7_Uu4qd@8l6a+?B2Ue9~TeDuRfeG#Twf$X-Q~c%#H57ZB@QW;lU&- zd^`JZ*Yw^$KkVYofMYUaT)ZMlQsxd+0#|$gc&E?p4qXv51AEGsT8c`Y`RV*UCF;2z^%VxQF0anuOExx+WK3{* z0OhC;v-~~i^4*8j4-nM50&*0{^2|7R1pezUIJDEE5_Rg7n)68rD7q6ne3q4J4CuXA z{+i;YEdbX7E~TH^OFRvXVQ(2;6cxMlYpXz)m3cD07j!L#?-e1n=iokBiBc2sY< z3^fmFSYy}v%VxIrGWpKz=xg#JqPY|6O#383cI6IR_#H^$j#2X1!D{^k{UYOzC?Q2zNOfj!~iz(Bs-cf!N5~(Ja$vMX3#L81&LDX`7lZ zH~*B2*fZm@p&U?>ApgsjxY1MGw25}hWxFW5k)2|mz$viCn z=i>OgHF-qC<(BQ))~KpK<8UdfUlmOkKVD*N5KFuIkk)o7$mD_l1N}9od^is2OtCo2 zy5w81({QsowjhZ)?1~OJS@}R~w7q@r$Qe}@ZQ1be2vrwr20H7OMnfirWdqpDmn{nf zpN@Yjn5AZQO&r_+Uc3y&xkMDy+;RG|bf2iydhkf!_NKLY-m8BW3IZ_;ag?Pkh+%Ok zdgv0Nd;M|tQS=#`GhVu4m+wk59^J6zOR~U%j(LE>A8O{uPu|4r(vym+;M2WUvL8{~ zok3VJ9vnl*CK{?U2Bh2G|Gnc%UTrNEQRhl1ON%=f95}W80vtl-TztrJOn!I#F|Mt{!qJVb{&LIc!0wUF9A*a`hh_%g$RP zA7adgyEb`Z;A_%V*sH(=Ri8F|ljOPQYVOj-g|cG@fq0!sSCjkF!CJsCT1)+C%Kv3v z2c!=392n{hp%W+xl&wr?!n?5=3!clz&mt%T`v{zUPYgdnD zC}yv2{)sM`8ySTdO|TpY#JU>P#@h#nShU#}t5WGyzJns1X}Ed$?s{B zycW?n)UWd0b(yzky8AClc7=(8zb*4>zS+6@L^ODC^^A)TqoT%+ZOD-maEWp$EFrt6 zl64Y}4Ju=O4fEEIr$AJzl#E*~F}B4gP8V@#b?ZV_g{QI>edkG!x|0+4; z*I55%zIxiTEBL}fV!E|Y%>1yniU$6@KORx%Qo~b@*QY6(Ql6*=Pw{kx=qA5rFXwNW z-W=@fq;q?6<%ulzxN`vaA=@k2_cvPq+eNFI*8n8cI&z^kPj-r=z09r^mIt zFK(R}PlKybB#zt|JH?r35Ri8KVOH~6npJncJJAkn7!R(jLCgQ-B3}?f*N|w0$U;bs z%aD%*BC24K>N+z~vSB{>vt@m7BZQtIqrr`#Y@xY2cw}fsU`kWO^?Z#-9Kzue$L)!y zV$&tlD!cG5?>DkTAzmbOrR%A+nJhC3?};$RN6ROVS6Laxt-psgSS$o#T2*&cBm(xh zt0};Ce@QT}Q*F^TEJ;iwd;^J;0o1iOHG{X&Ba>Uq(;sZL@v!*hYKQ1EpPN2^viY8E zAl`BT@acg+ma6b4iYXjrD|;t{$>A$a&clB{9Yx>Rly$BTOyE| zP#8_!_5+eBAnrLLKc3!U9iq$evQSe|kC(f2#iYk0)6nGvktLE0Gz>xFj<(6(ZN(Qpz6J-m&lD~f7x$j?JAHqT-|un%fOF41_w#vw&inm(JztMZ{-T|$ekzS?-hgJd z%!+Kc`}WnkI=9Xd;~tc+z%8UXbj!3no6{9`ey}|EtN|MSVKJfsK=p2&A<@k=`fMueh|m4i;I*Y`H$lKF-x5xWLP(Gnv3tq4Qab+eWuJVQhcxlZ-b=K2seF%n~L>XUdH2 zzAU((eO@}?0LPrzWcqbm^m6L6*Ic_P=bAmy$dPEz1JvU!!`*Jkous}DWp3MZWuoc6 zb)hX@d3LBHXwz>#=!__#$B-q4kxq}ZwgYl~2P98@x96Wgq;xtCiX9I{@KQ@8EjU(nydi-Qv3rmPD zJ-qdY$;!ai7}!9}Ir9J{9E6~LBjV~jt5|QLl|2?$VaN?I(*pqU>Qo4c({jlEtZ zBI8P=LC59u+sR%uG6ct10wFs*b5ZgJGGNOgawoK43n2}rl|@$`5$#q-EDxe}Ul!_Mg(YX_E@&)((@CFs&i{K>pr% zw#9l}pe_MYm~z2l-ZAph*gr}wxIWG>XT+o^KsXOskJA8%BgEA8bW6H~$@bk9!w<-nU;?xhN47%Xva1x9d{D(VJE3?);aD5vvjv+i)uQ zOG?}oQhm^t;eGONIOGG;$|}QZTs1<0lzy~<`X|&P$*;pbUfc^;c57&%K5jHHX^i27 znO5!BA-<}WFcch_>JqLcJUL>d4UxXSuz$m%fpy;3=@XLiUiIU8SB0U!&9bNdQB;-# zW)5>rHPid%n!^w79L?xsJjYE*Uuk|%TIBXk+TK{@NJ#Ry+nHrhEn~^O>=AA5zA*7I z1Kv{+Oyw7p#ABy+d}+*zS+2?HPUyAy4T;w^)=$r=+ldiafcy5mH$7KH^s?XmRGE|$ z1ro)vji8ubn>vFu>Xz#gf}6($uV?q+2}G>n;ZdnsM#D%sUwrwPi&xe1B%Y$zkM2tO zkO3~{cV=H5cZ_Nl!7*bxaG7i_HjJUwNics!wRTsBJijGByn-lr*l8jyC~-Yk~tG^HDpjW^{v38}wri zk?PdJnu!RBM9{uP^kMDm+o9rTLQCd4E!3v*6bpNZ9%Lk6I9ND_wmACYjV_U}H93mT zQd=d+q|(#JigC%i-)*Vww;`b49=^nB+cD>N#el|%$a>n@(iwxyLGx~wM22lT<#t?= zmRT)xDCS+n!SQ?`bhVKIap4`&E$dBBTe{ltM0mpwtyiG*h)ERX{-?_C1((gxHC@as zEE)z_LvD$E(`us*Np%64`zCM=yTmD+=ECU_nR1Yn>ZHqVdm?AkB6=;#A??5WL zAlkPJPSt6qe&lPs5BNt?7`7ZVlAY4&qN5!g+1A;9mzO$aRA3c>xdMWuzJ&Px<<{wJ z#=A{`{uJL^@XyoavNVi);=s|rA{)I2opJbUYK`1_{z z>LXJE;y$2B2j3C-{vqOIMN#m3^}XKFCgWD>k#Avp@hh2+Gj}9`OPew5oMZ#g&A(-n~!{4wK&vlwfW%G69QHGae6=Id! zU-9yZ0GP~GwDD-Zi(L|OXnQ|w=y^4oWP`_tm~E7+>pO2p;ute&w?g5c zfTRXsEWfif0{!%aAq}H_vQd4n2D^}#<_W2Qp%_Z}JkxgBYnuyZlSl)gXch_q2s;mH zaX0XW#tIRm!10z7dfDMcgi)fVG%>_acJfn9%;ncm&%6JKOO!>%SV(nA5O*`&itL{9 z7ivwLe0Xd3Rf}r2<#Z5UVcY4J$g zMUBL??uVMQs$Kok>maP|7-68Nhi|;}+-=LuUHmd5Pmp8wdiNl(DFK6-o_Vf9-nFKh zV#o{?oLG=Ln;AmHQO(hcR+AN84nxH;3puC_HEiim;y#Fw<8~80*)}%*OlrlobKLtMfzoI-bUdUWuDgpJt&&Q zPaFB4;B_&)Ve#0@`Mkk#5$~{1!g_k#2Z|Wwl^!gH~^aIgaa4?*w52dy;!u8%Tx1h4=exNKH zgqUt|G2ucDnYJj(oytU;Y{xu4pp2w;u23NnKid-y3eGILdj=?zRRUzCR~!U^UyBa| zayK6SBxB$$(hBRr?cU~C8f;9herpOPosX}vpM^HUhIhSaogirPbXtpqden6|}ul~fQ4*!(J1oPfL zw4>Wr<93^dSH|o&Bh7!O2${MI^wMHQ3aFPs(ni4Bt;CZRGB=>zLbD6xMnRyEzeYX# z6!ZfO2x90cXMLUaimzreg6r*GpWrB8K#CmXi zuPH&12FpU}kl5Hnd9PVn`Y=gjnP!4*iHp~3^~q>7R;GJ4Wzvl8MKX73C_>rG*|~UX zIKy=O;MMZetY^e~U4bc-l5E%;e|~-P@!DkN%HUu3k@i?Ou8zm;X5aXuHQl48f)mgn)GYhw{@MF5 z15N%)DLWN$qA+Xni;Z&WZ=q>l$|pyn3-|k-Ok2v?ujrOFW%)C_%1dgU)|3b9j4dLV zyie&Jqn~jG_O2DiAi>roXv3~f(ZC}{z&|u`f;_-K+oN5v+uBd>P$coXxqinh zdX!!ORW3|Bou@Z(9)#Mn>qDsCSvz4CYfE*u&)z?$oD@m} z?^-_l!{^M_FKgM$<3msa^aXHKBMgbo2)&ANJ>(Bz{=jw9;J zoQd%Mw#5-16!!T*Ld6o7ob>hbOeQW+FGU^Zp;ucl?$`yKpgrkagOT*a`eeoI1Ajj&VVgW;$Qmldi$8!kzV|JRZW-k$ z;v{SWgH`R*C*cl|EvF(@kXy7Z6?C8Z{9*QKtNxFVPwq7=Y=lx(JaM*f*?OP*UDIC0 zNovJ&bwqxlR2AeUslRRIwz%lx+(H^w{O&US+mONh^FtpHAjP+|_%2xeV3_rF(Uapz zq73)jUWPxI&>ABIIy*pFI!N}788Qj5+mp^pYRxaS{ZeizD|CJ+6v{s3epZu=%9{X zxkljPpjd|4}? z1a>;a=0IJ3TboiKS~K|V)WiTPvV4h!|J8XsgJF*};L?F8!ZVx=FYonm`0I65nH?r` zp?V;{*fk0RND#iejxZ?BVe&f|0HMvSDm3~VQNpZGr01>_?(OPhjGBRd|=6aAIKJ~?HGG||UX?iQU4Dsj;0 z5k+cji^Oku(~}_FnC>3CcqF@+?Uj>g(eH`epw1p-dP<7A7_K#HB?x>t1R;)dji2r? zs(1sX)#Mk3B+u zzvnLEmrJ{90dcfwEE?`|m3A3Jv#0IQNd=*#LNjH5^djf@ z8Qu-%*z5@;{r>*N>es|?9*4wNVBm=Z6uHuDvr?rsz6UW9&AslFUFbvDy?Np@vu5ku zLT(X%3xJHpg|2aXjACmCL zh4WvntnogDd2Y*g$^Ds6BGfV+EPRjzVSP)-6zrB)Z|_2&%m_bCBnlD$D|v4TW$~-* z+R!k)xS&~HH;94ufp<70y`g449i>zyQ&FmrHt_e5%8f%E_m7`7Waf)|>r8NB1@BQ& zz-nmFsG^RI)5em^PC3ubzCN~90zdG+^DeEhLHe3iEDMuw24-No$%d_Vd5{09{;G`=3cbXd0B>3^?5G!5s}dsY-STWb1t#dT*wxv=N%v-X>CdNDfN8=k8+lCSM0EmLs9^UJBS z)S%Ej*9kOTT5QX0Ic>Sd0b0g}^>}oP%{F*wDOG)>7QG~J?QFTD;9)kWISUI*36HWY zICoO&Zk}9>X?k14#@Animvn#!Sh}lf&`xqKkS)m?uGEmtsTU!_avS-f6I^yQp5OcC8j_ngFPc!v*|3Ho}|! z)RhGqi#J;u{o_}xK%{Xj~yuNQ9BTS^-FN46mPoTwAJP@DNsO>r8S%4y^7SPXY@mUd>AR#L3upq`__}=z1W8WDDn7-i zM;B9DwT-^hKjI`zs^Xp%s}*`8-Sa8o2?doL=jokN0BELM0NmtBnr-wXAL%SIE?XH3 zPo(brUfyR`qfSs)!n>-&nP&VBQNuD`CkIqZGJMR+J|4hGxDIN4kh5={p$jbj95>cG zN|y)f1PNypTD~EqdD!ehi0HWFY^fDPRTkkzp-2bkxzA3G?eYicM~#1ks+j|R+ZCbQ z0Y#`B_ZtWcI&LH0VX~|v`wlZdH1B++mCynVn7~wlXo05^Sh}dMujf0C2BG=_X=O!i>+z937n@mmSM`Y`6~-e=oV z$=qP#GKw6z4(EHjW&V;NzULKrATWi7ycMq%%JNpG?>=uav+HGNYYSbYm9etk7ybg(alSFx!xUulbU};qMtPr_O)FCAEDgERr`s{rwqrh`|2) z>-!a`>c;_F=+tfG(XXW{G^+RY))?j~@tQqPt|BlM$yngKzYF z^j=TZf4i_rq*8}=hDT+*41X3P2u_!O%=9|;se$$rMJAsn~P zQ|zC_>H4gM6+m>$amuO$iYO`Hz0orHPHmZG4J}WoPh;d#{+-q>n1topzNdE`utmFm zFXLnHK8lIDrL5cZ?6vI>O}h#JWXD`RGieRs{mAS~pndUMk?y=k5*h(FR;prj<`t(`|@7<^6D!(#5wgvUIPk{MypdgiKnKo}gIWX1W;Yuvfn zjQ=x3uBbs-tN^~mHoRs8|H(S#4xy$sK$xmRB7Fj?^;<(e?j)l$H$mPL22PlAvSuxd zy#@zMq8%QSEHeC@WCQtHNq5bibUcVM;b7n3(WwL*(0nXPOss8m!E+oSPH`garfJ>0ikds7QBcR7OR~NPrrJ#e=esP#I&T|@0mxwP% z6%L_hQUwZ(I*6iyM|rjr+ws4OZKAOeR7X%`NBk$q*r`f7ovm_}XDh#d^~^6|sq?`+ z|Kn)M3G*9p&g)O{n^GUemOE;P6QL*knMK22)S<20GWD(sO2f;1R}2Z zFuKIJC|dhnVe5uovqUQ~Erg(BLv&#*40MP5DywWTIu}V2q&QsbNbOimDiE8IvmZtA zEi=H9u~7a9n@4Z&yPiLvRoId>S&Epj@_|HsggHivdFsLuYHtx*&iODo_u|u(9;58F zY+T>8PdO2Kqh`>G-WAQL*OIUq->YMukJ)JdT=ewUSCuFJNfxEo6MBrbnGTd_&-@?> z@TaVr)*m;N1CQ=1gtc8;USQ{urEdu(X@)f12^nTcflJBqOU3A;t`r%I9268Fs8O)8 zP4TTj*}@3!8Awa^Ar&5S^_PPr>4OQUChrMh-~%h6iiXanRs5vD#v9Uo*fQFjza%`< z_f|QkeLBVrB|m3m+Tu!~OSuQ{(&#QiEw4c&71PL=KQRJY7lR2M9-n2;@!Wo?ogr>& zkj5tYCu`aMNAg% z`f(6DYyQpDg2bu~yJ5^#F-ox>nQa&IAFF-ose+rLF6f}=8&4#u zC(<~L$7KNS9Yf)*>Wl6MT(HA85q~*JaD4#0cObF09nxJ`Pm9FA3}VKDtavzb|C!|= z(X9%ta8y!pXo6O$Iy)$WXy1p3!+?+5BD8!v!;7bV?HFdB!IK+?tTm`@aY3EV$DUl1 zhLA9sdnfHNzq|~msjM|AhY9lNAja^?`e0hSKaqeNhgZ5d+be}$x!C}$RKEKWix^fJ z!460YpREMc>7)zap^v6Jp=qZ1b7)$=_rd-zN0N%aPUULh){{$^UVF*%Tq}Z#-Y#$J z{_bK#C}77#Wq1%&emasEQH1(A^M7&rtS4aZe`CT@YUd1KHa zKBn4C)QA@&8jBgC?rsaFqIaEq9dj#%fwT7Avef*YgQN!YPHX)r58Ha1?D1Jn&hGr2 zVg^#gU%zZU7m4o-g)IrkF5QrMuvlZ-{HcaG(6E{}2=-&7Z>H>HEx((3w8aj&FVC&+M+ zPKUZtj{Fa*mN-cb=YhMDj6UM!8BUAEJYtENWbt=Uk8Db~Z`BS=j&t9tw+V}T*w4>& zQRbsp;t7*10C8zqBHZh6Me;)x)BR_&RTv%hXdr=&PqV1r`%R`-=UCo1_?(rz4%GTG z`X+9DM3^ONMNl_lPf1!WqOjJeWV?0*OUn(8vpTAUtN8Z7Reds49^377a6%V_ zEi1CgXE;@Zy3MSQ9oc@x+Dm4LK7>wopGR(S<$Pj4!O_iFIdDkHKmD0qNQ7dVHKa*z zsDAXSlq131?y;4VOILn&bv=K{LHw2gv2Pm+#?~==&;(1Hz7O82QmN_1hSeyMAFjkK z)pJMzW1DDBJ59Tf{-FtfFemzL4$@p6&NLm#S^t{MkRtPN#F}GSKxPv5HD@=9mi;4J zW1|tso2RL}pY;epv$Or9vU6;mJJ}%Q5-@YOpU_2X>M2Wu-S<$^7D@*r<0U_f#zwD| z?2_;8?|lDaBK>cCGhzJahpAOYjSh|6$P2)E=p+JPzna`*!;>^hr4R)^)^zSIsu}Cn zc33WBm`5#?Vk#iZG|=L^e7D;GsSaO)gaKyWJfcD|?A9c*GU($JaTx~uRGI(gx zeJUeBK>E%W>0CVRd5`cGQsvEM;#SgV?wbN=G1pEIuEUb_Im) z{u{|wT;~Q$G#~;_>C}P&_`+Ls;?qsc?**574AGR3tSBhad84bmG(Y;LL7FY0LQ;JN z0dn7G=aTb8q99uvw2(qO5Z|?Pe*bp{1#>ETEl!}=TTCZtUail+6@@~=CST;9w zArwDPqtyCPWuX$^z)^~WY>Mj93toK(q5txZp2Z`!@}B{hrW4M|bSb6g9g>dq~z~o~4A^o+i4es&;JvFVfG6 zl*l=AJFL51K|$!eRU_Cok7j!?7ga-}4T%z0&82QA{aKPREoN`SU*GV-(oMF!#aTQA zkNPlpPa)?#iKWT5XKg-~(>YO&Ii0>^_>dIYj`&U+iY&0zNL(nYt)G=s;8F53N^CBk zSRcZOL_ldY?BNGc=+L5vPsGzVq(bpM?FHP>>4# zEqhp#3f~iij|zYAn9u#x zO6Ccfm8|8x)wd)N<6YEZjf>_4b3MP9dk4IiQIhg*u=MF*#Xb$>;gKF3h1~);J5aby zGz5n8pTfEN1Jq5%pECS#;#NG1gIX+ zS?gLb+09i1%1cpuZ9hG^xMmzzuW*XnLM_8bi0YnC9Rria@~pS`2D3a8>yIIae^G3u9=3%(u8w zu@D8X3oip5{KK>(Rzf0w#74sPK_F{=L60T}H;zM@8O{}7vSsgH)kzn6eGy4;x#;$` zM>QIU*g`VRF9p%S>Ou%@$58 zBg@m#6?Eio&LmM$C`Ld5Yo@&uOs$*zK9*}wY&sC0tMJ{!4T+zVzaQz{n%y;d%jwgn z-L(FCI|grPDB2~rHMbo6)XZi;V{&GVpMTB^!SEYx6FOA2PSod#kIM(!hUXW~_7n+k z373QDkW;?XHx7XMQa8C;yYA20<7F>a-pYrllYGyBAL15Lz!@XiXQt>QcDYwld0N6a zg9Xei5Qj=8M;TmRe{B(cCLJL%&dqKU)e&=7fa*hQrC#uN-ySu+H-R%o`wJMAbIc3NV zk2uY3$7HM{S~pSF6QN1U^6T3_0WOn6&-oUz(URWWm_6k3%*r@=h3>?bo!H2}yO2cO z`gZ0!0HP}=xsUtQuOb|)8(d29yIvn?3CGK%W=_xwzaUNw3E2= zN!5r0G%oWqpgQf*-9vr6=|HNQ#UYaj7%n*f)m+XKg;zOu2DVW7Z6Ft>{pG3U)%S6t zS4+Ceu6nFIc9*bWYrlW$TS}5B1rhPY-9y50IPmB`$W9FFzvVhplVg&~>=@B;{1{{f z4x!LyfM*2w69vrDlC+3g#8NI`mI^)pw$tDfcIRRd=dsVLVc2$iNmh>Q-vil{y2j<^UGvyG-3T zNBmtaA0_%JzkPLWrs*@U!uMr!B}jj`b>Du;voCWpU>iN=+U&c#&gEk%?5Y1#akni! zZ0DE;a9q$zyCOW#hb2;&P%Mxp;20mGT_JbnLU*TLZsOJE7gPguOifO1g^>|}Zdk)HKt4CTC@qzBu(O424=jz%TWhALqa*A}cvd1YPpiU3 zD5O^6Kf~@HMVySJtAYWjB!s`OQ8-J~#O;wNknaa|LVY`^Jur?c2E9Lm(M2`w&oL58 z4U1Hfc9sICPM1`fV`H%o3QP73@gk?&uYt^Q%&#W>qpDTUj$A>My1IoYKs5ue zMQE>u{hGc5a@;+i9b8oOXlwU#vZTNP6b;lSX4yB!q1qf1DY+0u<+V|nk1cx-&VP-Q z(EG0alQru*d3sm3Y2xVPO@X*So|_6_Jkf5M{TAXWujp@!9qrX`&e}1ydU%H`yBl45 z$v(f)lKn!~X8_f%MXS|F#+AQYp{G2|pQwRP=RoVn<6{aJJMC@0OQh42u1tL5AnPd8 z71pzH38hBSX$hu(3%&ZL?ptpLlJCWiv0fGr7uP|_S7G54E{}zcu)=_{zevbFr0lvNz1F-opoiT<4NpDYrXG1M8CX39wHnk#Aj1 z0IP_>1gCa;11sdp3E7@XE6knUlhyA&5Iq*S&$S-5FhEsX`XK7-<{eUF7dX-zL?9k$ zTP{DlrdWP6r}Znk?Fiue3;{AVJ)4Qsx0sbW)24-;y9pBP+|Bo_k1{A6g=|Jr>8CEX>+ zo*EjtJ7q;^d7sWam7sE8;x{~$mu{f?d0B?4c^)lr&a_iz=Mfk1W7}IX@JOt7tIe6} ztzu}wuSJ^Fw$4*m$PW|uB;>622~Hb(hC_2UEOgagFfo~UtGY-o=w!1T2c3O?$1%dd zAIgAG;h}ozoa%Qu7zRb8oi`f|RH{;#BDfJvWk437@s28WM+aWp^gdh5o+YRO!1?#LifO)67LZI+knR3vHU*eUqFGecyj<K3oNVhI)Vd^ur_8ac+&qBPTZV-WcTYBXJ(zg2mCjINl+&{ARZzTw+T{ zO9?xCiMeon*v~fIpE39B`N{P-Q!kVIZ2r1bBZYQ(@DqngMYc3pZe(t39Rw~dlz;V4 z75NDuqwPQxl-gnjFH}lfcY$M~?bW6-_=pJU^H1tGurJ5qKXhGD!PrI2A zN(hx(K1LxfwXD;K5jFem!H_n;X8%=BH1HJfV))xqO?oD+sOE#u^!fL?5`zn$i?onl zyQ{0Kf|I(_Xj1>^pUMXv@+YodhF$znl}+1T`DG@Avzb zDA*mhxJys&D={xKj2MIAs7~0sH~%&|fQ4zjL*g6in!@9R)#TMGJi``p9P#gwq>zNp zWOBD^F}VhmC-7BNDoB&KG)D4#DfmiB#`cHD!&#-enM%tqwosspT4fZw@|#qXkM~|_ z!kiv_JHN2LvD2yerSBE6D3qI%FLj#>(-J(p&IVgz(er3kmaD`{-yOdakK?woTjIQ- zfxBmwF4}Z`*oBc`yHoD^0c}7RJcr^ z^V1a4S_}WQ=Ci~y=R3WIQ*TIWA}f-G>~23k($h1{5H?nPAcv}=_wUzQGSbxV#S5h{ za$)D93dh_r?&ZD_>m7l8iRA0ixNcgtyn;tc@=&xnqathe>fJ~*$3}KZo$o@uMyrK7;>jez0(HMfNP{?`;-(FZSGn`FZcONwFrACcgr4?BB;t* zi)d#rQ?+mFBaKH@6r;{tx*35V@ekc6Od{lJU&PS!4ZI|`8{Yi3(vy5Pp72s~Kd-I3 zAy$*0JVxbWsS#YEdf|8AabY2u(@MFP+`Oj!ic%W3u8?6Q{71LUvmK=0vj6LWgzV!# zwCaV)(MUT)%Q=Tv8vu1(*y3Z$#9ha*Pc7{mtHIB)B6o4Q&$DN(tALJ!3#jFoJqAfg z+5o1A#Dls(le?f(WZr9H2A~%7?6U4@7T$1c;on_+$=F&i_Pp~*_)Ni~==D3}JpbkD z?~@MYei+wE|bZJTp)w$ Yd=C}Xg6m@_hx?q4hQZy+JJ#X<1Hs8A3IG5A diff --git a/chapters/modules/chapter_1/images/cairo_venv.png b/chapters/modules/chapter_1/images/cairo_venv.png deleted file mode 100644 index bf53faf437c63e5a42cb2160fcb8eb3ca6e1c915..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43815 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 Ybwv?Q<&a(Y1>i^Kh2rxi_@% diff --git a/chapters/modules/chapter_1/pages/deploying_contracts.adoc b/chapters/modules/chapter_1/pages/deploying_contracts.adoc index 15b1685b1..e6ec26078 100644 --- a/chapters/modules/chapter_1/pages/deploying_contracts.adoc +++ b/chapters/modules/chapter_1/pages/deploying_contracts.adoc @@ -29,8 +29,7 @@ starknet new_account --account starknet new_account --account test_v11 ---- -Once you have run the above command, monitor the transaction and wait until it has crossed the "Pending" state. -Then proceed with the below instructions. + +Once you have the account address, proceed with the below instructions. + * You should get your expected contract address + * Send 0.1 ETH to it + @@ -50,7 +49,7 @@ Your sample output should look something like this: [,Bash] ---- -(cairo_venv) gyan@Gnanas-MacBook-Pro .cairo % starknet deploy_account --account test_v11 +(cairo_venv) satoshi@nakamoto-notebook .cairo % starknet deploy_account --account test_v11 Sending the transaction with max_fee: 0.000568 ETH (568383605914463 WEI). Sent deploy account contract transaction. Contract address: 0x03f42fc2355be54197a8b270ff2cb8e2eb7902e777b3498f8ad58c6c147cce60 @@ -69,7 +68,7 @@ starknet --version starknet-compile --version ---- -You can now create a folder of your choice where you would like to practice your cairo skills 🎯. Inside the new folder, create a file name _hello_starknet.cairo_. +You can now create a folder of your choice(in any location) where you would like to practice your cairo skills 🎯. Inside the new folder, create a file name _hello_starknet.cairo_. [,Bash] ---- @@ -83,30 +82,30 @@ touch hello_starknet.cairo Copy paste the following piece of code into your hello_starknet.cairo file: -[,Bash] +[,Rust] ---- #[contract] - mod HelloStarknet { - use starknet::get_caller_address; - use starknet::ContractAddress; - - #[event] - fn Hello(from:ContractAddress, value:felt252) {} +mod HelloStarknet { + use starknet::get_caller_address; + use starknet::ContractAddress; - #[external] - fn Say_Hello(message:felt252) { - letcaller=get_caller_address(); - Hello(caller, message); - } + #[event] + fn Hello(from:ContractAddress, value:felt252) {} + #[external] + fn say_hello(message:felt252) { + let caller=get_caller_address(); + Hello(caller, message); } + +} ---- Compile the above starknet contract using the following command: [,Bash] ---- -starknet-compile --hello_starknet.cairo hello_starknet.json --replace-ids +starknet-compile -- hello_starknet.cairo hello_starknet.json ---- The above command should compile to produce a hello_starknet.json in the same folder, however if the above command doesn't work, then here is an alternate approach to creating & compiling your cairo contracts. @@ -121,29 +120,30 @@ Instead of creating a new folder, work within the same .cairo/ folder that you h cd ~/.cairo #Create the hello_starknet.cairo file in your .cairo folder and compile it -cargo run --bin starknet-compile -- hello_starknet.cairo hello_starknet.json --replace-ids +cargo run --bin starknet-compile -- hello_starknet.cairo hello_starknet.json ---- Now that you have your account ready from Step 3, let’s declare your compiled contract and deploy it using the new account. +Before declaring our contract, we need to set 2 environment variables related to the compiler, in order to avoid errors. + [,Bash] ---- -starknet declare --contract hello_starknet.json --account test_v11 +export CAIRO_COMPILER_DIR= + +#If you are working inside the .cairo folder, you canset the cairo_compiler_dir as follows: +export CAIRO_COMPILER_DIR=target/release + +export CAIRO_COMPILER_ARGS=--add-pythonic-hints ---- -____ -NOTE: If the declare command throws the following error: Error: OSError: [Errno 8] Exec format error: '/Users/gyan/cairo_venv/lib/python3.9/site-packages/starkware/starknet/compiler/v1/bin/starknet-sierra-compile' - then, you need to copy the starknet-sierra-compile from the .cairo folder to add it to the Python Libs using the following command: +Once both the above environment variables are set, you can declare the contract as follows: + [,Bash] ---- -#Assuming that you are within the .cairo/ folder -cp target/release/starknet-sierra-compile ~/cairo_venv/lib/python3.9/site-packages/starkware/starknet/compiler/v1/bin/starknet-sierra-compile +starknet declare --contract hello_starknet.json --account test_v11 ---- -____ - -____ -NOTE: Once you have replaced the library, you can run the starknet declare command again and you should get a class hash as the output. -____ For example, a class hash that was deployed a while ago can be found on StarkScan https://testnet.starkscan.co/class/0x03ae6bb224f12a8818c3ad59cc248968e8ee3a3081ff805610141695381a28f7[here]. @@ -164,17 +164,17 @@ Wohooo! If all goes well, you have just deployed your first ever Cairo 1.0 contr ++++++Step 4: Interact with your contract++++++ -If you quickly browse through the above contract(hello_starknet.cairo), you can see, the contract has a simple function: Say_Hello which we are going to learn to invoke in this step. +If you quickly browse through the above contract(hello_starknet.cairo), you can see, the contract has a simple function: say_hello which we are going to learn to invoke in this step. [,Bash] ---- #Function that we will be invoking #[external] - fn Say_Hello(message:felt252) { - letcaller=get_caller_address(); - Hello(caller, message); - } +fn say_hello(message:felt252) { + let caller=get_caller_address(); + Hello(caller, message); +} ---- The syntax to invoke a function in your contract is: @@ -183,8 +183,8 @@ The syntax to invoke a function in your contract is: ---- starknet invoke --function --address

--max_fee 100000000000000000 --account -#Invoking our Say_Hello function -starknet invoke --function Say_Hello --address 0x00e0309ca73c5097533ba200e08426b7efb3ee6b79ab6956bd4bb684d3385556 --input 152 --max_fee 100000000000000000 --account test_v11 +#Invoking our say_hello function +starknet invoke --function say_hello --address 0x00e0309ca73c5097533ba200e08426b7efb3ee6b79ab6956bd4bb684d3385556 --input 152 --max_fee 100000000000000000 --account test_v11 ---- Monitor the transaction. Once it has been accepted on L2, the first acceptance is indicated and once it has been accepted on L1, the tx has been added to Ethereum. @@ -198,7 +198,7 @@ https://testnet.starkscan.co/event/0x01093a8f548de7e7353f7b74ee85d9724a8c2874548 image::tx_invoke.png[Invoking a transaction] -If you switch to the events tab(example data in the image above), you should be able to see that the Event Data emitted is the caller and message(Index 0 and 1 respectively) as per the contract code. The caller is the address of the account that you created to deploy the contract and the message is the input that you have sent while invoking the _Say_Hello_ function. +If you switch to the events tab(example data in the image above), you should be able to see that the Event Data emitted is the caller and message(Index 0 and 1 respectively) as per the contract code. The caller is the address of the account that you created to deploy the contract and the message is the input that you have sent while invoking the _say_hello_ function. == Contributing diff --git a/chapters/modules/chapter_1/pages/environment_setup.adoc b/chapters/modules/chapter_1/pages/environment_setup.adoc index 5dd51c18c..8eedfbac7 100644 --- a/chapters/modules/chapter_1/pages/environment_setup.adoc +++ b/chapters/modules/chapter_1/pages/environment_setup.adoc @@ -53,7 +53,6 @@ Your terminal should look like this: [,Bash] ---- (cairo_venv) satoshi@nakamoto-notebook % -image::cairo_venv.png[cairo venv] ---- @@ -91,11 +90,14 @@ If you had cairo-lang installed previously, uninstall it and install the latest ---- #Uninstall the previous version pip uninstall cairo-lang -#Build locally +#Install locally pip install cairo-lang + +#Alternatively, you can download the latest zip of cairo-lang and install it +pip install $HOME/Downloads/cairo-lang-0.11.0.2.zip ---- -Once you have installed the cairo lang package and installed it, make sure to test your installation by running the following command: +Once you have installed the cairo lang package, make sure to test your installation by running the following command: [,Bash] ---- @@ -118,11 +120,8 @@ ____ ---- # Go to your $HOME directory cd ~/ -# Clone the `cairo` Cairo 1 compiler -git clone https://github.com/starkware-libs/cairo/ - -#Rename the cairo folder to .cairo in order to keep it hidden -mv cairo .cairo +# Clone the `cairo` Cairo 1 compiler to a folder called .cairo in your home directory +git clone https://github.com/starkware-libs/cairo/ .cairo #Checkout into the working branch and generate the release binaries cd .cairo/ @@ -149,13 +148,12 @@ cairo-compile --version ---- Your output should look something like this(not necessarily inside the cairo_venv): + [,Bash] ---- -(cairo_venv) satoshi@nakamoto-notebook % cairo-compile 0.11.0.2 +(cairo_venv) satoshi@nakamoto-notebook % cairo-lang-compiler 1.0.0-alpha.6 ---- -image::cairo-compile.png[cairo-compile version] - Woohoo! Now we have everything we need to compile, deploy and interact with our first Cairo contract! == Contributing diff --git a/chapters/modules/chapter_1/pages/what_is_starknet.adoc b/chapters/modules/chapter_1/pages/what_is_starknet.adoc index a3f78da5e..da9f85d50 100644 --- a/chapters/modules/chapter_1/pages/what_is_starknet.adoc +++ b/chapters/modules/chapter_1/pages/what_is_starknet.adoc @@ -1,6 +1,6 @@ [id="whatIsStarknet"] -= What is StarkNet? += What is Starknet? == Introduction diff --git a/chapters/modules/chapter_1/pages/why_cairo.adoc b/chapters/modules/chapter_1/pages/why_cairo.adoc index ea98cc038..4b1cb3e45 100644 --- a/chapters/modules/chapter_1/pages/why_cairo.adoc +++ b/chapters/modules/chapter_1/pages/why_cairo.adoc @@ -8,9 +8,7 @@ If you are looking for a cost-effective provable computation programming languag * It is a specially designed, provable language for smart contracts + * It is not bounded by the EVM + -* Its functions are imported rather than inherited + -* It supports Solidity to Cairo transpiler + -* It includes full low-level access to underlying primitives + +* Cairo uses traits which are a much more loosely-coupled relationship as compared to inheritance + The upgraded version of Cairo offers Rust like syntax, which is easier to understand for developers. diff --git a/chapters/modules/chapter_1/pages/why_starknet.adoc b/chapters/modules/chapter_1/pages/why_starknet.adoc index 81352cada..9c6665690 100644 --- a/chapters/modules/chapter_1/pages/why_starknet.adoc +++ b/chapters/modules/chapter_1/pages/why_starknet.adoc @@ -1,6 +1,6 @@ [id="whyStarknet"] -= Why StarkNet? += Why Starknet? == The Problem Ethereum scaling has been a major discussion topic since the network was launched. Commonly known as the blockchain trilemma, most applications have to choose 2/3 features between scalability, security and decentralization and compromise on any one of them. @@ -13,7 +13,7 @@ Layer 2 solutions can offer scalability to Ethereum by helping off-load a lot of Amongst the existing rollup solutions, it is well known that zk-Rollups are going to be the future roadmap of Ethereum. Ethereum is the only truly decentralised blockchain, and with that comes the sort of open source innovation and soul that is so unique to the Ethereum community. We bet on decentralisation, innovation, and general purpose logic and composability. -StarkNet, built on the concept of Validity Proofs(ZK Proofs under the hood) attempts to tackle the Blockchain Trilemma and provide a system that is inclusively accountable, decentralized, scalable, and secure through the use of zero-knowledge STARK proofs. +Starknet, built on the concept of Validity Proofs(ZK Proofs under the hood) attempts to tackle the Blockchain Trilemma and provide a system that is inclusively accountable, decentralized, scalable, and secure through the use of zero-knowledge STARK proofs. == Contributing diff --git a/chapters/modules/chapter_1/pages/writing_first_contract.adoc b/chapters/modules/chapter_1/pages/writing_first_contract.adoc index c2270b09d..29e12b95e 100644 --- a/chapters/modules/chapter_1/pages/writing_first_contract.adoc +++ b/chapters/modules/chapter_1/pages/writing_first_contract.adoc @@ -1,10 +1,10 @@ [id="writing_contracts"] -= Writing your first StarkNet contract += Writing your first Starknet contract -In this chapter, you will learn to write your first StarkNet contract. We know you are super excited and so are we! This contract is a simple read/write contract where you will learn to read and write from storage using cairo. Our contract will be called _SimpleStorage_. +In this chapter, you will learn to write your first Starknet contract. We know you are super excited and so are we! This contract is a simple read/write contract where you will learn to read and write from storage using cairo. Our contract will be called _SimpleStorage_. -Follow the below steps to learn to write your first StarkNet contract. +Follow the below steps to learn to write your first Starknet contract. ++++++Step 1: Contract [#macro] and modules ++++++ @@ -17,7 +17,7 @@ touch simple_storage.cairo You can open this empty file in your editor of choice(ex: VS Code) and start writing the below lines of code - your first cairo contract. -A StarkNet contract will always start with the [#contract] macro to indicate that this is a StarkNet contract. Remember that you can also create other Cairo files that are *NOT* contracts because Cairo is a programming language by itself. +A Starknet contract will always start with the [#contract] macro to indicate that this is a Starknet contract. Remember that you can also create other Cairo files that are *NOT* contracts because Cairo is a programming language by itself. All the Cairo contracts are defined by the keyword _mod_ which implies that it's a module containing some logical piece of code. You can write first below lines of contract in the _simple_storage.cairo_ file. @@ -55,7 +55,7 @@ Yes! You read it right. Events are now supported in Cairo. You can define an eve ---- //The keyword to define a function is "fn" #[event] - fn BalanceIncreased(balance: felt252) {} + fn BalanceIncreased(balance: felt252) {} ---- ++++++Step 4: Writing your first function ++++++ @@ -69,11 +69,11 @@ Last but not the least, we log/emit the event with the updated balance using the [,Bash] ---- #[external] - fn increase_balance(amount: felt252) { + fn increase_balance(amount: felt252) { let new_balance = balance::read() + amount; balance::write(new_balance); BalanceIncreased(new_balance); - } + } ---- You might have noticed a macro called _external_ that is added to this function. This means that the function called be called externally or outside of the contract. @@ -98,9 +98,9 @@ This function can be a _view_ function because it does not modify any variables. [,Bash] ---- #[view] - fn get_balance() -> felt252 { + fn get_balance() -> felt252 { balance::read() - } + } ---- ++++++Step 6: Putting it all together ++++++ From 861cca7e3aa2ad6a9f32093b16c564b6d3aa0be5 Mon Sep 17 00:00:00 2001 From: l-henri Date: Wed, 5 Apr 2023 12:59:21 +0200 Subject: [PATCH 17/17] Final review James + Henri WE DID IT OMG OMG OMG --- .../chapter_1/pages/deploying_contracts.adoc | 162 ++++++++++-------- .../chapter_1/pages/environment_setup.adoc | 4 - 2 files changed, 93 insertions(+), 73 deletions(-) diff --git a/chapters/modules/chapter_1/pages/deploying_contracts.adoc b/chapters/modules/chapter_1/pages/deploying_contracts.adoc index e6ec26078..a19260301 100644 --- a/chapters/modules/chapter_1/pages/deploying_contracts.adoc +++ b/chapters/modules/chapter_1/pages/deploying_contracts.adoc @@ -5,51 +5,73 @@ In this chapter, you will learn to compile, deploy and interact with a StarkNet contract written in Cairo. Follow the below steps in order to accomplish your goal! -++++++Step 1: Setting up account related environment variables ++++++ +== Setting up environment variables -Type the following commands on your terminal in order to set the account related environment variables. You can use the default wallet provided by OpenZeppelin for ease of use. +The following commands must run every time you open a new terminal to interact with Starknet. Setting them saves you time when using the CLI within the same terminal session. [,Bash] ---- +# Use Starknet testnet export STARKNET_NETWORK=alpha-goerli +# Set the default wallet implementation to be used by the CLI export STARKNET_WALLET=starkware.starknet.wallets.open_zeppelin.OpenZeppelinAccount +# Set the path to the cairo 1 compiler binary. Adapt this path to fit your installation if needed +export CAIRO_COMPILER_DIR=~/.cairo/target/release/ +# Compiler arguments +export CAIRO_COMPILER_ARGS=--add-pythonic-hints ---- -++++++Step 2: Setting a new account for the tutorial ++++++ +== Setting up an account + +You need to set up your CLI with an account contract and fund it. +____ +Starknet accounts are smart contracts. As such, creating one involves sending a transaction, and takes a bit longer than creating an EOA on other networks. +You can learn more in the https://docs.starknet.io/documentation/architecture_and_concepts/Account_Abstraction/introduction/[accounts] section of the documentation. +____ + +This process will involve three steps: -You need to make sure your starknet CLI is set up with a proper account contract, and funds. For safety, let us create a new one just for this chapter. +* Generating your account address locally +* Funding it +* Deploying it +The Starknet account declared through the CLI are stored on your machine in folder `~/.starknet_accounts/`. [,Bash] ---- -#Generic Syntax -starknet new_account --account +# Creating a new account. +starknet new_account --account account_name +---- -#Create your new account named "test_v11" -starknet new_account --account test_v11 +Your terminal will return your account's address. +[,Bash] ---- +Account address: 0x00d9d851f600d539a9f7811de4d9613a6b3c2634f8c0386a305c03216bd67559 +Public key: 0x0293d6625d860b9a37a0319d1e3c1eecc27685075cbeaae4ef29ed717d93c58b +Move the appropriate amount of funds to the account, and then deploy the account +by invoking the 'starknet deploy_account' command. -Once you have the account address, proceed with the below instructions. + +NOTE: This is a modified version of the OpenZeppelin account contract. The signature is computed +differently. +---- -* You should get your expected contract address + -* Send 0.1 ETH to it + -* Monitor the transfer transaction. Once it has passed "pending", proceed + +Next step is to fund it. -Deploy your account once you have funded it with 0.1 ETH. You can either use the -https://faucet.goerli.starknet.io[faucet] or bridge Goerli ETH from Ethereum to Starknet. +* Use the https://faucet.goerli.starknet.io[faucet] to get some funds and send them to the account +* Bridge funds using https://goerli.starkgate.starknet.io/[Starkgate] -Account deployment command: +However you chose to do it, please make sure that the funding transaction reaches the "PENDING" status before moving on. You can look for it on https://testnet.starkscan.co/[Starkscan] or https://goerli.voyager.online/[Voyager] [,Bash] ---- -starknet deploy_account --account test_v11 +# Deploying your account +starknet deploy_account --account account_name ---- Your sample output should look something like this: [,Bash] ---- -(cairo_venv) satoshi@nakamoto-notebook .cairo % starknet deploy_account --account test_v11 Sending the transaction with max_fee: 0.000568 ETH (568383605914463 WEI). Sent deploy account contract transaction. Contract address: 0x03f42fc2355be54197a8b270ff2cb8e2eb7902e777b3498f8ad58c6c147cce60 @@ -58,9 +80,9 @@ Transaction hash: 0x3d15e05389ecd1ff65555220be57f0ab43729877b20ca086048276917ed2 Monitor the transaction until it passes the "pending" state. -++++++Step 3: Create, compile and deploy your contract++++++ +== Create and compile a contract -Before we get started, make sure that the below commands are working properly on your system: +Before we get started, make sure that the below commands are working properly on your system. If they don't, please check the "Setting up your environment" section. [,Bash] ---- @@ -68,7 +90,7 @@ starknet --version starknet-compile --version ---- -You can now create a folder of your choice(in any location) where you would like to practice your cairo skills 🎯. Inside the new folder, create a file name _hello_starknet.cairo_. +You can now create a folder of your choice(in any location) where you would like to practice your cairo skills . Inside the new folder, create a file name `hello_starknet.cairo`. [,Bash] ---- @@ -101,70 +123,80 @@ mod HelloStarknet { } ---- -Compile the above starknet contract using the following command: +Customize the above code by adding a new type of event. Find a name that is unique (this is important). +Add the following code: -[,Bash] ---- -starknet-compile -- hello_starknet.cairo hello_starknet.json + #[event] + fn My_Unique_Event_Name(from:ContractAddress, value:felt252) {} ---- -The above command should compile to produce a hello_starknet.json in the same folder, however if the above command doesn't work, then here is an alternate approach to creating & compiling your cairo contracts. - -++++++Alternate Option++++++ - -Instead of creating a new folder, work within the same .cairo/ folder that you had created while installing the cairo lang package. We will use cargo run to run the starknet-compile if it doesn't work out of the box on some systems. +Compile the above starknet contract using the following command: [,Bash] ---- -#cd into your .cairo folder -cd ~/.cairo +starknet-compile hello_starknet.cairo hello_starknet.json +---- -#Create the hello_starknet.cairo file in your .cairo folder and compile it -cargo run --bin starknet-compile -- hello_starknet.cairo hello_starknet.json +The above command should compile to produce a `hello_starknet.json` file in the same folder. ----- +== Declare a contract class -Now that you have your account ready from Step 3, let’s declare your compiled contract and deploy it using the new account. +On Starknet, the deployment process is in two steps: -Before declaring our contract, we need to set 2 environment variables related to the compiler, in order to avoid errors. +* Declaring the class of your contract, or sending your contract's code to the network +* Deploying a contract, or creating an instance of the code you previously declared +Let's start with declaring the above code. [,Bash] ---- -export CAIRO_COMPILER_DIR= - -#If you are working inside the .cairo folder, you canset the cairo_compiler_dir as follows: -export CAIRO_COMPILER_DIR=target/release - -export CAIRO_COMPILER_ARGS=--add-pythonic-hints +starknet declare --contract hello_starknet.json --account account_name ---- +____ +The above command may fail if you are using code that has already been declared by someone else! Please make sure to add custom code to your contract to create a new contract class. +____ -Once both the above environment variables are set, you can declare the contract as follows: +You will see something like: [,Bash] ---- -starknet declare --contract hello_starknet.json --account test_v11 +Sending the transaction with max_fee: 0.000132 ETH (131904173791637 WEI). +Declare transaction was sent. +Contract class hash: 0x8ceb9796d2809438d1e992b8ac17cfe83d0cf5944dbad948a370e0b5d5924f +Transaction hash: 0x334f16d9da30913c4a30194057793379079f35efa6bf5753bc6e724a591e9f0 ---- +The transaction hash allows you to track when the network will have received your contract's code. Once this transaction has moved to "PENDING", you can deploy an instance of your contract. -For example, a class hash that was deployed a while ago can be found on StarkScan https://testnet.starkscan.co/class/0x03ae6bb224f12a8818c3ad59cc248968e8ee3a3081ff805610141695381a28f7[here]. +== Deploy a contract Using the above generated class hash, deploy the contract: [,Bash] ---- -starknet deploy --class_hash 0x03ae6bb224f12a8818c3ad59cc248968e8ee3a3081ff805610141695381a28f7 --account test_v11 +starknet deploy --class_hash 0x8ceb9796d2809438d1e992b8ac17cfe83d0cf5944dbad948a370e0b5d5924f --account account_name ---- ____ -NOTE: P.S: If you run into any fee related issues, please add the flag --max_fee 100000000000000000 to your CLI commands. +If you run into any fee related issues, please add the flag `--max_fee 100000000000000000` to your CLI commands to set an arbitrary high gas limit for your deploy transaction. ____ -Monitor the deploy transaction. Once it has passed "pending", proceed. +You will see something like: -Wohooo! If all goes well, you have just deployed your first ever Cairo 1.0 contract on the StarkNet testnet! Congratulations. +[,Bash] +---- +Sending the transaction with max_fee: 0.000197 ETH (197273405375932 WEI). +Invoke transaction for contract deployment was sent. +Contract address: 0x03a5cac216edec20350e1fd8369536fadebb20b83bfceb0c33aab0175574d35d +Transaction hash: 0x7895267b3e967e1c9c2f7da145e323bed60dfdd1b8ecc8efd243c9d587d579a +---- + +Monitor the deploy transaction. Once it has passed "pending", your contract has been succesfully deployed! -++++++Step 4: Interact with your contract++++++ +Wohooo! You have just deployed your first Cairo 1.0 contract on StarkNet! Congratulations. -If you quickly browse through the above contract(hello_starknet.cairo), you can see, the contract has a simple function: say_hello which we are going to learn to invoke in this step. +== Interact with your contract + +If you quickly browse through the above contract(hello_starknet.cairo), you can see the contract has a simple function: say_hello which we are going to learn to trigger. [,Bash] ---- @@ -181,26 +213,18 @@ The syntax to invoke a function in your contract is: [,Bash] ---- -starknet invoke --function --address
--max_fee 100000000000000000 --account +starknet invoke --function --address
--account -#Invoking our say_hello function -starknet invoke --function say_hello --address 0x00e0309ca73c5097533ba200e08426b7efb3ee6b79ab6956bd4bb684d3385556 --input 152 --max_fee 100000000000000000 --account test_v11 +# Invoking our say_hello function +starknet invoke --function say_hello --address 0x03a5cac216edec20350e1fd8369536fadebb20b83bfceb0c33aab0175574d35d --input 152 --account account_name ---- -Monitor the transaction. Once it has been accepted on L2, the first acceptance is indicated and once it has been accepted on L1, the tx has been added to Ethereum. - +You will see something like: -++++++Step 5: Explore your transaction on StarkScan++++++ - -Once your tx has been accepted on L2, you will be able to explore the events emitted and other details of your transaction on StarkNet block explorers like StarkScan. - -https://testnet.starkscan.co/event/0x01093a8f548de7e7353f7b74ee85d9724a8c2874548dd57d89acc56dd750c8be_0[Here] is an example of the tx that I just invoked using the above command: - -image::tx_invoke.png[Invoking a transaction] - -If you switch to the events tab(example data in the image above), you should be able to see that the Event Data emitted is the caller and message(Index 0 and 1 respectively) as per the contract code. The caller is the address of the account that you created to deploy the contract and the message is the input that you have sent while invoking the _say_hello_ function. - -== Contributing - -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. -🎯 \ No newline at end of file +[,Bash] +---- +Sending the transaction with max_fee: 0.000080 ETH (79590795788372 WEI). +Invoke transaction was sent. +Contract address: 0x03a5cac216edec20350e1fd8369536fadebb20b83bfceb0c33aab0175574d35d +Transaction hash: 0xbfb3ec183b4ee58db67113cf8832c31e78fe8000f091cc598d5aa9ca6a62af +---- diff --git a/chapters/modules/chapter_1/pages/environment_setup.adoc b/chapters/modules/chapter_1/pages/environment_setup.adoc index 8eedfbac7..aed81a199 100644 --- a/chapters/modules/chapter_1/pages/environment_setup.adoc +++ b/chapters/modules/chapter_1/pages/environment_setup.adoc @@ -156,7 +156,3 @@ Your output should look something like this(not necessarily inside the cairo_ven Woohoo! Now we have everything we need to compile, deploy and interact with our first Cairo contract! -== Contributing - -🎯 ++++++STARKer: ++++++ This book is an open source effort, made possible only by contributions from readers like you. If you are interested in making this resource better for other users - please suggest a change by following the instructions https://github.com/starknet-edu/starknetbook/blob/main/CONTRIBUTING.adoc[here]. -🎯 \ No newline at end of file