More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 14 from a total of 14 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Updatesell Fee | 16829780 | 582 days ago | IN | 0 ETH | 0.00080475 | ||||
Approve | 16829734 | 582 days ago | IN | 0 ETH | 0.0012002 | ||||
Approve | 16829701 | 582 days ago | IN | 0 ETH | 0.00146941 | ||||
Approve | 16829666 | 582 days ago | IN | 0 ETH | 0.00133302 | ||||
Approve | 16829648 | 582 days ago | IN | 0 ETH | 0.00122845 | ||||
Transfer | 16829617 | 582 days ago | IN | 0 ETH | 0.00136321 | ||||
Approve | 16829616 | 582 days ago | IN | 0 ETH | 0.00141819 | ||||
Approve | 16829610 | 582 days ago | IN | 0 ETH | 0.00141311 | ||||
Approve | 16829608 | 582 days ago | IN | 0 ETH | 0.00121461 | ||||
Approve | 16829608 | 582 days ago | IN | 0 ETH | 0.00121617 | ||||
Approve | 16829574 | 582 days ago | IN | 0 ETH | 0.00160634 | ||||
Approve | 16829574 | 582 days ago | IN | 0 ETH | 0.00160634 | ||||
Approve | 16829569 | 582 days ago | IN | 0 ETH | 0.00142178 | ||||
0x60c06040 | 16829465 | 582 days ago | IN | 0 ETH | 0.13010512 |
Latest 8 internal transactions
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
16829780 | 582 days ago | 0.00633291 ETH | ||||
16829780 | 582 days ago | 0.00633291 ETH | ||||
16829780 | 582 days ago | 0.05758463 ETH | ||||
16829780 | 582 days ago | 0.05758463 ETH | ||||
16829634 | 582 days ago | 0.00346431 ETH | ||||
16829634 | 582 days ago | 0.00346431 ETH | ||||
16829634 | 582 days ago | 0.03137164 ETH | ||||
16829634 | 582 days ago | 0.03137164 ETH |
Loading...
Loading
Contract Name:
SecretsofRyoshi
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-03-14 */ /* https://t.me/SecretsOfRyoshi https://medium.com/@ryoshissecret/shhh-b867a84d6056 https://www.ryoshissecret.com/ We do it for teh ppl. SPDX-License-Identifier: MIT */ pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function allPairsLength() external view returns (uint256); function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function removeLiquidity( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETH( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountToken, uint256 amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETHWithPermit( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountToken, uint256 amountETH); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactETHForTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapTokensForExactETH( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapETHForExactTokens( uint256 amountOut, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function quote( uint256 amountA, uint256 reserveA, uint256 reserveB ) external pure returns (uint256 amountB); function getAmountOut( uint256 amountIn, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountOut); function getAmountIn( uint256 amountOut, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountIn); function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts); function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountETH); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address from, address to, uint256 amount ) external returns (bool); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function decimals() external view returns (uint8); function symbol() external view returns (string memory); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function symbol() external view virtual override returns (string memory) { return _symbol; } function name() external view virtual override returns (string memory) { return _name; } function totalSupply() external view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function decimals() public view virtual override returns (uint8) { return 18; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function transfer(address to, uint256 amount) external virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function approve(address spender, uint256 amount) external virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) external virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); } function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require( currentAllowance >= amount, "ERC20: insufficient allowance" ); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); uint256 fromBalance = _balances[from]; require( fromBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); } } contract SecretsofRyoshi is Ownable, ERC20 { IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public developmentWallet = 0x30aBdeB3005d58e278FA322EC08e0C72019daFC4;//ASSIGN address public constant DEAD = address(0xdead); mapping(address => bool) private _isExcludedFromFee; bool inSwapAndLiquify; uint256 private _numTokensSellToAddToSwap = 100000 * (10**decimals()); uint256 public override totalSupply; uint256 public buyFee = 5; uint256 public sellFee = 45; event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor() ERC20("Secrets of Ryoshi", "SHHH") { totalSupply = 369369369369 * (10**decimals()); _mint(msg.sender, totalSupply); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D//CHECK ); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _isExcludedFromFee[msg.sender] = true; _isExcludedFromFee[developmentWallet] = true; _isExcludedFromFee[address(uniswapV2Router)] = true; } function _swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { uint256 half = (contractTokenBalance / 2); uint256 otherHalf = (contractTokenBalance - half); uint256 initialBalance = address(this).balance; _swapTokensForEth(half); uint256 newBalance = (address(this).balance - initialBalance); _addLiquidity(otherHalf, newBalance); emit SwapAndLiquify(half, newBalance, otherHalf); } function excludeFromFee (address _user, bool value) external onlyOwner { _isExcludedFromFee[_user]= value; } function updatebuyFee(uint256 newAmount) external onlyOwner { buyFee = newAmount; } function updatesellFee(uint256 newSellAmount ) external onlyOwner { sellFee = newSellAmount; } function swapAndSendToMarketing (uint256 tokens) private lockTheSwap { uint256 initialBalance = address(this).balance; _swapTokensForEth(tokens); uint256 newBalance = address(this).balance - initialBalance; payable (developmentWallet).transfer(newBalance); } function _swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), (block.timestamp + 300) ); } function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, DEAD, block.timestamp ); } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(balanceOf(from) >= amount, "ERC20: transfer amount exceeds balance" ); uint256 transferAmount; if ( (from == uniswapV2Pair || to == uniswapV2Pair) && !inSwapAndLiquify ) { // DEX transaction if ( from != uniswapV2Pair && ((balanceOf(address(this))) >= _numTokensSellToAddToSwap) ) { uint256 totalfee = 2*(buyFee)+sellFee; _numTokensSellToAddToSwap = balanceOf(address(this)); uint256 marketingTokens = _numTokensSellToAddToSwap * sellFee / totalfee; swapAndSendToMarketing(marketingTokens); uint256 liquidityTokens = _numTokensSellToAddToSwap - marketingTokens; // sell transaction with threshold to swap _swapAndLiquify(liquidityTokens); } if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) { // no tax on excluded account transferAmount = amount; } else { uint256 liquidityAmount = ((amount * buyFee) / 100); if (from == uniswapV2Pair) { // buy transaction transferAmount = amount - liquidityAmount; } else { // sell transaction uint256 developmentAmount = ((amount * sellFee) / 100); transferAmount = amount - liquidityAmount - developmentAmount; super._transfer(from, address(this), developmentAmount); // only on sell transaction } super._transfer(from, address(this), liquidityAmount); // on buy/sell both transactions } } else { // normal wallet transaction transferAmount = amount; } super._transfer(from, to, transferAmount); } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatebuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSellAmount","type":"uint256"}],"name":"updatesellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600680546001600160a01b0319167330abdeb3005d58e278fa322ec08e0c72019dafc417905562000033601290565b6200004090600a62000517565b6200004f90620186a06200052f565b6009556005600b55602d600c553480156200006957600080fd5b506040518060400160405280601181526020017053656372657473206f662052796f73686960781b815250604051806040016040528060048152602001630a69090960e31b815250620000cb620000c5620002e660201b60201c565b620002ea565b6004620000d98382620005ee565b506005620000e88282620005ee565b50620000f5915050601290565b6200010290600a62000517565b6200011390645600214b196200052f565b600a819055620001259033906200033a565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200017d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a39190620006ba565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002179190620006ba565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000265573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028b9190620006ba565b6001600160a01b0390811660a0529081166080819052336000908152600760205260408082208054600160ff1991821681179092556006549095168352818320805486168217905592825290208054909216179055620006fb565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216620003955760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060036000828254620003a99190620006e5565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004595781600019048211156200043d576200043d62000402565b808516156200044b57918102915b93841c93908002906200041d565b509250929050565b600082620004725750600162000511565b81620004815750600062000511565b81600181146200049a5760028114620004a557620004c5565b600191505062000511565b60ff841115620004b957620004b962000402565b50506001821b62000511565b5060208310610133831016604e8410600b8410161715620004ea575081810a62000511565b620004f6838362000418565b80600019048211156200050d576200050d62000402565b0290505b92915050565b60006200052860ff84168362000461565b9392505050565b808202811582820484141762000511576200051162000402565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200057457607f821691505b6020821081036200059557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005e957600081815260208120601f850160051c81016020861015620005c45750805b601f850160051c820191505b81811015620005e557828155600101620005d0565b5050505b505050565b81516001600160401b038111156200060a576200060a62000549565b62000622816200061b84546200055f565b846200059b565b602080601f8311600181146200065a5760008415620006415750858301515b600019600386901b1c1916600185901b178555620005e5565b600085815260208120601f198616915b828110156200068b578886015182559484019460019091019084016200066a565b5085821015620006aa5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620006cd57600080fd5b81516001600160a01b03811681146200052857600080fd5b8082018082111562000511576200051162000402565b60805160a05161156f62000760600039600081816102e9015281816109d701528181610a1201528181610a5c0152610b9801526000818161020901528181610ee701528181610fa001528181610fcf0152818161106101526110be015261156f6000f3fe6080604052600436106101445760003560e01c806349bd5a5e116100b6578063a9059cbb1161006f578063a9059cbb146103a9578063c04a5414146103c9578063d9bee355146103e9578063dd62ed3e14610409578063df8408fe14610429578063f2fde38b1461044957600080fd5b806349bd5a5e146102d757806370a082311461030b578063715018a6146103415780638da5cb5b1461035657806395d89b4114610374578063a457c2d71461038957600080fd5b806318160ddd1161010857806318160ddd1461022b57806323b872dd1461024f5780632b14ca561461026f578063313ce5671461028557806339509351146102a157806347062402146102c157600080fd5b8063024f53811461015057806303fd2a451461017257806306fdde03146101a5578063095ea7b3146101c75780631694505e146101f757600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5061017061016b36600461113c565b610469565b005b34801561017e57600080fd5b5061018861dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101b157600080fd5b506101ba6104a1565b60405161019c9190611155565b3480156101d357600080fd5b506101e76101e23660046111b8565b610533565b604051901515815260200161019c565b34801561020357600080fd5b506101887f000000000000000000000000000000000000000000000000000000000000000081565b34801561023757600080fd5b50610241600a5481565b60405190815260200161019c565b34801561025b57600080fd5b506101e761026a3660046111e4565b61054d565b34801561027b57600080fd5b50610241600c5481565b34801561029157600080fd5b506040516012815260200161019c565b3480156102ad57600080fd5b506101e76102bc3660046111b8565b610571565b3480156102cd57600080fd5b50610241600b5481565b3480156102e357600080fd5b506101887f000000000000000000000000000000000000000000000000000000000000000081565b34801561031757600080fd5b50610241610326366004611225565b6001600160a01b031660009081526001602052604090205490565b34801561034d57600080fd5b50610170610593565b34801561036257600080fd5b506000546001600160a01b0316610188565b34801561038057600080fd5b506101ba6105c9565b34801561039557600080fd5b506101e76103a43660046111b8565b6105d8565b3480156103b557600080fd5b506101e76103c43660046111b8565b610653565b3480156103d557600080fd5b50600654610188906001600160a01b031681565b3480156103f557600080fd5b5061017061040436600461113c565b610661565b34801561041557600080fd5b50610241610424366004611249565b610690565b34801561043557600080fd5b50610170610444366004611282565b6106bb565b34801561045557600080fd5b50610170610464366004611225565b610710565b6000546001600160a01b0316331461049c5760405162461bcd60e51b8152600401610493906112b5565b60405180910390fd5b600c55565b6060600480546104b0906112ea565b80601f01602080910402602001604051908101604052809291908181526020018280546104dc906112ea565b80156105295780601f106104fe57610100808354040283529160200191610529565b820191906000526020600020905b81548152906001019060200180831161050c57829003601f168201915b5050505050905090565b6000336105418185856107ab565b60019150505b92915050565b60003361055b8582856108cf565b610566858585610949565b506001949350505050565b6000336105418185856105848383610690565b61058e919061133a565b6107ab565b6000546001600160a01b031633146105bd5760405162461bcd60e51b8152600401610493906112b5565b6105c76000610c41565b565b6060600580546104b0906112ea565b600033816105e68286610690565b9050838110156106465760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610493565b61056682868684036107ab565b600033610541818585610949565b6000546001600160a01b0316331461068b5760405162461bcd60e51b8152600401610493906112b5565b600b55565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b031633146106e55760405162461bcd60e51b8152600401610493906112b5565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461073a5760405162461bcd60e51b8152600401610493906112b5565b6001600160a01b03811661079f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610493565b6107a881610c41565b50565b6001600160a01b03831661080d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610493565b6001600160a01b03821661086e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610493565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006108db8484610690565b9050600019811461094357818110156109365760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610493565b61094384848484036107ab565b50505050565b6001600160a01b03831661096f5760405162461bcd60e51b81526004016104939061134d565b6001600160a01b0382166109955760405162461bcd60e51b815260040161049390611392565b806109b5846001600160a01b031660009081526001602052604090205490565b10156109d35760405162461bcd60e51b8152600401610493906113d5565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03161480610a4657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316145b8015610a55575060085460ff16155b15610c33577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614158015610aad57506009543060009081526001602052604090205410155b15610b2d576000600c54600b546002610ac6919061141b565b610ad0919061133a565b306000908152600160205260409020549091506009819055600c546000918391610af99161141b565b610b039190611432565b9050610b0e81610c91565b600081600954610b1e9190611454565b9050610b2981610cff565b5050505b6001600160a01b03841660009081526007602052604090205460ff1680610b6c57506001600160a01b03831660009081526007602052604090205460ff165b15610b78575080610c36565b60006064600b5484610b8a919061141b565b610b949190611432565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603610be057610bd98184611454565b9150610c22565b60006064600c5485610bf2919061141b565b610bfc9190611432565b905080610c098386611454565b610c139190611454565b9250610c20863083610d9d565b505b610c2d853083610d9d565b50610c36565b50805b610943848483610d9d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805460ff1916600117905547610ca882610e90565b6000610cb48247611454565b6006546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610cef573d6000803e3d6000fd5b50506008805460ff191690555050565b6008805460ff191660011790556000610d19600283611432565b90506000610d278284611454565b905047610d3383610e90565b6000610d3f8247611454565b9050610d4b838261105b565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506008805460ff19169055505050565b6001600160a01b038316610dc35760405162461bcd60e51b81526004016104939061134d565b6001600160a01b038216610de95760405162461bcd60e51b815260040161049390611392565b6001600160a01b03831660009081526001602052604090205481811015610e225760405162461bcd60e51b8152600401610493906113d5565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e829086815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610ec557610ec5611467565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f67919061147d565b81600181518110610f7a57610f7a611467565b60200260200101906001600160a01b031690816001600160a01b031681525050610fc5307f0000000000000000000000000000000000000000000000000000000000000000846107ab565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663791ac94783600084306110054261012c61133a565b6040518663ffffffff1660e01b815260040161102595949392919061149a565b600060405180830381600087803b15801561103f57600080fd5b505af1158015611053573d6000803e3d6000fd5b505050505050565b611086307f0000000000000000000000000000000000000000000000000000000000000000846107ab565b60405163f305d71960e01b815230600482015260248101839052600060448201819052606482015261dead60848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015611110573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611135919061150b565b5050505050565b60006020828403121561114e57600080fd5b5035919050565b600060208083528351808285015260005b8181101561118257858101830151858201604001528201611166565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107a857600080fd5b600080604083850312156111cb57600080fd5b82356111d6816111a3565b946020939093013593505050565b6000806000606084860312156111f957600080fd5b8335611204816111a3565b92506020840135611214816111a3565b929592945050506040919091013590565b60006020828403121561123757600080fd5b8135611242816111a3565b9392505050565b6000806040838503121561125c57600080fd5b8235611267816111a3565b91506020830135611277816111a3565b809150509250929050565b6000806040838503121561129557600080fd5b82356112a0816111a3565b91506020830135801515811461127757600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806112fe57607f821691505b60208210810361131e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561054757610547611324565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b808202811582820484141761054757610547611324565b60008261144f57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561054757610547611324565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561148f57600080fd5b8151611242816111a3565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156114ea5784516001600160a01b0316835293830193918301916001016114c5565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561152057600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220c535f2ed1b755e262f1b8f408eab6fc12c6e2256ff8ca0677e6949768be56b3964736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101445760003560e01c806349bd5a5e116100b6578063a9059cbb1161006f578063a9059cbb146103a9578063c04a5414146103c9578063d9bee355146103e9578063dd62ed3e14610409578063df8408fe14610429578063f2fde38b1461044957600080fd5b806349bd5a5e146102d757806370a082311461030b578063715018a6146103415780638da5cb5b1461035657806395d89b4114610374578063a457c2d71461038957600080fd5b806318160ddd1161010857806318160ddd1461022b57806323b872dd1461024f5780632b14ca561461026f578063313ce5671461028557806339509351146102a157806347062402146102c157600080fd5b8063024f53811461015057806303fd2a451461017257806306fdde03146101a5578063095ea7b3146101c75780631694505e146101f757600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5061017061016b36600461113c565b610469565b005b34801561017e57600080fd5b5061018861dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101b157600080fd5b506101ba6104a1565b60405161019c9190611155565b3480156101d357600080fd5b506101e76101e23660046111b8565b610533565b604051901515815260200161019c565b34801561020357600080fd5b506101887f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561023757600080fd5b50610241600a5481565b60405190815260200161019c565b34801561025b57600080fd5b506101e761026a3660046111e4565b61054d565b34801561027b57600080fd5b50610241600c5481565b34801561029157600080fd5b506040516012815260200161019c565b3480156102ad57600080fd5b506101e76102bc3660046111b8565b610571565b3480156102cd57600080fd5b50610241600b5481565b3480156102e357600080fd5b506101887f000000000000000000000000c03812f533d20323874e02ecce9558bbf6aa2b0381565b34801561031757600080fd5b50610241610326366004611225565b6001600160a01b031660009081526001602052604090205490565b34801561034d57600080fd5b50610170610593565b34801561036257600080fd5b506000546001600160a01b0316610188565b34801561038057600080fd5b506101ba6105c9565b34801561039557600080fd5b506101e76103a43660046111b8565b6105d8565b3480156103b557600080fd5b506101e76103c43660046111b8565b610653565b3480156103d557600080fd5b50600654610188906001600160a01b031681565b3480156103f557600080fd5b5061017061040436600461113c565b610661565b34801561041557600080fd5b50610241610424366004611249565b610690565b34801561043557600080fd5b50610170610444366004611282565b6106bb565b34801561045557600080fd5b50610170610464366004611225565b610710565b6000546001600160a01b0316331461049c5760405162461bcd60e51b8152600401610493906112b5565b60405180910390fd5b600c55565b6060600480546104b0906112ea565b80601f01602080910402602001604051908101604052809291908181526020018280546104dc906112ea565b80156105295780601f106104fe57610100808354040283529160200191610529565b820191906000526020600020905b81548152906001019060200180831161050c57829003601f168201915b5050505050905090565b6000336105418185856107ab565b60019150505b92915050565b60003361055b8582856108cf565b610566858585610949565b506001949350505050565b6000336105418185856105848383610690565b61058e919061133a565b6107ab565b6000546001600160a01b031633146105bd5760405162461bcd60e51b8152600401610493906112b5565b6105c76000610c41565b565b6060600580546104b0906112ea565b600033816105e68286610690565b9050838110156106465760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610493565b61056682868684036107ab565b600033610541818585610949565b6000546001600160a01b0316331461068b5760405162461bcd60e51b8152600401610493906112b5565b600b55565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b031633146106e55760405162461bcd60e51b8152600401610493906112b5565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461073a5760405162461bcd60e51b8152600401610493906112b5565b6001600160a01b03811661079f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610493565b6107a881610c41565b50565b6001600160a01b03831661080d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610493565b6001600160a01b03821661086e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610493565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006108db8484610690565b9050600019811461094357818110156109365760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610493565b61094384848484036107ab565b50505050565b6001600160a01b03831661096f5760405162461bcd60e51b81526004016104939061134d565b6001600160a01b0382166109955760405162461bcd60e51b815260040161049390611392565b806109b5846001600160a01b031660009081526001602052604090205490565b10156109d35760405162461bcd60e51b8152600401610493906113d5565b60007f000000000000000000000000c03812f533d20323874e02ecce9558bbf6aa2b036001600160a01b0316846001600160a01b03161480610a4657507f000000000000000000000000c03812f533d20323874e02ecce9558bbf6aa2b036001600160a01b0316836001600160a01b0316145b8015610a55575060085460ff16155b15610c33577f000000000000000000000000c03812f533d20323874e02ecce9558bbf6aa2b036001600160a01b0316846001600160a01b031614158015610aad57506009543060009081526001602052604090205410155b15610b2d576000600c54600b546002610ac6919061141b565b610ad0919061133a565b306000908152600160205260409020549091506009819055600c546000918391610af99161141b565b610b039190611432565b9050610b0e81610c91565b600081600954610b1e9190611454565b9050610b2981610cff565b5050505b6001600160a01b03841660009081526007602052604090205460ff1680610b6c57506001600160a01b03831660009081526007602052604090205460ff165b15610b78575080610c36565b60006064600b5484610b8a919061141b565b610b949190611432565b90507f000000000000000000000000c03812f533d20323874e02ecce9558bbf6aa2b036001600160a01b0316856001600160a01b031603610be057610bd98184611454565b9150610c22565b60006064600c5485610bf2919061141b565b610bfc9190611432565b905080610c098386611454565b610c139190611454565b9250610c20863083610d9d565b505b610c2d853083610d9d565b50610c36565b50805b610943848483610d9d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805460ff1916600117905547610ca882610e90565b6000610cb48247611454565b6006546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610cef573d6000803e3d6000fd5b50506008805460ff191690555050565b6008805460ff191660011790556000610d19600283611432565b90506000610d278284611454565b905047610d3383610e90565b6000610d3f8247611454565b9050610d4b838261105b565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506008805460ff19169055505050565b6001600160a01b038316610dc35760405162461bcd60e51b81526004016104939061134d565b6001600160a01b038216610de95760405162461bcd60e51b815260040161049390611392565b6001600160a01b03831660009081526001602052604090205481811015610e225760405162461bcd60e51b8152600401610493906113d5565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e829086815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610ec557610ec5611467565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f67919061147d565b81600181518110610f7a57610f7a611467565b60200260200101906001600160a01b031690816001600160a01b031681525050610fc5307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846107ab565b6001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d1663791ac94783600084306110054261012c61133a565b6040518663ffffffff1660e01b815260040161102595949392919061149a565b600060405180830381600087803b15801561103f57600080fd5b505af1158015611053573d6000803e3d6000fd5b505050505050565b611086307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846107ab565b60405163f305d71960e01b815230600482015260248101839052600060448201819052606482015261dead60848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015611110573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611135919061150b565b5050505050565b60006020828403121561114e57600080fd5b5035919050565b600060208083528351808285015260005b8181101561118257858101830151858201604001528201611166565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107a857600080fd5b600080604083850312156111cb57600080fd5b82356111d6816111a3565b946020939093013593505050565b6000806000606084860312156111f957600080fd5b8335611204816111a3565b92506020840135611214816111a3565b929592945050506040919091013590565b60006020828403121561123757600080fd5b8135611242816111a3565b9392505050565b6000806040838503121561125c57600080fd5b8235611267816111a3565b91506020830135611277816111a3565b809150509250929050565b6000806040838503121561129557600080fd5b82356112a0816111a3565b91506020830135801515811461127757600080fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806112fe57607f821691505b60208210810361131e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561054757610547611324565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b808202811582820484141761054757610547611324565b60008261144f57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561054757610547611324565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561148f57600080fd5b8151611242816111a3565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156114ea5784516001600160a01b0316835293830193918301916001016114c5565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561152057600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220c535f2ed1b755e262f1b8f408eab6fc12c6e2256ff8ca0677e6949768be56b3964736f6c63430008120033
Deployed Bytecode Sourcemap
17286:5921:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19505:108;;;;;;;;;;-1:-1:-1;19505:108:0;;;;;:::i;:::-;;:::i;:::-;;17536:47;;;;;;;;;;;;17576:6;17536:47;;;;;-1:-1:-1;;;;;363:32:1;;;345:51;;333:2;318:18;17536:47:0;;;;;;;;12293:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13260:244::-;;;;;;;;;;-1:-1:-1;13260:244:0;;;;;:::i;:::-;;:::i;:::-;;;1581:14:1;;1574:22;1556:41;;1544:2;1529:18;13260:244:0;1416:187:1;17339:51:0;;;;;;;;;;;;;;;17758:35;;;;;;;;;;;;;;;;;;;1988:25:1;;;1976:2;1961:18;17758:35:0;1842:177:1;13512:297:0;;;;;;;;;;-1:-1:-1;13512:297:0;;;;;:::i;:::-;;:::i;17832:27::-;;;;;;;;;;;;;;;;12706:93;;;;;;;;;;-1:-1:-1;12706:93:0;;12789:2;2627:36:1;;2615:2;2600:18;12706:93:0;2485:184:1;13817:272:0;;;;;;;;;;-1:-1:-1;13817:272:0;;;;;:::i;:::-;;:::i;17800:25::-;;;;;;;;;;;;;;;;17397:38;;;;;;;;;;;;;;;12521:177;;;;;;;;;;-1:-1:-1;12521:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;12672:18:0;12640:7;12672:18;;;:9;:18;;;;;;;12521:177;915:103;;;;;;;;;;;;;:::i;692:87::-;;;;;;;;;;-1:-1:-1;738:7:0;765:6;-1:-1:-1;;;;;765:6:0;692:87;;12179:106;;;;;;;;;;;;;:::i;14097:507::-;;;;;;;;;;-1:-1:-1;14097:507:0;;;;;:::i;:::-;;:::i;13016:236::-;;;;;;;;;;-1:-1:-1;13016:236:0;;;;;:::i;:::-;;:::i;17444:77::-;;;;;;;;;;-1:-1:-1;17444:77:0;;;;-1:-1:-1;;;;;17444:77:0;;;19400:97;;;;;;;;;;-1:-1:-1;19400:97:0;;;;;:::i;:::-;;:::i;12807:201::-;;;;;;;;;;-1:-1:-1;12807:201:0;;;;;:::i;:::-;;:::i;19270:122::-;;;;;;;;;;-1:-1:-1;19270:122:0;;;;;:::i;:::-;;:::i;1026:201::-;;;;;;;;;;-1:-1:-1;1026:201:0;;;;;:::i;:::-;;:::i;19505:108::-;738:7;765:6;-1:-1:-1;;;;;765:6:0;318:10;827:23;819:68;;;;-1:-1:-1;;;819:68:0;;;;;;;:::i;:::-;;;;;;;;;19582:7:::1;:23:::0;19505:108::o;12293:102::-;12349:13;12382:5;12375:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12293:102;:::o;13260:244::-;13381:4;318:10;13442:32;318:10;13458:7;13467:6;13442:8;:32::i;:::-;13492:4;13485:11;;;13260:244;;;;;:::o;13512:297::-;13645:4;318:10;13703:38;13719:4;318:10;13734:6;13703:15;:38::i;:::-;13752:27;13762:4;13768:2;13772:6;13752:9;:27::i;:::-;-1:-1:-1;13797:4:0;;13512:297;-1:-1:-1;;;;13512:297:0:o;13817:272::-;13934:4;318:10;13995:64;318:10;14011:7;14048:10;14020:25;318:10;14011:7;14020:9;:25::i;:::-;:38;;;;:::i;:::-;13995:8;:64::i;915:103::-;738:7;765:6;-1:-1:-1;;;;;765:6:0;318:10;827:23;819:68;;;;-1:-1:-1;;;819:68:0;;;;;;;:::i;:::-;980:30:::1;1007:1;980:18;:30::i;:::-;915:103::o:0;12179:106::-;12237:13;12270:7;12263:14;;;;;:::i;14097:507::-;14219:4;318:10;14219:4;14307:25;318:10;14324:7;14307:9;:25::i;:::-;14280:52;;14385:15;14365:16;:35;;14343:122;;;;-1:-1:-1;;;14343:122:0;;4950:2:1;14343:122:0;;;4932:21:1;4989:2;4969:18;;;4962:30;5028:34;5008:18;;;5001:62;-1:-1:-1;;;5079:18:1;;;5072:35;5124:19;;14343:122:0;4748:401:1;14343:122:0;14501:60;14510:5;14517:7;14545:15;14526:16;:34;14501:8;:60::i;13016:236::-;13133:4;318:10;13194:28;318:10;13211:2;13215:6;13194:9;:28::i;19400:97::-;738:7;765:6;-1:-1:-1;;;;;765:6:0;318:10;827:23;819:68;;;;-1:-1:-1;;;819:68:0;;;;;;;:::i;:::-;19471:6:::1;:18:::0;19400:97::o;12807:201::-;-1:-1:-1;;;;;12973:18:0;;;12941:7;12973:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12807:201::o;19270:122::-;738:7;765:6;-1:-1:-1;;;;;765:6:0;318:10;827:23;819:68;;;;-1:-1:-1;;;819:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19352:25:0;;;::::1;;::::0;;;:18:::1;:25;::::0;;;;:32;;-1:-1:-1;;19352:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19270:122::o;1026:201::-;738:7;765:6;-1:-1:-1;;;;;765:6:0;318:10;827:23;819:68;;;;-1:-1:-1;;;819:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1115:22:0;::::1;1107:73;;;::::0;-1:-1:-1;;;1107:73:0;;5356:2:1;1107:73:0::1;::::0;::::1;5338:21:1::0;5395:2;5375:18;;;5368:30;5434:34;5414:18;;;5407:62;-1:-1:-1;;;5485:18:1;;;5478:36;5531:19;;1107:73:0::1;5154:402:1::0;1107:73:0::1;1191:28;1210:8;1191:18;:28::i;:::-;1026:201:::0;:::o;16115:380::-;-1:-1:-1;;;;;16251:19:0;;16243:68;;;;-1:-1:-1;;;16243:68:0;;5763:2:1;16243:68:0;;;5745:21:1;5802:2;5782:18;;;5775:30;5841:34;5821:18;;;5814:62;-1:-1:-1;;;5892:18:1;;;5885:34;5936:19;;16243:68:0;5561:400:1;16243:68:0;-1:-1:-1;;;;;16330:21:0;;16322:68;;;;-1:-1:-1;;;16322:68:0;;6168:2:1;16322:68:0;;;6150:21:1;6207:2;6187:18;;;6180:30;6246:34;6226:18;;;6219:62;-1:-1:-1;;;6297:18:1;;;6290:32;6339:19;;16322:68:0;5966:398:1;16322:68:0;-1:-1:-1;;;;;16403:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16455:32;;1988:25:1;;;16455:32:0;;1961:18:1;16455:32:0;;;;;;;16115:380;;;:::o;15605:502::-;15740:24;15767:25;15777:5;15784:7;15767:9;:25::i;:::-;15740:52;;-1:-1:-1;;15807:16:0;:37;15803:297;;15907:6;15887:16;:26;;15861:117;;;;-1:-1:-1;;;15861:117:0;;6571:2:1;15861:117:0;;;6553:21:1;6610:2;6590:18;;;6583:30;6649:31;6629:18;;;6622:59;6698:18;;15861:117:0;6369:353:1;15861:117:0;16022:51;16031:5;16038:7;16066:6;16047:16;:25;16022:8;:51::i;:::-;15729:378;15605:502;;;:::o;20790:2377::-;-1:-1:-1;;;;;20922:18:0;;20914:68;;;;-1:-1:-1;;;20914:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21001:16:0;;20993:64;;;;-1:-1:-1;;;20993:64:0;;;;;;;:::i;:::-;21095:6;21076:15;21086:4;-1:-1:-1;;;;;12672:18:0;12640:7;12672:18;;;:9;:18;;;;;;;12521:177;21076:15;:25;;21068:86;;;;-1:-1:-1;;;21068:86:0;;;;;;;:::i;:::-;21167:22;21227:13;-1:-1:-1;;;;;21219:21:0;:4;-1:-1:-1;;;;;21219:21:0;;:44;;;;21250:13;-1:-1:-1;;;;;21244:19:0;:2;-1:-1:-1;;;;;21244:19:0;;21219:44;21218:67;;;;-1:-1:-1;21269:16:0;;;;21268:17;21218:67;21200:1908;;;21374:13;-1:-1:-1;;;;;21366:21:0;:4;-1:-1:-1;;;;;21366:21:0;;;:99;;;;-1:-1:-1;21439:25:0;;21428:4;12640:7;12672:18;;;:9;:18;;;;;;21409:55;;21366:99;21344:657;;;21506:16;21536:7;;21528:6;;21525:1;:10;;;;:::i;:::-;:18;;;;:::i;:::-;21612:4;12640:7;12672:18;;;:9;:18;;;;;;21506:37;;-1:-1:-1;21566:25:0;:52;;;21697:7;;21643:23;;21707:8;;21669:35;;;:::i;:::-;:46;;;;:::i;:::-;21643:72;;21738:39;21761:15;21738:22;:39::i;:::-;21803:23;21857:15;21829:25;;:43;;;;:::i;:::-;21803:69;;21953:32;21969:15;21953;:32::i;:::-;21483:518;;;21344:657;-1:-1:-1;;;;;22019:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;22047:22:0;;;;;;:18;:22;;;;;;;;22019:50;22015:984;;;-1:-1:-1;22154:6:0;21200:1908;;22015:984;22201:23;22269:3;22238:6;;22229;:15;;;;:::i;:::-;22228:44;;;;:::i;:::-;22201:72;;22304:13;-1:-1:-1;;;;;22296:21:0;:4;-1:-1:-1;;;;;22296:21:0;;22292:587;;22399:24;22408:15;22399:6;:24;:::i;:::-;22382:41;;22292:587;;;22513:25;22588:3;22552:7;;22543:6;:16;;;;:::i;:::-;22542:49;;;;:::i;:::-;22513:79;-1:-1:-1;22513:79:0;22659:49;22693:15;22659:6;:49;:::i;:::-;:94;;;;:::i;:::-;22617:136;;22776:55;22792:4;22806;22813:17;22776:15;:55::i;:::-;22449:430;22292:587;22897:53;22913:4;22927;22934:15;22897;:53::i;:::-;22182:817;21200:1908;;;-1:-1:-1;23090:6:0;21200:1908;23118:41;23134:4;23140:2;23144:14;23118:15;:41::i;1235:191::-;1309:16;1328:6;;-1:-1:-1;;;;;1345:17:0;;;-1:-1:-1;;;;;;1345:17:0;;;;;;1378:40;;1328:6;;;;;;;1378:40;;1309:16;1378:40;1298:128;1235:191;:::o;19621:301::-;18038:16;:23;;-1:-1:-1;;18038:23:0;18057:4;18038:23;;;19726:21:::1;19758:25;19776:6:::0;19758:17:::1;:25::i;:::-;19794:18;19815:38;19839:14:::0;19815:21:::1;:38;:::i;:::-;19873:17;::::0;19864:48:::1;::::0;19794:59;;-1:-1:-1;;;;;;19873:17:0::1;::::0;19864:48;::::1;;;::::0;19794:59;;19873:17:::1;19864:48:::0;19873:17;19864:48;19794:59;19873:17;19864:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;18084:16:0;:24;;-1:-1:-1;;18084:24:0;;;-1:-1:-1;;19621:301:0:o;18779:483::-;18038:16;:23;;-1:-1:-1;;18038:23:0;18057:4;18038:23;;;:16;18890:24:::1;18913:1;18890:20:::0;:24:::1;:::i;:::-;18874:41:::0;-1:-1:-1;18926:17:0::1;18947:27;18874:41:::0;18947:20;:27:::1;:::i;:::-;18926:49:::0;-1:-1:-1;19013:21:0::1;19047:23;19065:4:::0;19047:17:::1;:23::i;:::-;19083:18;19105:38;19129:14:::0;19105:21:::1;:38;:::i;:::-;19083:61;;19157:36;19171:9;19182:10;19157:13;:36::i;:::-;19211:43;::::0;;8674:25:1;;;8730:2;8715:18;;8708:34;;;8758:18;;;8751:34;;;19211:43:0::1;::::0;8662:2:1;8647:18;19211:43:0::1;;;;;;;-1:-1:-1::0;;18084:16:0;:24;;-1:-1:-1;;18084:24:0;;;-1:-1:-1;;;18779:483:0:o;16503:776::-;-1:-1:-1;;;;;16634:18:0;;16626:68;;;;-1:-1:-1;;;16626:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16713:16:0;;16705:64;;;;-1:-1:-1;;;16705:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16804:15:0;;16782:19;16804:15;;;:9;:15;;;;;;16852:21;;;;16830:109;;;;-1:-1:-1;;;16830:109:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16975:15:0;;;;;;;:9;:15;;;;;;16993:20;;;16975:38;;17193:13;;;;;;;;;;:23;;;;;;17245:26;;;;;;17007:6;1988:25:1;;1976:2;1961:18;;1842:177;17245:26:0;;;;;;;;16615:664;16503:776;;;:::o;19930:484::-;20021:16;;;20035:1;20021:16;;;;;;;;19997:21;;20021:16;;;;;;;;;;-1:-1:-1;20021:16:0;19997:40;;20066:4;20048;20053:1;20048:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;20048:23:0;;;-1:-1:-1;;;;;20048:23:0;;;;;20092:15;-1:-1:-1;;;;;20092:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20082:4;20087:1;20082:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;20082:32:0;;;-1:-1:-1;;;;;20082:32:0;;;;;20127:62;20144:4;20159:15;20177:11;20127:8;:62::i;:::-;-1:-1:-1;;;;;20202:15:0;:66;;20283:11;20309:1;20325:4;20352;20373:21;:15;20391:3;20373:21;:::i;:::-;20202:204;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19986:428;19930:484;:::o;20422:360::-;20504:62;20521:4;20536:15;20554:11;20504:8;:62::i;:::-;20579:195;;-1:-1:-1;;;20579:195:0;;20651:4;20579:195;;;10642:34:1;10692:18;;;10685:34;;;20697:1:0;10735:18:1;;;10728:34;;;10778:18;;;10771:34;17576:6:0;10821:19:1;;;10814:44;20748:15:0;10874:19:1;;;10867:35;20579:15:0;-1:-1:-1;;;;;20579:31:0;;;;20618:9;;10576:19:1;;20579:195:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20422:360;;:::o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;407:548::-;519:4;548:2;577;566:9;559:21;609:6;603:13;652:6;647:2;636:9;632:18;625:34;677:1;687:140;701:6;698:1;695:13;687:140;;;796:14;;;792:23;;786:30;762:17;;;781:2;758:26;751:66;716:10;;687:140;;;691:3;876:1;871:2;862:6;851:9;847:22;843:31;836:42;946:2;939;935:7;930:2;922:6;918:15;914:29;903:9;899:45;895:54;887:62;;;;407:548;;;;:::o;960:131::-;-1:-1:-1;;;;;1035:31:1;;1025:42;;1015:70;;1081:1;1078;1071:12;1096:315;1164:6;1172;1225:2;1213:9;1204:7;1200:23;1196:32;1193:52;;;1241:1;1238;1231:12;1193:52;1280:9;1267:23;1299:31;1324:5;1299:31;:::i;:::-;1349:5;1401:2;1386:18;;;;1373:32;;-1:-1:-1;;;1096:315:1:o;2024:456::-;2101:6;2109;2117;2170:2;2158:9;2149:7;2145:23;2141:32;2138:52;;;2186:1;2183;2176:12;2138:52;2225:9;2212:23;2244:31;2269:5;2244:31;:::i;:::-;2294:5;-1:-1:-1;2351:2:1;2336:18;;2323:32;2364:33;2323:32;2364:33;:::i;:::-;2024:456;;2416:7;;-1:-1:-1;;;2470:2:1;2455:18;;;;2442:32;;2024:456::o;2674:247::-;2733:6;2786:2;2774:9;2765:7;2761:23;2757:32;2754:52;;;2802:1;2799;2792:12;2754:52;2841:9;2828:23;2860:31;2885:5;2860:31;:::i;:::-;2910:5;2674:247;-1:-1:-1;;;2674:247:1:o;2926:388::-;2994:6;3002;3055:2;3043:9;3034:7;3030:23;3026:32;3023:52;;;3071:1;3068;3061:12;3023:52;3110:9;3097:23;3129:31;3154:5;3129:31;:::i;:::-;3179:5;-1:-1:-1;3236:2:1;3221:18;;3208:32;3249:33;3208:32;3249:33;:::i;:::-;3301:7;3291:17;;;2926:388;;;;;:::o;3319:416::-;3384:6;3392;3445:2;3433:9;3424:7;3420:23;3416:32;3413:52;;;3461:1;3458;3451:12;3413:52;3500:9;3487:23;3519:31;3544:5;3519:31;:::i;:::-;3569:5;-1:-1:-1;3626:2:1;3611:18;;3598:32;3668:15;;3661:23;3649:36;;3639:64;;3699:1;3696;3689:12;3740:356;3942:2;3924:21;;;3961:18;;;3954:30;4020:34;4015:2;4000:18;;3993:62;4087:2;4072:18;;3740:356::o;4101:380::-;4180:1;4176:12;;;;4223;;;4244:61;;4298:4;4290:6;4286:17;4276:27;;4244:61;4351:2;4343:6;4340:14;4320:18;4317:38;4314:161;;4397:10;4392:3;4388:20;4385:1;4378:31;4432:4;4429:1;4422:15;4460:4;4457:1;4450:15;4314:161;;4101:380;;;:::o;4486:127::-;4547:10;4542:3;4538:20;4535:1;4528:31;4578:4;4575:1;4568:15;4602:4;4599:1;4592:15;4618:125;4683:9;;;4704:10;;;4701:36;;;4717:18;;:::i;6727:401::-;6929:2;6911:21;;;6968:2;6948:18;;;6941:30;7007:34;7002:2;6987:18;;6980:62;-1:-1:-1;;;7073:2:1;7058:18;;7051:35;7118:3;7103:19;;6727:401::o;7133:399::-;7335:2;7317:21;;;7374:2;7354:18;;;7347:30;7413:34;7408:2;7393:18;;7386:62;-1:-1:-1;;;7479:2:1;7464:18;;7457:33;7522:3;7507:19;;7133:399::o;7537:402::-;7739:2;7721:21;;;7778:2;7758:18;;;7751:30;7817:34;7812:2;7797:18;;7790:62;-1:-1:-1;;;7883:2:1;7868:18;;7861:36;7929:3;7914:19;;7537:402::o;7944:168::-;8017:9;;;8048;;8065:15;;;8059:22;;8045:37;8035:71;;8086:18;;:::i;8117:217::-;8157:1;8183;8173:132;;8227:10;8222:3;8218:20;8215:1;8208:31;8262:4;8259:1;8252:15;8290:4;8287:1;8280:15;8173:132;-1:-1:-1;8319:9:1;;8117:217::o;8339:128::-;8406:9;;;8427:11;;;8424:37;;;8441:18;;:::i;8928:127::-;8989:10;8984:3;8980:20;8977:1;8970:31;9020:4;9017:1;9010:15;9044:4;9041:1;9034:15;9060:251;9130:6;9183:2;9171:9;9162:7;9158:23;9154:32;9151:52;;;9199:1;9196;9189:12;9151:52;9231:9;9225:16;9250:31;9275:5;9250:31;:::i;9316:980::-;9578:4;9626:3;9615:9;9611:19;9657:6;9646:9;9639:25;9683:2;9721:6;9716:2;9705:9;9701:18;9694:34;9764:3;9759:2;9748:9;9744:18;9737:31;9788:6;9823;9817:13;9854:6;9846;9839:22;9892:3;9881:9;9877:19;9870:26;;9931:2;9923:6;9919:15;9905:29;;9952:1;9962:195;9976:6;9973:1;9970:13;9962:195;;;10041:13;;-1:-1:-1;;;;;10037:39:1;10025:52;;10132:15;;;;10097:12;;;;10073:1;9991:9;9962:195;;;-1:-1:-1;;;;;;;10213:32:1;;;;10208:2;10193:18;;10186:60;-1:-1:-1;;;10277:3:1;10262:19;10255:35;10174:3;9316:980;-1:-1:-1;;;9316:980:1:o;10913:306::-;11001:6;11009;11017;11070:2;11058:9;11049:7;11045:23;11041:32;11038:52;;;11086:1;11083;11076:12;11038:52;11115:9;11109:16;11099:26;;11165:2;11154:9;11150:18;11144:25;11134:35;;11209:2;11198:9;11194:18;11188:25;11178:35;;10913:306;;;;;:::o
Swarm Source
ipfs://c535f2ed1b755e262f1b8f408eab6fc12c6e2256ff8ca0677e6949768be56b39
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.