0 txs
9k calls
constructor
No constructor.
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
calculateAvailableManagerFee
viewfunction calculateAvailableManagerFee(uint256 _fundValue) view returns (uint256 fee)
creationTime
viewfunction creationTime() view returns (uint256)
creator
viewfunction creator() view returns (address)
decimals
viewfunction decimals() view returns (uint8)
factory
viewfunction factory() view returns (address)
getExitRemainingCooldown
viewfunction getExitRemainingCooldown(address _depositor) view returns (uint256 remaining)
getFundSummary
viewfunction getFundSummary() view returns (tuple)
lastDeposit
viewfunction lastDeposit(address) view returns (uint256)
lastExitCooldown
viewfunction lastExitCooldown(address) view returns (uint256)
lastFeeMintTime
viewfunction lastFeeMintTime() view returns (uint256)
lastWhitelistTransfer
viewfunction lastWhitelistTransfer(address) view returns (uint256)
name
viewfunction name() view returns (string)
poolManagerLogic
viewfunction poolManagerLogic() view returns (address)
privatePool
viewfunction privatePool() view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenPrice
viewfunction tokenPrice() view returns (uint256 price)
tokenPriceAtLastFeeMint
viewfunction tokenPriceAtLastFeeMint() view returns (uint256)
tokenPriceWithoutManagerFee
viewfunction tokenPriceWithoutManagerFee() view returns (uint256 price)
totalSupply
viewfunction totalSupply() view returns (uint256)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
deposit
nonpayablefunction deposit(address _asset, uint256 _amount) returns (uint256 liquidityMinted)
depositFor
nonpayablefunction depositFor(address _recipient, address _asset, uint256 _amount) returns (uint256 liquidityMinted)
depositForWithCustomCooldown
nonpayablefunction depositForWithCustomCooldown(address _recipient, address _asset, uint256 _amount, uint256 _cooldown) returns (uint256 liquidityMinted)
execTransaction
nonpayablefunction execTransaction(address to, bytes data) returns (bool success)
execTransactions
nonpayablefunction execTransactions(tuple[] txs)
executeOperation
nonpayablefunction executeOperation(address[] assets, uint256[] amounts, uint256[] premiums, address initiator, bytes params) returns (bool success)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
initialize
nonpayablefunction initialize(address _factory, bool _privatePool, string _fundName, string _fundSymbol)
mintManagerFee
nonpayablefunction mintManagerFee()
onERC721Received
nonpayablefunction onERC721Received(address operator, address from, uint256 tokenId, bytes data) returns (bytes4 magicSelector)
setPoolManagerLogic
nonpayablefunction setPoolManagerLogic(address _poolManagerLogic)
setPoolPrivate
nonpayablefunction setPoolPrivate(bool _privatePool)
transfer
nonpayablefunction transfer(address recipient, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address sender, address recipient, uint256 amount) returns (bool)
withdraw
nonpayablefunction withdraw(uint256 _fundTokenAmount)
withdrawSafe
nonpayablefunction withdrawSafe(uint256 _fundTokenAmount, tuple[] _complexAssetsData)
withdrawTo
nonpayablefunction withdrawTo(address _recipient, uint256 _fundTokenAmount)
withdrawToSafe
nonpayablefunction withdrawToSafe(address _recipient, uint256 _fundTokenAmount, tuple[] _complexAssetsData)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
Deposit
event Deposit(address fundAddress, address investor, address assetDeposited, uint256 amountDeposited, uint256 valueDeposited, uint256 fundTokensReceived, uint256 totalInvestorFundTokens, uint256 fundValue, uint256 totalSupply, uint256 time)
EntryFeeMinted
event EntryFeeMinted(address manager, uint256 entryFeeAmount)
ExitFeeMinted
event ExitFeeMinted(address manager, uint256 exitFeeAmount)
ManagerFeeMinted
event ManagerFeeMinted(address pool, address manager, uint256 available, uint256 daoFee, uint256 managerFee, uint256 tokenPriceAtLastFeeMint)
PoolManagerLogicSet
event PoolManagerLogicSet(address poolManagerLogic, address from)
PoolPrivacyUpdated
event PoolPrivacyUpdated(bool isPoolPrivate)
TransactionExecuted
event TransactionExecuted(address pool, address manager, uint16 transactionType, uint256 time)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Withdrawal
event Withdrawal(address fundAddress, address investor, uint256 valueWithdrawn, uint256 fundTokensWithdrawn, uint256 totalInvestorFundTokens, uint256 fundValue, uint256 totalSupply, (address asset, uint256 amount, bool externalWithdrawProcessed)[] withdrawnAssets, uint256 time)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50615d3280620000216000396000f3fe608060405234801561001057600080fd5b50600436106101f35760003560e01c8063750226de11610116578063750226de1461038d5780637714f39d146103a057806377806392146103a85780637ae7cfb5146103bb5780637ff9b596146103ce578063920f5c84146103d657806394138e97146103e957806395d89b41146103fc578063a457c2d714610404578063a77134e414610417578063a9059cbb1461041f578063a971a91314610432578063aee8833414610445578063b3db428b14610458578063b8ea2b6e1461046b578063c45a01551461047e578063cc3c6df614610486578063d8270dce1461048e578063dd62ed3e14610496578063de6eb133146104a9578063df8ff12f146104bc576101f3565b806302d05d3f146101f857806306fdde0314610216578063095ea7b31461022b5780630acc7f251461024b578063150b7a021461026057806318160ddd146102805780631c5918d2146102955780631e50a4a6146102aa578063205c2878146102b257806323b872dd146102c557806329d16ee8146102d85780632e1a7d4d146102eb578063313ce567146102fe57806339509351146103135780633babaad51461032657806347e7ef24146103395780635426f81d1461034c57806359b5e75e1461035f57806370a08231146103675780637481de661461037a575b600080fd5b6102006104c4565b60405161020d9190615099565b60405180910390f35b61021e6104d8565b60405161020d91906153a2565b61023e610239366004614ba0565b61056e565b60405161020d9190615373565b61025e610259366004614f6e565b61058c565b005b61027361026e366004614a14565b61059b565b60405161020d919061537e565b610288610706565b60405161020d9190615a09565b61029d61070c565b60405161020d9190615932565b61020061084b565b61025e6102c0366004614ba0565b61085a565b61023e6102d33660046149d4565b61093f565b6102886102e6366004614964565b6109c7565b61025e6102f9366004614f3e565b6109d9565b610306610ac0565b60405161020d9190615a12565b61023e610321366004614ba0565b610ac9565b61025e610334366004614e8d565b610b17565b610288610347366004614ba0565b610b9d565b61025e61035a366004614ac9565b610bb2565b61023e610cb9565b610288610375366004614964565b610cc2565b610288610388366004614964565b610ce1565b61025e61039b366004614964565b610cf3565b610288610e3c565b61025e6103b6366004614bcb565b610e42565b61023e6103c9366004614b4e565b610e52565b610288610e9c565b61023e6103e4366004614c6e565b610ed8565b6102886103f7366004614f3e565b611302565b61021e611349565b61023e610412366004614ba0565b6113aa565b610288611412565b61023e61042d366004614ba0565b611431565b61025e610440366004614e4e565b611445565b610288610453366004614964565b611509565b6102886104663660046149d4565b61151b565b610288610479366004614964565b61152b565b610200611579565b61025e611588565b61028861171b565b6102886104a436600461499c565b611721565b6102886104b7366004614a84565b61174c565b610288611833565b60975461010090046001600160a01b031681565b60368054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105645780601f1061053957610100808354040283529160200191610564565b820191906000526020600020905b81548152906001019060200180831161054757829003601f168201915b5050505050905090565b600061058261057b611839565b848461183d565b5060015b92915050565b610597338383611929565b5050565b609954604051634f8419b960e01b815260009182916001600160a01b0390911690634f8419b9906105d0908a90600401615099565b60206040518083038186803b1580156105e857600080fd5b505afa1580156105fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106209190614980565b90506001600160a01b0381166106515760405162461bcd60e51b8152600401610648906158d6565b60405180910390fd5b6040516306baeff360e11b81526001600160a01b03821690630d75dfe690610685908a908a908a908a908a90600401615200565b602060405180830381600087803b15801561069f57600080fd5b505af11580156106b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d79190614ea9565b6106f35760405162461bcd60e51b815260040161064890615467565b50630a85bd0160e11b9695505050505050565b60355490565b6107146144f9565b6000806000806000610724611fa9565b94509450945094509450604051806101a001604052806107426104d8565b815260200161074f610706565b815260200161075c612048565b81526020016107696120c5565b6001600160a01b03168152602001609c60009054906101000a90046001600160a01b03166001600160a01b031663fed4416a6040518163ffffffff1660e01b815260040160006040518083038186803b1580156107c557600080fd5b505afa1580156107d9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108019190810190614ec5565b8152609854602082015260975460ff16151560408201526060810196909652608086019490945260a0850181905260c085019190915260e084015261010090920191909152905090565b609c546001600160a01b031681565b6105978282609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b1580156108ad57600080fd5b505afa1580156108c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108e99190810190614d43565b516001600160401b03811180156108ff57600080fd5b5060405190808252806020026020018201604052801561093957816020015b61092661456c565b81526020019060019003908161091e5790505b50611929565b600061094c848484612142565b6109bc84610958611839565b6109b785604051806060016040528060288152602001615c26602891396001600160a01b038a16600090815260346020526040812090610996611839565b6001600160a01b03168152602081019190915260400160002054919061228d565b61183d565b5060015b9392505050565b609b6020526000908152604090205481565b610abd3382609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b158015610a2c57600080fd5b505afa158015610a40573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a689190810190614d43565b516001600160401b0381118015610a7e57600080fd5b5060405190808252806020026020018201604052801561093957816020015b610aa561456c565b815260200190600190039081610a9d57905050611929565b50565b60385460ff1690565b6000610582610ad6611839565b846109b78560346000610ae7611839565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490612324565b610b1f6120c5565b6001600160a01b0316336001600160a01b031614610b4f5760405162461bcd60e51b815260040161064890615599565b6097805460ff19168215151790556040517f8d75e9ede4188432084b863d70b3416010c97547dfeb4fc17734d2e997ee0f3990610b8d908390615373565b60405180910390a1610abd61237c565b60006109c0338484610bad6123e6565b61242b565b600054610100900460ff1680610bcb5750610bcb612a9e565b80610bd9575060005460ff16155b610c145760405162461bcd60e51b815260040180806020018281038252602e815260200180615bd7602e913960400191505060405180910390fd5b600054610100900460ff16158015610c3f576000805460ff1961ff0019909116610100171660011790555b610c498383612aaf565b610c51612b64565b609980546001600160a01b0319166001600160a01b0387161790556097805460ff191685151517610100600160a81b0319166101003302179055426098819055609e55670de0b6b3a7640000609a558015610cb2576000805461ff00191690555b5050505050565b60975460ff1681565b6001600160a01b0381166000908152603360205260409020545b919050565b609f6020526000908152604090205481565b6001600160a01b038116610d195760405162461bcd60e51b815260040161064890615649565b6099546001600160a01b0316331480610dc85750609960009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7b57600080fd5b505afa158015610d8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db39190614980565b6001600160a01b0316336001600160a01b0316145b610de45760405162461bcd60e51b8152600401610648906154e7565b609c80546001600160a01b0319166001600160a01b0383161790556040517f63fb64c359a4cae97e1bf003c1ab11390b5f0e18cc5b3d67b90bd61c0f5c52fd90610e3190839033906150d1565b60405180910390a150565b609a5481565b610e4d838383611929565b505050565b6000610e948484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c0d92505050565b949350505050565b600080610ea7612048565b90506000610ec5610eb783611302565b610ebf610706565b90612324565b9050610ed182826133b8565b9250505090565b60006001600160a01b0384163014610f025760405162461bcd60e51b8152600401610648906155eb565b609954604051633f30232f60e21b81526000916001600160a01b03169063fcc08cbc90610f33903390600401615099565b60206040518083038186803b158015610f4b57600080fd5b505afa158015610f5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f839190614980565b90506001600160a01b0381161580159061101e5750806001600160a01b031663e9d337b86040518163ffffffff1660e01b815260040160206040518083038186803b158015610fd157600080fd5b505afa158015610fe5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110099190614980565b6001600160a01b0316336001600160a01b0316145b61103a5760405162461bcd60e51b815260040161064890615904565b60008b8b600081811061104957fe5b905060200201602081019061105e9190614964565b6001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016110899190615099565b60206040518083038186803b1580156110a157600080fd5b505afa1580156110b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d99190614f56565b90506000826001600160a01b031663989dccf8308f8f60008181106110fa57fe5b905060200201602081019061110f9190614964565b8e8e600081811061111c57fe5b905060200201358d8d600081811061113057fe5b905060200201358b8b6040518763ffffffff1660e01b815260040161115a96959493929190615234565b60006040518083038186803b15801561117257600080fd5b505afa158015611186573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111ae9190810190614e1c565b905060005b8151811015611210576112068282815181106111cb57fe5b6020026020010151602001518383815181106111e357fe5b6020026020010151600001516001600160a01b03166133e890919063ffffffff16565b94506001016111b3565b508c8c600081811061121e57fe5b90506020020160208101906112339190614964565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161125e9190615099565b60206040518083038186803b15801561127657600080fd5b505afa15801561128a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae9190614f56565b6112d48a8a60008181106112be57fe5b905060200201358461232490919063ffffffff16565b11156112f25760405162461bcd60e51b81526004016106489061575d565b5050509998505050505050505050565b600080600080611310611fa9565b945050509250925060008061132f87611327610706565b87878761341b565b909250905061133e8282612324565b979650505050505050565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105645780601f1061053957610100808354040283529160200191610564565b60006105826113b7611839565b846109b785604051806060016040528060258152602001615cd860259139603460006113e1611839565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919061228d565b600061142c61141f612048565b611427610706565b6133b8565b905090565b600061058261143e611839565b8484612142565b60005b81811015610e4d576114e583838381811061145f57fe5b90506020028101906114719190615a64565b61147f906020810190614964565b84848481811061148b57fe5b905060200281019061149d9190615a64565b6114ab906020810190615a20565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c0d92505050565b6115015760405162461bcd60e51b8152600401610648906156e8565b600101611448565b609d6020526000908152604090205481565b6000610e94848484610bad6123e6565b6001600160a01b0381166000908152609f6020908152604080832054609b909252822054829161155b9190612324565b90504281101561156f576000915050610cdc565b6109c081426134fd565b6099546001600160a01b031681565b600260655414156115ce576040805162461bcd60e51b815260206004820152601f6024820152600080516020615b4d833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b15801561161857600080fd5b505afa15801561162c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116509190614ea9565b1561166d5760405162461bcd60e51b815260040161064890615836565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c079061169d903090600401615099565b60206040518083038186803b1580156116b557600080fd5b505afa1580156116c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ed9190614ea9565b1561170a5760405162461bcd60e51b815260040161064890615887565b61171261355a565b50506001606555565b60985481565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b609954604051632927233b60e01b81526000916001600160a01b031690632927233b9061177d903390600401615099565b60206040518083038186803b15801561179557600080fd5b505afa1580156117a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117cd9190614ea9565b6117e95760405162461bcd60e51b8152600401610648906156c2565b61012c821015801561180257506117fe6123e6565b8211155b61181e5760405162461bcd60e51b81526004016106489061570b565b61182a8585858561242b565b95945050505050565b609e5481565b3390565b6001600160a01b0383166118825760405162461bcd60e51b8152600401808060200182810382526024815260200180615cb46024913960400191505060405180910390fd5b6001600160a01b0382166118c75760405162461bcd60e51b8152600401808060200182810382526022815260200180615b8f6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6002606554141561196f576040805162461bcd60e51b815260206004820152601f6024820152600080516020615b4d833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b1580156119b957600080fd5b505afa1580156119cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f19190614ea9565b15611a0e5760405162461bcd60e51b815260040161064890615836565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c0790611a3e903090600401615099565b60206040518083038186803b158015611a5657600080fd5b505afa158015611a6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8e9190614ea9565b15611aab5760405162461bcd60e51b815260040161064890615887565b336000908152609b60205260409020544211611ad95760405162461bcd60e51b8152600401610648906157db565b81611ae333610cc2565b1015611b015760405162461bcd60e51b8152600401610648906155bf565b611b09614596565b611b1b83611b15610706565b906134fd565b808252620186a0111580611b2e57508051155b611b4a5760405162461bcd60e51b8152600401610648906153b5565b611b5261355a565b60408301526020820152600080611b67611fa9565b945094505050506000821115611c18576000611b8d82611b878886613775565b906137ce565b9050611b9986826134fd565b8451909650611ba89082612324565b84526000611bb46120c5565b9050611bc08183611431565b611bdc5760405162461bcd60e51b815260040161064890615672565b7f5dc1670f498e308c97e785c929486b7129f92b86f4acd9230ce652ab3b7829ab8183604051611c0d92919061535a565b60405180910390a150505b50506000611c39611c27610706565b611b8786670de0b6b3a7640000613775565b9050611c453385613832565b611c4d610706565b611c5e57670de0b6b3a7640000609a555b609c546040805163e5406dbf60e01b815290516000926001600160a01b03169163e5406dbf9160048083019286929190829003018186803b158015611ca257600080fd5b505afa158015611cb6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cde9190810190614d43565b9050600081516001600160401b0381118015611cf957600080fd5b50604051908082528060200260200182016040528015611d3357816020015b611d206145b7565b815260200190600190039081611d185790505b5090506000805b8351811015611e73576000806000611d7e878581518110611d5757fe5b6020026020010151600001518d8a8d8881518110611d7157fe5b602002602001015161391c565b919450925090508115611e13576001600160a01b038316611db15760405162461bcd60e51b81526004016106489061548d565b611e1163a9059cbb60e01b8d84604051602401611dcf92919061535a565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b038516906133e8565b505b8080611e1f5750600082115b15611e68576040518060600160405280846001600160a01b03168152602001838152602001821515815250868681518110611e5657fe5b60209081029190910101526001909401935b505050600101611d3a565b508251600090611e8390836134fd565b90508083510383526000611eb0670de0b6b3a7640000611b8789602001518961377590919063ffffffff16565b9050611ec38166038d7ea4c68000612324565b611ed9611ece612048565b60208a0151906134fd565b1115611ef75760405162461bcd60e51b81526004016106489061569a565b611eff610706565b60408801518851611f0f91612324565b14611f2c5760405162461bcd60e51b815260040161064890615620565b7ffad3d7f9ed107ffa7fc8ce8baa521effc3650ec48a4d1dd36bdb9c4b91db1295308b838c611f5a8f610cc2565b60208d0151611f6990886134fd565b611f71610706565b8b42604051611f88999897969594939291906152b1565b60405180910390a1611f9861237c565b505060016065555050505050505050565b6000806000806000609c60009054906101000a90046001600160a01b03166001600160a01b031663ced72f876040518163ffffffff1660e01b815260040160a06040518083038186803b158015611fff57600080fd5b505afa158015612013573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120379190614fd5565b939992985090965094509092509050565b609c5460408051632b583ff360e21b815290516000926001600160a01b03169163ad60ffcc916004808301926020929190829003018186803b15801561208d57600080fd5b505afa1580156120a1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142c9190614f56565b609c546040805163481c6a7560e01b815290516000926001600160a01b03169163481c6a75916004808301926020929190829003018186803b15801561210a57600080fd5b505afa15801561211e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142c9190614980565b6001600160a01b0383166121875760405162461bcd60e51b8152600401808060200182810382526025815260200180615c8f6025913960400191505060405180910390fd5b6001600160a01b0382166121cc5760405162461bcd60e51b8152600401808060200182810382526023815260200180615b2a6023913960400191505060405180910390fd5b6121d7838383613df6565b61221481604051806060016040528060268152602001615bb1602691396001600160a01b038616600090815260336020526040902054919061228d565b6001600160a01b0380851660009081526033602052604080822093909355908416815220546122439082612324565b6001600160a01b038084166000818152603360209081526040918290209490945580518581529051919392871692600080516020615c4e83398151915292918290030190a3505050565b6000818484111561231c5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156122e15781810151838201526020016122c9565b50505050905090810190601f16801561230e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156109c0576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b609960009054906101000a90046001600160a01b03166001600160a01b03166325c4121b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156123cc57600080fd5b505af11580156123e0573d6000803e3d6000fd5b50505050565b609954604080516308a0361160e31b815290516000926001600160a01b031691634501b088916004808301926020929190829003018186803b15801561208d57600080fd5b600060026065541415612473576040805162461bcd60e51b815260206004820152601f6024820152600080516020615b4d833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b1580156124bd57600080fd5b505afa1580156124d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f59190614ea9565b156125125760405162461bcd60e51b815260040161064890615836565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c0790612542903090600401615099565b60206040518083038186803b15801561255a57600080fd5b505afa15801561256e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125929190614ea9565b156125af5760405162461bcd60e51b815260040161064890615887565b60006125b96120c5565b9050806001600160a01b0316866001600160a01b031614806125de575060975460ff16155b806125ed57506125ed86613ffe565b6126095760405162461bcd60e51b815260040161064890615573565b609c5460405163bdbef07d60e01b81526001600160a01b039091169063bdbef07d90612639908890600401615099565b60206040518083038186803b15801561265157600080fd5b505afa158015612665573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126899190614ea9565b6126a55760405162461bcd60e51b8152600401610648906157ac565b600080866001600160a01b03166175306301ffc9a760e01b6380ac58cd60e01b6040516024016126d5919061537e565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612713919061507d565b6000604051808303818686fa925050503d806000811461274f576040519150601f19603f3d011682016040523d82523d6000602084013e612754565b606091505b50915091508115806127775750808060200190518101906127759190614ea9565b155b6127935760405162461bcd60e51b81526004016106489061543b565b5050600061279f61355a565b50905060006127ac610706565b90506128106323b872dd60e01b3330896040516024016127ce939291906150ad565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b038916906133e8565b50600061281d888861407f565b9050811561283a5761283383611b878385613775565b945061283e565b8094505b600080612849611fa9565b9450509350505060008211156128bc57600061286982611b878a86613775565b905061287588826134fd565b97506128818782614102565b7f041016c816f0ae89a17cebf19a247e87d1f932255183b75b0cca3ca4e23d8eb387826040516128b292919061535a565b60405180910390a1505b620186a08710156128df5760405162461bcd60e51b81526004016106489061540a565b6128e98b88614102565b50506129266128f78a610cc2565b6001600160a01b038b166000908152609f6020908152604080832054609b9092529091205488918a91426141e2565b6001600160a01b038a166000908152609f6020908152604080832093909355609b90529081204290556129588a610cc2565b905060006129668584612324565b90506000612972610706565b9050609c60009054906101000a90046001600160a01b03166001600160a01b03166350b721a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156129c257600080fd5b505afa1580156129d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129fa9190614f56565b612a1a670de0b6b3a7640000611b87612a1386866133b8565b8790613775565b1015612a385760405162461bcd60e51b8152600401610648906158ac565b7f97e6c213c123075e233a6f2323f33d8319141b993ab05e9e2f7eb2eda08cb944308d8d8d888d89898942604051612a799a999897969594939291906150eb565b60405180910390a150612a8a61237c565b505060016065555092979650505050505050565b6000612aa930614290565b15905090565b600054610100900460ff1680612ac85750612ac8612a9e565b80612ad6575060005460ff16155b612b115760405162461bcd60e51b815260040180806020018281038252602e815260200180615bd7602e913960400191505060405180910390fd5b600054610100900460ff16158015612b3c576000805460ff1961ff0019909116610100171660011790555b612b44614296565b612b4e8383614336565b8015610e4d576000805461ff0019169055505050565b600054610100900460ff1680612b7d5750612b7d612a9e565b80612b8b575060005460ff16155b612bc65760405162461bcd60e51b815260040180806020018281038252602e815260200180615bd7602e913960400191505060405180910390fd5b600054610100900460ff16158015612bf1576000805460ff1961ff0019909116610100171660011790555b612bf961440e565b8015610abd576000805461ff001916905550565b600060026065541415612c55576040805162461bcd60e51b815260206004820152601f6024820152600080516020615b4d833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b158015612c9f57600080fd5b505afa158015612cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd79190614ea9565b15612cf45760405162461bcd60e51b815260040161064890615836565b609954604051635989571960e01b81526001600160a01b0390911690635989571990612d24903090600401615099565b60206040518083038186803b158015612d3c57600080fd5b505afa158015612d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d749190614ea9565b15612d915760405162461bcd60e51b815260040161064890615784565b6001600160a01b038316612db75760405162461bcd60e51b815260040161064890615649565b609954604051634f8419b960e01b81526000916001600160a01b031690634f8419b990612de8908790600401615099565b60206040518083038186803b158015612e0057600080fd5b505afa158015612e14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e389190614980565b905060008080806001600160a01b03851615612ede57609c54604051636179309d60e01b81528694506001600160a01b0380861692636179309d92612e8792909116908c908c90600401615141565b6040805180830381600087803b158015612ea057600080fd5b505af1158015612eb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ed89190614f0a565b90925090505b61ffff82166131a757609954604051633f30232f60e21b81526001600160a01b039091169063fcc08cbc90612f17908b90600401615099565b60206040518083038186803b158015612f2f57600080fd5b505afa158015612f43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f679190614980565b93506001600160a01b03841661307b576099546040805163795053d360e01b815290516000926001600160a01b03169163795053d3916004808301926020929190829003018186803b158015612fbc57600080fd5b505afa158015612fd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ff49190614980565b60405162a950c360e81b81529091506001600160a01b0382169063a950c3009061302390600090600401615393565b60206040518083038186803b15801561303b57600080fd5b505afa15801561304f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130739190614980565b945050613117565b609c54604051634df48c7360e11b81526001600160a01b0390911690639be918e6906130ab908b90600401615099565b60206040518083038186803b1580156130c357600080fd5b505afa1580156130d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fb9190614ea9565b6131175760405162461bcd60e51b815260040161064890615735565b609c54604051636179309d60e01b81528594506001600160a01b0380861692636179309d9261315092909116908c908c90600401615141565b6040805180830381600087803b15801561316957600080fd5b505af115801561317d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a19190614f0a565b90925090505b60008261ffff16116131cb5760405162461bcd60e51b8152600401610648906154ba565b80806131ef57506131da6120c5565b6001600160a01b0316336001600160a01b0316145b8061321257506131fd6144b4565b6001600160a01b0316336001600160a01b0316145b61322e5760405162461bcd60e51b81526004016106489061553d565b6132416001600160a01b038916886133e8565b60408051600481526024810182526020810180516001600160e01b0316637bf9811960e01b179052905191975060009182916001600160a01b03871691613288919061507d565b6000604051808303816000865af19150503d80600081146132c5576040519150601f19603f3d011682016040523d82523d6000602084013e6132ca565b606091505b50915091508180156132eb5750808060200190518101906132eb9190614ea9565b1561335957609c54604051637b364ee960e11b81526001600160a01b038781169263f66c9dd29261332692909116908e908e90600401615141565b600060405180830381600087803b15801561334057600080fd5b505af1158015613354573d6000803e3d6000fd5b505050505b7f14464fb67b1871a79e726fa7af525f8fff56e9e5649d511e47f3a357ae31d207306133836120c5565b8642604051613395949392919061516d565b60405180910390a16133a561237c565b5050600160655550939695505050505050565b60008115806133c5575082155b156133d257506000610586565b6109c082611b8785670de0b6b3a7640000613775565b60008060008351602085016000875af1905080156001811461340957613414565b3d806000803e806000fd5b5092915050565b600080851580613429575086155b15613439575060009050806134f3565b600061345187611b878a670de0b6b3a7640000613775565b9050609a548111156134b457600061349761347486670de0b6b3a7640000613775565b611b878a6134918b613491609a54896134fd90919063ffffffff16565b90613775565b90506134b06134a68a836134fd565b611b87838b613775565b9350505b609e54156134f15760006134d3609e54426134fd90919063ffffffff16565b90506134ed6301e13380611b8787818a6134918e88613775565b9250505b505b9550959350505050565b600082821115613554576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080613565612048565b91506000613571610706565b90506000806000613580611fa9565b9450505092509250600080613598888787878761341b565b90925090506135a78282612324565b6099546040805163272b69b960e21b81528151939a5060009384936001600160a01b031692639cada6e49260048082019391829003018186803b1580156135ed57600080fd5b505afa158015613601573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136259190614fb2565b9092509050600061363a82611b878c86613775565b905060006136488b836134fd565b905060006136568d8c6133b8565b905080609a54101561366857609a8190555b85156136735742609e555b82156136fd576099546040805163084c71a360e21b815290516136fd926001600160a01b031691632131c68c916004808301926020929190829003018186803b1580156136bf57600080fd5b505afa1580156136d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136f79190614980565b84614102565b81156137145761371461370e6120c5565b83614102565b7f755a8059d66d8d243bc9f6913f429a811f154599d0538bb0b6a2ac23f23d2ccd3061373e6120c5565b8e8686609a546040516137569695949392919061527b565b60405180910390a161376661237c565b50505050505050505050509091565b60008261378457506000610586565b8282028284828161379157fe5b04146109c05760405162461bcd60e51b8152600401808060200182810382526021815260200180615c056021913960400191505060405180910390fd5b6000808211613821576040805162461bcd60e51b815260206004820152601a602482015279536166654d6174683a206469766973696f6e206279207a65726f60301b604482015290519081900360640190fd5b81838161382a57fe5b049392505050565b6001600160a01b0382166138775760405162461bcd60e51b8152600401808060200182810382526021815260200180615c6e6021913960400191505060405180910390fd5b61388382600083613df6565b6138c081604051806060016040528060228152602001615b6d602291396001600160a01b038516600090815260336020526040902054919061228d565b6001600160a01b0383166000908152603360205260409020556035546138e690826134fd565b6035556040805182815290516000916001600160a01b03851691600080516020615c4e8339815191529181900360200190a35050565b60008060006139296145d7565b609954604051633f30232f60e21b81526001600160a01b039091169063fcc08cbc90613959908b90600401615099565b60206040518083038186803b15801561397157600080fd5b505afa158015613985573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139a99190614980565b6001600160a01b0316606082018190526139d55760405162461bcd60e51b815260040161064890615860565b613a67670de0b6b3a7640000611b878884606001516001600160a01b031663d4fac45d308e6040518363ffffffff1660e01b8152600401613a179291906150d1565b60206040518083038186803b158015613a2f57600080fd5b505afa158015613a43573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134919190614f56565b808252613a7590899061407f565b6020808301919091528501515160609015613b555785516001600160a01b038a8116911614613ab65760405162461bcd60e51b8152600401610648906153de565b6060820151602087015160405163056f626f60e01b81526001600160a01b039092169163056f626f91613af39130918e918d918f916004016151c5565b600060405180830381600087803b158015613b0d57600080fd5b505af1158015613b21573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613b499190810190614c21565b91965094509050613bf0565b81606001516001600160a01b0316636f8ae202308b8a8c6040518563ffffffff1660e01b8152600401613b8b949392919061519a565b600060405180830381600087803b158015613ba557600080fd5b505af1158015613bb9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613be19190810190614c21565b60016040860152919650945090505b80518015613d6f5760006001600160a01b03871615613c88576040516370a0823160e01b81526001600160a01b038816906370a0823190613c35903090600401615099565b60206040518083038186803b158015613c4d57600080fd5b505afa158015613c61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c859190614f56565b90505b60005b82811015613cc457613cba848281518110613ca257fe5b6020026020010151602001518583815181106111e357fe5b9550600101613c8b565b506001600160a01b03871615613d6d576040516370a0823160e01b81526000906001600160a01b038916906370a0823190613d03903090600401615099565b60206040518083038186803b158015613d1b57600080fd5b505afa158015613d2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d539190614f56565b9050613d69613d6282846134fd565b8890612324565b9650505b505b82604001518015613d835750604087015115155b8015613d9757506001600160a01b03861615155b15613de957613dc1612710611b87896040015161271003866020015161377590919063ffffffff16565b613dcb878761407f565b1015613de95760405162461bcd60e51b815260040161064890615806565b5050509450945094915050565b609960009054906101000a90046001600160a01b03166001600160a01b031663b187bd266040518163ffffffff1660e01b815260040160206040518083038186803b158015613e4457600080fd5b505afa158015613e58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e7c9190614ea9565b15613e995760405162461bcd60e51b815260040161064890615836565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c0790613ec9903090600401615099565b60206040518083038186803b158015613ee157600080fd5b505afa158015613ef5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f199190614ea9565b15613f365760405162461bcd60e51b815260040161064890615887565b6001600160a01b038316613f4957610e4d565b609954604051637065accb60e11b81526001600160a01b039091169063e0cb599690613f79908590600401615099565b60206040518083038186803b158015613f9157600080fd5b505afa158015613fa5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fc99190614ea9565b151560011415613fd857610e4d565b613fe18361152b565b15610e4d5760405162461bcd60e51b815260040161064890615514565b609c5460405163bbbf725b60e01b81526000916001600160a01b03169063bbbf725b9061402f908590600401615099565b60206040518083038186803b15801561404757600080fd5b505afa15801561405b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105869190614ea9565b609c546040516314e03fdd60e11b81526000916001600160a01b0316906329c07fba906140b2908690869060040161535a565b60206040518083038186803b1580156140ca57600080fd5b505afa1580156140de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c09190614f56565b6001600160a01b03821661415d576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61416960008383613df6565b6035546141769082612324565b6035556001600160a01b03821660009081526033602052604090205461419c9082612324565b6001600160a01b0383166000818152603360209081526040808320949094558351858152935192939192600080516020615c4e8339815191529281900390910190a35050565b6000806141ef8486612324565b905060008382106142095761420482856134fd565b61420c565b60005b90508815801561421a575087155b156142285760009250614284565b8861423557869250614284565b87158061424157508087105b1561424e57809250614284565b600061426282610ebf8c611b878c8e613775565b905087811161427e5780614277576001614279565b805b614280565b875b9350505b50509695505050505050565b3b151590565b600054610100900460ff16806142af57506142af612a9e565b806142bd575060005460ff16155b6142f85760405162461bcd60e51b815260040180806020018281038252602e815260200180615bd7602e913960400191505060405180910390fd5b600054610100900460ff16158015612bf9576000805460ff1961ff0019909116610100171660011790558015610abd576000805461ff001916905550565b600054610100900460ff168061434f575061434f612a9e565b8061435d575060005460ff16155b6143985760405162461bcd60e51b815260040180806020018281038252602e815260200180615bd7602e913960400191505060405180910390fd5b600054610100900460ff161580156143c3576000805460ff1961ff0019909116610100171660011790555b82516143d690603690602086019061460a565b5081516143ea90603790602085019061460a565b506038805460ff191660121790558015610e4d576000805461ff0019169055505050565b600054610100900460ff16806144275750614427612a9e565b80614435575060005460ff16155b6144705760405162461bcd60e51b815260040180806020018281038252602e815260200180615bd7602e913960400191505060405180910390fd5b600054610100900460ff1615801561449b576000805460ff1961ff0019909116610100171660011790555b60016065558015610abd576000805461ff001916905550565b609c5460408051631758078b60e01b815290516000926001600160a01b031691631758078b916004808301926020929190829003018186803b15801561210a57600080fd5b604051806101a0016040528060608152602001600081526020016000815260200160006001600160a01b0316815260200160608152602001600081526020016000151581526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806060016040528060006001600160a01b0316815260200160608152602001600081525090565b60405180606001604052806000815260200160008152602001600081525090565b604080516060810182526000808252602082018190529181019190915290565b6040518060800160405280600081526020016000815260200160001515815260200160006001600160a01b031681525090565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826146405760008555614686565b82601f1061465957805160ff1916838001178555614686565b82800160010185558215614686579182015b8281111561468657825182559160200191906001019061466b565b50614692929150614696565b5090565b5b808211156146925760008155600101614697565b60006146be6146b984615ab9565b615a79565b90508281528383830111156146d257600080fd5b828260208301376000602084830101529392505050565b60006146f76146b984615ab9565b905082815283838301111561470b57600080fd5b6109c0836020830184615ada565b60008083601f84011261472a578182fd5b5081356001600160401b03811115614740578182fd5b602083019150836020808302850101111561475a57600080fd5b9250929050565b600082601f830112614771578081fd5b813560206147816146b983615a9c565b82815281810190858301855b858110156148305781358801606080601f19838d030112156147ad578889fd5b604080518281016001600160401b0382821081831117156147ca57fe5b908352848a0135906147db82615b06565b9082528483013590808211156147ef578c8dfd5b508401603f81018e13614800578b8cfd5b6148108e8b8301358584016146ab565b828b0152509290910135908201528452928401929084019060010161478d565b5090979650505050505050565b600082601f83011261484d578081fd5b8151602061485d6146b983615a9c565b82815281810190858301855b858110156148305781518801604080601f19838d03011215614889578889fd5b80518181016001600160401b0382821081831117156148a457fe5b90835283890151906148b582615b06565b9082528383015190808211156148c9578b8cfd5b508084019350508b603f8401126148de57898afd5b6148ee8c898501518486016146e9565b81890152865250509284019290840190600101614869565b60008083601f840112614917578182fd5b5081356001600160401b0381111561492d578182fd5b60208301915083602082850101111561475a57600080fd5b600082601f830112614955578081fd5b6109c0838335602085016146ab565b600060208284031215614975578081fd5b81356109c081615b06565b600060208284031215614991578081fd5b81516109c081615b06565b600080604083850312156149ae578081fd5b82356149b981615b06565b915060208301356149c981615b06565b809150509250929050565b6000806000606084860312156149e8578081fd5b83356149f381615b06565b92506020840135614a0381615b06565b929592945050506040919091013590565b600080600080600060808688031215614a2b578283fd5b8535614a3681615b06565b94506020860135614a4681615b06565b93506040860135925060608601356001600160401b03811115614a67578182fd5b614a7388828901614906565b969995985093965092949392505050565b60008060008060808587031215614a99578182fd5b8435614aa481615b06565b93506020850135614ab481615b06565b93969395505050506040820135916060013590565b60008060008060808587031215614ade578182fd5b8435614ae981615b06565b93506020850135614af981615b1b565b925060408501356001600160401b0380821115614b14578384fd5b614b2088838901614945565b93506060870135915080821115614b35578283fd5b50614b4287828801614945565b91505092959194509250565b600080600060408486031215614b62578081fd5b8335614b6d81615b06565b925060208401356001600160401b03811115614b87578182fd5b614b9386828701614906565b9497909650939450505050565b60008060408385031215614bb2578182fd5b8235614bbd81615b06565b946020939093013593505050565b600080600060608486031215614bdf578081fd5b8335614bea81615b06565b92506020840135915060408401356001600160401b03811115614c0b578182fd5b614c1786828701614761565b9150509250925092565b600080600060608486031215614c35578081fd5b8351614c4081615b06565b6020850151604086015191945092506001600160401b03811115614c62578182fd5b614c178682870161483d565b600080600080600080600080600060a08a8c031215614c8b578687fd5b89356001600160401b0380821115614ca1578889fd5b614cad8d838e01614719565b909b50995060208c0135915080821115614cc5578889fd5b614cd18d838e01614719565b909950975060408c0135915080821115614ce9578586fd5b614cf58d838e01614719565b909750955060608c01359150614d0a82615b06565b90935060808b01359080821115614d1f578384fd5b50614d2c8c828d01614906565b915080935050809150509295985092959850929598565b60006020808385031215614d55578182fd5b82516001600160401b0380821115614d6b578384fd5b818501915085601f830112614d7e578384fd5b8151614d8c6146b982615a9c565b818152848101908486016040808502870188018b1015614daa578889fd5b8896505b84871015614e0d5780828c031215614dc4578889fd5b80518181018181108882111715614dd757fe5b82528251614de481615b06565b815282890151614df381615b1b565b818a01528452600196909601959287019290810190614dae565b50909998505050505050505050565b600060208284031215614e2d578081fd5b81516001600160401b03811115614e42578182fd5b610e948482850161483d565b60008060208385031215614e60578182fd5b82356001600160401b03811115614e75578283fd5b614e8185828601614719565b90969095509350505050565b600060208284031215614e9e578081fd5b81356109c081615b1b565b600060208284031215614eba578081fd5b81516109c081615b1b565b600060208284031215614ed6578081fd5b81516001600160401b03811115614eeb578182fd5b8201601f81018413614efb578182fd5b610e94848251602084016146e9565b60008060408385031215614f1c578182fd5b825161ffff81168114614f2d578283fd5b60208401519092506149c981615b1b565b600060208284031215614f4f578081fd5b5035919050565b600060208284031215614f67578081fd5b5051919050565b60008060408385031215614f80578182fd5b8235915060208301356001600160401b03811115614f9c578182fd5b614fa885828601614761565b9150509250929050565b60008060408385031215614fc4578182fd5b505080516020909101519092909150565b600080600080600060a08688031215614fec578283fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b6001600160a01b03169052565b15159052565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452615069816020860160208601615ada565b601f01601f19169290920160200192915050565b6000825161508f818460208701615ada565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039a8b168152988a1660208a01529690981660408801526060870194909452608086019290925260a085015260c084015260e08301526101008201929092526101208101919091526101400190565b6001600160a01b0384811682528316602082015260606040820181905260009061182a90830184615051565b6001600160a01b03948516815292909316602083015261ffff166040820152606081019190915260800190565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b6001600160a01b0386811682528581166020830152604082018590528316606082015260a06080820181905260009061133e90830184615051565b6001600160a01b038681168252851660208201526040810184905260806060820181905260009061133e9083018486615027565b6001600160a01b03878116825286166020820152604081018590526060810184905260a06080820181905260009061526f9083018486615027565b98975050505050505050565b6001600160a01b03968716815294909516602085015260408401929092526060830152608082015260a081019190915260c00190565b600061012080830160018060a01b03808e1685526020818e168187015260408d8188015260608d818901528c60808901528b60a08901528a60c08901528560e0890152849550895180865261014089019650838b019550875b8181101561533b57865180518716895285810151868a0152840151151584890152968201969584019560010161530a565b505050505061010094909401949094529b9a5050505050505050505050565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6001600160e01b031991909116815260200190565b61ffff91909116815260200190565b6000602082526109c06020830184615051565b6020808252600f908201526e18995b1bddc81d1a1c995cda1bdb19608a1b604082015260600190565b602080825260129082015271696e76616c6964206173736574206461746160701b604082015260600190565b6020808252601790820152761a5b9d985b1a59081b1a5c5d5a591a5d1e535a5b9d1959604a1b604082015260600190565b6020808252601290820152711391951cc81b9bdd081cdd5c1c1bdc9d195960721b604082015260600190565b6020808252600c908201526b1b9bdd081d995c9a599a595960a21b604082015260600190565b6020808252601390820152721b995959081dda5d1a191c985dc8185cdcd95d606a1b604082015260600190565b60208082526013908201527234b73b30b634b2103a3930b739b0b1ba34b7b760691b604082015260600190565b6020808252601390820152726f6e6c79206f776e65722c20666163746f727960681b604082015260600190565b6020808252600f908201526e636f6f6c646f776e2061637469766560881b604082015260600190565b6020808252601c908201527b6f6e6c79206d616e616765722c207472616465722c207075626c696360201b604082015260600190565b6020808252600c908201526b6f6e6c79206d656d6265727360a01b604082015260600190565b6020808252600c908201526b37b7363c9036b0b730b3b2b960a11b604082015260600190565b6020808252601290820152716e6f7420656e6f7567682062616c616e636560701b604082015260600190565b6020808252601b908201527a37b7363c903837b7b610333630b9b4103637b0b71037b934b3b4b760291b604082015260600190565b6020808252600f908201526e0e6eae0e0d8f240dad2e6dac2e8c6d608b1b604082015260600190565b6020808252600f908201526e696e76616c6964206164647265737360881b604082015260600190565b6020808252600e908201526d195e1a5d1199594819985a5b195960921b604082015260600190565b6020808252600e908201526d0ecc2d8eaca40dad2e6dac2e8c6d60931b604082015260600190565b6020808252600c908201526b1bdb9b1e48185b1b1bddd95960a21b604082015260600190565b6020808252600990820152681d1e0819985a5b195960ba1b604082015260600190565b60208082526010908201526f34b73b30b634b21031b7b7b63237bbb760811b604082015260600190565b6020808252600e908201526d185cdcd95d08191a5cd8589b195960921b604082015260600190565b6020808252600d908201526c6869676820736c69707061676560981b604082015260600190565b6020808252600e908201526d1d1c98591a5b99c81c185d5cd95960921b604082015260600190565b6020808252601590820152741a5b9d985b1a590819195c1bdcda5d08185cdcd95d605a1b604082015260600190565b60208082526011908201527031b0b7103bb4ba34323930bb9039b7b7b760791b604082015260600190565b6020808252601690820152756869676820776974686472617720736c69707061676560501b604082015260600190565b60208082526010908201526f18dbdb9d1c9858dd1cc81c185d5cd95960821b604082015260600190565b6020808252600d908201526c1a5b9d985b1a590819dd585c99609a1b604082015260600190565b6020808252600b908201526a1c1bdbdb081c185d5cd95960aa1b604082015260600190565b60208082526010908201526f1b995959081b5a5b8819195c1bdcda5d60821b604082015260600190565b6020808252601490820152736f6e6c792067756172646564206164647265737360601b604082015260600190565b6020808252601490820152731a5b9d985b1a59081b195b991a5b99c81c1bdbdb60621b604082015260600190565b60006020825282516101a08060208501526159516101c0850183615051565b9150602085015160408501526040850151606085015260608501516159796080860182615014565b506080850151848303601f190160a08601526159958382615051565b92505060a085015160c085015260c08501516159b460e0860182615021565b5060e08501516101008581019190915285015161012080860191909152850151610140808601919091528501516101608086019190915285015161018080860191909152909401519390920192909252919050565b90815260200190565b60ff91909116815260200190565b6000808335601e19843603018112615a36578283fd5b8301803591506001600160401b03821115615a4f578283fd5b60200191503681900382131561475a57600080fd5b60008235603e1983360301811261508f578182fd5b6040518181016001600160401b0381118282101715615a9457fe5b604052919050565b60006001600160401b03821115615aaf57fe5b5060209081020190565b60006001600160401b03821115615acc57fe5b50601f01601f191660200190565b60005b83811015615af5578181015183820152602001615add565b838111156123e05750506000910152565b6001600160a01b0381168114610abd57600080fd5b8015158114610abd57600080fdfe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735265656e7472616e637947756172643a207265656e7472616e742063616c6c0045524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ea9d08107c1606ed2aa3a10d82e53ce6933b5bd942bc5b4afb5df354c11692a564736f6c63430007060033