ERC-20
Overview
Max Total Supply
1,000,000,000 CBS
Holders
160
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
7,793,028.15070501 CBSValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CBS
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-30 */ /** Cyberse is full decentralized customer. By hold $CBS token you got access to apps like graphic editor, graphic maker, exclusive store, airdrops. If you buy NFT, you will get 100% chance to Airdrop, and there's token buybacks. We will implement writing articles, crypto stats and advertise section for crypto projects. Website: https://www.cyberse.app Telegram: https://t.me/cbs_erc Twitter: https://twitter.com/cbs_erc */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.21; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, 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 sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library LibSafeMathInt { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "LibSafeMathInt: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "LibSafeMathInt: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "LibSafeMathInt: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "LibSafeMathInt: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "LibSafeMathInt: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } abstract contract BaseContext { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract Ownable is BaseContext { address private _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniFactory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); 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(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function set(address) external; function setSetter(address) external; } interface IUniRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract CBS is BaseContext, IERC20, Ownable { using LibSafeMathInt for uint256; string private _name = "Cyberse"; string private _symbol = "CBS"; uint8 private _decimals = 9; uint256 private _tSupplyTotal = 10 ** 9 * 10 ** 9; uint256 public maxTxAmount = 21 * 10 ** 6 * 10 ** 9; uint256 public maxWallet = 21 * 10 ** 6 * 10 ** 9; uint256 public minAmountToTriggerSwap = 10 ** 4 * 10 ** 9; uint256 public buyFee4Lp = 0; uint256 public buyFee4Mkt = 28; uint256 public buyFee4Dev = 0; uint256 public totalFee4Buy = 28; uint256 public sellFee4Lp = 0; uint256 public sellFee4Mkt = 28; uint256 public sellFee4Dev = 0; uint256 public totalFee4Sell = 28; uint256 public share4Lp = 0; uint256 public share4Mkt = 10; uint256 public share4Dev = 0; uint256 public totalShares = 10; address payable private teamFeeReceiver; address payable private devFeeReceiver; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isFeeExcluded; mapping (address => bool) public checkMaxWalletExcluded; mapping (address => bool) public checkMaxTxExcluded; mapping (address => bool) public checkPairAddress; IUniRouter public uniswapRouter; address public uniswapPair; bool swapping; bool public feeSwapEnabled = true; bool public hasMaxTx = false; bool public hasMaxWallet = true; modifier lockSwap { swapping = true; _; swapping = false; } constructor () { _balances[_msgSender()] = _tSupplyTotal; IUniRouter _uniswapV2Router = IUniRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniFactory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapRouter = _uniswapV2Router; _allowances[address(this)][address(uniswapRouter)] = _tSupplyTotal; totalFee4Buy = buyFee4Lp.add(buyFee4Mkt).add(buyFee4Dev); totalFee4Sell = sellFee4Lp.add(sellFee4Mkt).add(sellFee4Dev); totalShares = share4Lp.add(share4Mkt).add(share4Dev); teamFeeReceiver = payable(0x77007Dd10f15c63557A5C754B38Db186A694cB73); devFeeReceiver = payable(0x77007Dd10f15c63557A5C754B38Db186A694cB73); isFeeExcluded[owner()] = true; isFeeExcluded[teamFeeReceiver] = true; isFeeExcluded[devFeeReceiver] = true; checkMaxWalletExcluded[owner()] = true; checkMaxWalletExcluded[address(uniswapPair)] = true; checkMaxWalletExcluded[address(this)] = true; checkMaxTxExcluded[owner()] = true; checkMaxTxExcluded[teamFeeReceiver] = true; checkMaxTxExcluded[devFeeReceiver] = true; checkMaxTxExcluded[address(this)] = true; checkPairAddress[address(uniswapPair)] = true; emit Transfer(address(0), _msgSender(), _tSupplyTotal); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tSupplyTotal; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapRouter.WETH(); _approve(address(this), address(uniswapRouter), tokenAmount); // make the swapBackT uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); } function removeLimits() external onlyOwner { maxTxAmount = _tSupplyTotal; hasMaxWallet = false; buyFee4Mkt = 3; sellFee4Mkt = 3; totalFee4Buy = 3; totalFee4Sell = 3; } function swapBackT(uint256 tAmount) private lockSwap { uint256 lpFeetokens = tAmount.mul(share4Lp).div(totalShares).div(2); uint256 tokensToSwap = tAmount.sub(lpFeetokens); swapTokensForETH(tokensToSwap); uint256 caEthAmount = address(this).balance; uint256 totalETHFee = totalShares.sub(share4Lp.div(2)); uint256 amountETHLiquidity = caEthAmount.mul(share4Lp).div(totalETHFee).div(2); uint256 amountETHDevelopment = caEthAmount.mul(share4Dev).div(totalETHFee); uint256 amountETHMarketing = caEthAmount.sub(amountETHLiquidity).sub(amountETHDevelopment); if(amountETHMarketing > 0) transferETH(teamFeeReceiver, amountETHMarketing); if(amountETHDevelopment > 0) transferETH(devFeeReceiver, amountETHDevelopment); } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if(swapping) { return _transferStandard(sender, recipient, amount); } else { if(!checkMaxTxExcluded[sender] && !checkMaxTxExcluded[recipient]) { require(amount <= maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } uint256 swapAmount = balanceOf(address(this)); bool minimumSwap = swapAmount >= minAmountToTriggerSwap; if (minimumSwap && !swapping && checkPairAddress[recipient] && feeSwapEnabled && !isFeeExcluded[sender] && amount > minAmountToTriggerSwap) { if(hasMaxTx) swapAmount = minAmountToTriggerSwap; swapBackT(swapAmount); } uint256 amountToAdd = (isFeeExcluded[sender] || isFeeExcluded[recipient]) ? amount : getAmountsByFee(sender, recipient, amount); if(hasMaxWallet && !checkMaxWalletExcluded[recipient]) require(balanceOf(recipient).add(amountToAdd) <= maxWallet); uint256 amountToReduce = (!hasMaxWallet && isFeeExcluded[sender]) ? amount.sub(amountToAdd) : amount; _balances[sender] = _balances[sender].sub(amountToReduce, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amountToAdd); emit Transfer(sender, recipient, amountToAdd); return true; } } function _approve(address owner, address spender, uint256 amount) private { 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 allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function _transferStandard(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function getAmountsByFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if(checkPairAddress[sender]) { feeAmount = amount.mul(totalFee4Buy).div(100); } else if(checkPairAddress[recipient]) { feeAmount = amount.mul(totalFee4Sell).div(100); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } function transferETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } 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":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":[{"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":"buyFee4Dev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee4Lp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee4Mkt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkMaxTxExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkMaxWalletExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkPairAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasMaxTx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minAmountToTriggerSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee4Dev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee4Lp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee4Mkt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"share4Dev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"share4Lp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"share4Mkt","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":"totalFee4Buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee4Sell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","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":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c060405260076080908152664379626572736560c81b60a05260029062000028908262000667565b506040805180820190915260038082526243425360e81b60208301529062000051908262000667565b5060048054600960ff199091168117909155670de0b6b3a7640000600555664a9b638448800060068190556007556509184e72a0006008555f90819055601c600a818155600b839055600c829055600d839055600e829055600f83905560109190915560118290556012819055601391909155601455601e805462ffffff60a81b19166201000160a81b179055348015620000ea575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600554335f9081526017602090815260409182902092909255805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a015592600480830193928290030181865afa1580156200018f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b591906200072f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000201573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200022791906200072f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000272573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200029891906200072f565b601e80546001600160a01b039283166001600160a01b031991821617909155601d80549284169290911682179055600554305f9081526018602090815260408083209483529390529190912055600b54600a546009546200030792916200030091906200054f565b906200054f565b600c55600f54600e54600d546200032592916200030091906200054f565b6010556013546012546011546200034392916200030091906200054f565b601455601580547377007dd10f15c63557a5c754b38db186a694cb736001600160a01b03199182168117909255601680549091169091179055600160195f620003935f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055601554821681526019909352818320805485166001908117909155601654909116835290822080549093168117909255601a90620004055f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055601e549091168152601a90925280822080548416600190811790915530835290822080549093168117909255601b90620004735f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905560155482168152601b84528281208054861660019081179091556016548316825283822080548716821790553082528382208054871682179055601e549092168152601c90935291208054909216179055620004f93390565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040516200054091815260200190565b60405180910390a35062000777565b5f806200055d838562000757565b905083811015620005be5760405162461bcd60e51b815260206004820152602160248201527f4c6962536166654d617468496e743a206164646974696f6e206f766572666c6f6044820152607760f81b606482015260840160405180910390fd5b90505b92915050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005f057607f821691505b6020821081036200060f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000662575f81815260208120601f850160051c810160208610156200063d5750805b601f850160051c820191505b818110156200065e5782815560010162000649565b5050505b505050565b81516001600160401b03811115620006835762000683620005c7565b6200069b81620006948454620005db565b8462000615565b602080601f831160018114620006d1575f8415620006b95750858301515b5f19600386901b1c1916600185901b1785556200065e565b5f85815260208120601f198616915b828110156200070157888601518255948401946001909101908401620006e0565b50858210156200071f57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020828403121562000740575f80fd5b81516001600160a01b0381168114620005be575f80fd5b80820180821115620005c157634e487b7160e01b5f52601160045260245ffd5b61182b80620007855f395ff3fe608060405260043610610215575f3560e01c80637e42a7a11161011e578063b57d4faa116100a8578063da7a46091161006d578063da7a4609146105ea578063dd62ed3e146105ff578063deadf29914610643578063f2fde38b14610658578063f8b45b0514610677575f80fd5b8063b57d4faa14610545578063bca238aa1461055a578063c816841b14610588578063cfb6488f146105a7578063d48927dc146105d5575f80fd5b806395d89b41116100ee57806395d89b41146104d35780639d64bf93146104e7578063a2369576146104fc578063a6eb496514610511578063a9059cbb14610526575f80fd5b80637e42a7a11461046d57806385e181891461048d5780638c0b5e22146104a25780638da5cb5b146104b7575f80fd5b80633b8ce5991161019f5780636ed6823c1161016f5780636ed6823c146103c357806370a08231146103d8578063715018a61461040c578063735de9f714610422578063751039fc14610459575f80fd5b80633b8ce5991461034b5780634ad8277514610360578063577c5a18146103805780636e71474614610395575f80fd5b806323b872dd116101e557806323b872dd146102b357806326a06616146102d25780632c37529e146102e7578063313ce567146103155780633a98ef3914610336575f80fd5b806304866b801461022057806306fdde0314610255578063095ea7b31461027657806318160ddd14610295575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b50601e5461024090600160a81b900460ff1681565b60405190151581526020015b60405180910390f35b348015610260575f80fd5b5061026961068c565b60405161024c9190611512565b348015610281575f80fd5b50610240610290366004611574565b61071c565b3480156102a0575f80fd5b506005545b60405190815260200161024c565b3480156102be575f80fd5b506102406102cd36600461159e565b610732565b3480156102dd575f80fd5b506102a5600d5481565b3480156102f2575f80fd5b506102406103013660046115dc565b601a6020525f908152604090205460ff1681565b348015610320575f80fd5b5060045460405160ff909116815260200161024c565b348015610341575f80fd5b506102a560145481565b348015610356575f80fd5b506102a560105481565b34801561036b575f80fd5b50601e5461024090600160b01b900460ff1681565b34801561038b575f80fd5b506102a5600e5481565b3480156103a0575f80fd5b506102406103af3660046115dc565b601c6020525f908152604090205460ff1681565b3480156103ce575f80fd5b506102a560135481565b3480156103e3575f80fd5b506102a56103f23660046115dc565b6001600160a01b03165f9081526017602052604090205490565b348015610417575f80fd5b5061042061079b565b005b34801561042d575f80fd5b50601d54610441906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b348015610464575f80fd5b50610420610815565b348015610478575f80fd5b50601e5461024090600160b81b900460ff1681565b348015610498575f80fd5b506102a5600a5481565b3480156104ad575f80fd5b506102a560065481565b3480156104c2575f80fd5b505f546001600160a01b0316610441565b3480156104de575f80fd5b50610269610867565b3480156104f2575f80fd5b506102a560085481565b348015610507575f80fd5b506102a5600b5481565b34801561051c575f80fd5b506102a560115481565b348015610531575f80fd5b50610240610540366004611574565b610876565b348015610550575f80fd5b506102a560125481565b348015610565575f80fd5b506102406105743660046115dc565b60196020525f908152604090205460ff1681565b348015610593575f80fd5b50601e54610441906001600160a01b031681565b3480156105b2575f80fd5b506102406105c13660046115dc565b601b6020525f908152604090205460ff1681565b3480156105e0575f80fd5b506102a5600c5481565b3480156105f5575f80fd5b506102a5600f5481565b34801561060a575f80fd5b506102a56106193660046115f7565b6001600160a01b039182165f90815260186020908152604080832093909416825291909152205490565b34801561064e575f80fd5b506102a560095481565b348015610663575f80fd5b506104206106723660046115dc565b610882565b348015610682575f80fd5b506102a560075481565b60606002805461069b9061162e565b80601f01602080910402602001604051908101604052809291908181526020018280546106c79061162e565b80156107125780601f106106e957610100808354040283529160200191610712565b820191905f5260205f20905b8154815290600101906020018083116106f557829003601f168201915b5050505050905090565b5f610728338484610969565b5060015b92915050565b5f61073e848484610a8c565b50610790843361078b856040518060600160405280602881526020016117ce602891396001600160a01b038a165f9081526018602090815260408083203384529091529020549190610edf565b610969565b5060015b9392505050565b5f546001600160a01b031633146107cd5760405162461bcd60e51b81526004016107c490611666565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461083e5760405162461bcd60e51b81526004016107c490611666565b600554600655601e805460ff60b81b191690556003600a819055600e819055600c819055601055565b60606003805461069b9061162e565b5f610790338484610a8c565b5f546001600160a01b031633146108ab5760405162461bcd60e51b81526004016107c490611666565b6001600160a01b0381166109105760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c4565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166109cb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c4565b6001600160a01b038216610a2c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c4565b6001600160a01b038381165f8181526018602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416610af15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c4565b6001600160a01b038316610b535760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c4565b601e54600160a01b900460ff1615610b7757610b70848484610f17565b9050610794565b6001600160a01b0384165f908152601b602052604090205460ff16158015610bb757506001600160a01b0383165f908152601b602052604090205460ff16155b15610c1f57600654821115610c1f5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016107c4565b305f9081526017602052604090205460085481108015908190610c4c5750601e54600160a01b900460ff16155b8015610c6f57506001600160a01b0385165f908152601c602052604090205460ff165b8015610c845750601e54600160a81b900460ff165b8015610ca857506001600160a01b0386165f9081526019602052604090205460ff16155b8015610cb5575060085484115b15610cdb57601e54600160b01b900460ff1615610cd25760085491505b610cdb82610ffa565b6001600160a01b0386165f9081526019602052604081205460ff1680610d1857506001600160a01b0386165f9081526019602052604090205460ff165b610d2c57610d2787878761110b565b610d2e565b845b601e54909150600160b81b900460ff168015610d6257506001600160a01b0386165f908152601a602052604090205460ff16155b15610d9c57600754610d9282610d8c896001600160a01b03165f9081526017602052604090205490565b9061120d565b1115610d9c575f80fd5b601e545f90600160b81b900460ff16158015610dcf57506001600160a01b0388165f9081526019602052604090205460ff165b610dd95785610de3565b610de38683611275565b9050610e498160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060175f8c6001600160a01b03166001600160a01b031681526020019081526020015f2054610edf9092919063ffffffff16565b6001600160a01b03808a165f908152601760205260408082209390935590891681522054610e77908361120d565b6001600160a01b038089165f8181526017602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610eca9086815260200190565b60405180910390a36001945050505050610794565b5f8184841115610f025760405162461bcd60e51b81526004016107c49190611512565b505f610f0e84866116af565b95945050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152601790915291822054610f67918490610edf565b6001600160a01b038086165f908152601760205260408082209390935590851681522054610f95908361120d565b6001600160a01b038085165f8181526017602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fe89086815260200190565b60405180910390a35060019392505050565b601e805460ff60a01b1916600160a01b1790556014546011545f9161102f916002916110299182908790611299565b9061131d565b90505f61103c8383611275565b90506110478161135e565b60115447905f906110669061105d90600261131d565b60145490611275565b90505f6110876002611029846110296011548861129990919063ffffffff16565b90505f6110a3836110296013548761129990919063ffffffff16565b90505f6110ba826110b48786611275565b90611275565b905080156110d8576015546110d8906001600160a01b0316826114ae565b81156110f4576016546110f4906001600160a01b0316836114ae565b5050601e805460ff60a01b19169055505050505050565b6001600160a01b0383165f908152601c6020526040812054819060ff161561114e576111476064611029600c548661129990919063ffffffff16565b905061118b565b6001600160a01b0384165f908152601c602052604090205460ff161561118b5761118860646110296010548661129990919063ffffffff16565b90505b801561120357305f908152601760205260409020546111aa908261120d565b305f81815260176020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111fa9085815260200190565b60405180910390a35b610f0e8382611275565b5f8061121983856116c2565b9050838110156107945760405162461bcd60e51b815260206004820152602160248201527f4c6962536166654d617468496e743a206164646974696f6e206f766572666c6f6044820152607760f81b60648201526084016107c4565b5f61079483836040518060600160405280602481526020016117aa60249139610edf565b5f825f036112a857505f61072c565b5f6112b383856116d5565b9050826112c085836116ec565b146107945760405162461bcd60e51b815260206004820152602760248201527f4c6962536166654d617468496e743a206d756c7469706c69636174696f6e206f604482015266766572666c6f7760c81b60648201526084016107c4565b5f61079483836040518060400160405280602081526020017f4c6962536166654d617468496e743a206469766973696f6e206279207a65726f8152506114e6565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106113915761139161170b565b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061140c919061171f565b8160018151811061141f5761141f61170b565b6001600160a01b039283166020918202929092010152601d546114459130911684610969565b601d5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061147d9085905f9086903090429060040161173a565b5f604051808303815f87803b158015611494575f80fd5b505af11580156114a6573d5f803e3d5ffd5b505050505050565b6040516001600160a01b0383169082156108fc029083905f818181858888f193505050501580156114e1573d5f803e3d5ffd5b505050565b5f81836115065760405162461bcd60e51b81526004016107c49190611512565b505f610f0e84866116ec565b5f6020808352835180828501525f5b8181101561153d57858101830151858201604001528201611521565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611571575f80fd5b50565b5f8060408385031215611585575f80fd5b82356115908161155d565b946020939093013593505050565b5f805f606084860312156115b0575f80fd5b83356115bb8161155d565b925060208401356115cb8161155d565b929592945050506040919091013590565b5f602082840312156115ec575f80fd5b81356107948161155d565b5f8060408385031215611608575f80fd5b82356116138161155d565b915060208301356116238161155d565b809150509250929050565b600181811c9082168061164257607f821691505b60208210810361166057634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561072c5761072c61169b565b8082018082111561072c5761072c61169b565b808202811582820484141761072c5761072c61169b565b5f8261170657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561172f575f80fd5b81516107948161155d565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117885784516001600160a01b031683529383019391830191600101611763565b50506001600160a01b0396909616606085015250505060800152939250505056fe4c6962536166654d617468496e743a207375627472616374696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204d090f423e5e055b203f22146cce29d1354d4031a5e904cb022f5d38d4de792d64736f6c63430008150033
Deployed Bytecode
0x608060405260043610610215575f3560e01c80637e42a7a11161011e578063b57d4faa116100a8578063da7a46091161006d578063da7a4609146105ea578063dd62ed3e146105ff578063deadf29914610643578063f2fde38b14610658578063f8b45b0514610677575f80fd5b8063b57d4faa14610545578063bca238aa1461055a578063c816841b14610588578063cfb6488f146105a7578063d48927dc146105d5575f80fd5b806395d89b41116100ee57806395d89b41146104d35780639d64bf93146104e7578063a2369576146104fc578063a6eb496514610511578063a9059cbb14610526575f80fd5b80637e42a7a11461046d57806385e181891461048d5780638c0b5e22146104a25780638da5cb5b146104b7575f80fd5b80633b8ce5991161019f5780636ed6823c1161016f5780636ed6823c146103c357806370a08231146103d8578063715018a61461040c578063735de9f714610422578063751039fc14610459575f80fd5b80633b8ce5991461034b5780634ad8277514610360578063577c5a18146103805780636e71474614610395575f80fd5b806323b872dd116101e557806323b872dd146102b357806326a06616146102d25780632c37529e146102e7578063313ce567146103155780633a98ef3914610336575f80fd5b806304866b801461022057806306fdde0314610255578063095ea7b31461027657806318160ddd14610295575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b50601e5461024090600160a81b900460ff1681565b60405190151581526020015b60405180910390f35b348015610260575f80fd5b5061026961068c565b60405161024c9190611512565b348015610281575f80fd5b50610240610290366004611574565b61071c565b3480156102a0575f80fd5b506005545b60405190815260200161024c565b3480156102be575f80fd5b506102406102cd36600461159e565b610732565b3480156102dd575f80fd5b506102a5600d5481565b3480156102f2575f80fd5b506102406103013660046115dc565b601a6020525f908152604090205460ff1681565b348015610320575f80fd5b5060045460405160ff909116815260200161024c565b348015610341575f80fd5b506102a560145481565b348015610356575f80fd5b506102a560105481565b34801561036b575f80fd5b50601e5461024090600160b01b900460ff1681565b34801561038b575f80fd5b506102a5600e5481565b3480156103a0575f80fd5b506102406103af3660046115dc565b601c6020525f908152604090205460ff1681565b3480156103ce575f80fd5b506102a560135481565b3480156103e3575f80fd5b506102a56103f23660046115dc565b6001600160a01b03165f9081526017602052604090205490565b348015610417575f80fd5b5061042061079b565b005b34801561042d575f80fd5b50601d54610441906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b348015610464575f80fd5b50610420610815565b348015610478575f80fd5b50601e5461024090600160b81b900460ff1681565b348015610498575f80fd5b506102a5600a5481565b3480156104ad575f80fd5b506102a560065481565b3480156104c2575f80fd5b505f546001600160a01b0316610441565b3480156104de575f80fd5b50610269610867565b3480156104f2575f80fd5b506102a560085481565b348015610507575f80fd5b506102a5600b5481565b34801561051c575f80fd5b506102a560115481565b348015610531575f80fd5b50610240610540366004611574565b610876565b348015610550575f80fd5b506102a560125481565b348015610565575f80fd5b506102406105743660046115dc565b60196020525f908152604090205460ff1681565b348015610593575f80fd5b50601e54610441906001600160a01b031681565b3480156105b2575f80fd5b506102406105c13660046115dc565b601b6020525f908152604090205460ff1681565b3480156105e0575f80fd5b506102a5600c5481565b3480156105f5575f80fd5b506102a5600f5481565b34801561060a575f80fd5b506102a56106193660046115f7565b6001600160a01b039182165f90815260186020908152604080832093909416825291909152205490565b34801561064e575f80fd5b506102a560095481565b348015610663575f80fd5b506104206106723660046115dc565b610882565b348015610682575f80fd5b506102a560075481565b60606002805461069b9061162e565b80601f01602080910402602001604051908101604052809291908181526020018280546106c79061162e565b80156107125780601f106106e957610100808354040283529160200191610712565b820191905f5260205f20905b8154815290600101906020018083116106f557829003601f168201915b5050505050905090565b5f610728338484610969565b5060015b92915050565b5f61073e848484610a8c565b50610790843361078b856040518060600160405280602881526020016117ce602891396001600160a01b038a165f9081526018602090815260408083203384529091529020549190610edf565b610969565b5060015b9392505050565b5f546001600160a01b031633146107cd5760405162461bcd60e51b81526004016107c490611666565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461083e5760405162461bcd60e51b81526004016107c490611666565b600554600655601e805460ff60b81b191690556003600a819055600e819055600c819055601055565b60606003805461069b9061162e565b5f610790338484610a8c565b5f546001600160a01b031633146108ab5760405162461bcd60e51b81526004016107c490611666565b6001600160a01b0381166109105760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107c4565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166109cb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107c4565b6001600160a01b038216610a2c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107c4565b6001600160a01b038381165f8181526018602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416610af15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107c4565b6001600160a01b038316610b535760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107c4565b601e54600160a01b900460ff1615610b7757610b70848484610f17565b9050610794565b6001600160a01b0384165f908152601b602052604090205460ff16158015610bb757506001600160a01b0383165f908152601b602052604090205460ff16155b15610c1f57600654821115610c1f5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016107c4565b305f9081526017602052604090205460085481108015908190610c4c5750601e54600160a01b900460ff16155b8015610c6f57506001600160a01b0385165f908152601c602052604090205460ff165b8015610c845750601e54600160a81b900460ff165b8015610ca857506001600160a01b0386165f9081526019602052604090205460ff16155b8015610cb5575060085484115b15610cdb57601e54600160b01b900460ff1615610cd25760085491505b610cdb82610ffa565b6001600160a01b0386165f9081526019602052604081205460ff1680610d1857506001600160a01b0386165f9081526019602052604090205460ff165b610d2c57610d2787878761110b565b610d2e565b845b601e54909150600160b81b900460ff168015610d6257506001600160a01b0386165f908152601a602052604090205460ff16155b15610d9c57600754610d9282610d8c896001600160a01b03165f9081526017602052604090205490565b9061120d565b1115610d9c575f80fd5b601e545f90600160b81b900460ff16158015610dcf57506001600160a01b0388165f9081526019602052604090205460ff165b610dd95785610de3565b610de38683611275565b9050610e498160405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060175f8c6001600160a01b03166001600160a01b031681526020019081526020015f2054610edf9092919063ffffffff16565b6001600160a01b03808a165f908152601760205260408082209390935590891681522054610e77908361120d565b6001600160a01b038089165f8181526017602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610eca9086815260200190565b60405180910390a36001945050505050610794565b5f8184841115610f025760405162461bcd60e51b81526004016107c49190611512565b505f610f0e84866116af565b95945050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152601790915291822054610f67918490610edf565b6001600160a01b038086165f908152601760205260408082209390935590851681522054610f95908361120d565b6001600160a01b038085165f8181526017602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fe89086815260200190565b60405180910390a35060019392505050565b601e805460ff60a01b1916600160a01b1790556014546011545f9161102f916002916110299182908790611299565b9061131d565b90505f61103c8383611275565b90506110478161135e565b60115447905f906110669061105d90600261131d565b60145490611275565b90505f6110876002611029846110296011548861129990919063ffffffff16565b90505f6110a3836110296013548761129990919063ffffffff16565b90505f6110ba826110b48786611275565b90611275565b905080156110d8576015546110d8906001600160a01b0316826114ae565b81156110f4576016546110f4906001600160a01b0316836114ae565b5050601e805460ff60a01b19169055505050505050565b6001600160a01b0383165f908152601c6020526040812054819060ff161561114e576111476064611029600c548661129990919063ffffffff16565b905061118b565b6001600160a01b0384165f908152601c602052604090205460ff161561118b5761118860646110296010548661129990919063ffffffff16565b90505b801561120357305f908152601760205260409020546111aa908261120d565b305f81815260176020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111fa9085815260200190565b60405180910390a35b610f0e8382611275565b5f8061121983856116c2565b9050838110156107945760405162461bcd60e51b815260206004820152602160248201527f4c6962536166654d617468496e743a206164646974696f6e206f766572666c6f6044820152607760f81b60648201526084016107c4565b5f61079483836040518060600160405280602481526020016117aa60249139610edf565b5f825f036112a857505f61072c565b5f6112b383856116d5565b9050826112c085836116ec565b146107945760405162461bcd60e51b815260206004820152602760248201527f4c6962536166654d617468496e743a206d756c7469706c69636174696f6e206f604482015266766572666c6f7760c81b60648201526084016107c4565b5f61079483836040518060400160405280602081526020017f4c6962536166654d617468496e743a206469766973696f6e206279207a65726f8152506114e6565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106113915761139161170b565b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061140c919061171f565b8160018151811061141f5761141f61170b565b6001600160a01b039283166020918202929092010152601d546114459130911684610969565b601d5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061147d9085905f9086903090429060040161173a565b5f604051808303815f87803b158015611494575f80fd5b505af11580156114a6573d5f803e3d5ffd5b505050505050565b6040516001600160a01b0383169082156108fc029083905f818181858888f193505050501580156114e1573d5f803e3d5ffd5b505050565b5f81836115065760405162461bcd60e51b81526004016107c49190611512565b505f610f0e84866116ec565b5f6020808352835180828501525f5b8181101561153d57858101830151858201604001528201611521565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611571575f80fd5b50565b5f8060408385031215611585575f80fd5b82356115908161155d565b946020939093013593505050565b5f805f606084860312156115b0575f80fd5b83356115bb8161155d565b925060208401356115cb8161155d565b929592945050506040919091013590565b5f602082840312156115ec575f80fd5b81356107948161155d565b5f8060408385031215611608575f80fd5b82356116138161155d565b915060208301356116238161155d565b809150509250929050565b600181811c9082168061164257607f821691505b60208210810361166057634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561072c5761072c61169b565b8082018082111561072c5761072c61169b565b808202811582820484141761072c5761072c61169b565b5f8261170657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561172f575f80fd5b81516107948161155d565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117885784516001600160a01b031683529383019391830191600101611763565b50506001600160a01b0396909616606085015250505060800152939250505056fe4c6962536166654d617468496e743a207375627472616374696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204d090f423e5e055b203f22146cce29d1354d4031a5e904cb022f5d38d4de792d64736f6c63430008150033
Deployed Bytecode Sourcemap
5346:9377:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6789:33;;;;;;;;;;-1:-1:-1;6789:33:0;;;;-1:-1:-1;;;6789:33:0;;;;;;;;;179:14:1;;172:22;154:41;;142:2;127:18;6789:33:0;;;;;;;;8430:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8816:161::-;;;;;;;;;;-1:-1:-1;8816:161:0;;;;;:::i;:::-;;:::i;8707:101::-;;;;;;;;;;-1:-1:-1;8787:13:0;;8707:101;;;1361:25:1;;;1349:2;1334:18;8707:101:0;1215:177:1;12950:313:0;;;;;;;;;;-1:-1:-1;12950:313:0;;;;;:::i;:::-;;:::i;5951:29::-;;;;;;;;;;;;;;;;6514:55;;;;;;;;;;-1:-1:-1;6514:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8616:83;;;;;;;;;;-1:-1:-1;8682:9:0;;8616:83;;8682:9;;;;2252:36:1;;2240:2;2225:18;8616:83:0;2110:184:1;6209:31:0;;;;;;;;;;;;;;;;6062:33;;;;;;;;;;;;;;;;6829:28;;;;;;;;;;-1:-1:-1;6829:28:0;;;;-1:-1:-1;;;6829:28:0;;;;;;5987:31;;;;;;;;;;;;;;;;6634:49;;;;;;;;;;-1:-1:-1;6634:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6174:28;;;;;;;;;;;;;;;;13446:119;;;;;;;;;;-1:-1:-1;13446:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;13539:18:0;13512:7;13539:18;;;:9;:18;;;;;;;13446:119;3667:148;;;;;;;;;;;;;:::i;:::-;;6692:31;;;;;;;;;;-1:-1:-1;6692:31:0;;;;-1:-1:-1;;;;;6692:31:0;;;;;;-1:-1:-1;;;;;2481:32:1;;;2463:51;;2451:2;2436:18;6692:31:0;2299:221:1;9549:226:0;;;;;;;;;;;;;:::i;6864:31::-;;;;;;;;;;-1:-1:-1;6864:31:0;;;;-1:-1:-1;;;6864:31:0;;;;;;5837:30;;;;;;;;;;;;;;;;5621:51;;;;;;;;;;;;;;;;3442:79;;;;;;;;;;-1:-1:-1;3480:7:0;3507:6;-1:-1:-1;;;;;3507:6:0;3442:79;;8521:87;;;;;;;;;;;;;:::i;5735:57::-;;;;;;;;;;;;;;;;5874:29;;;;;;;;;;;;;;;;6104:27;;;;;;;;;;;;;;;;13271:167;;;;;;;;;;-1:-1:-1;13271:167:0;;;;;:::i;:::-;;:::i;6138:29::-;;;;;;;;;;;;;;;;6461:46;;;;;;;;;;-1:-1:-1;6461:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6730:26;;;;;;;;;;-1:-1:-1;6730:26:0;;;;-1:-1:-1;;;;;6730:26:0;;;6576:51;;;;;;;;;;-1:-1:-1;6576:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5910:32;;;;;;;;;;;;;;;;6025:30;;;;;;;;;;;;;;;;12795:143;;;;;;;;;;-1:-1:-1;12795:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;12903:18:0;;;12876:7;12903:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12795:143;5802:28;;;;;;;;;;;;;;;;3823:244;;;;;;;;;;-1:-1:-1;3823:244:0;;;;;:::i;:::-;;:::i;5679:49::-;;;;;;;;;;;;;;;;8430:83;8467:13;8500:5;8493:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8430:83;:::o;8816:161::-;8891:4;8908:39;2814:10;8931:7;8940:6;8908:8;:39::i;:::-;-1:-1:-1;8965:4:0;8816:161;;;;;:::o;12950:313::-;13048:4;13065:36;13075:6;13083:9;13094:6;13065:9;:36::i;:::-;-1:-1:-1;13112:121:0;13121:6;2814:10;13143:89;13181:6;13143:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13143:19:0;;;;;;:11;:19;;;;;;;;2814:10;13143:33;;;;;;;;;;:37;:89::i;:::-;13112:8;:121::i;:::-;-1:-1:-1;13251:4:0;12950:313;;;;;;:::o;3667:148::-;3576:6;;-1:-1:-1;;;;;3576:6:0;2814:10;3576:22;3568:67;;;;-1:-1:-1;;;3568:67:0;;;;;;;:::i;:::-;;;;;;;;;3774:1:::1;3758:6:::0;;3737:40:::1;::::0;-1:-1:-1;;;;;3758:6:0;;::::1;::::0;3737:40:::1;::::0;3774:1;;3737:40:::1;3805:1;3788:19:::0;;-1:-1:-1;;;;;;3788:19:0::1;::::0;;3667:148::o;9549:226::-;3576:6;;-1:-1:-1;;;;;3576:6:0;2814:10;3576:22;3568:67;;;;-1:-1:-1;;;3568:67:0;;;;;;;:::i;:::-;9617:13:::1;::::0;9603:11:::1;:27:::0;9641:12:::1;:20:::0;;-1:-1:-1;;;;9641:20:0::1;::::0;;9685:1:::1;9672:10;:14:::0;;;9697:11:::1;:15:::0;;;9723:12:::1;:16:::0;;;-1:-1:-1;9750:17:0;9549:226::o;8521:87::-;8560:13;8593:7;8586:14;;;;;:::i;13271:167::-;13349:4;13366:42;2814:10;13390:9;13401:6;13366:9;:42::i;3823:244::-;3576:6;;-1:-1:-1;;;;;3576:6:0;2814:10;3576:22;3568:67;;;;-1:-1:-1;;;3568:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3912:22:0;::::1;3904:73;;;::::0;-1:-1:-1;;;3904:73:0;;4074:2:1;3904:73:0::1;::::0;::::1;4056:21:1::0;4113:2;4093:18;;;4086:30;4152:34;4132:18;;;4125:62;-1:-1:-1;;;4203:18:1;;;4196:36;4249:19;;3904:73:0::1;3872:402:1::0;3904:73:0::1;4014:6;::::0;;3993:38:::1;::::0;-1:-1:-1;;;;;3993:38:0;;::::1;::::0;4014:6;::::1;::::0;3993:38:::1;::::0;::::1;4042:6;:17:::0;;-1:-1:-1;;;;;;4042:17:0::1;-1:-1:-1::0;;;;;4042:17:0;;;::::1;::::0;;;::::1;::::0;;3823:244::o;12442:337::-;-1:-1:-1;;;;;12535:19:0;;12527:68;;;;-1:-1:-1;;;12527:68:0;;4481:2:1;12527:68:0;;;4463:21:1;4520:2;4500:18;;;4493:30;4559:34;4539:18;;;4532:62;-1:-1:-1;;;4610:18:1;;;4603:34;4654:19;;12527:68:0;4279:400:1;12527:68:0;-1:-1:-1;;;;;12614:21:0;;12606:68;;;;-1:-1:-1;;;12606:68:0;;4886:2:1;12606:68:0;;;4868:21:1;4925:2;4905:18;;;4898:30;4964:34;4944:18;;;4937:62;-1:-1:-1;;;5015:18:1;;;5008:32;5057:19;;12606:68:0;4684:398:1;12606:68:0;-1:-1:-1;;;;;12687:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12739:32;;1361:25:1;;;12739:32:0;;1334:18:1;12739:32:0;;;;;;;12442:337;;;:::o;10646:1784::-;10733:4;-1:-1:-1;;;;;10758:20:0;;10750:70;;;;-1:-1:-1;;;10750:70:0;;5289:2:1;10750:70:0;;;5271:21:1;5328:2;5308:18;;;5301:30;5367:34;5347:18;;;5340:62;-1:-1:-1;;;5418:18:1;;;5411:35;5463:19;;10750:70:0;5087:401:1;10750:70:0;-1:-1:-1;;;;;10839:23:0;;10831:71;;;;-1:-1:-1;;;10831:71:0;;5695:2:1;10831:71:0;;;5677:21:1;5734:2;5714:18;;;5707:30;5773:34;5753:18;;;5746:62;-1:-1:-1;;;5824:18:1;;;5817:33;5867:19;;10831:71:0;5493:399:1;10831:71:0;10916:8;;-1:-1:-1;;;10916:8:0;;;;10913:1510;;;10958:44;10976:6;10984:9;10995:6;10958:17;:44::i;:::-;10951:51;;;;10913:1510;-1:-1:-1;;;;;11058:26:0;;;;;;:18;:26;;;;;;;;11057:27;:61;;;;-1:-1:-1;;;;;;11089:29:0;;;;;;:18;:29;;;;;;;;11088:30;11057:61;11054:175;;;11157:11;;11147:6;:21;;11139:74;;;;-1:-1:-1;;;11139:74:0;;6099:2:1;11139:74:0;;;6081:21:1;6138:2;6118:18;;;6111:30;6177:34;6157:18;;;6150:62;-1:-1:-1;;;6228:18:1;;;6221:38;6276:19;;11139:74:0;5897:404:1;11139:74:0;11296:4;11257:18;13539;;;:9;:18;;;;;;11350:22;;11336:36;;;;;;;11405:24;;-1:-1:-1;11421:8:0;;-1:-1:-1;;;11421:8:0;;;;11420:9;11405:24;:55;;;;-1:-1:-1;;;;;;11433:27:0;;;;;;:16;:27;;;;;;;;11405:55;:73;;;;-1:-1:-1;11464:14:0;;-1:-1:-1;;;11464:14:0;;;;11405:73;:99;;;;-1:-1:-1;;;;;;11483:21:0;;;;;;:13;:21;;;;;;;;11482:22;11405:99;:134;;;;;11517:22;;11508:6;:31;11405:134;11401:302;;;11577:8;;-1:-1:-1;;;11577:8:0;;;;11574:69;;;11621:22;;11608:35;;11574:69;11662:21;11672:10;11662:9;:21::i;:::-;-1:-1:-1;;;;;11742:21:0;;11719:19;11742:21;;;:13;:21;;;;;;;;;:49;;-1:-1:-1;;;;;;11767:24:0;;;;;;:13;:24;;;;;;;;11742:49;11741:148;;11847:42;11863:6;11871:9;11882:6;11847:15;:42::i;:::-;11741:148;;;11838:6;11741:148;11909:12;;11719:170;;-1:-1:-1;;;;11909:12:0;;;;:50;;;;-1:-1:-1;;;;;;11926:33:0;;;;;;:22;:33;;;;;;;;11925:34;11909:50;11906:131;;;12027:9;;11986:37;12011:11;11986:20;11996:9;-1:-1:-1;;;;;13539:18:0;13512:7;13539:18;;;:9;:18;;;;;;;13446:119;11986:20;:24;;:37::i;:::-;:50;;11978:59;;;;;;12081:12;;12054:22;;-1:-1:-1;;;12081:12:0;;;;12080:13;:38;;;;-1:-1:-1;;;;;;12097:21:0;;;;;;:13;:21;;;;;;;;12080:38;12079:75;;12148:6;12079:75;;;12122:23;:6;12133:11;12122:10;:23::i;:::-;12054:100;;12189:61;12211:14;12189:61;;;;;;;;;;;;;-1:-1:-1;;;12189:61:0;;;:9;:17;12199:6;-1:-1:-1;;;;;12189:17:0;-1:-1:-1;;;;;12189:17:0;;;;;;;;;;;;;:21;;:61;;;;;:::i;:::-;-1:-1:-1;;;;;12169:17:0;;;;;;;:9;:17;;;;;;:81;;;;12288:20;;;;;;;:37;;12313:11;12288:24;:37::i;:::-;-1:-1:-1;;;;;12265:20:0;;;;;;;:9;:20;;;;;;;:60;;;;12345:40;;;;;;;;;;12373:11;1361:25:1;;1349:2;1334:18;;1215:177;12345:40:0;;;;;;;;12407:4;12400:11;;;;;;;;1557:192;1643:7;1679:12;1671:6;;;;1663:29;;;;-1:-1:-1;;;1663:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1703:9:0;1715:5;1719:1;1715;:5;:::i;:::-;1703:17;1557:192;-1:-1:-1;;;;;1557:192:0:o;13581:333::-;13714:53;;;;;;;;;;;-1:-1:-1;;;13714:53:0;;;;;;;;-1:-1:-1;;;;;13714:17:0;;13677:4;13714:17;;;:9;:17;;;;;;;:53;;13736:6;;13714:21;:53::i;:::-;-1:-1:-1;;;;;13694:17:0;;;;;;;:9;:17;;;;;;:73;;;;13801:20;;;;;;;:32;;13826:6;13801:24;:32::i;:::-;-1:-1:-1;;;;;13778:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13849:35;;;;;;;;;;13877:6;1361:25:1;;1349:2;1334:18;;1215:177;13849:35:0;;;;;;;;-1:-1:-1;13902:4:0;13581:333;;;;;:::o;9787:851::-;6933:8;:15;;-1:-1:-1;;;;6933:15:0;-1:-1:-1;;;6933:15:0;;;:8;9899:11;9885:8:::1;::::0;6933:15;;9873:45:::1;::::0;9916:1:::1;::::0;9873:38:::1;::::0;;;:7;;:11:::1;:21::i;:::-;:25:::0;::::1;:38::i;:45::-;9851:67:::0;-1:-1:-1;9929:20:0::1;9952:24;:7:::0;9851:67;9952:11:::1;:24::i;:::-;9929:47;;9989:30;10006:12;9989:16;:30::i;:::-;10124:8;::::0;10052:21:::1;::::0;10030:19:::1;::::0;10108:32:::1;::::0;10124:15:::1;::::0;10137:1:::1;10124:12;:15::i;:::-;10108:11;::::0;;:15:::1;:32::i;:::-;10086:54;;10161:26;10190:49;10237:1;10190:42;10220:11;10190:25;10206:8;;10190:11;:15;;:25;;;;:::i;:49::-;10161:78;;10250:28;10281:43;10312:11;10281:26;10297:9;;10281:11;:15;;:26;;;;:::i;:43::-;10250:74:::0;-1:-1:-1;10335:26:0::1;10364:61;10250:74:::0;10364:35:::1;:11:::0;10380:18;10364:15:::1;:35::i;:::-;:39:::0;::::1;:61::i;:::-;10335:90:::0;-1:-1:-1;10441:22:0;;10438:88:::1;;10490:15;::::0;10478:48:::1;::::0;-1:-1:-1;;;;;10490:15:0::1;10507:18:::0;10478:11:::1;:48::i;:::-;10542:24:::0;;10539:91:::1;;10593:14;::::0;10581:49:::1;::::0;-1:-1:-1;;;;;10593:14:0::1;10609:20:::0;10581:11:::1;:49::i;:::-;-1:-1:-1::0;;6971:8:0;:16;;-1:-1:-1;;;;6971:16:0;;;-1:-1:-1;;;;;;9787:851:0:o;13922:628::-;-1:-1:-1;;;;;14091:24:0;;14016:7;14091:24;;;:16;:24;;;;;;14016:7;;14091:24;;14088:221;;;14144:33;14173:3;14144:24;14155:12;;14144:6;:10;;:24;;;;:::i;:33::-;14132:45;;14088:221;;;-1:-1:-1;;;;;14207:27:0;;;;;;:16;:27;;;;;;;;14204:105;;;14263:34;14293:3;14263:25;14274:13;;14263:6;:10;;:25;;;;:::i;:34::-;14251:46;;14204:105;14332:13;;14329:173;;14407:4;14389:24;;;;:9;:24;;;;;;:39;;14418:9;14389:28;:39::i;:::-;14380:4;14362:24;;;;:9;:24;;;;;;;:66;;;;14448:42;;-1:-1:-1;;;;;14448:42:0;;;;;;;14480:9;1361:25:1;;1349:2;1334:18;;1215:177;14448:42:0;;;;;;;;14329:173;14521:21;:6;14532:9;14521:10;:21::i;1212:187::-;1270:7;;1302:5;1306:1;1302;:5;:::i;:::-;1290:17;;1331:1;1326;:6;;1318:52;;;;-1:-1:-1;;;1318:52:0;;6903:2:1;1318:52:0;;;6885:21:1;6942:2;6922:18;;;6915:30;6981:34;6961:18;;;6954:62;-1:-1:-1;;;7032:18:1;;;7025:31;7073:19;;1318:52:0;6701:397:1;1407:142:0;1465:7;1492:49;1496:1;1499;1492:49;;;;;;;;;;;;;;;;;:3;:49::i;1757:256::-;1815:7;1839:1;1844;1839:6;1835:47;;-1:-1:-1;1869:1:0;1862:8;;1835:47;1894:9;1906:5;1910:1;1906;:5;:::i;:::-;1894:17;-1:-1:-1;1939:1:0;1930:5;1934:1;1894:17;1930:5;:::i;:::-;:10;1922:62;;;;-1:-1:-1;;;1922:62:0;;7700:2:1;1922:62:0;;;7682:21:1;7739:2;7719:18;;;7712:30;7778:34;7758:18;;;7751:62;-1:-1:-1;;;7829:18:1;;;7822:37;7876:19;;1922:62:0;7498:403:1;2021:138:0;2079:7;2106:45;2110:1;2113;2106:45;;;;;;;;;;;;;;;;;:3;:45::i;8993:544::-;9083:16;;;9097:1;9083:16;;;;;;;;9059:21;;9083:16;;;;;;;;;;-1:-1:-1;9083:16:0;9059:40;;9128:4;9110;9115:1;9110:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9110:23:0;;;:7;;;;;;;;;;:23;;;;9154:13;;:20;;;-1:-1:-1;;;9154:20:0;;;;:13;;;;;:18;;:20;;;;;9110:7;;9154:20;;;;;:13;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9144:4;9149:1;9144:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9144:30:0;;;:7;;;;;;;;;:30;9219:13;;9187:60;;9204:4;;9219:13;9235:11;9187:8;:60::i;:::-;9291:13;;:238;;-1:-1:-1;;;9291:238:0;;-1:-1:-1;;;;;9291:13:0;;;;:64;;:238;;9370:11;;9291:13;;9440:4;;9467;;9503:15;;9291:238;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9048:489;8993:544;:::o;14562:117::-;14645:26;;-1:-1:-1;;;;;14645:18:0;;;:26;;;;;14664:6;;14645:26;;;;14664:6;14645:18;:26;;;;;;;;;;;;;;;;;;;;;14562:117;;:::o;2167:189::-;2253:7;2288:12;2281:5;2273:28;;;;-1:-1:-1;;;2273:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2312:9:0;2324:5;2328:1;2324;:5;:::i;206:548:1:-;318:4;347:2;376;365:9;358:21;408:6;402:13;451:6;446:2;435:9;431:18;424:34;476:1;486:140;500:6;497:1;494:13;486:140;;;595:14;;;591:23;;585:30;561:17;;;580:2;557:26;550:66;515:10;;486:140;;;490:3;675:1;670:2;661:6;650:9;646:22;642:31;635:42;745:2;738;734:7;729:2;721:6;717:15;713:29;702:9;698:45;694:54;686:62;;;;206:548;;;;:::o;759:131::-;-1:-1:-1;;;;;834:31:1;;824:42;;814:70;;880:1;877;870:12;814:70;759:131;:::o;895:315::-;963:6;971;1024:2;1012:9;1003:7;999:23;995:32;992:52;;;1040:1;1037;1030:12;992:52;1079:9;1066:23;1098:31;1123:5;1098:31;:::i;:::-;1148:5;1200:2;1185:18;;;;1172:32;;-1:-1:-1;;;895:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2733:388::-;2801:6;2809;2862:2;2850:9;2841:7;2837:23;2833:32;2830:52;;;2878:1;2875;2868:12;2830:52;2917:9;2904:23;2936:31;2961:5;2936:31;:::i;:::-;2986:5;-1:-1:-1;3043:2:1;3028:18;;3015:32;3056:33;3015:32;3056:33;:::i;:::-;3108:7;3098:17;;;2733:388;;;;;:::o;3126:380::-;3205:1;3201:12;;;;3248;;;3269:61;;3323:4;3315:6;3311:17;3301:27;;3269:61;3376:2;3368:6;3365:14;3345:18;3342:38;3339:161;;3422:10;3417:3;3413:20;3410:1;3403:31;3457:4;3454:1;3447:15;3485:4;3482:1;3475:15;3339:161;;3126:380;;;:::o;3511:356::-;3713:2;3695:21;;;3732:18;;;3725:30;3791:34;3786:2;3771:18;;3764:62;3858:2;3843:18;;3511:356::o;6306:127::-;6367:10;6362:3;6358:20;6355:1;6348:31;6398:4;6395:1;6388:15;6422:4;6419:1;6412:15;6438:128;6505:9;;;6526:11;;;6523:37;;;6540:18;;:::i;6571:125::-;6636:9;;;6657:10;;;6654:36;;;6670:18;;:::i;7103:168::-;7176:9;;;7207;;7224:15;;;7218:22;;7204:37;7194:71;;7245:18;;:::i;7276:217::-;7316:1;7342;7332:132;;7386:10;7381:3;7377:20;7374:1;7367:31;7421:4;7418:1;7411:15;7449:4;7446:1;7439:15;7332:132;-1:-1:-1;7478:9:1;;7276:217::o;8038:127::-;8099:10;8094:3;8090:20;8087:1;8080:31;8130:4;8127:1;8120:15;8154:4;8151:1;8144:15;8170:251;8240:6;8293:2;8281:9;8272:7;8268:23;8264:32;8261:52;;;8309:1;8306;8299:12;8261:52;8341:9;8335:16;8360:31;8385:5;8360:31;:::i;8426:980::-;8688:4;8736:3;8725:9;8721:19;8767:6;8756:9;8749:25;8793:2;8831:6;8826:2;8815:9;8811:18;8804:34;8874:3;8869:2;8858:9;8854:18;8847:31;8898:6;8933;8927:13;8964:6;8956;8949:22;9002:3;8991:9;8987:19;8980:26;;9041:2;9033:6;9029:15;9015:29;;9062:1;9072:195;9086:6;9083:1;9080:13;9072:195;;;9151:13;;-1:-1:-1;;;;;9147:39:1;9135:52;;9242:15;;;;9207:12;;;;9183:1;9101:9;9072:195;;;-1:-1:-1;;;;;;;9323:32:1;;;;9318:2;9303:18;;9296:60;-1:-1:-1;;;9387:3:1;9372:19;9365:35;9284:3;8426:980;-1:-1:-1;;;8426:980:1:o
Swarm Source
ipfs://4d090f423e5e055b203f22146cce29d1354d4031a5e904cb022f5d38d4de792d
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.