5.2k txs
231.8k calls
constructor
constructor()
functions
accountIndex
viewfunction accountIndex(address) view returns (uint256)
accountVersionBlocked
viewfunction accountVersionBlocked(uint256) view returns (bool)
allAccounts
viewfunction allAccounts(uint256) view returns (address)
allAccountsLength
viewfunction allAccountsLength() view returns (uint256 numberOfAccounts)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
baseURI
viewfunction baseURI() view returns (string)
createPaused
viewfunction createPaused() view returns (bool)
getApproved
viewfunction getApproved(uint256) view returns (address)
guardian
viewfunction guardian() view returns (address)
isAccount
viewfunction isAccount(address account) view returns (bool)
isApprovedForAll
viewfunction isApprovedForAll(address, address) view returns (bool)
latestAccountVersion
viewfunction latestAccountVersion() view returns (uint88)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 id) view returns (address owner)
ownerOfAccount
viewfunction ownerOfAccount(address account) view returns (address owner_)
pauseTimestamp
viewfunction pauseTimestamp() view returns (uint96)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string uri)
unpause
purefunction unpause() pure
versionInformation
viewfunction versionInformation(uint256) view returns (address registry, address implementation, bytes data)
versionRoot
viewfunction versionRoot() view returns (bytes32)
approve
nonpayablefunction approve(address spender, uint256 id)
blockAccountVersion
nonpayablefunction blockAccountVersion(uint256 version)
changeGuardian
nonpayablefunction changeGuardian(address guardian_)
createAccount
nonpayablefunction createAccount(uint32 salt, uint256 accountVersion, address creditor) returns (address account)
pause
nonpayablefunction pause()
safeTransferAccount
nonpayablefunction safeTransferAccount(address to)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, address account)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 id, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 id)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setBaseURI
nonpayablefunction setBaseURI(string newBaseURI)
setNewAccountInfo
nonpayablefunction setNewAccountInfo(address registry, address implementation, bytes32 versionRoot_, bytes data)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 id)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause(bool createPaused_)
upgradeAccountVersion
nonpayablefunction upgradeAccountVersion(address account, uint256 version, bytes32[] proofs)
events
AccountUpgraded
event AccountUpgraded(address indexed accountAddress, uint88 indexed newVersion)
AccountVersionAdded
event AccountVersionAdded(uint88 indexed version, address indexed registry, address indexed implementation)
AccountVersionBlocked
event AccountVersionBlocked(uint88 version)
Approval
event Approval(address indexed owner, address indexed spender, uint256 indexed id)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
GuardianChanged
event GuardianChanged(address indexed user, address indexed newGuardian)
OwnershipTransferred
event OwnershipTransferred(address indexed user, address indexed newOwner)
PauseFlagsUpdated
event PauseFlagsUpdated(bool createPauseUpdate)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed id)
errors
AccountVersionBlocked
error AccountVersionBlocked()
FactoryMismatch
error FactoryMismatch()
FunctionIsPaused
error FunctionIsPaused()
FunctionNotImplemented
error FunctionNotImplemented()
ImplIsZero
error ImplIsZero()
InvalidAccountVersion
error InvalidAccountVersion()
InvalidRecipient
error InvalidRecipient()
InvalidUpgrade
error InvalidUpgrade()
OnlyAccount
error OnlyAccount()
OnlyAccountOwner
error OnlyAccountOwner()
OnlyGuardian
error OnlyGuardian()
UnsafeRecipient
error UnsafeRecipient()
VersionMismatch
error VersionMismatch()
VersionRootIsZero
error VersionRootIsZero()
creation bytecode
0x608060405234801562000010575f80fd5b50336040518060400160405280600f81526020016e105c98d8591a58481058d8dbdd5b9d608a1b815250604051806040016040528060078152602001664152434144494160c81b815250815f90816200006a91906200016b565b5060016200007982826200016b565b5050600680546001600160a01b0319166001600160a01b0384169081179091556040519091505f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35062000237565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620000f657607f821691505b6020821081036200011557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200016657805f5260205f20601f840160051c81016020851015620001425750805b601f840160051c820191505b8181101562000163575f81556001016200014e565b50505b505050565b81516001600160401b03811115620001875762000187620000cd565b6200019f81620001988454620000e1565b846200011b565b602080601f831160018114620001d5575f8415620001bd5750858301515b5f19600386901b1c1916600185901b1785556200022f565b5f85815260208120601f198616915b828110156200020557888601518255948401946001909101908401620001e4565b50858210156200022357878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b612c2c80620002455f395ff3fe608060405234801562000010575f80fd5b506004361062000264575f3560e01c80637ccd0315116200014f578063bac7b49711620000c3578063e985e9c51162000083578063e985e9c51462000606578063f2fde38b1462000636578063f7ac6490146200064d578063fa8072391462000664578063fa907c3e146200067b575f80fd5b8063bac7b497146200057e578063be46ee9c1462000593578063c0a355b214620005ce578063c655e95714620005d8578063c87b56dd14620005ef575f80fd5b80638da5cb5b116200010f5780638da5cb5b14620004f457806395d89b411462000508578063a22cb4651462000512578063ad84f3411462000529578063b88d4fde1462000567575f80fd5b80637ccd031514620004665780638456cb59146200047d578063855670ae1462000487578063866b013814620004bb5780638937214814620004dd575f80fd5b80633ce86c6211620001e757806355f804b311620001a757806355f804b314620004005780636352211e14620004175780636c0360eb146200042e5780636c3fda1d146200043857806370a08231146200044f575f80fd5b80633ce86c6214620003a15780633f4ba83a14620003b8578063405ce58914620003c257806342842e0e14620003d5578063452a932014620003ec575f80fd5b806313c50f78116200023357806313c50f78146200030a57806323b872dd146200032f57806325ca4c9c14620003465780632fcb4f04146200037357806334d4e4a5146200038a575f80fd5b806301ffc9a7146200026857806306fdde031462000294578063081812fc14620002ad578063095ea7b314620002f1575b5f80fd5b6200027f620002793660046200215d565b620006a3565b60405190151581526020015b60405180910390f35b6200029e620006f6565b6040516200028b9190620021d3565b620002d8620002be366004620021e7565b60046020525f90815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016200028b565b620003086200030236600462002214565b62000789565b005b6200027f6200031b366004620021e7565b600b6020525f908152604090205460ff1681565b620003086200034036600462002241565b6200086f565b6200027f6200035736600462002284565b6001600160a01b03165f908152600c6020526040902054151590565b620003086200038436600462002284565b62000938565b620002d86200039b366004620022a2565b620009b0565b62000308620003b2366004620022ed565b62000c21565b6200030862000e27565b600a545b6040519081526020016200028b565b62000308620003e636600462002241565b62000e40565b600754620002d8906001600160a01b031681565b6200030862000411366004620023c1565b62000f03565b620002d862000428366004620021e7565b62000f44565b6200029e62000f9c565b620002d862000449366004620021e7565b62000fab565b620003c66200046036600462002284565b62000fd4565b620003086200047736600462002284565b62001037565b6200030862001226565b600754620004a290600160a81b90046001600160581b031681565b6040516001600160581b0390911681526020016200028b565b620003c6620004cc36600462002284565b600c6020525f908152604090205481565b62000308620004ee366004620021e7565b6200129b565b600654620002d8906001600160a01b031681565b6200029e6200135f565b620003086200052336600462002414565b6200136e565b6006546200054990600160a01b90046bffffffffffffffffffffffff1681565b6040516bffffffffffffffffffffffff90911681526020016200028b565b62000308620005783660046200244c565b620013d9565b6007546200027f90600160a01b900460ff1681565b620002d8620005a436600462002284565b6001600160a01b039081165f908152600c6020908152604080832054835260029091529020541690565b620003c660095481565b62000308620005e93660046200244c565b620014a6565b6200029e62000600366004620021e7565b6200181d565b6200027f62000617366004620024c2565b600560209081525f928352604080842090915290825290205460ff1681565b620003086200064736600462002284565b62001881565b620003086200065e366004620024fe565b620018f9565b620003086200067536600462002542565b620019d7565b620006926200068c366004620021e7565b62001a65565b6040516200028b939291906200255e565b5f6301ffc9a760e01b6001600160e01b031983161480620006d457506380ac58cd60e01b6001600160e01b03198316145b80620006f05750635b5e139f60e01b6001600160e01b03198316145b92915050565b5f8054620007049062002594565b80601f0160208091040260200160405190810160405280929190818152602001828054620007329062002594565b8015620007815780601f10620007575761010080835404028352916020019162000781565b820191905f5260205f20905b8154815290600101906020018083116200076357829003601f168201915b505050505081565b5f818152600260205260409020546001600160a01b031633811480620007d157506001600160a01b0381165f90815260056020908152604080832033845290915290205460ff165b620008145760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064015b60405180910390fd5b5f8281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b5f600a6200087f600184620025e2565b81548110620008925762000892620025f8565b5f918252602090912001546001600160a01b0390811691508316819003620008cd57604051634e46966960e11b815260040160405180910390fd5b60405163f2fde38b60e01b81526001600160a01b03848116600483015282169063f2fde38b906024015f604051808303815f87803b1580156200090e575f80fd5b505af115801562000921573d5f803e3d5ffd5b505050506200093284848462001b22565b50505050565b6006546001600160a01b03163314620009655760405162461bcd60e51b81526004016200080b906200260c565b600780546001600160a01b0319166001600160a01b03831690811790915560405133907fa14fc14d8620a708a896fd11392a235647d99385500a295f0d7da2a258b2e967905f90a350565b6007545f90600160a01b900460ff1615620009de5760405163bbc5234f60e01b815260040160405180910390fd5b8215620009ec578262000a00565b600754600160a81b90046001600160581b03165b600754909350600160a81b90046001600160581b031683111562000a375760405163a93eca7960e01b815260040160405180910390fd5b5f838152600b602052604090205460ff161562000a675760405163125b49b360e31b815260040160405180910390fd5b6040516001600160e01b031960e086811b8216602084015232901b16602482015260280160408051601f1981840301815282825280516020918201205f878152600d9092529190206001015490916001600160a01b039091169062000acc9062002136565b6001600160a01b0390911681526020018190604051809103905ff590508015801562000afa573d5f803e3d5ffd5b50600a80546001810182557fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b03841690811790915590545f918252600c602052604090912081905590915062000b6690339062001cec565b5f838152600d60205260409081902054905163c0c53b8b60e01b81523360048201526001600160a01b03918216602482015283821660448201529082169063c0c53b8b906064015f604051808303815f87803b15801562000bc5575f80fd5b505af115801562000bd8573d5f803e3d5ffd5b50506040516001600160581b03861692506001600160a01b03841691507fb942724c61c2812433bb6ffa28d5bcc8563c9a7edee4473d04ee8fed8e6e9de3905f90a39392505050565b6001600160a01b038481165f908152600c60209081526040808320548352600290915290205416331462000c68576040516312272fd360e11b815260040160405180910390fd5b5f838152600b602052604090205460ff161562000c985760405163125b49b360e31b815260040160405180910390fd5b5f846001600160a01b031663bc68c6766040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000cd6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000cfc919062002632565b90505f62000d418484600954858960405160200162000d25929190918252602082015260400190565b6040516020818303038152906040528051906020012062001df9565b90508062000d625760405163012fa17760e61b815260040160405180910390fd5b5f858152600d602052604090819020600181015481549251632c3c717360e01b81526001600160a01b038a811694632c3c71739462000db29483169392909116918b91600201906004016200264a565b5f604051808303815f87803b15801562000dca575f80fd5b505af115801562000ddd573d5f803e3d5ffd5b50506040516001600160581b03881692506001600160a01b03891691507fb942724c61c2812433bb6ffa28d5bcc8563c9a7edee4473d04ee8fed8e6e9de3905f90a3505050505050565b60405163ced4f63360e01b815260040160405180910390fd5b5f600a62000e50600184620025e2565b8154811062000e635762000e63620025f8565b5f918252602090912001546001600160a01b039081169150831681900362000e9e57604051634e46966960e11b815260040160405180910390fd5b60405163f2fde38b60e01b81526001600160a01b03848116600483015282169063f2fde38b906024015f604051808303815f87803b15801562000edf575f80fd5b505af115801562000ef2573d5f803e3d5ffd5b505050506200093284848462001e33565b6006546001600160a01b0316331462000f305760405162461bcd60e51b81526004016200080b906200260c565b600862000f3f8284836200275e565b505050565b5f818152600260205260409020546001600160a01b03168062000f975760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b60448201526064016200080b565b919050565b60088054620007049062002594565b600a818154811062000fbb575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f6001600160a01b0382166200101c5760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b60448201526064016200080b565b506001600160a01b03165f9081526003602052604090205490565b6001600160a01b0381166200105f57604051634e46966960e11b815260040160405180910390fd5b336001600160a01b038216036200108957604051634e46966960e11b815260040160405180910390fd5b335f908152600c602052604081205490819003620010ba5760405163f3f6425d60e01b815260040160405180910390fd5b5f81815260026020908152604080832080546001600160a01b039081168086526003855283862080545f190190559087168086528386208054600101905586865282546001600160a01b0319908116821790935560049094529190932080549093169092553b15801590620011c15750604051630a85bd0160e11b8082523360048301526001600160a01b03838116602484015260448301859052608060648401525f608484015290919085169063150b7a029060a4016020604051808303815f875af11580156200118e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620011b4919062002825565b6001600160e01b03191614155b15620011e057604051633da6393160e01b815260040160405180910390fd5b81836001600160a01b0316826001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6007546001600160a01b031633146200125257604051636570ecab60e11b815260040160405180910390fd5b6007805460ff60a01b1916600160a01b179055604051600181527f549bab54c75a364ce0e438a4fbf09df7e6b096bcc83a6f91065a0fc8e410b29a9060200160405180910390a1565b6006546001600160a01b03163314620012c85760405162461bcd60e51b81526004016200080b906200260c565b801580620012e75750600754600160a81b90046001600160581b031681115b15620013065760405163a93eca7960e01b815260040160405180910390fd5b5f818152600b6020908152604091829020805460ff1916600117905590516001600160581b03831681527feeb2feae0739ceec246b003c004c3f0d01c1fea822b7f668ac59e7de193ee7e191015b60405180910390a150565b60018054620007049062002594565b335f8181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b5f600a620013e9600186620025e2565b81548110620013fc57620013fc620025f8565b5f918252602090912001546001600160a01b03908116915085168190036200143757604051634e46966960e11b815260040160405180910390fd5b60405163f2fde38b60e01b81526001600160a01b03868116600483015282169063f2fde38b906024015f604051808303815f87803b15801562001478575f80fd5b505af11580156200148b573d5f803e3d5ffd5b505050506200149e868686868662001f2a565b505050505050565b6006546001600160a01b03163314620014d35760405162461bcd60e51b81526004016200080b906200260c565b82620014f25760405163152794b760e31b815260040160405180910390fd5b6001600160a01b0384166200151a576040516316409b0760e01b815260040160405180910390fd5b600780546001600160a81b038116600160a81b918290046001600160581b0390811660010116918202179091556009849055604080516060810182526001600160a01b03888116825287166020808301919091528251601f8601829004820281018201845285815291928301919086908690819084018382808284375f920182905250939094525050838152600d6020908152604091829020845181546001600160a01b03199081166001600160a01b0392831617835592860151600183018054909416911617909155908301519091506002820190620015fc908262002843565b50905050600760159054906101000a90046001600160581b03166001600160581b0316856001600160a01b031663bc68c6766040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200165c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001682919062002632565b14620016a15760405163714f551360e01b815260040160405180910390fd5b306001600160a01b0316856001600160a01b0316632dd310006040518163ffffffff1660e01b8152600401602060405180830381865afa158015620016e8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200170e91906200290c565b6001600160a01b0316146200173657604051630539b97b60e21b815260040160405180910390fd5b306001600160a01b0316866001600160a01b0316632dd310006040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200177d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620017a391906200290c565b6001600160a01b031614620017cb57604051630539b97b60e21b815260040160405180910390fd5b846001600160a01b0316866001600160a01b0316826001600160581b03167f7a76ee3d6c40ab211805bcb8ef8f41f0c86929a436491a2520b78930f580202e60405160405180910390a4505050505050565b60605f600880546200182f9062002594565b9050116200184c5760405180602001604052805f815250620006f0565b6008620018598362002019565b6040516020016200186c9291906200292a565b60405160208183030381529060405292915050565b6006546001600160a01b03163314620018ae5760405162461bcd60e51b81526004016200080b906200260c565b600680546001600160a01b0319166001600160a01b03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a350565b806001600160a01b0316826001600160a01b0316036200192c57604051634e46966960e11b815260040160405180910390fd5b6001600160a01b0381165f908152600c6020526040902054600a62001953600183620025e2565b81548110620019665762001966620025f8565b5f9182526020909120015460405163f2fde38b60e01b81526001600160a01b0385811660048301529091169063f2fde38b906024015f604051808303815f87803b158015620019b3575f80fd5b505af1158015620019c6573d5f803e3d5ffd5b505050506200093284848362001e33565b6006546001600160a01b0316331462001a045760405162461bcd60e51b81526004016200080b906200260c565b6007547f549bab54c75a364ce0e438a4fbf09df7e6b096bcc83a6f91065a0fc8e410b29a90600160a01b900460ff16801562001a3d5750815b6007805460ff60a01b1916600160a01b92151592830217905560405190815260200162001354565b600d6020525f90815260409020805460018201546002830180546001600160a01b0393841694929093169262001a9b9062002594565b80601f016020809104026020016040519081016040528092919081815260200182805462001ac99062002594565b801562001b185780601f1062001aee5761010080835404028352916020019162001b18565b820191905f5260205f20905b81548152906001019060200180831162001afa57829003601f168201915b5050505050905083565b5f818152600260205260409020546001600160a01b0384811691161462001b795760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b60448201526064016200080b565b6001600160a01b03821662001bc55760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016200080b565b336001600160a01b038416148062001bff57506001600160a01b0383165f90815260056020908152604080832033845290915290205460ff165b8062001c2057505f818152600460205260409020546001600160a01b031633145b62001c5f5760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064016200080b565b6001600160a01b038084165f81815260036020908152604080832080545f19019055938616808352848320805460010190558583526002825284832080546001600160a01b03199081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6001600160a01b03821662001d385760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016200080b565b5f818152600260205260409020546001600160a01b03161562001d8f5760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d3525395115160921b60448201526064016200080b565b6001600160a01b0382165f81815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b5f831562001e2b578360051b8501855b803580851160051b94855260209485185260405f20930181811062001e095750505b501492915050565b62001e408383836200086f565b6001600160a01b0382163b158062001ee95750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401525f608484015290919084169063150b7a029060a4016020604051808303815f875af115801562001eb7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001edd919062002825565b6001600160e01b031916145b62000f3f5760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016200080b565b62001f378585856200086f565b6001600160a01b0384163b158062001fd15750604051630a85bd0160e11b808252906001600160a01b0386169063150b7a029062001f829033908a90899089908990600401620029b7565b6020604051808303815f875af115801562001f9f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001fc5919062002825565b6001600160e01b031916145b620020125760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016200080b565b5050505050565b6060815f03620020405750506040805180820190915260018152600360fc1b602082015290565b815f5b81156200206f5780620020568162002a09565b9150620020679050600a8362002a38565b915062002043565b5f8167ffffffffffffffff8111156200208c576200208c62002702565b6040519080825280601f01601f191660200182016040528015620020b7576020820181803683370190505b5090505b84156200212e57620020cf600183620025e2565b9150620020de600a8662002a4e565b620020eb90603062002a64565b60f81b818381518110620021035762002103620025f8565b60200101906001600160f81b03191690815f1a90535062002126600a8662002a38565b9450620020bb565b949350505050565b61017c8062002a7b83390190565b6001600160e01b0319811681146200215a575f80fd5b50565b5f602082840312156200216e575f80fd5b81356200217b8162002144565b9392505050565b5f5b838110156200219e57818101518382015260200162002184565b50505f910152565b5f8151808452620021bf81602086016020860162002182565b601f01601f19169290920160200192915050565b602081525f6200217b6020830184620021a6565b5f60208284031215620021f8575f80fd5b5035919050565b6001600160a01b03811681146200215a575f80fd5b5f806040838503121562002226575f80fd5b82356200223381620021ff565b946020939093013593505050565b5f805f6060848603121562002254575f80fd5b83356200226181620021ff565b925060208401356200227381620021ff565b929592945050506040919091013590565b5f6020828403121562002295575f80fd5b81356200217b81620021ff565b5f805f60608486031215620022b5575f80fd5b833563ffffffff81168114620022c9575f80fd5b9250602084013591506040840135620022e281620021ff565b809150509250925092565b5f805f806060858703121562002301575f80fd5b84356200230e81620021ff565b935060208501359250604085013567ffffffffffffffff8082111562002332575f80fd5b818701915087601f83011262002346575f80fd5b81358181111562002355575f80fd5b8860208260051b85010111156200236a575f80fd5b95989497505060200194505050565b5f8083601f8401126200238a575f80fd5b50813567ffffffffffffffff811115620023a2575f80fd5b602083019150836020828501011115620023ba575f80fd5b9250929050565b5f8060208385031215620023d3575f80fd5b823567ffffffffffffffff811115620023ea575f80fd5b620023f88582860162002379565b90969095509350505050565b8035801515811462000f97575f80fd5b5f806040838503121562002426575f80fd5b82356200243381620021ff565b9150620024436020840162002404565b90509250929050565b5f805f805f6080868803121562002461575f80fd5b85356200246e81620021ff565b945060208601356200248081620021ff565b935060408601359250606086013567ffffffffffffffff811115620024a3575f80fd5b620024b18882890162002379565b969995985093965092949392505050565b5f8060408385031215620024d4575f80fd5b8235620024e181620021ff565b91506020830135620024f381620021ff565b809150509250929050565b5f805f6060848603121562002511575f80fd5b83356200251e81620021ff565b925060208401356200253081620021ff565b91506040840135620022e281620021ff565b5f6020828403121562002553575f80fd5b6200217b8262002404565b6001600160a01b038481168252831660208201526060604082018190525f906200258b90830184620021a6565b95945050505050565b600181811c90821680620025a957607f821691505b602082108103620025c857634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620006f057620006f0620025ce565b634e487b7160e01b5f52603260045260245ffd5b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b5f6020828403121562002643575f80fd5b5051919050565b6001600160a01b0385811682528416602080830191909152604082018490526080606083015282545f918291620026818162002594565b80608087015260a060018084165f8114620026a55760018114620026c257620026f1565b60ff19851660a08a015260a084151560051b8a01019650620026f1565b895f5260205f205f5b85811015620026e85781548b8201860152908301908701620026cb565b8a0160a0019750505b50949b9a5050505050505050505050565b634e487b7160e01b5f52604160045260245ffd5b601f82111562000f3f57805f5260205f20601f840160051c810160208510156200273d5750805b601f840160051c820191505b8181101562002012575f815560010162002749565b67ffffffffffffffff83111562002779576200277962002702565b62002791836200278a835462002594565b8362002716565b5f601f841160018114620027c5575f8515620027ad5750838201355b5f19600387901b1c1916600186901b17835562002012565b5f83815260208120601f198716915b82811015620027f65786850135825560209485019460019092019101620027d4565b508682101562002813575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f6020828403121562002836575f80fd5b81516200217b8162002144565b815167ffffffffffffffff81111562002860576200286062002702565b620028788162002871845462002594565b8462002716565b602080601f831160018114620028ae575f8415620028965750858301515b5f19600386901b1c1916600185901b1785556200149e565b5f85815260208120601f198616915b82811015620028de57888601518255948401946001909101908401620028bd565b5085821015620028fc57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156200291d575f80fd5b81516200217b81620021ff565b5f808454620029398162002594565b600182811680156200295457600181146200296a5762002998565b60ff198416875282151583028701945062002998565b885f526020805f205f5b858110156200298f5781548a82015290840190820162002974565b50505082870194505b505050508351620029ae81836020880162002182565b01949350505050565b6001600160a01b038681168252851660208201526040810184905260806060820181905281018290525f828460a08401375f60a0848401015260a0601f19601f85011683010190509695505050505050565b5f6001820162002a1d5762002a1d620025ce565b5060010190565b634e487b7160e01b5f52601260045260245ffd5b5f8262002a495762002a4962002a24565b500490565b5f8262002a5f5762002a5f62002a24565b500690565b80820180821115620006f057620006f0620025ce56fe608060405260405161017c38038061017c8339810160408190526100229161008d565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2506100ba565b5f6020828403121561009d575f80fd5b81516001600160a01b03811681146100b3575f80fd5b9392505050565b60b6806100c65f395ff3fe608060405236603c57603a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b546001600160a01b03166063565b005b603a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc602c565b365f80375f80365f845af43d5f803e808015607c573d5ff35b3d5ffdfea2646970667358221220eeb8a2fa918a2057b66e1d3fa3930647dc7a4e56c99898cd9e280beec9d9ba9f64736f6c63430008160033a2646970667358221220e698395988fa7accaad7a508c386ad01469d05120d959252300fbfbfb86cb2d964736f6c63430008160033