0 txs
0 calls
constructor
constructor(address _myo, address _router)
functions
authorized
viewfunction authorized(address) view returns (bool)
ETHBank
viewfunction ETHBank() view returns (address)
ETHLeftUnclaimed
viewfunction ETHLeftUnclaimed() view returns (uint256)
ETHLeftUnshared
viewfunction ETHLeftUnshared() view returns (uint256)
ETHPerBlock
viewfunction ETHPerBlock() view returns (uint256)
getMultiplier
purefunction getMultiplier(uint256 _from, uint256 _to) pure returns (uint256)
isEmergency
viewfunction isEmergency() view returns (bool)
isNFTContract
viewfunction isNFTContract(address) view returns (bool)
Myobu
viewfunction Myobu() view returns (address)
numdays
viewfunction numdays() view returns (uint256)
owner
viewfunction owner() view returns (address)
pendingRewards
viewfunction pendingRewards(uint256 _pid, address _user) view returns (uint256, uint256)
poolExistence
viewfunction poolExistence(address) view returns (bool)
poolInfo
viewfunction poolInfo(uint256) view returns (address lpToken, uint64 allocPoint, uint64 lastRewardBlock, uint112 accRwtPerShare, uint112 accETHPerShare, uint112 weightedBalance)
poolLength
viewfunction poolLength() view returns (uint256)
router
viewfunction router() view returns (address)
rwt
viewfunction rwt() view returns (address)
rwtPerBlock
viewfunction rwtPerBlock() view returns (uint256)
startBlock
viewfunction startBlock() view returns (uint256)
tokenReleased
viewfunction tokenReleased() view returns (bool)
totalAllocPoint
viewfunction totalAllocPoint() view returns (uint256)
userInfo
viewfunction userInfo(uint256, address) view returns (uint16 boostPointsBP, uint16 lockTimeBoost, uint32 lockedUntil, uint96 claimableRWT, uint96 claimableETH, uint112 amount, uint112 weightedBalance, uint112 rewardDebt, uint112 ETHrewardDebt)
WETH
viewfunction WETH() view returns (address)
add
nonpayablefunction add(uint64 _allocPoint, address _lpToken, bool _withUpdate)
addLiquidityNoFeeAndStake
payablefunction addLiquidityNoFeeAndStake(uint256 amountTokensIn, uint256 amountETHMin, uint256 amountTokenMin, uint256 lockTime) payable
addNFTContract
nonpayablefunction addNFTContract(address NFTcontract)
addToClaimable
nonpayablefunction addToClaimable(uint256 _pid, address sender)
authorize
nonpayablefunction authorize(address _address)
boostWithNFT
nonpayablefunction boostWithNFT(uint256 _pid, address NFTContract, uint256 tokenID)
buyAndStakeETH
payablefunction buyAndStakeETH(uint256 amountOutMin, uint256 lockTime) payable
deposit
nonpayablefunction deposit(uint256 _pid, uint256 _amount, uint256 lockTime)
depositFor
nonpayablefunction depositFor(address sender, uint256 _pid, uint256 amount, uint256 lockTime)
emergency
nonpayablefunction emergency(bool _isEmergency)
emergencyWithdraw
nonpayablefunction emergencyWithdraw(uint256 _pid)
massUpdatePools
nonpayablefunction massUpdatePools()
onERC721Received
nonpayablefunction onERC721Received(address, address, uint256, bytes) returns (bytes4)
reinvestETHRewards
nonpayablefunction reinvestETHRewards(uint256 amountOutMin)
renounceOwnership
nonpayablefunction renounceOwnership()
rescueToken
nonpayablefunction rescueToken(address tokenAddress)
set
nonpayablefunction set(uint256 _pid, uint64 _allocPoint, bool _withUpdate)
setETHBank
nonpayablefunction setETHBank(address _ETHBank)
setnumdays
nonpayablefunction setnumdays(uint256 _days)
setRewardToken
nonpayablefunction setRewardToken(address _RWT, uint256 _rwtPerBlock)
setRouter
nonpayablefunction setRouter(address _router)
startRewards
nonpayablefunction startRewards()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unauthorize
nonpayablefunction unauthorize(address _address)
updateEmissionRate
nonpayablefunction updateEmissionRate(uint256 _rwtPerBlock)
updatePool
nonpayablefunction updatePool(uint256 _pid)
updateUserWeightedBalance
nonpayablefunction updateUserWeightedBalance(uint256 _pid, address _user)
withdraw
nonpayablefunction withdraw(uint32 _pid, uint256 _amount)
withdrawNFT
nonpayablefunction withdrawNFT(uint256 _pid, address NFTContract, uint256 tokenID)
events
Deposit
event Deposit(address indexed user, uint256 indexed pid, uint256 amount)
Emergency
event Emergency(uint256 timestamp, bool ifEmergency)
EmergencyWithdraw
event EmergencyWithdraw(address indexed user, uint256 indexed pid, uint256 amount)
NFTStaked
event NFTStaked(address indexed user, address indexed NFTContract, uint256 tokenID)
NFTWithdrawn
event NFTWithdrawn(address indexed user, address indexed NFTContract, uint256 tokenID)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RewardTokenSet
event RewardTokenSet(address indexed tokenAddress, uint256 indexed rwtPerBlock, uint256 timestamp)
TokensLocked
event TokensLocked(address indexed user, uint256 timestamp, uint256 lockTime)
UpdateEmissionRate
event UpdateEmissionRate(address indexed user, uint256 rwtPerBlock)
Withdraw
event Withdraw(address indexed user, uint256 indexed pid, uint256 amount)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b5060405162005e0938038062005e0983398101604081905262000034916200016c565b6200003f3362000103565b60018055600280546001600160a01b038085166001600160a01b031992831617909255600480549284169290911682178155604080516315ab88c960e31b8152905163ad5c4648928281019260209291908290030181865afa158015620000aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000d09190620001ab565b600580546001600160a01b0319166001600160a01b039290921691909117905550506000196010556001600c55620001d2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200016957600080fd5b50565b600080604083850312156200018057600080fd5b82516200018d8162000153565b6020840151909250620001a08162000153565b809150509250929050565b600060208284031215620001be57600080fd5b8151620001cb8162000153565b9392505050565b615c2780620001e26000396000f3fe6080604052600436106103425760003560e01c80635f2ecf8a116101b0578063ad5c4648116100ec578063d18df53c11610095578063f0b37c041161006f578063f0b37c0414610b3c578063f2fde38b14610b5c578063f77a3fb914610b7c578063f887ea4014610b9c57610361565b8063d18df53c14610ac7578063d89ea34b14610afc578063e1886f6914610b1c57610361565b8063c0d78655116100c6578063c0d7865514610a57578063cbd258b514610a77578063cfac5d7c14610aa757610361565b8063ad5c4648146109e7578063b6a5d7de14610a07578063b918161114610a2757610361565b806367dcaf94116101595780638dbb1e3a116101335780638dbb1e3a1461084257806393f1a40b146108625780639f966662146109a7578063aa97b0a0146109c757610361565b806367dcaf94146107f9578063715018a61461080f5780638da5cb5b1461082457610361565b8063614f33641161018a578063614f3364146107a4578063630b5ba1146107c457806364524c2b146107d957610361565b80635f2ecf8a1461074f5780635f9e8f821461076557806360c6843e1461078457610361565b80633f21f5cb1161027f57806351eb05a61161022857806354f29ce21161020257806354f29ce2146106e35780635975e332146106f95780635dd19829146107195780635f228a3d1461073957610361565b806351eb05a6146106835780635312ea8e146106a357806353398119146106c357610361565b806348cd4cb11161025957806348cd4cb1146106335780634a76564e146106495780634d90dd421461066357610361565b80633f21f5cb146105e0578063401519b6146105f35780634460d3cf1461061357610361565b8063150b7a02116102ec5780631a9bd1c9116102c65780631a9bd1c91461055d5780632d5310e7146105955780632dfd0bdc146105b55780633312edf2146105ca57610361565b8063150b7a02146104585780631526fe27146104cd57806317caf6f11461054757610361565b806309aaf6841161031d57806309aaf684146103d85780630ba84cd2146104185780630e19dc3a1461043857610361565b8062aeef8a1461038157806306f43a8c146103a1578063081e3eda146103b457610361565b36610361576006546001600160a01b031633141561035f57600080fd5b005b34600a6000828254610373919061547d565b9091555061035f9050610bbc565b34801561038d57600080fd5b5061035f61039c366004615495565b610be5565b61035f6103af3660046154c1565b610c57565b3480156103c057600080fd5b50600d545b6040519081526020015b60405180910390f35b3480156103e457600080fd5b506104086103f3366004615508565b60076020526000908152604090205460ff1681565b60405190151581526020016103cf565b34801561042457600080fd5b5061035f610433366004615525565b6110e7565b34801561044457600080fd5b5061035f61045336600461553e565b611203565b34801561046457600080fd5b5061049c6104733660046155a2565b7f150b7a0200000000000000000000000000000000000000000000000000000000949350505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016103cf565b3480156104d957600080fd5b506104ed6104e8366004615525565b6115c2565b604080516001600160a01b03909716875267ffffffffffffffff958616602088015294909316938501939093526dffffffffffffffffffffffffffff908116606085015291821660808401521660a082015260c0016103cf565b34801561055357600080fd5b506103c5600f5481565b34801561056957600080fd5b5060035461057d906001600160a01b031681565b6040516001600160a01b0390911681526020016103cf565b3480156105a157600080fd5b5061035f6105b03660046156a0565b61165e565b3480156105c157600080fd5b5061035f611c03565b3480156105d657600080fd5b506103c560085481565b61035f6105ee3660046156d8565b611d46565b3480156105ff57600080fd5b5061035f61060e366004615725565b6121d2565b34801561061f57600080fd5b5061035f61062e366004615508565b6122f8565b34801561063f57600080fd5b506103c560105481565b34801561065557600080fd5b506011546104089060ff1681565b34801561066f57600080fd5b5061035f61067e366004615765565b612511565b34801561068f57600080fd5b5061035f61069e366004615525565b6125c2565b3480156106af57600080fd5b5061035f6106be366004615525565b6128b2565b3480156106cf57600080fd5b5061035f6106de366004615795565b612ace565b3480156106ef57600080fd5b506103c5600a5481565b34801561070557600080fd5b5061035f6107143660046156a0565b612b9b565b34801561072557600080fd5b5061035f610734366004615765565b612f1f565b34801561074557600080fd5b506103c5600c5481565b34801561075b57600080fd5b506103c5600b5481565b34801561077157600080fd5b5060115461040890610100900460ff1681565b34801561079057600080fd5b5060065461057d906001600160a01b031681565b3480156107b057600080fd5b5061035f6107bf3660046157b2565b61323a565b3480156107d057600080fd5b5061035f6132d6565b3480156107e557600080fd5b5060025461057d906001600160a01b031681565b34801561080557600080fd5b506103c560095481565b34801561081b57600080fd5b5061035f613301565b34801561083057600080fd5b506000546001600160a01b031661057d565b34801561084e57600080fd5b506103c561085d3660046156d8565b613365565b34801561086e57600080fd5b5061092e61087d366004615765565b600e60209081526000928352604080842090915290825290208054600182015460029092015461ffff808316936201000084049091169263ffffffff640100000000820416926bffffffffffffffffffffffff6801000000000000000083048116937401000000000000000000000000000000000000000090930416916dffffffffffffffffffffffffffff808216926e010000000000000000000000000000928390048216928183169291041689565b6040805161ffff9a8b1681529990981660208a015263ffffffff909616968801969096526bffffffffffffffffffffffff93841660608801529290911660808601526dffffffffffffffffffffffffffff90811660a086015290811660c085015291821660e084015216610100820152610120016103cf565b3480156109b357600080fd5b5061035f6109c2366004615508565b613378565b3480156109d357600080fd5b5061035f6109e23660046157ed565b61340c565b3480156109f357600080fd5b5060055461057d906001600160a01b031681565b348015610a1357600080fd5b5061035f610a22366004615508565b6136e1565b348015610a3357600080fd5b50610408610a42366004615508565b60136020526000908152604090205460ff1681565b348015610a6357600080fd5b5061035f610a72366004615508565b61377d565b348015610a8357600080fd5b50610408610a92366004615508565b60126020526000908152604090205460ff1681565b348015610ab357600080fd5b5061035f610ac2366004615508565b613811565b348015610ad357600080fd5b50610ae7610ae2366004615765565b6138ad565b604080519283526020830191909152016103cf565b348015610b0857600080fd5b5061035f610b17366004615525565b613b6b565b348015610b2857600080fd5b5061035f610b37366004615525565b613fb7565b348015610b4857600080fd5b5061035f610b57366004615508565b61402f565b348015610b6857600080fd5b5061035f610b77366004615508565b6140c8565b348015610b8857600080fd5b5061035f610b9736600461581b565b6141a7565b348015610ba857600080fd5b5060045461057d906001600160a01b031681565b600c54610bcb90611900615839565b600a54610bd891906158a5565b600955610be36132d6565b565b60026001541415610c3d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600155610c4e338484846142f4565b50506001805550565b60026001541415610caa5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c34565b60026001556040805160c08101825260008082526020808301829052828401829052606083018290526080830182905260a083018290523382527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c90529190912034610d1557600080fd5b62093a808310158015610d2c57506301dfe2008311155b8015610d505750610d3d428461547d565b8154640100000000900463ffffffff1611155b80610d74575082158015610d74575080544264010000000090910463ffffffff1610155b610e0c5760405162461bcd60e51b815260206004820152604260248201527f6164644c69717569646974794e6f466565416e645374616b65203a2043616e2760448201527f74206c6f636b20746f6b656e7320666f72206c657373207468616e203120776560648201527f656b000000000000000000000000000000000000000000000000000000000000608482015260a401610c34565b610e1660006125c2565b60018101546e01000000000000000000000000000090046dffffffffffffffffffffffffffff1615610e4d57610e4d60003361480a565b6002546040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018890526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610ebd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee191906158b9565b50600d600081548110610ef657610ef66158d6565b60009182526020808320600392909202909101546001600160a01b03908116855230918501918252606085018781526080860189815260408088018c81524260a08a0190815260025492517f8cdbadbf0000000000000000000000000000000000000000000000000000000081528a5187166004820152965186166024880152905160448701529251606486015290516084850152905160a48401528392911690638cdbadbf90349060c40160606040518083038185885af1158015610fc0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fe59190615905565b90935091503390506108fc610ffa8434615933565b6040518115909202916000818181858888f19350505050158015611022573d6000803e3d6000fd5b5060018301805482919060009061104a9084906dffffffffffffffffffffffffffff1661594a565b92506101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff16021790555060008511156110965761109133600087614b44565b6110a1565b6110a1600033612f1f565b60405181815260009033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159060200160405180910390a3505060018055505050505050565b6000546001600160a01b031633146111415760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c34565b60115460ff1615156001146111be5760405162461bcd60e51b815260206004820152602860248201527f757064617465456d697373696f6e526174653a2052657761726420746f6b656e60448201527f206e6f74207365740000000000000000000000000000000000000000000000006064820152608401610c34565b6111c66132d6565b600881905560405181815233907fe2492e003bbe8afa53088b406f0c1cb5d9e280370fc72a74cf116ffd343c40539060200160405180910390a250565b600260015414156112565760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c34565b60026001819055506000600d8363ffffffff1681548110611279576112796158d6565b6000918252602080832063ffffffff8088168552600e83526040808620338752909352919093208054600390930290930193504264010000000090920416106113505760405162461bcd60e51b815260206004820152605860248201527f77697468647261773a20546f6b656e73206c6f636b65642c20696620796f752760448201527f726520747279696e6720746f20636c61696d20796f757220726577617264732060648201527f75736520746865206465706f7369742066756e6374696f6e0000000000000000608482015260a401610c34565b60018101546dffffffffffffffffffffffffffff1683118015906113745750600083115b6113c05760405162461bcd60e51b815260206004820152601260248201527f77697468647261773a206e6f7420676f6f6400000000000000000000000000006044820152606401610c34565b6113cf8463ffffffff166125c2565b60018101546e01000000000000000000000000000090046dffffffffffffffffffffffffffff16156114f35761140b8463ffffffff163361480a565b60115460ff16156114855780546801000000000000000090046bffffffffffffffffffffffff161561148557805461145e9033906801000000000000000090046bffffffffffffffffffffffff16614df0565b80547fffffffffffffffffffffffff000000000000000000000000ffffffffffffffff1681555b80547401000000000000000000000000000000000000000090046bffffffffffffffffffffffff16156114f35780546114e59033907401000000000000000000000000000000000000000090046bffffffffffffffffffffffff16614ff9565b80546001600160a01b031681555b60018101546115139084906dffffffffffffffffffffffffffff16615933565b6001820180547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff92909216919091179055815461156a906001600160a01b0316338561505a565b61157a8463ffffffff1633612f1f565b60405183815263ffffffff85169033907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568906020015b60405180910390a35050600180555050565b600d81815481106115d257600080fd5b60009182526020909120600390910201805460018201546002909201546001600160a01b038216935067ffffffffffffffff74010000000000000000000000000000000000000000909204821692918216916dffffffffffffffffffffffffffff68010000000000000000909104811691808216916e0100000000000000000000000000009091041686565b600260015414156116b15760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c34565b60026001556000838152600e6020908152604080832033808552925282206003015490919081906116e1876125c2565b6116eb878561480a565b60005b6000888152600e602090815260408083206001600160a01b03891684529091529020600301548110156117db576000888152600e602090815260408083206001600160a01b038981168552925290912060030180549189169183908110611757576117576158d6565b6000918252602090912001546001600160a01b031614156117c9576000888152600e602090815260408083206001600160a01b038916845290915290206004018054879190839081106117ac576117ac6158d6565b906000526020600020015414156117c957600192508093506117db565b806117d38161597c565b9150506116ee565b5060018215151461182e5760405162461bcd60e51b815260206004820152601c60248201527f77697468647261774e46542c20746f6b656e206e6f7420666f756e64000000006044820152606401610c34565b6040517f5077efc3000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b03871690635077efc390602401602060405180830381865afa15801561188c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b091906159b5565b6000888152600e602090815260408083206001600160a01b0389168452909152812080549091906118e690849061ffff166159ce565b825461ffff9182166101009390930a9283029190920219909116179055506000878152600e602090815260408083206001600160a01b03881684529091529020600301611934600183615933565b81548110611944576119446158d6565b6000918252602080832090910154898352600e825260408084206001600160a01b038981168652935290922060030180549190921691908590811061198b5761198b6158d6565b600091825260208083209190910180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03948516179055898252600e815260408083209388168352929052206003018054806119f2576119f26159f1565b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055909201909255888252600e815260408083206001600160a01b03881684529091529020600401611a79600183615933565b81548110611a8957611a896158d6565b6000918252602080832090910154898352600e825260408084206001600160a01b03891685529092529120600401805485908110611ac957611ac96158d6565b6000918252602080832090910192909255888152600e825260408082206001600160a01b038816835290925220600401805480611b0857611b086159f1565b60019003818190600052602060002001600090559055611b288785612f1f565b6040517f42842e0e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038581166024830152604482018790528716906342842e0e90606401600060405180830381600087803b158015611b9157600080fd5b505af1158015611ba5573d6000803e3d6000fd5b50505050856001600160a01b0316846001600160a01b03167fbbde41973f9ce4890f7ad9762c23d8191f261fd643bdf13ed8bbc10549b49fcb87604051611bee91815260200190565b60405180910390a35050600180555050505050565b6000546001600160a01b03163314611c5d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c34565b4360105411611cd45760405162461bcd60e51b815260206004820152602560248201527f7374617274526577617264733a207265776172647320616c726561647920737460448201527f61727465640000000000000000000000000000000000000000000000000000006064820152608401610c34565b4360105560005b600d54811015611d435743600d8281548110611cf957611cf96158d6565b906000526020600020906003020160010160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508080611d3b9061597c565b915050611cdb565b50565b60026001541415611d995760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c34565b60026001553360009081527fa7c5ba7114a813b50159add3a36832908dc83db71d0b9a24c2ad0f83be9582076020526040902034611dd657600080fd5b62093a808210158015611ded57506301dfe2008211155b8015611e115750611dfe428361547d565b8154640100000000900463ffffffff1611155b80611e35575081158015611e35575080544264010000000090910463ffffffff1610155b611ea75760405162461bcd60e51b815260206004820152603760248201527f627579416e645374616b65455448203a2043616e2774206c6f636b20746f6b6560448201527f6e7320666f72206c657373207468616e2031207765656b0000000000000000006064820152608401610c34565b611eb160016125c2565b60018101546e01000000000000000000000000000090046dffffffffffffffffffffffffffff1615611ee857611ee860013361480a565b6002546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015611f4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6e91906159b5565b6040805160028082526060820183529293506000929091602083019080368337505060055482519293506001600160a01b031691839150600090611fb457611fb46158d6565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611fe557611fe56158d6565b6001600160a01b039283166020918202929092010152600480546040517fb6f9de9500000000000000000000000000000000000000000000000000000000815292169163b6f9de95913491612042918a9187913091429101615a20565b6000604051808303818588803b15801561205b57600080fd5b505af115801561206f573d6000803e3d6000fd5b50506002546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600094508693506001600160a01b0390911691506370a0823190602401602060405180830381865afa1580156120da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120fe91906159b5565b6121089190615933565b600185015490915061212b9082906dffffffffffffffffffffffffffff1661547d565b6001850180547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff9290921691909117905584156121835761217e33600187614b44565b61218e565b61218e600133612f1f565b60405181815260019033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159060200160405180910390a350506001805550505050565b6000546001600160a01b0316331461222c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c34565b801561223a5761223a6132d6565b8167ffffffffffffffff16600d8481548110612258576122586158d6565b6000918252602090912060039091020154600f546122989174010000000000000000000000000000000000000000900467ffffffffffffffff1690615933565b6122a2919061547d565b600f8190555081600d84815481106122bc576122bc6158d6565b906000526020600020906003020160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505050565b6000546001600160a01b031633146123525760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c34565b6003546001600160a01b0382811691161480159061238957506001600160a01b03811660009081526012602052604090205460ff16155b6123fb5760405162461bcd60e51b815260206004820152602160248201527f726573637565546f6b656e203a2077726f6e6720746f6b656e2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610c34565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561245b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247f91906159b5565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af11580156124e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250c91906158b9565b505050565b600260015414156125645760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c34565b60026001556000828152600e602090815260408083206001600160a01b03851684529091529020544264010000000090910463ffffffff1610156125a757600080fd5b6125b0826125c2565b6125ba828261480a565b505060018055565b6000600d82815481106125d7576125d76158d6565b60009182526020909120600390910201600181015490915067ffffffffffffffff164311612603575050565b60028101546e01000000000000000000000000000090046dffffffffffffffffffffffffffff168015806126585750815474010000000000000000000000000000000000000000900467ffffffffffffffff16155b15612696575060010180547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164367ffffffffffffffff1617905550565b60018201546000906126b29067ffffffffffffffff1643613365565b60115490915060ff161561278c57600f5483546008546000929174010000000000000000000000000000000000000000900467ffffffffffffffff16906126f99085615839565b6127039190615839565b61270d91906158a5565b90508261271f8264e8d4a51000615839565b61272991906158a5565b600185015461275491906801000000000000000090046dffffffffffffffffffffffffffff1661547d565b8460010160086101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550505b600f5483546009546000929174010000000000000000000000000000000000000000900467ffffffffffffffff16906127c59085615839565b6127cf9190615839565b6127d991906158a5565b905080600b546127e9919061547d565b600b55600a546127fa908290615933565b600a558261280d8264e8d4a51000615839565b61281791906158a5565b600285015461283691906dffffffffffffffffffffffffffff1661547d565b6002850180547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff9290921691909117905550505060010180547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000164367ffffffffffffffff1617905550565b600260015414156129055760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c34565b60026001908155601154610100900460ff1615151461298c5760405162461bcd60e51b815260206004820152602260248201527f6f6e6c79456d657267656e63793a20456d657267656e637920757365206f6e6c60448201527f79210000000000000000000000000000000000000000000000000000000000006064820152608401610c34565b6000600d82815481106129a1576129a16158d6565b60009182526020808320858452600e80835260408086203387529093529190932060018101546003939093029093016002810180549195506dffffffffffffffffffffffffffff808516946e010000000000000000000000000000908190048216949293612a1492869290910416615a8a565b82546dffffffffffffffffffffffffffff9182166101009390930a9283029190920219909116179055506001820180547fffffffff000000000000000000000000000000000000000000000000000000009081169091556002830180549091169055815467ffffffffffffffff1682558254612a9a906001600160a01b0316338361505a565b604051818152849033907fbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae0595906020016115b0565b6000546001600160a01b03163314612b285760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c34565b601180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100831515908102919091179091556040805142815260208101929092527fff8db90c07460bbb951945fef7481379809de7701710f89abe56cbaa5216df1e910160405180910390a150565b60026001541415612bee5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c34565b6002600155333214612c425760405162461bcd60e51b815260206004820152601b60248201527f626f6f7374576974684e4654203a206e6f20636f6e74726163747300000000006044820152606401610c34565b6001600160a01b03821660009081526007602052604090205460ff16612cd05760405162461bcd60e51b815260206004820152602860248201527f626f6f7374576974684e46543a20696e636f727265637420636f6e747261637460448201527f20616464726573730000000000000000000000000000000000000000000000006064820152608401610c34565b6000838152600e602090815260408083203384529091529020544264010000000090910463ffffffff161015612d0557600080fd5b612d0e836125c2565b612d18833361480a565b6040517f42842e0e000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290526001600160a01b038316906342842e0e90606401600060405180830381600087803b158015612d7f57600080fd5b505af1158015612d93573d6000803e3d6000fd5b5050506000848152600e602090815260408083203384528252808320600381018054600180820183559186528486200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a16908117909155600492830180549283018155865293909420909301859055517f5077efc30000000000000000000000000000000000000000000000000000000081529182018490529150635077efc390602401602060405180830381865afa158015612e61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e8591906159b5565b6000848152600e6020908152604080832033845290915281208054909190612eb290849061ffff16615ab1565b92506101000a81548161ffff021916908361ffff160217905550612ed68333612f1f565b6040518181526001600160a01b0383169033907fbbde41973f9ce4890f7ad9762c23d8191f261fd643bdf13ed8bbc10549b49fcb9060200160405180910390a350506001805550565b6000600d8381548110612f3457612f346158d6565b60009182526020808320868452600e825260408085206001600160a01b0388168652909252908320600181015460026003909402909201928301549294509291612fa8916dffffffffffffffffffffffffffff6e010000000000000000000000000000918290048116929190910416615a8a565b82546dffffffffffffffffffffffffffff9190911691504264010000000090910463ffffffff16101561302a576001820180547fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff16905581547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff1682556130cb565b8154620f4240906130419061ffff166103e8615ab1565b835461ffff9182169161305d91620100009004166103e8615ab1565b60018501546130809161ffff16906dffffffffffffffffffffffffffff16615ace565b61308a9190615ace565b6130949190615b04565b82600101600e6101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff1602179055505b60018201546130fc906e01000000000000000000000000000090046dffffffffffffffffffffffffffff168261547d565b6002840180547fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000006dffffffffffffffffffffffffffff9384168102919091179091556001808601549085015464e8d4a510009361317d936801000000000000000090930481169290910416615ace565b6131879190615b04565b600283810180547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff938416179055840154600184015464e8d4a51000926131f3928116916e010000000000000000000000000000900416615ace565b6131fd9190615b04565b82600201600e6101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff1602179055505050505050565b3360009081526013602052604090205460ff1615156001146132c45760405162461bcd60e51b815260206004820152602660248201527f6f6e6c79417574686f72697a65643a2061646472657373206e6f74206175746860448201527f6f72697a656400000000000000000000000000000000000000000000000000006064820152608401610c34565b6132d0848484846142f4565b50505050565b600d5460005b818110156132fd576132ed816125c2565b6132f68161597c565b90506132dc565b5050565b6000546001600160a01b0316331461335b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c34565b610be36000615121565b60006133718383615933565b9392505050565b6000546001600160a01b031633146133d25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c34565b600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6000546001600160a01b031633146134665760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c34565b6001600160a01b038216600090815260126020526040902054829060ff16156134d15760405162461bcd60e51b815260206004820152601960248201527f6e6f6e4475706c6963617465643a206475706c696361746564000000000000006044820152606401610c34565b81156134df576134df6132d6565b600060105443116134f2576010546134f4565b435b90508467ffffffffffffffff16600f5461350e919061547d565b600f556001600160a01b039384166000818152601260209081526040808320805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091168117909155815160c08101835294855267ffffffffffffffff998a16928501928352948916908401908152606084018381526080850184815260a08601858152600d8054988901815590955294517fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb560039097029687018054945191909a167fffffffff000000000000000000000000000000000000000000000000000000009485161774010000000000000000000000000000000000000000918c169190910217909855517fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb6850180549851919099167fffffffffffffffffffff0000000000000000000000000000000000000000000090981697909717680100000000000000006dffffffffffffffffffffffffffff988916021790975590517fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb79092018054915192861691909616176e0100000000000000000000000000009190941602929092179092555050565b6000546001600160a01b0316331461373b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c34565b6001600160a01b0316600090815260136020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000546001600160a01b031633146137d75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c34565b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461386b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c34565b6001600160a01b0316600090815260076020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000806000600d85815481106138c5576138c56158d6565b60009182526020808320888452600e825260408085206001600160a01b038a168652909252908320600180820154600390940290920191820154600283015492955090936dffffffffffffffffffffffffffff6e01000000000000000000000000000094859004811694680100000000000000008404821694808316949190049091169190819067ffffffffffffffff164311801561396357508215155b15613b5a5760018801546000906139849067ffffffffffffffff1643613365565b600f548a546008549293506000927401000000000000000000000000000000000000000090910467ffffffffffffffff16906139c09085615839565b6139ca9190615839565b6139d491906158a5565b9050846139e68264e8d4a51000615839565b6139f091906158a5565b6139fa908861547d565b600f548b546009549299506000927401000000000000000000000000000000000000000090910467ffffffffffffffff1690613a369086615839565b613a409190615839565b613a4a91906158a5565b905085613a5c8264e8d4a51000615839565b613a6691906158a5565b613a70908861547d565b8a5460028c01549198506801000000000000000090046bffffffffffffffffffffffff16906dffffffffffffffffffffffffffff1664e8d4a51000613ab58b8d615839565b613abf91906158a5565b613ac99190615933565b613ad3919061547d565b8a5460028c01549196507401000000000000000000000000000000000000000090046bffffffffffffffffffffffff16906e01000000000000000000000000000090046dffffffffffffffffffffffffffff1664e8d4a51000613b368a8d615839565b613b4091906158a5565b613b4a9190615933565b613b54919061547d565b93505050505b909b909a5098505050505050505050565b60026001541415613bbe5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c34565b60026001553360009081527fa7c5ba7114a813b50159add3a36832908dc83db71d0b9a24c2ad0f83be9582076020526040902080544264010000000090910463ffffffff161015613c0e57600080fd5b613c1860016125c2565b80546002820154600d80546000937401000000000000000000000000000000000000000090046bffffffffffffffffffffffff16926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169164e8d4a51000916001908110613c8857613c886158d6565b60009182526020909120600260039092020101546001860154613cd0916dffffffffffffffffffffffffffff908116916e010000000000000000000000000000900416615ace565b613cda9190615b04565b613ce49190615a8a565b613cee919061594a565b6dffffffffffffffffffffffffffff16905060008111613d0d57600080fd5b604080516002808252606082018352600092602083019080368337505060055482519293506001600160a01b031691839150600090613d4e57613d4e6158d6565b6001600160a01b039283166020918202929092010152600254825191169082906001908110613d7f57613d7f6158d6565b60200260200101906001600160a01b031690816001600160a01b031681525050600b54821115613daf57600b5491505b6002546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015613e11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e3591906159b5565b600480546040517fb6f9de950000000000000000000000000000000000000000000000000000000081529293506001600160a01b03169163b6f9de95918691613e86918a9188913091429101615a20565b6000604051808303818588803b158015613e9f57600080fd5b505af1158015613eb3573d6000803e3d6000fd5b50506002546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600094508593506001600160a01b0390911691506370a0823190602401602060405180830381865afa158015613f1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f4291906159b5565b613f4c9190615933565b6001860180549192508291600090613f759084906dffffffffffffffffffffffffffff1661594a565b82546dffffffffffffffffffffffffffff9182166101009390930a92830291909202199091161790555084546001600160a01b0316855561218e600133612f1f565b6000546001600160a01b031633146140115760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c34565b6000811180156140215750600e81105b61402a57600080fd5b600c55565b6000546001600160a01b031633146140895760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c34565b6001600160a01b0316600090815260136020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000546001600160a01b031633146141225760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c34565b6001600160a01b03811661419e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610c34565b611d4381615121565b6000546001600160a01b031633146142015760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c34565b60115460ff16156142545760405162461bcd60e51b815260206004820152601860248201527f52657761726420746f6b656e20616c72656164792073657400000000000000006044820152606401610c34565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0384169081179091556008829055601180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556040514281528291907fb75e540d948d21695cea1c0838e8d12cdabb7cb689e1cd1dc05f88d2c49448879060200160405180910390a35050565b6000600d8481548110614309576143096158d6565b60009182526020808320878452600e825260408085206001600160a01b038b168652909252922060039091029091019150614343856125c2565b60018101546e01000000000000000000000000000090046dffffffffffffffffffffffffffff161561462d578315801561437b575082155b156146235760115460ff16156144d35780546002820154600184810154908401546000936bffffffffffffffffffffffff680100000000000000009182900416936dffffffffffffffffffffffffffff9081169364e8d4a51000936143f9939091048216916e01000000000000000000000000000090910416615ace565b6144039190615b04565b61440d9190615a8a565b614417919061594a565b6dffffffffffffffffffffffffffff1690508015614439576144398782614df0565b6001808401549083015464e8d4a5100091614486916dffffffffffffffffffffffffffff680100000000000000009092048216916e01000000000000000000000000000090910416615ace565b6144909190615b04565b6002830180547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff92909216919091179055505b80546002808301549084015460018401546000936bffffffffffffffffffffffff7401000000000000000000000000000000000000000090910416926dffffffffffffffffffffffffffff6e0100000000000000000000000000009182900481169364e8d4a510009361454d939183169291900416615ace565b6145579190615b04565b6145619190615a8a565b61456b919061594a565b6dffffffffffffffffffffffffffff169050801561460f5761458d8782614ff9565b6002830154600183015464e8d4a51000916145ce916dffffffffffffffffffffffffffff918216916e01000000000000000000000000000090910416615ace565b6145d89190615b04565b82600201600e6101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff1602179055505b50805467ffffffffffffffff16815561462d565b61462d858761480a565b831561478b5762093a80831015801561464a57506301dfe2008311155b801561466e575061465b428461547d565b8154640100000000900463ffffffff1611155b80614692575082158015614692575080544264010000000090910463ffffffff1610155b6147045760405162461bcd60e51b815260206004820152603060248201527f6465706f736974203a2043616e2774206c6f636b20746f6b656e7320666f722060448201527f6c657373207468616e2031207765656b000000000000000000000000000000006064820152608401610c34565b815461471b906001600160a01b0316333087615189565b600181015461473b9085906dffffffffffffffffffffffffffff1661547d565b6001820180547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff929092169190911790558261478b5761478b8587612f1f565b821561479c5761479c868685614b44565b80544264010000000090910463ffffffff1610156147be576147be8587612f1f565b84866001600160a01b03167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15866040516147fa91815260200190565b60405180910390a3505050505050565b6000828152600e602090815260408083206001600160a01b03851684529091528120600d805491929185908110614843576148436158d6565b60009182526020909120601154600390920201915060ff16156149dd576002820154600182810154908401546000926dffffffffffffffffffffffffffff9081169264e8d4a51000926148b992680100000000000000009092048216916e01000000000000000000000000000090910416615ace565b6148c39190615b04565b6148cd9190615a8a565b6dffffffffffffffffffffffffffff16905080156149db578254819084906008906149139084906801000000000000000090046bffffffffffffffffffffffff16615b31565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555064e8d4a510008260010160089054906101000a90046dffffffffffffffffffffffffffff1684600101600e9054906101000a90046dffffffffffffffffffffffffffff1661498f9190615ace565b6149999190615b04565b6002840180547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff929092169190911790555b505b6002808301549082015460018401546000926dffffffffffffffffffffffffffff6e0100000000000000000000000000009182900481169364e8d4a5100093614a2d939183169291900416615ace565b614a379190615b04565b614a419190615a8a565b6dffffffffffffffffffffffffffff1690508015614b3d57825481908490601490614a939084907401000000000000000000000000000000000000000090046bffffffffffffffffffffffff16615b31565b82546bffffffffffffffffffffffff9182166101009390930a9283029190920219909116179055506002820154600184015464e8d4a5100091614afc916dffffffffffffffffffffffffffff918216916e01000000000000000000000000000090910416615ace565b614b069190615b04565b83600201600e6101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff1602179055505b5050505050565b6000828152600e602090815260408083206001600160a01b0387168452909152902060018101546dffffffffffffffffffffffffffff16614bc75760405162461bcd60e51b815260206004820152601d60248201527f6c6f636b546f6b656e733a204e6f20746f6b656e7320746f206c6f636b0000006044820152606401610c34565b614bd1824261547d565b8154640100000000900463ffffffff161115614c555760405162461bcd60e51b815260206004820152602160248201527f6c6f636b546f6b656e733a20546f6b656e7320616c7265616479206c6f636b6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610c34565b62093a80821015614ca85760405162461bcd60e51b815260206004820152601f60248201527f6c6f636b546f6b656e733a204c6f636b2074696d6520746f6f2073686f7274006044820152606401610c34565b6301dfe200821115614cfc5760405162461bcd60e51b815260206004820152601e60248201527f6c6f636b546f6b656e733a204c6f636b2074696d6520746f6f206c6f6e6700006044820152606401610c34565b614d06824261547d565b815463ffffffff91909116640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff9091161781556301d6a780614d5162093a8084615933565b614d5d906107d0615839565b614d6791906158a5565b815461ffff9190911662010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff909116178155614da68385612f1f565b60408051428152602081018490526001600160a01b038616917fd741e738a23fd18a03a26522320d9fc6cac1fed483e215ea9150fbc2fc43385d910160405180910390a250505050565b6003546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015614e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e7691906159b5565b9050600081831115614f19576003546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038681166004830152602482018590529091169063a9059cbb906044016020604051808303816000875af1158015614eee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614f1291906158b9565b9050614fac565b6003546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038681166004830152602482018690529091169063a9059cbb906044016020604051808303816000875af1158015614f85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614fa991906158b9565b90505b806132d05760405162461bcd60e51b815260206004820181905260248201527f736166655257545472616e736665723a207472616e73666572206661696c65646044820152606401610c34565b600b548111156150085750600b545b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561503e573d6000803e3d6000fd5b5080600b60008282546150519190615933565b90915550505050565b6040516001600160a01b03831660248201526044810182905261250c9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526151da565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040516001600160a01b03808516602483015283166044820152606481018290526132d09085907f23b872dd000000000000000000000000000000000000000000000000000000009060840161509f565b600061522f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166152bf9092919063ffffffff16565b80519091501561250c578080602001905181019061524d91906158b9565b61250c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610c34565b60606152ce84846000856152d6565b949350505050565b60608247101561534e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610c34565b843b61539c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610c34565b600080866001600160a01b031685876040516153b89190615b84565b60006040518083038185875af1925050503d80600081146153f5576040519150601f19603f3d011682016040523d82523d6000602084013e6153fa565b606091505b509150915061540a828286615415565b979650505050505050565b60608315615424575081613371565b8251156154345782518084602001fd5b8160405162461bcd60e51b8152600401610c349190615ba0565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156154905761549061544e565b500190565b6000806000606084860312156154aa57600080fd5b505081359360208301359350604090920135919050565b600080600080608085870312156154d757600080fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b0381168114611d4357600080fd5b60006020828403121561551a57600080fd5b8135613371816154f3565b60006020828403121561553757600080fd5b5035919050565b6000806040838503121561555157600080fd5b823563ffffffff8116811461556557600080fd5b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600080608085870312156155b857600080fd5b84356155c3816154f3565b935060208501356155d3816154f3565b925060408501359150606085013567ffffffffffffffff808211156155f757600080fd5b818701915087601f83011261560b57600080fd5b81358181111561561d5761561d615573565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561566357615663615573565b816040528281528a602084870101111561567c57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806000606084860312156156b557600080fd5b8335925060208401356156c7816154f3565b929592945050506040919091013590565b600080604083850312156156eb57600080fd5b50508035926020909101359150565b803567ffffffffffffffff8116811461571257600080fd5b919050565b8015158114611d4357600080fd5b60008060006060848603121561573a57600080fd5b8335925061574a602085016156fa565b9150604084013561575a81615717565b809150509250925092565b6000806040838503121561577857600080fd5b82359150602083013561578a816154f3565b809150509250929050565b6000602082840312156157a757600080fd5b813561337181615717565b600080600080608085870312156157c857600080fd5b84356157d3816154f3565b966020860135965060408601359560600135945092505050565b60008060006060848603121561580257600080fd5b61580b846156fa565b9250602084013561574a816154f3565b6000806040838503121561582e57600080fd5b8235615565816154f3565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156158715761587161544e565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826158b4576158b4615876565b500490565b6000602082840312156158cb57600080fd5b815161337181615717565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008060006060848603121561591a57600080fd5b8351925060208401519150604084015190509250925092565b6000828210156159455761594561544e565b500390565b60006dffffffffffffffffffffffffffff8083168185168083038211156159735761597361544e565b01949350505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156159ae576159ae61544e565b5060010190565b6000602082840312156159c757600080fd5b5051919050565b600061ffff838116908316818110156159e9576159e961544e565b039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015615a6a5784516001600160a01b031683529383019391830191600101615a45565b50506001600160a01b039690961660408501525050506060015292915050565b60006dffffffffffffffffffffffffffff838116908316818110156159e9576159e961544e565b600061ffff8083168185168083038211156159735761597361544e565b60006dffffffffffffffffffffffffffff80831681851681830481118215151615615afb57615afb61544e565b02949350505050565b60006dffffffffffffffffffffffffffff80841680615b2557615b25615876565b92169190910492915050565b60006bffffffffffffffffffffffff8083168185168083038211156159735761597361544e565b60005b83811015615b73578181015183820152602001615b5b565b838111156132d05750506000910152565b60008251615b96818460208701615b58565b9190910192915050565b6020815260008251806020840152615bbf816040850160208701615b58565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea2646970667358221220a935b59cd01cdc8d41a4cb7b683f8108b9785f9a584a25071f23552f5832113b64736f6c634300080a0033000000000000000000000000dfdd3459d4f87234751696840092ee20c970fb070000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d