0 txs
0 calls
constructor
constructor(address _gvFactory, address _gammaVault, address _asset, bool _isDeposit)
functions
allowance
viewfunction allowance(address, address) view returns (uint256)
asset
viewfunction asset() view returns (address)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
claimable
viewfunction claimable(address to, uint256 _period) view returns (uint256)
claimToken
viewfunction claimToken() view returns (address)
convertToAssets
viewfunction convertToAssets(uint256 shares) view returns (uint256)
convertToShares
viewfunction convertToShares(uint256 assets) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
fee
viewfunction fee() view returns (uint16)
feeTo
viewfunction feeTo() view returns (address)
functionIds
viewfunction functionIds() view returns (uint256)
gammaVault
viewfunction gammaVault() view returns (address)
getLPReservationFee
viewfunction getLPReservationFee() view returns (uint16)
getMaxRedeem
viewfunction getMaxRedeem(address account) view returns (uint256)
getMaxWithdraw
viewfunction getMaxWithdraw(address account) view returns (uint256)
getMinDeposit
viewfunction getMinDeposit() view returns (uint256)
getPeriodInfo
viewfunction getPeriodInfo() view returns (uint256 _period, uint256 _periodLength, uint256 _periodExpiration)
gsPool
viewfunction gsPool() view returns (address)
gvFactory
viewfunction gvFactory() view returns (address)
isDeposit
viewfunction isDeposit() view returns (bool)
isPaused
viewfunction isPaused(uint8 _functionId) view returns (bool)
isPeriodClosed
viewfunction isPeriodClosed(uint256) view returns (bool)
maxTotalDeposits
viewfunction maxTotalDeposits() view returns (uint256)
MIN_SHARES
viewfunction MIN_SHARES() view returns (uint256)
minDepositFactor
viewfunction minDepositFactor() view returns (uint256)
name
viewfunction name() view returns (string)
nonces
viewfunction nonces(address) view returns (uint256)
period
viewfunction period() view returns (uint256)
periodBalanceOf
viewfunction periodBalanceOf(uint256, address) view returns (uint256)
periodExpiration
viewfunction periodExpiration() view returns (uint256)
periodLength
viewfunction periodLength() view returns (uint256)
periodTotalAssets
viewfunction periodTotalAssets(uint256) view returns (uint256)
periodTotalClaimable
viewfunction periodTotalClaimable(uint256) view returns (uint256)
periodTotalSupply
viewfunction periodTotalSupply(uint256) view returns (uint256)
PERMIT_TYPEHASH
viewfunction PERMIT_TYPEHASH() view returns (bytes32)
previewDeposit
viewfunction previewDeposit(uint256 assets) view returns (uint256)
previewMint
viewfunction previewMint(uint256 shares) view returns (uint256)
previewRedeem
viewfunction previewRedeem(uint256 shares) view returns (uint256)
previewWithdraw
viewfunction previewWithdraw(uint256 assets) view returns (uint256)
symbol
viewfunction symbol() view returns (string)
totalAssets
viewfunction totalAssets() view returns (uint256)
totalClaimable
viewfunction totalClaimable() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
claim
nonpayablefunction claim(uint256 _period)
clearToken
nonpayablefunction clearToken(address token, address to, uint256 minAmt)
collectAssets
nonpayablefunction collectAssets(address to, uint256 amount)
deposit
nonpayablefunction deposit(uint256 assets, address to) returns (uint256 shares)
disburseClaims
nonpayablefunction disburseClaims()
increaseUserNonce
nonpayablefunction increaseUserNonce()
initialize
nonpayablefunction initialize(address _gammaVault, address _asset, bool _isDeposit)
mint
nonpayablefunction mint(uint256 shares, address to) returns (uint256 assets)
pause
nonpayablefunction pause(uint8 _functionId) returns (uint256)
permit
nonpayablefunction permit(address owner, address spender, uint256 amount, uint256 deadline, uint8 _v, bytes32 _r, bytes32 _s)
redeem
nonpayablefunction redeem(uint256 shares, address to, address from) returns (uint256 assets)
retrieveUnClaimable
nonpayablefunction retrieveUnClaimable(uint256 _period, uint256 amount, address to)
setFeeParams
nonpayablefunction setFeeParams(uint16 _fee, address _feeTo)
setMaxTotalDeposits
nonpayablefunction setMaxTotalDeposits(uint256 _maxTotalDeposits)
setMinDepositFactor
nonpayablefunction setMinDepositFactor(uint256 _minDepositFactor)
setPeriodExpiration
nonpayablefunction setPeriodExpiration(uint256 _periodExpiration)
setPeriodLength
nonpayablefunction setPeriodLength(uint256 _periodLength)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
unpause
nonpayablefunction unpause(uint8 _functionId) returns (uint256)
updateDomainSeparator
nonpayablefunction updateDomainSeparator()
withdraw
nonpayablefunction withdraw(uint256 assets, address to, address from) returns (uint256 shares)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 amount)
ClaimFunds
event ClaimFunds(address indexed sender, address indexed to, uint256 shares, uint256 amount, uint256 period)
CollectAssets
event CollectAssets(uint256 periodTotalAssets, uint256 periodTotalClaimable, uint256 totalAssets, uint256 totalClaimable, uint256 period, uint256 amount, bool isPeriodClosed)
CreatePeriod
event CreatePeriod(uint256 indexed period, address indexed gammaVault, uint256 periodLength, uint256 periodExpiration, bool isDeposit)
Deposit
event Deposit(address indexed sender, address indexed owner, uint256 assets, uint256 shares)
DepositFunds
event DepositFunds(address indexed sender, address indexed owner, uint256 assets, uint256 shares, uint256 period)
DisburseClaims
event DisburseClaims(uint256 periodTotalClaimable, uint256 totalClaimable, uint256 period, uint256 disburseTime)
Initialized
event Initialized(uint8 version)
LPReservationFee
event LPReservationFee(address indexed sender, address to, uint256 feeAmount, uint256 assets, uint256 period)
Pause
event Pause(address account, uint8 _functionId)
RefundUnClaimable
event RefundUnClaimable(uint256 periodTotalClaimable, uint256 totalClaimable, uint256 amount, uint256 period, bool isDeposit)
Transfer
event Transfer(address indexed from, address indexed to, uint256 amount)
TransferFunds
event TransferFunds(address indexed from, address indexed to, uint256 amount, uint256 period)
Unpause
event Unpause(address account, uint8 _functionId)
UpdateFeeParams
event UpdateFeeParams(uint256 indexed period, uint16 fee, address feeTo, bool isDeposit)
UpdateMaxTotalDeposits
event UpdateMaxTotalDeposits(uint256 indexed period, uint256 maxTotalDeposits, bool isDeposit)
UpdateMinDepositFactor
event UpdateMinDepositFactor(uint256 indexed period, uint256 minDepositFactor, bool isDeposit)
UpdatePeriod
event UpdatePeriod(uint256 indexed period, uint256 periodLength, uint256 periodExpiration, bool isDeposit)
Withdraw
event Withdraw(address indexed sender, address indexed receiver, address indexed owner, uint256 assets, uint256 shares)
WithdrawFunds
event WithdrawFunds(address indexed sender, address indexed receiver, address indexed owner, uint256 assets, uint256 shares, uint256 period)
errors
ExcessiveSpend
error ExcessiveSpend()
ExcessiveWithdrawal
error ExcessiveWithdrawal()
ForbiddenPauser
error ForbiddenPauser()
InsufficientBalance
error InsufficientBalance()
NotEnoughTokens
error NotEnoughTokens()
NotPaused
error NotPaused(uint8 _functionId)
Paused
error Paused(uint8 _functionId)
RestrictedToken
error RestrictedToken()
ST_Fail
error ST_Fail()
STF_Fail
error STF_Fail()
ZeroAssets
error ZeroAssets()
ZeroShares
error ZeroShares()
creation bytecode
0x60a06040526001600581905562015180601355620186a06014556015805460ff191690911790553480156200003357600080fd5b5060405162004b3c38038062004b3c833981016040819052620000569162000365565b60408051602080820183526000808352835191820190935282815290916200007f83826200046d565b5060016200008e82826200046d565b506200009962000292565b50506001600160a01b0380851660805260088054918516620100000262010000600160b01b031990921691909117905580620000d65782620000d8565b815b600980546001600160a01b0319166001600160a01b03929092169190911790558062000105578162000107565b825b600a80546001600160a01b0319166001600160a01b039290921691909117905560135462000136904262000539565b601255600b805460ff60b01b1916600160b01b831515021790558062000179576040518060400160405280600481526020016347562d5760e01b81525062000197565b6040518060400160405280600481526020016311d58b5160e21b8152505b600090620001a690826200046d565b5080620001e9576040518060400160405280601681526020017f47616d6d615661756c74205769746864726177616c730000000000000000000081525062000220565b6040518060400160405280601381526020017f47616d6d615661756c74204465706f73697473000000000000000000000000008152505b6001906200022f90826200046d565b50600554601354601254604080519283526020830191909152831515908201526001600160a01b03851691907f88358122a8b1e6b482f2acbfd23a46efdc4ee5d2afba57176efaf9398017fa599060600160405180910390a350505050620005df565b60405146907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90620002c79060019062000561565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018290523060a082015260c00160408051601f19818403018152919052805160209091012060075550565b80516001600160a01b03811681146200036057600080fd5b919050565b600080600080608085870312156200037c57600080fd5b620003878562000348565b9350620003976020860162000348565b9250620003a76040860162000348565b915060608501518015158114620003bd57600080fd5b939692955090935050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620003f357607f821691505b6020821081036200041457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200046857600081815260208120601f850160051c81016020861015620004435750805b601f850160051c820191505b8181101562000464578281556001016200044f565b5050505b505050565b81516001600160401b03811115620004895762000489620003c8565b620004a1816200049a8454620003de565b846200041a565b602080601f831160018114620004d95760008415620004c05750858301515b600019600386901b1c1916600185901b17855562000464565b600085815260208120601f198616915b828110156200050a57888601518255948401946001909101908401620004e9565b5085821015620005295787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200055b57634e487b7160e01b600052601160045260246000fd5b92915050565b60008083546200057181620003de565b600182811680156200058c5760018114620005a257620005d3565b60ff1984168752821515830287019450620005d3565b8760005260208060002060005b85811015620005ca5781548a820152908401908201620005af565b50505082870194505b50929695505050505050565b608051614509620006336000396000818161064001528181610a3401528181610b7101528181610c6f01528181610f3d015281816113780152818161148001528181612041015261258301526145096000f3fe608060405234801561001057600080fd5b50600436106103f15760003560e01c806370a0823111610215578063bc98dedd11610125578063dddd2132116100b8578063edf07f1511610087578063edf07f15146108f4578063ef78d4fd14610907578063ef8b30f71461090f578063fbeee7e414610922578063fdb300f11461094557600080fd5b8063dddd2132146108be578063e0120cf8146108c6578063e4bbb5a8146108d9578063e8a44524146108ec57600080fd5b8063d2ca2115116100f4578063d2ca211514610862578063d505accf1461086b578063dd62ed3e1461087e578063ddca3f43146108a957600080fd5b8063bc98dedd14610816578063c6e6f59214610488578063ccbe764a1461082f578063cefca11b1461084257600080fd5b806394bf804d116101a8578063b3d7f6b911610177578063b3d7f6b9146107b7578063b460af94146107ca578063b8b94db9146107dd578063ba087652146107f0578063bc61e7331461080357600080fd5b806394bf804d1461076e57806395d89b4114610781578063a457a83914610789578063a9059cbb146107a457600080fd5b80637ecebe00116101e45780637ecebe001461070f57806389ccfe891461072f5780638d227fc01461073757806390c83e941461075b57600080fd5b806370a08231146106915780637614f02a146106c85780637bc3b5ff146106e85780637e2a2918146106fc57600080fd5b8063313ce5671161031057806358f3a0ae116102a357806361b01b5d1161027257806361b01b5d14610632578063622f18f81461063b57806369723d1d146106625780636adec5e3146106755780636e553f651461067e57600080fd5b806358f3a0ae146105cc5780635d1c60e1146105f75780635e62520b1461061757806360efe3341461061f57600080fd5b80634451d89f116102df5780634451d89f1461059d5780634838ed19146105b05780634cdad50614610452578063529504d1146105b957600080fd5b8063313ce567146105545780633644e5151461056e578063379607f51461057757806338d52e0f1461058a57600080fd5b806318160ddd116103885780632f045fb9116103575780632f045fb9146104f45780632f95f4d714610507578063301c7e5d1461051a57806330adf81f1461052d57600080fd5b806318160ddd146104ac5780631c5633d7146104c35780631fcd3080146104d857806323b872dd146104e157600080fd5b8063095ea7b3116103c4578063095ea7b3146104655780630a28a477146104885780630d767be81461049b5780630eaad3f1146104a457600080fd5b8063017e7e58146103f657806301e1d1141461042657806306fdde031461043d57806307a2d13a14610452575b600080fd5b600b54610409906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61042f60115481565b60405190815260200161041d565b61044561094d565b60405161041d9190613e07565b61042f610460366004613e3a565b6109db565b610478610473366004613e68565b6109f1565b604051901515815260200161041d565b61042f610496366004613e3a565b610a07565b61042f60125481565b61042f610a17565b60055460009081526004602052604090205461042f565b6104d66104d1366004613e3a565b610a29565b005b61042f6103e881565b6104786104ef366004613e94565b610b35565b61042f610502366004613ed5565b610b58565b6104d6610515366004613e3a565b610b66565b61042f610528366004613f01565b610c62565b61042f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b61055c610d10565b60405160ff909116815260200161041d565b61042f60075481565b6104d6610585366004613e3a565b610d28565b600954610409906001600160a01b031681565b600a54610409906001600160a01b031681565b61042f60105481565b6104d66105c7366004613f1e565b610f3b565b61042f6105da366004613f57565b600360209081526000928352604080842090915290825290205481565b61042f610605366004613e3a565b600d6020526000908152604090205481565b6104096111c3565b61042f61062d366004613e68565b6111cd565b61042f60165481565b6104097f000000000000000000000000000000000000000000000000000000000000000081565b61042f610670366004613ed5565b611232565b61042f60145481565b61042f61068c366004613f57565b611240565b61042f61069f366004613ed5565b60055460009081526003602090815260408083206001600160a01b039094168352929052205490565b61042f6106d6366004613e3a565b600e6020526000908152604090205481565b600b5461047890600160b01b900460ff1681565b6104d661070a366004613e3a565b611376565b61042f61071d366004613ed5565b60066020526000908152604090205481565b6104d6611474565b6005546013546012546040805193845260208401929092529082015260600161041d565b6104d6610769366004613e3a565b61147e565b61042f61077c366004613f57565b61157c565b6104456116e1565b6107916116ee565b60405161ffff909116815260200161041d565b6104786107b2366004613e68565b61170a565b61042f6107c5366004613e3a565b611717565b61042f6107d8366004613f87565b611746565b6104d66107eb366004613e68565b6117e2565b61042f6107fe366004613f87565b611a6a565b610478610811366004613f01565b611af0565b600854610409906201000090046001600160a01b031681565b6104d661083d366004613e94565b611b1e565b61042f610850366004613e3a565b60046020526000908152604090205481565b61042f60135481565b6104d6610879366004613fbe565b611c07565b61042f61088c36600461402f565b600260209081526000928352604080842090915290825290205481565b600b5461079190600160a01b900461ffff1681565b6104d6611dce565b6104d66108d436600461406d565b61203f565b6104d66108e7366004614099565b61217f565b61042f61256b565b61042f610902366004613f01565b612576565b60055461042f565b61042f61091d366004613e3a565b612618565b610478610930366004613e3a565b600f6020526000908152604090205460ff1681565b6104d6612657565b6001805461095a906140d9565b80601f0160208091040260200160405190810160405280929190818152602001828054610986906140d9565b80156109d35780601f106109a8576101008083540402835291602001916109d3565b820191906000526020600020905b8154815290600101906020018083116109b657829003601f168201915b505050505081565b60006109eb826005546001612679565b92915050565b60006109fe338484612724565b50600192915050565b60006109eb826005546000612786565b6000610a24600554612886565b905090565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a7a5760405162461bcd60e51b8152600401610a7190614113565b60405180910390fd5b60008111610ad65760405162461bcd60e51b815260206004820152602360248201527f46756e64696e675661756c743a20494e56414c49445f504552494f445f4c454e60448201526208ea8960eb1b6064820152608401610a71565b6013819055600554601254600b54604080518581526020810193909352600160b01b90910460ff161515908201527f95fd1b747540c8d6bbe3819d7e9f6140a0e996c65a6aa1ce28c28e010e8cf7fa906060015b60405180910390a250565b6000610b428433846128aa565b610b4d84848461292a565b5060015b9392505050565b60006109eb82600554612a1a565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bae5760405162461bcd60e51b8152600401610a7190614113565b428111610c0b5760405162461bcd60e51b815260206004820152602560248201527f46756e64696e675661756c743a20494e56414c49445f45585049524154494f4e6044820152645f54494d4560d81b6064820152608401610a71565b6012819055600554601354600b546040805192835260208301859052600160b01b90910460ff161515908201527f95fd1b747540c8d6bbe3819d7e9f6140a0e996c65a6aa1ce28c28e010e8cf7fa90606001610b2a565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610cad57604051633405651360e11b815260040160405180910390fd5b600160ff83161b19600081610cc1600c5490565b169050610ccd81600c55565b6040805133815260ff861660208201527f4d945064d746cd2826193634c7398f92cbcce2bef5b720c7733fb105591dadba91015b60405180910390a19392505050565b600954600090610a24906001600160a01b0316612a35565b60155460ff16600114610d4d5760405162461bcd60e51b8152600401610a7190614158565b6015805460ff191690556000818152600f602052604090205460ff16610db15760405162461bcd60e51b8152602060048201526019602482015278233ab73234b733ab30bab63a1d102822a924a7a22fa7a822a760391b6044820152606401610a71565b600081815260036020908152604080832033808552908352818420548585526004845282852054600d90945291842054909391929182610df2576000610e10565b610e108284610e01828861419c565b610e0b91906141b3565b612aec565b905060008111610e625760405162461bcd60e51b815260206004820152601860248201527f46756e64696e675661756c743a205a45524f5f434c41494d00000000000000006044820152606401610a71565b610e6c81836141d5565b6000878152600d6020526040902055610e86858588612b02565b600a54600090610e9f906001600160a01b031630612bb5565b9050610eab8183612aec565b9150610eb782826141d5565b6010558115610ed757600a54610ed7906001600160a01b03168784612c85565b60408051868152602081018490529081018890526001600160a01b0387169033907f98d306c3bb0f6ef9229ec8b42702851bdffe7cb8f48dbef07210ce6ae14dfdb29060600160405180910390a350506015805460ff191660011790555050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbd91906141e8565b6001600160a01b0316336001600160a01b031614610fed5760405162461bcd60e51b8152600401610a7190614205565b600083815260046020526040902054156110385760405162461bcd60e51b815260206004820152600c60248201526b49535f434c41494d41424c4560a01b6044820152606401610a71565b6001600160a01b03811661107d5760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610a71565b6000838152600d60205260409020546110969083612aec565b9150600082116110d65760405162461bcd60e51b815260206004820152600b60248201526a16915493d7d05353d5539560aa1b6044820152606401610a71565b6000838152600d6020526040812080548492906110f49084906141d5565b92505081905550816010600082825461110d91906141d5565b9091555050600a546111329061112c906001600160a01b031630612bb5565b83612aec565b9150811561115157600a54611151906001600160a01b03168284612c85565b6000838152600d602090815260409182902054601054600b5484519283529282015291820184905260608201859052600160b01b900460ff16151560808201527f9da5a78fee911751c817e1bab73f2e325d392d7da8f5c6e11eb1df4738fb5d5a9060a00160405180910390a1505050565b6000610a24612d6f565b60008181526003602090815260408083206001600160a01b0386168452825280832054848452600d83528184205460049093529083205490919080611213576000611228565b8061121e838561419c565b61122891906141b3565b9695505050505050565b60006109eb82600554612de8565b6000600161124d81612e92565b60155460ff166001146112725760405162461bcd60e51b8152600401610a7190614158565b6015805460ff191690556005546000818152600f602052604090205460ff16156112ae5760405162461bcd60e51b8152600401610a719061423c565b600b54600160b01b900460ff16156112cf576112cb338683612ec1565b5094505b6112d881612886565b8510156113235760405162461bcd60e51b8152602060048201526019602482015278119d5b991a5b99d5985d5b1d0e8813525397d1115413d4d255603a1b6044820152606401610a71565b61132f85826001612786565b92508260000361135257604051639811e0c760e01b815260040160405180910390fd5b61135f3385878685613032565b6015805460ff191660011790559695505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f891906141e8565b6001600160a01b0316336001600160a01b0316146114285760405162461bcd60e51b8152600401610a7190614205565b6014819055600554600b5460408051848152600160b01b90920460ff16151560208301527f68b1685f6ea22fd671d0a830642f8388d605a1e8d55b5a191a56985e1542b4ed9101610b2a565b61147c613151565b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150091906141e8565b6001600160a01b0316336001600160a01b0316146115305760405162461bcd60e51b8152600401610a7190614205565b6016819055600554600b5460408051848152600160b01b90920460ff16151560208301527f434325b0bbe67672143e68ab9e85ce916acca1a1547f54614cf38ca166f9f3ff9101610b2a565b6000600261158981612e92565b60155460ff166001146115ae5760405162461bcd60e51b8152600401610a7190614158565b6015805460ff191690556005546000818152600f602052604090205460ff16156115ea5760405162461bcd60e51b8152600401610a719061423c565b600b54600160b01b900460ff161561161d57600061160786613205565b905061161581836000612679565b93505061162c565b61162985826000612679565b92505b600b54600090600160b01b900460ff16156116525761164c338584612ec1565b90945090505b8360000361167357604051630cb65c7760e21b815260040160405180910390fd5b61167c82612886565b8410156116c75760405162461bcd60e51b8152602060048201526019602482015278119d5b991a5b99d5985d5b1d0e8813525397d1115413d4d255603a1b6044820152606401610a71565b6116d43386868986613032565b50935061135f8185614273565b6000805461095a906140d9565b6000806116f9612d6f565b90506117048161329f565b91505090565b60006109fe33848461292a565b600b54600090600160b01b900460ff16156117385761173582613205565b91505b6109eb826005546000612679565b6000600361175381612e92565b60155460ff166001146117785760405162461bcd60e51b8152600401610a7190614158565b6015805460ff1916905560055461178f8682613387565b61179b86826000612786565b9250826000036117be57604051639811e0c760e01b815260040160405180910390fd5b6117cc338686898786613423565b50506015805460ff191660011790559392505050565b6008546201000090046001600160a01b031633146118425760405162461bcd60e51b815260206004820152601d60248201527f46756e64696e675661756c743a204e4f545f47414d4d415f5641554c540000006044820152606401610a71565b6005546012544210156118975760405162461bcd60e51b815260206004820181905260248201527f46756e64696e675661756c743a20504552494f445f4e4f545f455850495245446044820152606401610a71565b6000818152600f602052604090205460ff16156118c65760405162461bcd60e51b8152600401610a719061423c565b6000818152600e60205260408120546009549091906118ee906001600160a01b031630612bb5565b9050601154811115611904576011548103820191505b8184106119405760006011819055838152600e60209081526040808320839055600f9091529020805460ff191660011790559092508290611971565b61194a84836141d5565b6000848152600e60205260409020556119638185612aec565b61196d90826141d5565b6011555b600a5460009061198a906001600160a01b031630612bb5565b90506010548111156119b2576010546000858152600d60205260409020805491830390910190555b60108190556119c18286612aec565b945084156119e0576009546119e0906001600160a01b03168787612c85565b6000848152600e6020908152604080832054600d835281842054601154600f8552948390205483519283529382015290810192909252606082018390526080820186905260a0820187905260ff16151560c08201527fda5eaa2135f921de98fbd5ec246ae873b6ec439e95d350cb0d0024488ac8589a9060e00160405180910390a1505050505050565b60006004611a7781612e92565b60155460ff16600114611a9c5760405162461bcd60e51b8152600401610a7190614158565b6015805460ff19169055600554611ab586826001612679565b925082600003611ad857604051630cb65c7760e21b815260040160405180910390fd5b611ae28382613387565b6117cc338686868a86613423565b600080611afc600c5490565b9050600160ff841681901b90821480611b16575081811615155b949350505050565b6008546001600160a01b0384811662010000909204161480611b445750611b448361363f565b15611b62576040516326d4326b60e11b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015611ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcd9190614286565b905081811015611bf0576040516308aeed0f60e21b815260040160405180910390fd5b8015611c0157611c01848483612c85565b50505050565b42841015611c4f5760405162461bcd60e51b8152602060048201526015602482015274119d5b991a5b99d5985d5b1d0e8811561412549151605a1b6044820152606401610a71565b6007546001600160a01b038816600090815260066020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b919087611ca28361429f565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e00160405160208183030381529060405280519060200120604051602001611d1b92919061190160f01b81526002810192909252602282015260420190565b6040516020818303038152906040528051906020012090506000611d418286868661366e565b90506001600160a01b03811615801590611d6c5750886001600160a01b0316816001600160a01b0316145b611db85760405162461bcd60e51b815260206004820152601f60248201527f46756e64696e675661756c743a20494e56414c49445f5349474e4154555245006044820152606401610a71565b611dc3898989612724565b505050505050505050565b6008546201000090046001600160a01b03163314611e2e5760405162461bcd60e51b815260206004820152601d60248201527f46756e64696e675661756c743a204e4f545f47414d4d415f5641554c540000006044820152606401610a71565b6005546000818152600f602052604090205460ff16611e8b5760405162461bcd60e51b8152602060048201526019602482015278233ab73234b733ab30bab63a1d102822a924a7a22fa7a822a760391b6044820152606401610a71565b600a546010546001600160a01b03909116906000611ea98330612bb5565b9050600082821115611eba57508181035b600b546001600160a01b03811690600160a01b900461ffff1660008215801590611ee8575060008261ffff16115b15611f0f57611f0285612710610e0161ffff86168861419c565b9050808403935080850394505b6000888152600d602052604081208054869290611f2d908490614273565b90915550506010859055611f42886001614273565b60055560135442906000611f568284614273565b601281905590508315611f6e57611f6e8a8786612c85565b60008b8152600d60209081526040918290205482519081529081018a90529081018c9052606081018490527f38d825732ab60c26b79eb3b2257a08aa4e738a18d63b3aec52eac155eab8487d9060800160405180910390a16008546201000090046001600160a01b0316611fe38c6001614273565b600b546040805186815260208101869052600160b01b90920460ff161515908201527f88358122a8b1e6b482f2acbfd23a46efdc4ee5d2afba57176efaf9398017fa599060600160405180910390a35050505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561209d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c191906141e8565b6001600160a01b0316336001600160a01b0316146120f15760405162461bcd60e51b8152600401610a7190614205565b600b80546001600160b01b031916600160a01b61ffff85169081026001600160a01b031916919091176001600160a01b03841690811792839055600554604080519384526020840192909252600160b01b90930460ff161515908201527f21e7ee52c08c4d9d46edcaa267c09c5625d1ca11a684282f0f0bd68c9447a6989060600160405180910390a25050565b600854610100900460ff161580801561219f5750600854600160ff909116105b806121b95750303b1580156121b9575060085460ff166001145b61221c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610a71565b6008805460ff19166001179055801561223f576008805461ff0019166101001790555b6008546201000090046001600160a01b031615801561226757506009546001600160a01b0316155b801561227c5750600a546001600160a01b0316155b6122b65760405162461bcd60e51b815260206004820152600b60248201526a125392551250531256915160aa1b6044820152606401610a71565b6001600160a01b038416158015906122d657506001600160a01b03831615155b80156122f45750836001600160a01b0316836001600160a01b031614155b6123355760405162461bcd60e51b8152602060048201526012602482015271494e56414c49445f504152414d455445525360701b6044820152606401610a71565b6008805462010000600160b01b031916620100006001600160a01b03871602179055816123625783612364565b825b600980546001600160a01b0319166001600160a01b03929092169190911790558161238f5782612391565b835b600a80546001600160a01b0319166001600160a01b0392909216919091179055600160058190556015805460ff19169091179055620151806013819055620186a06014556123df9042614273565b601255600b805460ff60b01b1916600160b01b8415150217905581612420576040518060400160405280600481526020016347562d5760e01b81525061243e565b6040518060400160405280600481526020016311d58b5160e21b8152505b60009061244b9082614314565b5081612485576040518060400160405280601681526020017547616d6d615661756c74205769746864726177616c7360501b8152506124b2565b6040518060400160405280601381526020017247616d6d615661756c74204465706f7369747360681b8152505b6001906124bf9082614314565b506124c8613151565b600554601354601254604080519283526020830191909152841515908201526001600160a01b03861691907f88358122a8b1e6b482f2acbfd23a46efdc4ee5d2afba57176efaf9398017fa599060600160405180910390a38015611c01576008805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b6000610a24600c5490565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146125c157604051633405651360e11b815260040160405180910390fd5b600160ff83161b6000816125d4600c5490565b1790506125e081600c55565b6040805133815260ff861660208201527f48fab505e6907f677501e0a6a69f002da8354b1f1f1a95efb48fe4f2c34e002d9101610d01565b600b54600090600160b01b900460ff161561264957600061263883613696565b91505080156126475780830392505b505b6109eb826005546001612786565b3360009081526006602052604081208054916126728361429f565b9190505550565b6000828152600460205260408120548082036126a25761269b6103e886614273565b915061271c565b60008360018111156126b6576126b66143d4565b036126f457806126c76001826141d5565b6000868152600e60205260409020546126e0908861419c565b6126ea9190614273565b61269b91906141b3565b6000848152600e6020526040902054819061270f908761419c565b61271991906141b3565b91505b509392505050565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60008360000361279857506000610b51565b600083815260046020908152604080832054600e909252909120548115806127be575080155b1561281b576103e8861161280f5760405162461bcd60e51b815260206004820152601860248201527746756e64696e675661756c743a204d494e5f53484152455360401b6044820152606401610a71565b6103e88603925061287d565b600084600181111561282f5761282f6143d4565b0361286557806128406001826141d5565b61284a848961419c565b6128549190614273565b61285e91906141b3565b925061287d565b80612870838861419c565b61287a91906141b3565b92505b50509392505050565b60006127106014546128966136c8565b6128a0919061419c565b6109eb91906141b3565b6001600160a01b038084166000908152600260209081526040808320938616835292905220546000198114611c0157818110156128fa57604051631594345d60e21b815260040160405180910390fd5b6001600160a01b038085166000908152600260209081526040808320938716835292905220828203905550505050565b6005546129388185846137a6565b60008181526003602090815260408083206001600160a01b03871684529091528120805484929061296a908490614273565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129b691815260200190565b60405180910390a3826001600160a01b0316846001600160a01b03167f0efb2754289a5bd9215ae68acd4f4ae527ad5ae20f6de58c7448df1c7df37d818484604051612a0c929190918252602082015260400190565b60405180910390a350505050565b600080612a278484612de8565b9050611b1681846000612786565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b1790529051600091829182916001600160a01b03861691612a7b91906143ea565b600060405180830381855afa9150503d8060008114612ab6576040519150601f19603f3d011682016040523d82523d6000602084013e612abb565b606091505b5091509150818015612acf57506001815110155b612ad857600080fd5b80806020019051810190611b169190614406565b6000818310612afb5781610b51565b5090919050565b612b0d8184846137a6565b60008181526004602052604081208054849290612b2b9084906141d5565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a360408051838152602081018390526000916001600160a01b038616917f0efb2754289a5bd9215ae68acd4f4ae527ad5ae20f6de58c7448df1c7df37d819101612779565b6040516001600160a01b038281166024830152600091829182919086169060440160408051601f198184030181529181526020820180516001600160e01b03166370a0823160e01b17905251612c0b91906143ea565b600060405180830381855afa9150503d8060008114612c46576040519150601f19603f3d011682016040523d82523d6000602084013e612c4b565b606091505b5091509150818015612c5f57506020815110155b612c6857600080fd5b80806020019051810190612c7c9190614286565b95945050505050565b6040516001600160a01b03838116602483015260448201839052600091829186169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b17905251612cdf91906143ea565b6000604051808303816000865af19150503d8060008114612d1c576040519150601f19603f3d011682016040523d82523d6000602084013e612d21565b606091505b5091509150818015612d4b575080511580612d4b575080806020019051810190612d4b9190614423565b612d685760405163847ea61d60e01b815260040160405180910390fd5b5050505050565b6000600860029054906101000a90046001600160a01b03166001600160a01b0316635e62520b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2491906141e8565b60008181526003602090815260408083206001600160a01b038616845290915281205481612e1882856001612679565b90506000612e2585612886565b6000868152600e6020526040902054909150808311612e85578290036103e8811480612e515750818110155b15612e6257829450505050506109eb565b81811015612e855780820380841115612e835790920393506109eb92505050565b505b5060009695505050505050565b612e9b81611af0565b15612ebe57604051638f121e4360e01b815260ff82166004820152602401610a71565b50565b600080600080612ed086613696565b909250905080156130275780860395506000600860029054906101000a90046001600160a01b03166001600160a01b03166397ee11446040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5991906141e8565b600954909150612f74906001600160a01b0316898385613816565b6040516398bc58ed60e01b81526001600160a01b0384811660048301528216906398bc58ed90602401600060405180830381600087803b158015612fb757600080fd5b505af1158015612fcb573d6000803e3d6000fd5b5050604080516001600160a01b038581168252602082018790529181018b9052606081018a9052908b1692507f7684540c2c06eab18c0c437e9ec48c0652322f633ca02021bf69e822c0a3e729915060800160405180910390a2505b949694955050505050565b60008042601254116130865760405162461bcd60e51b815260206004820152601c60248201527f46756e64696e675661756c743a20504552494f445f45585049524544000000006044820152606401610a71565b60095461309e906001600160a01b0316883088613816565b6000838152600460205260408120549081900361311f576103e886116131015760405162461bcd60e51b815260206004820152601860248201527746756e64696e675661756c743a204d494e5f53484152455360401b6044820152606401610a71565b61310d6103e8876141d5565b955061311f8860006103e88088613909565b61312c8888888888613909565b80600003613143576131406103e887614273565b95505b509396929550919350505050565b60405146907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f9061318490600190614440565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018290523060a082015260c00160408051601f19818403018152919052805160209091012060075550565b600080613218613213612d6f565b61329f565b61ffff169050612710811061326f5760405162461bcd60e51b815260206004820152601960248201527f46756e64696e675661756c743a20494e56414c49445f464545000000000000006044820152606401610a71565b612710038061327f6001826141d5565b61328b8561271061419c565b6132959190614273565b610b5191906141b3565b600080600860029054906101000a90046001600160a01b03166001600160a01b03166397ee11446040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061331991906141e8565b6040516362fd76eb60e11b81526001600160a01b0385811660048301529192509082169063c5faedd690602401602060405180830381865afa158015613363573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5191906144b6565b6000818152600e6020526040902054808311156133b75760405163a324f99960e01b815260040160405180910390fd5b8290036103e88114806133d257506133ce82612886565b8110155b61341e5760405162461bcd60e51b815260206004820152601a60248201527f46756e64696e675661756c743a204d41585f57495448445241570000000000006044820152606401610a71565b505050565b42601254116134745760405162461bcd60e51b815260206004820152601c60248201527f46756e64696e675661756c743a20504552494f445f45585049524544000000006044820152606401610a71565b836001600160a01b0316866001600160a01b031614613498576134988487846128aa565b6134a3848383612b02565b6000818152600e6020526040812080548592906134c19084906141d5565b9250508190555082601160008282546134da91906141d5565b9091555050600b54600160b01b900460ff161561356c57600860029054906101000a90046001600160a01b03166001600160a01b031663f38668566040518163ffffffff1660e01b81526004016020604051808303816000875af1158015613546573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061356a9190614286565b505b600954613583906001600160a01b03168685612c85565b836001600160a01b0316856001600160a01b0316876001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db86866040516135db929190918252602082015260400190565b60405180910390a460408051848152602081018490529081018290526001600160a01b0380861691878216918916907f39cc692b1f3aa68cbe29a0caea8d5931507517815861ab3634a1710c3a1bc5599060600160405180910390a4505050505050565b6009546000906001600160a01b03838116911614806109eb575050600a546001600160a01b0390811691161490565b600080600061367f87878787613af6565b9150915061368c81613bba565b5095945050505050565b6000806136a1612d6f565b91506136c1836127106136b38561329f565b610e019061ffff168761419c565b9050915091565b600b54600090600160b01b900460ff1661375357600860029054906101000a90046001600160a01b03166001600160a01b031663522d6ae86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561372f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a249190614286565b600860029054906101000a90046001600160a01b03166001600160a01b031663a6eef1616040518163ffffffff1660e01b8152600401602060405180830381865afa15801561372f573d6000803e3d6000fd5b60008381526003602090815260408083206001600160a01b0386168452909152902054808211156137ea57604051631e9acf1760e31b815260040160405180910390fd5b60009384526003602090815260408086206001600160a01b039095168652939052919092209190039055565b6040516001600160a01b038481166024830152838116604483015260648201839052600091829187169060840160408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b1790525161387891906143ea565b6000604051808303816000865af19150503d80600081146138b5576040519150601f19603f3d011682016040523d82523d6000602084013e6138ba565b606091505b50915091508180156138e45750805115806138e45750808060200190518101906138e49190614423565b6139015760405163e5c4a34160e01b815260040160405180910390fd5b505050505050565b613914848383613d04565b6000818152600e602052604081208054859290613932908490614273565b92505081905550826011600082825461394b9190614273565b9091555050601654158061396f57506016546000828152600e602052604090205411155b6139bb5760405162461bcd60e51b815260206004820181905260248201527f46756e64696e675661756c743a204d41585f544f54414c5f4445504f534954536044820152606401610a71565b600b54600160b01b900460ff1615613a4857600860029054906101000a90046001600160a01b03166001600160a01b031663f38668566040518163ffffffff1660e01b81526004016020604051808303816000875af1158015613a22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a469190614286565b505b836001600160a01b0316856001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78585604051613a96929190918252602082015260400190565b60405180910390a360408051848152602081018490529081018290526001600160a01b0380861691908716907f057467dbe23bba7fb29b85a1c84c5f5db5c1c757684a614a181e3daa07d62bc59060600160405180910390a35050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613b2d5750600090506003613bb1565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613b81573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613baa57600060019250925050613bb1565b9150600090505b94509492505050565b6000816004811115613bce57613bce6143d4565b03613bd65750565b6001816004811115613bea57613bea6143d4565b03613c375760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610a71565b6002816004811115613c4b57613c4b6143d4565b03613c985760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610a71565b6003816004811115613cac57613cac6143d4565b03612ebe5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610a71565b60008181526004602052604081208054849290613d22908490614273565b909155505060008181526003602090815260408083206001600160a01b038716845290915281208054849290613d59908490614273565b90915550506040518281526001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a360408051838152602081018390526001600160a01b038516916000917f0efb2754289a5bd9215ae68acd4f4ae527ad5ae20f6de58c7448df1c7df37d819101612779565b60005b83811015613dfe578181015183820152602001613de6565b50506000910152565b6020815260008251806020840152613e26816040850160208701613de3565b601f01601f19169190910160400192915050565b600060208284031215613e4c57600080fd5b5035919050565b6001600160a01b0381168114612ebe57600080fd5b60008060408385031215613e7b57600080fd5b8235613e8681613e53565b946020939093013593505050565b600080600060608486031215613ea957600080fd5b8335613eb481613e53565b92506020840135613ec481613e53565b929592945050506040919091013590565b600060208284031215613ee757600080fd5b8135610b5181613e53565b60ff81168114612ebe57600080fd5b600060208284031215613f1357600080fd5b8135610b5181613ef2565b600080600060608486031215613f3357600080fd5b83359250602084013591506040840135613f4c81613e53565b809150509250925092565b60008060408385031215613f6a57600080fd5b823591506020830135613f7c81613e53565b809150509250929050565b600080600060608486031215613f9c57600080fd5b833592506020840135613fae81613e53565b91506040840135613f4c81613e53565b600080600080600080600060e0888a031215613fd957600080fd5b8735613fe481613e53565b96506020880135613ff481613e53565b95506040880135945060608801359350608088013561401281613ef2565b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561404257600080fd5b823561404d81613e53565b91506020830135613f7c81613e53565b61ffff81168114612ebe57600080fd5b6000806040838503121561408057600080fd5b823561404d8161405d565b8015158114612ebe57600080fd5b6000806000606084860312156140ae57600080fd5b83356140b981613e53565b925060208401356140c981613e53565b91506040840135613f4c8161408b565b600181811c908216806140ed57607f821691505b60208210810361410d57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526025908201527f46756e64696e675661756c743a204e4f545f47414d4d415f5641554c545f464160408201526443544f525960d81b606082015260800190565b602080825260149082015273119d5b991a5b99d5985d5b1d0e881313d0d2d15160621b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176109eb576109eb614186565b6000826141d057634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156109eb576109eb614186565b6000602082840312156141fa57600080fd5b8151610b5181613e53565b60208082526017908201527f46756e64696e675661756c743a20464f5242494444454e000000000000000000604082015260600190565b6020808252601b908201527f46756e64696e675661756c743a20504552494f445f434c4f5345440000000000604082015260600190565b808201808211156109eb576109eb614186565b60006020828403121561429857600080fd5b5051919050565b6000600182016142b1576142b1614186565b5060010190565b634e487b7160e01b600052604160045260246000fd5b601f82111561341e57600081815260208120601f850160051c810160208610156142f55750805b601f850160051c820191505b8181101561390157828155600101614301565b815167ffffffffffffffff81111561432e5761432e6142b8565b6143428161433c84546140d9565b846142ce565b602080601f831160018114614377576000841561435f5750858301515b600019600386901b1c1916600185901b178555613901565b600085815260208120601f198616915b828110156143a657888601518255948401946001909101908401614387565b50858210156143c45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fd5b600082516143fc818460208701613de3565b9190910192915050565b60006020828403121561441857600080fd5b8151610b5181613ef2565b60006020828403121561443557600080fd5b8151610b518161408b565b600080835461444e816140d9565b60018281168015614466576001811461447b576144aa565b60ff19841687528215158302870194506144aa565b8760005260208060002060005b858110156144a15781548a820152908401908201614488565b50505082870194505b50929695505050505050565b6000602082840312156144c857600080fd5b8151610b518161405d56fea26469706673582212201bbaa60c59bb3fd949e1201f21dbe89ddcb1dafe44ac2b30e2c0e37d869913e564736f6c634300081500330000000000000000000000003e9955c6c6aa6af4f72cfaa7e9b7573f7ac25429000000000000000000000000ab0d2f393d8095cf7c154ddd81cbd6ff56238427000000000000000000000000ab0d2f393d8095cf7c154ddd81cbd6ff562384270000000000000000000000000000000000000000000000000000000000000000