0 txs
0 calls
constructor
constructor(address _VECake, address _v3, address _FarmBoosterV1, uint256 _cA, uint256 _cB)
functions
activedPositions
viewfunction activedPositions(address _user) view returns (uint256[] positions)
BOOST_PRECISION
viewfunction BOOST_PRECISION() view returns (uint256)
CA_PRECISION
viewfunction CA_PRECISION() view returns (uint256)
cA
viewfunction cA() view returns (uint256)
CB_PRECISION
viewfunction CB_PRECISION() view returns (uint256)
cB
viewfunction cB() view returns (uint256)
cBOverride
viewfunction cBOverride(uint256) view returns (uint256)
delegated
viewfunction delegated(address) view returns (address)
delegator
viewfunction delegator(address) view returns (address)
delegatorApprove
viewfunction delegatorApprove(address) view returns (address)
everBoosted
viewfunction everBoosted(uint256) view returns (bool)
FarmBoosterV1
viewfunction FarmBoosterV1() view returns (address)
getUserMultiplier
viewfunction getUserMultiplier(uint256 _tokenId) view returns (uint256)
isBoostedPool
viewfunction isBoostedPool(uint256 _tokenId) view returns (bool, uint256)
MASTER_CHEF_V3
viewfunction MASTER_CHEF_V3() view returns (address)
MAX_BOOST_PRECISION
viewfunction MAX_BOOST_PRECISION() view returns (uint256)
MAX_CA
viewfunction MAX_CA() view returns (uint256)
MAX_CB
viewfunction MAX_CB() view returns (uint256)
MIN_CA
viewfunction MIN_CA() view returns (uint256)
MIN_CB
viewfunction MIN_CB() view returns (uint256)
NonfungiblePositionManager
viewfunction NonfungiblePositionManager() view returns (address)
owner
viewfunction owner() view returns (address)
PancakeV3Factory
viewfunction PancakeV3Factory() view returns (address)
userInfo
viewfunction userInfo(address) view returns (uint256 size)
userPoolTotalLiquidity
viewfunction userPoolTotalLiquidity(address, uint256) view returns (uint256)
userPoolTotalLiquidityInitialized
viewfunction userPoolTotalLiquidityInitialized(address, uint256) view returns (bool)
userPositionLiquidity
viewfunction userPositionLiquidity(address, uint256) view returns (uint256)
userPositionLiquidityInitialized
viewfunction userPositionLiquidityInitialized(address, uint256) view returns (bool)
VECake
viewfunction VECake() view returns (address)
VECakeCaller
viewfunction VECakeCaller() view returns (address)
whiteList
viewfunction whiteList(uint256) view returns (bool)
approveToVECakeUser
nonpayablefunction approveToVECakeUser(address _VECakeUser)
depositFor
nonpayablefunction depositFor(address _for, uint256 _amount, uint256 _unlockTime, int128 _prevLockedAmount, uint256 _prevLockedEnd, uint256 _actionType, bool _isCakePoolUser)
removeBoostMultiplier
nonpayablefunction removeBoostMultiplier(address _user, uint256 _tokenId, uint256 _pid)
removeDelegator
nonpayablefunction removeDelegator()
renounceOwnership
nonpayablefunction renounceOwnership()
setBoosterFarms
nonpayablefunction setBoosterFarms(tuple[] _boosterFarms)
setCA
nonpayablefunction setCA(uint256 _cA)
setCB
nonpayablefunction setCB(uint256 _cB)
setCBOverride
nonpayablefunction setCBOverride(uint256 _pid, uint256 _cB)
setDelegator
nonpayablefunction setDelegator(address _delegator)
setDelegators
nonpayablefunction setDelegators(tuple[] _delegatorConfigs)
setVECakeCaller
nonpayablefunction setVECakeCaller(address _VECakeCaller)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unlock
nonpayablefunction unlock(address _user, int128 _prevLockedAmount, uint256 _prevLockedEnd, uint256 _withdrawAmount)
updatePositionBoostMultiplier
nonpayablefunction updatePositionBoostMultiplier(uint256 _tokenId) returns (uint256 _multiplier)
events
Approve
event Approve(address indexed delegator, address indexed VECakeUser)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
UpdateBoostFarms
event UpdateBoostFarms(uint256 pid, bool status)
UpdateCA
event UpdateCA(uint256 oldCA, uint256 newCA)
UpdateCB
event UpdateCB(uint256 oldCB, uint256 newCB)
UpdateCBOverride
event UpdateCBOverride(uint256 pid, uint256 oldCB, uint256 newCB)
UpdateDelegator
event UpdateDelegator(address indexed user, address indexed oldDelegator, address indexed delegator)
UpdatePoolBoostMultiplier
event UpdatePoolBoostMultiplier(address indexed user, uint256 indexed pid, uint256 indexed tokenId, uint256 oldMultiplier, uint256 newMultiplier)
UpdateVECakeCaller
event UpdateVECakeCaller(address VECakeCaller)
errors
No errors.
creation bytecode
0x6101206040523480156200001257600080fd5b506040516200438838038062004388833981016040819052620000359162000237565b6200004033620001ce565b6001805561271082108015906200005a5750620186a08211155b8015620000675750600081115b80156200007857506305f5e1008111155b620000bd5760405162461bcd60e51b815260206004820152601160248201527024b73b30b634b2103830b930b6b2ba32b960791b604482015260640160405180910390fd5b6001600160a01b0380861660805284811660a081905290841660c0526007839055600882905560408051635a25139160e11b8152905163b44a2722916004808201926020929091908290030181865afa1580156200011f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014591906200029c565b6001600160a01b031660e08190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200018f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b591906200029c565b6001600160a01b03166101005250620002c39350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200023457600080fd5b50565b600080600080600060a086880312156200025057600080fd5b85516200025d816200021e565b602087015190955062000270816200021e565b604087015190945062000283816200021e565b6060870151608090970151959894975095949392505050565b600060208284031215620002af57600080fd5b8151620002bc816200021e565b9392505050565b60805160a05160c05160e05161010051613fe6620003a2600039600081816105af01526110da01526000818161076e01528181610f200152610fe20152600081816106be015281816112e1015281816113d301528181612b250152612c830152600081816103e301528181610a7901528181610c2501528181610cb60152818161118d01528181611c9a01528181611d50015281816123740152818161242f0152818161262601528181613272015281816134650152818161362001526137630152600081816104f001528181613025015261311b0152613fe66000f3fe608060405234801561001057600080fd5b506004361061030a5760003560e01c8063794539481161019c578063a51de3a8116100ee578063d6a526cf11610097578063f2fde38b11610071578063f2fde38b14610790578063f3598ad9146107a3578063fe19a904146107d957600080fd5b8063d6a526cf14610736578063e1b2d84414610749578063eb582d131461076957600080fd5b8063c61a66e0116100c8578063c61a66e0146106e0578063c7e86b9a146106fc578063cc6db2da1461072a57600080fd5b8063a51de3a8146106b9578063a817715b146106e0578063c459a9c2146106e957600080fd5b80638da5cb5b116101505780639cc1d7be1161012a5780639cc1d7be14610668578063a39a722b14610670578063a3c71d9d1461068357600080fd5b80638da5cb5b1461062e5780639b3acb731461064c5780639c1ebe631461065f57600080fd5b80638105771411610181578063810577141461061257806383cd9cc31461061b5780638abe30031461049357600080fd5b806379453948146105d15780637951dcee146105e457600080fd5b80635c5aaa491161026057806369b02128116102095780636ea1e3c0116101e35780636ea1e3c01461058f578063715018a6146105a25780637600f3f2146105aa57600080fd5b806369b021281461055c5780636cbb37dd146105695780636e85ee471461057c57600080fd5b806362534e791161023a57806362534e79146104eb57806363613da91461051257806369074d641461053257600080fd5b80635c5aaa49146104935780635dd574db1461049d57806361f0f689146104c057600080fd5b80634e986628116102c257806352fb65311161029c57806352fb6531146103de578063539e50821461042a5780635c475d421461046057600080fd5b80634e986628146103a05780634ffcbb39146103c0578063506328fc146103cb57600080fd5b80633a51327c116102f35780633a51327c1461035a578063449b08881461038557806344e7bf061461038d57600080fd5b80631959a0021461030f57806325f1487314610345575b600080fd5b61033261031d366004613865565b600c6020526000908152604090206003015481565b6040519081526020015b60405180910390f35b610358610353366004613889565b6107ec565b005b6103326103683660046138a2565b600460209081526000928352604080842090915290825290205481565b610358610932565b61033261039b366004613889565b610c0b565b6103326103ae366004613889565b60096020526000908152604090205481565b6103326305f5e10081565b6103326103d9366004613889565b610ee6565b6104057f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161033c565b610405610438366004613865565b600d6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61048361046e366004613889565b600a6020526000908152604090205460ff1681565b604051901515815260200161033c565b610332620186a081565b6104836104ab366004613889565b600b6020526000908152604090205460ff1681565b6103326104ce3660046138a2565b600360209081526000928352604080842090915290825290205481565b6104057f000000000000000000000000000000000000000000000000000000000000000081565b610525610520366004613865565b611474565b60405161033c91906138ce565b610545610540366004613889565b61155a565b60408051921515835260208301919091520161033c565b6103326501d1a94a200081565b610358610577366004613889565b6115ae565b61035861058a366004613939565b6116e8565b61035861059d3660046139f1565b61177b565b61035861192f565b6104057f000000000000000000000000000000000000000000000000000000000000000081565b6103586105df366004613a33565b6119bc565b6104836105f23660046138a2565b600560209081526000928352604080842090915290825290205460ff1681565b61033260085481565b610358610629366004613865565b611a4c565b60005473ffffffffffffffffffffffffffffffffffffffff16610405565b61035861065a366004613865565b611f00565b61033260075481565b610332600081565b61035861067e3660046139f1565b6120a4565b610405610691366004613865565b600f6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6104057f000000000000000000000000000000000000000000000000000000000000000081565b61033261271081565b6103586106f7366004613a77565b61260e565b61048361070a3660046138a2565b600660209081526000928352604080842090915290825290205460ff1681565b61033264e8d4a5100081565b610358610744366004613865565b612716565b6002546104059073ffffffffffffffffffffffffffffffffffffffff1681565b6104057f000000000000000000000000000000000000000000000000000000000000000081565b61035861079e366004613865565b612810565b6104056107b1366004613865565b600e6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6103586107e7366004613aac565b612940565b60005473ffffffffffffffffffffffffffffffffffffffff163314610872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60008111801561088657506305f5e1008111155b6108ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f496e76616c6964206342000000000000000000000000000000000000000000006044820152606401610869565b600880549082905560408051828152602081018490527fff6a4b972407d470846bd3a5979c60d68807653244cc8d096c4174a76486e71c91015b60405180910390a15050565b6002600154141561099f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610869565b6002600155336000908152600d602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610a31576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4e6f2064656c656761746f7200000000000000000000000000000000000000006044820152606401610869565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610ac2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae69190613ace565b90508015610b76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f506c6561736520776974686472617720616c6c20706f736974696f6e7320696e60448201527f204d6173746572436865662056330000000000000000000000000000000000006064820152608401610869565b73ffffffffffffffffffffffffffffffffffffffff82166000818152600e6020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915533808552600d90935281842080549091169055519192917ffaf5be379b735da94678480d71f43cc64ded8cdc2557b8b94489846dff1379e7908490a4505060018055565b60003373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610cac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f74204d6173746572436865662056330000000000000000000000000000006044820152606401610869565b60008060008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633b1acf74886040518263ffffffff1660e01b8152600401610d0f91815260200190565b61012060405180830381865afa158015610d2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d519190613b24565b9850985098505050505094509450836fffffffffffffffffffffffffffffffff166000148015610d815750600081115b15610d8b57600080fd5b6000828152600b602052604090205464e8d4a51000965060ff1615610edc57610dc8838884886fffffffffffffffffffffffffffffffff16612aa1565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c602090815260408083208a845280835281842054868552600a90935292205460ff16610e3157600089815260018301602052604090205415610e2c57610e2c828a612e02565b610e7e565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600460209081526040808320878452909152812054610e7191879187916001612ee5565b9750610e7e828a8a6131ff565b88848673ffffffffffffffffffffffffffffffffffffffff167f1e0e5eda2403f0a5efd54ab2b1ed4a66a026877e4255695d414a66acb88419e8848c604051610ed1929190918252602082015260400190565b60405180910390a450505b5050505050919050565b600080600080610ef58561326a565b506fffffffffffffffffffffffffffffffff9290921694509250905060018161120d576000806000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166399fbab888b6040518263ffffffff1660e01b8152600401610f7991815260200190565b61018060405180830381865afa158015610f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbb9190613bc7565b50505050975050509550955095505050806fffffffffffffffffffffffffffffffff1697507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636352211e8b6040518263ffffffff1660e01b815260040161103b91815260200190565b602060405180830381865afa158015611058573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107c9190613ca8565b6040517f1698ee8200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152858116602483015262ffffff851660448301529198506000917f00000000000000000000000000000000000000000000000000000000000000001690631698ee8290606401602060405180830381865afa158015611121573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111459190613ca8565b6040517f0743384d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80831660048301529192507f000000000000000000000000000000000000000000000000000000000000000090911690630743384d90602401602060405180830381865afa1580156111d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fa9190613ace565b9650861561120757600095505b50505050505b6000828152600a602052604090205460ff16611233575064e8d4a5100095945050505050565b73ffffffffffffffffffffffffffffffffffffffff83166000818152600460209081526040808320868452825280832054848452600383528184208b8552835281842054948452600683528184208785529092529091205490919060ff1661134f576040517f3a51327c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152602482018690527f00000000000000000000000000000000000000000000000000000000000000001690633a51327c90604401602060405180830381865afa158015611328573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134c9190613ace565b91505b73ffffffffffffffffffffffffffffffffffffffff851660009081526005602090815260408083208b845290915290205460ff16611441576040517f61f0f68900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152602482018a90527f000000000000000000000000000000000000000000000000000000000000000016906361f0f68990604401602060405180830381865afa15801561141a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143e9190613ace565b90505b60008161144e8885613cf4565b6114589190613d0c565b90506114678686838a88612ee5565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600c602052604090206002810154606091906114ac5750919050565b600281015467ffffffffffffffff8111156114c9576114c9613d23565b6040519080825280602002602001820160405280156114f2578160200160208202803683370190505b50915060005b60028201548110156115535781600201818154811061151957611519613d52565b906000526020600020015483828151811061153657611536613d52565b60209081029190910101528061154b81613d81565b9150506114f8565b5050919050565b6000806000806115698561326a565b5073ffffffffffffffffffffffffffffffffffffffff919091166000908152600c60209081526040808320998352600190990190529690962054151596945050505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461162f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610869565b61271081101580156116445750620186a08111155b6116aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f496e76616c6964206341000000000000000000000000000000000000000000006044820152606401610869565b600780549082905560408051828152602081018490527f948053d58d4dfed61c0843c01f010e1a4446c65f03d475567102cc64dfe0ecd49101610926565b60025473ffffffffffffffffffffffffffffffffffffffff163314611769576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f7420766563616b652063616c6c65720000000000000000000000000000006044820152606401610869565b61177287613322565b50505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146117fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610869565b60005b8181101561192a57600083838381811061181b5761181b613d52565b9050604002018036038101906118319190613e0a565b905080602001518015611855575080516000908152600b602052604090205460ff16155b156118945780516000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b6020818101805183516000908152600a845260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016921515929092179091558351915181519283521515928201929092527fbeef892af000af61e107ef5e9c764acbccd54157fd6c219d241750fb3eca3102910160405180910390a1508061192281613d81565b9150506117ff565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146119b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610869565b6119ba60006133e9565b565b60025473ffffffffffffffffffffffffffffffffffffffff163314611a3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f7420766563616b652063616c6c65720000000000000000000000000000006044820152606401610869565b611a4684613322565b50505050565b60026001541415611ab9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610869565b600260015573ffffffffffffffffffffffffffffffffffffffff8116611b3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f496e76616c6964206164647265737300000000000000000000000000000000006044820152606401610869565b73ffffffffffffffffffffffffffffffffffffffff8181166000908152600f6020526040902054163314611bcb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4e6f7420617070726f76656400000000000000000000000000000000000000006044820152606401610869565b336000818152600d602052604090205473ffffffffffffffffffffffffffffffffffffffff1615611c1e5750336000908152600d602052604090205473ffffffffffffffffffffffffffffffffffffffff165b73ffffffffffffffffffffffffffffffffffffffff8181166000818152600e602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055517f70a082310000000000000000000000000000000000000000000000000000000081526004810192909252917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015611ce1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d059190613ace565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529192506000917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015611d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbb9190613ace565b905081158015611dc9575080155b611e55576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f506c6561736520776974686472617720616c6c20706f736974696f6e7320696e60448201527f204d6173746572436865662056330000000000000000000000000000000000006064820152608401610869565b336000818152600d60209081526040808320805473ffffffffffffffffffffffffffffffffffffffff808b167fffffffffffffffffffffffff00000000000000000000000000000000000000009283168117909355828652600e85528386208054831688179055600f9094528285208054909116905590519093918716927ffaf5be379b735da94678480d71f43cc64ded8cdc2557b8b94489846dff1379e791a45050600180555050565b60026001541415611f6d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610869565b6002600155336000908152600e602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612024576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f44656c656761746f7220616c72656164792068617320564543616b652061636360448201527f6f756e74000000000000000000000000000000000000000000000000000000006064820152608401610869565b336000818152600f602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915590519092917f3ce2da1daf10aa0a28578b70fe768ed2f390a3da82445358f9346fbc2981f6fd91a35060018055565b60005473ffffffffffffffffffffffffffffffffffffffff163314612125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610869565b60005b8181101561192a57600083838381811061214457612144613d52565b90506040020180360381019061215a9190613e40565b805190915073ffffffffffffffffffffffffffffffffffffffff161580159061219c5750602081015173ffffffffffffffffffffffffffffffffffffffff1615155b612202576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f496e76616c6964206164647265737300000000000000000000000000000000006044820152606401610869565b805160208083015173ffffffffffffffffffffffffffffffffffffffff9081166000908152600f909252604090912054811691161461229d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4e6f7420617070726f76656400000000000000000000000000000000000000006044820152606401610869565b805173ffffffffffffffffffffffffffffffffffffffff8082166000908152600d602052604090205416156122f85750805173ffffffffffffffffffffffffffffffffffffffff9081166000908152600d6020526040902054165b73ffffffffffffffffffffffffffffffffffffffff8181166000818152600e602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055517f70a082310000000000000000000000000000000000000000000000000000000081526004810192909252917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156123bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123df9190613ace565b60208401516040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529192506000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015612478573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061249c9190613ace565b9050811580156124aa575080155b612536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f506c6561736520776974686472617720616c6c20706f736974696f6e7320696e60448201527f204d6173746572436865662056330000000000000000000000000000000000006064820152608401610869565b60208085018051865173ffffffffffffffffffffffffffffffffffffffff9081166000908152600d8552604080822080549484167fffffffffffffffffffffffff00000000000000000000000000000000000000009586161790558951855184168352600e87528183208054918516918616919091179055845183168252600f9095528481208054909316909255915187519351908316938784169316917ffaf5be379b735da94678480d71f43cc64ded8cdc2557b8b94489846dff1379e791a450505050808061260690613d81565b915050612128565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146126ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4e6f74204d6173746572436865662056330000000000000000000000000000006044820152606401610869565b6000818152600b602052604090205460ff161561192a576126d18383836000612aa1565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c60209081526040808320858452600181019092529091205415611a4657611a468184612e02565b60005473ffffffffffffffffffffffffffffffffffffffff163314612797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610869565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f74893ad32aa66290f59f1716275159e5945397884cb67b7a5a19c96473482e169060200160405180910390a150565b60005473ffffffffffffffffffffffffffffffffffffffff163314612891576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610869565b73ffffffffffffffffffffffffffffffffffffffff8116612934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610869565b61293d816133e9565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146129c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610869565b6000811180156129d557506305f5e1008111155b806129de575080155b612a44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f496e76616c6964206342000000000000000000000000000000000000000000006044820152606401610869565b600880546000848152600960209081526040918290208590559254815186815293840183905290830152907fa6a879d52f70ee909a019d4e93c2b17407cfe6a072da32219ad04ab25e15de429060600160405180910390a1505050565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260066020908152604080832085845290915290205460ff16612bff576040517f3a51327c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018490527f00000000000000000000000000000000000000000000000000000000000000001690633a51327c90604401602060405180830381865afa158015612b6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b909190613ace565b73ffffffffffffffffffffffffffffffffffffffff85166000818152600460209081526040808320878452825280832094909455918152600682528281208582529091522080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b73ffffffffffffffffffffffffffffffffffffffff8416600090815260056020908152604080832086845290915290205460ff16612d5d576040517f61f0f68900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590527f000000000000000000000000000000000000000000000000000000000000000016906361f0f68990604401602060405180830381865afa158015612cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cee9190613ace565b73ffffffffffffffffffffffffffffffffffffffff85166000818152600360209081526040808320888452825280832094909455918152600582528281208682529091522080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b73ffffffffffffffffffffffffffffffffffffffff84166000818152600360209081526040808320878452825280832054938352600482528083208684529091529020548291612dac91613d0c565b612db69190613cf4565b73ffffffffffffffffffffffffffffffffffffffff9094166000818152600460209081526040808320958352948152848220969096559081526003855282812093815292909352902055565b600081815260018301602052604090205480612e1d57505050565b60028301805460009190612e3390600190613d0c565b81548110612e4357612e43613d52565b90600052602060002001549050808314612e9a578060028501612e67600185613d0c565b81548110612e7757612e77613d52565b600091825260208083209091019290925582815260018601909152604090208290555b6000838152602085815260408083208390556001870190915281205560028401805480612ec957612ec9613e75565b6001900381819060005260206000200160009055905550505050565b73ffffffffffffffffffffffffffffffffffffffff8581166000908152600d602052604081205490911615801590612f45575073ffffffffffffffffffffffffffffffffffffffff8087166000818152600d602052604090205490911614155b15612f56575064e8d4a510006131f6565b73ffffffffffffffffffffffffffffffffffffffff8087166000908152600e602052604090205487911615612faf575073ffffffffffffffffffffffffffffffffffffffff8087166000908152600e6020526040902054165b6000620186a086600754612fc39190613ea4565b612fcd9190613ee1565b905080612fe35764e8d4a51000925050506131f6565b6000612ff088878761345e565b6000898152600960205260408120549192509061300f5760085461301f565b6000898152600960205260409020545b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561308e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b29190613ace565b9050806130cb5764e8d4a51000955050505050506131f6565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015260009161271091849186917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015613162573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131869190613ace565b6131909088613ea4565b61319a9190613ea4565b6131a49190613ee1565b6131ae9190613ee1565b90508464e8d4a510006131c18383613cf4565b8c11156131d7576131d28388613cf4565b6131d9565b8b5b6131e39190613ea4565b6131ed9190613ee1565b96505050505050505b95945050505050565b60008281526001840160209081526040808320549186905290912082905580156132295750505050565b6002840154613239906001613cf4565b6000848152600180870160209081526040832093909355600290960180549687018155815220909301919091555050565b6000806000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633b1acf74866040518263ffffffff1660e01b81526004016132cb91815260200190565b61012060405180830381865afa1580156132e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061330d9190613b24565b979d919c509a50959850949650505050505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600c602052604090206002810154801561192a5760005b81811015611a4657600083600201828154811061337457613374613d52565b9060005260206000200154905060008061338d8361326a565b5092509250508173ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614156133d3576133d3868383866135b5565b50505080806133e190613d81565b915050613355565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631526fe27876040518263ffffffff1660e01b81526004016134be91815260200190565b60e060405180830381865afa1580156134db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134ff9190613f1c565b5095505050509250508361351a576135178582613cf4565b90505b60008273ffffffffffffffffffffffffffffffffffffffff16631a6865026040518163ffffffff1660e01b8152600401602060405180830381865afa158015613567573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061358b9190613f95565b6fffffffffffffffffffffffffffffffff169050808211156135ab578091505b5095945050505050565b6000828152600a602052604090205460ff166136a15760008181526020859052604090205464e8d4a510001015613692576040517f69746a1d0000000000000000000000000000000000000000000000000000000081526004810182905264e8d4a5100060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906369746a1d90604401600060405180830381600087803b15801561367957600080fd5b505af115801561368d573d6000803e3d6000fd5b505050505b61369c8482612e02565b611a46565b60006136ac8261326a565b73ffffffffffffffffffffffffffffffffffffffff881660009081526004602090815260408083208a845290915281205491955093506136f492508791508690846001612ee5565b905064e8d4a5100081101561370f575064e8d4a51000613726565b6501d1a94a200081111561372657506501d1a94a20005b8181146137d5576040517f69746a1d00000000000000000000000000000000000000000000000000000000815260048101849052602481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906369746a1d90604401600060405180830381600087803b1580156137bc57600080fd5b505af11580156137d0573d6000803e3d6000fd5b505050505b6137e08684836131ff565b82848673ffffffffffffffffffffffffffffffffffffffff167f1e0e5eda2403f0a5efd54ab2b1ed4a66a026877e4255695d414a66acb88419e88585604051613833929190918252602082015260400190565b60405180910390a4505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461293d57600080fd5b60006020828403121561387757600080fd5b813561388281613843565b9392505050565b60006020828403121561389b57600080fd5b5035919050565b600080604083850312156138b557600080fd5b82356138c081613843565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b81811015613906578351835292840192918401916001016138ea565b50909695505050505050565b8035600f81900b811461392457600080fd5b919050565b8035801515811461392457600080fd5b600080600080600080600060e0888a03121561395457600080fd5b873561395f81613843565b9650602088013595506040880135945061397b60608901613912565b93506080880135925060a0880135915061399760c08901613929565b905092959891949750929550565b60008083601f8401126139b757600080fd5b50813567ffffffffffffffff8111156139cf57600080fd5b6020830191508360208260061b85010111156139ea57600080fd5b9250929050565b60008060208385031215613a0457600080fd5b823567ffffffffffffffff811115613a1b57600080fd5b613a27858286016139a5565b90969095509350505050565b60008060008060808587031215613a4957600080fd5b8435613a5481613843565b9350613a6260208601613912565b93969395505050506040820135916060013590565b600080600060608486031215613a8c57600080fd5b8335613a9781613843565b95602085013595506040909401359392505050565b60008060408385031215613abf57600080fd5b50508035926020909101359150565b600060208284031215613ae057600080fd5b5051919050565b80516fffffffffffffffffffffffffffffffff8116811461392457600080fd5b8051600281900b811461392457600080fd5b805161392481613843565b60008060008060008060008060006101208a8c031215613b4357600080fd5b613b4c8a613ae7565b9850613b5a60208b01613ae7565b9750613b6860408b01613b07565b9650613b7660608b01613b07565b955060808a0151945060a08a0151935060c08a0151613b9481613843565b8093505060e08a015191506101008a015190509295985092959850929598565b805162ffffff8116811461392457600080fd5b6000806000806000806000806000806000806101808d8f031215613bea57600080fd5b8c516bffffffffffffffffffffffff81168114613c0657600080fd5b9b50613c1460208e01613b19565b9a50613c2260408e01613b19565b9950613c3060608e01613b19565b9850613c3e60808e01613bb4565b9750613c4c60a08e01613b07565b9650613c5a60c08e01613b07565b9550613c6860e08e01613ae7565b94506101008d015193506101208d01519250613c876101408e01613ae7565b9150613c966101608e01613ae7565b90509295989b509295989b509295989b565b600060208284031215613cba57600080fd5b815161388281613843565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115613d0757613d07613cc5565b500190565b600082821015613d1e57613d1e613cc5565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613db357613db3613cc5565b5060010190565b6040805190810167ffffffffffffffff81118282101715613e04577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b600060408284031215613e1c57600080fd5b613e24613dba565b82358152613e3460208401613929565b60208201529392505050565b600060408284031215613e5257600080fd5b613e5a613dba565b8235613e6581613843565b81526020830135613e3481613843565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613edc57613edc613cc5565b500290565b600082613f17577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600080600080600080600060e0888a031215613f3757600080fd5b875196506020880151613f4981613843565b6040890151909650613f5a81613843565b6060890151909550613f6b81613843565b9350613f7960808901613bb4565b925060a0880151915060c0880151905092959891949750929550565b600060208284031215613fa757600080fd5b61388282613ae756fea264697066735822122090067ec9be77dc9b65e7817b5355883605d66e6b5c65529e8cb9549e14ccc4c864736f6c634300080a003300000000000000000000000051b008be6a0e3d31e495d2e230f53cac2e1647730000000000000000000000005e09acf80c0296740ec5d6f643005a4ef8daa694000000000000000000000000e89602cb018bd7f6236dd6c4c6085b9c693c15cb000000000000000000000000000000000000000000000000000000000000c3500000000000000000000000000000000000000000000000000000000000000fa0