84 txs
346 calls
constructor
constructor(address router_, uint256 a_, address token_, uint16 feeShareBP_, uint256 balanceRatioMinBP_, string lpName, string lpSymbol)
functions
a
viewfunction a() view returns (uint256)
accRewardPerShareP
viewfunction accRewardPerShareP() view returns (uint256)
adminFeeAmount
viewfunction adminFeeAmount() view returns (uint256)
adminFeeShareBP
viewfunction adminFeeShareBP() view returns (uint256)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
balanceRatioMinBP
viewfunction balanceRatioMinBP() view returns (uint256)
canDeposit
viewfunction canDeposit() view returns (uint256)
canWithdraw
viewfunction canWithdraw() view returns (uint256)
d
viewfunction d() view returns (uint256)
decimals
purefunction decimals() pure returns (uint8)
feeShareBP
viewfunction feeShareBP() view returns (uint16)
getPrice
viewfunction getPrice() view returns (uint256)
getY
viewfunction getY(uint256 x) view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
pendingReward
viewfunction pendingReward(address user) view returns (uint256)
reserves
viewfunction reserves() view returns (uint256)
router
viewfunction router() view returns (address)
symbol
viewfunction symbol() view returns (string)
token
viewfunction token() view returns (address)
tokenBalance
viewfunction tokenBalance() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
userRewardDebt
viewfunction userRewardDebt(address user) view returns (uint256 amount)
vUsdBalance
viewfunction vUsdBalance() view returns (uint256)
adjustTotalLpAmount
nonpayablefunction adjustTotalLpAmount()
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
claimAdminFee
nonpayablefunction claimAdminFee()
claimRewards
nonpayablefunction claimRewards()
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
deposit
nonpayablefunction deposit(uint256 amount)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
renounceOwnership
nonpayablefunction renounceOwnership()
setAdminFeeShare
nonpayablefunction setAdminFeeShare(uint256 adminFeeShareBP_)
setBalanceRatioMinBP
nonpayablefunction setBalanceRatioMinBP(uint256 balanceRatioMinBP_)
setFeeShare
nonpayablefunction setFeeShare(uint16 feeShareBP_)
setRouter
nonpayablefunction setRouter(address router_)
setStopAuthority
nonpayablefunction setStopAuthority(address stopAuthority_)
startDeposit
nonpayablefunction startDeposit()
startWithdraw
nonpayablefunction startWithdraw()
stopDeposit
nonpayablefunction stopDeposit()
stopWithdraw
nonpayablefunction stopWithdraw()
swapFromVUsd
nonpayablefunction swapFromVUsd(address user, uint256 amount, uint256 receiveAmountMin, bool zeroFee) returns (uint256)
swapToVUsd
nonpayablefunction swapToVUsd(address user, uint256 amount, bool zeroFee) returns (uint256)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw(uint256 amountLp)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
Deposit
event Deposit(address indexed user, uint256 amount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RewardsClaimed
event RewardsClaimed(address indexed user, uint256 amount)
SwappedFromVUsd
event SwappedFromVUsd(address recipient, address token, uint256 vUsdAmount, uint256 amount, uint256 fee)
SwappedToVUsd
event SwappedToVUsd(address sender, address token, uint256 amount, uint256 vUsdAmount, uint256 fee)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Withdraw
event Withdraw(address indexed user, uint256 amount)
errors
No errors.
creation bytecode
0x61010060405234620000be576200002662000019620002c3565b959490949391936200048a565b604051613449620008c58239608051818181610b94015281816112b401528181611a3d01528181611d7301528181611fc6015281816120e901528181612d2a01528181612e5201528181612fe2015261323f015260a051818181610450015281816124eb015281816126be0152612926015260c0518181816129f10152612a6c015260e051818181612a320152612aad015261344990f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b90601f01601f191681019081106001600160401b03821117620000f857604052565b620000c2565b90620001156200010d60405190565b9283620000d6565b565b6001600160a01b031690565b90565b6001600160a01b0381165b03620000be57565b90505190620001158262000126565b8062000131565b90505190620001158262000148565b6001600160a01b03811662000131565b9050519062000115826200015e565b61ffff811662000131565b9050519062000115826200017d565b6001600160401b038111620000f857602090601f01601f19160190565b5f5b838110620001c65750505f910152565b8181015183820152602001620001b6565b90929192620001f0620001ea8262000197565b620000fe565b93818552602085019082840111620000be576200011592620001b4565b9080601f83011215620000be5781516200012392602001620001d7565b9160e083830312620000be5762000242828462000139565b926200025283602083016200014f565b92604062000263828285016200016e565b9362000273836060860162000188565b936200028384608083016200014f565b9360a0820151600180861b038111620000be5781620002a49184016200020d565b9360018060c0850151921b038111620000be576200012392016200020d565b620002e662003d0e80380380620002da81620000fe565b9283398101906200022a565b90919293949596565b905f19905b9181191691161790565b6200012362000123620001239290565b9062000322620001236200032a92620002fe565b8254620002ef565b9055565b9062010000600160b01b039060101b620002f4565b620001239062000117906001600160a01b031682565b620001239062000343565b620001239062000359565b9062000383620001236200032a9262000364565b82546200032e565b906001600160a01b0390620002f4565b90620003af620001236200032a9262000364565b82546200038b565b9061ffff90620002f4565b620003d662000123620001239261ffff1690565b61ffff1690565b90620003f1620001236200032a92620003c2565b8254620003b7565b60ff811662000131565b905051906200011582620003f9565b90602082820312620000be57620001239162000403565b6040513d5f823e3d90fd5b6200012362000123620001239260ff1690565b620001236003620002fe565b634e487b7160e01b5f52601160045260245ffd5b919082039182116200047557565b62000453565b604d81116200047557600a0a90565b620005069293620004d8620004fe926200050c9794620004b2620005259b60209b8a62000623565b620004cd6001620004c58160116200030e565b60126200030e565b60a052600a6200036f565b620004f6620004ee5f546001600160a01b031690565b60106200039b565b600a620003dd565b600d6200030e565b62000364565b63313ce567906200051c60405190565b93849260e01b90565b825260049082905afa8015620005eb5762000549915f91620005b6575b5062000434565b6200055362000447565b5f81831115620005a55750620005746200056e828462000467565b6200047b565b60c0525f8183101562000597575062000592916200056e9162000467565b60e052565b9050620005929150620002fe565b620005b090620002fe565b62000574565b620005dc915060203d8111620005e3575b620005d38183620000d6565b81019062000412565b5f62000542565b503d620005c7565b62000429565b62000123612710620002fe565b634e487b7160e01b5f52601260045260245ffd5b81156200061d570490565b620005fe565b916200062f916200083a565b608052620001156200065762000644620005f1565b620006506005620002fe565b9062000612565b60086200030e565b634e487b7160e01b5f52602260045260245ffd5b906001600283049216801562000696575b60208310146200069057565b6200065f565b91607f169162000684565b915f1960089290920291821b911b620002f4565b9190620006ca620001236200032a93620002fe565b908354620006a1565b62000115915f91620006b5565b818110620006ec575050565b80620006fb5f600193620006d3565b01620006e0565b9190601f81116200071257505050565b6200072462000115935f5260205f2090565b906020601f84018190048301931062000748575b6020601f909101040190620006e0565b909150819062000738565b906200075d815190565b906001600160401b038211620000f85762000785826200077e855462000673565b8562000702565b602090601f8311600114620007c2576200032a92915f9183620007b6575b50505f19600883021c1916906002021790565b015190505f80620007a3565b601f19831691620007d6855f5260205f2090565b925f5b8181106200081557509160029391856001969410620007fc575b50505002019055565b01515f196008601f8516021c191690555f8080620007f3565b91936020600181928787015181550195019201620007d9565b90620001159162000753565b906200085662000115926200084e6200085e565b60046200082e565b60056200082e565b620001158080335f546001600160a01b0316906200087d815f6200039b565b620008b4620008ad7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09362000364565b9162000364565b91620008bf60405190565b5f90a356fe60806040526004361015610019575b36612c3f575b612c3f565b5f3560e01c806306fdde0314610313578063095ea7b3146102645780630dbe671f1461030e5780630ec330221461030957806318160ddd1461030457806323b872dd146102ff57806328fdb481146102fa5780632d46f63e146102f55780632d8fe99a146102f05780632e1a7d4d146102eb578063313ce567146102e65780633536a1dc146102e157806335c24a88146102dc578063372500ab146102d757806339509351146102d2578063488cb841146102cd5780634927b44c146102c85780634bf6f9e7146102c357806352fb8b03146102be5780635860638d146102b957806358ba94d7146102b457806370a08231146102af578063715018a6146102aa57806375172a8b146102a557806379df4fa2146102a05780637a23032c1461029b5780637f6a92ed146102965780638427a58114610291578063845a46971461028c5780638a054ac2146102875780638da5cb5b1461028257806390ed6bf41461027d57806395d89b411461027857806398d5fdca146102735780639e1a4d191461026e578063a457c2d714610269578063a9059cbb14610264578063b51459fe1461025f578063b6b55f251461025a578063c0d7865514610255578063c1c46dbe14610250578063dd62ed3e1461024b578063e78a587514610246578063e99fee3e14610241578063f2fde38b1461023c578063f40f0f5214610237578063f887ea40146102325763fc0c546a0361000e57610b7b565b610b47565b610b08565b610af0565b610ad8565b610abd565b610a96565b610a5b565b610a43565b610a2b565b610a10565b610421565b6109ef565b6109d4565b6109ae565b610993565b61097b565b610946565b61092b565b610905565b6108ed565b6108bd565b61087c565b610859565b61083e565b61081b565b610800565b6107e8565b6107d0565b6107b5565b61078f565b610723565b6106f4565b6106d3565b6106bb565b6106a0565b61067d565b610623565b61060b565b6105ee565b6105bb565b610563565b610508565b6104bd565b6104a2565b61043b565b610393565b5f91031261032257565b5f80fd5b5f5b8381106103375750505f910152565b8181015183820152602001610328565b61036861037160209361037b9361035c815190565b80835293849260200190565b95869101610326565b601f01601f191690565b0190565b602080825261039092910190610347565b90565b34610322576103a3366004610318565b6103ba6103ae610ef8565b6040519182918261037f565b0390f35b6001600160a01b031690565b6001600160a01b0381165b0361032257565b905035906103e9826103ca565b565b806103d5565b905035906103e9826103eb565b9190604083820312610322576103909061041881856103dc565b936020016103f1565b34610322576104313660046103fe565b90610f42565b9052565b346103225761044b366004610318565b6103ba7f00000000000000000000000000000000000000000000000000000000000000005b6040515b9182918290815260200190565b610390916008021c81565b906103909154610481565b6103905f600c61048c565b34610322576104b2366004610318565b6103ba610470610497565b34610322576104cd366004610318565b6103ba610470610f1d565b9091606082840312610322576103906104f184846103dc565b936104ff81602086016103dc565b936040016103f1565b34610322576105183660046104d8565b91610f67565b8015156103d5565b905035906103e98261051e565b90916060828403126103225761039061054c84846103dc565b9361055a81602086016103f1565b93604001610526565b34610322576103ba610470610579366004610533565b91611f29565b6080818303126103225761059382826103dc565b926103906105a484602085016103f1565b936105b281604086016103f1565b93606001610526565b34610322576103ba6104706105d136600461057f565b929190916121a6565b9060208282031261032257610390916103f1565b34610322576106066106013660046105da565b612e0f565b604051005b346103225761060661061e3660046105da565b611a6d565b3461032257610633366004610318565b6103ba61063e612ebb565b6040519182918260ff909116815260200190565b61ffff81166103d5565b905035906103e982610652565b90602082820312610322576103909161065c565b3461032257610606610690366004610669565b61226b565b6103905f600d61048c565b34610322576106b0366004610318565b6103ba610470610695565b34610322576106cb366004610318565b610606612c9f565b34610322576106e33660046103fe565b90610fa1565b6103905f600861048c565b3461032257610704366004610318565b6103ba6104706106e9565b9060208282031261032257610390916103dc565b346103225761060661073636600461070f565b612408565b6103be610390610390926001600160a01b031690565b6103909061073b565b61039090610751565b9061076d9061075a565b5f5260205260405f2090565b6103909061078a6007915f92610763565b61048c565b34610322576103ba6104706107a536600461070f565b610779565b6103905f600661048c565b34610322576107c5366004610318565b6103ba6104706107aa565b34610322576107e0366004610318565b6106066123c9565b34610322576107f8366004610318565b61060661237e565b34610322576103ba61047061081636600461070f565b610f27565b346103225761082b366004610318565b610606610c0c565b6103905f600e61048c565b346103225761084e366004610318565b6103ba610470610833565b3461032257610869366004610318565b61060661239e565b6103905f600961048c565b346103225761088c366004610318565b6103ba610470610871565b610390916008021c5b61ffff1690565b906103909154610897565b6103905f600a6108a7565b34610322576108cd366004610318565b6103ba6108d86108b2565b6040519182918261ffff909116815260200190565b34610322576108fd366004610318565b6106066122c4565b34610322576103ba61047061091b3660046105da565b6124de565b6103905f600f61048c565b346103225761093b366004610318565b6103ba610470610920565b3461032257610956366004610318565b6103ba610961610bcc565b604051918291826001600160a01b03909116815260200190565b346103225761098b366004610318565b6106066123e9565b34610322576109a3366004610318565b6103ba6103ae610f02565b34610322576109be366004610318565b6103ba6104706126b2565b6103905f600b61048c565b34610322576109e4366004610318565b6103ba6104706109c9565b34610322576109ff3660046103fe565b9061102d565b6103905f601261048c565b3461032257610a20366004610318565b6103ba610470610a05565b3461032257610606610a3e3660046105da565b61141d565b3461032257610606610a5636600461070f565b612465565b3461032257610606610a6e3660046105da565b6122f7565b91906040838203126103225761039090610a8d81856103dc565b936020016103dc565b34610322576103ba610470610aac366004610a73565b90610f48565b6103905f601161048c565b3461032257610acd366004610318565b6103ba610470610ab2565b3461032257610ae8366004610318565b610606612e88565b3461032257610606610b0336600461070f565b610d39565b34610322576103ba610470610b1e36600461070f565b612e90565b610390916008021c6103be565b906103909154610b23565b6103906002600a610b30565b3461032257610b57366004610318565b6103ba610961610b3b565b6104379061075a565b6020810192916103e99190610b62565b3461032257610b8b366004610318565b604051806103ba7f000000000000000000000000000000000000000000000000000000000000000082610b6b565b610390906103be565b6103909054610bb9565b6103905f610bc2565b610bdd610c68565b6103e9610bfb565b6103be6103906103909290565b61039090610be5565b6103e9610c075f610bf2565b610d72565b6103e9610bd5565b15610c1b57565b60405162461bcd60e51b815280610c64600482016020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b0390fd5b6103e9610c73610bcc565b610c8c610c7f336103be565b916001600160a01b031690565b14610c14565b6103e990610c9e610c68565b610d15565b15610caa57565b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608490fd5b6103e990610c07610d286103be5f610bf2565b6001600160a01b0383161415610ca3565b6103e990610c92565b906001600160a01b03905b9181191691161790565b90610d67610390610d6e9261075a565b8254610d42565b9055565b610d7b5f610bc2565b90610d86815f610d57565b610db9610db37f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09361075a565b9161075a565b91610dc360405190565b80805b0390a3565b634e487b7160e01b5f52602260045260245ffd5b9060016002830492168015610dff575b6020831014610dfa57565b610dcb565b91607f1691610def565b80545f939291610e25610e1b83610ddf565b8085529360200190565b9160018116908115610e745750600114610e3e57505050565b610e4f91929394505f5260205f2090565b915f925b818410610e605750500190565b805484840152602090930192600101610e53565b92949550505060ff1916825215156020020190565b9061039091610e09565b634e487b7160e01b5f52604160045260245ffd5b90601f01601f1916810190811067ffffffffffffffff821117610ec957604052565b610e93565b906103e9610ee892610edf60405190565b93848092610e89565b0383610ea7565b61039090610ece565b6103906004610eef565b6103906005610eef565b6103909081565b6103909054610f0c565b6103906003610f13565b610f3d61039091610f355f90565b506001610763565b610f13565b33612c3f565b61039091610f62610f3d92610f5a5f90565b506002610763565b610763565b610014833383611098565b634e487b7160e01b5f52601160045260245ffd5b9190610f91565b9290565b8201809211610f9c57565b610f72565b610fb53392610fb08385610f48565b610f86565b91612c3f565b15610fc257565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608490fd5b610fb5339261103c8385610f48565b61104882821015610fbb565b0390565b1561105357565b60405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b916110a38284610f48565b5f1981036110b15750505050565b610fb591906110488282101561104c565b6103906103906103909290565b156110d657565b60405162461bcd60e51b815260206004820152601860248201527f506f6f6c3a206465706f7369742070726f6869626974656400000000000000006044820152606490fd5b6103e99061114361112c6011610f13565b61113d61113960016110c2565b9190565b146110cf565b61127e565b1561114f57565b60405162461bcd60e51b815260206004820152601060248201527f506f6f6c3a20746f6f206c6974746c65000000000000000000000000000000006044820152606490fd5b905f1990610d4d565b906111ad610390610d6e926110c2565b8254611194565b81810292918115918404141715610f9c57565b634e487b7160e01b5f52601260045260245ffd5b81156111e5570490565b6111c7565b6111f76103906103909290565b60ff1690565b610390906112116111396103909460ff1690565b901c90565b91908203918211610f9c57565b610390650100000000006110c2565b1561123957565b60405162461bcd60e51b815260206004820152600e60248201527f506f6f6c3a20746f6f206d7563680000000000000000000000000000000000006044820152606490fd5b61139b9061139561128f600f610f13565b611298836129ef565b5f6112ac6112a5826110c2565b8311611148565b6112eb6112d87f000000000000000000000000000000000000000000000000000000000000000061075a565b953396876112e53061075a565b9161148c565b6113036112fc83610fb0600e610f13565b600e61119d565b611320611310600b610f13565b61131a600c610f13565b90610f86565b9061132a816110c2565b841490811561140b575b50156113bc575061137761135561137e9261134f60016111ea565b906111fd565b61136d61136682610fb0600b610f13565b600b61119d565b610fb0600c610f13565b600c61119d565b6113866128e7565b611390600f610f13565b611216565b90612f55565b6103e96113a8600b610f13565b6113b6611139610390611223565b10611232565b61136d816113e7611406946113f66113666113ec611377976113e76113e1600b610f13565b866111b4565b6111db565b610fb0600b610f13565b611400600c610f13565b906111b4565b61137e565b61141591506110c2565b81145f611334565b6103e99061111b565b61143f6114396103909263ffffffff1690565b60e01b90565b7fffffffff000000000000000000000000000000000000000000000000000000001690565b6001600160a01b039182168152911660208201526060810192916103e99160400152565b0152565b906114d1906114c26103e9956004956114a86323b872dd611426565b936114b260405190565b9788956020870190815201611464565b60208201810382520383610ea7565b6115ec565b906103e96114e360405190565b9283610ea7565b67ffffffffffffffff8111610ec957602090601f01601f19160190565b90611519611514836114ea565b6114d6565b918252565b6115286020611507565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602082015290565b61039061151e565b905051906103e98261051e565b906020828203126103225761039091611559565b1561158157565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608490fd5b6103e9916115fc61160b9261075a565b90611605611551565b91611648565b80516116196111395f6110c2565b14908115611628575b5061157a565b61164291506020611637825190565b818301019101611566565b5f611622565b61039092916116565f6110c2565b916116ec565b1561166357565b60405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608490fd5b3d156116e7576116dd3d611507565b903d5f602084013e565b606090565b905f610390949381926116fd606090565b5061171461170a3061075a565b839031101561165c565b60208101905191855af16117266116ce565b91611778565b1561173357565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b919290156117a95750815161178f6111395f6110c2565b14611798575090565b6117a4610390916117af565b61172c565b826117c0565b3b6117bc6111395f6110c2565b1190565b906117c9825190565b6117d56111395f6110c2565b11156117e45750805190602001fd5b610c64906117f160405190565b91829162461bcd60e51b83526004830161037f565b1561180d57565b60405162461bcd60e51b815260206004820152601960248201527f506f6f6c3a2077697468647261772070726f68696269746564000000000000006044820152606490fd5b6103e9906118766118636012610f13565b61187061113960016110c2565b14611806565b61195f565b1561188257565b60405162461bcd60e51b815260206004820152601260248201527f506f6f6c3a207a65726f206368616e67657300000000000000000000000000006044820152606490fd5b156118ce57565b60405162461bcd60e51b815260206004820152600e60248201527f506f6f6c3a2072657365727665730000000000000000000000000000000000006044820152606490fd5b1561191a57565b60405162461bcd60e51b815260206004820152601460248201527f506f6f6c3a207a65726f2044206368616e6765730000000000000000000000006044820152606490fd5b6103e99061196d600f610f13565b611a35339161197c84846131b7565b6119ed61198c611310600b610f13565b6119b36113666119a9836113e76119a3600b610f13565b8b6111b4565b611390600b610f13565b6119d46113776119ca836113e76119a3600c610f13565b611390600c610f13565b6119e7611139610f8d611310600b610f13565b1061187b565b611a066119fd610390600e610f13565b855b11156118c7565b611a176112fc85611390600e610f13565b611a1f6128e7565b611a2f611139610f8d600f610f13565b10611913565b611a67611a617f000000000000000000000000000000000000000000000000000000000000000061075a565b92612a6a565b91611a93565b6103e990611852565b6001600160a01b0390911681526040810192916103e99160200152565b6114d16004926114c26103e995611aad63a9059cbb611426565b92611ab760405190565b9687946020860190815201611a76565b6103909060101c6103be565b6103909054611ac7565b15611ae457565b60405162461bcd60e51b815260206004820152601360248201527f506f6f6c3a206973206e6f7420726f75746572000000000000000000000000006044820152606490fd5b90610390939291611b4c611b3d600a611ad3565b611b4633610c7f565b14611add565b611bf4565b6103906127106110c2565b15611b6357565b60405162461bcd60e51b815260206004820152601760248201527f506f6f6c3a206c6f7720746f6b656e2062616c616e63650000000000000000006044820152606490fd5b15611baf57565b60405162461bcd60e51b815260206004820152601660248201527f506f6f6c3a206c6f7720765553442062616c616e6365000000000000000000006044820152606490fd5b90611c00939291611d54565b90611c0b600b610f13565b611c1b611139610390600c610f13565b1115611c63576103e9611c4c611c3c611c34600c610f13565b611400611b51565b611c46600b610f13565b906111db565b611c5c611139610390600d610f13565b1015611ba8565b611c6d600b610f13565b611c7d611139610390600c610f13565b10611c8457565b6103e9611ca1611c97611c34600b610f13565b611c46600c610f13565b611cb1611139610390600d610f13565b1015611b5c565b610390906108a0565b6103909054611cb8565b6103906103906103909261ffff1690565b905051906103e9826103eb565b906020828203126103225761039091611cdc565b6040513d5f823e3d90fd5b909594926103e994611d4d61148892611d46608096611d3660a088019c5f8901906001600160a01b03169052565b6001600160a01b03166020870152565b6040850152565b6060830152565b505f928390611d625f6110c2565b8411611dd3575b5090611dcd611d977f000000000000000000000000000000000000000000000000000000000000000061075a565b92857fa930da1d3f27a25892307dd59cec52dd9b881661a0f20364757f83a0da2f687395611dc460405190565b95869586611d08565b0390a190565b15611efa575b611de6611deb9184611216565b6129ef565b90611dfe611df883612a6a565b84611216565b611e216112fc8294611e1761136682610fb0600b610f13565b610fb0600e610f13565b611e676020611e2f3061075a565b63845a469790611e59611e42600b610f13565b92611e4c60405190565b9586948593849360e01b90565b835260048301526024820190565b03915afa908115611ef5575f91611ec7575b50611e84600c610f13565b8110611ea6575b90611e9a611e9f92600c61119d565b612ed6565b905f611d69565b9450611e9f90611e9a611ebd87611390600c610f13565b9691925050611e8b565b611ee8915060203d8111611eee575b611ee08183610ea7565b810190611ce9565b5f611e79565b503d611ed6565b611cfd565b50611deb611de6611f21611f196113e1611f14600a611cc1565b611ccb565b611c46611b51565b915050611dd9565b6103909291905f611b29565b9061039094939291611f4a611b3d600a611ad3565b90611c0094939291611fa3565b15611f5e57565b60405162461bcd60e51b815260206004820152600e60248201527f506f6f6c3a20736c6970706167650000000000000000000000000000000000006044820152606490fd5b505f939192849283611fb4816110c2565b8611612017575b505050611dcd611fea7f000000000000000000000000000000000000000000000000000000000000000061075a565b92857ffc1df7b9ba72a13350b8a4e0f094e232eebded9edd179950e74a852a0f40511295611dc460405190565b90612063969161202e61137788610fb0600c610f13565b60206120393061075a565b63845a469790611e5961204c600c610f13565b9261205660405190565b9c8d948593849360e01b90565b03915afa978815611ef5575f98612186575b50612080600b610f13565b8810612157575b906120b26112fc6120b6936120a86120a2610390600e610f13565b826119ff565b611390600e610f13565b1590565b612123575b906120e36120db6120ce86612112950390565b926103908499600b61119d565b821015611f57565b8261210d7f000000000000000000000000000000000000000000000000000000000000000061075a565b611a93565b61211b82612ed6565b5f8080611fbb565b9250612112906120e36120db6120ce61214b611f19612145611f14600a611cc1565b896111b4565b969394505050506120bb565b5090506120b661216b87611390600b610f13565b916120b26112fc61217b85612a6a565b949293505050612087565b61219f91985060203d8111611eee57611ee08183610ea7565b965f612075565b610390939291905f611f35565b6103e9906121bf610c68565b612242565b156121cb57565b60405162461bcd60e51b815260206004820152600f60248201527f506f6f6c3a20746f6f206c6172676500000000000000000000000000000000006044820152606490fd5b9061ffff90610d4d565b6108a06103906103909261ffff1690565b9061223b610390610d6e9261221a565b8254612210565b6103e990612264612254610390611b51565b61225d83611ccb565b11156121c4565b600a61222b565b6103e9906121b3565b61227c610c68565b6103e9612289600f610f13565b612297611139610390610f1d565b1161229e57565b6103e96122a9610bcc565b6113956122b6600f610f13565b6122be610f1d565b90611216565b6103e9612274565b6103e9906122d8610c68565b6103e9906122f06122ea610390611b51565b8261225d565b600d61119d565b6103e9906122cc565b1561230757565b60405162461bcd60e51b815260206004820152601a60248201527f506f6f6c3a206973206e6f742073746f70417574686f726974790000000000006044820152606490fd5b6123686123596010610bc2565b61236233610c7f565b14612300565b6103e96103e96123775f6110c2565b601161119d565b6103e961234c565b61238e610c68565b6103e96103e961237760016110c2565b6103e9612386565b6123b36123596010610bc2565b6103e96103e96123c25f6110c2565b601261119d565b6103e96123a6565b6123d9610c68565b6103e96103e96123c260016110c2565b6103e96123d1565b6103e9906123fd610c68565b6103e9906010610d57565b6103e9906123f1565b6103e99061241d610c68565b61245a565b9075ffffffffffffffffffffffffffffffffffffffff00009060101b610d4d565b90612453610390610d6e9261075a565b8254612422565b6103e990600a612443565b6103e990612411565b610390906124826111396103909460ff1690565b901b90565b9190808303925f9091128015828513169184121617610f9c57565b81810292915f8212600160ff1b821416610f9c578184051490151715610f9c57565b9190828101925f13801591841291821691151617610f9c57565b6124e8600f610f13565b907f000000000000000000000000000000000000000000000000000000000000000061251460026111ea565b61251d9161246e565b600192612529846111ea565b612533908361246e565b91818061253f836110c2565b92612549826110c2565b612552886110c2565b9461255d8683612487565b612566916124a2565b9061257091612487565b9461257a916111b4565b90612584916111b4565b9061258e916111b4565b61259883806124a2565b6125a1906110c2565b6125ab90866111b4565b6125b491610f86565b6125be90856111b4565b6125c790612ae5565b6125d0906110c2565b916125da916124a2565b6125e3916124c4565b6125ec90612662565b916125f6916111b4565b6125ff916111db565b90612609906110c2565b61039091610f86565b1561261957565b60405162461bcd60e51b815280610c64600482016020808252818101527f53616665436173743a2076616c7565206d75737420626520706f736974697665604082015260600190565b6103909061267a6126725f6110c2565b821215612612565b6110c2565b610390906126936111396103909460ff1690565b901d90565b81156111e557600160ff1b81145f19831416610f9c570590565b6126bc600b610f13565b7f00000000000000000000000000000000000000000000000000000000000000006126e760036111ea565b6126f1908261246e565b8280806126fe600f610f13565b612708600f610f13565b612711916111b4565b61271b600f610f13565b612724916111b4565b938461273060026111ea565b968761273b9161246e565b612744816110c2565b61274e600f610f13565b612757906110c2565b612760866110c2565b61276991612487565b612772916124a2565b61277c600f610f13565b612785906110c2565b61278e91612487565b91612798916111b4565b90806127a3916124a2565b6127ac906110c2565b6127b690846111b4565b6127bf91610f86565b6127c990836111b4565b946127d3906110c2565b82806127df600f610f13565b6127e990856111b4565b906127f3916111b4565b906127fd916111b4565b612806906110c2565b61280f916124c4565b93612819916111b4565b90612823916111b4565b9061282d916111b4565b612836906110c2565b61283f91612487565b9261284a600f610f13565b93818061285760016111ea565b96876128629161246e565b9061286c916111b4565b90612876916111b4565b61287f906110c2565b61288891612487565b93612891611b51565b9061289c908261267f565b946128a6916124a2565b926128b09161246e565b906128ba90612ae5565b6128c3916111b4565b6128cc906110c2565b6128d591612698565b6128de916124c4565b61039090612662565b6103e96129d76128f7600b610f13565b612961612904600c610f13565b6129a361299e612981612977612967612956612920878a6111b4565b986114007f0000000000000000000000000000000000000000000000000000000000000000986129508c8b6111b4565b92610f86565b9561296160026111ea565b9061246e565b966114006001986122be8a6110c2565b611c4660036110c2565b61131a61298e85806111b4565b9161299981806111b4565b6111b4565b612ae5565b6129b3828201612b7c565b612b7c565b9081838211156129de57506129d1926129cc9103612b7c565b900390565b916111ea565b600f61119d565b91506129ae61037b916129d1940390565b7f00000000000000000000000000000000000000000000000000000000000000005f612a1a816110c2565b821115612a2b5750610390916111db565b9050612a577f0000000000000000000000000000000000000000000000000000000000000000916110c2565b8111612a61575090565b610390916111b4565b7f00000000000000000000000000000000000000000000000000000000000000005f612a95816110c2565b821115612aa65750610390916111b4565b9050612ad27f0000000000000000000000000000000000000000000000000000000000000000916110c2565b8111612adc575090565b610390916111db565b5f612aef816110c2565b8211612aff5761039091506110c2565b50600180612b0c816111ea565b612b22612b1982866111fd565b61037b846110c2565b93612b3a82612b358761037b81866111db565b6111fd565b935b612b48575b5050505090565b90919293612b538590565b811115612b765750612b6d82612b358661037b81866111db565b92919082612b3c565b93612b41565b5f90612b87826110c2565b90612b95600160ff1b6110c2565b612b9e846110c2565b811115612c3857612bb4600193612961856111ea565b9283612bdf612b19612bce83612bca60036110c2565b0290565b612bca612bda866110c2565b850190565b612be984866111db565b811115612c0c575b505050612c05612b9e9161134f60036111ea565b9050612b95565b8395509061037b612c2a612c0594966129cc612c3095612b9e980290565b956110c2565b93915f612bf1565b5050905090565b60405162461bcd60e51b815260206004820152600b60248201527f556e737570706f727465640000000000000000000000000000000000000000006044820152606490fd5b61039060346110c2565b610390906112116111396103909490565b33612ca981610f27565b905f91612cb5836110c2565b8111612cc057505050565b612cd1612cdf916114006006610f13565b612cd9612c84565b90612c8e565b600790612d01612cfb612cf5610f3d8686610763565b83611216565b946110c2565b8411612d0e575b50505050565b612d1b83612d2093610763565b61119d565b612d4e828261210d7f000000000000000000000000000000000000000000000000000000000000000061075a565b612d85612d7b7ffc30cddea38e2bf4d6ea7d3f9ed3b6ad7f176419f4963bd81318067a4aee73fe9261075a565b9261047460405190565b0390a25f808080612d08565b6103e990612d9d610c68565b612dee565b15612da957565b60405162461bcd60e51b815260206004820152601760248201527f5265776172644d616e616765723a20746f6f20686967680000000000000000006044820152606490fd5b6103e990612e08612e00610390611b51565b821115612da2565b600861119d565b6103e990612d91565b612e20610c68565b6103e9612e2d6009610f13565b5f90612e3b611139836110c2565b11612e435750565b612e816103e99161267a612e767f000000000000000000000000000000000000000000000000000000000000000061075a565b33611a676009610f13565b600961119d565b6103e9612e18565b610390906122be610f3d612eb3612cd1612ea985610f27565b6114006006610f13565b926007610763565b61039060036111ea565b610390906124826111396103909490565b612ede610f1d565b612eea6111395f6110c2565b11612ef25750565b612e816103e991612f4b612f44612f3a612f32612f24612f1e611f19612f186008610f13565b886111b4565b80960390565b612f2c612c84565b90612ec5565b611c46610f1d565b610fb06006610f13565b600661119d565b610fb06009610f13565b5f612f5f82610f27565b905f84612f6b826110c2565b841161303c575b612f93612cd1612f8961267a93612f9e9697610f86565b612ea989896130c7565b612d1b866007610763565b8111612fd8575b50612fd3612d7b7fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9261075a565b0390a2565b613006818361210d7f000000000000000000000000000000000000000000000000000000000000000061075a565b7ffc30cddea38e2bf4d6ea7d3f9ed3b6ad7f176419f4963bd81318067a4aee73fe613033612d7b8461075a565b0390a25f612fa5565b612f9e9250612f93612cd1612f8961267a9361306f613061612cd16119a36006610f13565b6122be610f3d8c6007610763565b96509350505050612f72565b1561308257565b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b6130d05f610bf2565b6130ee6001600160a01b0382166001600160a01b038416141561307b565b6131066130ff84610fb06003610f13565b600361119d565b613127613114836001610763565b6131218561037b83610f13565b9061119d565b610dc661315d6131577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9361075a565b9361075a565b9361047460405190565b1561316e57565b60405162461bcd60e51b815280610c64600482016020808252818101527f5265776172644d616e616765723a206e6f7420656e6f75676820616d6f756e74604082015260600190565b6131c081610f27565b6131cc83821015613167565b5f80846131d8826110c2565b8411613299575b612f93612cd16131f661267a936132009697611216565b612ea989896133ae565b8111613235575b50612fd3612d7b7f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649261075a565b613263818361210d7f000000000000000000000000000000000000000000000000000000000000000061075a565b7ffc30cddea38e2bf4d6ea7d3f9ed3b6ad7f176419f4963bd81318067a4aee73fe613290612d7b8461075a565b0390a25f613207565b6132009250612f93612cd16131f661267a936132be613061612cd16119a36006610f13565b965093505050506131df565b156132d157565b60405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608490fd5b1561334357565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608490fd5b6133b75f610bf2565b906133d66001600160a01b0383166001600160a01b03831614156132ca565b6134026001612d1b836133fc876133f0610f3d8487610763565b6110488282101561333c565b92610763565b6131276130ff846110486003610f1356fea2646970667358221220aa604a89c59e3e752c604c51c6ecb59367fcba4e584af94b4b1e3a2736f26d8e64736f6c634300081400330000000000000000000000003c4fa639c8d7e65c603145adad8bd12f2358312f00000000000000000000000000000000000000000000000000000000000000140000000000000000000000008ac76a51cc950d9822d68b83fe1ad97b32cd580d000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000c416c6c627269646765204c50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000074c502d5553444300000000000000000000000000000000000000000000000000