0 txs
23 calls
constructor
No constructor.
functions
avatar
viewfunction avatar() view returns (address)
baal
viewfunction baal() view returns (address)
balance
viewfunction balance() view returns (uint256)
boostRewardsPool
viewfunction boostRewardsPool() view returns (address)
encodeMultiSendAction
purefunction encodeMultiSendAction(uint8 _operation, address _to, uint256 _value, bytes _callData) pure returns (bytes)
endTime
viewfunction endTime() view returns (uint256)
executed
viewfunction executed() view returns (bool)
getGuard
viewfunction getGuard() view returns (address _guard)
goal
viewfunction goal() view returns (uint256)
goalAchieved
viewfunction goalAchieved() view returns (bool)
guard
viewfunction guard() view returns (address)
isAdmin
viewfunction isAdmin() view returns (bool)
isManager
viewfunction isManager() view returns (bool)
moduleEnabled
viewfunction moduleEnabled() view returns (bool)
name
viewfunction name() view returns (string)
nonfungiblePositionManager
viewfunction nonfungiblePositionManager() view returns (address)
owner
viewfunction owner() view returns (address)
pool
viewfunction pool() view returns (address)
poolFee
viewfunction poolFee() view returns (uint24)
positionId
viewfunction positionId() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
target
viewfunction target() view returns (address)
vault
viewfunction vault() view returns (address)
weth
viewfunction weth() view returns (address)
burnLoot
nonpayablefunction burnLoot(address[] from, uint256[] amount)
burnShares
nonpayablefunction burnShares(address[] from, uint256[] amount)
createPoolAndMintPosition
nonpayablefunction createPoolAndMintPosition(address token0, address token1, uint256 liquidityAmount0, uint256 liquidityAmount1)
execute
nonpayablefunction execute()
mintLoot
nonpayablefunction mintLoot(address[] to, uint256[] amount)
mintShares
nonpayablefunction mintShares(address[] to, uint256[] amount)
renounceOwnership
nonpayablefunction renounceOwnership()
setAdminConfig
nonpayablefunction setAdminConfig(bool pauseShares, bool pauseLoot)
setAvatar
nonpayablefunction setAvatar(address _avatar)
setGuard
nonpayablefunction setGuard(address _guard)
setTarget
nonpayablefunction setTarget(address _target)
setup
nonpayablefunction setup(address _baal, address _vault, bytes _initializeParams)
setUp
nonpayablefunction setUp(bytes _initializeParams)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdrawShamanBalance
nonpayablefunction withdrawShamanBalance()
events
AvatarSet
event AvatarSet(address indexed previousAvatar, address indexed newAvatar)
BoostRewardsDeposited
event BoostRewardsDeposited(address indexed sender, uint256 value)
ChangedGuard
event ChangedGuard(address guard)
Executed
event Executed(address indexed token, uint256 tokenSupply, uint256 ethSupply, uint256 boostRewards)
ExecutionFailed
event ExecutionFailed(uint256 yeethBalance, uint256 boostRewards, bool forwardedToRewardsPool)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Setup
event Setup(address indexed baal, address indexed vault, uint256 goal, uint256 endTime, uint256 poolFee, address boostRewardsPool)
ShamanBalanceWithdrawn
event ShamanBalanceWithdrawn(uint256 value)
TargetSet
event TargetSet(address indexed previousTarget, address indexed newTarget)
UniswapPositionCreated
event UniswapPositionCreated(address indexed pool, uint256 indexed positionId, uint160 sqrtPriceX96, uint128 liquidity, uint256 amount0, uint256 amount1)
errors
AdminShaman__NoAdminRole
error AdminShaman__NoAdminRole()
ManagerShaman__NoManagerRole
error ManagerShaman__NoManagerRole()
NotIERC165Compliant
error NotIERC165Compliant(address guard_)
ShamanBase__InvalidAddress
error ShamanBase__InvalidAddress()
ShamanBase__InvalidName
error ShamanBase__InvalidName()
Yeet24ShamanModule__AlreadyExecuted
error Yeet24ShamanModule__AlreadyExecuted()
Yeet24ShamanModule__BaalVaultOnly
error Yeet24ShamanModule__BaalVaultOnly()
Yeet24ShamanModule__ExecutionFailed
error Yeet24ShamanModule__ExecutionFailed(bytes returnData)
Yeet24ShamanModule__InvalidEndTime
error Yeet24ShamanModule__InvalidEndTime()
Yeet24ShamanModule__InvalidPoolFee
error Yeet24ShamanModule__InvalidPoolFee()
Yeet24ShamanModule__TransferFailed
error Yeet24ShamanModule__TransferFailed(bytes returnData)
Yeet24ShamanModule__YeetNotFinished
error Yeet24ShamanModule__YeetNotFinished()
ZodiacModuleShaman__NotEnabledModule
error ZodiacModuleShaman__NotEnabledModule()
creation bytecode
0x608060405234801561001057600080fd5b506134d0806100206000396000f3fe6080604052600436106102345760003560e01c806371640de31161012e578063b6db75a0116100ab578063e19a9dd91161006f578063e19a9dd91461069f578063e5a2a2a5146106bf578063f2fde38b146106dd578063f75628e8146106fd578063fbfa77cf1461071d57600080fd5b8063b6db75a014610617578063c56a3e881461062c578063c910638914610641578063ca8c64e41461065f578063d4b839921461067f57600080fd5b806398a527cc116100f257806398a527cc14610581578063a4f9edbf146105a1578063b1e3f40c146105c1578063b44a2722146105e1578063b69ef8a81461060157600080fd5b806371640de3146104ed578063776d1a01146105035780637ceab3b1146105235780638da5cb5b146105435780639335cf831461056157600080fd5b80633197cbb6116101bc5780634526d846116101805780634526d846146104635780635aef7de6146104835780635ec28696146104a357806361461954146104c3578063715018a6146104d857600080fd5b80633197cbb6146103d357806331a38c89146103f75780633fc8cef31461041857806340193883146104385780634150c03e1461044e57600080fd5b8063089fe6aa11610203578063089fe6aa146103215780630f7a45901461035157806316f0115b14610366578063256c45671461039e5780632abc6d4b146103b357600080fd5b806301ffc9a71461028a578063056b0dcd146102bf57806306fdde03146102df578063086cfca81461030157600080fd5b366102855760d154336001600160a01b03909116036102835760405134815233907f963d95b6eeeed2ce4bc7bea9866793bc6b56552b897fbd361cc08c77e3939cfc9060200160405180910390a25b005b600080fd5b34801561029657600080fd5b506102aa6102a53660046128d4565b61073b565b60405190151581526020015b60405180910390f35b3480156102cb57600080fd5b506102836102da36600461290c565b610766565b3480156102eb57600080fd5b506102f46107d1565b6040516102b69190612995565b34801561030d57600080fd5b5061028361031c3660046129bd565b610863565b34801561032d57600080fd5b5060d75461033d9062ffffff1681565b60405162ffffff90911681526020016102b6565b34801561035d57600080fd5b506102aa6108bd565b34801561037257600080fd5b5060d254610386906001600160a01b031681565b6040516001600160a01b0390911681526020016102b6565b3480156103aa57600080fd5b506102aa6108f9565b3480156103bf57600080fd5b5060d154610386906001600160a01b031681565b3480156103df57600080fd5b506103e960d55481565b6040519081526020016102b6565b34801561040357600080fd5b5060d7546102aa90600160481b900460ff1681565b34801561042457600080fd5b5060d054610386906001600160a01b031681565b34801561044457600080fd5b506103e960d65481565b34801561045a57600080fd5b5061028361097d565b34801561046f57600080fd5b5061028361047e366004612a26565b610a88565b34801561048f57600080fd5b50606654610386906001600160a01b031681565b3480156104af57600080fd5b506102836104be366004612a26565b610af6565b3480156104cf57600080fd5b50610283610b2c565b3480156104e457600080fd5b506102836111f9565b3480156104f957600080fd5b506103e960d35481565b34801561050f57600080fd5b5061028361051e3660046129bd565b61120b565b34801561052f57600080fd5b50606554610386906001600160a01b031681565b34801561054f57600080fd5b506033546001600160a01b0316610386565b34801561056d57600080fd5b506102f461057c366004612b57565b611265565b34801561058d57600080fd5b5061028361059c366004612a26565b61129a565b3480156105ad57600080fd5b506102836105bc366004612bc7565b6112d0565b3480156105cd57600080fd5b506102836105dc366004612a26565b611318565b3480156105ed57600080fd5b5060cf54610386906001600160a01b031681565b34801561060d57600080fd5b506103e960d45481565b34801561062357600080fd5b506102aa61134e565b34801561063857600080fd5b506102aa61137f565b34801561064d57600080fd5b506065546001600160a01b0316610386565b34801561066b57600080fd5b5061028361067a366004612c04565b6113b0565b34801561068b57600080fd5b50606754610386906001600160a01b031681565b3480156106ab57600080fd5b506102836106ba3660046129bd565b611557565b3480156106cb57600080fd5b5060cd546001600160a01b0316610386565b3480156106e957600080fd5b506102836106f83660046129bd565b611659565b34801561070957600080fd5b50610283610718366004612c66565b6116cf565b34801561072957600080fd5b5060ce546001600160a01b0316610386565b60006001600160e01b0319821663705e26c760e11b1480610760575061076082611a0b565b92915050565b60cd5460405163056b0dcd60e01b8152831515600482015282151560248201526001600160a01b039091169063056b0dcd90604401600060405180830381600087803b1580156107b557600080fd5b505af11580156107c9573d6000803e3d6000fd5b505050505050565b606060cc80546107e090612cac565b80601f016020809104026020016040519081016040528092919081815260200182805461080c90612cac565b80156108595780601f1061082e57610100808354040283529160200191610859565b820191906000526020600020905b81548152906001019060200180831161083c57829003601f168201915b5050505050905090565b61086b611a30565b606680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f52ae88b092de36f87fb43fe794eb1381023b9c1bce563a871154022c63dce34290600090a35050565b60d754600090600160481b900460ff16156108e3575060d754600160501b900460ff1690565b5060d65460ce546001600160a01b031631101590565b600061090d60ce546001600160a01b031690565b604051632d9ad53d60e01b81523060048201526001600160a01b039190911690632d9ad53d906024015b602060405180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190612ce6565b905090565b60ce546001600160a01b031633146109a8576040516358d8c1f160e01b815260040160405180910390fd5b60d7546000906060904790600160481b900460ff1680156109c95750600081115b15610a275760ce546040516001600160a01b03909116908290600081818185875af1925050503d8060008114610a1b576040519150601f19603f3d011682016040523d82523d6000602084013e610a20565b606091505b5090935091505b82610a5057816040516391d49bc960e01b8152600401610a479190612995565b60405180910390fd5b6040518181527f811607f43d3270f84cc0588f5d4eacbb14895f03fe6a3989073bcd160f913e439060200160405180910390a1505050565b60cd546040516322936c2360e11b81526001600160a01b0390911690634526d84690610abe908790879087908790600401612d03565b600060405180830381600087803b158015610ad857600080fd5b505af1158015610aec573d6000803e3d6000fd5b5050505050505050565b60cd54604051632f61434b60e11b81526001600160a01b0390911690635ec2869690610abe908790879087908790600401612d03565b610b34611a8a565b60d754600160481b900460ff1615610b5f576040516317f6dbbd60e11b815260040160405180910390fd5b610b676108f9565b610b845760405163591098bf60e01b815260040160405180910390fd5b610b8c61134e565b610ba95760405163796e85f160e01b815260040160405180910390fd5b610bb161137f565b610bce5760405163f001c07d60e01b815260040160405180910390fd5b60d5544211610bf057604051632dbef58560e01b815260040160405180910390fd5b6000610c0460ce546001600160a01b031690565b60d7805469ff0000000000000000001916600160481b17905560d6546001600160a01b03919091163191504790821015610d1a5760008082118015610c53575060d1546001600160a01b031615155b15610cd35760d1546040516060916001600160a01b0316908490600081818185875af1925050503d8060008114610ca6576040519150601f19603f3d011682016040523d82523d6000602084013e610cab565b606091505b50909250905081610cd157806040516391d49bc960e01b8152600401610a479190612995565b505b60408051848152602081018490528215158183015290517fd0c34967ac18cad34fc89a7eda27b484ec25d3e3a183a495a7b4300c3adcf02e9181900360600190a1506111eb565b60d7805460ff60501b1916600160501b17905560cd5460408051638009ba1f60e01b815290516000926001600160a01b031691638009ba1f9160048083019260209291908290030181865afa158015610d77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9b9190612d81565b60408051600180825281830190925291925060009190602080830190803683370190505090503081600081518110610dd557610dd5612d9e565b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252600091816020016020820280368337019050509050826001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e749190612db4565b81600081518110610e8757610e87612d9e565b602090810291909101015260cd54604051632c78fd0360e21b81526001600160a01b039091169063b1e3f40c90610ec49085908590600401612dcd565b600060405180830381600087803b158015610ede57600080fd5b505af1158015610ef2573d6000803e3d6000fd5b505060cd5460405163056b0dcd60e01b815260006004820181905260248201526001600160a01b03909116925063056b0dcd9150604401600060405180830381600087803b158015610f4357600080fd5b505af1158015610f57573d6000803e3d6000fd5b505050506000841115610ffc57600080610f7960ce546001600160a01b031690565b6001600160a01b03168660405160006040518083038185875af1925050503d8060008114610fc3576040519150601f19603f3d011682016040523d82523d6000602084013e610fc8565b606091505b509150915081610fed57806040516391d49bc960e01b8152600401610a479190612995565b610ff78688612e67565b965050505b6040513060248201526044810186905260009060640160408051601f198184030181529190526020810180516001600160e01b031663a9059cbb60e01b17905260d054835191925060009186916001600160a01b0316908590849061106357611063612d9e565b60209081029190910101516040516001600160a01b03938416602482015292909116604483015260648201526084810188905260a40160408051601f19818403018152918152602080830180516001600160e01b0316631eeac51d60e31b17905260d054825191820190925260008082529293506110f09183916001600160a01b03909116908b90611265565b60d05461110a906000906001600160a01b03168187611265565b611118600030600087611265565b60405160200161112a93929190612e7a565b604051602081830303815290604052905060008061114783611ae3565b915091508161116b5780604051637b400c3960e11b8152600401610a479190612995565b8960d481905550876001600160a01b03167f9d3143df72a22f3dea2e5172436c8d5eed763f17bef7a640c55666bdf8a8ad92876000815181106111b0576111b0612d9e565b60200260200101518c8c6040516111da939291909283526020830191909152604082015260600190565b60405180910390a250505050505050505b50506111f76001606855565b565b611201611a30565b6111f76000611bb0565b611213611a30565b606780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f90cc2f570a6eb594b1580ea3e41247d2d73a55281889e86bd4ec2fc29c7e62d690600090a35050565b6060848484845185604051602001611281959493929190612ebd565b6040516020818303038152906040529050949350505050565b60cd5460405163262949f360e21b81526001600160a01b03909116906398a527cc90610abe908790879087908790600401612d03565b600054610100900460ff166112f75760405162461bcd60e51b8152600401610a4790612f2b565b61130081611c02565b6113156106f860ce546001600160a01b031690565b50565b60cd54604051632c78fd0360e21b81526001600160a01b039091169063b1e3f40c90610abe908790879087908790600401612d03565b60cd54604051630935e01b60e21b81523060048201526000916001600160a01b0316906324d7806c90602401610937565b60cd5460405163f3ae241560e01b81523060048201526000916001600160a01b03169063f3ae241590602401610937565b600054610100900460ff16158080156113d05750600054600160ff909116105b806113ea5750303b1580156113ea575060005460ff166001145b61144d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610a47565b6000805460ff191660011790558015611470576000805461ff0019166101001790555b6000806000806000808780602001905181019061148d9190612f76565b9550955095509550955095506114a98a8a888888888888611c77565b604080518481526020810184905262ffffff8316818301526001600160a01b03868116606083015291518b8316928d16917fb2bdb5a5d92e30e9e40678bee075ed28f0c761a37ce30c006db31da583e2f565919081900360800190a35050505050508015611551576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b61155f611a30565b6001600160a01b03811615611605576040516301ffc9a760e01b815263736bd41d60e11b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa1580156115b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115dd9190612ce6565b611605576040516358b7533f60e11b81526001600160a01b0382166004820152602401610a47565b606580546001600160a01b0319166001600160a01b0383169081179091556040519081527f1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa29060200160405180910390a150565b611661611a30565b6001600160a01b0381166116c65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a47565b61131581611bb0565b60ce546001600160a01b031633146116fa576040516358d8c1f160e01b815260040160405180910390fd5b6001600160a01b038084169085161080611717578385838561171c565b848484845b9297509095509350915060006117328484611cf1565b60cf5460d7546040516309f56ab160e11b81526001600160a01b038a81166004830152898116602483015262ffffff9092166044820152818416606482015292935016906313ead562906084016020604051808303816000875af115801561179e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c29190612d81565b60d280546001600160a01b0319166001600160a01b0392831617905560cf546117ee9188911686611da5565b60cf546118069086906001600160a01b031685611da5565b60408051610160810182526001600160a01b0388811682528716602082015260d75462ffffff81169282019290925263010000008204600290810b6060830152660100000000000090920490910b608082015260a0810185905260c08101849052600060e0820181905261010082018190523361012083015290610140810161189142610384612e67565b905260cf54604051634418b22b60e11b81529192506000918291829182916001600160a01b0316906388316456906118cd908890600401612ff2565b6080604051808303816000875af11580156118ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191091906130b6565b93509350935093508360d3819055508882101561195c5760cf54611940908c906001600160a01b03166000611da5565b600061194c838b613100565b905061195a8c33838b611ea5565b505b8781101561199a5760cf5461197d908b906001600160a01b03166000611da5565b6000611989828a613100565b90506119988b33838b15611ea5565b505b60d254604080516001600160a01b0389811682526001600160801b038716602083015291810185905260608101849052869291909116907fa99a6875308aea6e18b918455ff8cd4633862a798bb7a5e9f21fd78b5a1189f29060800160405180910390a35050505050505050505050565b60006001600160e01b03198216631ef9167360e31b1480610760575061076082611fb3565b6033546001600160a01b031633146111f75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a47565b600260685403611adc5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a47565b6002606855565b60006060600083604051602401611afa9190612995565b60408051601f19818403018152918152602080830180516001600160e01b03166346c07f8560e11b17905260cd54825163c00d077560e01b81529251939450611b9e936001600160a01b039091169263c00d07759260048083019391928290030181865afa158015611b70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b949190612d81565b6000836001611fd8565b909590945092505050565b6001606855565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16611c295760405162461bcd60e51b8152600401610a4790612f2b565b611c31611ff5565b80806020019051810190611c459190613113565b606780546001600160a01b039283166001600160a01b0319918216179091556066805493909216921691909117905550565b600054610100900460ff16611c9e5760405162461bcd60e51b8152600401610a4790612f2b565b611cd3604051806040016040528060128152602001715965657432345368616d616e4d6f64756c6560701b8152508989612024565b611cdb612096565b611ce3612096565b610aec8686868686866120bd565b60008083118015611d025750600082115b611d4e5760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e20616d6f756e74732063616e6e6f74206265207a65726f000000006044820152606401610a47565b600083611d6384670de0b6b3a7640000613142565b611d6d919061316f565b90506000611d7a826122d4565b90506000633b9aca00611d91600160601b84613142565b611d9b919061316f565b9695505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b1790529151600092839290871691611e019190613183565b6000604051808303816000865af19150503d8060008114611e3e576040519150601f19603f3d011682016040523d82523d6000602084013e611e43565b606091505b5091509150818015611e6d575080511580611e6d575080806020019051810190611e6d9190612ce6565b611e9e5760405162461bcd60e51b8152602060048201526002602482015261534160f01b6044820152606401610a47565b5050505050565b8015611fa857604080516001808252818301909252600091602080830190803683370190505090503081600081518110611ee157611ee1612d9e565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092526000918160200160208202803683370190505090508381600081518110611f3257611f32612d9e565b602090810291909101015260cd5460405163262949f360e21b81526001600160a01b03909116906398a527cc90611f6f9085908590600401612dcd565b600060405180830381600087803b158015611f8957600080fd5b505af1158015611f9d573d6000803e3d6000fd5b505050505050611551565b61155184848461233c565b60006001600160e01b0319821663b3b0786d60e01b1480610760575061076082612435565b60006060611fe88686868661245a565b9097909650945050505050565b600054610100900460ff1661201c5760405162461bcd60e51b8152600401610a4790612f2b565b6111f7612659565b600054610100900460ff1661204b5760405162461bcd60e51b8152600401610a4790612f2b565b612056838383612689565b5060ce54604080516001600160a01b03909216602083018190528282018190528151808403830181526060909301909152906120919061271c565b505050565b600054610100900460ff166111f75760405162461bcd60e51b8152600401610a4790612f2b565b600054610100900460ff166120e45760405162461bcd60e51b8152600401610a4790612f2b565b4282116121045760405163cf27734d60e01b815260040160405180910390fd5b60cf80546001600160a01b0319166001600160a01b0388169081179091556040805163c45a015560e01b815290516000929163c45a01559160048083019260209291908290030181865afa158015612160573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121849190612d81565b6040516322afcccb60e01b815262ffffff841660048201529091506000906001600160a01b038316906322afcccb90602401602060405180830381865afa1580156121d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f7919061319f565b90508060020b60000361221d57604051638a49602560e01b815260040160405180910390fd5b8061222b81620d89e86131c2565b61223591906131fc565b60d7805468ffffff0000000000001916660100000000000062ffffff939093168302179081905561226a91900460020b613223565b60d7805460d080546001600160a01b03199081166001600160a01b039c8d161790915560d1805490911699909a169890981790985560d695909555505060d59190915565ffffffffffff19909216630100000062ffffff9283160262ffffff191617911617905550565b6000816000036122e657506000919050565b600060026122f5846001612e67565b6122ff919061316f565b9050825b8082101561233557508060028161231a818761316f565b6123249190612e67565b61232e919061316f565b9150612303565b9392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916123989190613183565b6000604051808303816000865af19150503d80600081146123d5576040519150601f19603f3d011682016040523d82523d6000602084013e6123da565b606091505b50915091508180156124045750805115806124045750808060200190518101906124049190612ce6565b611e9e5760405162461bcd60e51b815260206004820152600260248201526114d560f21b6044820152606401610a47565b60006001600160e01b03198216631032b51b60e31b148061076057506107608261274c565b6065546000906060906001600160a01b031680156125cc57604051633af85da960e11b81526001600160a01b038216906375f0bb52906124b1908a908a908a908a9060009081908190819081903390600401613267565b600060405180830381600087803b1580156124cb57600080fd5b505af11580156124df573d6000803e3d6000fd5b5050606754604051635229073f60e01b81526001600160a01b039091169250635229073f9150612519908a908a908a908a906004016132f1565b6000604051808303816000875af1158015612538573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125609190810190613330565b604051631264e26d60e31b815260006004820152821515602482015291945092506001600160a01b03821690639327136890604401600060405180830381600087803b1580156125af57600080fd5b505af11580156125c3573d6000803e3d6000fd5b5050505061264f565b606754604051635229073f60e01b81526001600160a01b0390911690635229073f90612602908a908a908a908a906004016132f1565b6000604051808303816000875af1158015612621573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126499190810190613330565b90935091505b5094509492505050565b600054610100900460ff166126805760405162461bcd60e51b8152600401610a4790612f2b565b6111f733611bb0565b600054610100900460ff166126b05760405162461bcd60e51b8152600401610a4790612f2b565b82516000036126d2576040516394356f0b60e01b815260040160405180910390fd5b6001600160a01b0382166126f957604051630103dd0160e71b815260040160405180910390fd5b612701612096565b612709612781565b612711612096565b6120918383836127b0565b600054610100900460ff166127435760405162461bcd60e51b8152600401610a4790612f2b565b611315816112d0565b60006001600160e01b0319821663d2296f8d60e01b148061076057506301ffc9a760e01b6001600160e01b0319831614610760565b600054610100900460ff166127a85760405162461bcd60e51b8152600401610a4790612f2b565b6111f76128ad565b600054610100900460ff166127d75760405162461bcd60e51b8152600401610a4790612f2b565b60cc6127e38482613403565b5060cd80546001600160a01b0319166001600160a01b03848116919091179091558116156128115780612888565b60cd60009054906101000a90046001600160a01b03166001600160a01b0316635aef7de66040518163ffffffff1660e01b8152600401602060405180830381865afa158015612864573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128889190612d81565b60ce80546001600160a01b0319166001600160a01b0392909216919091179055505050565b600054610100900460ff16611ba95760405162461bcd60e51b8152600401610a4790612f2b565b6000602082840312156128e657600080fd5b81356001600160e01b03198116811461233557600080fd5b801515811461131557600080fd5b6000806040838503121561291f57600080fd5b823561292a816128fe565b9150602083013561293a816128fe565b809150509250929050565b60005b83811015612960578181015183820152602001612948565b50506000910152565b60008151808452612981816020860160208601612945565b601f01601f19169290920160200192915050565b6020815260006123356020830184612969565b6001600160a01b038116811461131557600080fd5b6000602082840312156129cf57600080fd5b8135612335816129a8565b60008083601f8401126129ec57600080fd5b50813567ffffffffffffffff811115612a0457600080fd5b6020830191508360208260051b8501011115612a1f57600080fd5b9250929050565b60008060008060408587031215612a3c57600080fd5b843567ffffffffffffffff80821115612a5457600080fd5b612a60888389016129da565b90965094506020870135915080821115612a7957600080fd5b50612a86878288016129da565b95989497509550505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612ad157612ad1612a92565b604052919050565b600067ffffffffffffffff821115612af357612af3612a92565b50601f01601f191660200190565b600082601f830112612b1257600080fd5b8135612b25612b2082612ad9565b612aa8565b818152846020838601011115612b3a57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612b6d57600080fd5b843560028110612b7c57600080fd5b93506020850135612b8c816129a8565b925060408501359150606085013567ffffffffffffffff811115612baf57600080fd5b612bbb87828801612b01565b91505092959194509250565b600060208284031215612bd957600080fd5b813567ffffffffffffffff811115612bf057600080fd5b612bfc84828501612b01565b949350505050565b600080600060608486031215612c1957600080fd5b8335612c24816129a8565b92506020840135612c34816129a8565b9150604084013567ffffffffffffffff811115612c5057600080fd5b612c5c86828701612b01565b9150509250925092565b60008060008060808587031215612c7c57600080fd5b8435612c87816129a8565b93506020850135612c97816129a8565b93969395505050506040820135916060013590565b600181811c90821680612cc057607f821691505b602082108103612ce057634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215612cf857600080fd5b8151612335816128fe565b6040808252810184905260008560608301825b87811015612d46578235612d29816129a8565b6001600160a01b0316825260209283019290910190600101612d16565b5083810360208501528481526001600160fb1b03851115612d6657600080fd5b8460051b915081866020830137016020019695505050505050565b600060208284031215612d9357600080fd5b8151612335816129a8565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612dc657600080fd5b5051919050565b604080825283519082018190526000906020906060840190828701845b82811015612e0f5781516001600160a01b031684529284019290840190600101612dea565b5050508381038285015284518082528583019183019060005b81811015612e4457835183529284019291840191600101612e28565b5090979650505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561076057610760612e51565b60008451612e8c818460208901612945565b845190830190612ea0818360208901612945565b8451910190612eb3818360208801612945565b0195945050505050565b600060028710612edd57634e487b7160e01b600052602160045260246000fd5b8660f81b82526bffffffffffffffffffffffff198660601b1660018301528460158301528360358301528251612f1a816055850160208701612945565b919091016055019695505050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008060008060008060c08789031215612f8f57600080fd5b8651612f9a816129a8565b6020880151909650612fab816129a8565b6040880151909550612fbc816129a8565b80945050606087015192506080870151915060a087015162ffffff81168114612fe457600080fd5b809150509295509295509295565b81516001600160a01b031681526101608101602083015161301e60208401826001600160a01b03169052565b506040830151613035604084018262ffffff169052565b50606083015161304a606084018260020b9052565b50608083015161305f608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e0830152610100808401518184015250610120808401516130a5828501826001600160a01b03169052565b505061014092830151919092015290565b600080600080608085870312156130cc57600080fd5b8451935060208501516001600160801b03811681146130ea57600080fd5b6040860151606090960151949790965092505050565b8181038181111561076057610760612e51565b6000806040838503121561312657600080fd5b8251613131816129a8565b602084015190925061293a816129a8565b808202811582820484141761076057610760612e51565b634e487b7160e01b600052601260045260246000fd5b60008261317e5761317e613159565b500490565b60008251613195818460208701612945565b9190910192915050565b6000602082840312156131b157600080fd5b81518060020b811461233557600080fd5b60008160020b8360020b806131d9576131d9613159565b627fffff198214600019821416156131f3576131f3612e51565b90059392505050565b60008260020b8260020b028060020b915080821461321c5761321c612e51565b5092915050565b60008160020b627fffff19810361323c5761323c612e51565b60000392915050565b6002811061326357634e487b7160e01b600052602160045260246000fd5b9052565b6001600160a01b038b81168252602082018b9052610160604083018190526000916132948483018d612969565b91506132a3606085018c613245565b608084019990995260a08301979097525060c081019490945291851660e084015284166101008301528183036101208301526000835290921661014090920191909152602001949350505050565b60018060a01b03851681528360208201526080604082015260006133186080830185612969565b90506133276060830184613245565b95945050505050565b6000806040838503121561334357600080fd5b825161334e816128fe565b602084015190925067ffffffffffffffff81111561336b57600080fd5b8301601f8101851361337c57600080fd5b805161338a612b2082612ad9565b81815286602083850101111561339f57600080fd5b6133b0826020830160208601612945565b8093505050509250929050565b601f82111561209157600081815260208120601f850160051c810160208610156133e45750805b601f850160051c820191505b818110156107c9578281556001016133f0565b815167ffffffffffffffff81111561341d5761341d612a92565b6134318161342b8454612cac565b846133bd565b602080601f831160018114613466576000841561344e5750858301515b600019600386901b1c1916600185901b1785556107c9565b600085815260208120601f198616915b8281101561349557888601518255948401946001909101908401613476565b50858210156134b35787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea164736f6c6343000813000a