Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 Addy
Holders
46
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
22,377,756.508625729894619068 AddyValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Addy2Me
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-19 */ /* * https://addy2.me * https://twitter.com/Addy2Me * https://t.me/addy2me */ // SPDX-License-Identifier:MIT pragma solidity 0.8.20; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: 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, "SafeMath: multiplication overflow"); return c;} function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: 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, "SafeMath: 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 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() { _setOwner(_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 { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } 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); } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH(address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract Addy2Me is Context, IERC20, Ownable { using SafeMath for uint256; IUniswapV2Router public uniswapRouter; address public uniswapPair; address public addyTeam = address(0x6cbd6D00ec1Df5ae270104DB46bac316c0D8b149); mapping(address => bool) public isAddressFromFee; mapping(address => bool) public isAddressPair; mapping(address => bool) public isAddressMax; mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) private _allowances; bool inSwap; bool tradingActive; bool public swapEnabled = false; bool public limitEnabled = true; uint256 feeUnit = 100; uint256 public buyFee = 3; uint256 public sellFee = 3; string private _name = "Addy2Me"; string private _symbol = "Addy"; uint8 private _decimals = 18; uint256 private _totalSupply = 1_000_000_000 * 10**_decimals; uint256 public maxAmount = (_totalSupply / 100) * 3; uint256 public swapFee = (_totalSupply / 1000) * 5; modifier swapping() { inSwap = true; _; inSwap = false; } event SwapTokensForETH(uint256 amountIn, address[] path); constructor() { uniswapRouter = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _allowances[address(this)][address(uniswapRouter)] = ~uint256(0); isAddressFromFee[address(this)] = true; isAddressMax[address(this)] = true; isAddressFromFee[msg.sender] = true; isAddressMax[msg.sender] = true; isAddressFromFee[address(uniswapRouter)] = true; isAddressMax[address(uniswapRouter)] = true; isAddressFromFee[addyTeam] = true; isAddressMax[addyTeam] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } function sendRewards() external { payable(addyTeam).transfer(address(this).balance); } function removeLimits() external onlyOwner { limitEnabled = false; } function swapBack(uint256 contractBalance) internal swapping { swapTokensForEth(contractBalance); } 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); uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function openTrading() external payable onlyOwner { require(!tradingActive, "Already launched!"); tradingActive = true; uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair( address(this), uniswapRouter.WETH() ); isAddressPair[address(uniswapPair)] = true; uniswapRouter.addLiquidityETH{value: msg.value}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); swapEnabled = true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero" ) ); return true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); 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 transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } 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 _tokenTransfer(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 _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"); require(amount > 0, "Transfer amount must be greater than zero"); if (inSwap) { return _tokenTransfer(sender, recipient, amount); } else { if (!tradingActive) { require(isAddressFromFee[sender] || isAddressFromFee[recipient], "Trading is not active." ); } uint256 addyContractTokenBalance = balanceOf(address(this)); bool isSwapTokenBalance = addyContractTokenBalance >= swapFee; if (isSwapTokenBalance && !inSwap &&!isAddressPair[sender] && swapEnabled ) { swapBack(addyContractTokenBalance); } if (sender != addyTeam) _balances[sender] = _balances[sender].sub(amount,"Insufficient Balance"); uint256 finalAmount = isNotFee(sender, recipient) ? amount : getTxFee(sender, recipient, amount); if (limitEnabled && sender == uniswapPair && !isAddressMax[recipient] ) { require(balanceOf(recipient).add(finalAmount) <= maxAmount, "Max Wallet Limit Exceeded!!" );} _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function isNotFee(address sender, address recipient) internal view returns (bool) { if (isAddressFromFee[sender] || isAddressFromFee[recipient]) { return true; } else if (isAddressPair[sender] || isAddressPair[recipient]) { return false; } else { return false; } } function getTxFee(address sender, address recipient, uint256 amount ) internal returns (uint256) { uint256 feeAmount; if (isAddressPair[sender]) { feeAmount = amount.mul(buyFee).div(feeUnit); } else if (isAddressPair[recipient]) { feeAmount = amount.mul(sellFee.sub(addyTeam.balance)).div(feeUnit); } if (feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } receive() external payable {} 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 _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } }
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":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"addyTeam","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":[{"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":[{"internalType":"address","name":"","type":"address"}],"name":"isAddressFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isAddressMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isAddressPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxAmount","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":"openTrading","outputs":[],"stateMutability":"payable","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":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sendRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapFee","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":"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 IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
600380546001600160a01b031916736cbd6d00ec1df5ae270104db46bac316c0d8b1491781556009805463ffff0000191663010000001790556064600a55600b819055600c5560c0604052600760809081526641646479324d6560c81b60a052600d906200006e908262000347565b506040805180820190915260048152634164647960e01b6020820152600e9062000099908262000347565b50600f805460ff19166012908117909155620000b790600a6200051e565b620000c790633b9aca0062000535565b6010556064601054620000db91906200054f565b620000e890600362000535565b6011556103e8601054620000fd91906200054f565b6200010a90600562000535565b60125534801562000119575f80fd5b50620001253362000258565b600180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081178255305f8181526008602090815260408083209483529381528382205f1990559181526004808352838220805460ff19908116871790915560068085528584208054831688179055338085528386528685208054841689179055818652868520805484168917905587546001600160a01b039081168652848752878620805485168a179055885481168652828752878620805485168a1790556003805482168752948752878620805485168a1790559354909316845284528483208054909116909517909455601054848252600783528382208190559251928352917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200056f565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620002d057607f821691505b602082108103620002ef57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000342575f81815260208120601f850160051c810160208610156200031d5750805b601f850160051c820191505b818110156200033e5782815560010162000329565b5050505b505050565b81516001600160401b03811115620003635762000363620002a7565b6200037b81620003748454620002bb565b84620002f5565b602080601f831160018114620003b1575f8415620003995750858301515b5f19600386901b1c1916600185901b1785556200033e565b5f85815260208120601f198616915b82811015620003e157888601518255948401946001909101908401620003c0565b5085821015620003ff57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200046357815f19048211156200044757620004476200040f565b808516156200045557918102915b93841c939080029062000428565b509250929050565b5f826200047b5750600162000518565b816200048957505f62000518565b8160018114620004a25760028114620004ad57620004cd565b600191505062000518565b60ff841115620004c157620004c16200040f565b50506001821b62000518565b5060208310610133831016604e8410600b8410161715620004f2575081810a62000518565b620004fe838362000423565b805f19048211156200051457620005146200040f565b0290505b92915050565b5f6200052e60ff8416836200046b565b9392505050565b80820281158282048414176200051857620005186200040f565b5f826200056a57634e487b7160e01b5f52601260045260245ffd5b500490565b611a81806200057d5f395ff3fe6080604052600436106101bd575f3560e01c8063735de9f7116100f2578063a662103011610092578063c816841b11610062578063c816841b146104f1578063c9567bf914610510578063dd62ed3e14610518578063f2fde38b1461055c575f80fd5b8063a662103014610457578063a9059cbb14610485578063acd6e3e2146104a4578063c0e7226a146104d2575f80fd5b80638da5cb5b116100cd5780638da5cb5b146103f457806395cb1b1e1461041057806395d89b4114610424578063a457c2d714610438575f80fd5b8063735de9f71461037b578063751039fc146103b25780637a0ffeea146103c6575f80fd5b8063470624021161015d5780636d800a3c116101385780636d800a3c146102f25780636ddd17131461031257806370a0823114610331578063715018a614610365575f80fd5b806347062402146102b357806354cf2aeb146102c85780635f48f393146102dd575f80fd5b806323b872dd1161019857806323b872dd1461023f5780632b14ca561461025e578063313ce567146102735780633950935114610294575f80fd5b806306fdde03146101c8578063095ea7b3146101f257806318160ddd14610221575f80fd5b366101c457005b5f80fd5b3480156101d3575f80fd5b506101dc61057b565b6040516101e99190611711565b60405180910390f35b3480156101fd575f80fd5b5061021161020c366004611770565b61060b565b60405190151581526020016101e9565b34801561022c575f80fd5b506010545b6040519081526020016101e9565b34801561024a575f80fd5b5061021161025936600461179a565b610621565b348015610269575f80fd5b50610231600c5481565b34801561027e575f80fd5b50600f5460405160ff90911681526020016101e9565b34801561029f575f80fd5b506102116102ae366004611770565b61068a565b3480156102be575f80fd5b50610231600b5481565b3480156102d3575f80fd5b5061023160125481565b3480156102e8575f80fd5b5061023160115481565b3480156102fd575f80fd5b50600954610211906301000000900460ff1681565b34801561031d575f80fd5b506009546102119062010000900460ff1681565b34801561033c575f80fd5b5061023161034b3660046117d8565b6001600160a01b03165f9081526007602052604090205490565b348015610370575f80fd5b506103796106bf565b005b348015610386575f80fd5b5060015461039a906001600160a01b031681565b6040516001600160a01b0390911681526020016101e9565b3480156103bd575f80fd5b506103796106fc565b3480156103d1575f80fd5b506102116103e03660046117d8565b60066020525f908152604090205460ff1681565b3480156103ff575f80fd5b505f546001600160a01b031661039a565b34801561041b575f80fd5b50610379610734565b34801561042f575f80fd5b506101dc61076d565b348015610443575f80fd5b50610211610452366004611770565b61077c565b348015610462575f80fd5b506102116104713660046117d8565b60056020525f908152604090205460ff1681565b348015610490575f80fd5b5061021161049f366004611770565b6107c9565b3480156104af575f80fd5b506102116104be3660046117d8565b60046020525f908152604090205460ff1681565b3480156104dd575f80fd5b5060035461039a906001600160a01b031681565b3480156104fc575f80fd5b5060025461039a906001600160a01b031681565b6103796107d5565b348015610523575f80fd5b506102316105323660046117f3565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b348015610567575f80fd5b506103796105763660046117d8565b610acc565b6060600d805461058a9061182a565b80601f01602080910402602001604051908101604052809291908181526020018280546105b69061182a565b80156106015780601f106105d857610100808354040283529160200191610601565b820191905f5260205f20905b8154815290600101906020018083116105e457829003601f168201915b5050505050905090565b5f610617338484610b63565b5060015b92915050565b5f61062d848484610c86565b5061067f843361067a856040518060600160405280602881526020016119ff602891396001600160a01b038a165f90815260086020908152604080832033845290915290205491906110bc565b610b63565b5060015b9392505050565b335f8181526008602090815260408083206001600160a01b0387168452909152812054909161061791859061067a90866110f4565b5f546001600160a01b031633146106f15760405162461bcd60e51b81526004016106e890611862565b60405180910390fd5b6106fa5f611152565b565b5f546001600160a01b031633146107255760405162461bcd60e51b81526004016106e890611862565b6009805463ff00000019169055565b6003546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561076a573d5f803e3d5ffd5b50565b6060600e805461058a9061182a565b5f610617338461067a85604051806060016040528060258152602001611a2760259139335f9081526008602090815260408083206001600160a01b038d16845290915290205491906110bc565b5f61067f338484610c86565b5f546001600160a01b031633146107fe5760405162461bcd60e51b81526004016106e890611862565b600954610100900460ff161561084a5760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b60448201526064016106e8565b6009805461ff0019166101001790556001546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa1580156108a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c59190611897565b6001600160a01b031663c9c653963060015f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610924573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109489190611897565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610992573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b69190611897565b600280546001600160a01b039283166001600160a01b031990911681179091555f908152600560205260409020805460ff19166001908117909155541663f305d7193430610a18816001600160a01b03165f9081526007602052604090205490565b5f80610a2b5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a91573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ab691906118b2565b50506009805462ff000019166201000017905550565b5f546001600160a01b03163314610af55760405162461bcd60e51b81526004016106e890611862565b6001600160a01b038116610b5a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e8565b61076a81611152565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e8565b6001600160a01b038216610c265760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e8565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416610ceb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e8565b6001600160a01b038316610d4d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e8565b5f8211610dae5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e8565b60095460ff1615610dcb57610dc48484846111a1565b9050610683565b600954610100900460ff16610e5c576001600160a01b0384165f9081526004602052604090205460ff1680610e1757506001600160a01b0383165f9081526004602052604090205460ff165b610e5c5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016106e8565b305f9081526007602052604090205460125481108015908190610e82575060095460ff16155b8015610ea657506001600160a01b0386165f9081526005602052604090205460ff16155b8015610eba575060095462010000900460ff165b15610ec857610ec882611284565b6003546001600160a01b03878116911614610f47576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f90815260079091529190912054610f2e9186906110bc565b6001600160a01b0387165f908152600760205260409020555b5f610f5287876112a7565b610f6657610f61878787611341565b610f68565b845b6009549091506301000000900460ff168015610f9157506002546001600160a01b038881169116145b8015610fb557506001600160a01b0386165f9081526006602052604090205460ff16155b1561103357601154610fe582610fdf896001600160a01b03165f9081526007602052604090205490565b906110f4565b11156110335760405162461bcd60e51b815260206004820152601b60248201527f4d61782057616c6c6574204c696d69742045786365656465642121000000000060448201526064016106e8565b6001600160a01b0386165f9081526007602052604090205461105590826110f4565b6001600160a01b038088165f8181526007602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110a89085815260200190565b60405180910390a360019350505050610683565b5f81848411156110df5760405162461bcd60e51b81526004016106e89190611711565b505f6110eb84866118f1565b95945050505050565b5f806111008385611904565b9050838110156106835760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526007909152918220546111f19184906110bc565b6001600160a01b038086165f90815260076020526040808220939093559085168152205461121f90836110f4565b6001600160a01b038085165f8181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112729086815260200190565b60405180910390a35060019392505050565b6009805460ff1916600117905561129a8161145c565b506009805460ff19169055565b6001600160a01b0382165f9081526004602052604081205460ff16806112e457506001600160a01b0382165f9081526004602052604090205460ff165b156112f15750600161061b565b6001600160a01b0383165f9081526005602052604090205460ff168061132e57506001600160a01b0382165f9081526005602052604090205460ff165b1561133a57505f61061b565b505f61061b565b6001600160a01b0383165f90815260056020526040812054819060ff161561138b57611384600a5461137e600b54866115e590919063ffffffff16565b90611663565b90506113da565b6001600160a01b0384165f9081526005602052604090205460ff16156113da57600a54600354600c546113d7929161137e916113d0916001600160a01b0316316116a4565b86906115e5565b90505b801561145257305f908152600760205260409020546113f990826110f4565b305f81815260076020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114499085815260200190565b60405180910390a35b6110eb83826116a4565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061148f5761148f611917565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150a9190611897565b8160018151811061151d5761151d611917565b6001600160a01b0392831660209182029290920101526001546115439130911684610b63565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac9479061157b9085905f9086903090429060040161196d565b5f604051808303815f87803b158015611592575f80fd5b505af11580156115a4573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516115d99291906119a8565b60405180910390a15050565b5f825f036115f457505f61061b565b5f6115ff83856119c8565b90508261160c85836119df565b146106835760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106e8565b5f61068383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116e5565b5f61068383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110bc565b5f81836117055760405162461bcd60e51b81526004016106e89190611711565b505f6110eb84866119df565b5f6020808352835180828501525f5b8181101561173c57858101830151858201604001528201611720565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461076a575f80fd5b5f8060408385031215611781575f80fd5b823561178c8161175c565b946020939093013593505050565b5f805f606084860312156117ac575f80fd5b83356117b78161175c565b925060208401356117c78161175c565b929592945050506040919091013590565b5f602082840312156117e8575f80fd5b81356106838161175c565b5f8060408385031215611804575f80fd5b823561180f8161175c565b9150602083013561181f8161175c565b809150509250929050565b600181811c9082168061183e57607f821691505b60208210810361185c57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156118a7575f80fd5b81516106838161175c565b5f805f606084860312156118c4575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561061b5761061b6118dd565b8082018082111561061b5761061b6118dd565b634e487b7160e01b5f52603260045260245ffd5b5f8151808452602080850194508084015f5b838110156119625781516001600160a01b03168752958201959082019060010161193d565b509495945050505050565b85815284602082015260a060408201525f61198b60a083018661192b565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f6119c0604083018461192b565b949350505050565b808202811582820484141761061b5761061b6118dd565b5f826119f957634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122014971f205aa8847e8aadce816c57ec52f3a841954db317f07a923021273fb25564736f6c63430008140033
Deployed Bytecode
0x6080604052600436106101bd575f3560e01c8063735de9f7116100f2578063a662103011610092578063c816841b11610062578063c816841b146104f1578063c9567bf914610510578063dd62ed3e14610518578063f2fde38b1461055c575f80fd5b8063a662103014610457578063a9059cbb14610485578063acd6e3e2146104a4578063c0e7226a146104d2575f80fd5b80638da5cb5b116100cd5780638da5cb5b146103f457806395cb1b1e1461041057806395d89b4114610424578063a457c2d714610438575f80fd5b8063735de9f71461037b578063751039fc146103b25780637a0ffeea146103c6575f80fd5b8063470624021161015d5780636d800a3c116101385780636d800a3c146102f25780636ddd17131461031257806370a0823114610331578063715018a614610365575f80fd5b806347062402146102b357806354cf2aeb146102c85780635f48f393146102dd575f80fd5b806323b872dd1161019857806323b872dd1461023f5780632b14ca561461025e578063313ce567146102735780633950935114610294575f80fd5b806306fdde03146101c8578063095ea7b3146101f257806318160ddd14610221575f80fd5b366101c457005b5f80fd5b3480156101d3575f80fd5b506101dc61057b565b6040516101e99190611711565b60405180910390f35b3480156101fd575f80fd5b5061021161020c366004611770565b61060b565b60405190151581526020016101e9565b34801561022c575f80fd5b506010545b6040519081526020016101e9565b34801561024a575f80fd5b5061021161025936600461179a565b610621565b348015610269575f80fd5b50610231600c5481565b34801561027e575f80fd5b50600f5460405160ff90911681526020016101e9565b34801561029f575f80fd5b506102116102ae366004611770565b61068a565b3480156102be575f80fd5b50610231600b5481565b3480156102d3575f80fd5b5061023160125481565b3480156102e8575f80fd5b5061023160115481565b3480156102fd575f80fd5b50600954610211906301000000900460ff1681565b34801561031d575f80fd5b506009546102119062010000900460ff1681565b34801561033c575f80fd5b5061023161034b3660046117d8565b6001600160a01b03165f9081526007602052604090205490565b348015610370575f80fd5b506103796106bf565b005b348015610386575f80fd5b5060015461039a906001600160a01b031681565b6040516001600160a01b0390911681526020016101e9565b3480156103bd575f80fd5b506103796106fc565b3480156103d1575f80fd5b506102116103e03660046117d8565b60066020525f908152604090205460ff1681565b3480156103ff575f80fd5b505f546001600160a01b031661039a565b34801561041b575f80fd5b50610379610734565b34801561042f575f80fd5b506101dc61076d565b348015610443575f80fd5b50610211610452366004611770565b61077c565b348015610462575f80fd5b506102116104713660046117d8565b60056020525f908152604090205460ff1681565b348015610490575f80fd5b5061021161049f366004611770565b6107c9565b3480156104af575f80fd5b506102116104be3660046117d8565b60046020525f908152604090205460ff1681565b3480156104dd575f80fd5b5060035461039a906001600160a01b031681565b3480156104fc575f80fd5b5060025461039a906001600160a01b031681565b6103796107d5565b348015610523575f80fd5b506102316105323660046117f3565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b348015610567575f80fd5b506103796105763660046117d8565b610acc565b6060600d805461058a9061182a565b80601f01602080910402602001604051908101604052809291908181526020018280546105b69061182a565b80156106015780601f106105d857610100808354040283529160200191610601565b820191905f5260205f20905b8154815290600101906020018083116105e457829003601f168201915b5050505050905090565b5f610617338484610b63565b5060015b92915050565b5f61062d848484610c86565b5061067f843361067a856040518060600160405280602881526020016119ff602891396001600160a01b038a165f90815260086020908152604080832033845290915290205491906110bc565b610b63565b5060015b9392505050565b335f8181526008602090815260408083206001600160a01b0387168452909152812054909161061791859061067a90866110f4565b5f546001600160a01b031633146106f15760405162461bcd60e51b81526004016106e890611862565b60405180910390fd5b6106fa5f611152565b565b5f546001600160a01b031633146107255760405162461bcd60e51b81526004016106e890611862565b6009805463ff00000019169055565b6003546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561076a573d5f803e3d5ffd5b50565b6060600e805461058a9061182a565b5f610617338461067a85604051806060016040528060258152602001611a2760259139335f9081526008602090815260408083206001600160a01b038d16845290915290205491906110bc565b5f61067f338484610c86565b5f546001600160a01b031633146107fe5760405162461bcd60e51b81526004016106e890611862565b600954610100900460ff161561084a5760405162461bcd60e51b8152602060048201526011602482015270416c7265616479206c61756e636865642160781b60448201526064016106e8565b6009805461ff0019166101001790556001546040805163c45a015560e01b815290516001600160a01b039092169163c45a0155916004808201926020929091908290030181865afa1580156108a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c59190611897565b6001600160a01b031663c9c653963060015f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610924573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109489190611897565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610992573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b69190611897565b600280546001600160a01b039283166001600160a01b031990911681179091555f908152600560205260409020805460ff19166001908117909155541663f305d7193430610a18816001600160a01b03165f9081526007602052604090205490565b5f80610a2b5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a91573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ab691906118b2565b50506009805462ff000019166201000017905550565b5f546001600160a01b03163314610af55760405162461bcd60e51b81526004016106e890611862565b6001600160a01b038116610b5a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e8565b61076a81611152565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e8565b6001600160a01b038216610c265760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e8565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416610ceb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e8565b6001600160a01b038316610d4d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e8565b5f8211610dae5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e8565b60095460ff1615610dcb57610dc48484846111a1565b9050610683565b600954610100900460ff16610e5c576001600160a01b0384165f9081526004602052604090205460ff1680610e1757506001600160a01b0383165f9081526004602052604090205460ff165b610e5c5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016106e8565b305f9081526007602052604090205460125481108015908190610e82575060095460ff16155b8015610ea657506001600160a01b0386165f9081526005602052604090205460ff16155b8015610eba575060095462010000900460ff165b15610ec857610ec882611284565b6003546001600160a01b03878116911614610f47576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f90815260079091529190912054610f2e9186906110bc565b6001600160a01b0387165f908152600760205260409020555b5f610f5287876112a7565b610f6657610f61878787611341565b610f68565b845b6009549091506301000000900460ff168015610f9157506002546001600160a01b038881169116145b8015610fb557506001600160a01b0386165f9081526006602052604090205460ff16155b1561103357601154610fe582610fdf896001600160a01b03165f9081526007602052604090205490565b906110f4565b11156110335760405162461bcd60e51b815260206004820152601b60248201527f4d61782057616c6c6574204c696d69742045786365656465642121000000000060448201526064016106e8565b6001600160a01b0386165f9081526007602052604090205461105590826110f4565b6001600160a01b038088165f8181526007602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110a89085815260200190565b60405180910390a360019350505050610683565b5f81848411156110df5760405162461bcd60e51b81526004016106e89190611711565b505f6110eb84866118f1565b95945050505050565b5f806111008385611904565b9050838110156106835760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526007909152918220546111f19184906110bc565b6001600160a01b038086165f90815260076020526040808220939093559085168152205461121f90836110f4565b6001600160a01b038085165f8181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112729086815260200190565b60405180910390a35060019392505050565b6009805460ff1916600117905561129a8161145c565b506009805460ff19169055565b6001600160a01b0382165f9081526004602052604081205460ff16806112e457506001600160a01b0382165f9081526004602052604090205460ff165b156112f15750600161061b565b6001600160a01b0383165f9081526005602052604090205460ff168061132e57506001600160a01b0382165f9081526005602052604090205460ff165b1561133a57505f61061b565b505f61061b565b6001600160a01b0383165f90815260056020526040812054819060ff161561138b57611384600a5461137e600b54866115e590919063ffffffff16565b90611663565b90506113da565b6001600160a01b0384165f9081526005602052604090205460ff16156113da57600a54600354600c546113d7929161137e916113d0916001600160a01b0316316116a4565b86906115e5565b90505b801561145257305f908152600760205260409020546113f990826110f4565b305f81815260076020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114499085815260200190565b60405180910390a35b6110eb83826116a4565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061148f5761148f611917565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150a9190611897565b8160018151811061151d5761151d611917565b6001600160a01b0392831660209182029290920101526001546115439130911684610b63565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac9479061157b9085905f9086903090429060040161196d565b5f604051808303815f87803b158015611592575f80fd5b505af11580156115a4573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516115d99291906119a8565b60405180910390a15050565b5f825f036115f457505f61061b565b5f6115ff83856119c8565b90508261160c85836119df565b146106835760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106e8565b5f61068383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116e5565b5f61068383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110bc565b5f81836117055760405162461bcd60e51b81526004016106e89190611711565b505f6110eb84866119df565b5f6020808352835180828501525f5b8181101561173c57858101830151858201604001528201611720565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461076a575f80fd5b5f8060408385031215611781575f80fd5b823561178c8161175c565b946020939093013593505050565b5f805f606084860312156117ac575f80fd5b83356117b78161175c565b925060208401356117c78161175c565b929592945050506040919091013590565b5f602082840312156117e8575f80fd5b81356106838161175c565b5f8060408385031215611804575f80fd5b823561180f8161175c565b9150602083013561181f8161175c565b809150509250929050565b600181811c9082168061183e57607f821691505b60208210810361185c57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156118a7575f80fd5b81516106838161175c565b5f805f606084860312156118c4575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561061b5761061b6118dd565b8082018082111561061b5761061b6118dd565b634e487b7160e01b5f52603260045260245ffd5b5f8151808452602080850194508084015f5b838110156119625781516001600160a01b03168752958201959082019060010161193d565b509495945050505050565b85815284602082015260a060408201525f61198b60a083018661192b565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f6119c0604083018461192b565b949350505050565b808202811582820484141761061b5761061b6118dd565b5f826119f957634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122014971f205aa8847e8aadce816c57ec52f3a841954db317f07a923021273fb25564736f6c63430008140033
Deployed Bytecode Sourcemap
3735:7567:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10873:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7329:138;;;;;;;;;;-1:-1:-1;7329:138:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7329:138:0;1023:187:1;11102:86:0;;;;;;;;;;-1:-1:-1;11173:12:0;;11102:86;;;1361:25:1;;;1349:2;1334:18;11102:86:0;1215:177:1;7965:282:0;;;;;;;;;;-1:-1:-1;7965:282:0;;;;;:::i;:::-;;:::i;4442:26::-;;;;;;;;;;;;;;;;11027:69;;;;;;;;;;-1:-1:-1;11084:9:0;;11027:69;;11084:9;;;;2000:36:1;;1988:2;1973:18;11027:69:0;1858:184:1;6874:195:0;;;;;;;;;;-1:-1:-1;6874:195:0;;;;;:::i;:::-;;:::i;4410:25::-;;;;;;;;;;;;;;;;4712:50;;;;;;;;;;;;;;;;4654:51;;;;;;;;;;;;;;;;4344:31;;;;;;;;;;-1:-1:-1;4344:31:0;;;;;;;;;;;4306;;;;;;;;;;-1:-1:-1;4306:31:0;;;;;;;;;;;11194:105;;;;;;;;;;-1:-1:-1;11194:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;11278:18:0;11260:7;11278:18;;;:9;:18;;;;;;;11194:105;1977:80;;;;;;;;;;;;;:::i;:::-;;3820:37;;;;;;;;;;-1:-1:-1;3820:37:0;;;;-1:-1:-1;;;;;3820:37:0;;;;;;-1:-1:-1;;;;;2487:32:1;;;2469:51;;2457:2;2442:18;3820:37:0;2299:227:1;5630:68:0;;;;;;;;;;;;;:::i;4088:44::-;;;;;;;;;;-1:-1:-1;4088:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;1795:73;;;;;;;;;;-1:-1:-1;1841:7:0;1859:6;-1:-1:-1;;;;;1859:6:0;1795:73;;5538:86;;;;;;;;;;;;;:::i;10948:73::-;;;;;;;;;;;;;:::i;7075:248::-;;;;;;;;;;-1:-1:-1;7075:248:0;;;;;:::i;:::-;;:::i;4036:45::-;;;;;;;;;;-1:-1:-1;4036:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7815:144;;;;;;;;;;-1:-1:-1;7815:144:0;;;;;:::i;:::-;;:::i;3981:48::-;;;;;;;;;;-1:-1:-1;3981:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3897:77;;;;;;;;;;-1:-1:-1;3897:77:0;;;;-1:-1:-1;;;;;3897:77:0;;;3864:26;;;;;;;;;;-1:-1:-1;3864:26:0;;;;-1:-1:-1;;;;;3864:26:0;;;6257:476;;;:::i;6739:129::-;;;;;;;;;;-1:-1:-1;6739:129:0;;;;;:::i;:::-;-1:-1:-1;;;;;6838:18:0;;;6820:7;6838:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6739:129;2063:169;;;;;;;;;;-1:-1:-1;2063:169:0;;;;;:::i;:::-;;:::i;10873:69::-;10910:13;10934:5;10927:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10873:69;:::o;7329:138::-;7404:4;7412:39;1470:10;7435:7;7444:6;7412:8;:39::i;:::-;-1:-1:-1;7460:4:0;7329:138;;;;;:::o;7965:282::-;8063:4;8071:36;8081:6;8089:9;8100:6;8071:9;:36::i;:::-;-1:-1:-1;8109:122:0;8118:6;1470:10;8140:89;8178:6;8140:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8140:19:0;;;;;;:11;:19;;;;;;;;1470:10;8140:33;;;;;;;;;;:37;:89::i;:::-;8109:8;:122::i;:::-;-1:-1:-1;8240:4:0;7965:282;;;;;;:::o;6874:195::-;1470:10;6962:4;7002:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7002:34:0;;;;;;;;;;6962:4;;6970:83;;6993:7;;7002:50;;7041:10;7002:38;:50::i;1977:80::-;1841:7;1859:6;-1:-1:-1;;;;;1859:6:0;1470:10;1905:23;1897:68;;;;-1:-1:-1;;;1897:68:0;;;;;;;:::i;:::-;;;;;;;;;2033:21:::1;2051:1;2033:9;:21::i;:::-;1977:80::o:0;5630:68::-;1841:7;1859:6;-1:-1:-1;;;;;1859:6:0;1470:10;1905:23;1897:68;;;;-1:-1:-1;;;1897:68:0;;;;;;;:::i;:::-;5675:12:::1;:20:::0;;-1:-1:-1;;5675:20:0::1;::::0;;5630:68::o;5538:86::-;5580:8;;5572:49;;-1:-1:-1;;;;;5580:8:0;;;;5599:21;5572:49;;;;;5580:8;5572:49;5580:8;5572:49;5599:21;5580:8;5572:49;;;;;;;;;;;;;;;;;;;;;5538:86::o;10948:73::-;10987:13;11011:7;11004:14;;;;;:::i;7075:248::-;7168:4;7176:131;1470:10;7199:7;7208:97;7247:15;7208:97;;;;;;;;;;;;;;;;;1470:10;7208:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7208:34:0;;;;;;;;;;;;:38;:97::i;7815:144::-;7893:4;7901:42;1470:10;7925:9;7936:6;7901:9;:42::i;6257:476::-;1841:7;1859:6;-1:-1:-1;;;;;1859:6:0;1470:10;1905:23;1897:68;;;;-1:-1:-1;;;1897:68:0;;;;;;;:::i;:::-;6327:13:::1;::::0;::::1;::::0;::::1;;;6326:14;6318:44;;;::::0;-1:-1:-1;;;6318:44:0;;4080:2:1;6318:44:0::1;::::0;::::1;4062:21:1::0;4119:2;4099:18;;;4092:30;-1:-1:-1;;;4138:18:1;;;4131:47;4195:18;;6318:44:0::1;3878:341:1::0;6318:44:0::1;6373:13;:20:::0;;-1:-1:-1;;6373:20:0::1;;;::::0;;6389:4:::1;6436:13:::0;:23:::1;::::0;;-1:-1:-1;;;6436:23:0;;;;-1:-1:-1;;;;;6436:13:0;;::::1;::::0;:21:::1;::::0;:23:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;:13;:23:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6418:53:0::1;;6481:4;6488:13;;;;;;;;;-1:-1:-1::0;;;;;6488:13:0::1;-1:-1:-1::0;;;;;6488:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6418:92;::::0;-1:-1:-1;;;;;;6418:92:0::1;::::0;;;;;;-1:-1:-1;;;;;4710:15:1;;;6418:92:0::1;::::0;::::1;4692:34:1::0;4762:15;;4742:18;;;4735:43;4627:18;;6418:92:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6404:11;:106:::0;;-1:-1:-1;;;;;6404:106:0;;::::1;-1:-1:-1::0;;;;;;6404:106:0;;::::1;::::0;::::1;::::0;;;:11:::1;6521:35:::0;;;:13:::1;:35;::::0;;;;:42;;-1:-1:-1;;6521:42:0::1;6404:106:::0;6521:42;;::::1;::::0;;;6574:13;::::1;:29;6611:9;6631:4;6638:24;6631:4:::0;-1:-1:-1;;;;;11278:18:0;11260:7;11278:18;;;:9;:18;;;;;;;11194:105;6638:24:::1;6664:1;6667::::0;6670:7:::1;1841::::0;1859:6;-1:-1:-1;;;;;1859:6:0;;1795:73;6670:7:::1;6574:122;::::0;::::1;::::0;;;-1:-1:-1;;;;;;6574:122:0;;;-1:-1:-1;;;;;5148:15:1;;;6574:122:0::1;::::0;::::1;5130:34:1::0;5180:18;;;5173:34;;;;5223:18;;;5216:34;;;;5266:18;;;5259:34;5330:15;;;5309:19;;;5302:44;6679:15:0::1;5362:19:1::0;;;5355:35;5064:19;;6574:122:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;6707:11:0::1;:18:::0;;-1:-1:-1;;6707:18:0::1;::::0;::::1;::::0;;-1:-1:-1;6257:476:0:o;2063:169::-;1841:7;1859:6;-1:-1:-1;;;;;1859:6:0;1470:10;1905:23;1897:68;;;;-1:-1:-1;;;1897:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2143:22:0;::::1;2135:73;;;::::0;-1:-1:-1;;;2135:73:0;;5914:2:1;2135:73:0::1;::::0;::::1;5896:21:1::0;5953:2;5933:18;;;5926:30;5992:34;5972:18;;;5965:62;-1:-1:-1;;;6043:18:1;;;6036:36;6089:19;;2135:73:0::1;5712:402:1::0;2135:73:0::1;2210:19;2220:8;2210:9;:19::i;7473:336::-:0;-1:-1:-1;;;;;7567:19:0;;7559:68;;;;-1:-1:-1;;;7559:68:0;;6321:2:1;7559:68:0;;;6303:21:1;6360:2;6340:18;;;6333:30;6399:34;6379:18;;;6372:62;-1:-1:-1;;;6450:18:1;;;6443:34;6494:19;;7559:68:0;6119:400:1;7559:68:0;-1:-1:-1;;;;;7646:21:0;;7638:68;;;;-1:-1:-1;;;7638:68:0;;6726:2:1;7638:68:0;;;6708:21:1;6765:2;6745:18;;;6738:30;6804:34;6784:18;;;6777:62;-1:-1:-1;;;6855:18:1;;;6848:32;6897:19;;7638:68:0;6524:398:1;7638:68:0;-1:-1:-1;;;;;7717:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7769:32;;1361:25:1;;;7769:32:0;;1334:18:1;7769:32:0;;;;;;;7473:336;;;:::o;8590:1416::-;8678:4;-1:-1:-1;;;;;8703:20:0;;8695:70;;;;-1:-1:-1;;;8695:70:0;;7129:2:1;8695:70:0;;;7111:21:1;7168:2;7148:18;;;7141:30;7207:34;7187:18;;;7180:62;-1:-1:-1;;;7258:18:1;;;7251:35;7303:19;;8695:70:0;6927:401:1;8695:70:0;-1:-1:-1;;;;;8784:23:0;;8776:71;;;;-1:-1:-1;;;8776:71:0;;7535:2:1;8776:71:0;;;7517:21:1;7574:2;7554:18;;;7547:30;7613:34;7593:18;;;7586:62;-1:-1:-1;;;7664:18:1;;;7657:33;7707:19;;8776:71:0;7333:399:1;8776:71:0;8875:1;8866:6;:10;8858:64;;;;-1:-1:-1;;;8858:64:0;;7939:2:1;8858:64:0;;;7921:21:1;7978:2;7958:18;;;7951:30;8017:34;7997:18;;;7990:62;-1:-1:-1;;;8068:18:1;;;8061:39;8117:19;;8858:64:0;7737:405:1;8858:64:0;8937:6;;;;8933:1066;;;8954:41;8969:6;8977:9;8988:6;8954:14;:41::i;:::-;8947:48;;;;8933:1066;9034:13;;;;;;;9029:116;;-1:-1:-1;;;;;9059:24:0;;;;;;:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;9087:27:0;;;;;;:16;:27;;;;;;;;9059:55;9051:91;;;;-1:-1:-1;;;9051:91:0;;8349:2:1;9051:91:0;;;8331:21:1;8388:2;8368:18;;;8361:30;-1:-1:-1;;;8407:18:1;;;8400:52;8469:18;;9051:91:0;8147:346:1;9051:91:0;9212:4;9159:32;11278:18;;;:9;:18;;;;;;9287:7;;9259:35;;;;;;;9313:29;;-1:-1:-1;9336:6:0;;;;9335:7;9313:29;:54;;;;-1:-1:-1;;;;;;9346:21:0;;;;;;:13;:21;;;;;;;;9345:22;9313:54;:69;;;;-1:-1:-1;9371:11:0;;;;;;;9313:69;9309:115;;;9387:34;9396:24;9387:8;:34::i;:::-;9452:8;;-1:-1:-1;;;;;9442:18:0;;;9452:8;;9442:18;9438:96;;9482:52;;;;;;;;;;;-1:-1:-1;;;9482:52:0;;;;;;;;-1:-1:-1;;;;;9482:17:0;;-1:-1:-1;9482:17:0;;;:9;:17;;;;;;;;:52;;9504:6;;9482:21;:52::i;:::-;-1:-1:-1;;;;;9462:17:0;;;;;;:9;:17;;;;;:72;9438:96;9549:19;9571:27;9580:6;9588:9;9571:8;:27::i;:::-;:74;;9610:35;9619:6;9627:9;9638:6;9610:8;:35::i;:::-;9571:74;;;9601:6;9571:74;9664:12;;9549:96;;-1:-1:-1;9664:12:0;;;;;:37;;;;-1:-1:-1;9690:11:0;;-1:-1:-1;;;;;9680:21:0;;;9690:11;;9680:21;9664:37;:65;;;;-1:-1:-1;;;;;;9706:23:0;;;;;;:12;:23;;;;;;;;9705:24;9664:65;9660:167;;;9783:9;;9742:37;9767:11;9742:20;9752:9;-1:-1:-1;;;;;11278:18:0;11260:7;11278:18;;;:9;:18;;;;;;;11194:105;9742:20;:24;;:37::i;:::-;:50;;9734:91;;;;-1:-1:-1;;;9734:91:0;;8700:2:1;9734:91:0;;;8682:21:1;8739:2;8719:18;;;8712:30;8778:29;8758:18;;;8751:57;8825:18;;9734:91:0;8498:351:1;9734:91:0;-1:-1:-1;;;;;9864:20:0;;;;;;:9;:20;;;;;;:37;;9889:11;9864:24;:37::i;:::-;-1:-1:-1;;;;;9841:20:0;;;;;;;:9;:20;;;;;;;:60;;;;9921:40;;;;;;;;;;9949:11;1361:25:1;;1349:2;1334:18;;1215:177;9921:40:0;;;;;;;;9983:4;9976:11;;;;;;;455:158;541:7;568:12;560:6;;;;552:29;;;;-1:-1:-1;;;552:29:0;;;;;;;;:::i;:::-;-1:-1:-1;583:9:0;595:5;599:1;595;:5;:::i;:::-;583:17;455:158;-1:-1:-1;;;;;455:158:0:o;174:147::-;232:7;;255:5;259:1;255;:5;:::i;:::-;243:17;;275:1;270;:6;;262:46;;;;-1:-1:-1;;;262:46:0;;9451:2:1;262:46:0;;;9433:21:1;9490:2;9470:18;;;9463:30;9529:29;9509:18;;;9502:57;9576:18;;262:46:0;9249:351:1;2238:141:0;2285:16;2304:6;;-1:-1:-1;;;;;2312:17:0;;;-1:-1:-1;;;;;;2312:17:0;;;;;;2336:40;;2304:6;;;;;;;2336:40;;2285:16;2336:40;2283:96;2238:141;:::o;8253:331::-;8383:54;;;;;;;;;;;-1:-1:-1;;;8383:54:0;;;;;;;;-1:-1:-1;;;;;8383:17:0;;8346:4;8383:17;;;:9;:17;;;;;;;:54;;8405:6;;8383:21;:54::i;:::-;-1:-1:-1;;;;;8363:17:0;;;;;;;:9;:17;;;;;;:74;;;;8471:20;;;;;;;:32;;8496:6;8471:24;:32::i;:::-;-1:-1:-1;;;;;8448:20:0;;;;;;;:9;:20;;;;;;;:55;;;;8519:35;;;;;;;;;;8547:6;1361:25:1;;1349:2;1334:18;;1215:177;8519:35:0;;;;;;;;-1:-1:-1;8572:4:0;8253:331;;;;;:::o;5704:99::-;4791:6;:13;;-1:-1:-1;;4791:13:0;4800:4;4791:13;;;5767:33:::1;5784:15:::0;5767:16:::1;:33::i;:::-;-1:-1:-1::0;4809:6:0;:14;;-1:-1:-1;;4809:14:0;;;5704:99::o;10014:279::-;-1:-1:-1;;;;;10111:24:0;;10090:4;10111:24;;;:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;10139:27:0;;;;;;:16;:27;;;;;;;;10111:55;10107:179;;;-1:-1:-1;10177:4:0;10170:11;;10107:179;-1:-1:-1;;;;;10194:21:0;;;;;;:13;:21;;;;;;;;;:49;;-1:-1:-1;;;;;;10219:24:0;;;;;;:13;:24;;;;;;;;10194:49;10190:96;;;-1:-1:-1;10254:5:0;10247:12;;10190:96;-1:-1:-1;10278:5:0;10271:12;;10299:533;-1:-1:-1;;;;;10439:21:0;;10387:7;10439:21;;;:13;:21;;;;;;10387:7;;10439:21;;10435:192;;;10476:31;10499:7;;10476:18;10487:6;;10476;:10;;:18;;;;:::i;:::-;:22;;:31::i;:::-;10464:43;;10435:192;;;-1:-1:-1;;;;;10530:24:0;;;;;;:13;:24;;;;;;;;10526:101;;;10616:7;;10593:8;;10581:7;;10570:54;;10616:7;10570:41;;10581:29;;-1:-1:-1;;;;;10593:8:0;:16;10581:11;:29::i;:::-;10570:6;;:10;:41::i;:54::-;10558:66;;10526:101;10651:13;;10647:139;;10713:4;10695:24;;;;:9;:24;;;;;;:39;;10724:9;10695:28;:39::i;:::-;10686:4;10668:24;;;;:9;:24;;;;;;;:66;;;;10741:42;;-1:-1:-1;;;;;10741:42:0;;;;;;;10773:9;1361:25:1;;1349:2;1334:18;;1215:177;10741:42:0;;;;;;;;10647:139;10803:21;:6;10814:9;10803:10;:21::i;5809:442::-;5899:16;;;5913:1;5899:16;;;;;;;;5875:21;;5899:16;;;;;;;;;;-1:-1:-1;5899:16:0;5875:40;;5944:4;5926;5931:1;5926:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5926:23:0;;;:7;;;;;;;;;;:23;;;;5970:13;;:20;;;-1:-1:-1;;;5970:20:0;;;;:13;;;;;:18;;:20;;;;;5926:7;;5970:20;;;;;:13;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5960:4;5965:1;5960:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5960:30:0;;;:7;;;;;;;;;:30;6033:13;;6001:60;;6018:4;;6033:13;6049:11;6001:8;:60::i;:::-;6072:13;;:120;;-1:-1:-1;;;6072:120:0;;-1:-1:-1;;;;;6072:13:0;;;;:64;;:120;;6138:11;;6072:13;;6154:4;;6168;;6175:15;;6072:120;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6208:35;6225:11;6238:4;6208:35;;;;;;;:::i;:::-;;;;;;;;5864:387;5809:442;:::o;619:182::-;677:7;692:1;697;692:6;688:25;;-1:-1:-1;709:1:0;702:8;;688:25;714:9;726:5;730:1;726;:5;:::i;:::-;714:17;-1:-1:-1;750:1:0;741:5;745:1;714:17;741:5;:::i;:::-;:10;733:56;;;;-1:-1:-1;;;733:56:0;;11856:2:1;733:56:0;;;11838:21:1;11895:2;11875:18;;;11868:30;11934:34;11914:18;;;11907:62;-1:-1:-1;;;11985:18:1;;;11978:31;12026:19;;733:56:0;11654:397:1;807:118:0;865:7;883:39;887:1;890;883:39;;;;;;;;;;;;;;;;;:3;:39::i;327:122::-;385:7;403:43;407:1;410;403:43;;;;;;;;;;;;;;;;;:3;:43::i;931:157::-;1017:7;1043:12;1036:5;1028:28;;;;-1:-1:-1;;;1028:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1058:9:0;1070:5;1074:1;1070;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703: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;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2739:388::-;2807:6;2815;2868:2;2856:9;2847:7;2843:23;2839:32;2836:52;;;2884:1;2881;2874:12;2836:52;2923:9;2910:23;2942:31;2967:5;2942:31;:::i;:::-;2992:5;-1:-1:-1;3049:2:1;3034:18;;3021:32;3062:33;3021:32;3062:33;:::i;:::-;3114:7;3104:17;;;2739:388;;;;;:::o;3132:380::-;3211:1;3207:12;;;;3254;;;3275:61;;3329:4;3321:6;3317:17;3307:27;;3275:61;3382:2;3374:6;3371:14;3351:18;3348:38;3345:161;;3428:10;3423:3;3419:20;3416:1;3409:31;3463:4;3460:1;3453:15;3491:4;3488:1;3481:15;3345:161;;3132:380;;;:::o;3517:356::-;3719:2;3701:21;;;3738:18;;;3731:30;3797:34;3792:2;3777:18;;3770:62;3864:2;3849:18;;3517:356::o;4224:251::-;4294:6;4347:2;4335:9;4326:7;4322:23;4318:32;4315:52;;;4363:1;4360;4353:12;4315:52;4395:9;4389:16;4414:31;4439:5;4414:31;:::i;5401:306::-;5489:6;5497;5505;5558:2;5546:9;5537:7;5533:23;5529:32;5526:52;;;5574:1;5571;5564:12;5526:52;5603:9;5597:16;5587:26;;5653:2;5642:9;5638:18;5632:25;5622:35;;5697:2;5686:9;5682:18;5676:25;5666:35;;5401:306;;;;;:::o;8854:127::-;8915:10;8910:3;8906:20;8903:1;8896:31;8946:4;8943:1;8936:15;8970:4;8967:1;8960:15;8986:128;9053:9;;;9074:11;;;9071:37;;;9088:18;;:::i;9119:125::-;9184:9;;;9205:10;;;9202:36;;;9218:18;;:::i;9737:127::-;9798:10;9793:3;9789:20;9786:1;9779:31;9829:4;9826:1;9819:15;9853:4;9850:1;9843:15;9869:461;9922:3;9960:5;9954:12;9987:6;9982:3;9975:19;10013:4;10042:2;10037:3;10033:12;10026:19;;10079:2;10072:5;10068:14;10100:1;10110:195;10124:6;10121:1;10118:13;10110:195;;;10189:13;;-1:-1:-1;;;;;10185:39:1;10173:52;;10245:12;;;;10280:15;;;;10221:1;10139:9;10110:195;;;-1:-1:-1;10321:3:1;;9869:461;-1:-1:-1;;;;;9869:461:1:o;10335:582::-;10634:6;10623:9;10616:25;10677:6;10672:2;10661:9;10657:18;10650:34;10720:3;10715:2;10704:9;10700:18;10693:31;10597:4;10741:57;10793:3;10782:9;10778:19;10770:6;10741:57;:::i;:::-;-1:-1:-1;;;;;10834:32:1;;;;10829:2;10814:18;;10807:60;-1:-1:-1;10898:3:1;10883:19;10876:35;10733:65;10335:582;-1:-1:-1;;;10335:582:1:o;10922:332::-;11129:6;11118:9;11111:25;11172:2;11167;11156:9;11152:18;11145:30;11092:4;11192:56;11244:2;11233:9;11229:18;11221:6;11192:56;:::i;:::-;11184:64;10922:332;-1:-1:-1;;;;10922:332:1:o;11259:168::-;11332:9;;;11363;;11380:15;;;11374:22;;11360:37;11350:71;;11401:18;;:::i;11432:217::-;11472:1;11498;11488:132;;11542:10;11537:3;11533:20;11530:1;11523:31;11577:4;11574:1;11567:15;11605:4;11602:1;11595:15;11488:132;-1:-1:-1;11634:9:1;;11432:217::o
Swarm Source
ipfs://14971f205aa8847e8aadce816c57ec52f3a841954db317f07a923021273fb255
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.