From 2e8f0cb192eddfdba38ec5f83d667971859a55af Mon Sep 17 00:00:00 2001 From: dylan Date: Fri, 17 Oct 2025 09:55:10 -0600 Subject: [PATCH 1/2] adds incomplete mainnet genesis file - adds the initial mainnet genesis file with the deploy height left as TODO --- crates/genesis/src/lib.rs | 12 ++ crates/genesis/src/mainnet.genesis.json | 143 ++++++++++++++++++++++++ 2 files changed, 155 insertions(+) create mode 100644 crates/genesis/src/mainnet.genesis.json diff --git a/crates/genesis/src/lib.rs b/crates/genesis/src/lib.rs index 9391c34..0fa0b47 100644 --- a/crates/genesis/src/lib.rs +++ b/crates/genesis/src/lib.rs @@ -18,12 +18,20 @@ use init4_bin_base::utils::from_env::{ use signet_constants::KnownChains; use std::{borrow::Cow, path::PathBuf, str::FromStr, sync::LazyLock}; +/// Signet mainnet genesis file. +pub const MAINNET_GENESIS_JSON: &str = include_str!("./mainnet.genesis.json"); + /// Pecorino genesis file. pub const PECORINO_GENESIS_JSON: &str = include_str!("./pecorino.genesis.json"); /// Local genesis file for testing purposes. pub const TEST_GENESIS_JSON: &str = include_str!("./local.genesis.json"); +/// Mainnet genesis for the Signet mainnet. +pub static MAINNET_GENESIS: LazyLock = LazyLock::new(|| { + serde_json::from_str(MAINNET_GENESIS_JSON).expect("Failed to parse mainnet genesis") +}); + /// Genesis for the Pecorino testnet. pub static PECORINO_GENESIS: LazyLock = LazyLock::new(|| { serde_json::from_str(PECORINO_GENESIS_JSON).expect("Failed to parse pecorino genesis") @@ -55,6 +63,8 @@ pub enum GenesisError { #[derive(Debug, Clone, serde::Deserialize)] #[serde(untagged)] pub enum GenesisSpec { + /// Signet mainnet. + Mainnet, /// Pecorino testnet. Pecorino, /// Local testnet. @@ -69,6 +79,7 @@ impl GenesisSpec { /// This will alwys return a valid string for [`KnownChains`]. pub fn load_raw_genesis(&self) -> Result> { match self { + GenesisSpec::Mainnet => Ok(Cow::Borrowed(MAINNET_GENESIS_JSON)), GenesisSpec::Pecorino => Ok(Cow::Borrowed(PECORINO_GENESIS_JSON)), GenesisSpec::Test => Ok(Cow::Borrowed(TEST_GENESIS_JSON)), GenesisSpec::Path(path) => { @@ -82,6 +93,7 @@ impl GenesisSpec { /// This will always return a valid genesis for [`KnownChains`]. pub fn load_genesis(&self) -> Result { match self { + GenesisSpec::Mainnet => Ok(MAINNET_GENESIS.clone()), GenesisSpec::Pecorino => Ok(PECORINO_GENESIS.clone()), GenesisSpec::Test => Ok(TEST_GENESIS.clone()), GenesisSpec::Path(_) => self diff --git a/crates/genesis/src/mainnet.genesis.json b/crates/genesis/src/mainnet.genesis.json new file mode 100644 index 0000000..9194f5b --- /dev/null +++ b/crates/genesis/src/mainnet.genesis.json @@ -0,0 +1,143 @@ +{ + "config": { + "chainId": 519, + "homesteadBlock": "0x0", + "daoForkBlock": "0x0", + "daoForkSupport": false, + "eip150Block": "0x0", + "eip150Hash": null, + "eip155Block": "0x0", + "eip158Block": "0x0", + "byzantiumBlock": "0x0", + "constantinopleBlock": "0x0", + "petersburgBlock": "0x0", + "istanbulBlock": "0x0", + "muirGlacierBlock": "0x0", + "berlinBlock": "0x0", + "londonBlock": "0x0", + "arrowGlacierBlock": "0x0", + "grayGlacierBlock": "0x0", + "mergeNetsplitBlock": "0x0", + "shanghaiTime": "0x0", + "cancunTime": "0x0", + "pragueTime": "0x0", + "terminalTotalDifficulty": null, + "terminalTotalDifficultyPassed": false, + "ethash": null, + "clique": null, + "parlia": null, + "signetConstants": { + "host": { + "chainId": 1, + "deployHeight": "TODO", + "zenith": "0xf17E98baF73F7C78a42D73DF4064de5B7A20EcA6", + "orders": "0x0A4f505364De0Aa46c66b15aBae44eBa12ab0380", + "passage": "0x12585352AA1057443D6163B539EfD4487f023182", + "transactor": "0x3903279B59D3F5194053dA8d1f0C7081C8892Ce4", + "tokens": { + "usds": [ + { + "ticker": "USDC", + "decimals": 6, + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" + }, + { + "ticker": "USDT", + "decimals": 6, + "address": "0xdAC17F958D2ee523a2206206994597C13D831ec7" + } + ], + "wbtc": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "weth": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" + } + }, + "rollup": { + "chainId": 519, + "orders": "0x000000000000007369676e65742d6f7264657273", + "passage": "0x0000000000007369676e65742d70617373616765", + "baseFeeRecipient": "0x86Fa9c9fb93C5F6022276db84bf2A05b5a72283E", + "tokens": { + "wbtc": "0x0000000000000000007369676e65742d77627463", + "weth": "0x0000000000000000007369676e65742d77657468" + } + } + }, + "extraFields": {}, + "depositContractAddress": null + }, + "nonce": "0x0", + "timestamp": "0x0", + "extraData": "0x", + "gasLimit": "0x1c9c380", + "difficulty": "0x0", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "coinbase": "0x0000000000000000000000000000000000000000", + "alloc": { + "0x000F3df6D732807Ef1319fB7B8bB8522d0Beac02": { + "balance": "0x0", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500" + }, + "0x000000000022D473030F116dDEE9F6B43aC78BA3": { + "balance": "0x0", + "code": "0x6040608081526004908136101561001557600080fd5b600090813560e01c80630d58b1db1461126c578063137c29fe146110755780632a2d80d114610db75780632b67b57014610bde57806330f28b7a14610ade5780633644e51514610a9d57806336c7851614610a285780633ff9dcb1146109a85780634fe02b441461093f57806365d9723c146107ac57806387517c451461067a578063927da105146105c3578063cc53287f146104a3578063edd9444b1461033a5763fe8ec1a7146100c657600080fd5b346103365760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103365767ffffffffffffffff833581811161033257610114903690860161164b565b60243582811161032e5761012b903690870161161a565b6101336114e6565b9160843585811161032a5761014b9036908a016115c1565b98909560a43590811161032657610164913691016115c1565b969095815190610173826113ff565b606b82527f5065726d697442617463685769746e6573735472616e7366657246726f6d285460208301527f6f6b656e5065726d697373696f6e735b5d207065726d69747465642c61646472838301527f657373207370656e6465722c75696e74323536206e6f6e63652c75696e74323560608301527f3620646561646c696e652c000000000000000000000000000000000000000000608083015282519a8b9181610222602085018096611f93565b918237018a8152039961025b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09b8c8101835282611437565b5190209085515161026b81611ebb565b908a5b8181106102f95750506102f6999a6102ed9183516102a081610294602082018095611f66565b03848101835282611437565b519020602089810151858b015195519182019687526040820192909252336060820152608081019190915260a081019390935260643560c08401528260e081015b03908101835282611437565b51902093611cf7565b80f35b8061031161030b610321938c5161175e565b51612054565b61031b828661175e565b52611f0a565b61026e565b8880fd5b8780fd5b8480fd5b8380fd5b5080fd5b5091346103365760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103365767ffffffffffffffff9080358281116103325761038b903690830161164b565b60243583811161032e576103a2903690840161161a565b9390926103ad6114e6565b9160643590811161049f576103c4913691016115c1565b949093835151976103d489611ebb565b98885b81811061047d5750506102f697988151610425816103f9602082018095611f66565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611437565b5190206020860151828701519083519260208401947ffcf35f5ac6a2c28868dc44c302166470266239195f02b0ee408334829333b7668652840152336060840152608083015260a082015260a081526102ed8161141b565b808b61031b8261049461030b61049a968d5161175e565b9261175e565b6103d7565b8680fd5b5082346105bf57602090817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103325780359067ffffffffffffffff821161032e576104f49136910161161a565b929091845b848110610504578580f35b8061051a610515600193888861196c565b61197c565b61052f84610529848a8a61196c565b0161197c565b3389528385528589209173ffffffffffffffffffffffffffffffffffffffff80911692838b528652868a20911690818a5285528589207fffffffffffffffffffffffff000000000000000000000000000000000000000081541690558551918252848201527f89b1add15eff56b3dfe299ad94e01f2b52fbcb80ae1a3baea6ae8c04cb2b98a4853392a2016104f9565b8280fd5b50346103365760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033657610676816105ff6114a0565b936106086114c3565b6106106114e6565b73ffffffffffffffffffffffffffffffffffffffff968716835260016020908152848420928816845291825283832090871683528152919020549251938316845260a083901c65ffffffffffff169084015260d09190911c604083015281906060820190565b0390f35b50346103365760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610336576106b26114a0565b906106bb6114c3565b916106c46114e6565b65ffffffffffff926064358481169081810361032a5779ffffffffffff0000000000000000000000000000000000000000947fda9fa7c1b00402c17d0161b249b1ab8bbec047c5a52207b9c112deffd817036b94338a5260016020527fffffffffffff0000000000000000000000000000000000000000000000000000858b209873ffffffffffffffffffffffffffffffffffffffff809416998a8d5260205283878d209b169a8b8d52602052868c209486156000146107a457504216925b8454921697889360a01b16911617179055815193845260208401523392a480f35b905092610783565b5082346105bf5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105bf576107e56114a0565b906107ee6114c3565b9265ffffffffffff604435818116939084810361032a57338852602091600183528489209673ffffffffffffffffffffffffffffffffffffffff80911697888b528452858a20981697888a5283528489205460d01c93848711156109175761ffff9085840316116108f05750907f55eb90d810e1700b35a8e7e25395ff7f2b2259abd7415ca2284dfb1c246418f393929133895260018252838920878a528252838920888a5282528389209079ffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffff000000000000000000000000000000000000000000000000000083549260d01b16911617905582519485528401523392a480f35b84517f24d35a26000000000000000000000000000000000000000000000000000000008152fd5b5084517f756688fe000000000000000000000000000000000000000000000000000000008152fd5b503461033657807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610336578060209273ffffffffffffffffffffffffffffffffffffffff61098f6114a0565b1681528084528181206024358252845220549051908152f35b5082346105bf57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105bf577f3704902f963766a4e561bbaab6e6cdc1b1dd12f6e9e99648da8843b3f46b918d90359160243533855284602052818520848652602052818520818154179055815193845260208401523392a280f35b8234610a9a5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610a9a57610a606114a0565b610a686114c3565b610a706114e6565b6064359173ffffffffffffffffffffffffffffffffffffffff8316830361032e576102f6936117a1565b80fd5b503461033657817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033657602090610ad7611b1e565b9051908152f35b508290346105bf576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105bf57610b1a3661152a565b90807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c36011261033257610b4c611478565b9160e43567ffffffffffffffff8111610bda576102f694610b6f913691016115c1565b939092610b7c8351612054565b6020840151828501519083519260208401947f939c21a48a8dbe3a9a2404a1d46691e4d39f6583d6ec6b35714604c986d801068652840152336060840152608083015260a082015260a08152610bd18161141b565b51902091611c25565b8580fd5b509134610336576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033657610c186114a0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360160c08112610332576080855191610c51836113e3565b1261033257845190610c6282611398565b73ffffffffffffffffffffffffffffffffffffffff91602435838116810361049f578152604435838116810361049f57602082015265ffffffffffff606435818116810361032a5788830152608435908116810361049f576060820152815260a435938285168503610bda576020820194855260c4359087830182815260e43567ffffffffffffffff811161032657610cfe90369084016115c1565b929093804211610d88575050918591610d786102f6999a610d7e95610d238851611fbe565b90898c511690519083519260208401947ff3841cd1ff0085026a6327b620b67997ce40f282c88a8e905a7a5626e310f3d086528401526060830152608082015260808152610d70816113ff565b519020611bd9565b916120c7565b519251169161199d565b602492508a51917fcd21db4f000000000000000000000000000000000000000000000000000000008352820152fd5b5091346103365760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc93818536011261033257610df36114a0565b9260249081359267ffffffffffffffff9788851161032a578590853603011261049f578051978589018981108282111761104a578252848301358181116103265785019036602383011215610326578382013591610e50836115ef565b90610e5d85519283611437565b838252602093878584019160071b83010191368311611046578801905b828210610fe9575050508a526044610e93868801611509565b96838c01978852013594838b0191868352604435908111610fe557610ebb90369087016115c1565b959096804211610fba575050508998995151610ed681611ebb565b908b5b818110610f9757505092889492610d7892610f6497958351610f02816103f98682018095611f66565b5190209073ffffffffffffffffffffffffffffffffffffffff9a8b8b51169151928551948501957faf1b0d30d2cab0380e68f0689007e3254993c596f2fdd0aaa7f4d04f794408638752850152830152608082015260808152610d70816113ff565b51169082515192845b848110610f78578580f35b80610f918585610f8b600195875161175e565b5161199d565b01610f6d565b80610311610fac8e9f9e93610fb2945161175e565b51611fbe565b9b9a9b610ed9565b8551917fcd21db4f000000000000000000000000000000000000000000000000000000008352820152fd5b8a80fd5b6080823603126110465785608091885161100281611398565b61100b85611509565b8152611018838601611509565b838201526110278a8601611607565b8a8201528d611037818701611607565b90820152815201910190610e7a565b8c80fd5b84896041867f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b5082346105bf576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105bf576110b03661152a565b91807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c360112610332576110e2611478565b67ffffffffffffffff93906101043585811161049f5761110590369086016115c1565b90936101243596871161032a57611125610bd1966102f6983691016115c1565b969095825190611134826113ff565b606482527f5065726d69745769746e6573735472616e7366657246726f6d28546f6b656e5060208301527f65726d697373696f6e73207065726d69747465642c6164647265737320737065848301527f6e6465722c75696e74323536206e6f6e63652c75696e7432353620646561646c60608301527f696e652c0000000000000000000000000000000000000000000000000000000060808301528351948591816111e3602085018096611f93565b918237018b8152039361121c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe095868101835282611437565b5190209261122a8651612054565b6020878101518589015195519182019687526040820192909252336060820152608081019190915260a081019390935260e43560c08401528260e081016102e1565b5082346105bf576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033257813567ffffffffffffffff92838211610bda5736602383011215610bda5781013592831161032e576024906007368386831b8401011161049f57865b8581106112e5578780f35b80821b83019060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc83360301126103265761139288876001946060835161132c81611398565b611368608461133c8d8601611509565b9485845261134c60448201611509565b809785015261135d60648201611509565b809885015201611509565b918291015273ffffffffffffffffffffffffffffffffffffffff80808093169516931691166117a1565b016112da565b6080810190811067ffffffffffffffff8211176113b457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff8211176113b457604052565b60a0810190811067ffffffffffffffff8211176113b457604052565b60c0810190811067ffffffffffffffff8211176113b457604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176113b457604052565b60c4359073ffffffffffffffffffffffffffffffffffffffff8216820361149b57565b600080fd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361149b57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361149b57565b6044359073ffffffffffffffffffffffffffffffffffffffff8216820361149b57565b359073ffffffffffffffffffffffffffffffffffffffff8216820361149b57565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc01906080821261149b576040805190611563826113e3565b8082941261149b57805181810181811067ffffffffffffffff8211176113b457825260043573ffffffffffffffffffffffffffffffffffffffff8116810361149b578152602435602082015282526044356020830152606435910152565b9181601f8401121561149b5782359167ffffffffffffffff831161149b576020838186019501011161149b57565b67ffffffffffffffff81116113b45760051b60200190565b359065ffffffffffff8216820361149b57565b9181601f8401121561149b5782359167ffffffffffffffff831161149b576020808501948460061b01011161149b57565b91909160608184031261149b576040805191611666836113e3565b8294813567ffffffffffffffff9081811161149b57830182601f8201121561149b578035611693816115ef565b926116a087519485611437565b818452602094858086019360061b8501019381851161149b579086899897969594939201925b8484106116e3575050505050855280820135908501520135910152565b90919293949596978483031261149b578851908982019082821085831117611730578a928992845261171487611509565b81528287013583820152815201930191908897969594936116c6565b602460007f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b80518210156117725760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b92919273ffffffffffffffffffffffffffffffffffffffff604060008284168152600160205282828220961695868252602052818120338252602052209485549565ffffffffffff8760a01c16804211611884575082871696838803611812575b5050611810955016926118b5565b565b878484161160001461184f57602488604051907ff96fb0710000000000000000000000000000000000000000000000000000000082526004820152fd5b7fffffffffffffffffffffffff000000000000000000000000000000000000000084846118109a031691161790553880611802565b602490604051907fd81b2f2e0000000000000000000000000000000000000000000000000000000082526004820152fd5b9060006064926020958295604051947f23b872dd0000000000000000000000000000000000000000000000000000000086526004860152602485015260448401525af13d15601f3d116001600051141617161561190e57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c45440000000000000000000000006044820152fd5b91908110156117725760061b0190565b3573ffffffffffffffffffffffffffffffffffffffff8116810361149b5790565b9065ffffffffffff908160608401511673ffffffffffffffffffffffffffffffffffffffff908185511694826020820151169280866040809401511695169560009187835260016020528383208984526020528383209916988983526020528282209184835460d01c03611af5579185611ace94927fc6a377bfc4eb120024a8ac08eef205be16b817020812c73223e81d1bdb9708ec98979694508715600014611ad35779ffffffffffff00000000000000000000000000000000000000009042165b60a01b167fffffffffffff00000000000000000000000000000000000000000000000000006001860160d01b1617179055519384938491604091949373ffffffffffffffffffffffffffffffffffffffff606085019616845265ffffffffffff809216602085015216910152565b0390a4565b5079ffffffffffff000000000000000000000000000000000000000087611a60565b600484517f756688fe000000000000000000000000000000000000000000000000000000008152fd5b467f000000000000000000000000000000000000000000000000000000000000020703611b69577fb9763ec6fa56d573bb57683efe8980ae88b28d02923686476e9f03012cf8693090565b60405160208101907f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86682527f9ac997416e8ff9d2ff6bebeb7149f65cdae5e32e2b90440b566bb3044041d36a604082015246606082015230608082015260808152611bd3816113ff565b51902090565b611be1611b1e565b906040519060208201927f190100000000000000000000000000000000000000000000000000000000000084526022830152604282015260428152611bd381611398565b9192909360a435936040840151804211611cc65750602084510151808611611c955750918591610d78611c6594611c60602088015186611e47565b611bd9565b73ffffffffffffffffffffffffffffffffffffffff809151511692608435918216820361149b57611810936118b5565b602490604051907f3728b83d0000000000000000000000000000000000000000000000000000000082526004820152fd5b602490604051907fcd21db4f0000000000000000000000000000000000000000000000000000000082526004820152fd5b959093958051519560409283830151804211611e175750848803611dee57611d2e918691610d7860209b611c608d88015186611e47565b60005b868110611d42575050505050505050565b611d4d81835161175e565b5188611d5a83878a61196c565b01359089810151808311611dbe575091818888886001968596611d84575b50505050505001611d31565b611db395611dad9273ffffffffffffffffffffffffffffffffffffffff6105159351169561196c565b916118b5565b803888888883611d78565b6024908651907f3728b83d0000000000000000000000000000000000000000000000000000000082526004820152fd5b600484517fff633a38000000000000000000000000000000000000000000000000000000008152fd5b6024908551907fcd21db4f0000000000000000000000000000000000000000000000000000000082526004820152fd5b9073ffffffffffffffffffffffffffffffffffffffff600160ff83161b9216600052600060205260406000209060081c6000526020526040600020818154188091551615611e9157565b60046040517f756688fe000000000000000000000000000000000000000000000000000000008152fd5b90611ec5826115ef565b611ed26040519182611437565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0611f0082946115ef565b0190602036910137565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611f375760010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b805160208092019160005b828110611f7f575050505090565b835185529381019392810192600101611f71565b9081519160005b838110611fab575050016000815290565b8060208092840101518185015201611f9a565b60405160208101917f65626cad6cb96493bf6f5ebea28756c966f023ab9e8a83a7101849d5573b3678835273ffffffffffffffffffffffffffffffffffffffff8082511660408401526020820151166060830152606065ffffffffffff9182604082015116608085015201511660a082015260a0815260c0810181811067ffffffffffffffff8211176113b45760405251902090565b6040516020808201927f618358ac3db8dc274f0cd8829da7e234bd48cd73c4a740aede1adec9846d06a1845273ffffffffffffffffffffffffffffffffffffffff81511660408401520151606082015260608152611bd381611398565b919082604091031261149b576020823592013590565b6000843b61222e5750604182036121ac576120e4828201826120b1565b939092604010156117725760209360009360ff6040608095013560f81c5b60405194855216868401526040830152606082015282805260015afa156121a05773ffffffffffffffffffffffffffffffffffffffff806000511691821561217657160361214c57565b60046040517f815e1d64000000000000000000000000000000000000000000000000000000008152fd5b60046040517f8baa579f000000000000000000000000000000000000000000000000000000008152fd5b6040513d6000823e3d90fd5b60408203612204576121c0918101906120b1565b91601b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84169360ff1c019060ff8211611f375760209360009360ff608094612102565b60046040517f4be6321b000000000000000000000000000000000000000000000000000000008152fd5b929391601f928173ffffffffffffffffffffffffffffffffffffffff60646020957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0604051988997889687947f1626ba7e000000000000000000000000000000000000000000000000000000009e8f8752600487015260406024870152816044870152868601378b85828601015201168101030192165afa9081156123a857829161232a575b507fffffffff000000000000000000000000000000000000000000000000000000009150160361230057565b60046040517fb0669cbc000000000000000000000000000000000000000000000000000000008152fd5b90506020813d82116123a0575b8161234460209383611437565b810103126103365751907fffffffff0000000000000000000000000000000000000000000000000000000082168203610a9a57507fffffffff0000000000000000000000000000000000000000000000000000000090386122d4565b3d9150612337565b6040513d84823e3d90fdfea164736f6c6343000811000a" + }, + "0x0000000000007369676e65742d70617373616765": { + "balance": "0x0", + "code": "0x60806040526004361061004d575f3560e01c80633930e39114610066578063685114a21461009b578063b269a425146100ba578063b42652e9146100d9578063eba1f981146100ec5761005d565b3661005d5761005b3361010b565b005b61005b3361010b565b348015610071575f80fd5b5061008561008036600461076c565b61015b565b60405161009291906107c4565b60405180910390f35b3480156100a6575f80fd5b5061005b6100b53660046107f0565b61021a565b3480156100c5575f80fd5b5061005b6100d436600461082a565b61024f565b61005b6100e736600461087b565b61010b565b3480156100f7575f80fd5b5061008561010636600461087b565b610290565b345f036101155750565b806001600160a01b03167f22d324652c93739755cf4581508b60875ebdd78c20c0cff5cf8e23452b2996313460405161015091815260200190565b60405180910390a250565b604080518082019091525f8152606060208201527fc5d03356b54a64d088070694ab907941e70a5ea4ae772ff6df7f162d054037b66040518060400160405280858152602001846001600160a01b03168152506040516020016101de929190918252805160208084019190915201516001600160a01b0316604082015260600190565b60408051601f1981840301815291815281516020928301208352805160a08101909152607e80825290916109db90830139602082015292915050565b610222610338565b6102376001600160a01b0383163330846103a7565b610242838383610407565b61024a6104ba565b505050565b610257610338565b61026961026383610290565b826104e4565b6102848261027a602084018461087b565b6020840135610407565b61028c6104ba565b5050565b604080518082019091525f81526060602082015260408051602080820183526001600160a01b038516825291516102fd927fa91a2bac0243280e19cfd0a3ae9d7639a15fa41d49eab3e0bf320c8485cc66a9929101918252516001600160a01b0316602082015260400190565b60408051601f1981840301815291815281516020928301208352805160a0810190915260648082529091610a59908301396020820152919050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c1561037857604051633ee5aeb560e01b815260040160405180910390fd5b6103a560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b906105ab565b565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526104019085906105b2565b50505050565b805f0361041357505050565b604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c68906024015f604051808303815f87803b158015610452575f80fd5b505af1158015610464573d5f803e3d5ffd5b50505050816001600160a01b0316836001600160a01b03167f4203bbd8ffd310b1341275d3ad6597e60a1ab2843f84e28c79e88d6f5da1c94d836040516104ad91815260200190565b60405180910390a3505050565b6103a55f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0061039f565b6001600160a01b037f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba31663137c29fe82610534602082013560408051808201909152308152602081019190915290565b61054460a086016080870161087b565b8651602088015161055860a0890189610894565b6040518863ffffffff1660e01b815260040161057a9796959493929190610906565b5f604051808303815f87803b158015610591575f80fd5b505af11580156105a3573d5f803e3d5ffd5b505050505050565b80825d5050565b5f6105c66001600160a01b03841683610618565b905080515f141580156105ea5750808060200190518101906105e891906109a5565b155b1561024a57604051635274afe760e01b81526001600160a01b03841660048201526024015b60405180910390fd5b606061062583835f61062c565b9392505050565b6060814710156106585760405163cf47918160e01b81524760048201526024810183905260440161060f565b5f80856001600160a01b0316848660405161067391906109c4565b5f6040518083038185875af1925050503d805f81146106ad576040519150601f19603f3d011682016040523d82523d5f602084013e6106b2565b606091505b50915091506106c28683836106cc565b9695505050505050565b6060826106e1576106dc82610728565b610625565b81511580156106f857506001600160a01b0384163b155b1561072157604051639996b31560e01b81526001600160a01b038516600482015260240161060f565b5080610625565b8051156107385780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b0381168114610767575f80fd5b919050565b5f806040838503121561077d575f80fd5b8235915061078d60208401610751565b90509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b60208152815160208201525f60208301516040808401526107e86060840182610796565b949350505050565b5f805f60608486031215610802575f80fd5b61080b84610751565b925061081960208501610751565b929592945050506040919091013590565b5f806040838503121561083b575f80fd5b61084483610751565b9150602083013567ffffffffffffffff81111561085f575f80fd5b830160c08186031215610870575f80fd5b809150509250929050565b5f6020828403121561088b575f80fd5b61062582610751565b5f808335601e198436030181126108a9575f80fd5b83018035915067ffffffffffffffff8211156108c3575f80fd5b6020019150368190038213156108d7575f80fd5b9250929050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160a01b0361091789610751565b168152602088810135818301526040808a0135908301526060808a01359083015287516001600160a01b0316608083015287015160a08201525f61096660c08301886001600160a01b03169052565b8560e0830152610140610100830152610983610140830186610796565b8281036101208401526109978185876108de565b9a9950505050505050505050565b5f602082840312156109b5575f80fd5b81518015158114610625575f80fd5b5f82518060208501845e5f92019182525091905056fe456e7465725769746e657373207769746e65737329456e7465725769746e6573732875696e7432353620726f6c6c7570436861696e49642c6164647265737320726f6c6c7570526563697069656e7429546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c75696e7432353620616d6f756e7429457869745769746e657373207769746e65737329457869745769746e657373286164647265737320686f7374526563697069656e7429546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c75696e7432353620616d6f756e7429a2646970667358221220a82b6f2ece68ba16cfccd79784985d20b0e5014e516fcd73930a3c56f491887b64736f6c634300081a0033" + }, + "0x000000000000007369676e65742d6f7264657273": { + "balance": "0x0", + "code": "0x608060405260043610610054575f3560e01c80630828f139146100585780631bbf03a81461008d57806362c06767146100ae578063897bc0d6146100cd5780639181004e146100e0578063f9c50441146100ff575b5f80fd5b348015610063575f80fd5b50610077610072366004610fe9565b610112565b6040516100849190611050565b60405180910390f35b348015610098575f80fd5b506100ac6100a736600461108a565b61024e565b005b3480156100b9575f80fd5b506100ac6100c83660046110ed565b6102c8565b6100ac6100db366004610fe9565b610364565b3480156100eb575f80fd5b506100ac6100fa366004611127565b6103b7565b6100ac61010d366004611199565b610453565b604080518082019091525f81526060602082015281515f816001600160401b0381111561014157610141610e5c565b60405190808252806020026020018201604052801561016a578160200160208202803683370190505b5090505f5b828110156101fe577f988262d9186cf8a1cd1dd5e2cc7bfa353f55a542d86db1fcd06e076a6544250d8582815181106101aa576101aa61127d565b60200260200101516040516020016101c39291906112c8565b604051602081830303815290604052805190602001208282815181106101eb576101eb61127d565b602090810291909101015260010161016f565b508060405160200161021091906112dc565b60408051601f1981840301815291815281516020928301208552805160c081019091526084808252909161168f908301396020840152509092915050565b6102566104b8565b61028561026283610112565b61027f846102708580611311565b61027a908061132f565b610527565b83610709565b7f14b3027353aba71f468d178fdede9ac211a25ae484028823bce1e6700e58e624826040516102b491906113c0565b60405180910390a16102c46107bb565b5050565b6102d06104b8565b6001600160a01b0382166102f6576102f16001600160a01b038416826107e5565b61030a565b61030a6001600160a01b0383168483610884565b816001600160a01b0316836001600160a01b03167fed679328aebf74ede77ae09efcf36e90244f83643dadac1c2d9f0b21a46f6ab78360405161034f91815260200190565b60405180910390a361035f6107bb565b505050565b61036c6104b8565b610375816108e3565b7f14b3027353aba71f468d178fdede9ac211a25ae484028823bce1e6700e58e624816040516103a491906113c0565b60405180910390a16103b46107bb565b50565b6103bf6104b8565b6103e86103cb83610112565b61027f856103d98580611311565b6103e3908061132f565b610a28565b7f80c9b8738a5ff299b770efb55e4372a5fc655294aca7145b3c529c2d89732d626104138280611311565b604001356104336104248480611311565b61042e908061132f565b610af1565b84604051610443939291906113d2565b60405180910390a161035f6107bb565b61045b6104b8565b8242111561047c576040516362b439dd60e11b815260040160405180910390fd5b61048582610be8565b7f80c9b8738a5ff299b770efb55e4372a5fc655294aca7145b3c529c2d89732d62838383604051610443939291906113d2565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c156104f857604051633ee5aeb560e01b815260040160405180910390fd5b61052560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90610c78565b565b8251606090821461054e576040516001621398b960e31b0319815260040160405180910390fd5b816001600160401b0381111561056657610566610e5c565b6040519080825280602002602001820160405280156105aa57816020015b604080518082019091525f80825260208201528152602001906001900390816105845790505b5090505f5b82811015610701578481815181106105c9576105c961127d565b60200260200101515f01516001600160a01b03168484838181106105ef576105ef61127d565b6106059260206040909202019081019150611450565b6001600160a01b03161461062c57604051635f670cf360e11b815260040160405180910390fd5b84818151811061063e5761063e61127d565b60200260200101516020015184848381811061065c5761065c61127d565b905060400201602001351461068457604051635f670cf360e11b815260040160405180910390fd5b60405180604001604052808683815181106106a1576106a161127d565b6020026020010151604001516001600160a01b031681526020018683815181106106cd576106cd61127d565b6020026020010151602001518152508282815181106106ee576106ee61127d565b60209081029190910101526001016105af565b509392505050565b6001600160a01b037f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba31663fe8ec1a76107428380611311565b846107536040860160208701611450565b875160208901516107676040890189611469565b6040518863ffffffff1660e01b81526004016107899796959493929190611521565b5f604051808303815f87803b1580156107a0575f80fd5b505af11580156107b2573d5f803e3d5ffd5b50505050505050565b6105255f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0061051f565b804710156108145760405163cf47918160e01b8152476004820152602481018290526044015b60405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f811461085d576040519150601f19603f3d011682016040523d82523d5f602084013e610862565b606091505b505090508061035f5760405163d6bda27560e01b815260040160405180910390fd5b6040516001600160a01b0383811660248301526044820183905261035f91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050610c7f565b345f5b825181101561035f575f6001600160a01b031683828151811061090b5761090b61127d565b60200260200101515f01516001600160a01b0316036109aa578281815181106109365761093661127d565b6020026020010151602001518261094d919061163a565b91506109a58382815181106109645761096461127d565b6020026020010151602001518483815181106109825761098261127d565b6020026020010151604001516001600160a01b03166107e590919063ffffffff16565b610a20565b610a20338483815181106109c0576109c061127d565b6020026020010151604001518584815181106109de576109de61127d565b6020026020010151602001518685815181106109fc576109fc61127d565b60200260200101515f01516001600160a01b0316610ce0909392919063ffffffff16565b6001016108e6565b6060816001600160401b03811115610a4257610a42610e5c565b604051908082528060200260200182016040528015610a8657816020015b604080518082019091525f8082526020820152815260200190600190039081610a605790505b5090505f5b82811015610701576040518060400160405280866001600160a01b03168152602001858584818110610abf57610abf61127d565b90506040020160200135815250828281518110610ade57610ade61127d565b6020908102919091010152600101610a8b565b6060816001600160401b03811115610b0b57610b0b610e5c565b604051908082528060200260200182016040528015610b4f57816020015b604080518082019091525f8082526020820152815260200190600190039081610b295790505b5090505f5b82811015610be1576040518060400160405280858584818110610b7957610b7961127d565b610b8f9260206040909202019081019150611450565b6001600160a01b03168152602001858584818110610baf57610baf61127d565b90506040020160200135815250828281518110610bce57610bce61127d565b6020908102919091010152600101610b54565b5092915050565b345f5b825181101561035f575f6001600160a01b0316838281518110610c1057610c1061127d565b60200260200101515f01516001600160a01b031603610c5957828181518110610c3b57610c3b61127d565b60200260200101516020015182610c52919061163a565b9150610c70565b610c7033308584815181106109de576109de61127d565b600101610beb565b80825d5050565b5f610c936001600160a01b03841683610d1f565b905080515f14158015610cb7575080806020019051810190610cb59190611659565b155b1561035f57604051635274afe760e01b81526001600160a01b038416600482015260240161080b565b6040516001600160a01b038481166024830152838116604483015260648201839052610d199186918216906323b872dd906084016108b1565b50505050565b6060610d2c83835f610d35565b90505b92915050565b606081471015610d615760405163cf47918160e01b81524760048201526024810183905260440161080b565b5f80856001600160a01b03168486604051610d7c9190611678565b5f6040518083038185875af1925050503d805f8114610db6576040519150601f19603f3d011682016040523d82523d5f602084013e610dbb565b606091505b5091509150610dcb868383610dd7565b925050505b9392505050565b606082610dec57610de782610e33565b610dd0565b8151158015610e0357506001600160a01b0384163b155b15610e2c57604051639996b31560e01b81526001600160a01b038516600482015260240161080b565b5080610dd0565b805115610e435780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b0381118282101715610e9257610e92610e5c565b60405290565b604080519081016001600160401b0381118282101715610e9257610e92610e5c565b604051601f8201601f191681016001600160401b0381118282101715610ee257610ee2610e5c565b604052919050565b5f6001600160401b03821115610f0257610f02610e5c565b5060051b60200190565b80356001600160a01b0381168114610f22575f80fd5b919050565b5f82601f830112610f36575f80fd5b8135610f49610f4482610eea565b610eba565b8082825260208201915060208360071b860101925085831115610f6a575f80fd5b602085015b83811015610fdf5760808188031215610f86575f80fd5b610f8e610e70565b610f9782610f0c565b815260208281013590820152610faf60408301610f0c565b6040820152606082013563ffffffff81168114610fca575f80fd5b60608201528352602090920191608001610f6f565b5095945050505050565b5f60208284031215610ff9575f80fd5b81356001600160401b0381111561100e575f80fd5b61101a84828501610f27565b949350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b60208152815160208201525f602083015160408084015261101a6060840182611022565b5f60608284031215611084575f80fd5b50919050565b5f806040838503121561109b575f80fd5b82356001600160401b038111156110b0575f80fd5b6110bc85828601610f27565b92505060208301356001600160401b038111156110d7575f80fd5b6110e385828601611074565b9150509250929050565b5f805f606084860312156110ff575f80fd5b61110884610f0c565b925061111660208501610f0c565b929592945050506040919091013590565b5f805f60608486031215611139575f80fd5b61114284610f0c565b925060208401356001600160401b0381111561115c575f80fd5b61116886828701610f27565b92505060408401356001600160401b03811115611183575f80fd5b61118f86828701611074565b9150509250925092565b5f805f606084860312156111ab575f80fd5b8335925060208401356001600160401b038111156111c7575f80fd5b8401601f810186136111d7575f80fd5b80356111e5610f4482610eea565b8082825260208201915060208360061b850101925088831115611206575f80fd5b6020840193505b82841015611254576040848a031215611224575f80fd5b61122c610e98565b61123585610f0c565b815260208581013581830152908352604090940193919091019061120d565b945050505060408401356001600160401b03811115611271575f80fd5b61118f86828701610f27565b634e487b7160e01b5f52603260045260245ffd5b80516001600160a01b039081168352602080830151908401526040808301519091169083015260609081015163ffffffff16910152565b82815260a08101610dd06020830184611291565b81515f90829060208501835b828110156113065781518452602093840193909101906001016112e8565b509195945050505050565b5f8235605e19833603018112611325575f80fd5b9190910192915050565b5f808335601e19843603018112611344575f80fd5b8301803591506001600160401b0382111561135d575f80fd5b6020019150600681901b3603821315611374575f80fd5b9250929050565b5f8151808452602084019350602083015f5b828110156113b6576113a0868351611291565b608095909501946020919091019060010161138d565b5093949350505050565b602081525f610d2c602083018461137b565b5f60608201858352606060208401528085518083526080850191506020870192505f5b818110156114315761141b83855180516001600160a01b03168252602090810151910152565b60209390930192604092909201916001016113f5565b50508381036040850152611445818661137b565b979650505050505050565b5f60208284031215611460575f80fd5b610d2c82610f0c565b5f808335601e1984360301811261147e575f80fd5b8301803591506001600160401b03821115611497575f80fd5b602001915036819003821315611374575f80fd5b5f8151808452602084019350602083015f5b828110156113b6576114e386835180516001600160a01b03168252602090810151910152565b60409590950194602091909101906001016114bd565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60c081525f61012082018935601e198b360301811261153e575f80fd5b8a016020810190356001600160401b03811115611559575f80fd5b8060061b360382131561156a575f80fd5b606060c086015291829052905f9061014085015b818310156115b7576001600160a01b0361159785610f0c565b16815260208481013590820152604093840193600193909301920161157e565b60208d81013560e088015260408e013561010088018190528783039188019190915293506115e5818d6114ab565b93505050506115ff60408401896001600160a01b03169052565b86606084015282810360808401526116178187611022565b905082810360a084015261162c8185876114f9565b9a9950505050505050505050565b81810381811115610d2f57634e487b7160e01b5f52601160045260245ffd5b5f60208284031215611669575f80fd5b81518015158114610dd0575f80fd5b5f82518060208501845e5f92019182525091905056fe4f75747075745b5d206f757470757473294f7574707574286164647265737320746f6b656e2c75696e7432353620616d6f756e742c6164647265737320726563697069656e742c75696e74333220636861696e496429546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c75696e7432353620616d6f756e7429a2646970667358221220322fe8b32453c17a0efd4f702e415163224990591aefcb85e698039547a4393764736f6c634300081a0033" + }, + "0x0000000000000000007369676e65742d77627463": { + "balance": "0x0", + "code": "0x608060405234801561000f575f80fd5b50600436106100fb575f3560e01c806370a082311161009357806395d89b411161006357806395d89b4114610246578063a9059cbb1461024e578063dd62ed3e14610261578063f2fde38b14610299575f80fd5b806370a08231146101e8578063715018a61461021057806379cc6790146102185780638da5cb5b1461022b575f80fd5b8063313ce567116100ce578063313ce5671461016557806332424aa31461019957806340c10f19146101c057806342966c68146101d3575f80fd5b806306fdde03146100ff578063095ea7b31461011d57806318160ddd1461014057806323b872dd14610152575b5f80fd5b6101076102ac565b60405161011491906107f0565b60405180910390f35b61013061012b366004610840565b61033c565b6040519015158152602001610114565b6002545b604051908152602001610114565b610130610160366004610868565b610355565b7f00000000000000000000000000000000000000000000000000000000000000085b60405160ff9091168152602001610114565b6101877f000000000000000000000000000000000000000000000000000000000000000881565b6101306101ce366004610840565b610378565b6101e66101e13660046108a2565b610394565b005b6101446101f63660046108b9565b6001600160a01b03165f9081526020819052604090205490565b6101e66103a1565b6101e6610226366004610840565b6103b4565b6005546040516001600160a01b039091168152602001610114565b6101076103cd565b61013061025c366004610840565b6103dc565b61014461026f3660046108d9565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6101e66102a73660046108b9565b6103e9565b6060600380546102bb9061090a565b80601f01602080910402602001604051908101604052809291908181526020018280546102e79061090a565b80156103325780601f1061030957610100808354040283529160200191610332565b820191905f5260205f20905b81548152906001019060200180831161031557829003601f168201915b5050505050905090565b5f33610349818585610428565b60019150505b92915050565b5f3361036285828561043a565b61036d8585856104b5565b506001949350505050565b5f610381610512565b61038b838361053f565b50600192915050565b61039e3382610573565b50565b6103a9610512565b6103b25f6105a7565b565b6103bf82338361043a565b6103c98282610573565b5050565b6060600480546102bb9061090a565b5f336103498185856104b5565b6103f1610512565b6001600160a01b03811661041f57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61039e816105a7565b61043583838360016105f8565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f1981146104af57818110156104a157604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610416565b6104af84848484035f6105f8565b50505050565b6001600160a01b0383166104de57604051634b637e8f60e11b81525f6004820152602401610416565b6001600160a01b0382166105075760405163ec442f0560e01b81525f6004820152602401610416565b6104358383836106ca565b6005546001600160a01b031633146103b25760405163118cdaa760e01b8152336004820152602401610416565b6001600160a01b0382166105685760405163ec442f0560e01b81525f6004820152602401610416565b6103c95f83836106ca565b6001600160a01b03821661059c57604051634b637e8f60e11b81525f6004820152602401610416565b6103c9825f836106ca565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0384166106215760405163e602df0560e01b81525f6004820152602401610416565b6001600160a01b03831661064a57604051634a1406b160e11b81525f6004820152602401610416565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156104af57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106bc91815260200190565b60405180910390a350505050565b6001600160a01b0383166106f4578060025f8282546106e99190610942565b909155506107649050565b6001600160a01b0383165f90815260208190526040902054818110156107465760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610416565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166107805760028054829003905561079e565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107e391815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b038116811461083b575f80fd5b919050565b5f8060408385031215610851575f80fd5b61085a83610825565b946020939093013593505050565b5f805f6060848603121561087a575f80fd5b61088384610825565b925061089160208501610825565b929592945050506040919091013590565b5f602082840312156108b2575f80fd5b5035919050565b5f602082840312156108c9575f80fd5b6108d282610825565b9392505050565b5f80604083850312156108ea575f80fd5b6108f383610825565b915061090160208401610825565b90509250929050565b600181811c9082168061091e57607f821691505b60208210810361093c57634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561034f57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220a373554eb2e797644d86447291ab79350d58226b5edc56a67e2d820f602062bb64736f6c634300081a0033", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x5772617070656420425443000000000000000000000000000000000000000016", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x5742544300000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x00000000000000000000000000000000000000000000746f6b656e61646d696e" + } + }, + "0x0000000000000000007369676e65742d77657468": { + "balance": "0x0", + "code": "0x608060405234801561000f575f80fd5b50600436106100fe575f3560e01c806370a082311161009557806395d89b411161006457806395d89b411461029a578063a9059cbb146102b8578063dd62ed3e146102e8578063f2fde38b14610318576100fe565b806370a0823114610226578063715018a61461025657806379cc6790146102605780638da5cb5b1461027c576100fe565b8063313ce567116100d1578063313ce5671461019e57806332424aa3146101bc57806340c10f19146101da57806342966c681461020a576100fe565b806306fdde0314610102578063095ea7b31461012057806318160ddd1461015057806323b872dd1461016e575b5f80fd5b61010a610334565b6040516101179190610f2c565b60405180910390f35b61013a60048036038101906101359190610fdd565b6103c4565b6040516101479190611035565b60405180910390f35b6101586103e6565b604051610165919061105d565b60405180910390f35b61018860048036038101906101839190611076565b6103ef565b6040516101959190611035565b60405180910390f35b6101a661041d565b6040516101b391906110e1565b60405180910390f35b6101c4610444565b6040516101d191906110e1565b60405180910390f35b6101f460048036038101906101ef9190610fdd565b610468565b6040516102019190611035565b60405180910390f35b610224600480360381019061021f91906110fa565b610485565b005b610240600480360381019061023b9190611125565b610499565b60405161024d919061105d565b60405180910390f35b61025e6104de565b005b61027a60048036038101906102759190610fdd565b6104f1565b005b610284610511565b604051610291919061115f565b60405180910390f35b6102a2610539565b6040516102af9190610f2c565b60405180910390f35b6102d260048036038101906102cd9190610fdd565b6105c9565b6040516102df9190611035565b60405180910390f35b61030260048036038101906102fd9190611178565b6105eb565b60405161030f919061105d565b60405180910390f35b610332600480360381019061032d9190611125565b61066d565b005b606060038054610343906111e3565b80601f016020809104026020016040519081016040528092919081815260200182805461036f906111e3565b80156103ba5780601f10610391576101008083540402835291602001916103ba565b820191905f5260205f20905b81548152906001019060200180831161039d57829003601f168201915b5050505050905090565b5f806103ce6106f1565b90506103db8185856106f8565b600191505092915050565b5f600254905090565b5f806103f96106f1565b905061040685828561070a565b61041185858561079c565b60019150509392505050565b5f7f0000000000000000000000000000000000000000000000000000000000000012905090565b7f000000000000000000000000000000000000000000000000000000000000001281565b5f61047161088c565b61047b8383610913565b6001905092915050565b6104966104906106f1565b82610992565b50565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6104e661088c565b6104ef5f610a11565b565b610503826104fd6106f1565b8361070a565b61050d8282610992565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610548906111e3565b80601f0160208091040260200160405190810160405280929190818152602001828054610574906111e3565b80156105bf5780601f10610596576101008083540402835291602001916105bf565b820191905f5260205f20905b8154815290600101906020018083116105a257829003601f168201915b5050505050905090565b5f806105d36106f1565b90506105e081858561079c565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61067561088c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106e5575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016106dc919061115f565b60405180910390fd5b6106ee81610a11565b50565b5f33905090565b6107058383836001610ad4565b505050565b5f61071584846105eb565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107965781811015610787578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161077e93929190611213565b60405180910390fd5b61079584848484035f610ad4565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361080c575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610803919061115f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361087c575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610873919061115f565b60405180910390fd5b610887838383610ca3565b505050565b6108946106f1565b73ffffffffffffffffffffffffffffffffffffffff166108b2610511565b73ffffffffffffffffffffffffffffffffffffffff1614610911576108d56106f1565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610908919061115f565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610983575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161097a919061115f565b60405180910390fd5b61098e5f8383610ca3565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a02575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016109f9919061115f565b60405180910390fd5b610a0d825f83610ca3565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b44575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610b3b919061115f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bb4575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610bab919061115f565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610c9d578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c94919061105d565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cf3578060025f828254610ce79190611275565b92505081905550610dc1565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610d7c578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610d7393929190611213565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e08578060025f8282540392505081905550610e52565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610eaf919061105d565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610efe82610ebc565b610f088185610ec6565b9350610f18818560208601610ed6565b610f2181610ee4565b840191505092915050565b5f6020820190508181035f830152610f448184610ef4565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610f7982610f50565b9050919050565b610f8981610f6f565b8114610f93575f80fd5b50565b5f81359050610fa481610f80565b92915050565b5f819050919050565b610fbc81610faa565b8114610fc6575f80fd5b50565b5f81359050610fd781610fb3565b92915050565b5f8060408385031215610ff357610ff2610f4c565b5b5f61100085828601610f96565b925050602061101185828601610fc9565b9150509250929050565b5f8115159050919050565b61102f8161101b565b82525050565b5f6020820190506110485f830184611026565b92915050565b61105781610faa565b82525050565b5f6020820190506110705f83018461104e565b92915050565b5f805f6060848603121561108d5761108c610f4c565b5b5f61109a86828701610f96565b93505060206110ab86828701610f96565b92505060406110bc86828701610fc9565b9150509250925092565b5f60ff82169050919050565b6110db816110c6565b82525050565b5f6020820190506110f45f8301846110d2565b92915050565b5f6020828403121561110f5761110e610f4c565b5b5f61111c84828501610fc9565b91505092915050565b5f6020828403121561113a57611139610f4c565b5b5f61114784828501610f96565b91505092915050565b61115981610f6f565b82525050565b5f6020820190506111725f830184611150565b92915050565b5f806040838503121561118e5761118d610f4c565b5b5f61119b85828601610f96565b92505060206111ac85828601610f96565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806111fa57607f821691505b60208210810361120d5761120c6111b6565b5b50919050565b5f6060820190506112265f830186611150565b611233602083018561104e565b611240604083018461104e565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61127f82610faa565b915061128a83610faa565b92508282019050808211156112a2576112a1611248565b5b9291505056fea26469706673582212209f0a626b467641bcb285a9dc2ba081270a0aa581ef6aa1888924d1e43c7be0b764736f6c634300081a0033", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x577261707065642045746865720000000000000000000000000000000000001A", + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x5745544800000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000005": "0x00000000000000000000000000000000000000000000746f6b656e61646d696e" + } + }, + "0x8ff5C1D5233CA055cD536b2b87294d17f9160801": { + "balance": "0x0", + "code": "0x608060405234801561000f575f80fd5b5060043610610055575f3560e01c80631688f0b9146100595780633408e4701461008957806353e5d93514610097578063d18af54d146100ac578063ec9e80bb146100bf575b5f80fd5b61006c610067366004610472565b6100d2565b6040516001600160a01b0390911681526020015b60405180910390f35b604051468152602001610080565b61009f610166565b60405161008091906104f6565b61006c6100ba36600461050f565b610190565b61006c6100cd366004610472565b61025f565b5f808380519060200120836040516020016100f7929190918252602082015260400190565b60405160208183030381529060405280519060200120905061011a858583610290565b6040516001600160a01b038781168252919350908316907f4f51faf6c4561ff95f067657e43439f0f856d97c04d9ec9070a6199ad418e2359060200160405180910390a2509392505050565b606060405180602001610178906103af565b601f1982820381018352601f90910116604052919050565b5f8083836040516020016101c092919091825260601b6bffffffffffffffffffffffff1916602082015260340190565b604051602081830303815290604052805190602001205f1c90506101e58686836100d2565b91506001600160a01b03831615610256576040516303ca56a360e31b81526001600160a01b03841690631e52b518906102289085908a908a908a90600401610577565b5f604051808303815f87803b15801561023f575f80fd5b505af1158015610251573d5f803e3d5ffd5b505050505b50949350505050565b5f808380519060200120836102714690565b60408051602081019490945283019190915260608201526080016100f7565b5f833b6102e45760405162461bcd60e51b815260206004820152601f60248201527f53696e676c65746f6e20636f6e7472616374206e6f74206465706c6f7965640060448201526064015b60405180910390fd5b5f604051806020016102f5906103af565b601f1982820381018352601f90910116604081905261032291906001600160a01b038816906020016105b3565b6040516020818303038152906040529050828151826020015ff591506001600160a01b03821661038a5760405162461bcd60e51b815260206004820152601360248201527210dc99585d194c8818d85b1b0819985a5b1959606a1b60448201526064016102db565b8351156103a7575f805f8651602088015f875af1036103a7575f80fd5b509392505050565b610163806105ce83390190565b6001600160a01b03811681146103d0575f80fd5b50565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126103f6575f80fd5b813567ffffffffffffffff811115610410576104106103d3565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561043f5761043f6103d3565b604052818152838201602001851015610456575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f60608486031215610484575f80fd5b833561048f816103bc565b9250602084013567ffffffffffffffff8111156104aa575f80fd5b6104b6868287016103e7565b93969395505050506040919091013590565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61050860208301846104c8565b9392505050565b5f805f8060808587031215610522575f80fd5b843561052d816103bc565b9350602085013567ffffffffffffffff811115610548575f80fd5b610554878288016103e7565b93505060408501359150606085013561056c816103bc565b939692955090935050565b6001600160a01b038581168252841660208201526080604082018190525f906105a2908301856104c8565b905082606083015295945050505050565b5f83518060208601845e919091019182525060200191905056fe6080604052348015600e575f80fd5b50604051610163380380610163833981016040819052602b9160b2565b6001600160a01b038116608f5760405162461bcd60e51b815260206004820152602260248201527f496e76616c69642073696e676c65746f6e20616464726573732070726f766964604482015261195960f21b606482015260840160405180910390fd5b5f80546001600160a01b0319166001600160a01b039290921691909117905560dd565b5f6020828403121560c1575f80fd5b81516001600160a01b038116811460d6575f80fd5b9392505050565b607a806100e95f395ff3fe60806040525f80546001600160a01b03169035632cf35bc960e11b01602657805f5260205ff35b365f80375f80365f845af490503d5f803e80603f573d5ffd5b503d5ff3fea264697066735822122001deaa6568fd950b816ad3772ffe1e654dbb28263960bb86cfb313e8e93f6b6b64736f6c634300081a0033a26469706673582212204d02cb188c82949fc64f39d7729617fb7a5131ed975627a1123a88cce3793abc64736f6c634300081a0033" + }, + "0x2f2965efaCFc64Fb85dF1902260eB25C0c996195": { + "balance": "0x0", + "code": "0x6080604052600436106101d0575f3560e01c8063affed0e0116100f6578063e19a9dd911610094578063f08a032311610063578063f08a0323146105d2578063f698da25146105f1578063f8dc5dd914610605578063ffa1ad74146106245761020c565b8063e19a9dd914610561578063e318b52b14610580578063e75235b81461059f578063e86637db146105b35761020c565b8063cc2f8452116100d0578063cc2f8452146104d7578063d4d9bdcd14610504578063d8d11f7814610523578063e009cfde146105425761020c565b8063affed0e014610484578063b4faba0914610499578063b63e800d146104b85761020c565b80635624b25b1161016e5780636a7612021161013d5780636a761202146103fb5780637d8329741461040e578063934f3a1114610444578063a0e67e2b146104635761020c565b80635624b25b146103665780635ae6bd3714610392578063610b5925146103bd578063694e80c3146103dc5761020c565b80632f54bf6e116101aa5780632f54bf6e146102df5780633408e470146102fe578063468721a71461031a5780635229073f146103395761020c565b80630d582f131461026b57806312fb68e01461028c5780632d9ad53d146102ab5761020c565b3661020c5760405134815233907f3d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3d9060200160405180910390a2005b348015610217575f80fd5b507f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d580548061024257005b365f80373360601b36525f80601436015f80855af190503d5f803e80610266573d5ffd5b503d5ff35b348015610276575f80fd5b5061028a6102853660046125fe565b610654565b005b348015610297575f80fd5b5061028a6102a63660046126c5565b6107a9565b3480156102b6575f80fd5b506102ca6102c5366004612738565b610c3a565b60405190151581526020015b60405180910390f35b3480156102ea575f80fd5b506102ca6102f9366004612738565b610c73565b348015610309575f80fd5b50465b6040519081526020016102d6565b348015610325575f80fd5b506102ca610334366004612761565b610ca9565b348015610344575f80fd5b50610358610353366004612761565b610cfe565b6040516102d69291906127f4565b348015610371575f80fd5b5061038561038036600461280e565b610d32565b6040516102d6919061282e565b34801561039d575f80fd5b5061030c6103ac366004612840565b60076020525f908152604090205481565b3480156103c8575f80fd5b5061028a6103d7366004612738565b610dab565b3480156103e7575f80fd5b5061028a6103f6366004612840565b610ee2565b6102ca61040936600461289b565b610f80565b348015610419575f80fd5b5061030c6104283660046125fe565b600860209081525f928352604080842090915290825290205481565b34801561044f575f80fd5b5061028a61045e36600461296b565b611027565b34801561046e575f80fd5b50610477611071565b6040516102d69190612a19565b34801561048f575f80fd5b5061030c60055481565b3480156104a4575f80fd5b5061028a6104b3366004612a2b565b61115e565b3480156104c3575f80fd5b5061028a6104d2366004612a77565b61117d565b3480156104e2575f80fd5b506104f66104f13660046125fe565b61127c565b6040516102d6929190612b66565b34801561050f575f80fd5b5061028a61051e366004612840565b611433565b34801561052e575f80fd5b5061030c61053d366004612b8f565b6114c6565b34801561054d575f80fd5b5061028a61055c366004612c4c565b6114f2565b34801561056c575f80fd5b5061028a61057b366004612738565b611612565b34801561058b575f80fd5b5061028a61059a366004612c83565b611725565b3480156105aa575f80fd5b5060045461030c565b3480156105be575f80fd5b506103856105cd366004612b8f565b6118fc565b3480156105dd575f80fd5b5061028a6105ec366004612738565b6119d3565b3480156105fc575f80fd5b5061030c611a1a565b348015610610575f80fd5b5061028a61061f366004612ccb565b611a70565b34801561062f575f80fd5b5061038560405180604001604052806005815260200164312e342e3160d81b81525081565b61065c611bd8565b6001600160a01b0382161580159061067e57506001600160a01b038216600114155b801561069357506001600160a01b0382163014155b6106b85760405162461bcd60e51b81526004016106af90612d09565b60405180910390fd5b6001600160a01b038281165f9081526002602052604090205416156106ef5760405162461bcd60e51b81526004016106af90612d28565b60026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e080546001600160a01b038481165f818152604081208054939094166001600160a01b03199384161790935560018352835490911617909155600380549161075b83612d5b565b90915550506040516001600160a01b038316907f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea26905f90a280600454146107a5576107a581610ee2565b5050565b6107b4816041611c11565b825110156107ec5760405162461bcd60e51b8152602060048201526005602482015264047533032360dc1b60448201526064016106af565b5f80805f805f5b86811015610c2e576041818102890160208101516040820151919092015160ff16955090935091505f8490036109fe57885160208a01208a146108605760405162461bcd60e51b8152602060048201526005602482015264475330323760d81b60448201526064016106af565b9193508391610870876041611c11565b8210156108a75760405162461bcd60e51b8152602060048201526005602482015264475330323160d81b60448201526064016106af565b87516108b4836020611c48565b11156108ea5760405162461bcd60e51b815260206004820152600560248201526423a998191960d91b60448201526064016106af565b60208289018101518951909161090d908390610907908790611c48565b90611c48565b11156109435760405162461bcd60e51b8152602060048201526005602482015264475330323360d81b60448201526064016106af565b6040516320c13b0b60e01b8082528a8501602001916001600160a01b038916906320c13b0b90610979908f908690600401612d73565b602060405180830381865afa158015610994573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b89190612d97565b6001600160e01b031916146109f75760405162461bcd60e51b815260206004820152600560248201526411d4cc0c8d60da1b60448201526064016106af565b5050610b9e565b8360ff16600103610a7f579193508391336001600160a01b0384161480610a4657506001600160a01b0385165f9081526008602090815260408083208d845290915290205415155b610a7a5760405162461bcd60e51b8152602060048201526005602482015264475330323560d81b60448201526064016106af565b610b9e565b601e8460ff161115610b41576040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c81018b9052600190605c0160405160208183030381529060405280519060200120600486610ae49190612dbe565b604080515f8152602081018083529390935260ff90911690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610b30573d5f803e3d5ffd5b505050602060405103519450610b9e565b604080515f8152602081018083528c905260ff861691810191909152606081018490526080810183905260019060a0016020604051602081039080840390855afa158015610b91573d5f803e3d5ffd5b5050506020604051035194505b856001600160a01b0316856001600160a01b0316118015610bd757506001600160a01b038581165f908152600260205260409020541615155b8015610bed57506001600160a01b038516600114155b610c215760405162461bcd60e51b815260206004820152600560248201526423a998191b60d91b60448201526064016106af565b93945084936001016107f3565b50505050505050505050565b5f60016001600160a01b03831614801590610c6d57506001600160a01b038281165f908152600160205260409020541615155b92915050565b5f6001600160a01b038216600114801590610c6d5750506001600160a01b039081165f9081526002602052604090205416151590565b5f7fb648d3644f584ed1c2232d53c46d87e693586486ad0d1175f8656013110b714e3386868686604051610ce1959493929190612e0b565b60405180910390a1610cf585858585611c62565b95945050505050565b5f6060610d0d86868686610ca9565b915060405160203d0181016040523d81523d5f602083013e8091505094509492505050565b60605f610d40836020612e56565b6001600160401b03811115610d5757610d57612628565b6040519080825280601f01601f191660200182016040528015610d81576020820181803683370190505b5090505f5b83811015610da35784810154602080830284010152600101610d86565b509392505050565b610db3611bd8565b6001600160a01b03811615801590610dd557506001600160a01b038116600114155b610e095760405162461bcd60e51b8152602060048201526005602482015264475331303160d81b60448201526064016106af565b6001600160a01b038181165f908152600160205260409020541615610e585760405162461bcd60e51b815260206004820152600560248201526423a998981960d91b60448201526064016106af565b600160208190527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f80546001600160a01b038481165f81815260408082208054949095166001600160a01b031994851617909455948552835490911681179092555190917fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844091a250565b610eea611bd8565b600354811115610f0c5760405162461bcd60e51b81526004016106af90612e6d565b6001811015610f455760405162461bcd60e51b815260206004820152600560248201526423a999181960d91b60448201526064016106af565b60048190556040518181527f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c939060200160405180910390a150565b60055460045460408051602081019390935233908301526060828101919091525f9160800160405160208183030381529060405290507f66753cd2356569ee081232e3be8909b950e0a76c1f8460c3a5e3c2be32b11bed8d8d8d8d8d8d8d8d8d8d8d8c604051610ffb9c9b9a99989796959493929190612eb4565b60405180910390a16110168d8d8d8d8d8d8d8d8d8d8d611d36565b9d9c50505050505050505050505050565b6004548061105f5760405162461bcd60e51b8152602060048201526005602482015264475330303160d81b60448201526064016106af565b61106b848484846107a9565b50505050565b60605f6003546001600160401b0381111561108e5761108e612628565b6040519080825280602002602001820160405280156110b7578160200160208202803683370190505b5060015f90815260026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e054919250906001600160a01b03165b6001600160a01b038116600114611156578083838151811061111757611117612f52565b6001600160a01b039283166020918202929092018101919091529181165f9081526002909252604090912054168161114e81612d5b565b9250506110f3565b509092915050565b5f80825160208401855af4805f52503d6020523d5f60403e60403d015ffd5b6111ba8a8a808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152508c925061206f915050565b6001600160a01b038416156111d2576111d284612245565b6112118787878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506122a992505050565b811561122757611225825f600186856123d7565b505b336001600160a01b03167f141df868a6331af528e38c83b7aa03edc19be66e37ae67f9285bf4f8e3c6a1a88b8b8b8b89604051611268959493929190612f66565b60405180910390a250505050505050505050565b60605f6001600160a01b0384166001148061129b575061129b84610c3a565b6112cf5760405162461bcd60e51b8152602060048201526005602482015264475331303560d81b60448201526064016106af565b5f83116113065760405162461bcd60e51b815260206004820152600560248201526423a998981b60d91b60448201526064016106af565b826001600160401b0381111561131e5761131e612628565b604051908082528060200260200182016040528015611347578160200160208202803683370190505b506001600160a01b038086165f90815260016020526040812054929450911691505b6001600160a01b0382161580159061138b57506001600160a01b038216600114155b801561139657508381105b156113f057818382815181106113ae576113ae612f52565b6001600160a01b039283166020918202929092018101919091529281165f908152600190935260409092205490911690806113e881612d5b565b915050611369565b6001600160a01b038216600114611428578261140d600183612fd1565b8151811061141d5761141d612f52565b602002602001015191505b808352509250929050565b335f908152600260205260409020546001600160a01b031661147f5760405162461bcd60e51b8152602060048201526005602482015264047533033360dc1b60448201526064016106af565b335f818152600860209081526040808320858452909152808220600190555183917ff2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c91a350565b5f6114da8c8c8c8c8c8c8c8c8c8c8c6118fc565b8051906020012090509b9a5050505050505050505050565b6114fa611bd8565b6001600160a01b0381161580159061151c57506001600160a01b038116600114155b6115505760405162461bcd60e51b8152602060048201526005602482015264475331303160d81b60448201526064016106af565b6001600160a01b038281165f908152600160205260409020548116908216146115a35760405162461bcd60e51b8152602060048201526005602482015264475331303360d81b60448201526064016106af565b6001600160a01b038181165f81815260016020526040808220805487861684528284208054919096166001600160a01b0319918216179095558383528054909416909355915190917faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace405427691a25050565b61161a611bd8565b6001600160a01b038116156116ca576040516301ffc9a760e01b815263736bd41d60e11b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa158015611672573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116969190612fe4565b6116ca5760405162461bcd60e51b8152602060048201526005602482015264047533330360dc1b60448201526064016106af565b7f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c88181556040516001600160a01b038316907f1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa2905f90a25050565b61172d611bd8565b6001600160a01b0381161580159061174f57506001600160a01b038116600114155b801561176457506001600160a01b0381163014155b6117805760405162461bcd60e51b81526004016106af90612d09565b6001600160a01b038181165f9081526002602052604090205416156117b75760405162461bcd60e51b81526004016106af90612d28565b6001600160a01b038216158015906117d957506001600160a01b038216600114155b6117f55760405162461bcd60e51b81526004016106af90612d09565b6001600160a01b038381165f908152600260205260409020548116908316146118485760405162461bcd60e51b8152602060048201526005602482015264475332303560d81b60448201526064016106af565b6001600160a01b038281165f81815260026020526040808220805486861680855283852080549288166001600160a01b03199384161790559589168452828420805482169096179095558383528054909416909355915190917ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf91a26040516001600160a01b038216907f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea26905f90a2505050565b60605f7fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d85f1b8d8d8d8d604051611934929190613003565b60405190819003812061195a949392918e908e908e908e908e908e908e90602001613012565b60408051601f1981840301815291905280516020909101209050601960f81b600160f81b611986611a1a565b6040516001600160f81b031993841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529150509b9a5050505050505050505050565b6119db611bd8565b6119e481612245565b6040516001600160a01b038216907f5ac6c46c93c8d0e53714ba3b53db3e7c046da994313d7ed0d192028bc7c228b0905f90a250565b5f7f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692184660408051602081019390935282015230606082015260800160405160208183030381529060405280519060200120905090565b611a78611bd8565b806001600354611a889190612fd1565b1015611aa65760405162461bcd60e51b81526004016106af90612e6d565b6001600160a01b03821615801590611ac857506001600160a01b038216600114155b611ae45760405162461bcd60e51b81526004016106af90612d09565b6001600160a01b038381165f90815260026020526040902054811690831614611b375760405162461bcd60e51b8152602060048201526005602482015264475332303560d81b60448201526064016106af565b6001600160a01b038281165f81815260026020526040808220805488861684529183208054929095166001600160a01b03199283161790945591815282549091169091556003805491611b8983613084565b90915550506040516001600160a01b038316907ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf905f90a28060045414611bd357611bd381610ee2565b505050565b333014611c0f5760405162461bcd60e51b8152602060048201526005602482015264475330333160d81b60448201526064016106af565b565b5f825f03611c2057505f610c6d565b5f611c2b8385612e56565b905082611c388583613099565b14611c41575f80fd5b9392505050565b5f80611c5483856130b8565b905083811015611c41575f80fd5b5f33600114801590611c8a5750335f908152600160205260409020546001600160a01b031615155b611cbe5760405162461bcd60e51b815260206004820152600560248201526411d4cc4c0d60da1b60448201526064016106af565b611ccc858585855f196124db565b90508015611d035760405133907f6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8905f90a2611d2e565b60405133907facd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd375905f90a25b949350505050565b5f805f611d4e8e8e8e8e8e8e8e8e8e8e6005546118fc565b600580549192505f611d5f83612d5b565b9091555050805160208201209150611d78828286611027565b505f611da27f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c85490565b90506001600160a01b03811615611e2357806001600160a01b03166375f0bb528f8f8f8f8f8f8f8f8f8f8f336040518d63ffffffff1660e01b8152600401611df59c9b9a999897969594939291906130cb565b5f604051808303815f87803b158015611e0c575f80fd5b505af1158015611e1e573d5f803e3d5ffd5b505050505b611e4f611e328a6109c46130b8565b603f611e3f8c6040612e56565b611e499190613099565b9061251d565b611e5b906101f46130b8565b5a1015611e925760405162461bcd60e51b8152602060048201526005602482015264047533031360dc1b60448201526064016106af565b5f5a9050611f008f8f8f8f8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050508e8c5f14611eed578e6124db565b6109c45a611efb9190612fd1565b6124db565b9350611f0d5a8290612533565b90508380611f1a57508915155b80611f2457508715155b611f585760405162461bcd60e51b8152602060048201526005602482015264475330313360d81b60448201526064016106af565b5f8815611f6f57611f6c828b8b8b8b6123d7565b90505b8415611fb457837f442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e82604051611fa791815260200190565b60405180910390a2611fef565b837f23428b18acfb3ea64b08dc0c1d296ea9c09702c09083ca5272e64d115b687d2382604051611fe691815260200190565b60405180910390a25b50506001600160a01b0381161561205e57604051631264e26d60e31b81526004810183905283151560248201526001600160a01b038216906393271368906044015f604051808303815f87803b158015612047575f80fd5b505af1158015612059573d5f803e3d5ffd5b505050505b50509b9a5050505050505050505050565b600454156120a75760405162461bcd60e51b8152602060048201526005602482015264047533230360dc1b60448201526064016106af565b81518111156120c85760405162461bcd60e51b81526004016106af90612e6d565b60018110156121015760405162461bcd60e51b815260206004820152600560248201526423a999181960d91b60448201526064016106af565b60015f5b8351811015612213575f84828151811061212157612121612f52565b602002602001015190505f6001600160a01b0316816001600160a01b03161415801561215757506001600160a01b038116600114155b801561216c57506001600160a01b0381163014155b801561218a5750806001600160a01b0316836001600160a01b031614155b6121a65760405162461bcd60e51b81526004016106af90612d09565b6001600160a01b038181165f9081526002602052604090205416156121dd5760405162461bcd60e51b81526004016106af90612d28565b6001600160a01b039283165f90815260026020526040902080546001600160a01b03191693821693909317909255600101612105565b506001600160a01b03165f90815260026020526040902080546001600160a01b03191660011790559051600355600455565b306001600160a01b038216036122855760405162461bcd60e51b8152602060048201526005602482015264047533430360dc1b60448201526064016106af565b7f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d555565b60015f8190526020527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f546001600160a01b0316156123125760405162461bcd60e51b8152602060048201526005602482015264047533130360dc1b60448201526064016106af565b60015f81905260208190527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f80546001600160a01b03191690911790556001600160a01b038216156107a557813b6123945760405162461bcd60e51b815260206004820152600560248201526423a998181960d91b60448201526064016106af565b6123a3825f8360015f196124db565b6107a55760405162461bcd60e51b8152602060048201526005602482015264047533030360dc1b60448201526064016106af565b5f806001600160a01b038316156123ee57826123f0565b325b90506001600160a01b038416612482576124223a8610612410573a612412565b855b61241c8989611c48565b90611c11565b6040519092506001600160a01b0382169083156108fc029084905f818181858888f1935050505061247d5760405162461bcd60e51b8152602060048201526005602482015264475330313160d81b60448201526064016106af565b6124d1565b6124908561241c8989611c48565b915061249d84828461254b565b6124d15760405162461bcd60e51b815260206004820152600560248201526423a998189960d91b60448201526064016106af565b5095945050505050565b5f60018360018111156124f0576124f0612dd7565b03612507575f808551602087018986f49050610cf5565b5f80855160208701888a87f19695505050505050565b5f8183101561252c5781611c41565b5090919050565b5f82821115612540575f80fd5b5f611d2e8385612fd1565b604080516001600160a01b03841660248201526044808201849052825180830390910181526064909101909152602080820180516001600160e01b031663a9059cbb60e01b17815282515f93929184919082896127105a03f13d80156125bb57602081146125c3575f93506125cd565b8193506125cd565b5f51158215171593505b5050509392505050565b6001600160a01b03811681146125eb575f80fd5b50565b80356125f9816125d7565b919050565b5f806040838503121561260f575f80fd5b823561261a816125d7565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261264b575f80fd5b81356001600160401b0381111561266457612664612628565b604051601f8201601f19908116603f011681016001600160401b038111828210171561269257612692612628565b6040528181528382016020018510156126a9575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f80608085870312156126d8575f80fd5b8435935060208501356001600160401b038111156126f4575f80fd5b6127008782880161263c565b93505060408501356001600160401b0381111561271b575f80fd5b6127278782880161263c565b949793965093946060013593505050565b5f60208284031215612748575f80fd5b8135611c41816125d7565b8035600281106125f9575f80fd5b5f805f8060808587031215612774575f80fd5b843561277f816125d7565b93506020850135925060408501356001600160401b038111156127a0575f80fd5b6127ac8782880161263c565b9250506127bb60608601612753565b905092959194509250565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b8215158152604060208201525f611d2e60408301846127c6565b5f806040838503121561281f575f80fd5b50508035926020909101359150565b602081525f611c4160208301846127c6565b5f60208284031215612850575f80fd5b5035919050565b5f8083601f840112612867575f80fd5b5081356001600160401b0381111561287d575f80fd5b602083019150836020828501011115612894575f80fd5b9250929050565b5f805f805f805f805f805f6101408c8e0312156128b6575f80fd5b6128bf8c6125ee565b9a5060208c0135995060408c01356001600160401b038111156128e0575f80fd5b6128ec8e828f01612857565b909a5098506128ff905060608d01612753565b965060808c0135955060a08c0135945060c08c0135935061292260e08d016125ee565b92506129316101008d016125ee565b91506101208c01356001600160401b0381111561294c575f80fd5b6129588e828f0161263c565b9150509295989b509295989b9093969950565b5f805f6060848603121561297d575f80fd5b8335925060208401356001600160401b03811115612999575f80fd5b6129a58682870161263c565b92505060408401356001600160401b038111156129c0575f80fd5b6129cc8682870161263c565b9150509250925092565b5f8151808452602084019350602083015f5b82811015612a0f5781516001600160a01b03168652602095860195909101906001016129e8565b5093949350505050565b602081525f611c4160208301846129d6565b5f8060408385031215612a3c575f80fd5b8235612a47816125d7565b915060208301356001600160401b03811115612a61575f80fd5b612a6d8582860161263c565b9150509250929050565b5f805f805f805f805f806101008b8d031215612a91575f80fd5b8a356001600160401b03811115612aa6575f80fd5b8b01601f81018d13612ab6575f80fd5b80356001600160401b03811115612acb575f80fd5b8d60208260051b8401011115612adf575f80fd5b60209182019b5099508b01359750612af960408c016125ee565b965060608b01356001600160401b03811115612b13575f80fd5b612b1f8d828e01612857565b9097509550612b32905060808c016125ee565b9350612b4060a08c016125ee565b925060c08b01359150612b5560e08c016125ee565b90509295989b9194979a5092959850565b604081525f612b7860408301856129d6565b905060018060a01b03831660208301529392505050565b5f805f805f805f805f805f6101408c8e031215612baa575f80fd5b8b35612bb5816125d7565b9a5060208c0135995060408c01356001600160401b03811115612bd6575f80fd5b612be28e828f01612857565b909a509850612bf5905060608d01612753565b965060808c0135955060a08c0135945060c08c0135935060e08c0135612c1a816125d7565b92506101008c0135612c2b816125d7565b809250505f6101208d01359050809150509295989b509295989b9093969950565b5f8060408385031215612c5d575f80fd5b8235612c68816125d7565b91506020830135612c78816125d7565b809150509250929050565b5f805f60608486031215612c95575f80fd5b8335612ca0816125d7565b92506020840135612cb0816125d7565b91506040840135612cc0816125d7565b809150509250925092565b5f805f60608486031215612cdd575f80fd5b8335612ce8816125d7565b92506020840135612cf8816125d7565b929592945050506040919091013590565b602080825260059082015264475332303360d81b604082015260600190565b60208082526005908201526411d4cc8c0d60da1b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f60018201612d6c57612d6c612d47565b5060010190565b604081525f612d8560408301856127c6565b8281036020840152610cf581856127c6565b5f60208284031215612da7575f80fd5b81516001600160e01b031981168114611c41575f80fd5b60ff8281168282160390811115610c6d57610c6d612d47565b634e487b7160e01b5f52602160045260245ffd5b60028110612e0757634e487b7160e01b5f52602160045260245ffd5b9052565b6001600160a01b038681168252851660208201526040810184905260a0606082018190525f90612e3d908301856127c6565b9050612e4c6080830184612deb565b9695505050505050565b8082028115828204841417610c6d57610c6d612d47565b602080825260059082015264475332303160d81b604082015260600190565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60018060a01b038d1681528b602082015261016060408201525f612edd61016083018c8e612e8c565b612eea606084018c612deb565b608083018a905260a0830189905260c083018890526001600160a01b0387811660e08501528616610100840152828103610120840152612f2a81866127c6565b9050828103610140840152612f3f81856127c6565b9f9e505050505050505050505050505050565b634e487b7160e01b5f52603260045260245ffd5b608080825281018590525f8660a08301825b88811015612fa8578235612f8b816125d7565b6001600160a01b0316825260209283019290910190600101612f78565b50602084019690965250506001600160a01b039283166040820152911660609091015292915050565b81810381811115610c6d57610c6d612d47565b5f60208284031215612ff4575f80fd5b81518015158114611c41575f80fd5b818382375f9101908152919050565b8b81526001600160a01b038b166020820152604081018a9052606081018990526101608101613044608083018a612deb565b60a082019790975260c081019590955260e08501939093526001600160a01b03918216610100850152166101208301526101409091015295945050505050565b5f8161309257613092612d47565b505f190190565b5f826130b357634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610c6d57610c6d612d47565b60018060a01b038d1681528b602082015261016060408201525f6130f461016083018c8e612e8c565b613101606084018c612deb565b608083018a905260a0830189905260c083018890526001600160a01b0387811660e0850152861661010084015282810361012084015261314181866127c6565b91505060018060a01b0383166101408301529d9c5050505050505050505050505056fea264697066735822122072f65bcceb63ee3acb0069e2374c764d8a5e2009eff69744f32e244b6f76c45064736f6c634300081a0033", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000004": "0x0000000000000000000000000000000000000000000000000000000000000001" + } + }, + "0xe59838EB7f251489b50940BD640326215420B936": { + "balance": "0x0", + "code": "0x608060405234801561000f575f80fd5b50600436106100b0575f3560e01c8063230316401161006e57806323031640146101755780636ac2478414610195578063b2494df3146101a8578063bc197c81146101bd578063bd61951d146101df578063f23a6e61146101f2575f80fd5b806223de29146100b457806301ffc9a7146100ce5780630a1028c4146100f6578063150b7a02146101175780631626ba7e1461014f57806320c13b0b14610162575b5f80fd5b6100cc6100c23660046106a9565b5050505050505050565b005b6100e16100dc36600461076b565b610212565b60405190151581526020015b60405180910390f35b610109610104366004610835565b610263565b6040519081526020016100ed565b61013661012536600461086e565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020016100ed565b61013661015d3660046108db565b61026e565b610136610170366004610922565b610328565b610188610183366004610985565b610469565b6040516100ed91906109e9565b6101096101a3366004610985565b610577565b6101b0610591565b6040516100ed91906109fb565b6101366101cb366004610a86565b63bc197c8160e01b98975050505050505050565b6101886101ed366004610b26565b610607565b610136610200366004610b5d565b63f23a6e6160e01b9695505050505050565b5f6001600160e01b03198216630271189760e51b148061024257506001600160e01b03198216630a85bd0160e11b145b8061025d57506001600160e01b031982166301ffc9a760e01b145b92915050565b5f61025d3383610577565b60408051602080820186905282518083039091018152818301928390526320c13b0b60e01b9092525f913391839183916320c13b0b916102b49189908990604401610bd3565b602060405180830381865afa1580156102cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102f39190610c17565b90506001600160e01b031981166320c13b0b60e01b14610313575f61031c565b630b135d3f60e11b5b925050505b9392505050565b5f33816103358286610469565b805160208201208551919250905f036103fa57604051635ae6bd3760e01b8152600481018290526001600160a01b03841690635ae6bd3790602401602060405180830381865afa15801561038b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103af9190610c32565b5f036103f55760405162461bcd60e51b815260206004820152601160248201527012185cda081b9bdd08185c1c1c9bdd9959607a1b604482015260640160405180910390fd5b610457565b60405163934f3a1160e01b81526001600160a01b0384169063934f3a119061042a90849086908a90600401610c49565b5f6040518083038186803b158015610440575f80fd5b505afa158015610452573d5f803e3d5ffd5b505050505b506320c13b0b60e01b95945050505050565b60605f7f60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca5f1b83805190602001206040516020016104b1929190918252602082015260400190565b604051602081830303815290604052805190602001209050601960f81b600160f81b856001600160a01b031663f698da256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561050f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105339190610c32565b6040516001600160f81b0319938416602082015292909116602183015260228201526042810182905260620160405160208183030381529060405291505092915050565b5f6105828383610469565b80519060200120905092915050565b604051636617c22960e11b815260016004820152600a602482015260609033905f90829063cc2f8452906044015f60405180830381865afa1580156105d8573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105ff9190810190610c8d565b509392505050565b606060405163b4faba0960e01b81526004360360048083013760205f36835f335af1505060203d036040519150808201604052806020833e505f5161032157805160208201fd5b6001600160a01b0381168114610662575f80fd5b50565b5f8083601f840112610675575f80fd5b5081356001600160401b0381111561068b575f80fd5b6020830191508360208285010111156106a2575f80fd5b9250929050565b5f805f805f805f8060c0898b0312156106c0575f80fd5b88356106cb8161064e565b975060208901356106db8161064e565b965060408901356106eb8161064e565b95506060890135945060808901356001600160401b0381111561070c575f80fd5b6107188b828c01610665565b90955093505060a08901356001600160401b03811115610736575f80fd5b6107428b828c01610665565b999c989b5096995094979396929594505050565b6001600160e01b031981168114610662575f80fd5b5f6020828403121561077b575f80fd5b813561032181610756565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156107c2576107c2610786565b604052919050565b5f82601f8301126107d9575f80fd5b81356001600160401b038111156107f2576107f2610786565b610805601f8201601f191660200161079a565b818152846020838601011115610819575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215610845575f80fd5b81356001600160401b0381111561085a575f80fd5b610866848285016107ca565b949350505050565b5f805f805f60808688031215610882575f80fd5b853561088d8161064e565b9450602086013561089d8161064e565b93506040860135925060608601356001600160401b038111156108be575f80fd5b6108ca88828901610665565b969995985093965092949392505050565b5f805f604084860312156108ed575f80fd5b8335925060208401356001600160401b03811115610909575f80fd5b61091586828701610665565b9497909650939450505050565b5f8060408385031215610933575f80fd5b82356001600160401b03811115610948575f80fd5b610954858286016107ca565b92505060208301356001600160401b0381111561096f575f80fd5b61097b858286016107ca565b9150509250929050565b5f8060408385031215610996575f80fd5b82356109a18161064e565b915060208301356001600160401b0381111561096f575f80fd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61032160208301846109bb565b602080825282518282018190525f918401906040840190835b81811015610a3b5783516001600160a01b0316835260209384019390920191600101610a14565b509095945050505050565b5f8083601f840112610a56575f80fd5b5081356001600160401b03811115610a6c575f80fd5b6020830191508360208260051b85010111156106a2575f80fd5b5f805f805f805f8060a0898b031215610a9d575f80fd5b8835610aa88161064e565b97506020890135610ab88161064e565b965060408901356001600160401b03811115610ad2575f80fd5b610ade8b828c01610a46565b90975095505060608901356001600160401b03811115610afc575f80fd5b610b088b828c01610a46565b90955093505060808901356001600160401b03811115610736575f80fd5b5f805f60408486031215610b38575f80fd5b8335610b438161064e565b925060208401356001600160401b03811115610909575f80fd5b5f805f805f8060a08789031215610b72575f80fd5b8635610b7d8161064e565b95506020870135610b8d8161064e565b9450604087013593506060870135925060808701356001600160401b03811115610bb5575f80fd5b610bc189828a01610665565b979a9699509497509295939492505050565b604081525f610be560408301866109bb565b8281036020840152838152838560208301375f602085830101526020601f19601f860116820101915050949350505050565b5f60208284031215610c27575f80fd5b815161032181610756565b5f60208284031215610c42575f80fd5b5051919050565b838152606060208201525f610c6160608301856109bb565b8281036040840152610c7381856109bb565b9695505050505050565b8051610c888161064e565b919050565b5f8060408385031215610c9e575f80fd5b82516001600160401b03811115610cb3575f80fd5b8301601f81018513610cc3575f80fd5b80516001600160401b03811115610cdc57610cdc610786565b8060051b610cec6020820161079a565b91825260208184018101929081019088841115610d07575f80fd5b6020850194505b83851015610d355784519250610d238361064e565b82825260209485019490910190610d0e565b8096505050505050610d4960208401610c7d565b9050925092905056fea26469706673582212207234b4eb35a19350f1ef1ac1dcfde24186fe0f559f21323992f580424784d70564736f6c634300081a0033" + }, + "0x0000000000000000007369676e65742d77757364": { + "balance": "0x0", + "code": "0x6060604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b9578063095ea7b31461014757806318160ddd146101a157806323b872dd146101ca5780632e1a7d4d14610243578063313ce5671461026657806370a082311461029557806395d89b41146102e2578063a9059cbb14610370578063d0e30db0146103ca578063dd62ed3e146103d4575b6100b7610440565b005b34156100c457600080fd5b6100cc6104dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561010c5780820151818401526020810190506100f1565b50505050905090810190601f1680156101395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015257600080fd5b610187600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061057b565b604051808215151515815260200191505060405180910390f35b34156101ac57600080fd5b6101b461066d565b6040518082815260200191505060405180910390f35b34156101d557600080fd5b610229600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061068c565b604051808215151515815260200191505060405180910390f35b341561024e57600080fd5b61026460048080359060200190919050506109d9565b005b341561027157600080fd5b610279610b05565b604051808260ff1660ff16815260200191505060405180910390f35b34156102a057600080fd5b6102cc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b18565b6040518082815260200191505060405180910390f35b34156102ed57600080fd5b6102f5610b30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561033557808201518184015260208101905061031a565b50505050905090810190601f1680156103625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561037b57600080fd5b6103b0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610bce565b604051808215151515815260200191505060405180910390f35b6103d2610440565b005b34156103df57600080fd5b61042a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610be3565b6040518082815260200191505060405180910390f35b34600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a2565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105735780601f1061054857610100808354040283529160200191610573565b820191906000526020600020905b81548152906001019060200180831161055657829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156106dc57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156107b457507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b156108cf5781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561084457600080fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610a2757600080fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610ab457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040518082815260200191505060405180910390a250565b600260009054906101000a900460ff1681565b60036020528060005260406000206000915090505481565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bc65780601f10610b9b57610100808354040283529160200191610bc6565b820191906000526020600020905b815481529060010190602001808311610ba957829003601f168201915b505050505081565b6000610bdb33848461068c565b905092915050565b60046020528160005260406000206020528060005260406000206000915091505054815600a165627a7a72305820deb4c2ccab3c2fdca32ab3f46728389c2fe2c165d5fafa07661e4e004f6c344a0029", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "0x5772617070656420555344000000000000000000000000000000000000000016", + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x5755534400000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000000000000000000000000000000000000000000012" + } + }, + "0x4e59b44847b379578588920cA78FbF26c0B4956C": { + "balance": "0x0", + "code": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3" + } + }, + "baseFeePerGas": "0x3b9aca00", + "excessBlobGas": null, + "blobGasUsed": null, + "number": null +} From 69d540d11ba1f261865ff1f4976c6384e7457d50 Mon Sep 17 00:00:00 2001 From: Anna Carroll Date: Wed, 5 Nov 2025 11:43:11 -0500 Subject: [PATCH 2/2] update contract addresses & deploy height --- crates/genesis/src/mainnet.genesis.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/crates/genesis/src/mainnet.genesis.json b/crates/genesis/src/mainnet.genesis.json index 9194f5b..c269bb5 100644 --- a/crates/genesis/src/mainnet.genesis.json +++ b/crates/genesis/src/mainnet.genesis.json @@ -29,11 +29,11 @@ "signetConstants": { "host": { "chainId": 1, - "deployHeight": "TODO", - "zenith": "0xf17E98baF73F7C78a42D73DF4064de5B7A20EcA6", - "orders": "0x0A4f505364De0Aa46c66b15aBae44eBa12ab0380", - "passage": "0x12585352AA1057443D6163B539EfD4487f023182", - "transactor": "0x3903279B59D3F5194053dA8d1f0C7081C8892Ce4", + "deployHeight": "23734244", + "zenith": "0xBCe84D45d7be8859bcBd838d4a7b3448B55E6869", + "orders": "0x96f44ddc3Bc8892371305531F1a6d8ca2331fE6C", + "passage": "0x02a64d6e2c30d2B07ddBD177b24D9D0f6439CcbD", + "transactor": "0xC4388A6f4917B8D392B19b43F9c46FEC1B890f45", "tokens": { "usds": [ {