ERC-20
Overview
Max Total Supply
100,000,000 0xO
Holders
30
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
681,733.10594954726227588 0xOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ZeroxO
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-19 */ /* 0xOrdinal Revolutionizing the Crypto Space –Bridging the 0layer Infrastructure with Ordinal BTC Digital Collectibles https://0xo.cool https://t.me/OxOportal https://twitter.com/0xO_ERC20 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.12; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } 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 IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping (address => uint256) internal _balances; mapping (address => mapping (address => uint256)) internal _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = accountBalance - amount; _totalSupply -= amount; emit Transfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } library Address{ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } } 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 IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { 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 ZeroxO is ERC20, Ownable{ using Address for address payable; IRouter public router; address public pair; bool private swapping; bool public swapEnabled; bool public tradingEnabled; uint256 public genesis_block; uint256 public deadblocks = 0; uint256 public swapThreshold = 10_000 * 10e18; uint256 public maxTxAmount = 2_000_000 * 10**18; uint256 public maxWalletAmount = 2_000_000 * 10**18; address public marketingWallet = 0x71352C312Cd9EB57df6Fb6364fDf27d0007E666E; address public devWallet = 0xa5EB66b83A1BDfb8Aa3C1b78C0f63DFb41FA0e33; struct Taxes { uint256 marketing; uint256 liquidity; uint256 dev; } Taxes public taxes = Taxes(20,0,1); Taxes public sellTaxes = Taxes(31,0,7); uint256 public totTax = 21; uint256 public totSellTax = 38; mapping (address => bool) public excludedFromFees; mapping (address => bool) private isBot; modifier inSwap() { if (!swapping) { swapping = true; _; swapping = false; } } constructor() ERC20("0xO", "0xO") { _mint(msg.sender, 1e8 * 10 ** decimals()); excludedFromFees[msg.sender] = true; excludedFromFees[address(this)] = true; excludedFromFees[marketingWallet] = true; excludedFromFees[devWallet] = true; } function createPair() external onlyOwner{ IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()) .createPair(address(this), _router.WETH()); router = _router; pair = _pair; } function _transfer(address sender, address recipient, uint256 amount) internal override { require(amount > 0, "Transfer amount must be greater than zero"); require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens"); if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){ require(tradingEnabled, "Trading not active yet"); if(genesis_block + deadblocks > block.number){ if(recipient != pair) isBot[recipient] = true; if(sender != pair) isBot[sender] = true; } require(amount <= maxTxAmount, "You are exceeding maxTxAmount"); if(recipient != pair){ require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount"); } } uint256 fee; if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0; else{ if(recipient == pair) fee = amount * totSellTax / 100; else fee = amount * totTax / 100; } if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees(); super._transfer(sender, recipient, amount - fee); if(fee > 0) super._transfer(sender, address(this) ,fee); } function swapForFees() private inSwap { uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= swapThreshold) { uint256 denominator = totSellTax * 2; uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator; uint256 toSwap = contractBalance - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity); uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity; if(ethToAddLiquidityWith > 0){ // Add liquidity to Uniswap addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing; if(marketingAmt > 0){ payable(marketingWallet).sendValue(marketingAmt); } uint256 devAmt = unitBalance * 2 * sellTaxes.dev; if(devAmt > 0){ payable(devWallet).sendValue(devAmt); } } } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp); } function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: bnbAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable devWallet, block.timestamp ); } function setSwapEnabled(bool state) external onlyOwner { swapEnabled = state; } function setSwapThreshold(uint256 new_amount) external onlyOwner { swapThreshold = new_amount; } function enableTrading(uint256 numOfDeadBlocks) external onlyOwner{ require(!tradingEnabled, "Trading already active"); tradingEnabled = true; swapEnabled = true; genesis_block = block.number; deadblocks = numOfDeadBlocks; } function setBuyTaxes(uint256 _marketing, uint256 _liquidity, uint256 _dev) external onlyOwner{ taxes = Taxes(_marketing, _liquidity, _dev); totTax = _marketing + _liquidity + _dev; } function setSellTaxes(uint256 _marketing, uint256 _liquidity, uint256 _dev) external onlyOwner{ sellTaxes = Taxes(_marketing, _liquidity, _dev); totSellTax = _marketing + _liquidity + _dev; } function updateDBMarketingWallet(address newWallet) external onlyOwner{ marketingWallet = newWallet; } function updateDBTeamWallet(address newWallet) external onlyOwner{ devWallet = newWallet; } function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{ router = _router; pair = _pair; } function addBots(address[] memory isBot_) public onlyOwner { for (uint i = 0; i < isBot_.length; i++) { isBot[isBot_[i]] = true; } } function updateExcludedFromFees(address _address, bool state) external onlyOwner { excludedFromFees[_address] = state; } function updateMaxTxAmount(uint256 amount) external onlyOwner{ maxTxAmount = amount * 10**18; } function updateMaxWalletAmount(uint256 amount) external onlyOwner{ maxWalletAmount = amount * 10**18; } function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner{ IERC20(tokenAddress).transfer(owner(), amount); } function rescueETH(uint256 weiAmount) external onlyOwner{ payable(owner()).sendValue(weiAmount); } function manualSwap(uint256 amount, uint256 devPercentage, uint256 marketingPercentage) external onlyOwner{ uint256 initBalance = address(this).balance; swapTokensForETH(amount); uint256 newBalance = address(this).balance - initBalance; if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / (devPercentage + marketingPercentage)); if(devPercentage > 0) payable(devWallet).sendValue(newBalance * devPercentage / (devPercentage + marketingPercentage)); } // fallbacks 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":"isBot_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadblocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numOfDeadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"devPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","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":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDBMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDBTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6000600981905569152d02c7e14af6800000600a556a01a784379d99db42000000600b819055600c55600d80546001600160a01b03199081167371352c312cd9eb57df6fb6364fdf27d0007e666e17909155600e805490911673a5eb66b83a1bdfb8aa3c1b78c0f63dfb41fa0e331790556014608081905260a0829052600160c0819052600f8290556010839055601155610140604052601f60e0819052610100839052600761012081905260129190915560139290925555601580556026601655348015620000ce57600080fd5b506040518060400160405280600381526020016230784f60e81b8152506040518060400160405280600381526020016230784f60e81b81525081600390805190602001906200011f9291906200031b565b508051620001359060049060208401906200031b565b505050620001526200014c620001dd60201b60201c565b620001e1565b6200017b33620001656012600a620004d6565b62000175906305f5e100620004ee565b62000233565b336000908152601760205260408082208054600160ff1991821681179092553084528284208054821683179055600d546001600160a01b0390811685528385208054831684179055600e54168452919092208054909116909117905562000568565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200028e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620002a2919062000510565b90915550506001600160a01b03821660009081526020819052604081208054839290620002d190849062000510565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b82805462000329906200052b565b90600052602060002090601f0160209004810192826200034d576000855562000398565b82601f106200036857805160ff191683800117855562000398565b8280016001018555821562000398579182015b82811115620003985782518255916020019190600101906200037b565b50620003a6929150620003aa565b5090565b5b80821115620003a65760008155600101620003ab565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000418578160001904821115620003fc57620003fc620003c1565b808516156200040a57918102915b93841c9390800290620003dc565b509250929050565b6000826200043157506001620004d0565b816200044057506000620004d0565b8160018114620004595760028114620004645762000484565b6001915050620004d0565b60ff841115620004785762000478620003c1565b50506001821b620004d0565b5060208310610133831016604e8410600b8410161715620004a9575081810a620004d0565b620004b58383620003d7565b8060001904821115620004cc57620004cc620003c1565b0290505b92915050565b6000620004e760ff84168362000420565b9392505050565b60008160001904831182151516156200050b576200050b620003c1565b500290565b60008219821115620005265762000526620003c1565b500190565b600181811c908216806200054057607f821691505b602082108114156200056257634e487b7160e01b600052602260045260246000fd5b50919050565b61247e80620005786000396000f3fe6080604052600436106102815760003560e01c80638c0b5e221161014f578063a9059cbb116100c1578063e01af92c1161007a578063e01af92c146107bc578063e545fd6d146107dc578063f2fde38b146107fc578063f66895a31461081c578063f887ea401461083b578063fb53d9a21461085b57600080fd5b8063a9059cbb146106d0578063aa4bde28146106f0578063c18bc19514610706578063d34628cc14610726578063dbe66ca014610746578063dd62ed3e1461077657600080fd5b80639d0014b1116101135780639d0014b11461061b5780639e252f001461063b5780639e78fb4f1461065b578063a457c2d714610670578063a7c7f0af14610690578063a8aa1b31146106b057600080fd5b80638c0b5e22146105925780638cd4426d146105a85780638da5cb5b146105c85780638ea5220f146105e657806395d89b411461060657600080fd5b8063313ce567116101f35780636ddd1713116101ac5780636ddd17131461049457806370a08231146104b5578063715018a6146104eb578063728f8eea1461050057806375f0a8741461053a57806382aa7c681461057257600080fd5b8063313ce567146103e157806339509351146103fd57806340b28c2f1461041d5780634ada218b1461043d57806350c9a88f1461045e5780636256d1811461047457600080fd5b80631870517a116102455780631870517a1461033f5780632253163d1461035f57806323b872dd1461037557806326b5d32f14610395578063274a533c146103b5578063293b7ef4146103cb57600080fd5b80630445b6671461028d57806306fdde03146102b657806308733214146102d8578063095ea7b3146102fa57806318160ddd1461032a57600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a3600a5481565b6040519081526020015b60405180910390f35b3480156102c257600080fd5b506102cb61087b565b6040516102ad9190611f8b565b3480156102e457600080fd5b506102f86102f3366004611fe0565b61090d565b005b34801561030657600080fd5b5061031a610315366004612031565b610984565b60405190151581526020016102ad565b34801561033657600080fd5b506002546102a3565b34801561034b57600080fd5b506102f861035a366004611fe0565b61099a565b34801561036b57600080fd5b506102a360165481565b34801561038157600080fd5b5061031a61039036600461205d565b610a08565b3480156103a157600080fd5b506102f86103b0366004611fe0565b610ab9565b3480156103c157600080fd5b506102a360085481565b3480156103d757600080fd5b506102a360155481565b3480156103ed57600080fd5b50604051601281526020016102ad565b34801561040957600080fd5b5061031a610418366004612031565b610b74565b34801561042957600080fd5b506102f861043836600461209e565b610bab565b34801561044957600080fd5b5060075461031a90600160b01b900460ff1681565b34801561046a57600080fd5b506102a360095481565b34801561048057600080fd5b506102f861048f3660046120d7565b610c03565b3480156104a057600080fd5b5060075461031a90600160a81b900460ff1681565b3480156104c157600080fd5b506102a36104d03660046120f0565b6001600160a01b031660009081526020819052604090205490565b3480156104f757600080fd5b506102f8610c45565b34801561050c57600080fd5b50600f5460105460115461051f92919083565b604080519384526020840192909252908201526060016102ad565b34801561054657600080fd5b50600d5461055a906001600160a01b031681565b6040516001600160a01b0390911681526020016102ad565b34801561057e57600080fd5b506102f861058d3660046120d7565b610c7b565b34801561059e57600080fd5b506102a3600b5481565b3480156105b457600080fd5b506102f86105c3366004612031565b610d16565b3480156105d457600080fd5b506005546001600160a01b031661055a565b3480156105f257600080fd5b50600e5461055a906001600160a01b031681565b34801561061257600080fd5b506102cb610dd7565b34801561062757600080fd5b506102f86106363660046120d7565b610de6565b34801561064757600080fd5b506102f86106563660046120d7565b610e15565b34801561066757600080fd5b506102f8610e67565b34801561067c57600080fd5b5061031a61068b366004612031565b611020565b34801561069c57600080fd5b506102f86106ab3660046120f0565b6110bb565b3480156106bc57600080fd5b5060075461055a906001600160a01b031681565b3480156106dc57600080fd5b5061031a6106eb366004612031565b611107565b3480156106fc57600080fd5b506102a3600c5481565b34801561071257600080fd5b506102f86107213660046120d7565b611114565b34801561073257600080fd5b506102f861074136600461212a565b611156565b34801561075257600080fd5b5061031a6107613660046120f0565b60176020526000908152604090205460ff1681565b34801561078257600080fd5b506102a361079136600461209e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107c857600080fd5b506102f86107d73660046121fd565b6111ec565b3480156107e857600080fd5b506102f86107f736600461221a565b611234565b34801561080857600080fd5b506102f86108173660046120f0565b611289565b34801561082857600080fd5b5060125460135460145461051f92919083565b34801561084757600080fd5b5060065461055a906001600160a01b031681565b34801561086757600080fd5b506102f86108763660046120f0565b611321565b60606003805461088a90612248565b80601f01602080910402602001604051908101604052809291908181526020018280546108b690612248565b80156109035780601f106108d857610100808354040283529160200191610903565b820191906000526020600020905b8154815290600101906020018083116108e657829003601f168201915b5050505050905090565b6005546001600160a01b031633146109405760405162461bcd60e51b815260040161093790612283565b60405180910390fd5b6040805160608101825284815260208101849052018190526012839055601382905560148190558061097283856122ce565b61097c91906122ce565b601655505050565b600061099133848461136d565b50600192915050565b6005546001600160a01b031633146109c45760405162461bcd60e51b815260040161093790612283565b604080516060810182528481526020810184905201819052600f83905560108290556011819055806109f683856122ce565b610a0091906122ce565b601555505050565b6000610a15848484611491565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610a9a5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610937565b610aae8533610aa986856122e6565b61136d565b506001949350505050565b6005546001600160a01b03163314610ae35760405162461bcd60e51b815260040161093790612283565b47610aed846118dd565b6000610af982476122e6565b90508215610b3457610b34610b0e84866122ce565b610b1885846122fd565b610b22919061231c565b600d546001600160a01b031690611a37565b8315610b6d57610b6d610b4784866122ce565b610b5186846122fd565b610b5b919061231c565b600e546001600160a01b031690611a37565b5050505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610991918590610aa99086906122ce565b6005546001600160a01b03163314610bd55760405162461bcd60e51b815260040161093790612283565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610c2d5760405162461bcd60e51b815260040161093790612283565b610c3f81670de0b6b3a76400006122fd565b600b5550565b6005546001600160a01b03163314610c6f5760405162461bcd60e51b815260040161093790612283565b610c796000611b50565b565b6005546001600160a01b03163314610ca55760405162461bcd60e51b815260040161093790612283565b600754600160b01b900460ff1615610cf85760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b6044820152606401610937565b6007805461ffff60a81b191661010160a81b17905543600855600955565b6005546001600160a01b03163314610d405760405162461bcd60e51b815260040161093790612283565b816001600160a01b031663a9059cbb610d616005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610dae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd2919061233e565b505050565b60606004805461088a90612248565b6005546001600160a01b03163314610e105760405162461bcd60e51b815260040161093790612283565b600a55565b6005546001600160a01b03163314610e3f5760405162461bcd60e51b815260040161093790612283565b610e6481610e556005546001600160a01b031690565b6001600160a01b031690611a37565b50565b6005546001600160a01b03163314610e915760405162461bcd60e51b815260040161093790612283565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0e919061235b565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7f919061235b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff0919061235b565b600680546001600160a01b039485166001600160a01b031991821617909155600780549290941691161790915550565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156110a25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610937565b6110b13385610aa986856122e6565b5060019392505050565b6005546001600160a01b031633146110e55760405162461bcd60e51b815260040161093790612283565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610991338484611491565b6005546001600160a01b0316331461113e5760405162461bcd60e51b815260040161093790612283565b61115081670de0b6b3a76400006122fd565b600c5550565b6005546001600160a01b031633146111805760405162461bcd60e51b815260040161093790612283565b60005b81518110156111e8576001601860008484815181106111a4576111a4612378565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806111e08161238e565b915050611183565b5050565b6005546001600160a01b031633146112165760405162461bcd60e51b815260040161093790612283565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b0316331461125e5760405162461bcd60e51b815260040161093790612283565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146112b35760405162461bcd60e51b815260040161093790612283565b6001600160a01b0381166113185760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610937565b610e6481611b50565b6005546001600160a01b0316331461134b5760405162461bcd60e51b815260040161093790612283565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166113cf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610937565b6001600160a01b0382166114305760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610937565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116114f35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610937565b6001600160a01b03831660009081526018602052604090205460ff1615801561153557506001600160a01b03821660009081526018602052604090205460ff16155b6115815760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e73000000000000006044820152606401610937565b6001600160a01b03831660009081526017602052604090205460ff161580156115c357506001600160a01b03821660009081526017602052604090205460ff16155b80156115d95750600754600160a01b900460ff16155b156117a557600754600160b01b900460ff166116305760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b6044820152606401610937565b4360095460085461164191906122ce565b11156116b9576007546001600160a01b03838116911614611680576001600160a01b0382166000908152601860205260409020805460ff191660011790555b6007546001600160a01b038481169116146116b9576001600160a01b0383166000908152601860205260409020805460ff191660011790555b600b5481111561170b5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e740000006044820152606401610937565b6007546001600160a01b038381169116146117a557600c5481611743846001600160a01b031660009081526020819052604090205490565b61174d91906122ce565b11156117a55760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b6064820152608401610937565b600754600090600160a01b900460ff16806117d857506001600160a01b03841660009081526017602052604090205460ff165b806117fb57506001600160a01b03831660009081526017602052604090205460ff165b156118085750600061185c565b6007546001600160a01b038481169116141561183f5760646016548361182e91906122fd565b611838919061231c565b905061185c565b60646015548361184f91906122fd565b611859919061231c565b90505b600754600160a81b900460ff16801561187f5750600754600160a01b900460ff16155b801561189957506007546001600160a01b03858116911614155b80156118a55750600081115b156118b2576118b2611ba2565b6118c684846118c184866122e6565b611d06565b80156118d7576118d7843083611d06565b50505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061191257611912612378565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561196b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198f919061235b565b816001815181106119a2576119a2612378565b6001600160a01b0392831660209182029290920101526006546119c8913091168461136d565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a019085906000908690309042906004016123a9565b600060405180830381600087803b158015611a1b57600080fd5b505af1158015611a2f573d6000803e3d6000fd5b505050505050565b80471015611a875760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610937565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611ad4576040519150601f19603f3d011682016040523d82523d6000602084013e611ad9565b606091505b5050905080610dd25760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610937565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610c79576007805460ff60a01b1916600160a01b179055306000908152602081905260408120549050600a548110611cf65760006016546002611bf291906122fd565b905060008160126001015484611c0891906122fd565b611c12919061231c565b90506000611c2082856122e6565b905047611c2c826118dd565b6000611c3882476122e6565b601354909150600090611c4b90876122e6565b611c55908361231c565b601354909150600090611c6890836122fd565b90508015611c7a57611c7a8682611ede565b601254600090611c8b8460026122fd565b611c9591906122fd565b90508015611cb357600d54611cb3906001600160a01b031682611a37565b601454600090611cc48560026122fd565b611cce91906122fd565b90508015611cec57600e54611cec906001600160a01b031682611a37565b5050505050505050505b506007805460ff60a01b19169055565b6001600160a01b038316611d6a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610937565b6001600160a01b038216611dcc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610937565b6001600160a01b03831660009081526020819052604090205481811015611e445760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610937565b611e4e82826122e6565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611e849084906122ce565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ed091815260200190565b60405180910390a350505050565b600654611ef69030906001600160a01b03168461136d565b600654600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611f66573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b6d919061241a565b600060208083528351808285015260005b81811015611fb857858101830151858201604001528201611f9c565b81811115611fca576000604083870101525b50601f01601f1916929092016040019392505050565b600080600060608486031215611ff557600080fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114610e6457600080fd5b803561202c8161200c565b919050565b6000806040838503121561204457600080fd5b823561204f8161200c565b946020939093013593505050565b60008060006060848603121561207257600080fd5b833561207d8161200c565b9250602084013561208d8161200c565b929592945050506040919091013590565b600080604083850312156120b157600080fd5b82356120bc8161200c565b915060208301356120cc8161200c565b809150509250929050565b6000602082840312156120e957600080fd5b5035919050565b60006020828403121561210257600080fd5b813561210d8161200c565b9392505050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561213d57600080fd5b823567ffffffffffffffff8082111561215557600080fd5b818501915085601f83011261216957600080fd5b81358181111561217b5761217b612114565b8060051b604051601f19603f830116810181811085821117156121a0576121a0612114565b6040529182528482019250838101850191888311156121be57600080fd5b938501935b828510156121e3576121d485612021565b845293850193928501926121c3565b98975050505050505050565b8015158114610e6457600080fd5b60006020828403121561220f57600080fd5b813561210d816121ef565b6000806040838503121561222d57600080fd5b82356122388161200c565b915060208301356120cc816121ef565b600181811c9082168061225c57607f821691505b6020821081141561227d57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156122e1576122e16122b8565b500190565b6000828210156122f8576122f86122b8565b500390565b6000816000190483118215151615612317576123176122b8565b500290565b60008261233957634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561235057600080fd5b815161210d816121ef565b60006020828403121561236d57600080fd5b815161210d8161200c565b634e487b7160e01b600052603260045260246000fd5b60006000198214156123a2576123a26122b8565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123f95784516001600160a01b0316835293830193918301916001016123d4565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561242f57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212201f64e40c7f39cf012d6a88f9e029f3a4be355a55e697b438b4048e9d4d1b693864736f6c634300080c0033
Deployed Bytecode
0x6080604052600436106102815760003560e01c80638c0b5e221161014f578063a9059cbb116100c1578063e01af92c1161007a578063e01af92c146107bc578063e545fd6d146107dc578063f2fde38b146107fc578063f66895a31461081c578063f887ea401461083b578063fb53d9a21461085b57600080fd5b8063a9059cbb146106d0578063aa4bde28146106f0578063c18bc19514610706578063d34628cc14610726578063dbe66ca014610746578063dd62ed3e1461077657600080fd5b80639d0014b1116101135780639d0014b11461061b5780639e252f001461063b5780639e78fb4f1461065b578063a457c2d714610670578063a7c7f0af14610690578063a8aa1b31146106b057600080fd5b80638c0b5e22146105925780638cd4426d146105a85780638da5cb5b146105c85780638ea5220f146105e657806395d89b411461060657600080fd5b8063313ce567116101f35780636ddd1713116101ac5780636ddd17131461049457806370a08231146104b5578063715018a6146104eb578063728f8eea1461050057806375f0a8741461053a57806382aa7c681461057257600080fd5b8063313ce567146103e157806339509351146103fd57806340b28c2f1461041d5780634ada218b1461043d57806350c9a88f1461045e5780636256d1811461047457600080fd5b80631870517a116102455780631870517a1461033f5780632253163d1461035f57806323b872dd1461037557806326b5d32f14610395578063274a533c146103b5578063293b7ef4146103cb57600080fd5b80630445b6671461028d57806306fdde03146102b657806308733214146102d8578063095ea7b3146102fa57806318160ddd1461032a57600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a3600a5481565b6040519081526020015b60405180910390f35b3480156102c257600080fd5b506102cb61087b565b6040516102ad9190611f8b565b3480156102e457600080fd5b506102f86102f3366004611fe0565b61090d565b005b34801561030657600080fd5b5061031a610315366004612031565b610984565b60405190151581526020016102ad565b34801561033657600080fd5b506002546102a3565b34801561034b57600080fd5b506102f861035a366004611fe0565b61099a565b34801561036b57600080fd5b506102a360165481565b34801561038157600080fd5b5061031a61039036600461205d565b610a08565b3480156103a157600080fd5b506102f86103b0366004611fe0565b610ab9565b3480156103c157600080fd5b506102a360085481565b3480156103d757600080fd5b506102a360155481565b3480156103ed57600080fd5b50604051601281526020016102ad565b34801561040957600080fd5b5061031a610418366004612031565b610b74565b34801561042957600080fd5b506102f861043836600461209e565b610bab565b34801561044957600080fd5b5060075461031a90600160b01b900460ff1681565b34801561046a57600080fd5b506102a360095481565b34801561048057600080fd5b506102f861048f3660046120d7565b610c03565b3480156104a057600080fd5b5060075461031a90600160a81b900460ff1681565b3480156104c157600080fd5b506102a36104d03660046120f0565b6001600160a01b031660009081526020819052604090205490565b3480156104f757600080fd5b506102f8610c45565b34801561050c57600080fd5b50600f5460105460115461051f92919083565b604080519384526020840192909252908201526060016102ad565b34801561054657600080fd5b50600d5461055a906001600160a01b031681565b6040516001600160a01b0390911681526020016102ad565b34801561057e57600080fd5b506102f861058d3660046120d7565b610c7b565b34801561059e57600080fd5b506102a3600b5481565b3480156105b457600080fd5b506102f86105c3366004612031565b610d16565b3480156105d457600080fd5b506005546001600160a01b031661055a565b3480156105f257600080fd5b50600e5461055a906001600160a01b031681565b34801561061257600080fd5b506102cb610dd7565b34801561062757600080fd5b506102f86106363660046120d7565b610de6565b34801561064757600080fd5b506102f86106563660046120d7565b610e15565b34801561066757600080fd5b506102f8610e67565b34801561067c57600080fd5b5061031a61068b366004612031565b611020565b34801561069c57600080fd5b506102f86106ab3660046120f0565b6110bb565b3480156106bc57600080fd5b5060075461055a906001600160a01b031681565b3480156106dc57600080fd5b5061031a6106eb366004612031565b611107565b3480156106fc57600080fd5b506102a3600c5481565b34801561071257600080fd5b506102f86107213660046120d7565b611114565b34801561073257600080fd5b506102f861074136600461212a565b611156565b34801561075257600080fd5b5061031a6107613660046120f0565b60176020526000908152604090205460ff1681565b34801561078257600080fd5b506102a361079136600461209e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156107c857600080fd5b506102f86107d73660046121fd565b6111ec565b3480156107e857600080fd5b506102f86107f736600461221a565b611234565b34801561080857600080fd5b506102f86108173660046120f0565b611289565b34801561082857600080fd5b5060125460135460145461051f92919083565b34801561084757600080fd5b5060065461055a906001600160a01b031681565b34801561086757600080fd5b506102f86108763660046120f0565b611321565b60606003805461088a90612248565b80601f01602080910402602001604051908101604052809291908181526020018280546108b690612248565b80156109035780601f106108d857610100808354040283529160200191610903565b820191906000526020600020905b8154815290600101906020018083116108e657829003601f168201915b5050505050905090565b6005546001600160a01b031633146109405760405162461bcd60e51b815260040161093790612283565b60405180910390fd5b6040805160608101825284815260208101849052018190526012839055601382905560148190558061097283856122ce565b61097c91906122ce565b601655505050565b600061099133848461136d565b50600192915050565b6005546001600160a01b031633146109c45760405162461bcd60e51b815260040161093790612283565b604080516060810182528481526020810184905201819052600f83905560108290556011819055806109f683856122ce565b610a0091906122ce565b601555505050565b6000610a15848484611491565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610a9a5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610937565b610aae8533610aa986856122e6565b61136d565b506001949350505050565b6005546001600160a01b03163314610ae35760405162461bcd60e51b815260040161093790612283565b47610aed846118dd565b6000610af982476122e6565b90508215610b3457610b34610b0e84866122ce565b610b1885846122fd565b610b22919061231c565b600d546001600160a01b031690611a37565b8315610b6d57610b6d610b4784866122ce565b610b5186846122fd565b610b5b919061231c565b600e546001600160a01b031690611a37565b5050505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610991918590610aa99086906122ce565b6005546001600160a01b03163314610bd55760405162461bcd60e51b815260040161093790612283565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610c2d5760405162461bcd60e51b815260040161093790612283565b610c3f81670de0b6b3a76400006122fd565b600b5550565b6005546001600160a01b03163314610c6f5760405162461bcd60e51b815260040161093790612283565b610c796000611b50565b565b6005546001600160a01b03163314610ca55760405162461bcd60e51b815260040161093790612283565b600754600160b01b900460ff1615610cf85760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b6044820152606401610937565b6007805461ffff60a81b191661010160a81b17905543600855600955565b6005546001600160a01b03163314610d405760405162461bcd60e51b815260040161093790612283565b816001600160a01b031663a9059cbb610d616005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610dae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd2919061233e565b505050565b60606004805461088a90612248565b6005546001600160a01b03163314610e105760405162461bcd60e51b815260040161093790612283565b600a55565b6005546001600160a01b03163314610e3f5760405162461bcd60e51b815260040161093790612283565b610e6481610e556005546001600160a01b031690565b6001600160a01b031690611a37565b50565b6005546001600160a01b03163314610e915760405162461bcd60e51b815260040161093790612283565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0e919061235b565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7f919061235b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff0919061235b565b600680546001600160a01b039485166001600160a01b031991821617909155600780549290941691161790915550565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156110a25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610937565b6110b13385610aa986856122e6565b5060019392505050565b6005546001600160a01b031633146110e55760405162461bcd60e51b815260040161093790612283565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610991338484611491565b6005546001600160a01b0316331461113e5760405162461bcd60e51b815260040161093790612283565b61115081670de0b6b3a76400006122fd565b600c5550565b6005546001600160a01b031633146111805760405162461bcd60e51b815260040161093790612283565b60005b81518110156111e8576001601860008484815181106111a4576111a4612378565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806111e08161238e565b915050611183565b5050565b6005546001600160a01b031633146112165760405162461bcd60e51b815260040161093790612283565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b0316331461125e5760405162461bcd60e51b815260040161093790612283565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146112b35760405162461bcd60e51b815260040161093790612283565b6001600160a01b0381166113185760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610937565b610e6481611b50565b6005546001600160a01b0316331461134b5760405162461bcd60e51b815260040161093790612283565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166113cf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610937565b6001600160a01b0382166114305760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610937565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116114f35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610937565b6001600160a01b03831660009081526018602052604090205460ff1615801561153557506001600160a01b03821660009081526018602052604090205460ff16155b6115815760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e73000000000000006044820152606401610937565b6001600160a01b03831660009081526017602052604090205460ff161580156115c357506001600160a01b03821660009081526017602052604090205460ff16155b80156115d95750600754600160a01b900460ff16155b156117a557600754600160b01b900460ff166116305760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b6044820152606401610937565b4360095460085461164191906122ce565b11156116b9576007546001600160a01b03838116911614611680576001600160a01b0382166000908152601860205260409020805460ff191660011790555b6007546001600160a01b038481169116146116b9576001600160a01b0383166000908152601860205260409020805460ff191660011790555b600b5481111561170b5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e740000006044820152606401610937565b6007546001600160a01b038381169116146117a557600c5481611743846001600160a01b031660009081526020819052604090205490565b61174d91906122ce565b11156117a55760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b6064820152608401610937565b600754600090600160a01b900460ff16806117d857506001600160a01b03841660009081526017602052604090205460ff165b806117fb57506001600160a01b03831660009081526017602052604090205460ff165b156118085750600061185c565b6007546001600160a01b038481169116141561183f5760646016548361182e91906122fd565b611838919061231c565b905061185c565b60646015548361184f91906122fd565b611859919061231c565b90505b600754600160a81b900460ff16801561187f5750600754600160a01b900460ff16155b801561189957506007546001600160a01b03858116911614155b80156118a55750600081115b156118b2576118b2611ba2565b6118c684846118c184866122e6565b611d06565b80156118d7576118d7843083611d06565b50505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061191257611912612378565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561196b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198f919061235b565b816001815181106119a2576119a2612378565b6001600160a01b0392831660209182029290920101526006546119c8913091168461136d565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a019085906000908690309042906004016123a9565b600060405180830381600087803b158015611a1b57600080fd5b505af1158015611a2f573d6000803e3d6000fd5b505050505050565b80471015611a875760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610937565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611ad4576040519150601f19603f3d011682016040523d82523d6000602084013e611ad9565b606091505b5050905080610dd25760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610937565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610c79576007805460ff60a01b1916600160a01b179055306000908152602081905260408120549050600a548110611cf65760006016546002611bf291906122fd565b905060008160126001015484611c0891906122fd565b611c12919061231c565b90506000611c2082856122e6565b905047611c2c826118dd565b6000611c3882476122e6565b601354909150600090611c4b90876122e6565b611c55908361231c565b601354909150600090611c6890836122fd565b90508015611c7a57611c7a8682611ede565b601254600090611c8b8460026122fd565b611c9591906122fd565b90508015611cb357600d54611cb3906001600160a01b031682611a37565b601454600090611cc48560026122fd565b611cce91906122fd565b90508015611cec57600e54611cec906001600160a01b031682611a37565b5050505050505050505b506007805460ff60a01b19169055565b6001600160a01b038316611d6a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610937565b6001600160a01b038216611dcc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610937565b6001600160a01b03831660009081526020819052604090205481811015611e445760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610937565b611e4e82826122e6565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611e849084906122ce565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ed091815260200190565b60405180910390a350505050565b600654611ef69030906001600160a01b03168461136d565b600654600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611f66573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b6d919061241a565b600060208083528351808285015260005b81811015611fb857858101830151858201604001528201611f9c565b81811115611fca576000604083870101525b50601f01601f1916929092016040019392505050565b600080600060608486031215611ff557600080fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114610e6457600080fd5b803561202c8161200c565b919050565b6000806040838503121561204457600080fd5b823561204f8161200c565b946020939093013593505050565b60008060006060848603121561207257600080fd5b833561207d8161200c565b9250602084013561208d8161200c565b929592945050506040919091013590565b600080604083850312156120b157600080fd5b82356120bc8161200c565b915060208301356120cc8161200c565b809150509250929050565b6000602082840312156120e957600080fd5b5035919050565b60006020828403121561210257600080fd5b813561210d8161200c565b9392505050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561213d57600080fd5b823567ffffffffffffffff8082111561215557600080fd5b818501915085601f83011261216957600080fd5b81358181111561217b5761217b612114565b8060051b604051601f19603f830116810181811085821117156121a0576121a0612114565b6040529182528482019250838101850191888311156121be57600080fd5b938501935b828510156121e3576121d485612021565b845293850193928501926121c3565b98975050505050505050565b8015158114610e6457600080fd5b60006020828403121561220f57600080fd5b813561210d816121ef565b6000806040838503121561222d57600080fd5b82356122388161200c565b915060208301356120cc816121ef565b600181811c9082168061225c57607f821691505b6020821081141561227d57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156122e1576122e16122b8565b500190565b6000828210156122f8576122f86122b8565b500390565b6000816000190483118215151615612317576123176122b8565b500290565b60008261233957634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561235057600080fd5b815161210d816121ef565b60006020828403121561236d57600080fd5b815161210d8161200c565b634e487b7160e01b600052603260045260246000fd5b60006000198214156123a2576123a26122b8565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123f95784516001600160a01b0316835293830193918301916001016123d4565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561242f57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212201f64e40c7f39cf012d6a88f9e029f3a4be355a55e697b438b4048e9d4d1b693864736f6c634300080c0033
Deployed Bytecode Sourcemap
7962:8227:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8279:45;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8279:45:0;;;;;;;;1897:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;14119:214::-;;;;;;;;;;-1:-1:-1;14119:214:0;;;;;:::i;:::-;;:::i;:::-;;2811:169;;;;;;;;;;-1:-1:-1;2811:169:0;;;;;:::i;:::-;;:::i;:::-;;;1879:14:1;;1872:22;1854:41;;1842:2;1827:18;2811:169:0;1714:187:1;2218:108:0;;;;;;;;;;-1:-1:-1;2306:12:0;;2218:108;;13906:205;;;;;;;;;;-1:-1:-1;13906:205:0;;;;;:::i;:::-;;:::i;8851:30::-;;;;;;;;;;;;;;;;2988:422;;;;;;;;;;-1:-1:-1;2988:422:0;;;;;:::i;:::-;;:::i;15579:546::-;;;;;;;;;;-1:-1:-1;15579:546:0;;;;;:::i;:::-;;:::i;8202:28::-;;;;;;;;;;;;;;;;8817:26;;;;;;;;;;;;;;;;2117:93;;;;;;;;;;-1:-1:-1;2117:93:0;;2200:2;2509:36:1;;2497:2;2482:18;2117:93:0;2367:184:1;3418:215:0;;;;;;;;;;-1:-1:-1;3418:215:0;;;;;:::i;:::-;;:::i;14586:137::-;;;;;;;;;;-1:-1:-1;14586:137:0;;;;;:::i;:::-;;:::i;8167:26::-;;;;;;;;;;-1:-1:-1;8167:26:0;;;;-1:-1:-1;;;8167:26:0;;;;;;8237:29;;;;;;;;;;;;;;;;15063:109;;;;;;;;;;-1:-1:-1;15063:109:0;;;;;:::i;:::-;;:::i;8137:23::-;;;;;;;;;;-1:-1:-1;8137:23:0;;;;-1:-1:-1;;;8137:23:0;;;;;;2334:127;;;;;;;;;;-1:-1:-1;2334:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2435:18:0;2408:7;2435:18;;;;;;;;;;;;2334:127;6739:94;;;;;;;;;;;;;:::i;8729:34::-;;;;;;;;;;-1:-1:-1;8729:34:0;;;;;;;;;;;;;;;;3603:25:1;;;3659:2;3644:18;;3637:34;;;;3687:18;;;3680:34;3591:2;3576:18;8729:34:0;3401:319:1;8452:75:0;;;;;;;;;;-1:-1:-1;8452:75:0;;;;-1:-1:-1;;;;;8452:75:0;;;;;;-1:-1:-1;;;;;3889:32:1;;;3871:51;;3859:2;3844:18;8452:75:0;3725:203:1;13624:274:0;;;;;;;;;;-1:-1:-1;13624:274:0;;;;;:::i;:::-;;:::i;8331:47::-;;;;;;;;;;;;;;;;15309:142;;;;;;;;;;-1:-1:-1;15309:142:0;;;;;:::i;:::-;;:::i;6516:87::-;;;;;;;;;;-1:-1:-1;6589:6:0;;-1:-1:-1;;;;;6589:6:0;6516:87;;8535:69;;;;;;;;;;-1:-1:-1;8535:69:0;;;;-1:-1:-1;;;;;8535:69:0;;;2005:104;;;;;;;;;;;;;:::i;13506:110::-;;;;;;;;;;-1:-1:-1;13506:110:0;;;;;:::i;:::-;;:::i;15459:112::-;;;;;;;;;;-1:-1:-1;15459:112:0;;;;;:::i;:::-;;:::i;9456:290::-;;;;;;;;;;;;;:::i;3641:377::-;;;;;;;;;;-1:-1:-1;3641:377:0;;;;;:::i;:::-;;:::i;14473:105::-;;;;;;;;;;-1:-1:-1;14473:105:0;;;;;:::i;:::-;;:::i;8077:19::-;;;;;;;;;;-1:-1:-1;8077:19:0;;;;-1:-1:-1;;;;;8077:19:0;;;2469:175;;;;;;;;;;-1:-1:-1;2469:175:0;;;;;:::i;:::-;;:::i;8386:51::-;;;;;;;;;;;;;;;;15184:117;;;;;;;;;;-1:-1:-1;15184:117:0;;;;;:::i;:::-;;:::i;14739:172::-;;;;;;;;;;-1:-1:-1;14739:172:0;;;;;:::i;:::-;;:::i;8895:49::-;;;;;;;;;;-1:-1:-1;8895:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2652:151;;;;;;;;;;-1:-1:-1;2652:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;2768:18:0;;;2741:7;2768:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2652:151;13405:93;;;;;;;;;;-1:-1:-1;13405:93:0;;;;;:::i;:::-;;:::i;14917:134::-;;;;;;;;;;-1:-1:-1;14917:134:0;;;;;:::i;:::-;;:::i;6841:192::-;;;;;;;;;;-1:-1:-1;6841:192:0;;;;;:::i;:::-;;:::i;8771:38::-;;;;;;;;;;-1:-1:-1;8771:38:0;;;;;;;;;;;;8049:21;;;;;;;;;;-1:-1:-1;8049:21:0;;;;-1:-1:-1;;;;;8049:21:0;;;14345:116;;;;;;;;;;-1:-1:-1;14345:116:0;;;;;:::i;:::-;;:::i;1897:100::-;1951:13;1984:5;1977:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1897:100;:::o;14119:214::-;6589:6;;-1:-1:-1;;;;;6589:6:0;379:10;6651:23;6643:68;;;;-1:-1:-1;;;6643:68:0;;;;;;;:::i;:::-;;;;;;;;;14236:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;14224:9:::1;:47:::0;;;;;;;;;;;14266:4;14295:23:::1;14254:10:::0;14242;14295:23:::1;:::i;:::-;:30;;;;:::i;:::-;14282:10;:43:::0;-1:-1:-1;;;14119:214:0:o;2811:169::-;2894:4;2911:39;379:10;2934:7;2943:6;2911:8;:39::i;:::-;-1:-1:-1;2968:4:0;2811:169;;;;:::o;13906:205::-;6589:6;;-1:-1:-1;;;;;6589:6:0;379:10;6651:23;6643:68;;;;-1:-1:-1;;;6643:68:0;;;;;;;:::i;:::-;14018:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;14010:5:::1;:43:::0;;;;;;;;;;;14048:4;14073:23:::1;14036:10:::0;14024;14073:23:::1;:::i;:::-;:30;;;;:::i;:::-;14064:6;:39:::0;-1:-1:-1;;;13906:205:0:o;2988:422::-;3094:4;3111:36;3121:6;3129:9;3140:6;3111:9;:36::i;:::-;-1:-1:-1;;;;;3187:19:0;;3160:24;3187:19;;;:11;:19;;;;;;;;379:10;3187:33;;;;;;;;3239:26;;;;3231:79;;;;-1:-1:-1;;;3231:79:0;;7776:2:1;3231:79:0;;;7758:21:1;7815:2;7795:18;;;7788:30;7854:34;7834:18;;;7827:62;-1:-1:-1;;;7905:18:1;;;7898:38;7953:19;;3231:79:0;7574:404:1;3231:79:0;3321:57;3330:6;379:10;3352:25;3371:6;3352:16;:25;:::i;:::-;3321:8;:57::i;:::-;-1:-1:-1;3398:4:0;;2988:422;-1:-1:-1;;;;2988:422:0:o;15579:546::-;6589:6;;-1:-1:-1;;;;;6589:6:0;379:10;6651:23;6643:68;;;;-1:-1:-1;;;6643:68:0;;;;;;;:::i;:::-;15718:21:::1;15750:24;15767:6:::0;15750:16:::1;:24::i;:::-;15785:18;15806:35;15830:11:::0;15806:21:::1;:35;:::i;:::-;15785:56:::0;-1:-1:-1;15855:23:0;;15852:136:::1;;15880:108;15951:35;15967:19:::0;15951:13;:35:::1;:::i;:::-;15915:32;15928:19:::0;15915:10;:32:::1;:::i;:::-;:72;;;;:::i;:::-;15888:15;::::0;-1:-1:-1;;;;;15888:15:0::1;::::0;15880:34:::1;:108::i;:::-;16002:17:::0;;15999:118:::1;;16021:96;16080:35;16096:19:::0;16080:13;:35:::1;:::i;:::-;16050:26;16063:13:::0;16050:10;:26:::1;:::i;:::-;:66;;;;:::i;:::-;16029:9;::::0;-1:-1:-1;;;;;16029:9:0::1;::::0;16021:28:::1;:96::i;:::-;15685:440;;15579:546:::0;;;:::o;3418:215::-;379:10;3506:4;3555:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3555:34:0;;;;;;;;;;3506:4;;3523:80;;3546:7;;3555:47;;3592:10;;3555:47;:::i;14586:137::-;6589:6;;-1:-1:-1;;;;;6589:6:0;379:10;6651:23;6643:68;;;;-1:-1:-1;;;6643:68:0;;;;;;;:::i;:::-;14676:6:::1;:16:::0;;-1:-1:-1;;;;;14676:16:0;;::::1;-1:-1:-1::0;;;;;;14676:16:0;;::::1;;::::0;;;14703:4:::1;:12:::0;;;;;::::1;::::0;::::1;;::::0;;14586:137::o;15063:109::-;6589:6;;-1:-1:-1;;;;;6589:6:0;379:10;6651:23;6643:68;;;;-1:-1:-1;;;6643:68:0;;;;;;;:::i;:::-;15149:15:::1;:6:::0;15158::::1;15149:15;:::i;:::-;15135:11;:29:::0;-1:-1:-1;15063:109:0:o;6739:94::-;6589:6;;-1:-1:-1;;;;;6589:6:0;379:10;6651:23;6643:68;;;;-1:-1:-1;;;6643:68:0;;;;;;;:::i;:::-;6804:21:::1;6822:1;6804:9;:21::i;:::-;6739:94::o:0;13624:274::-;6589:6;;-1:-1:-1;;;;;6589:6:0;379:10;6651:23;6643:68;;;;-1:-1:-1;;;6643:68:0;;;;;;;:::i;:::-;13710:14:::1;::::0;-1:-1:-1;;;13710:14:0;::::1;;;13709:15;13701:50;;;::::0;-1:-1:-1;;;13701:50:0;;8710:2:1;13701:50:0::1;::::0;::::1;8692:21:1::0;8749:2;8729:18;;;8722:30;-1:-1:-1;;;8768:18:1;;;8761:52;8830:18;;13701:50:0::1;8508:346:1::0;13701:50:0::1;13762:14;:21:::0;;-1:-1:-1;;;;13794:18:0;-1:-1:-1;;;13794:18:0;;;13839:12:::1;13823:13;:28:::0;13862:10:::1;:28:::0;13624:274::o;15309:142::-;6589:6;;-1:-1:-1;;;;;6589:6:0;379:10;6651:23;6643:68;;;;-1:-1:-1;;;6643:68:0;;;;;;;:::i;:::-;15404:12:::1;-1:-1:-1::0;;;;;15397:29:0::1;;15427:7;6589:6:::0;;-1:-1:-1;;;;;6589:6:0;;6516:87;15427:7:::1;15397:46;::::0;-1:-1:-1;;;;;;15397:46:0::1;::::0;;;;;;-1:-1:-1;;;;;9051:32:1;;;15397:46:0::1;::::0;::::1;9033:51:1::0;9100:18;;;9093:34;;;9006:18;;15397:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15309:142:::0;;:::o;2005:104::-;2061:13;2094:7;2087:14;;;;;:::i;13506:110::-;6589:6;;-1:-1:-1;;;;;6589:6:0;379:10;6651:23;6643:68;;;;-1:-1:-1;;;6643:68:0;;;;;;;:::i;:::-;13582:13:::1;:26:::0;13506:110::o;15459:112::-;6589:6;;-1:-1:-1;;;;;6589:6:0;379:10;6651:23;6643:68;;;;-1:-1:-1;;;6643:68:0;;;;;;;:::i;:::-;15526:37:::1;15553:9;15534:7;6589:6:::0;;-1:-1:-1;;;;;6589:6:0;;6516:87;15534:7:::1;-1:-1:-1::0;;;;;15526:26:0::1;::::0;::::1;:37::i;:::-;15459:112:::0;:::o;9456:290::-;6589:6;;-1:-1:-1;;;;;6589:6:0;379:10;6651:23;6643:68;;;;-1:-1:-1;;;6643:68:0;;;;;;;:::i;:::-;9507:15:::1;9533:42;9507:69;;9587:13;9612:7;-1:-1:-1::0;;;;;9612:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9603:52:0::1;;9664:4;9671:7;-1:-1:-1::0;;;;;9671:12:0::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9603:83;::::0;-1:-1:-1;;;;;;9603:83:0::1;::::0;;;;;;-1:-1:-1;;;;;9874:15:1;;;9603:83:0::1;::::0;::::1;9856:34:1::0;9926:15;;9906:18;;;9899:43;9791:18;;9603:83:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9699:6;:16:::0;;-1:-1:-1;;;;;9699:16:0;;::::1;-1:-1:-1::0;;;;;;9699:16:0;;::::1;;::::0;;;9726:4:::1;:12:::0;;;;;::::1;::::0;::::1;;::::0;;;-1:-1:-1;9456:290:0:o;3641:377::-;379:10;3734:4;3778:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3778:34:0;;;;;;;;;;3831:35;;;;3823:85;;;;-1:-1:-1;;;3823:85:0;;10155:2:1;3823:85:0;;;10137:21:1;10194:2;10174:18;;;10167:30;10233:34;10213:18;;;10206:62;-1:-1:-1;;;10284:18:1;;;10277:35;10329:19;;3823:85:0;9953:401:1;3823:85:0;3919:67;379:10;3942:7;3951:34;3970:15;3951:16;:34;:::i;3919:67::-;-1:-1:-1;4006:4:0;;3641:377;-1:-1:-1;;;3641:377:0:o;14473:105::-;6589:6;;-1:-1:-1;;;;;6589:6:0;379:10;6651:23;6643:68;;;;-1:-1:-1;;;6643:68:0;;;;;;;:::i;:::-;14549:9:::1;:21:::0;;-1:-1:-1;;;;;;14549:21:0::1;-1:-1:-1::0;;;;;14549:21:0;;;::::1;::::0;;;::::1;::::0;;14473:105::o;2469:175::-;2555:4;2572:42;379:10;2596:9;2607:6;2572:9;:42::i;15184:117::-;6589:6;;-1:-1:-1;;;;;6589:6:0;379:10;6651:23;6643:68;;;;-1:-1:-1;;;6643:68:0;;;;;;;:::i;:::-;15278:15:::1;:6:::0;15287::::1;15278:15;:::i;:::-;15260;:33:::0;-1:-1:-1;15184:117:0:o;14739:172::-;6589:6;;-1:-1:-1;;;;;6589:6:0;379:10;6651:23;6643:68;;;;-1:-1:-1;;;6643:68:0;;;;;;;:::i;:::-;14814:6:::1;14809:91;14830:6;:13;14826:1;:17;14809:91;;;14884:4;14865:5;:16;14871:6;14878:1;14871:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14865:16:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14865:16:0;:23;;-1:-1:-1;;14865:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14845:3;::::1;::::0;::::1;:::i;:::-;;;;14809:91;;;;14739:172:::0;:::o;13405:93::-;6589:6;;-1:-1:-1;;;;;6589:6:0;379:10;6651:23;6643:68;;;;-1:-1:-1;;;6643:68:0;;;;;;;:::i;:::-;13471:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;13471:19:0::1;-1:-1:-1::0;;;;13471:19:0;;::::1;::::0;;;::::1;::::0;;13405:93::o;14917:134::-;6589:6;;-1:-1:-1;;;;;6589:6:0;379:10;6651:23;6643:68;;;;-1:-1:-1;;;6643:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15009:26:0;;;::::1;;::::0;;;:16:::1;:26;::::0;;;;:34;;-1:-1:-1;;15009:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14917:134::o;6841:192::-;6589:6;;-1:-1:-1;;;;;6589:6:0;379:10;6651:23;6643:68;;;;-1:-1:-1;;;6643:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6930:22:0;::::1;6922:73;;;::::0;-1:-1:-1;;;6922:73:0;;10833:2:1;6922:73:0::1;::::0;::::1;10815:21:1::0;10872:2;10852:18;;;10845:30;10911:34;10891:18;;;10884:62;-1:-1:-1;;;10962:18:1;;;10955:36;11008:19;;6922:73:0::1;10631:402:1::0;6922:73:0::1;7006:19;7016:8;7006:9;:19::i;14345:116::-:0;6589:6;;-1:-1:-1;;;;;6589:6:0;379:10;6651:23;6643:68;;;;-1:-1:-1;;;6643:68:0;;;;;;;:::i;:::-;14426:15:::1;:27:::0;;-1:-1:-1;;;;;;14426:27:0::1;-1:-1:-1::0;;;;;14426:27:0;;;::::1;::::0;;;::::1;::::0;;14345:116::o;5486:346::-;-1:-1:-1;;;;;5588:19:0;;5580:68;;;;-1:-1:-1;;;5580:68:0;;11240:2:1;5580:68:0;;;11222:21:1;11279:2;11259:18;;;11252:30;11318:34;11298:18;;;11291:62;-1:-1:-1;;;11369:18:1;;;11362:34;11413:19;;5580:68:0;11038:400:1;5580:68:0;-1:-1:-1;;;;;5667:21:0;;5659:68;;;;-1:-1:-1;;;5659:68:0;;11645:2:1;5659:68:0;;;11627:21:1;11684:2;11664:18;;;11657:30;11723:34;11703:18;;;11696:62;-1:-1:-1;;;11774:18:1;;;11767:32;11816:19;;5659:68:0;11443:398:1;5659:68:0;-1:-1:-1;;;;;5740:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5792:32;;160:25:1;;;5792:32:0;;133:18:1;5792:32:0;;;;;;;5486:346;;;:::o;9758:1389::-;9874:1;9865:6;:10;9857:64;;;;-1:-1:-1;;;9857:64:0;;12048:2:1;9857:64:0;;;12030:21:1;12087:2;12067:18;;;12060:30;12126:34;12106:18;;;12099:62;-1:-1:-1;;;12177:18:1;;;12170:39;12226:19;;9857:64:0;11846:405:1;9857:64:0;-1:-1:-1;;;;;9941:13:0;;;;;;:5;:13;;;;;;;;9940:14;:35;;;;-1:-1:-1;;;;;;9959:16:0;;;;;;:5;:16;;;;;;;;9958:17;9940:35;9932:73;;;;-1:-1:-1;;;9932:73:0;;12458:2:1;9932:73:0;;;12440:21:1;12497:2;12477:18;;;12470:30;12536:27;12516:18;;;12509:55;12581:18;;9932:73:0;12256:349:1;9932:73:0;-1:-1:-1;;;;;10048:24:0;;;;;;:16;:24;;;;;;;;10047:25;:57;;;;-1:-1:-1;;;;;;10077:27:0;;;;;;:16;:27;;;;;;;;10076:28;10047:57;:70;;;;-1:-1:-1;10109:8:0;;-1:-1:-1;;;10109:8:0;;;;10108:9;10047:70;10044:589;;;10141:14;;-1:-1:-1;;;10141:14:0;;;;10133:49;;;;-1:-1:-1;;;10133:49:0;;12812:2:1;10133:49:0;;;12794:21:1;12851:2;12831:18;;;12824:30;-1:-1:-1;;;12870:18:1;;;12863:52;12932:18;;10133:49:0;12610:346:1;10133:49:0;10229:12;10216:10;;10200:13;;:26;;;;:::i;:::-;:41;10197:183;;;10277:4;;-1:-1:-1;;;;;10264:17:0;;;10277:4;;10264:17;10261:45;;-1:-1:-1;;;;;10283:16:0;;;;;;:5;:16;;;;;:23;;-1:-1:-1;;10283:23:0;10302:4;10283:23;;;10261:45;10338:4;;-1:-1:-1;;;;;10328:14:0;;;10338:4;;10328:14;10325:39;;-1:-1:-1;;;;;10344:13:0;;;;;;:5;:13;;;;;:20;;-1:-1:-1;;10344:20:0;10360:4;10344:20;;;10325:39;10412:11;;10402:6;:21;;10394:63;;;;-1:-1:-1;;;10394:63:0;;13163:2:1;10394:63:0;;;13145:21:1;13202:2;13182:18;;;13175:30;13241:31;13221:18;;;13214:59;13290:18;;10394:63:0;12961:353:1;10394:63:0;10488:4;;-1:-1:-1;;;;;10475:17:0;;;10488:4;;10475:17;10472:150;;10553:15;;10543:6;10520:20;10530:9;-1:-1:-1;;;;;2435:18:0;2408:7;2435:18;;;;;;;;;;;;2334:127;10520:20;:29;;;;:::i;:::-;:48;;10512:94;;;;-1:-1:-1;;;10512:94:0;;13521:2:1;10512:94:0;;;13503:21:1;13560:2;13540:18;;;13533:30;13599:34;13579:18;;;13572:62;-1:-1:-1;;;13650:18:1;;;13643:31;13691:19;;10512:94:0;13319:397:1;10512:94:0;10685:8;;10645:11;;-1:-1:-1;;;10685:8:0;;;;;:36;;-1:-1:-1;;;;;;10697:24:0;;;;;;:16;:24;;;;;;;;10685:36;:67;;;-1:-1:-1;;;;;;10725:27:0;;;;;;:16;:27;;;;;;;;10685:67;10681:235;;;-1:-1:-1;10760:1:0;10681:235;;;10820:4;;-1:-1:-1;;;;;10807:17:0;;;10820:4;;10807:17;10804:100;;;10854:3;10841:10;;10832:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;10826:31;;10804:100;;;10901:3;10892:6;;10883;:15;;;;:::i;:::-;:21;;;;:::i;:::-;10877:27;;10804:100;10942:11;;-1:-1:-1;;;10942:11:0;;;;:24;;;;-1:-1:-1;10958:8:0;;-1:-1:-1;;;10958:8:0;;;;10957:9;10942:24;:42;;;;-1:-1:-1;10980:4:0;;-1:-1:-1;;;;;10970:14:0;;;10980:4;;10970:14;;10942:42;:53;;;;;10994:1;10988:3;:7;10942:53;10938:72;;;10997:13;:11;:13::i;:::-;11023:48;11039:6;11047:9;11058:12;11067:3;11058:6;:12;:::i;:::-;11023:15;:48::i;:::-;11085:7;;11082:55;;11094:43;11110:6;11126:4;11133:3;11094:15;:43::i;:::-;9846:1301;9758:1389;;;:::o;12492:400::-;12582:16;;;12596:1;12582:16;;;;;;;;12558:21;;12582:16;;;;;;;;;;-1:-1:-1;12582:16:0;12558:40;;12627:4;12609;12614:1;12609:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12609:23:0;;;:7;;;;;;;;;;:23;;;;12653:6;;:13;;;-1:-1:-1;;;12653:13:0;;;;:6;;;;;:11;;:13;;;;;12609:7;;12653:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12643:4;12648:1;12643:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12643:23:0;;;:7;;;;;;;;;:23;12711:6;;12679:53;;12696:4;;12711:6;12720:11;12679:8;:53::i;:::-;12771:6;;:111;;-1:-1:-1;;;12771:111:0;;-1:-1:-1;;;;;12771:6:0;;;;:57;;:111;;12829:11;;12771:6;;12845:4;;12859;;12866:15;;12771:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12547:345;12492:400;:::o;5961:317::-;6076:6;6051:21;:31;;6043:73;;;;-1:-1:-1;;;6043:73:0;;14908:2:1;6043:73:0;;;14890:21:1;14947:2;14927:18;;;14920:30;14986:31;14966:18;;;14959:59;15035:18;;6043:73:0;14706:353:1;6043:73:0;6130:12;6148:9;-1:-1:-1;;;;;6148:14:0;6170:6;6148:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6129:52;;;6200:7;6192:78;;;;-1:-1:-1;;;6192:78:0;;15476:2:1;6192:78:0;;;15458:21:1;15515:2;15495:18;;;15488:30;15554:34;15534:18;;;15527:62;15625:28;15605:18;;;15598:56;15671:19;;6192:78:0;15274:422:1;7041:173:0;7116:6;;;-1:-1:-1;;;;;7133:17:0;;;-1:-1:-1;;;;;;7133:17:0;;;;;;;7166:40;;7116:6;;;7133:17;7116:6;;7166:40;;7097:16;;7166:40;7086:128;7041:173;:::o;11155:1327::-;9037:8;;-1:-1:-1;;;9037:8:0;;;;9032:104;;9062:8;:15;;-1:-1:-1;;;;9062:15:0;-1:-1:-1;;;9062:15:0;;;11248:4:::1;-1:-1:-1::0;2435:18:0;;;;;;;;;;;11204:50:::1;;11288:13;;11269:15;:32;11265:1210;;11328:19;11350:10;;11363:1;11350:14;;;;:::i;:::-;11328:36;;11379:32;11454:11;11432:9;:19;;;11414:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;11379:86:::0;-1:-1:-1;11480:14:0::1;11497:42;11379:86:::0;11497:15;:42:::1;:::i;:::-;11480:59:::0;-1:-1:-1;11585:21:0::1;11627:24;11480:59:::0;11627:16:::1;:24::i;:::-;11672:20;11695:38;11719:14:::0;11695:21:::1;:38;:::i;:::-;11799:19:::0;;11672:61;;-1:-1:-1;11748:19:0::1;::::0;11785:33:::1;::::0;:11;:33:::1;:::i;:::-;11769:50;::::0;:12;:50:::1;:::i;:::-;11880:19:::0;;11748:71;;-1:-1:-1;11834:29:0::1;::::0;11866:33:::1;::::0;11748:71;11866:33:::1;:::i;:::-;11834:65:::0;-1:-1:-1;11923:25:0;;11920:170:::1;;12013:61;12026:24;12052:21;12013:12;:61::i;:::-;12151:9;:19:::0;12110:20:::1;::::0;12133:15:::1;:11:::0;12147:1:::1;12133:15;:::i;:::-;:37;;;;:::i;:::-;12110:60:::0;-1:-1:-1;12188:16:0;;12185:103:::1;;12232:15;::::0;12224:48:::1;::::0;-1:-1:-1;;;;;12232:15:0::1;12259:12:::0;12224:34:::1;:48::i;:::-;12351:13:::0;;12316:14:::1;::::0;12333:15:::1;:11:::0;12351:13:::1;12333:15;:::i;:::-;:31;;;;:::i;:::-;12316:48:::0;-1:-1:-1;12382:10:0;;12379:85:::1;;12420:9;::::0;12412:36:::1;::::0;-1:-1:-1;;;;;12420:9:0::1;12441:6:::0;12412:28:::1;:36::i;:::-;11303:1172;;;;;;;;;11265:1210;-1:-1:-1::0;9108:8:0;:16;;-1:-1:-1;;;;9108:16:0;;;11155:1327::o;4026:604::-;-1:-1:-1;;;;;4132:20:0;;4124:70;;;;-1:-1:-1;;;4124:70:0;;15903:2:1;4124:70:0;;;15885:21:1;15942:2;15922:18;;;15915:30;15981:34;15961:18;;;15954:62;-1:-1:-1;;;16032:18:1;;;16025:35;16077:19;;4124:70:0;15701:401:1;4124:70:0;-1:-1:-1;;;;;4213:23:0;;4205:71;;;;-1:-1:-1;;;4205:71:0;;16309:2:1;4205:71:0;;;16291:21:1;16348:2;16328:18;;;16321:30;16387:34;16367:18;;;16360:62;-1:-1:-1;;;16438:18:1;;;16431:33;16481:19;;4205:71:0;16107:399:1;4205:71:0;-1:-1:-1;;;;;4373:17:0;;4349:21;4373:17;;;;;;;;;;;4409:23;;;;4401:74;;;;-1:-1:-1;;;4401:74:0;;16713:2:1;4401:74:0;;;16695:21:1;16752:2;16732:18;;;16725:30;16791:34;16771:18;;;16764:62;-1:-1:-1;;;16842:18:1;;;16835:36;16888:19;;4401:74:0;16511:402:1;4401:74:0;4506:22;4522:6;4506:13;:22;:::i;:::-;-1:-1:-1;;;;;4486:17:0;;;:9;:17;;;;;;;;;;;:42;;;;4539:20;;;;;;;;:30;;4563:6;;4486:9;4539:30;;4563:6;;4539:30;:::i;:::-;;;;;;;;4604:9;-1:-1:-1;;;;;4587:35:0;4596:6;-1:-1:-1;;;;;4587:35:0;;4615:6;4587:35;;;;160:25:1;;148:2;133:18;;14:177;4587:35:0;;;;;;;;4113:517;4026:604;;;:::o;12900:497::-;13080:6;;13048:53;;13065:4;;-1:-1:-1;;;;;13080:6:0;13089:11;13048:8;:53::i;:::-;13144:6;;13339:9;;13144:245;;-1:-1:-1;;;13144:245:0;;13207:4;13144:245;;;17259:34:1;17309:18;;;17302:34;;;13144:6:0;17352:18:1;;;17345:34;;;17395:18;;;17388:34;-1:-1:-1;;;;;13339:9:0;;;17438:19:1;;;17431:44;13363:15:0;17491:19:1;;;17484:35;13144:6:0;;;:22;;13174:9;;17193:19:1;;13144:245:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:316::-;875:6;883;891;944:2;932:9;923:7;919:23;915:32;912:52;;;960:1;957;950:12;912:52;-1:-1:-1;;983:23:1;;;1053:2;1038:18;;1025:32;;-1:-1:-1;1104:2:1;1089:18;;;1076:32;;798:316;-1:-1:-1;798:316:1:o;1119:131::-;-1:-1:-1;;;;;1194:31:1;;1184:42;;1174:70;;1240:1;1237;1230:12;1255:134;1323:20;;1352:31;1323:20;1352:31;:::i;:::-;1255:134;;;:::o;1394:315::-;1462:6;1470;1523:2;1511:9;1502:7;1498:23;1494:32;1491:52;;;1539:1;1536;1529:12;1491:52;1578:9;1565:23;1597:31;1622:5;1597:31;:::i;:::-;1647:5;1699:2;1684:18;;;;1671:32;;-1:-1:-1;;;1394:315:1:o;1906:456::-;1983:6;1991;1999;2052:2;2040:9;2031:7;2027:23;2023:32;2020:52;;;2068:1;2065;2058:12;2020:52;2107:9;2094:23;2126:31;2151:5;2126:31;:::i;:::-;2176:5;-1:-1:-1;2233:2:1;2218:18;;2205:32;2246:33;2205:32;2246:33;:::i;:::-;1906:456;;2298:7;;-1:-1:-1;;;2352:2:1;2337:18;;;;2324:32;;1906:456::o;2556:403::-;2639:6;2647;2700:2;2688:9;2679:7;2675:23;2671:32;2668:52;;;2716:1;2713;2706:12;2668:52;2755:9;2742:23;2774:31;2799:5;2774:31;:::i;:::-;2824:5;-1:-1:-1;2881:2:1;2866:18;;2853:32;2894:33;2853:32;2894:33;:::i;:::-;2946:7;2936:17;;;2556:403;;;;;:::o;2964:180::-;3023:6;3076:2;3064:9;3055:7;3051:23;3047:32;3044:52;;;3092:1;3089;3082:12;3044:52;-1:-1:-1;3115:23:1;;2964:180;-1:-1:-1;2964:180:1:o;3149:247::-;3208:6;3261:2;3249:9;3240:7;3236:23;3232:32;3229:52;;;3277:1;3274;3267:12;3229:52;3316:9;3303:23;3335:31;3360:5;3335:31;:::i;:::-;3385:5;3149:247;-1:-1:-1;;;3149:247:1:o;3933:127::-;3994:10;3989:3;3985:20;3982:1;3975:31;4025:4;4022:1;4015:15;4049:4;4046:1;4039:15;4065:1121;4149:6;4180:2;4223;4211:9;4202:7;4198:23;4194:32;4191:52;;;4239:1;4236;4229:12;4191:52;4279:9;4266:23;4308:18;4349:2;4341:6;4338:14;4335:34;;;4365:1;4362;4355:12;4335:34;4403:6;4392:9;4388:22;4378:32;;4448:7;4441:4;4437:2;4433:13;4429:27;4419:55;;4470:1;4467;4460:12;4419:55;4506:2;4493:16;4528:2;4524;4521:10;4518:36;;;4534:18;;:::i;:::-;4580:2;4577:1;4573:10;4612:2;4606:9;4675:2;4671:7;4666:2;4662;4658:11;4654:25;4646:6;4642:38;4730:6;4718:10;4715:22;4710:2;4698:10;4695:18;4692:46;4689:72;;;4741:18;;:::i;:::-;4777:2;4770:22;4827:18;;;4861:15;;;;-1:-1:-1;4903:11:1;;;4899:20;;;4931:19;;;4928:39;;;4963:1;4960;4953:12;4928:39;4987:11;;;;5007:148;5023:6;5018:3;5015:15;5007:148;;;5089:23;5108:3;5089:23;:::i;:::-;5077:36;;5040:12;;;;5133;;;;5007:148;;;5174:6;4065:1121;-1:-1:-1;;;;;;;;4065:1121:1:o;5584:118::-;5670:5;5663:13;5656:21;5649:5;5646:32;5636:60;;5692:1;5689;5682:12;5707:241;5763:6;5816:2;5804:9;5795:7;5791:23;5787:32;5784:52;;;5832:1;5829;5822:12;5784:52;5871:9;5858:23;5890:28;5912:5;5890:28;:::i;5953:382::-;6018:6;6026;6079:2;6067:9;6058:7;6054:23;6050:32;6047:52;;;6095:1;6092;6085:12;6047:52;6134:9;6121:23;6153:31;6178:5;6153:31;:::i;:::-;6203:5;-1:-1:-1;6260:2:1;6245:18;;6232:32;6273:30;6232:32;6273:30;:::i;6563:380::-;6642:1;6638:12;;;;6685;;;6706:61;;6760:4;6752:6;6748:17;6738:27;;6706:61;6813:2;6805:6;6802:14;6782:18;6779:38;6776:161;;;6859:10;6854:3;6850:20;6847:1;6840:31;6894:4;6891:1;6884:15;6922:4;6919:1;6912:15;6776:161;;6563:380;;;:::o;6948:356::-;7150:2;7132:21;;;7169:18;;;7162:30;7228:34;7223:2;7208:18;;7201:62;7295:2;7280:18;;6948:356::o;7309:127::-;7370:10;7365:3;7361:20;7358:1;7351:31;7401:4;7398:1;7391:15;7425:4;7422:1;7415:15;7441:128;7481:3;7512:1;7508:6;7505:1;7502:13;7499:39;;;7518:18;;:::i;:::-;-1:-1:-1;7554:9:1;;7441:128::o;7983:125::-;8023:4;8051:1;8048;8045:8;8042:34;;;8056:18;;:::i;:::-;-1:-1:-1;8093:9:1;;7983:125::o;8113:168::-;8153:7;8219:1;8215;8211:6;8207:14;8204:1;8201:21;8196:1;8189:9;8182:17;8178:45;8175:71;;;8226:18;;:::i;:::-;-1:-1:-1;8266:9:1;;8113:168::o;8286:217::-;8326:1;8352;8342:132;;8396:10;8391:3;8387:20;8384:1;8377:31;8431:4;8428:1;8421:15;8459:4;8456:1;8449:15;8342:132;-1:-1:-1;8488:9:1;;8286:217::o;9138:245::-;9205:6;9258:2;9246:9;9237:7;9233:23;9229:32;9226:52;;;9274:1;9271;9264:12;9226:52;9306:9;9300:16;9325:28;9347:5;9325:28;:::i;9388:251::-;9458:6;9511:2;9499:9;9490:7;9486:23;9482:32;9479:52;;;9527:1;9524;9517:12;9479:52;9559:9;9553:16;9578:31;9603:5;9578:31;:::i;10359:127::-;10420:10;10415:3;10411:20;10408:1;10401:31;10451:4;10448:1;10441:15;10475:4;10472:1;10465:15;10491:135;10530:3;-1:-1:-1;;10551:17:1;;10548:43;;;10571:18;;:::i;:::-;-1:-1:-1;10618:1:1;10607:13;;10491:135::o;13721:980::-;13983:4;14031:3;14020:9;14016:19;14062:6;14051:9;14044:25;14088:2;14126:6;14121:2;14110:9;14106:18;14099:34;14169:3;14164:2;14153:9;14149:18;14142:31;14193:6;14228;14222:13;14259:6;14251;14244:22;14297:3;14286:9;14282:19;14275:26;;14336:2;14328:6;14324:15;14310:29;;14357:1;14367:195;14381:6;14378:1;14375:13;14367:195;;;14446:13;;-1:-1:-1;;;;;14442:39:1;14430:52;;14537:15;;;;14502:12;;;;14478:1;14396:9;14367:195;;;-1:-1:-1;;;;;;;14618:32:1;;;;14613:2;14598:18;;14591:60;-1:-1:-1;;;14682:3:1;14667:19;14660:35;14579:3;13721:980;-1:-1:-1;;;13721:980:1:o;17530:306::-;17618:6;17626;17634;17687:2;17675:9;17666:7;17662:23;17658:32;17655:52;;;17703:1;17700;17693:12;17655:52;17732:9;17726:16;17716:26;;17782:2;17771:9;17767:18;17761:25;17751:35;;17826:2;17815:9;17811:18;17805:25;17795:35;;17530:306;;;;;:::o
Swarm Source
ipfs://1f64e40c7f39cf012d6a88f9e029f3a4be355a55e697b438b4048e9d4d1b6938
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.