0 txs
0 calls
constructor
constructor()
functions
implementation
viewfunction implementation() view returns (address)
predictAddress
viewfunction predictAddress(bytes32 salt) view returns (address)
summon
nonpayablefunction summon(bytes32 salt, string name, string symbol) returns (address)
events
ShardwalletCreation
event ShardwalletCreation(address shardwallet, address owner)
errors
No errors.
creation bytecode
0x60a060405234801561001057600080fd5b5060405161001d9061004b565b604051809103906000f080158015610039573d6000803e3d6000fd5b506001600160a01b0316608052610058565b6149b58061061b83390190565b60805161059c61007f6000396000818160480152818160be0152610181015261059c6000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80635c60da1b146100465780639c76b65414610091578063d9ce6884146100a4575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61006861009f3660046103f2565b6100b7565b6100686100b2366004610454565b6100e9565b60006100e37f000000000000000000000000000000000000000000000000000000000000000083610291565b92915050565b60003360601b6bffffffffffffffffffffffff1916866bffffffffffffffffffffffff19161461017a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f536861726477616c6c6574466163746f72793a20756e617574686f72697a656460448201526064015b60405180910390fd5b60006101a67f000000000000000000000000000000000000000000000000000000000000000088610314565b6040517f90657147000000000000000000000000000000000000000000000000000000008152909150819073ffffffffffffffffffffffffffffffffffffffff8216906390657147906102059033908b908b908b908b90600401610517565b600060405180830381600087803b15801561021f57600080fd5b505af1158015610233573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff851681523360208201527fc18510dd0bb53f044b032fe0380f6c21414b6682da94de1a7b673a362a631ab3935001905060405180910390a1979650505050505050565b600061030d8383306040517f3d602d80600a3d3981f3363d3d373d3d3d363d730000000000000000000000008152606093841b60148201527f5af43d82803e903d91602b57fd5bf3ff000000000000000000000000000000006028820152921b6038830152604c8201526037808220606c830152605591012090565b9392505050565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528360601b60148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152826037826000f591505073ffffffffffffffffffffffffffffffffffffffff81166100e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401610171565b60006020828403121561040457600080fd5b5035919050565b60008083601f84011261041d57600080fd5b50813567ffffffffffffffff81111561043557600080fd5b60208301915083602082850101111561044d57600080fd5b9250929050565b60008060008060006060868803121561046c57600080fd5b85359450602086013567ffffffffffffffff8082111561048b57600080fd5b61049789838a0161040b565b909650945060408801359150808211156104b057600080fd5b506104bd8882890161040b565b969995985093965092949392505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff861681526060602082015260006105476060830186886104ce565b828103604084015261055a8185876104ce565b9897505050505050505056fea2646970667358221220ec89f2326eabd5b97af9f68179f22b95f397fd3d8d3bb37d57284001be580ca964736f6c6343000809003360806040523480156200001157600080fd5b5060408051602080820180845260008084528451928301909452838252825192939192620000419291906200021f565b508051620000579060019060208401906200021f565b505050620000746200006e6200008460201b60201c565b62000088565b6200007e620000da565b62000302565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b620000e660ff620000e9565b50565b600654600090600160a81b900460ff161562000186578160ff16600114801562000126575062000124306200021060201b6200209c1760201c565b155b6200017e5760405162461bcd60e51b815260206004820152602e60248201526000805160206200499583398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b506000919050565b60065460ff808416600160a01b9092041610620001ec5760405162461bcd60e51b815260206004820152602e60248201526000805160206200499583398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162000175565b506006805460ff909216600160a01b0260ff60a01b19909216919091179055600190565b6001600160a01b03163b151590565b8280546200022d90620002c5565b90600052602060002090601f0160209004810192826200025157600085556200029c565b82601f106200026c57805160ff19168380011785556200029c565b828001600101855582156200029c579182015b828111156200029c5782518255916020019190600101906200027f565b50620002aa929150620002ae565b5090565b5b80821115620002aa5760008155600101620002af565b600181811c90821680620002da57607f821691505b60208210811415620002fc57634e487b7160e01b600052602260045260246000fd5b50919050565b61468380620003126000396000f3fe60806040526004361061021d5760003560e01c80636352211e1161011d578063c620c3fb116100b0578063de62d8421161007f578063ef981c9311610064578063ef981c931461075e578063f2fde38b1461077e578063f85cfc511461079e57600080fd5b8063de62d842146106cf578063e985e9c51461070857600080fd5b8063c620c3fb14610629578063c87b56dd14610649578063db03810214610669578063de4e61c31461068957600080fd5b806390657147116100ec57806390657147146105b457806395d89b41146105d4578063a22cb465146105e9578063b88d4fde1461060957600080fd5b80636352211e1461053457806370a0823114610554578063715018a6146105745780638da5cb5b1461058957600080fd5b806323b872dd116101b05780632f745c591161017f57806342842e0e1161016457806342842e0e146104c95780634dc2d4b4146104e95780634f6ccce71461051457600080fd5b80632f745c591461048957806332902aef146104a957600080fd5b806323b872dd146103d957806323cdb5aa146103f9578063242a00871461043c57806329c211761461046957600080fd5b8063101b166c116101ec578063101b166c146102e757806315fd06911461037657806318160ddd146103a45780631a20f1c2146103b957600080fd5b806301ffc9a71461022957806306fdde031461025e578063081812fc14610280578063095ea7b3146102c557600080fd5b3661022457005b600080fd5b34801561023557600080fd5b50610249610244366004613a3d565b6107d5565b60405190151581526020015b60405180910390f35b34801561026a57600080fd5b506102736107e6565b6040516102559190613ad0565b34801561028c57600080fd5b506102a061029b366004613ae3565b610878565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610255565b3480156102d157600080fd5b506102e56102e0366004613b1e565b610957565b005b3480156102f357600080fd5b50610361610302366004613ae3565b6000908152600d60209081526040918290208251606081018452815462ffffff81168252630100000090047cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692810183905260019091015492018290529091565b60408051928352602083019190915201610255565b34801561038257600080fd5b50610396610391366004613cbc565b610ae4565b604051908152602001610255565b3480156103b057600080fd5b50600a54610396565b3480156103c557600080fd5b506103966103d4366004613d03565b610b3b565b3480156103e557600080fd5b506102e56103f4366004613daf565b610cd8565b34801561040557600080fd5b50610396610414366004613df0565b73ffffffffffffffffffffffffffffffffffffffff1660009081526010602052604090205490565b34801561044857600080fd5b5061045c610457366004613ae3565b610d79565b6040516102559190613e48565b34801561047557600080fd5b50610396610484366004613eb6565b610e85565b34801561049557600080fd5b506103966104a4366004613b1e565b611341565b3480156104b557600080fd5b506103966104c4366004613f10565b611410565b3480156104d557600080fd5b506102e56104e4366004613daf565b6116da565b3480156104f557600080fd5b5060075473ffffffffffffffffffffffffffffffffffffffff166102a0565b34801561052057600080fd5b5061039661052f366004613ae3565b6116f5565b34801561054057600080fd5b506102a061054f366004613ae3565b6117b3565b34801561056057600080fd5b5061039661056f366004613df0565b611865565b34801561058057600080fd5b506102e5611933565b34801561059557600080fd5b5060065473ffffffffffffffffffffffffffffffffffffffff166102a0565b3480156105c057600080fd5b506102e56105cf366004613f82565b6119c0565b3480156105e057600080fd5b50610273611b57565b3480156105f557600080fd5b506102e5610604366004614013565b611b66565b34801561061557600080fd5b506102e5610624366004614087565b611b75565b34801561063557600080fd5b506102e5610644366004613df0565b611c1d565b34801561065557600080fd5b50610273610664366004613ae3565b611ce5565b34801561067557600080fd5b5061045c610684366004614176565b611cf0565b34801561069557600080fd5b506106bb6106a4366004613ae3565b6000908152600d602052604090205462ffffff1690565b60405162ffffff9091168152602001610255565b3480156106db57600080fd5b506106ef6106ea3660046141e6565b611dae565b6040805192835262ffffff909116602083015201610255565b34801561071457600080fd5b5061024961072336600461421b565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561076a57600080fd5b5061045c610779366004614249565b611ef7565b34801561078a57600080fd5b506102e5610799366004613df0565b611f0f565b3480156107aa57600080fd5b506107be6107b9366004613f10565b61203f565b604080519215158352602083019190915201610255565b60006107e0826120b8565b92915050565b6060601180546107f5906142a7565b80601f0160208091040260200160405190810160405280929190818152602001828054610821906142a7565b801561086e5780601f106108435761010080835404028352916020019161086e565b820191906000526020600020905b81548152906001019060200180831161085157829003601f168201915b5050505050905090565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff1661092e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6000610962826117b3565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152608401610925565b3373ffffffffffffffffffffffffffffffffffffffff82161480610a495750610a498133610723565b610ad5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610925565b610adf838361210e565b505050565b604080516001808252818301909252600091829190602080830190803683370190505090508381600081518110610b1d57610b1d6142fb565b602002602001018181525050610b338184610e85565b949350505050565b815160009081805b82811015610b8757858181518110610b5d57610b5d6142fb565b602002602001015162ffffff1682610b759190614359565b9150610b8081614371565b9050610b43565b506000858581518110610b9c57610b9c6142fb565b602002602001015162ffffff1687610bb491906143aa565b90506000610bc283836143e7565b90506000610bd084836143aa565b610bda9084614422565b905080610bed57509350610cd192505050565b806000805b87811015610ca35789811415610c0757610c93565b60008b8281518110610c1b57610c1b6142fb565b602002602001015162ffffff168d610c3391906143aa565b90506000610c4189836143e7565b90506000610c4f8a836143aa565b610c599084614422565b9050610c658187614359565b955086811180610c7e57508681148015610c7e57508c84115b15610c8f57610c8c85614371565b94505b5050505b610c9c81614371565b9050610bf2565b506000610cb087846143e7565b905080821015610cc657610cc385614371565b94505b509296505050505050505b9392505050565b610ce233826121ae565b610d6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610925565b610adf83838361231d565b6000818152600d60209081526040808320600101548352600e8252808320805482518185028101850190935280835260609493830182828015610ddb57602002820191906000526020600020905b815481526020019060010190808311610dc7575b505050505090506000815167ffffffffffffffff811115610dfe57610dfe613b4a565b604051908082528060200260200182016040528015610e27578160200160208202803683370190505b50905060005b8151811015610e7d57828181518110610e4857610e486142fb565b6020026020010151828281518110610e6257610e626142fb565b6020908102919091010152610e7681614371565b9050610e2d565b509392505050565b6000825160001415610ef3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536861726477616c6c65743a206e6f20706172656e74730000000000000000006044820152606401610925565b81517cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1015610f1e57600080fd5b600c548251610f2d9082614359565b600c556000818152600e602090815260409091208551610f4f9287019061391d565b506000805b8551811015611026576000868281518110610f7157610f716142fb565b60200260200101519050610f8533826121ae565b610feb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f536861726477616c6c65743a20756e617574686f72697a6564000000000000006044820152606401610925565b610ff48161258f565b6000818152600d60205260409020546110129062ffffff1684614439565b9250508061101f90614371565b9050610f54565b506000845167ffffffffffffffff81111561104357611043613b4a565b60405190808252806020026020018201604052801561106c578160200160208202803683370190505b5090508260005b865181101561123c576000878281518110611090576110906142fb565b60200260200101516000015190508062ffffff166000141561110e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536861726477616c6c65743a206e756c6c2073686172650000000000000000006044820152606401610925565b8462ffffff168162ffffff161115611182576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f536861726477616c6c65743a20736861726520746f6f206c61726765000000006044820152606401610925565b61118c8186614460565b9450808483815181106111a1576111a16142fb565b62ffffff9283166020918202929092018101919091526040805160608101825284841681528b517cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9081168285019081528284018c815260008a8152600d909652939094209151935116630100000002929093169190911782555160019091015561122883614371565b9250508061123590614371565b9050611073565b5062ffffff8316156112aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f536861726477616c6c65743a20736861726520746f6f20736d616c6c000000006044820152606401610925565b7fe3ac79fef3b280ad3daaef2cc74e5bdf501b73b95afb1fdc9eee0a4bf56f8d1e8785846040516112dd93929190614484565b60405180910390a1508260005b86518110156113355761131a878281518110611308576113086142fb565b60200260200101516020015183612668565b61132382614371565b915061132e81614371565b90506112ea565b50929695505050505050565b600061134c83611865565b82106113da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e64730000000000000000000000000000000000000000006064820152608401610925565b5073ffffffffffffffffffffffffffffffffffffffff919091166000908152600860209081526040808320938352929052205490565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600f6020908152604080832085845290915281205480156114585761145081612682565b9150506107e0565b50826001141561146a575060006107e0565b6000838152600d60209081526040918290208251606081018452815462ffffff811680835263010000009091047cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1693820193909352600190910154928101929092526114d85760009150506107e0565b604081015160208201517cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600061150d8388614422565b6000848152600e602090815260408083208054825181850281018501909352808352949550929390929183018282801561156657602002820191906000526020600020905b815481526020019060010190808311611552575b505050505090506000805b82518110156115b95761159d83828151811061158f5761158f6142fb565b60200260200101518a611410565b6115a79083614359565b91506115b281614371565b9050611571565b5060008467ffffffffffffffff8111156115d5576115d5613b4a565b6040519080825280602002602001820160405280156115fe578160200160208202803683370190505b50905060005b8581101561168157600080611619838a614359565b90508c81141561162c5789519150611643565b6000818152600d602052604090205462ffffff1691505b81848481518110611656576116566142fb565b602002602001019062ffffff16908162ffffff168152505050508061167a90614371565b9050611604565b50600061168f838387610b3b565b905061169a8161268f565b73ffffffffffffffffffffffffffffffffffffffff8b166000908152600f602090815260408083208f845290915290205597505050505050505092915050565b610adf83838360405180602001604052806000815250611b75565b6000611700600a5490565b821061178e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e647300000000000000000000000000000000000000006064820152608401610925565b600a82815481106117a1576117a16142fb565b90600052602060002001549050919050565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff16806107e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e00000000000000000000000000000000000000000000006064820152608401610925565b600073ffffffffffffffffffffffffffffffffffffffff821661190a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610925565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b60065473ffffffffffffffffffffffffffffffffffffffff1633146119b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610925565b6119be600061269c565b565b60006119cc6001612713565b90508015611a1557600680547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b611a1e8661269c565b611a2a60118686613968565b50611a3760128484613968565b506002600c5560408051606081018252620f42408152600160208083018281529383018281526000839052600d909152915192517cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663010000000262ffffff93909316929092177ffd54ff1ed53f34a900b24c5ba64f85761163b5d82d98a47b9bd80e45466993c555517ffd54ff1ed53f34a900b24c5ba64f85761163b5d82d98a47b9bd80e45466993c655611aec908790612668565b8015611b4f57600680547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b6060601280546107f5906142a7565b611b713383836128e4565b5050565b611b7f33836121ae565b611c0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610925565b611c1784848484612a12565b50505050565b60065473ffffffffffffffffffffffffffffffffffffffff163314611c9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610925565b600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60606107e082612ab5565b606060008467ffffffffffffffff811115611d0d57611d0d613b4a565b604051908082528060200260200182016040528015611d36578160200160208202803683370190505b50905060005b85811015611da357611d7688888884818110611d5a57611d5a6142fb565b9050602002016020810190611d6f9190613df0565b8787612c37565b828281518110611d8857611d886142fb565b6020908102919091010152611d9c81614371565b9050611d3c565b509695505050505050565b6000806000805b8451811015611e1057600d6000868381518110611dd457611dd46142fb565b602090810291909101810151825281019190915260400160002054611dfe9062ffffff1683614359565b9150611e0981614371565b9050611db5565b506040805160018082528183019092529192508291600091816020015b6040805180820190915260008082526020820152815260200190600190039081611e2d5790505090503381600081518110611e6a57611e6a6142fb565b60200260200101516020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508281600081518110611ebc57611ebc6142fb565b602090810291909101015162ffffff9091169052611eda8582610e85565b93508262ffffff168214611ef057611ef06144e5565b5050915091565b6060611f068585853386611cf0565b95945050505050565b60065473ffffffffffffffffffffffffffffffffffffffff163314611f90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610925565b73ffffffffffffffffffffffffffffffffffffffff8116612033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610925565b61203c8161269c565b50565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600f60209081526040808320858452909152812054819080612084576000809250925050612095565b600161208f82612682565b92509250505b9250929050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780e9d630000000000000000000000000000000000000000000000000000000014806107e057506107e082613105565b600081815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091558190612168826117b3565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff1661225f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e00000000000000000000000000000000000000006064820152608401610925565b600061226a836117b3565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806122d8575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209388168352929052205460ff165b80610b3357508373ffffffffffffffffffffffffffffffffffffffff166122fe84610878565b73ffffffffffffffffffffffffffffffffffffffff1614949350505050565b8273ffffffffffffffffffffffffffffffffffffffff1661233d826117b3565b73ffffffffffffffffffffffffffffffffffffffff16146123e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610925565b73ffffffffffffffffffffffffffffffffffffffff8216612482576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610925565b61248d8383836131e8565b61249860008261210e565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604081208054600192906124ce908490614422565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000908152600360205260408120805460019290612509908490614359565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600061259a826117b3565b90506125a8816000846131e8565b6125b360008361210e565b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604081208054600192906125e9908490614422565b909155505060008281526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555183919073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b611b718282604051806020016040528060008152506131f3565b60006107e0600183614422565b60006107e0826001614359565b6006805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6006546000907501000000000000000000000000000000000000000000900460ff16156127e0578160ff16600114801561274c5750303b155b6127d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610925565b506000919050565b60065460ff80841674010000000000000000000000000000000000000000909204161061288f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610925565b506006805460ff90921674010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055600190565b919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561297a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610925565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612a1d84848461231d565b612a2984848484613296565b611c17576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610925565b60008181526002602052604090205460609073ffffffffffffffffffffffffffffffffffffffff16612b43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610925565b60075473ffffffffffffffffffffffffffffffffffffffff1680612b77575050604080516020810190915260008152919050565b6040517fc87b56dd0000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff82169063c87b56dd9060240160006040518083038186803b158015612bdd57600080fd5b505afa158015612bf1573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610cd19190810190614514565b6000620f424062ffffff83161115612cab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f536861726477616c6c65743a206672616374696f6e20746f6f206c61726765006044820152606401610925565b612cb533866121ae565b612d1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f536861726477616c6c65743a20756e617574686f72697a6564000000000000006044820152606401610925565b6000858152600d602052604081205462ffffff169073ffffffffffffffffffffffffffffffffffffffff8616612d52575047612df2565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8716906370a082319060240160206040518083038186803b158015612db757600080fd5b505afa158015612dcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612def9190614582565b90505b73ffffffffffffffffffffffffffffffffffffffff861660009081526010602052604081205490612e238284614359565b90506000620f4240612e3a62ffffff8716846143aa565b612e4491906143e7565b90506000612e528b8b611410565b9050600081831115612e9457612e688284614422565b9050620f4240612e7d62ffffff8b16836143aa565b612e8791906143e7565b905085811115612e945750845b8a73ffffffffffffffffffffffffffffffffffffffff168c7f3ed1528b0fdc7c5207c1bf935e34a667e13656b9ed165260c522be0bc544f30383604051612edd91815260200190565b60405180910390a380612efa576000975050505050505050610b33565b6000612f068284614359565b9050612f118161268f565b600f60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008f8152602001908152602001600020819055508186612f719190614359565b73ffffffffffffffffffffffffffffffffffffffff8d16600081815260106020526040902091909155612fe75760405173ffffffffffffffffffffffffffffffffffffffff8c169083156108fc029084906000818181858888f19350505050158015612fe1573d6000803e3d6000fd5b506130f5565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c81166004830152602482018490528d169063a9059cbb90604401602060405180830381600087803b15801561305757600080fd5b505af115801561306b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061308f919061459b565b6130f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f536861726477616c6c65743a207472616e73666572206661696c6564000000006044820152606401610925565b509b9a5050505050505050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000148061319857507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b806107e057507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146107e0565b610adf838383613492565b6131fd8383613598565b61320a6000848484613296565b610adf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610925565b600073ffffffffffffffffffffffffffffffffffffffff84163b1561348a576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061330d9033908990889088906004016145b8565b602060405180830381600087803b15801561332757600080fd5b505af1925050508015613375575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261337291810190614601565b60015b61343f573d8080156133a3576040519150601f19603f3d011682016040523d82523d6000602084013e6133a8565b606091505b508051613437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610925565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610b33565b506001610b33565b73ffffffffffffffffffffffffffffffffffffffff83166134fa576134f581600a80546000838152600b60205260408120829055600182018355919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80155565b613537565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614613537576135378382613766565b73ffffffffffffffffffffffffffffffffffffffff821661355b57610adf8161381d565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610adf57610adf82826138cc565b73ffffffffffffffffffffffffffffffffffffffff8216613615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610925565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16156136a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610925565b6136ad600083836131e8565b73ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604081208054600192906136e3908490614359565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000600161377384611865565b61377d9190614422565b6000838152600960205260409020549091508082146137dd5773ffffffffffffffffffffffffffffffffffffffff841660009081526008602090815260408083208584528252808320548484528184208190558352600990915290208190555b50600091825260096020908152604080842084905573ffffffffffffffffffffffffffffffffffffffff9094168352600881528383209183525290812055565b600a5460009061382f90600190614422565b6000838152600b6020526040812054600a8054939450909284908110613857576138576142fb565b9060005260206000200154905080600a8381548110613878576138786142fb565b6000918252602080832090910192909255828152600b9091526040808220849055858252812055600a8054806138b0576138b061461e565b6001900381819060005260206000200160009055905550505050565b60006138d783611865565b73ffffffffffffffffffffffffffffffffffffffff9093166000908152600860209081526040808320868452825280832085905593825260099052919091209190915550565b828054828255906000526020600020908101928215613958579160200282015b8281111561395857825182559160200191906001019061393d565b506139649291506139fa565b5090565b828054613974906142a7565b90600052602060002090601f0160209004810192826139965760008555613958565b82601f106139cd578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555613958565b82800160010185558215613958579182015b828111156139585782358255916020019190600101906139df565b5b8082111561396457600081556001016139fb565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461203c57600080fd5b600060208284031215613a4f57600080fd5b8135610cd181613a0f565b60005b83811015613a75578181015183820152602001613a5d565b83811115611c175750506000910152565b60008151808452613a9e816020860160208601613a5a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610cd16020830184613a86565b600060208284031215613af557600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461203c57600080fd5b60008060408385031215613b3157600080fd5b8235613b3c81613afc565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715613b9c57613b9c613b4a565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613be957613be9613b4a565b604052919050565b600067ffffffffffffffff821115613c0b57613c0b613b4a565b5060051b60200190565b803562ffffff811681146128df57600080fd5b600082601f830112613c3957600080fd5b81356020613c4e613c4983613bf1565b613ba2565b82815260069290921b84018101918181019086841115613c6d57600080fd5b8286015b84811015611da35760408189031215613c8a5760008081fd5b613c92613b79565b613c9b82613c15565b815284820135613caa81613afc565b81860152835291830191604001613c71565b60008060408385031215613ccf57600080fd5b82359150602083013567ffffffffffffffff811115613ced57600080fd5b613cf985828601613c28565b9150509250929050565b600080600060608486031215613d1857600080fd5b8335925060208085013567ffffffffffffffff811115613d3757600080fd5b8501601f81018713613d4857600080fd5b8035613d56613c4982613bf1565b81815260059190911b82018301908381019089831115613d7557600080fd5b928401925b82841015613d9a57613d8b84613c15565b82529284019290840190613d7a565b96999698505050506040949094013593505050565b600080600060608486031215613dc457600080fd5b8335613dcf81613afc565b92506020840135613ddf81613afc565b929592945050506040919091013590565b600060208284031215613e0257600080fd5b8135610cd181613afc565b600081518084526020808501945080840160005b83811015613e3d57815187529582019590820190600101613e21565b509495945050505050565b602081526000610cd16020830184613e0d565b600082601f830112613e6c57600080fd5b81356020613e7c613c4983613bf1565b82815260059290921b84018101918181019086841115613e9b57600080fd5b8286015b84811015611da35780358352918301918301613e9f565b60008060408385031215613ec957600080fd5b823567ffffffffffffffff80821115613ee157600080fd5b613eed86838701613e5b565b93506020850135915080821115613f0357600080fd5b50613cf985828601613c28565b60008060408385031215613f2357600080fd5b823591506020830135613f3581613afc565b809150509250929050565b60008083601f840112613f5257600080fd5b50813567ffffffffffffffff811115613f6a57600080fd5b60208301915083602082850101111561209557600080fd5b600080600080600060608688031215613f9a57600080fd5b8535613fa581613afc565b9450602086013567ffffffffffffffff80821115613fc257600080fd5b613fce89838a01613f40565b90965094506040880135915080821115613fe757600080fd5b50613ff488828901613f40565b969995985093965092949392505050565b801515811461203c57600080fd5b6000806040838503121561402657600080fd5b823561403181613afc565b91506020830135613f3581614005565b600067ffffffffffffffff82111561405b5761405b613b4a565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b6000806000806080858703121561409d57600080fd5b84356140a881613afc565b935060208501356140b881613afc565b925060408501359150606085013567ffffffffffffffff8111156140db57600080fd5b8501601f810187136140ec57600080fd5b80356140fa613c4982614041565b81815288602083850101111561410f57600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b60008083601f84011261414357600080fd5b50813567ffffffffffffffff81111561415b57600080fd5b6020830191508360208260051b850101111561209557600080fd5b60008060008060006080868803121561418e57600080fd5b85359450602086013567ffffffffffffffff8111156141ac57600080fd5b6141b888828901614131565b90955093505060408601356141cc81613afc565b91506141da60608701613c15565b90509295509295909350565b6000602082840312156141f857600080fd5b813567ffffffffffffffff81111561420f57600080fd5b610b3384828501613e5b565b6000806040838503121561422e57600080fd5b823561423981613afc565b91506020830135613f3581613afc565b6000806000806060858703121561425f57600080fd5b84359350602085013567ffffffffffffffff81111561427d57600080fd5b61428987828801614131565b909450925061429c905060408601613c15565b905092959194509250565b600181811c908216806142bb57607f821691505b602082108114156142f5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561436c5761436c61432a565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156143a3576143a361432a565b5060010190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156143e2576143e261432a565b500290565b60008261441d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000828210156144345761443461432a565b500390565b600062ffffff8083168185168083038211156144575761445761432a565b01949350505050565b600062ffffff8381169083168181101561447c5761447c61432a565b039392505050565b6060815260006144976060830186613e0d565b6020838101869052838203604085015284518083528582019282019060005b818110156144d757845162ffffff16835293830193918301916001016144b6565b509098975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006020828403121561452657600080fd5b815167ffffffffffffffff81111561453d57600080fd5b8201601f8101841361454e57600080fd5b805161455c613c4982614041565b81815285602083850101111561457157600080fd5b611f06826020830160208601613a5a565b60006020828403121561459457600080fd5b5051919050565b6000602082840312156145ad57600080fd5b8151610cd181614005565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526145f76080830184613a86565b9695505050505050565b60006020828403121561461357600080fd5b8151610cd181613a0f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212202f2b6d9a2036562e42faa4973393e7f2f184542646c59e87d0266bdf39e8187d64736f6c63430008090033496e697469616c697a61626c653a20636f6e747261637420697320616c726561