0 txs
49.5k 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 sender) 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)
ownerBurn
nonpayablefunction ownerBurn(tuple[] _burnList)
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
0x608060405234801561001057600080fd5b50615dc280620000216000396000f3fe608060405234801561001057600080fd5b50600436106101fe5760003560e01c8063750226de11610116578063750226de146103ab5780637714f39d146103be57806377806392146103c65780637ae7cfb5146103d95780637ff9b596146103ec578063920f5c84146103f457806394138e971461040757806395d89b411461041a578063a457c2d714610422578063a77134e414610435578063a9059cbb1461043d578063a971a91314610450578063aee8833414610463578063b3db428b14610476578063b8ea2b6e14610489578063c45a01551461049c578063cc3c6df6146104a4578063d8270dce146104ac578063dd62ed3e146104b4578063de6eb133146104c7578063df8ff12f146104da576101fe565b806302d05d3f1461020357806306fdde0314610221578063095ea7b3146102365780630acc7f2514610256578063150b7a021461026b57806318160ddd1461028b5780631c5918d2146102a05780631e50a4a6146102b5578063205c2878146102bd57806323b872dd146102d057806329d16ee8146102e35780632e1a7d4d146102f6578063313ce56714610309578063395093511461031e5780633babaad51461033157806347e7ef24146103445780635426f81d1461035757806359b5e75e1461036a5780636e29e2c81461037257806370a08231146103855780637481de6614610398575b600080fd5b61020b6104e2565b604051610218919061512d565b60405180910390f35b6102296104f6565b6040516102189190615436565b610249610244366004614bc5565b61058c565b6040516102189190615407565b610269610264366004615002565b6105aa565b005b61027e610279366004614a39565b6105b9565b6040516102189190615412565b610293610724565b6040516102189190615a99565b6102a861072a565b60405161021891906159c2565b61020b610869565b6102696102cb366004614bc5565b610878565b6102496102de3660046149f9565b61095d565b6102936102f1366004614989565b6109e5565b610269610304366004614fd2565b6109f7565b610311610ade565b6040516102189190615aa2565b61024961032c366004614bc5565b610ae7565b61026961033f366004614f21565b610b35565b610293610352366004614bc5565b610bbb565b610269610365366004614aee565b610bd0565b610249610cd7565b610269610380366004614e41565b610ce0565b610293610393366004614989565b610dee565b6102936103a6366004614989565b610e0d565b6102696103b9366004614989565b610e1f565b610293610f68565b6102696103d4366004614bf0565b610f6e565b6102496103e7366004614b73565b610f79565b610293610fc3565b610249610402366004614c93565b610fff565b610293610415366004614fd2565b611404565b61022961144b565b610249610430366004614bc5565b6114ac565b610293611514565b61024961044b366004614bc5565b611533565b61026961045e366004614ee2565b611547565b610293610471366004614989565b61160b565b6102936104843660046149f9565b61161d565b610293610497366004614989565b61162d565b61020b61167b565b61026961168a565b61029361181d565b6102936104c23660046149c1565b611823565b6102936104d5366004614aa9565b61184e565b610293611935565b60975461010090046001600160a01b031681565b60368054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105825780601f1061055757610100808354040283529160200191610582565b820191906000526020600020905b81548152906001019060200180831161056557829003601f168201915b5050505050905090565b60006105a061059961193b565b848461193f565b5060015b92915050565b6105b5338383611a2b565b5050565b609954604051634f8419b960e01b815260009182916001600160a01b0390911690634f8419b9906105ee908a9060040161512d565b60206040518083038186803b15801561060657600080fd5b505afa15801561061a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063e91906149a5565b90506001600160a01b03811661066f5760405162461bcd60e51b815260040161066690615966565b60405180910390fd5b6040516306baeff360e11b81526001600160a01b03821690630d75dfe6906106a3908a908a908a908a908a9060040161533d565b602060405180830381600087803b1580156106bd57600080fd5b505af11580156106d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f59190614f3d565b6107115760405162461bcd60e51b8152600401610666906154fb565b50630a85bd0160e11b9695505050505050565b60355490565b61073261451e565b6000806000806000610742612120565b94509450945094509450604051806101a001604052806107606104f6565b815260200161076d610724565b815260200161077a6121bf565b815260200161078761223c565b6001600160a01b03168152602001609c60009054906101000a90046001600160a01b03166001600160a01b031663fed4416a6040518163ffffffff1660e01b815260040160006040518083038186803b1580156107e357600080fd5b505afa1580156107f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261081f9190810190614f59565b8152609854602082015260975460ff16151560408201526060810196909652608086019490945260a0850181905260c085019190915260e084015261010090920191909152905090565b609c546001600160a01b031681565b6105b58282609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b1580156108cb57600080fd5b505afa1580156108df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109079190810190614d68565b516001600160401b038111801561091d57600080fd5b5060405190808252806020026020018201604052801561095757816020015b610944614591565b81526020019060019003908161093c5790505b50611a2b565b600061096a8484846122b9565b6109da8461097661193b565b6109d585604051806060016040528060288152602001615cb6602891396001600160a01b038a166000908152603460205260408120906109b461193b565b6001600160a01b031681526020810191909152604001600020549190612404565b61193f565b5060015b9392505050565b609b6020526000908152604090205481565b610adb3382609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b158015610a4a57600080fd5b505afa158015610a5e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a869190810190614d68565b516001600160401b0381118015610a9c57600080fd5b5060405190808252806020026020018201604052801561095757816020015b610ac3614591565b815260200190600190039081610abb57905050611a2b565b50565b60385460ff1690565b60006105a0610af461193b565b846109d58560346000610b0561193b565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061249b565b610b3d61223c565b6001600160a01b0316336001600160a01b031614610b6d5760405162461bcd60e51b81526004016106669061562d565b6097805460ff19168215151790556040517f8d75e9ede4188432084b863d70b3416010c97547dfeb4fc17734d2e997ee0f3990610bab908390615407565b60405180910390a1610adb6124f3565b60006109de338484610bcb61255d565b6125a2565b600054610100900460ff1680610be95750610be9612c15565b80610bf7575060005460ff16155b610c325760405162461bcd60e51b815260040180806020018281038252602e815260200180615c67602e913960400191505060405180910390fd5b600054610100900460ff16158015610c5d576000805460ff1961ff0019909116610100171660011790555b610c678383612c26565b610c6f612cdb565b609980546001600160a01b0319166001600160a01b0387161790556097805460ff191685151517610100600160a81b0319166101003302179055426098819055609e55670de0b6b3a7640000609a558015610cd0576000805461ff00191690555b5050505050565b60975460ff1681565b609960009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2e57600080fd5b505afa158015610d42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6691906149a5565b6001600160a01b0316336001600160a01b031614610d965760405162461bcd60e51b815260040161066690615818565b60005b81811015610de957610de1838383818110610db057fe5b610dc69260206040909202019081019150614989565b848484818110610dd257fe5b90506040020160200135612d84565b600101610d99565b505050565b6001600160a01b0381166000908152603360205260409020545b919050565b609f6020526000908152604090205481565b6001600160a01b038116610e455760405162461bcd60e51b8152600401610666906156dd565b6099546001600160a01b0316331480610ef45750609960009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ea757600080fd5b505afa158015610ebb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edf91906149a5565b6001600160a01b0316336001600160a01b0316145b610f105760405162461bcd60e51b81526004016106669061557b565b609c80546001600160a01b0319166001600160a01b0383161790556040517f63fb64c359a4cae97e1bf003c1ab11390b5f0e18cc5b3d67b90bd61c0f5c52fd90610f5d9083903390615165565b60405180910390a150565b609a5481565b610de9838383611a2b565b6000610fbb8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e6e92505050565b949350505050565b600080610fce6121bf565b90506000610fec610fde83611404565b610fe6610724565b9061249b565b9050610ff8828261357c565b9250505090565b60006001600160a01b03841630146110295760405162461bcd60e51b81526004016106669061567f565b609954604051633f30232f60e21b81526000916001600160a01b03169063fcc08cbc9061105a90339060040161512d565b60206040518083038186803b15801561107257600080fd5b505afa158015611086573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110aa91906149a5565b90506001600160a01b038116158015906111455750806001600160a01b031663e9d337b86040518163ffffffff1660e01b815260040160206040518083038186803b1580156110f857600080fd5b505afa15801561110c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113091906149a5565b6001600160a01b0316336001600160a01b0316145b6111615760405162461bcd60e51b815260040161066690615994565b60008b8b600081811061117057fe5b90506020020160208101906111859190614989565b6001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016111b0919061512d565b60206040518083038186803b1580156111c857600080fd5b505afa1580156111dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112009190614fea565b90506000826001600160a01b031663989dccf8308f8f600081811061122157fe5b90506020020160208101906112369190614989565b8e8e600081811061124357fe5b905060200201358d8d600081811061125757fe5b905060200201358b8b6040518763ffffffff1660e01b815260040161128196959493929190615371565b60006040518083038186803b15801561129957600080fd5b505afa1580156112ad573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112d59190810190614eb0565b905060005b81518110156113375761132d8282815181106112f257fe5b60200260200101516020015183838151811061130a57fe5b6020026020010151600001516001600160a01b03166135ac90919063ffffffff16565b94506001016112da565b508c8c600081811061134557fe5b905060200201602081019061135a9190614989565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611385919061512d565b60206040518083038186803b15801561139d57600080fd5b505afa1580156113b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d59190614fea565b8211156113f45760405162461bcd60e51b8152600401610666906157f1565b5050509998505050505050505050565b600080600080611412612120565b945050509250925060008061143187611429610724565b8787876135df565b9092509050611440828261249b565b979650505050505050565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105825780601f1061055757610100808354040283529160200191610582565b60006105a06114b961193b565b846109d585604051806060016040528060258152602001615d6860259139603460006114e361193b565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190612404565b600061152e6115216121bf565b611529610724565b61357c565b905090565b60006105a061154061193b565b84846122b9565b60005b81811015610de9576115e783838381811061156157fe5b90506020028101906115739190615af4565b611581906020810190614989565b84848481811061158d57fe5b905060200281019061159f9190615af4565b6115ad906020810190615ab0565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e6e92505050565b6116035760405162461bcd60e51b81526004016106669061577c565b60010161154a565b609d6020526000908152604090205481565b6000610fbb848484610bcb61255d565b6001600160a01b0381166000908152609f6020908152604080832054609b909252822054829161165d919061249b565b905042811015611671576000915050610e08565b6109de81426136c1565b6099546001600160a01b031681565b600260655414156116d0576040805162461bcd60e51b815260206004820152601f6024820152600080516020615bdd833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b15801561171a57600080fd5b505afa15801561172e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117529190614f3d565b1561176f5760405162461bcd60e51b8152600401610666906158c6565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c079061179f90309060040161512d565b60206040518083038186803b1580156117b757600080fd5b505afa1580156117cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ef9190614f3d565b1561180c5760405162461bcd60e51b815260040161066690615917565b61181461371e565b50506001606555565b60985481565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b609954604051632927233b60e01b81526000916001600160a01b031690632927233b9061187f90339060040161512d565b60206040518083038186803b15801561189757600080fd5b505afa1580156118ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cf9190614f3d565b6118eb5760405162461bcd60e51b815260040161066690615756565b61012c8210158015611904575061190061255d565b8211155b6119205760405162461bcd60e51b81526004016106669061579f565b61192c858585856125a2565b95945050505050565b609e5481565b3390565b6001600160a01b0383166119845760405162461bcd60e51b8152600401808060200182810382526024815260200180615d446024913960400191505060405180910390fd5b6001600160a01b0382166119c95760405162461bcd60e51b8152600401808060200182810382526022815260200180615c1f6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60026065541415611a71576040805162461bcd60e51b815260206004820152601f6024820152600080516020615bdd833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b158015611abb57600080fd5b505afa158015611acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af39190614f3d565b15611b105760405162461bcd60e51b8152600401610666906158c6565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c0790611b4090309060040161512d565b60206040518083038186803b158015611b5857600080fd5b505afa158015611b6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b909190614f3d565b15611bad5760405162461bcd60e51b815260040161066690615917565b336000908152609b60205260409020544211611bdb5760405162461bcd60e51b81526004016106669061586b565b81611be533610dee565b1015611c035760405162461bcd60e51b815260040161066690615653565b611c0b6145bb565b611c1d83611c17610724565b906136c1565b808252620186a0111580611c3057508051155b611c4c5760405162461bcd60e51b815260040161066690615449565b611c5461371e565b60408301526020820152600080611c69612120565b945094505050506000821115611d1a576000611c8f82611c8988866139b9565b90613a12565b9050611c9b86826136c1565b8451909650611caa908261249b565b84526000611cb661223c565b9050611cc28183611533565b611cde5760405162461bcd60e51b815260040161066690615706565b7f5dc1670f498e308c97e785c929486b7129f92b86f4acd9230ce652ab3b7829ab8183604051611d0f9291906153ee565b60405180910390a150505b50506000611d3b611d29610724565b611c8986670de0b6b3a76400006139b9565b9050611d473385612d84565b611d4f610724565b611d6057670de0b6b3a7640000609a555b609c546040805163e5406dbf60e01b815290516000926001600160a01b03169163e5406dbf9160048083019286929190829003018186803b158015611da457600080fd5b505afa158015611db8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611de09190810190614d68565b9050600081516001600160401b0381118015611dfb57600080fd5b50604051908082528060200260200182016040528015611e3557816020015b611e226145dc565b815260200190600190039081611e1a5790505b5090506000805b8351811015611f75576000806000611e80878581518110611e5957fe5b6020026020010151600001518d8a8d8881518110611e7357fe5b6020026020010151613a76565b919450925090508115611f15576001600160a01b038316611eb35760405162461bcd60e51b815260040161066690615521565b611f1363a9059cbb60e01b8d84604051602401611ed19291906153ee565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b038516906135ac565b505b8080611f215750600082115b15611f6a576040518060600160405280846001600160a01b03168152602001838152602001821515815250868681518110611f5857fe5b60209081029190910101526001909401935b505050600101611e3c565b508251600090611f8590836136c1565b90508083510383526000611fb2670de0b6b3a7640000611c898960200151896139b990919063ffffffff16565b9050611fc58166038d7ea4c6800061249b565b609c54604080516335fd4a6360e11b81529051612050926001600160a01b031691636bfa94c69160048083019260209291908290030181600087803b15801561200d57600080fd5b505af1158015612021573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120459190614fea565b60208a0151906136c1565b111561206e5760405162461bcd60e51b81526004016106669061572e565b612076610724565b604088015188516120869161249b565b146120a35760405162461bcd60e51b8152600401610666906156b4565b7ffad3d7f9ed107ffa7fc8ce8baa521effc3650ec48a4d1dd36bdb9c4b91db12953033838c6120d133610dee565b60208d01516120e090886136c1565b6120e8610724565b8b426040516120ff9998979695949392919061517f565b60405180910390a161210f6124f3565b505060016065555050505050505050565b6000806000806000609c60009054906101000a90046001600160a01b03166001600160a01b031663ced72f876040518163ffffffff1660e01b815260040160a06040518083038186803b15801561217657600080fd5b505afa15801561218a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ae9190615069565b939992985090965094509092509050565b609c5460408051632b583ff360e21b815290516000926001600160a01b03169163ad60ffcc916004808301926020929190829003018186803b15801561220457600080fd5b505afa158015612218573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152e9190614fea565b609c546040805163481c6a7560e01b815290516000926001600160a01b03169163481c6a75916004808301926020929190829003018186803b15801561228157600080fd5b505afa158015612295573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152e91906149a5565b6001600160a01b0383166122fe5760405162461bcd60e51b8152600401808060200182810382526025815260200180615d1f6025913960400191505060405180910390fd5b6001600160a01b0382166123435760405162461bcd60e51b8152600401808060200182810382526023815260200180615bba6023913960400191505060405180910390fd5b61234e838383613f50565b61238b81604051806060016040528060268152602001615c41602691396001600160a01b0386166000908152603360205260409020549190612404565b6001600160a01b0380851660009081526033602052604080822093909355908416815220546123ba908261249b565b6001600160a01b038084166000818152603360209081526040918290209490945580518581529051919392871692600080516020615cde83398151915292918290030190a3505050565b600081848411156124935760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612458578181015183820152602001612440565b50505050905090810190601f1680156124855780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156109de576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b609960009054906101000a90046001600160a01b03166001600160a01b03166325c4121b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561254357600080fd5b505af1158015612557573d6000803e3d6000fd5b50505050565b609954604080516308a0361160e31b815290516000926001600160a01b031691634501b088916004808301926020929190829003018186803b15801561220457600080fd5b6000600260655414156125ea576040805162461bcd60e51b815260206004820152601f6024820152600080516020615bdd833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b15801561263457600080fd5b505afa158015612648573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266c9190614f3d565b156126895760405162461bcd60e51b8152600401610666906158c6565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c07906126b990309060040161512d565b60206040518083038186803b1580156126d157600080fd5b505afa1580156126e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127099190614f3d565b156127265760405162461bcd60e51b815260040161066690615917565b600061273061223c565b9050806001600160a01b0316866001600160a01b03161480612755575060975460ff16155b80612764575061276486614023565b6127805760405162461bcd60e51b815260040161066690615607565b609c5460405163bdbef07d60e01b81526001600160a01b039091169063bdbef07d906127b090889060040161512d565b60206040518083038186803b1580156127c857600080fd5b505afa1580156127dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128009190614f3d565b61281c5760405162461bcd60e51b81526004016106669061583c565b600080866001600160a01b03166175306301ffc9a760e01b6380ac58cd60e01b60405160240161284c9190615412565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161288a9190615111565b6000604051808303818686fa925050503d80600081146128c6576040519150601f19603f3d011682016040523d82523d6000602084013e6128cb565b606091505b50915091508115806128ee5750808060200190518101906128ec9190614f3d565b155b61290a5760405162461bcd60e51b8152600401610666906154cf565b5050600061291661371e565b5090506000612923610724565b90506129876323b872dd60e01b33308960405160240161294593929190615141565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b038916906135ac565b50600061299488886140a4565b905081156129b1576129aa83611c8983856139b9565b94506129b5565b8094505b6000806129c0612120565b945050935050506000821115612a335760006129e082611c898a866139b9565b90506129ec88826136c1565b97506129f88782614127565b7f041016c816f0ae89a17cebf19a247e87d1f932255183b75b0cca3ca4e23d8eb38782604051612a299291906153ee565b60405180910390a1505b620186a0871015612a565760405162461bcd60e51b81526004016106669061549e565b612a608b88614127565b5050612a9d612a6e8a610dee565b6001600160a01b038b166000908152609f6020908152604080832054609b9092529091205488918a9142614207565b6001600160a01b038a166000908152609f6020908152604080832093909355609b9052908120429055612acf8a610dee565b90506000612add858461249b565b90506000612ae9610724565b9050609c60009054906101000a90046001600160a01b03166001600160a01b03166350b721a76040518163ffffffff1660e01b815260040160206040518083038186803b158015612b3957600080fd5b505afa158015612b4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b719190614fea565b612b91670de0b6b3a7640000611c89612b8a868661357c565b87906139b9565b1015612baf5760405162461bcd60e51b81526004016106669061593c565b7f97e6c213c123075e233a6f2323f33d8319141b993ab05e9e2f7eb2eda08cb944308d8d8d888d89898942604051612bf09a99989796959493929190615228565b60405180910390a150612c016124f3565b505060016065555092979650505050505050565b6000612c20306142b5565b15905090565b600054610100900460ff1680612c3f5750612c3f612c15565b80612c4d575060005460ff16155b612c885760405162461bcd60e51b815260040180806020018281038252602e815260200180615c67602e913960400191505060405180910390fd5b600054610100900460ff16158015612cb3576000805460ff1961ff0019909116610100171660011790555b612cbb6142bb565b612cc5838361435b565b8015610de9576000805461ff0019169055505050565b600054610100900460ff1680612cf45750612cf4612c15565b80612d02575060005460ff16155b612d3d5760405162461bcd60e51b815260040180806020018281038252602e815260200180615c67602e913960400191505060405180910390fd5b600054610100900460ff16158015612d68576000805460ff1961ff0019909116610100171660011790555b612d70614433565b8015610adb576000805461ff001916905550565b6001600160a01b038216612dc95760405162461bcd60e51b8152600401808060200182810382526021815260200180615cfe6021913960400191505060405180910390fd5b612dd582600083613f50565b612e1281604051806060016040528060228152602001615bfd602291396001600160a01b0385166000908152603360205260409020549190612404565b6001600160a01b038316600090815260336020526040902055603554612e3890826136c1565b6035556040805182815290516000916001600160a01b03851691600080516020615cde8339815191529181900360200190a35050565b600060026065541415612eb6576040805162461bcd60e51b815260206004820152601f6024820152600080516020615bdd833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b158015612f0057600080fd5b505afa158015612f14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f389190614f3d565b15612f555760405162461bcd60e51b8152600401610666906158c6565b6001600160a01b038316612f7b5760405162461bcd60e51b8152600401610666906156dd565b609954604051634f8419b960e01b81526000916001600160a01b031690634f8419b990612fac90879060040161512d565b60206040518083038186803b158015612fc457600080fd5b505afa158015612fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ffc91906149a5565b905060008080806001600160a01b038516156130a257609c54604051636179309d60e01b81528694506001600160a01b0380861692636179309d9261304b92909116908c908c9060040161527e565b6040805180830381600087803b15801561306457600080fd5b505af1158015613078573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061309c9190614f9e565b90925090505b61ffff821661336b57609954604051633f30232f60e21b81526001600160a01b039091169063fcc08cbc906130db908b9060040161512d565b60206040518083038186803b1580156130f357600080fd5b505afa158015613107573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061312b91906149a5565b93506001600160a01b03841661323f576099546040805163795053d360e01b815290516000926001600160a01b03169163795053d3916004808301926020929190829003018186803b15801561318057600080fd5b505afa158015613194573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b891906149a5565b60405162a950c360e81b81529091506001600160a01b0382169063a950c300906131e790600090600401615427565b60206040518083038186803b1580156131ff57600080fd5b505afa158015613213573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061323791906149a5565b9450506132db565b609c54604051634df48c7360e11b81526001600160a01b0390911690639be918e69061326f908b9060040161512d565b60206040518083038186803b15801561328757600080fd5b505afa15801561329b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132bf9190614f3d565b6132db5760405162461bcd60e51b8152600401610666906157c9565b609c54604051636179309d60e01b81528594506001600160a01b0380861692636179309d9261331492909116908c908c9060040161527e565b6040805180830381600087803b15801561332d57600080fd5b505af1158015613341573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133659190614f9e565b90925090505b60008261ffff161161338f5760405162461bcd60e51b81526004016106669061554e565b80806133b3575061339e61223c565b6001600160a01b0316336001600160a01b0316145b806133d657506133c16144d9565b6001600160a01b0316336001600160a01b0316145b6133f25760405162461bcd60e51b8152600401610666906155d1565b6134056001600160a01b038916886135ac565b60408051600481526024810182526020810180516001600160e01b0316637bf9811960e01b179052905191975060009182916001600160a01b0387169161344c9190615111565b6000604051808303816000865af19150503d8060008114613489576040519150601f19603f3d011682016040523d82523d6000602084013e61348e565b606091505b50915091508180156134af5750808060200190518101906134af9190614f3d565b1561351d57609c54604051637b364ee960e11b81526001600160a01b038781169263f66c9dd2926134ea92909116908e908e9060040161527e565b600060405180830381600087803b15801561350457600080fd5b505af1158015613518573d6000803e3d6000fd5b505050505b7f14464fb67b1871a79e726fa7af525f8fff56e9e5649d511e47f3a357ae31d2073061354761223c565b864260405161355994939291906152aa565b60405180910390a16135696124f3565b5050600160655550939695505050505050565b6000811580613589575082155b15613596575060006105a4565b6109de82611c8985670de0b6b3a76400006139b9565b60008060008351602085016000875af190508015600181146135cd576135d8565b3d806000803e806000fd5b5092915050565b6000808515806135ed575086155b156135fd575060009050806136b7565b600061361587611c898a670de0b6b3a76400006139b9565b9050609a5481111561367857600061365b61363886670de0b6b3a76400006139b9565b611c898a6136558b613655609a54896136c190919063ffffffff16565b906139b9565b905061367461366a8a836136c1565b611c89838b6139b9565b9350505b609e54156136b5576000613697609e54426136c190919063ffffffff16565b90506136b16301e13380611c8987818a6136558e886139b9565b9250505b505b9550959350505050565b600082821115613718576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080609c60009054906101000a90046001600160a01b03166001600160a01b0316636bfa94c66040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561377157600080fd5b505af1158015613785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137a99190614fea565b915060006137b5610724565b905060008060006137c4612120565b94505050925092506000806137dc88878787876135df565b90925090506137eb828261249b565b6099546040805163272b69b960e21b81528151939a5060009384936001600160a01b031692639cada6e49260048082019391829003018186803b15801561383157600080fd5b505afa158015613845573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138699190615046565b9092509050600061387e82611c898c866139b9565b9050600061388c8b836136c1565b9050600061389a8d8c61357c565b905080609a5410156138ac57609a8190555b85156138b75742609e555b8215613941576099546040805163084c71a360e21b81529051613941926001600160a01b031691632131c68c916004808301926020929190829003018186803b15801561390357600080fd5b505afa158015613917573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061393b91906149a5565b84614127565b81156139585761395861395261223c565b83614127565b7f755a8059d66d8d243bc9f6913f429a811f154599d0538bb0b6a2ac23f23d2ccd3061398261223c565b8e8686609a5460405161399a969594939291906153b8565b60405180910390a16139aa6124f3565b50505050505050505050509091565b6000826139c8575060006105a4565b828202828482816139d557fe5b04146109de5760405162461bcd60e51b8152600401808060200182810382526021815260200180615c956021913960400191505060405180910390fd5b6000808211613a65576040805162461bcd60e51b815260206004820152601a602482015279536166654d6174683a206469766973696f6e206279207a65726f60301b604482015290519081900360640190fd5b818381613a6e57fe5b049392505050565b6000806000613a836145fc565b609954604051633f30232f60e21b81526001600160a01b039091169063fcc08cbc90613ab3908b9060040161512d565b60206040518083038186803b158015613acb57600080fd5b505afa158015613adf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b0391906149a5565b6001600160a01b031660608201819052613b2f5760405162461bcd60e51b8152600401610666906158f0565b613bc1670de0b6b3a7640000611c898884606001516001600160a01b031663d4fac45d308e6040518363ffffffff1660e01b8152600401613b71929190615165565b60206040518083038186803b158015613b8957600080fd5b505afa158015613b9d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136559190614fea565b808252613bcf9089906140a4565b6020808301919091528501515160609015613caf5785516001600160a01b038a8116911614613c105760405162461bcd60e51b815260040161066690615472565b6060820151602087015160405163056f626f60e01b81526001600160a01b039092169163056f626f91613c4d9130918e918d918f91600401615302565b600060405180830381600087803b158015613c6757600080fd5b505af1158015613c7b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613ca39190810190614c46565b91965094509050613d4a565b81606001516001600160a01b0316636f8ae202308b8a8c6040518563ffffffff1660e01b8152600401613ce594939291906152d7565b600060405180830381600087803b158015613cff57600080fd5b505af1158015613d13573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613d3b9190810190614c46565b60016040860152919650945090505b80518015613ec95760006001600160a01b03871615613de2576040516370a0823160e01b81526001600160a01b038816906370a0823190613d8f90309060040161512d565b60206040518083038186803b158015613da757600080fd5b505afa158015613dbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ddf9190614fea565b90505b60005b82811015613e1e57613e14848281518110613dfc57fe5b60200260200101516020015185838151811061130a57fe5b9550600101613de5565b506001600160a01b03871615613ec7576040516370a0823160e01b81526000906001600160a01b038916906370a0823190613e5d90309060040161512d565b60206040518083038186803b158015613e7557600080fd5b505afa158015613e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ead9190614fea565b9050613ec3613ebc82846136c1565b889061249b565b9650505b505b82604001518015613edd5750604087015115155b8015613ef157506001600160a01b03861615155b15613f4357613f1b612710611c8989604001516127100386602001516139b990919063ffffffff16565b613f2587876140a4565b1015613f435760405162461bcd60e51b815260040161066690615896565b5050509450945094915050565b613f5b838383610de9565b6001600160a01b038316613f6e57610de9565b609954604051637065accb60e11b81526001600160a01b039091169063e0cb599690613f9e90859060040161512d565b60206040518083038186803b158015613fb657600080fd5b505afa158015613fca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fee9190614f3d565b151560011415613ffd57610de9565b6140068361162d565b15610de95760405162461bcd60e51b8152600401610666906155a8565b609c5460405163bbbf725b60e01b81526000916001600160a01b03169063bbbf725b9061405490859060040161512d565b60206040518083038186803b15801561406c57600080fd5b505afa158015614080573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a49190614f3d565b609c546040516314e03fdd60e11b81526000916001600160a01b0316906329c07fba906140d790869086906004016153ee565b60206040518083038186803b1580156140ef57600080fd5b505afa158015614103573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109de9190614fea565b6001600160a01b038216614182576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61418e60008383613f50565b60355461419b908261249b565b6035556001600160a01b0382166000908152603360205260409020546141c1908261249b565b6001600160a01b0383166000818152603360209081526040808320949094558351858152935192939192600080516020615cde8339815191529281900390910190a35050565b600080614214848661249b565b9050600083821061422e5761422982856136c1565b614231565b60005b90508815801561423f575087155b1561424d57600092506142a9565b8861425a578692506142a9565b87158061426657508087105b15614273578092506142a9565b600061428782610fe68c611c898c8e6139b9565b90508781116142a3578061429c57600161429e565b805b6142a5565b875b9350505b50509695505050505050565b3b151590565b600054610100900460ff16806142d457506142d4612c15565b806142e2575060005460ff16155b61431d5760405162461bcd60e51b815260040180806020018281038252602e815260200180615c67602e913960400191505060405180910390fd5b600054610100900460ff16158015612d70576000805460ff1961ff0019909116610100171660011790558015610adb576000805461ff001916905550565b600054610100900460ff16806143745750614374612c15565b80614382575060005460ff16155b6143bd5760405162461bcd60e51b815260040180806020018281038252602e815260200180615c67602e913960400191505060405180910390fd5b600054610100900460ff161580156143e8576000805460ff1961ff0019909116610100171660011790555b82516143fb90603690602086019061462f565b50815161440f90603790602085019061462f565b506038805460ff191660121790558015610de9576000805461ff0019169055505050565b600054610100900460ff168061444c575061444c612c15565b8061445a575060005460ff16155b6144955760405162461bcd60e51b815260040180806020018281038252602e815260200180615c67602e913960400191505060405180910390fd5b600054610100900460ff161580156144c0576000805460ff1961ff0019909116610100171660011790555b60016065558015610adb576000805461ff001916905550565b609c5460408051631758078b60e01b815290516000926001600160a01b031691631758078b916004808301926020929190829003018186803b15801561228157600080fd5b604051806101a0016040528060608152602001600081526020016000815260200160006001600160a01b0316815260200160608152602001600081526020016000151581526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806060016040528060006001600160a01b0316815260200160608152602001600081525090565b60405180606001604052806000815260200160008152602001600081525090565b604080516060810182526000808252602082018190529181019190915290565b6040518060800160405280600081526020016000815260200160001515815260200160006001600160a01b031681525090565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261466557600085556146ab565b82601f1061467e57805160ff19168380011785556146ab565b828001600101855582156146ab579182015b828111156146ab578251825591602001919060010190614690565b506146b79291506146bb565b5090565b5b808211156146b757600081556001016146bc565b60006146e36146de84615b49565b615b09565b90508281528383830111156146f757600080fd5b828260208301376000602084830101529392505050565b600061471c6146de84615b49565b905082815283838301111561473057600080fd5b6109de836020830184615b6a565b60008083601f84011261474f578182fd5b5081356001600160401b03811115614765578182fd5b602083019150836020808302850101111561477f57600080fd5b9250929050565b600082601f830112614796578081fd5b813560206147a66146de83615b2c565b82815281810190858301855b858110156148555781358801606080601f19838d030112156147d2578889fd5b604080518281016001600160401b0382821081831117156147ef57fe5b908352848a01359061480082615b96565b908252848301359080821115614814578c8dfd5b508401603f81018e13614825578b8cfd5b6148358e8b8301358584016146d0565b828b015250929091013590820152845292840192908401906001016147b2565b5090979650505050505050565b600082601f830112614872578081fd5b815160206148826146de83615b2c565b82815281810190858301855b858110156148555781518801604080601f19838d030112156148ae578889fd5b80518181016001600160401b0382821081831117156148c957fe5b90835283890151906148da82615b96565b9082528383015190808211156148ee578b8cfd5b508084019350508b603f84011261490357898afd5b6149138c8985015184860161470e565b8189015286525050928401929084019060010161488e565b60008083601f84011261493c578182fd5b5081356001600160401b03811115614952578182fd5b60208301915083602082850101111561477f57600080fd5b600082601f83011261497a578081fd5b6109de838335602085016146d0565b60006020828403121561499a578081fd5b81356109de81615b96565b6000602082840312156149b6578081fd5b81516109de81615b96565b600080604083850312156149d3578081fd5b82356149de81615b96565b915060208301356149ee81615b96565b809150509250929050565b600080600060608486031215614a0d578081fd5b8335614a1881615b96565b92506020840135614a2881615b96565b929592945050506040919091013590565b600080600080600060808688031215614a50578283fd5b8535614a5b81615b96565b94506020860135614a6b81615b96565b93506040860135925060608601356001600160401b03811115614a8c578182fd5b614a988882890161492b565b969995985093965092949392505050565b60008060008060808587031215614abe578182fd5b8435614ac981615b96565b93506020850135614ad981615b96565b93969395505050506040820135916060013590565b60008060008060808587031215614b03578182fd5b8435614b0e81615b96565b93506020850135614b1e81615bab565b925060408501356001600160401b0380821115614b39578384fd5b614b458883890161496a565b93506060870135915080821115614b5a578283fd5b50614b678782880161496a565b91505092959194509250565b600080600060408486031215614b87578081fd5b8335614b9281615b96565b925060208401356001600160401b03811115614bac578182fd5b614bb88682870161492b565b9497909650939450505050565b60008060408385031215614bd7578182fd5b8235614be281615b96565b946020939093013593505050565b600080600060608486031215614c04578081fd5b8335614c0f81615b96565b92506020840135915060408401356001600160401b03811115614c30578182fd5b614c3c86828701614786565b9150509250925092565b600080600060608486031215614c5a578081fd5b8351614c6581615b96565b6020850151604086015191945092506001600160401b03811115614c87578182fd5b614c3c86828701614862565b600080600080600080600080600060a08a8c031215614cb0578687fd5b89356001600160401b0380821115614cc6578889fd5b614cd28d838e0161473e565b909b50995060208c0135915080821115614cea578889fd5b614cf68d838e0161473e565b909950975060408c0135915080821115614d0e578586fd5b614d1a8d838e0161473e565b909750955060608c01359150614d2f82615b96565b90935060808b01359080821115614d44578384fd5b50614d518c828d0161492b565b915080935050809150509295985092959850929598565b60006020808385031215614d7a578182fd5b82516001600160401b0380821115614d90578384fd5b818501915085601f830112614da3578384fd5b8151614db16146de82615b2c565b818152848101908486016040808502870188018b1015614dcf578889fd5b8896505b84871015614e325780828c031215614de9578889fd5b80518181018181108882111715614dfc57fe5b82528251614e0981615b96565b815282890151614e1881615bab565b818a01528452600196909601959287019290810190614dd3565b50909998505050505050505050565b60008060208385031215614e53578182fd5b82356001600160401b0380821115614e69578384fd5b818501915085601f830112614e7c578384fd5b813581811115614e8a578485fd5b866020604083028501011115614e9e578485fd5b60209290920196919550909350505050565b600060208284031215614ec1578081fd5b81516001600160401b03811115614ed6578182fd5b610fbb84828501614862565b60008060208385031215614ef4578182fd5b82356001600160401b03811115614f09578283fd5b614f158582860161473e565b90969095509350505050565b600060208284031215614f32578081fd5b81356109de81615bab565b600060208284031215614f4e578081fd5b81516109de81615bab565b600060208284031215614f6a578081fd5b81516001600160401b03811115614f7f578182fd5b8201601f81018413614f8f578182fd5b610fbb8482516020840161470e565b60008060408385031215614fb0578182fd5b825161ffff81168114614fc1578283fd5b60208401519092506149ee81615bab565b600060208284031215614fe3578081fd5b5035919050565b600060208284031215614ffb578081fd5b5051919050565b60008060408385031215615014578182fd5b8235915060208301356001600160401b03811115615030578182fd5b61503c85828601614786565b9150509250929050565b60008060408385031215615058578182fd5b505080516020909101519092909150565b600080600080600060a08688031215615080578283fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b6001600160a01b03169052565b15159052565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526150fd816020860160208601615b6a565b601f01601f19169290920160200192915050565b60008251615123818460208701615b6a565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0392831681529116602082015260400190565b600061012080830160018060a01b03808e1685526020818e168187015260408d8188015260608d818901528c60808901528b60a08901528a60c08901528560e0890152849550895180865261014089019650838b019550875b8181101561520957865180518716895285810151868a015284015115158489015296820196958401956001016151d8565b505050505061010094909401949094529b9a5050505050505050505050565b6001600160a01b039a8b168152988a1660208a01529690981660408801526060870194909452608086019290925260a085015260c084015260e08301526101008201929092526101208101919091526101400190565b6001600160a01b0384811682528316602082015260606040820181905260009061192c908301846150e5565b6001600160a01b03948516815292909316602083015261ffff166040820152606081019190915260800190565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b6001600160a01b0386811682528581166020830152604082018590528316606082015260a060808201819052600090611440908301846150e5565b6001600160a01b038681168252851660208201526040810184905260806060820181905260009061144090830184866150bb565b6001600160a01b03878116825286166020820152604081018590526060810184905260a0608082018190526000906153ac90830184866150bb565b98975050505050505050565b6001600160a01b03968716815294909516602085015260408401929092526060830152608082015260a081019190915260c00190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6001600160e01b031991909116815260200190565b61ffff91909116815260200190565b6000602082526109de60208301846150e5565b6020808252600f908201526e18995b1bddc81d1a1c995cda1bdb19608a1b604082015260600190565b602080825260129082015271696e76616c6964206173736574206461746160701b604082015260600190565b6020808252601790820152761a5b9d985b1a59081b1a5c5d5a591a5d1e535a5b9d1959604a1b604082015260600190565b6020808252601290820152711391951cc81b9bdd081cdd5c1c1bdc9d195960721b604082015260600190565b6020808252600c908201526b1b9bdd081d995c9a599a595960a21b604082015260600190565b6020808252601390820152721b995959081dda5d1a191c985dc8185cdcd95d606a1b604082015260600190565b60208082526013908201527234b73b30b634b2103a3930b739b0b1ba34b7b760691b604082015260600190565b6020808252601390820152726f6e6c79206f776e65722c20666163746f727960681b604082015260600190565b6020808252600f908201526e636f6f6c646f776e2061637469766560881b604082015260600190565b6020808252601c908201527b6f6e6c79206d616e616765722c207472616465722c207075626c696360201b604082015260600190565b6020808252600c908201526b6f6e6c79206d656d6265727360a01b604082015260600190565b6020808252600c908201526b37b7363c9036b0b730b3b2b960a11b604082015260600190565b6020808252601290820152716e6f7420656e6f7567682062616c616e636560701b604082015260600190565b6020808252601b908201527a37b7363c903837b7b610333630b9b4103637b0b71037b934b3b4b760291b604082015260600190565b6020808252600f908201526e0e6eae0e0d8f240dad2e6dac2e8c6d608b1b604082015260600190565b6020808252600f908201526e696e76616c6964206164647265737360881b604082015260600190565b6020808252600e908201526d195e1a5d1199594819985a5b195960921b604082015260600190565b6020808252600e908201526d0ecc2d8eaca40dad2e6dac2e8c6d60931b604082015260600190565b6020808252600c908201526b1bdb9b1e48185b1b1bddd95960a21b604082015260600190565b6020808252600990820152681d1e0819985a5b195960ba1b604082015260600190565b60208082526010908201526f34b73b30b634b21031b7b7b63237bbb760811b604082015260600190565b6020808252600e908201526d185cdcd95d08191a5cd8589b195960921b604082015260600190565b6020808252600d908201526c6869676820736c69707061676560981b604082015260600190565b6020808252600a908201526937b7363c9037bbb732b960b11b604082015260600190565b6020808252601590820152741a5b9d985b1a590819195c1bdcda5d08185cdcd95d605a1b604082015260600190565b60208082526011908201527031b0b7103bb4ba34323930bb9039b7b7b760791b604082015260600190565b6020808252601690820152756869676820776974686472617720736c69707061676560501b604082015260600190565b60208082526010908201526f18dbdb9d1c9858dd1cc81c185d5cd95960821b604082015260600190565b6020808252600d908201526c1a5b9d985b1a590819dd585c99609a1b604082015260600190565b6020808252600b908201526a1c1bdbdb081c185d5cd95960aa1b604082015260600190565b60208082526010908201526f1b995959081b5a5b8819195c1bdcda5d60821b604082015260600190565b6020808252601490820152736f6e6c792067756172646564206164647265737360601b604082015260600190565b6020808252601490820152731a5b9d985b1a59081b195b991a5b99c81c1bdbdb60621b604082015260600190565b60006020825282516101a08060208501526159e16101c08501836150e5565b915060208501516040850152604085015160608501526060850151615a0960808601826150a8565b506080850151848303601f190160a0860152615a2583826150e5565b92505060a085015160c085015260c0850151615a4460e08601826150b5565b5060e08501516101008581019190915285015161012080860191909152850151610140808601919091528501516101608086019190915285015161018080860191909152909401519390920192909252919050565b90815260200190565b60ff91909116815260200190565b6000808335601e19843603018112615ac6578283fd5b8301803591506001600160401b03821115615adf578283fd5b60200191503681900382131561477f57600080fd5b60008235603e19833603018112615123578182fd5b6040518181016001600160401b0381118282101715615b2457fe5b604052919050565b60006001600160401b03821115615b3f57fe5b5060209081020190565b60006001600160401b03821115615b5c57fe5b50601f01601f191660200190565b60005b83811015615b85578181015183820152602001615b6d565b838111156125575750506000910152565b6001600160a01b0381168114610adb57600080fd5b8015158114610adb57600080fdfe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735265656e7472616e637947756172643a207265656e7472616e742063616c6c0045524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220eed382c102007f4a9a5cbc8317f93705e187cdbba6fdfe42d5c3360ddeb652c764736f6c63430007060033