0 txs
0 calls
constructor
constructor(address _erc4626)
functions
accruedRewards
viewfunction accruedRewards(address) view returns (uint256[] rewardAmounts)
adapter
viewfunction adapter() view returns (address)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
asset
viewfunction asset() view returns (address)
assetInfo
viewfunction assetInfo() view returns (uint8 assetType, address assetAddress, uint8 assetDecimals)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
eip712Domain
viewfunction eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
exchangeRate
viewfunction exchangeRate() view returns (uint256)
getRewardTokens
viewfunction getRewardTokens() view returns (address[] rewardTokens)
getTokensIn
viewfunction getTokensIn() view returns (address[] res)
getTokensOut
viewfunction getTokensOut() view returns (address[] res)
isValidTokenIn
viewfunction isValidTokenIn(address token) view returns (bool)
isValidTokenOut
viewfunction isValidTokenOut(address token) view returns (bool)
name
viewfunction name() view returns (string)
nonces
viewfunction nonces(address owner) view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
pendingOwner
viewfunction pendingOwner() view returns (address)
previewDeposit
viewfunction previewDeposit(address tokenIn, uint256 amountTokenToDeposit) view returns (uint256 amountSharesOut)
previewRedeem
viewfunction previewRedeem(address tokenOut, uint256 amountSharesToRedeem) view returns (uint256 amountTokenOut)
rewardIndexesStored
viewfunction rewardIndexesStored() view returns (uint256[] indexes)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
yieldToken
viewfunction yieldToken() view returns (address)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
claimOwnership
nonpayablefunction claimOwnership()
claimRewards
nonpayablefunction claimRewards(address) returns (uint256[] rewardAmounts)
deposit
payablefunction deposit(address receiver, address tokenIn, uint256 amountTokenToDeposit, uint256 minSharesOut) payable returns (uint256 amountSharesOut)
initialize
nonpayablefunction initialize(string _name, string _symbol, address _adapter)
pause
nonpayablefunction pause()
permit
nonpayablefunction permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
redeem
nonpayablefunction redeem(address receiver, uint256 amountSharesToRedeem, address tokenOut, uint256 minTokenOut, bool burnFromInternalBalance) returns (uint256 amountTokenOut)
rewardIndexesCurrent
nonpayablefunction rewardIndexesCurrent() returns (uint256[] indexes)
setAdapter
nonpayablefunction setAdapter(address _adapter)
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, bool direct, bool renounce)
unpause
nonpayablefunction unpause()
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
ClaimRewards
event ClaimRewards(address indexed user, address[] rewardTokens, uint256[] rewardAmounts)
Deposit
event Deposit(address indexed caller, address indexed receiver, address indexed tokenIn, uint256 amountDeposited, uint256 amountSyOut)
EIP712DomainChanged
event EIP712DomainChanged()
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Redeem
event Redeem(address indexed caller, address indexed receiver, address indexed tokenOut, uint256 amountSyToRedeem, uint256 amountTokenOut)
SetAdapter
event SetAdapter(address indexed adapter)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Unpaused
event Unpaused(address account)
errors
SYInsufficientSharesOut
error SYInsufficientSharesOut(uint256 actualSharesOut, uint256 requiredSharesOut)
SYInsufficientTokenOut
error SYInsufficientTokenOut(uint256 actualTokenOut, uint256 requiredTokenOut)
SYInvalidTokenIn
error SYInvalidTokenIn(address token)
SYInvalidTokenOut
error SYInvalidTokenOut(address token)
SYZeroDeposit
error SYZeroDeposit()
SYZeroRedeem
error SYZeroRedeem()
creation bytecode
0x60e060409080825234620002ce576200003290620053ed8038038091620000278285620002e4565b83398101906200031c565b815163313ce56760e01b81526020916001600160a01b038116918381600481865afa908115620002da575f9162000298575b5060805261013460ff19815416905560a05260015460ff8160a81c1662000244576004918160ff80869460a01c160362000202575b5084516338d52e0f60e01b815292839182905afa918215620001f8575f92620001c4575b505060c052516150af90816200033e8239608051816114d7015260a051818181610e130152818161138d015281816117ee0152818161184a0152818161187701528181611b6201528181611c1b015281816124a7015281816132a30152818161331501528181613487015281816134f6015281816135c30152818161364101528181614327015281816145f40152614791015260c0518181816108530152818161144401528181611d2501528181611d93015281816124c8015281816132c501528181613336015281816134a901528181613592015281816135f3015281816136c201528181613cd30152818161436d015281816146f10152818161474f015261480f0152f35b620001e89250803d10620001f0575b620001df8183620002e4565b8101906200031c565b5f80620000bd565b503d620001d3565b83513d5f823e3d90fd5b60ff60a01b191660ff60a01b17600155845160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498908390a15f62000099565b835162461bcd60e51b815260048101849052602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b90508381813d8311620002d2575b620002b28183620002e4565b81010312620002ce575160ff81168103620002ce575f62000064565b5f80fd5b503d620002a6565b85513d5f823e3d90fd5b601f909101601f19168101906001600160401b038211908210176200030857604052565b634e487b7160e01b5f52604160045260245ffd5b90816020910312620002ce57516001600160a01b0381168103620002ce579056fe608080604052600436101561001c575b50361561001a575f80fd5b005b5f3560e01c90816303eadcfc14612d095750806306fdde0314612c42578063071bc3c914612c09578063077f224a14612106578063078dfbe714611f85578063095ea7b314611f36578063128fced11461023457806318160ddd14611eda57806320e8c56514611702578063213cae63146116bd57806323b872dd146114fb578063313ce567146114a05780633644e5151461146857806338d52e0f146113fa5780633ba0b9a91461130e5780633f4ba83a146112025780634e71e0c8146110fc5780635c975abb146110bb57806370a0823114611058578063769f8e5d14610e3757806376d5de8514610dc9578063784367d614610d885780637ecebe0014610d255780638456cb5914610c7557806384b0196e14610a7e5780638da5cb5b14610a2e57806395d89b4114610914578063a40bee501461080e578063a9059cbb1461073a578063ab1da79c146106d9578063b8f82b261461063e578063c4f59f9b146105ee578063cbe52ae31461054b578063d505accf14610303578063da88ecb41461022f578063dd62ed3e1461028a578063e30c397814610239578063ef5cfb8c14610234578063f8b2f9911461022f5763fa5a4f06146101e0575f61000f565b3461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602061022161021c612f3d565b613619565b6040519015158152f35b5f80fd5b613014565b612fb6565b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b3461022b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576102c1612f3d565b6102c9612f60565b9073ffffffffffffffffffffffffffffffffffffffff8091165f52600360205260405f2091165f52602052602060405f2054604051908152f35b3461022b5760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5761033a612f3d565b610342612f60565b6044359060843560643560ff8216820361022b578042116104ed5773ffffffffffffffffffffffffffffffffffffffff9081861692835f52609f60205260405f20908154916001830190556040519260208401927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98452866040860152858816606086015288608086015260a085015260c084015260c0835260e083019183831067ffffffffffffffff8411176104c0576104539361044b93604052519020610409614a44565b90604051917f190100000000000000000000000000000000000000000000000000000000000083526002830152602282015260c43591604260a4359220614b25565b919091614bad565b16036104625761001a92613d38565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152fd5b3461022b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610582612f3d565b61058b816134ce565b156105a75761059f60209160243590614777565b604051908152f35b60249073ffffffffffffffffffffffffffffffffffffffff604051917f88a50561000000000000000000000000000000000000000000000000000000008352166004820152fd5b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5761063a60405161062b81612e21565b5f815260405191829182612db4565b0390f35b3461022b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610675612f3d565b61067e81613619565b156106925761059f602091602435906145dc565b60249073ffffffffffffffffffffffffffffffffffffffff604051917faeabe718000000000000000000000000000000000000000000000000000000008352166004820152fd5b3461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5761001a610713612f3d565b61073573ffffffffffffffffffffffffffffffffffffffff5f5416331461335a565b613bb8565b3461022b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b577f0100000000000000000000000000000000000000000000000000000000000000610792612f3d565b6107fb600454916107a960028460f81c14156133bf565b7f02000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff809416176004556024359033613ea9565b6004541617600455602060405160018152f35b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166040517f313ce567000000000000000000000000000000000000000000000000000000008152602081600481855afa908115610909575f916108ca575b60608360ff84604051925f84526020840152166040820152f35b90506020813d602011610901575b816108e560209383612e59565b8101031261022b57519060ff8216820361022b579060ff6108b0565b3d91506108d8565b6040513d5f823e3d90fd5b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576040516006545f8261095383613051565b91828252602093600190856001821691825f146109f0575050600114610995575b5061098192500383612e59565b61063a604051928284938452830190612d58565b84915060065f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f905f915b8583106109d8575050610981935082010185610974565b805483890185015287945086939092019181016109c1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168582015261098195151560051b85010192508791506109749050565b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57606b541580610c6b575b15610c0d57604051606d54905f610acc83613051565b808352602093600190818116908115610bd15750600114610b7d575b60e08561063a86610afb81880382612e59565b610b5d610b066130a2565b610b4f60405193610b1685612e21565b5f85526040519788977f0f00000000000000000000000000000000000000000000000000000000000000895288015260e0870190612d58565b908582036040870152612d58565b904660608501523060808501525f60a085015283820360c0850152612f83565b606d5f90815292507f5006b838207c6a9ae9b84d68f467dd4bb5c305fbfb6b04eab8faaabeec1e18d85b828410610bbe575050508101820181610afb610ae8565b8054858501870152928501928101610ba7565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016868601525050151560051b82018301905081610afb610ae8565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152fd5b50606c5415610ab6565b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610cc573ffffffffffffffffffffffffffffffffffffffff5f5416331461335a565b610ccd614aba565b61013460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b3461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5773ffffffffffffffffffffffffffffffffffffffff610d71612f3d565b165f52609f602052602060405f2054604051908152f35b3461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576020610221610dc4612f3d565b6134ce565b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461022b5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57610e6e612f3d565b602435610e79612f1a565b916064359160843593841515850361022b5760045494610e9f60028760f81c14156133bf565b7f02000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80971617600455610ef0826134ce565b15611011578215610fe75715610fd857610f0a823061412d565b610f15828285614310565b93808510610fa1575091602094917f01000000000000000000000000000000000000000000000000000000000000009373ffffffffffffffffffffffffffffffffffffffff80916040519384528789850152169216907faee47cdf925cf525fdae94f9777ee5a06cac37e1c41220d0a8a89ed154f62d1c60403392a46004541617600455604051908152f35b84604491604051917fbfee4ca000000000000000000000000000000000000000000000000000000000835260048301526024820152fd5b610fe2823361412d565b610f0a565b60046040517fc3d83b07000000000000000000000000000000000000000000000000000000008152fd5b60248273ffffffffffffffffffffffffffffffffffffffff604051917f88a50561000000000000000000000000000000000000000000000000000000008352166004820152fd5b3461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5773ffffffffffffffffffffffffffffffffffffffff6110a4612f3d565b165f526002602052602060405f2054604051908152f35b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602060ff61013454166040519015158152f35b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760015473ffffffffffffffffffffffffffffffffffffffff908181168033036111a457805f549384167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a37fffffffffffffffffffffffff0000000000000000000000000000000000000000928316175f5516600155005b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152fd5b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5761125273ffffffffffffffffffffffffffffffffffffffff5f5416331461335a565b610134805460ff8116156112b0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152fd5b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576040517f07a2d13a000000000000000000000000000000000000000000000000000000008152670de0b6b3a7640000600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa8015610909575f906113c7575b602090604051908152f35b506020813d6020116113f2575b816113e160209383612e59565b8101031261022b57602090516113bc565b3d91506113d4565b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602061059f614a44565b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461022b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57611532612f3d565b61153a612f60565b6044356004549161155160028460f81c14156133bf565b7f02000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8094161760045573ffffffffffffffffffffffffffffffffffffffff84165f52600360205260405f20335f5260205260405f20547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810361161b575b50906107fb917f010000000000000000000000000000000000000000000000000000000000000094613ea9565b919081831061165f577f010000000000000000000000000000000000000000000000000000000000000094611656836107fb95033383613d38565b945090916115ee565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5761063a6116f6613424565b60405191829182612db4565b60807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57611734612f3d565b61173c612f60565b6004549061175060028360f81c14156133bf565b7f02000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff809316176004556117a181613619565b156106925760443515611eb05773ffffffffffffffffffffffffffffffffffffffff8116611e2f576044353403611dd1575b6044358173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416141580611d7b575b611c84575b73ffffffffffffffffffffffffffffffffffffffff807f0000000000000000000000000000000000000000000000000000000000000000169116145f14611bcb57915b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611b195747915b60045494828616936118c58686613791565b11611abb576064358510611a825773ffffffffffffffffffffffffffffffffffffffff16928315611a24576118f8614aba565b82851161022b5782851601928284116119f7576020957fff00000000000000000000000000000000000000000000000000000000000000847f01000000000000000000000000000000000000000000000000000000000000009616911617600455805f526002865260405f2061196f868254613791565b9055805f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef88604051898152a373ffffffffffffffffffffffffffffffffffffffff604051926044358452868885015216917f5fe47ed6d4225326d3303476197d782ded5a4e9c14f479dc9ec4992af4e85d5960403392a46004541617600455604051908152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b604485604051907fbc71f2ba00000000000000000000000000000000000000000000000000000000825260048201526064356024820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f53593a20696e73756666696369656e74207368617265730000000000000000006044820152fd5b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610909575f91611b99575b50916118b3565b90506020813d602011611bc3575b81611bb460209383612e59565b8101031261022b575185611b92565b3d9150611ba7565b604051907f6e553f6500000000000000000000000000000000000000000000000000000000825260048201523060248201526020816044815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1908115610909575f91611c52575b5091611875565b90506020813d602011611c7c575b81611c6d60209383612e59565b8101031261022b575184611c4b565b3d9150611c60565b505073ffffffffffffffffffffffffffffffffffffffff610199611cae6044358383541685614940565b5416602060405180927fb8f86171000000000000000000000000000000000000000000000000000000008252815f81611d1060443589600484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b03925af1908115610909575f91611d49575b507f0000000000000000000000000000000000000000000000000000000000000000611832565b90506020813d602011611d73575b81611d6460209383612e59565b8101031261022b575184611d22565b3d9150611d57565b5073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416141561182d565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f657468206d69736d6174636800000000000000000000000000000000000000006044820152fd5b6040517f23b872dd00000000000000000000000000000000000000000000000000000000602082015233602482015230604482015260443560648201526064815260a081019080821067ffffffffffffffff8311176104c057611eab9160405273ffffffffffffffffffffffffffffffffffffffff8316614d44565b6117d3565b60046040517fa907f2f0000000000000000000000000000000000000000000000000000000008152fd5b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60045416604051908152f35b3461022b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57611f7a611f70612f3d565b6024359033613d38565b602060405160018152f35b3461022b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57611fbc612f3d565b602435801515810361022b5760443590811515820361022b5773ffffffffffffffffffffffffffffffffffffffff928391611ffb835f5416331461335a565b156120d55716908115908115916120cd575b501561206f57805f549283167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a37fffffffffffffffffffffffff0000000000000000000000000000000000000000809216175f55600154166001555f80f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f776e61626c653a207a65726f206164647265737300000000000000000000006044820152fd5b90508361200d565b915050167fffffffffffffffffffffffff000000000000000000000000000000000000000060015416176001555f80f35b3461022b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760043567ffffffffffffffff811161022b57612155903690600401612ed4565b60243567ffffffffffffffff811161022b57612175903690600401612ed4565b9061217e612f1a565b6001549060ff8260a81c161591828093612bf9575b8015612bdf575b15612b5b5782740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff831617600155612b18575b5061220660ff60015460a81c166121f881613879565b61220181613879565b613879565b825167ffffffffffffffff81116104c057612222600554613051565b601f8111612a77575b50806020601f821160011461299a575f9161298f575b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176005555b835167ffffffffffffffff81116104c05761228f600654613051565b601f81116128ee575b506020601f821160011461280f5781929394955f92612804575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176006555b7f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600454161760045560405161233a81612e05565b600181527f3100000000000000000000000000000000000000000000000000000000000000602082015261237960ff60015460a81c1661220181613879565b835167ffffffffffffffff81116104c057612395606d54613051565b601f8111612763575b506020601f82116001146126845781929394955f92612679575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c191617606d555b80519067ffffffffffffffff82116104c057612408606e54613051565b601f8111612616575b50602090601f8311600114612552576124ec9392915f9183612547575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c191617606e555b5f606b555f606c5561247a60ff60015460a81c16613879565b337fffffffffffffffffffffffff00000000000000000000000000000000000000005f5416175f556107357f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000613904565b6124f257005b7fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff600154166001557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a1005b01519050858061242e565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0831691606e5f527f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a925f5b8181106125fe57509160019391856124ec979694106125c7575b505050811b01606e55612461565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690558580806125b9565b9293602060018192878601518155019501930161259f565b606e5f527f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a601f840160051c8101916020851061266f575b601f0160051c01905b8181106126645750612411565b5f8155600101612657565b909150819061264e565b0151905085806123b8565b606d5f527f5006b838207c6a9ae9b84d68f467dd4bb5c305fbfb6b04eab8faaabeec1e18d8905f5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08416811061274b5750600193949596837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0811610612714575b505050811b01606d556123eb565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055858080612706565b9091602060018192858b0151815501930191016126ac565b606d5f52601f820160051c7f5006b838207c6a9ae9b84d68f467dd4bb5c305fbfb6b04eab8faaabeec1e18d80190602083106127dc575b601f0160051c7f5006b838207c6a9ae9b84d68f467dd4bb5c305fbfb6b04eab8faaabeec1e18d801905b8181106127d1575061239e565b5f81556001016127c4565b7f5006b838207c6a9ae9b84d68f467dd4bb5c305fbfb6b04eab8faaabeec1e18d8915061279a565b0151905085806122b2565b60065f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f905f5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0841681106128d65750600193949596837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081161061289f575b505050811b016006556122e5565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055858080612891565b9091602060018192858b015181550193019101612837565b60065f52601f820160051c7ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f019060208310612967575b601f0160051c7ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f01905b81811061295c5750612298565b5f815560010161294f565b7ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9150612925565b905084015186612241565b915060055f527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05f925b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe083168410612a5f5760019350827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0811610612a28575b5050811b01600555612273565b8601517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690558680612a1b565b868101518255602093840193600190920191016129c4565b60055f52601f820160051c7f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0019060208310612af0575b601f0160051c7f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001905b818110612ae5575061222b565b5f8155600101612ad8565b7f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db09150612aae565b7fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff16750101000000000000000000000000000000000000000017600155846121e2565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b50303b15801561219a5750600160ff8260a01c161461219a565b50600160ff8260a01c1610612193565b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5761063a6116f661323f565b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b576040516005545f82612c8183613051565b91828252602093600190856001821691825f146109f0575050600114612cae575061098192500383612e59565b84915060055f527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0905f915b858310612cf1575050610981935082010185610974565b80548389018501528794508693909201918101612cda565b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5760209073ffffffffffffffffffffffffffffffffffffffff61019954168152f35b91908251928382525f5b848110612da05750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f845f6020809697860101520116010190565b602081830181015184830182015201612d62565b60209060206040818301928281528551809452019301915f5b828110612ddb575050505090565b835173ffffffffffffffffffffffffffffffffffffffff1685529381019392810192600101612dcd565b6040810190811067ffffffffffffffff8211176104c057604052565b6020810190811067ffffffffffffffff8211176104c057604052565b6080810190811067ffffffffffffffff8211176104c057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176104c057604052565b67ffffffffffffffff81116104c057601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f8201121561022b57803590612eeb82612e9a565b92612ef96040519485612e59565b8284526020838301011161022b57815f926020809301838601378301015290565b6044359073ffffffffffffffffffffffffffffffffffffffff8216820361022b57565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361022b57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361022b57565b9081518082526020808093019301915f5b828110612fa2575050505090565b835185529381019392810192600101612f94565b3461022b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b57612fed612f3d565b5061063a604051612ffd81612e21565b5f8152604051918291602083526020830190612f83565b3461022b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022b5761063a604051612ffd81612e21565b90600182811c92168015613098575b602083101461306b57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691613060565b604051905f82606e54916130b583613051565b8083529260209060019081811690811561314157506001146130e2575b50506130e092500383612e59565b565b915092606e5f527f9930d9ff0dee0ef5ca2f7710ea66b8f84dd0f5f5351ecffe72b952cd9db7142a935f925b82841061312957506130e09450505081016020015f806130d2565b8554888501830152948501948794509281019261310e565b9050602093506130e09592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f806130d2565b67ffffffffffffffff81116104c05760051b60200190565b519073ffffffffffffffffffffffffffffffffffffffff8216820361022b57565b602090818184031261022b5780519067ffffffffffffffff821161022b57019180601f8401121561022b5782516131f381613184565b936132016040519586612e59565b818552838086019260051b82010192831161022b578301905b828210613228575050505090565b8380916132348461319c565b81520191019061321a565b73ffffffffffffffffffffffffffffffffffffffff6101995416801561330f575f600491604051928380927fcad107dd0000000000000000000000000000000000000000000000000000000082525afa8015610909576132ea915f916132ed575b507f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000009061379e565b90565b61330991503d805f833e6133018183612e59565b8101906131bd565b5f6132a0565b506132ea7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061372d565b1561336157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b156133c657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152fd5b73ffffffffffffffffffffffffffffffffffffffff6101995416801561330f575f600491604051928380927f56e2816e0000000000000000000000000000000000000000000000000000000082525afa8015610909576132ea915f916132ed57507f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000009061379e565b73ffffffffffffffffffffffffffffffffffffffff908161019954168281156135bc578216837f0000000000000000000000000000000000000000000000000000000000000000168114938415613590575b5050821561352d57505090565b600492505f90604051938480927fcad107dd0000000000000000000000000000000000000000000000000000000082525afa8015610909576132ea925f91613576575b5061458c565b61358a91503d805f833e6133018183612e59565b5f613570565b7f0000000000000000000000000000000000000000000000000000000000000000161492505f80613520565b91905016817f00000000000000000000000000000000000000000000000000000000000000001681149182156135f157505090565b7f00000000000000000000000000000000000000000000000000000000000000001614919050565b73ffffffffffffffffffffffffffffffffffffffff908161019954168281156135bc578216837f00000000000000000000000000000000000000000000000000000000000000001681149384156136c0575b5050821561367857505090565b600492505f90604051938480927f56e2816e0000000000000000000000000000000000000000000000000000000082525afa8015610909576132ea925f91613576575061458c565b7f0000000000000000000000000000000000000000000000000000000000000000161492505f8061366b565b80518210156137005760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b9190604051906060820182811067ffffffffffffffff8211176104c057604052600282526020820193604036863782948351156137005773ffffffffffffffffffffffffffffffffffffffff80921690528251600110156137005760409116910152565b919082018092116119f757565b929190835160028101908181116119f7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06137f26137dc84613184565b936137ea6040519586612e59565b808552613184565b0136602084013781955f5b82811061384457505061381081836136ec565b73ffffffffffffffffffffffffffffffffffffffff8094169052600181018091116119f75761383e916136ec565b91169052565b8073ffffffffffffffffffffffffffffffffffffffff613866600193856136ec565b511661387282876136ec565b52016137fd565b1561388057565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b9073ffffffffffffffffffffffffffffffffffffffff91828116908115613bb2576040918251809581957fdd62ed3e0000000000000000000000000000000000000000000000000000000083523060048401521691826024830152602096879160449788915afa8015613ba8575f90613b6f575b6b7fffffffffffffffffffffff915010613994575b5050505050565b8251905f808784017f095ea7b3000000000000000000000000000000000000000000000000000000009485825284602482015282898201528881526139d881612e3d565b519082875af16139e66148f9565b81613b3f575b5015613ae357915f929183809386519089820193845260248201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88820152878152613a3881612e3d565b51925af1613a446148f9565b81613ab3575b5015613a5757808061398d565b606492917f5361666520417070726f766500000000000000000000000000000000000000009151927f08c379a00000000000000000000000000000000000000000000000000000000084526004840152600c6024840152820152fd5b80518015925085908315613acb575b5050505f613a4a565b613adb9350820181019101614928565b5f8481613ac2565b6064867f5361666520417070726f76650000000000000000000000000000000000000000878751927f08c379a00000000000000000000000000000000000000000000000000000000084526004840152600c6024840152820152fd5b80518015925088908315613b57575b5050505f6139ec565b613b679350820181019101614928565b5f8781613b4e565b508581813d8311613ba1575b613b858183612e59565b8101031261022b576b7fffffffffffffffffffffff9051613978565b503d613b7b565b84513d5f823e3d90fd5b50505050565b73ffffffffffffffffffffffffffffffffffffffff809116908115908115613c90575b5015613c3257610199817fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f491784ddb6af903db22df115fa8320b4b0b4fdca5e088f87ef5c178a31283e715f80a2565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f5f736574416461707465723a20696e76616c69642061646170746572000000006044820152fd5b6040517fdfbe7c820000000000000000000000000000000000000000000000000000000081529150602082600481865afa918215610909575f92613cfc575b50807f0000000000000000000000000000000000000000000000000000000000000000169116145f613bdb565b9091506020813d602011613d30575b81613d1860209383612e59565b8101031261022b57613d299061319c565b905f613ccf565b3d9150613d0b565b73ffffffffffffffffffffffffffffffffffffffff809116918215613e265716918215613da25760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f526003825260405f20855f5282528060405f2055604051908152a3565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff8091169182156140a9571691821561402557828214613fc757613edf614aba565b815f52600260205260405f2054818110613f4357817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f52600284520360405f2055845f5260405f20613f38828254613791565b9055604051908152a3565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f45524332303a207472616e7366657220746f2073656c660000000000000000006044820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff16801561428c57614151614aba565b805f52600260205260405f2054828110614208578290825f5260026020520360405f20557effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9182811161022b576004549280821681851603918183116119f7575f947fff000000000000000000000000000000000000000000000000000000000000006020937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9516911617600455604051908152a3565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081811693859392818116808703614364575050506132ea9350614940565b919394508092507f000000000000000000000000000000000000000000000000000000000000000016145f146144335750506040517fba087652000000000000000000000000000000000000000000000000000000008152600481019390935273ffffffffffffffffffffffffffffffffffffffff166024830152306044830152602090829060649082905f905af1908115610909575f91614404575090565b90506020813d60201161442b575b8161441f60209383612e59565b8101031261022b575190565b3d9150614412565b61019980546040517fba0876520000000000000000000000000000000000000000000000000000000081526004810197909752821673ffffffffffffffffffffffffffffffffffffffff1660248701523060448701526020959394929390929091908690839060649082905f905af19081156109095786925f9261455c575b5092546040517f10a5338600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8616600482015260248101929092529092839160449183915f91165af1938415610909575f94614528575b50506132ea918391614940565b9080939450813d8311614555575b6145408183612e59565b8101031261022b576132ea915192915f61451b565b503d614536565b8092508391933d8311614585575b6145748183612e59565b8101031261022b575185915f6144b2565b503d61456a565b908151915f5b8381106145a157505050505f90565b73ffffffffffffffffffffffffffffffffffffffff806145c183856136ec565b5116908416146145d357600101614592565b50505050600190565b73ffffffffffffffffffffffffffffffffffffffff807f0000000000000000000000000000000000000000000000000000000000000000169181811683811415908161474a575b5061467c575b168103614634575090565b906020906024604051809481937fef8b30f700000000000000000000000000000000000000000000000000000000835260048301525afa908115610909575f91614404575090565b610199546040517f5c727c7d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff929092166004830152602482019490945290926020908290604490829087165afa80156109095782915f91614715575b509290507f0000000000000000000000000000000000000000000000000000000000000000614629565b9150506020813d602011614742575b8161473160209383612e59565b8101031261022b578190515f6146eb565b3d9150614724565b9050827f00000000000000000000000000000000000000000000000000000000000000001614155f614623565b9073ffffffffffffffffffffffffffffffffffffffff91827f000000000000000000000000000000000000000000000000000000000000000016928082168481145f146147c657505050905090565b6040519485947f4cdad506000000000000000000000000000000000000000000000000000000008652600486015284602460209788935afa938415610909575f946148ca575b507f00000000000000000000000000000000000000000000000000000000000000008216146148c357610199546040517f4e32a1e200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff93909316600484015260248301939093529091839183916044918391165afa918215610909575f926148a557505090565b90809250813d83116148bc575b61441f8183612e59565b503d6148b2565b5050905090565b9093508481813d83116148f2575b6148e28183612e59565b8101031261022b5751925f61480c565b503d6148d8565b3d15614923573d9061490a82612e9a565b916149186040519384612e59565b82523d5f602084013e565b606090565b9081602091031261022b5751801515810361022b5790565b8215614a3f5773ffffffffffffffffffffffffffffffffffffffff16806149d857505f80809381935af16149726148f9565b501561497a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f6574682073656e64206661696c656400000000000000000000000000000000006044820152fd5b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff9290921660248301526044808301939093529181526130e091614a3a606483612e59565b614d44565b505050565b614a4c614e63565b614a54614f83565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176104c05760405251902090565b60ff6101345416614ac757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614ba2576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610909575f5173ffffffffffffffffffffffffffffffffffffffff811615614b9a57905f90565b505f90600190565b505050505f90600390565b6005811015614d175780614bbe5750565b60018103614c245760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152fd5b60028103614c8a5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152fd5b600314614c9357565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b604051614dae9173ffffffffffffffffffffffffffffffffffffffff16614d6a82612e05565b5f806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af1614da86148f9565b91614fa9565b805190828215928315614e4b575b50505015614dc75750565b608490604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b614e5b9350820181019101614928565b5f8281614dbc565b604051606d54905f81614e7584613051565b918282526020808301956001906001811690815f14614f435750600114614ee4575b5050614ea592500382612e59565b51908115614eb1572090565b5050606b548015614ebf5790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b915092606d5f527f5006b838207c6a9ae9b84d68f467dd4bb5c305fbfb6b04eab8faaabeec1e18d8935f925b828410614f2b5750614ea59450505081016020015f80614e97565b85548785018301529485019486945092810192614f10565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016885250614ea594151560051b840160200192505f9150819050614e97565b614f8b6130a2565b8051908115614f9b576020012090565b5050606c548015614ebf5790565b919290156150245750815115614fbd575090565b3b15614fc65790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b8251909150156150375750805190602001fd5b615075906040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401526024830190612d58565b0390fdfea2646970667358221220c82efca3977f58f623e756ef2f43e3c1e1ee5452fe4ebd6d1a3ef5d2f674071564736f6c63430008180033000000000000000000000000271c616157e69a43b4977412a64183cf110edf16