ERC-20
Overview
Max Total Supply
1,000,000,000 QATAR
Holders
21
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
QatarInu
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-09-29 */ /** // SPDX-License-Identifier: Unlicensed Qatar Inu is coming ! Let's celebrate the World Cup with a 0/0% fees token. https://t.me/QatarInuETH ✨ Initial liquidity: 4 ETH ✨ Anti-Bot / Anti-Snipe: Activated - bots will be blacklisted ✨100% STEALTHLAUNCH. ✨ Max Wallet 3% / Max Tx 2% ✨ 0% FEES ! ✨ No team tokens */ pragma solidity ^0.8.10; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } 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 ); } abstract contract Ownable is Context { address private _owner; mapping(address => bool) internal authorizations; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _transferOwnership(_msgSender()); authorizations[_owner] = true; } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require( owner() == _msgSender() || isAuthorized(_msgSender()), "Ownable: caller is not allowed" ); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function authorize(address adr) public onlyOwner { authorizations[adr] = true; } function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } } 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; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; 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 ); } contract QatarInu is Context, IERC20, Ownable { using SafeMath for uint256; uint256 MAX_INT = 115792089237316195423570985008687907853269984665640564039457584007913129639935; string private constant _name = "Qatar Inu"; string private constant _symbol = "QATAR"; uint8 private constant _decimals = 9; address[] private _sniipers; mapping(address => uint256) _balances; mapping(address => uint256) _lastTX; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private _isSniiper; mapping(address => bool) private _liquidityHolders; mapping(address => bool) private bots; uint256 _totalSupply = 1000000000 * 10**9; //Buy Fee uint256 private _taxFeeOnBuy = 0; //Sell Fee uint256 private _taxFeeOnSell = 0; //Original Fee uint256 private _taxFee = _taxFeeOnSell; uint256 private _previoustaxFee = _taxFee; address payable private _marketingAddress; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = true; bool private inSwap = false; bool private swapEnabled = true; bool private transferDelay = true; bool sniiperProtection = true; uint256 private wipeBlocks = 1; uint256 private launchedAt; uint256 public _maxTxAmount = 20000000 * 10**9; //2 uint256 public _maxWalletSize = 30000000 * 10**9; //3 uint256 public _swapTokensAtAmount = 1000000 * 10**9; //0.1 event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor() { _balances[_msgSender()] = _totalSupply; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _approve(address(this), address(uniswapV2Router), MAX_INT); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_marketingAddress] = true; _isExcludedFromFee[_marketingAddress] = true; //multisig _liquidityHolders[msg.sender] = true; _marketingAddress = payable(msg.sender); emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure 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]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, 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 setWipeBlocks(uint256 newWipeBlocks) public onlyOwner { wipeBlocks = newWipeBlocks; } function setSniiperProtection(bool _sniiperProtection) public onlyOwner { sniiperProtection = _sniiperProtection; } function byeByeSniipers() public onlyOwner lockTheSwap { if (_sniipers.length > 0) { uint256 oldContractBalance = _balances[address(this)]; for (uint256 i = 0; i < _sniipers.length; i++) { _balances[address(this)] = _balances[address(this)].add( _balances[_sniipers[i]] ); emit Transfer( _sniipers[i], address(this), _balances[_sniipers[i]] ); _balances[_sniipers[i]] = 0; } uint256 collectedTokens = _balances[address(this)] - oldContractBalance; address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( collectedTokens, 0, path, _marketingAddress, block.timestamp ); } } 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 from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (!_isExcludedFromFee[to] && !_isExcludedFromFee[from]) { require(tradingOpen, "TOKEN: Trading not yet started"); require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require( !bots[from] && !bots[to], "TOKEN: Your account is blacklisted!" ); if (sniiperProtection) { if ( launchedAt > 0 && from == uniswapV2Pair && !_liquidityHolders[from] && !_liquidityHolders[to] ) { if (block.number - launchedAt <= wipeBlocks) { if (!_isSniiper[to]) { _sniipers.push(to); } _isSniiper[to] = true; } } } if (to != uniswapV2Pair) { if (from == uniswapV2Pair && transferDelay) { require( _lastTX[tx.origin] + 3 minutes < block.timestamp && _lastTX[to] + 3 minutes < block.timestamp, "TOKEN: 3 minutes cooldown between buys" ); } require( balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!" ); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if (contractTokenBalance >= _swapTokensAtAmount) { contractTokenBalance = _swapTokensAtAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled) { swapTokensForEth(contractTokenBalance); // Reserve of 15% of tokens for liquidity uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0 ether) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ( (_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair) ) { takeFee = false; } else { //Set Fee for Buys if (from == uniswapV2Pair && to != address(uniswapV2Router)) { _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _taxFee = _taxFeeOnSell; } } _lastTX[tx.origin] = block.timestamp; _lastTX[to] = block.timestamp; _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { uint256 ethAmt = tokenAmount.mul(85).div(100); uint256 liqAmt = tokenAmount - ethAmt; uint256 balanceBefore = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( ethAmt, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); addLiquidity(liqAmt, amountETH.mul(15).div(100)); } function sendETHToFee(uint256 amount) private { (bool success, ) = _marketingAddress.call{value: amount}(""); require(success); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable address(0), block.timestamp ); } function openTrading() public onlyOwner { tradingOpen = true; sniiperProtection = true; launchedAt = block.number; } function manualswap() external onlyOwner { uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) { _transferNoTax(sender, recipient, amount); } else { _transferStandard(sender, recipient, amount); } } function airdrop(address[] calldata recipients, uint256[] calldata amount) public onlyOwner { for (uint256 i = 0; i < recipients.length; i++) { _transferNoTax(msg.sender, recipients[i], amount[i]); } } function _transferStandard( address sender, address recipient, uint256 amount ) private { uint256 amountReceived = takeFees(sender, amount); _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); } function _transferNoTax( 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 takeFees(address sender, uint256 amount) internal returns (uint256) { uint256 feeAmount = amount.mul(_taxFee).div(100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } receive() external payable {} function transferOwnership(address newOwner) public override onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _isExcludedFromFee[owner()] = false; _transferOwnership(newOwner); _isExcludedFromFee[owner()] = true; } function setFees(uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function setIsFeeExempt(address holder, bool exempt) public onlyOwner { _isExcludedFromFee[holder] = exempt; } function toggleTransferDelay() public onlyOwner { transferDelay = !transferDelay; } function recoverLosteth() external onlyOwner { (bool success, ) = address(payable(msg.sender)).call{ value: address(this).balance }(""); require(success); } function recoverLostTokens(address _token, uint256 _amount) external onlyOwner { IERC20(_token).transfer(msg.sender, _amount); } }
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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amount","type":"uint256[]"}],"name":"airdrop","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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"byeByeSniipers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverLostTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverLosteth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_sniiperProtection","type":"bool"}],"name":"setSniiperProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newWipeBlocks","type":"uint256"}],"name":"setWipeBlocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleTransferDelay","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600019600255670de0b6b3a7640000600b556000600c819055600d819055600e819055600f556012805464ffffffffff60a01b191664010101000160a01b179055600160135566470de4df820000601555666a94d74f43000060165566038d7ea4c680006017553480156200007857600080fd5b50620000843362000364565b600080546001600160a01b03168152600160208181526040808420805460ff1916909317909255600b5433845260048083529383902055601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b815292519093849363c45a01559381830193909290918290030181865afa1580156200011e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001449190620004e0565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000192573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b89190620004e0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000206573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022c9190620004e0565b601280546001600160a01b0319166001600160a01b039283161790556011546002546200025d9230921690620003b4565b600160076000620002766000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526007845282812080548616600190811790915560108054841683528483208054881683179055805490931682528382208054871682179055338083526009909552929020805490941690911790925581546001600160a01b0319161790556200030d3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040516200035591815260200190565b60405180910390a35062000512565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166200041c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166200047f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000413565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600060208284031215620004f357600080fd5b81516001600160a01b03811681146200050b57600080fd5b9392505050565b61283c80620005226000396000f3fe60806040526004361061021d5760003560e01c806370a0823111610123578063a9059cbb116100ab578063dec2ba0f1161006f578063dec2ba0f1461065a578063ea1644d51461067a578063f0b37c041461069a578063f2fde38b146106ba578063fe9fbb80146106da57600080fd5b8063a9059cbb146105aa578063b6a5d7de146105ca578063c3c8cd80146105ea578063c9567bf9146105ff578063dd62ed3e1461061457600080fd5b80638da5cb5b116100f25780638da5cb5b146105135780638eb59a5f146105315780638f9a55c01461054657806395d89b411461055c57806398a5c3151461058a57600080fd5b806370a0823114610492578063715018a6146104c857806374010ece146104dd5780637d1db4a5146104fd57600080fd5b8063313ce567116101a65780635b8b7815116101755780635b8b7815146103fd578063658d4b7f1461041257806367243482146104325780636b999053146104525780636d8aa8f81461047257600080fd5b8063313ce5671461038c57806333596f50146103a857806349bd5a5e146103bd5780634ef1e040146103dd57600080fd5b80631694505e116101ed5780631694505e146102df57806318160ddd1461031757806323b872dd146103365780632f21411a146103565780632fd689e31461037657600080fd5b8062b8cf2a1461022957806306fdde031461024b578063095ea7b31461028f5780630b78f9c0146102bf57600080fd5b3661022457005b600080fd5b34801561023557600080fd5b506102496102443660046122d9565b610713565b005b34801561025757600080fd5b50604080518082019091526009815268516174617220496e7560b81b60208201525b604051610286919061239e565b60405180910390f35b34801561029b57600080fd5b506102af6102aa3660046123ec565b6107c1565b6040519015158152602001610286565b3480156102cb57600080fd5b506102496102da366004612418565b6107d8565b3480156102eb57600080fd5b506011546102ff906001600160a01b031681565b6040516001600160a01b039091168152602001610286565b34801561032357600080fd5b50600b545b604051908152602001610286565b34801561034257600080fd5b506102af61035136600461243a565b61081c565b34801561036257600080fd5b50610249610371366004612489565b610885565b34801561038257600080fd5b5061032860175481565b34801561039857600080fd5b5060405160098152602001610286565b3480156103b457600080fd5b506102496108dc565b3480156103c957600080fd5b506012546102ff906001600160a01b031681565b3480156103e957600080fd5b506102496103f83660046124a6565b61096d565b34801561040957600080fd5b506102496109ab565b34801561041e57600080fd5b5061024961042d3660046124bf565b610cd1565b34801561043e57600080fd5b5061024961044d366004612544565b610d35565b34801561045e57600080fd5b5061024961046d3660046125b0565b610ddc565b34801561047e57600080fd5b5061024961048d366004612489565b610e36565b34801561049e57600080fd5b506103286104ad3660046125b0565b6001600160a01b031660009081526004602052604090205490565b3480156104d457600080fd5b50610249610e8d565b3480156104e957600080fd5b506102496104f83660046124a6565b610ed2565b34801561050957600080fd5b5061032860155481565b34801561051f57600080fd5b506000546001600160a01b03166102ff565b34801561053d57600080fd5b50610249610f10565b34801561055257600080fd5b5061032860165481565b34801561056857600080fd5b5060408051808201909152600581526428a0aa20a960d91b6020820152610279565b34801561059657600080fd5b506102496105a53660046124a6565b610f6a565b3480156105b657600080fd5b506102af6105c53660046123ec565b610fa8565b3480156105d657600080fd5b506102496105e53660046125b0565b610fb5565b3480156105f657600080fd5b50610249611015565b34801561060b57600080fd5b50610249611067565b34801561062057600080fd5b5061032861062f3660046125cd565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561066657600080fd5b506102496106753660046123ec565b6110c1565b34801561068657600080fd5b506102496106953660046124a6565b611170565b3480156106a657600080fd5b506102496106b53660046125b0565b6111ae565b3480156106c657600080fd5b506102496106d53660046125b0565b611208565b3480156106e657600080fd5b506102af6106f53660046125b0565b6001600160a01b031660009081526001602052604090205460ff1690565b6000546001600160a01b03163314806107305750610730336106f5565b6107555760405162461bcd60e51b815260040161074c906125fb565b60405180910390fd5b60005b81518110156107bd576001600a600084848151811061077957610779612632565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107b58161265e565b915050610758565b5050565b60006107ce338484611332565b5060015b92915050565b6000546001600160a01b03163314806107f557506107f5336106f5565b6108115760405162461bcd60e51b815260040161074c906125fb565b600c91909155600d55565b6000610829848484611456565b61087b8433610876856040518060600160405280602881526020016127bf602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611b4d565b611332565b5060019392505050565b6000546001600160a01b03163314806108a257506108a2336106f5565b6108be5760405162461bcd60e51b815260040161074c906125fb565b60128054911515600160c01b0260ff60c01b19909216919091179055565b6000546001600160a01b03163314806108f957506108f9336106f5565b6109155760405162461bcd60e51b815260040161074c906125fb565b604051600090339047908381818185875af1925050503d8060008114610957576040519150601f19603f3d011682016040523d82523d6000602084013e61095c565b606091505b505090508061096a57600080fd5b50565b6000546001600160a01b031633148061098a575061098a336106f5565b6109a65760405162461bcd60e51b815260040161074c906125fb565b601355565b6000546001600160a01b03163314806109c857506109c8336106f5565b6109e45760405162461bcd60e51b815260040161074c906125fb565b6012805460ff60a81b1916600160a81b17905560035415610cc25730600090815260046020526040812054905b600354811015610b5a57610a6d6004600060038481548110610a3557610a35612632565b60009182526020808320909101546001600160a01b031683528281019390935260409182018120543082526004909352205490611b87565b306000818152600460205260409020919091556003805483908110610a9457610a94612632565b6000918252602082200154600380546001600160a01b03909216926000805160206127e7833981519152926004929087908110610ad357610ad3612632565b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190205490519081520160405180910390a360006004600060038481548110610b2357610b23612632565b60009182526020808320909101546001600160a01b0316835282019290925260400190205580610b528161265e565b915050610a11565b5030600090815260046020526040812054610b76908390612677565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610bb057610bb0612632565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610c09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2d919061268a565b81600181518110610c4057610c40612632565b6001600160a01b03928316602091820292909201015260115460105460405163791ac94760e01b81529183169263791ac94792610c8c92879260009288929091169042906004016126eb565b600060405180830381600087803b158015610ca657600080fd5b505af1158015610cba573d6000803e3d6000fd5b505050505050505b6012805460ff60a81b19169055565b6000546001600160a01b0316331480610cee5750610cee336106f5565b610d0a5760405162461bcd60e51b815260040161074c906125fb565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331480610d525750610d52336106f5565b610d6e5760405162461bcd60e51b815260040161074c906125fb565b60005b83811015610dd557610dc233868684818110610d8f57610d8f612632565b9050602002016020810190610da491906125b0565b858585818110610db657610db6612632565b90506020020135611bed565b5080610dcd8161265e565b915050610d71565b5050505050565b6000546001600160a01b0316331480610df95750610df9336106f5565b610e155760405162461bcd60e51b815260040161074c906125fb565b6001600160a01b03166000908152600a60205260409020805460ff19169055565b6000546001600160a01b0316331480610e535750610e53336106f5565b610e6f5760405162461bcd60e51b815260040161074c906125fb565b60128054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b0316331480610eaa5750610eaa336106f5565b610ec65760405162461bcd60e51b815260040161074c906125fb565b610ed06000611cc1565b565b6000546001600160a01b0316331480610eef5750610eef336106f5565b610f0b5760405162461bcd60e51b815260040161074c906125fb565b601555565b6000546001600160a01b0316331480610f2d5750610f2d336106f5565b610f495760405162461bcd60e51b815260040161074c906125fb565b6012805460ff60b81b198116600160b81b9182900460ff1615909102179055565b6000546001600160a01b0316331480610f875750610f87336106f5565b610fa35760405162461bcd60e51b815260040161074c906125fb565b601755565b60006107ce338484611456565b6000546001600160a01b0316331480610fd25750610fd2336106f5565b610fee5760405162461bcd60e51b815260040161074c906125fb565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314806110325750611032336106f5565b61104e5760405162461bcd60e51b815260040161074c906125fb565b3060009081526004602052604090205461096a81611d11565b6000546001600160a01b03163314806110845750611084336106f5565b6110a05760405162461bcd60e51b815260040161074c906125fb565b6012805464ff000000ff60a01b191664010000000160a01b17905543601455565b6000546001600160a01b03163314806110de57506110de336106f5565b6110fa5760405162461bcd60e51b815260040161074c906125fb565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b9190612727565b505050565b6000546001600160a01b031633148061118d575061118d336106f5565b6111a95760405162461bcd60e51b815260040161074c906125fb565b601655565b6000546001600160a01b03163314806111cb57506111cb336106f5565b6111e75760405162461bcd60e51b815260040161074c906125fb565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314806112255750611225336106f5565b6112415760405162461bcd60e51b815260040161074c906125fb565b6001600160a01b0381166112a65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161074c565b6000600760006112be6000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556112ef81611cc1565b6001600760006113076000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905550565b6001600160a01b0383166113945760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161074c565b6001600160a01b0382166113f55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161074c565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166114ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161074c565b6001600160a01b03821661151c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161074c565b6000811161157e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161074c565b6001600160a01b03821660009081526007602052604090205460ff161580156115c057506001600160a01b03831660009081526007602052604090205460ff16155b15611a2857601254600160a01b900460ff1661161e5760405162461bcd60e51b815260206004820152601e60248201527f544f4b454e3a2054726164696e67206e6f742079657420737461727465640000604482015260640161074c565b6015548111156116705760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161074c565b6001600160a01b0383166000908152600a602052604090205460ff161580156116b257506001600160a01b0382166000908152600a602052604090205460ff16155b61170a5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161074c565b601254600160c01b900460ff161561182f57600060145411801561173b57506012546001600160a01b038481169116145b801561176057506001600160a01b03831660009081526009602052604090205460ff16155b801561178557506001600160a01b03821660009081526009602052604090205460ff16155b1561182f5760135460145461179a9043612677565b1161182f576001600160a01b03821660009081526008602052604090205460ff1661180b57600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319166001600160a01b0384161790555b6001600160a01b0382166000908152600860205260409020805460ff191660011790555b6012546001600160a01b0383811691161461199d576012546001600160a01b03848116911614801561186a5750601254600160b81b900460ff165b156119175732600090815260056020526040902054429061188c9060b4612744565b1080156118bc57506001600160a01b03821660009081526005602052604090205442906118ba9060b4612744565b105b6119175760405162461bcd60e51b815260206004820152602660248201527f544f4b454e3a2033206d696e7574657320636f6f6c646f776e206265747765656044820152656e206275797360d01b606482015260840161074c565b6016548161193a846001600160a01b031660009081526004602052604090205490565b6119449190612744565b1061199d5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161074c565b3060009081526004602052604090205460175481108015906119bf5760175491505b8080156119d65750601254600160a81b900460ff16155b80156119f057506012546001600160a01b03868116911614155b8015611a055750601254600160b01b900460ff165b15611a2557611a1382611d11565b478015611a2357611a2347611ed1565b505b50505b6001600160a01b03831660009081526007602052604090205460019060ff1680611a6a57506001600160a01b03831660009081526007602052604090205460ff165b80611a9c57506012546001600160a01b03858116911614801590611a9c57506012546001600160a01b03848116911614155b15611aa957506000611b17565b6012546001600160a01b038581169116148015611ad457506011546001600160a01b03848116911614155b15611ae057600c54600e555b6012546001600160a01b038481169116148015611b0b57506011546001600160a01b03858116911614155b15611b1757600d54600e555b3260009081526005602052604080822042908190556001600160a01b0386168352912055611b4784848484611f31565b50505050565b60008184841115611b715760405162461bcd60e51b815260040161074c919061239e565b506000611b7e8486612677565b95945050505050565b600080611b948385612744565b905083811015611be65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161074c565b9392505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600490915291822054611c3e918490611b4d565b6001600160a01b038086166000908152600460205260408082209390935590851681522054611c6d9083611b87565b6001600160a01b0380851660008181526004602052604090819020939093559151908616906000805160206127e783398151915290611caf9086815260200190565b60405180910390a35060019392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6012805460ff60a81b1916600160a81b1790556000611d3c6064611d36846055611f52565b90611fd4565b90506000611d4a8284612677565b60408051600280825260608201835292935047926000926020830190803683370190505090503081600081518110611d8457611d84612632565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e01919061268a565b81600181518110611e1457611e14612632565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac94790611e5a9087906000908690309042906004016126eb565b600060405180830381600087803b158015611e7457600080fd5b505af1158015611e88573d6000803e3d6000fd5b505050506000611ea1834761201690919063ffffffff16565b9050611ebc84611eb76064611d3685600f611f52565b612058565b50506012805460ff60a81b1916905550505050565b6010546040516000916001600160a01b03169083908381818185875af1925050503d8060008114611f1e576040519150601f19603f3d011682016040523d82523d6000602084013e611f23565b606091505b50509050806107bd57600080fd5b80611f4757611f41848484611bed565b50611b47565b611b478484846120ea565b600082600003611f64575060006107d2565b6000611f708385612757565b905082611f7d858361276e565b14611be65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161074c565b6000611be683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121dd565b6000611be683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b4d565b60115460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156120c5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dd59190612790565b60006120f6848361220b565b905061215e8260405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060046000886001600160a01b03166001600160a01b0316815260200190815260200160002054611b4d9092919063ffffffff16565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461218d9082611b87565b6001600160a01b0380851660008181526004602052604090819020939093559151908616906000805160206127e7833981519152906121cf9085815260200190565b60405180910390a350505050565b600081836121fe5760405162461bcd60e51b815260040161074c919061239e565b506000611b7e848661276e565b6000806122286064611d36600e5486611f5290919063ffffffff16565b306000908152600460205260409020549091506122459082611b87565b30600081815260046020526040908190209290925590516001600160a01b038616906000805160206127e7833981519152906122849085815260200190565b60405180910390a36122968382612016565b949350505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461096a57600080fd5b80356122d4816122b4565b919050565b600060208083850312156122ec57600080fd5b823567ffffffffffffffff8082111561230457600080fd5b818501915085601f83011261231857600080fd5b81358181111561232a5761232a61229e565b8060051b604051601f19603f8301168101818110858211171561234f5761234f61229e565b60405291825284820192508381018501918883111561236d57600080fd5b938501935b8285101561239257612383856122c9565b84529385019392850192612372565b98975050505050505050565b600060208083528351808285015260005b818110156123cb578581018301518582016040015282016123af565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156123ff57600080fd5b823561240a816122b4565b946020939093013593505050565b6000806040838503121561242b57600080fd5b50508035926020909101359150565b60008060006060848603121561244f57600080fd5b833561245a816122b4565b9250602084013561246a816122b4565b929592945050506040919091013590565b801515811461096a57600080fd5b60006020828403121561249b57600080fd5b8135611be68161247b565b6000602082840312156124b857600080fd5b5035919050565b600080604083850312156124d257600080fd5b82356124dd816122b4565b915060208301356124ed8161247b565b809150509250929050565b60008083601f84011261250a57600080fd5b50813567ffffffffffffffff81111561252257600080fd5b6020830191508360208260051b850101111561253d57600080fd5b9250929050565b6000806000806040858703121561255a57600080fd5b843567ffffffffffffffff8082111561257257600080fd5b61257e888389016124f8565b9096509450602087013591508082111561259757600080fd5b506125a4878288016124f8565b95989497509550505050565b6000602082840312156125c257600080fd5b8135611be6816122b4565b600080604083850312156125e057600080fd5b82356125eb816122b4565b915060208301356124ed816122b4565b6020808252601e908201527f4f776e61626c653a2063616c6c6572206973206e6f7420616c6c6f7765640000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161267057612670612648565b5060010190565b818103818111156107d2576107d2612648565b60006020828403121561269c57600080fd5b8151611be6816122b4565b600081518084526020808501945080840160005b838110156126e05781516001600160a01b0316875295820195908201906001016126bb565b509495945050505050565b85815284602082015260a06040820152600061270a60a08301866126a7565b6001600160a01b0394909416606083015250608001529392505050565b60006020828403121561273957600080fd5b8151611be68161247b565b808201808211156107d2576107d2612648565b80820281158282048414176107d2576107d2612648565b60008261278b57634e487b7160e01b600052601260045260246000fd5b500490565b6000806000606084860312156127a557600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122088683a3ee5a8ce623e6b2d4d54724c64601f9860b5dbd5f1654b6789d6ca072164736f6c63430008110033
Deployed Bytecode
0x60806040526004361061021d5760003560e01c806370a0823111610123578063a9059cbb116100ab578063dec2ba0f1161006f578063dec2ba0f1461065a578063ea1644d51461067a578063f0b37c041461069a578063f2fde38b146106ba578063fe9fbb80146106da57600080fd5b8063a9059cbb146105aa578063b6a5d7de146105ca578063c3c8cd80146105ea578063c9567bf9146105ff578063dd62ed3e1461061457600080fd5b80638da5cb5b116100f25780638da5cb5b146105135780638eb59a5f146105315780638f9a55c01461054657806395d89b411461055c57806398a5c3151461058a57600080fd5b806370a0823114610492578063715018a6146104c857806374010ece146104dd5780637d1db4a5146104fd57600080fd5b8063313ce567116101a65780635b8b7815116101755780635b8b7815146103fd578063658d4b7f1461041257806367243482146104325780636b999053146104525780636d8aa8f81461047257600080fd5b8063313ce5671461038c57806333596f50146103a857806349bd5a5e146103bd5780634ef1e040146103dd57600080fd5b80631694505e116101ed5780631694505e146102df57806318160ddd1461031757806323b872dd146103365780632f21411a146103565780632fd689e31461037657600080fd5b8062b8cf2a1461022957806306fdde031461024b578063095ea7b31461028f5780630b78f9c0146102bf57600080fd5b3661022457005b600080fd5b34801561023557600080fd5b506102496102443660046122d9565b610713565b005b34801561025757600080fd5b50604080518082019091526009815268516174617220496e7560b81b60208201525b604051610286919061239e565b60405180910390f35b34801561029b57600080fd5b506102af6102aa3660046123ec565b6107c1565b6040519015158152602001610286565b3480156102cb57600080fd5b506102496102da366004612418565b6107d8565b3480156102eb57600080fd5b506011546102ff906001600160a01b031681565b6040516001600160a01b039091168152602001610286565b34801561032357600080fd5b50600b545b604051908152602001610286565b34801561034257600080fd5b506102af61035136600461243a565b61081c565b34801561036257600080fd5b50610249610371366004612489565b610885565b34801561038257600080fd5b5061032860175481565b34801561039857600080fd5b5060405160098152602001610286565b3480156103b457600080fd5b506102496108dc565b3480156103c957600080fd5b506012546102ff906001600160a01b031681565b3480156103e957600080fd5b506102496103f83660046124a6565b61096d565b34801561040957600080fd5b506102496109ab565b34801561041e57600080fd5b5061024961042d3660046124bf565b610cd1565b34801561043e57600080fd5b5061024961044d366004612544565b610d35565b34801561045e57600080fd5b5061024961046d3660046125b0565b610ddc565b34801561047e57600080fd5b5061024961048d366004612489565b610e36565b34801561049e57600080fd5b506103286104ad3660046125b0565b6001600160a01b031660009081526004602052604090205490565b3480156104d457600080fd5b50610249610e8d565b3480156104e957600080fd5b506102496104f83660046124a6565b610ed2565b34801561050957600080fd5b5061032860155481565b34801561051f57600080fd5b506000546001600160a01b03166102ff565b34801561053d57600080fd5b50610249610f10565b34801561055257600080fd5b5061032860165481565b34801561056857600080fd5b5060408051808201909152600581526428a0aa20a960d91b6020820152610279565b34801561059657600080fd5b506102496105a53660046124a6565b610f6a565b3480156105b657600080fd5b506102af6105c53660046123ec565b610fa8565b3480156105d657600080fd5b506102496105e53660046125b0565b610fb5565b3480156105f657600080fd5b50610249611015565b34801561060b57600080fd5b50610249611067565b34801561062057600080fd5b5061032861062f3660046125cd565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561066657600080fd5b506102496106753660046123ec565b6110c1565b34801561068657600080fd5b506102496106953660046124a6565b611170565b3480156106a657600080fd5b506102496106b53660046125b0565b6111ae565b3480156106c657600080fd5b506102496106d53660046125b0565b611208565b3480156106e657600080fd5b506102af6106f53660046125b0565b6001600160a01b031660009081526001602052604090205460ff1690565b6000546001600160a01b03163314806107305750610730336106f5565b6107555760405162461bcd60e51b815260040161074c906125fb565b60405180910390fd5b60005b81518110156107bd576001600a600084848151811061077957610779612632565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107b58161265e565b915050610758565b5050565b60006107ce338484611332565b5060015b92915050565b6000546001600160a01b03163314806107f557506107f5336106f5565b6108115760405162461bcd60e51b815260040161074c906125fb565b600c91909155600d55565b6000610829848484611456565b61087b8433610876856040518060600160405280602881526020016127bf602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190611b4d565b611332565b5060019392505050565b6000546001600160a01b03163314806108a257506108a2336106f5565b6108be5760405162461bcd60e51b815260040161074c906125fb565b60128054911515600160c01b0260ff60c01b19909216919091179055565b6000546001600160a01b03163314806108f957506108f9336106f5565b6109155760405162461bcd60e51b815260040161074c906125fb565b604051600090339047908381818185875af1925050503d8060008114610957576040519150601f19603f3d011682016040523d82523d6000602084013e61095c565b606091505b505090508061096a57600080fd5b50565b6000546001600160a01b031633148061098a575061098a336106f5565b6109a65760405162461bcd60e51b815260040161074c906125fb565b601355565b6000546001600160a01b03163314806109c857506109c8336106f5565b6109e45760405162461bcd60e51b815260040161074c906125fb565b6012805460ff60a81b1916600160a81b17905560035415610cc25730600090815260046020526040812054905b600354811015610b5a57610a6d6004600060038481548110610a3557610a35612632565b60009182526020808320909101546001600160a01b031683528281019390935260409182018120543082526004909352205490611b87565b306000818152600460205260409020919091556003805483908110610a9457610a94612632565b6000918252602082200154600380546001600160a01b03909216926000805160206127e7833981519152926004929087908110610ad357610ad3612632565b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190205490519081520160405180910390a360006004600060038481548110610b2357610b23612632565b60009182526020808320909101546001600160a01b0316835282019290925260400190205580610b528161265e565b915050610a11565b5030600090815260046020526040812054610b76908390612677565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610bb057610bb0612632565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610c09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2d919061268a565b81600181518110610c4057610c40612632565b6001600160a01b03928316602091820292909201015260115460105460405163791ac94760e01b81529183169263791ac94792610c8c92879260009288929091169042906004016126eb565b600060405180830381600087803b158015610ca657600080fd5b505af1158015610cba573d6000803e3d6000fd5b505050505050505b6012805460ff60a81b19169055565b6000546001600160a01b0316331480610cee5750610cee336106f5565b610d0a5760405162461bcd60e51b815260040161074c906125fb565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331480610d525750610d52336106f5565b610d6e5760405162461bcd60e51b815260040161074c906125fb565b60005b83811015610dd557610dc233868684818110610d8f57610d8f612632565b9050602002016020810190610da491906125b0565b858585818110610db657610db6612632565b90506020020135611bed565b5080610dcd8161265e565b915050610d71565b5050505050565b6000546001600160a01b0316331480610df95750610df9336106f5565b610e155760405162461bcd60e51b815260040161074c906125fb565b6001600160a01b03166000908152600a60205260409020805460ff19169055565b6000546001600160a01b0316331480610e535750610e53336106f5565b610e6f5760405162461bcd60e51b815260040161074c906125fb565b60128054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b0316331480610eaa5750610eaa336106f5565b610ec65760405162461bcd60e51b815260040161074c906125fb565b610ed06000611cc1565b565b6000546001600160a01b0316331480610eef5750610eef336106f5565b610f0b5760405162461bcd60e51b815260040161074c906125fb565b601555565b6000546001600160a01b0316331480610f2d5750610f2d336106f5565b610f495760405162461bcd60e51b815260040161074c906125fb565b6012805460ff60b81b198116600160b81b9182900460ff1615909102179055565b6000546001600160a01b0316331480610f875750610f87336106f5565b610fa35760405162461bcd60e51b815260040161074c906125fb565b601755565b60006107ce338484611456565b6000546001600160a01b0316331480610fd25750610fd2336106f5565b610fee5760405162461bcd60e51b815260040161074c906125fb565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314806110325750611032336106f5565b61104e5760405162461bcd60e51b815260040161074c906125fb565b3060009081526004602052604090205461096a81611d11565b6000546001600160a01b03163314806110845750611084336106f5565b6110a05760405162461bcd60e51b815260040161074c906125fb565b6012805464ff000000ff60a01b191664010000000160a01b17905543601455565b6000546001600160a01b03163314806110de57506110de336106f5565b6110fa5760405162461bcd60e51b815260040161074c906125fb565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b9190612727565b505050565b6000546001600160a01b031633148061118d575061118d336106f5565b6111a95760405162461bcd60e51b815260040161074c906125fb565b601655565b6000546001600160a01b03163314806111cb57506111cb336106f5565b6111e75760405162461bcd60e51b815260040161074c906125fb565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314806112255750611225336106f5565b6112415760405162461bcd60e51b815260040161074c906125fb565b6001600160a01b0381166112a65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161074c565b6000600760006112be6000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556112ef81611cc1565b6001600760006113076000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905550565b6001600160a01b0383166113945760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161074c565b6001600160a01b0382166113f55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161074c565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166114ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161074c565b6001600160a01b03821661151c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161074c565b6000811161157e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161074c565b6001600160a01b03821660009081526007602052604090205460ff161580156115c057506001600160a01b03831660009081526007602052604090205460ff16155b15611a2857601254600160a01b900460ff1661161e5760405162461bcd60e51b815260206004820152601e60248201527f544f4b454e3a2054726164696e67206e6f742079657420737461727465640000604482015260640161074c565b6015548111156116705760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161074c565b6001600160a01b0383166000908152600a602052604090205460ff161580156116b257506001600160a01b0382166000908152600a602052604090205460ff16155b61170a5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161074c565b601254600160c01b900460ff161561182f57600060145411801561173b57506012546001600160a01b038481169116145b801561176057506001600160a01b03831660009081526009602052604090205460ff16155b801561178557506001600160a01b03821660009081526009602052604090205460ff16155b1561182f5760135460145461179a9043612677565b1161182f576001600160a01b03821660009081526008602052604090205460ff1661180b57600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319166001600160a01b0384161790555b6001600160a01b0382166000908152600860205260409020805460ff191660011790555b6012546001600160a01b0383811691161461199d576012546001600160a01b03848116911614801561186a5750601254600160b81b900460ff165b156119175732600090815260056020526040902054429061188c9060b4612744565b1080156118bc57506001600160a01b03821660009081526005602052604090205442906118ba9060b4612744565b105b6119175760405162461bcd60e51b815260206004820152602660248201527f544f4b454e3a2033206d696e7574657320636f6f6c646f776e206265747765656044820152656e206275797360d01b606482015260840161074c565b6016548161193a846001600160a01b031660009081526004602052604090205490565b6119449190612744565b1061199d5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161074c565b3060009081526004602052604090205460175481108015906119bf5760175491505b8080156119d65750601254600160a81b900460ff16155b80156119f057506012546001600160a01b03868116911614155b8015611a055750601254600160b01b900460ff165b15611a2557611a1382611d11565b478015611a2357611a2347611ed1565b505b50505b6001600160a01b03831660009081526007602052604090205460019060ff1680611a6a57506001600160a01b03831660009081526007602052604090205460ff165b80611a9c57506012546001600160a01b03858116911614801590611a9c57506012546001600160a01b03848116911614155b15611aa957506000611b17565b6012546001600160a01b038581169116148015611ad457506011546001600160a01b03848116911614155b15611ae057600c54600e555b6012546001600160a01b038481169116148015611b0b57506011546001600160a01b03858116911614155b15611b1757600d54600e555b3260009081526005602052604080822042908190556001600160a01b0386168352912055611b4784848484611f31565b50505050565b60008184841115611b715760405162461bcd60e51b815260040161074c919061239e565b506000611b7e8486612677565b95945050505050565b600080611b948385612744565b905083811015611be65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161074c565b9392505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600490915291822054611c3e918490611b4d565b6001600160a01b038086166000908152600460205260408082209390935590851681522054611c6d9083611b87565b6001600160a01b0380851660008181526004602052604090819020939093559151908616906000805160206127e783398151915290611caf9086815260200190565b60405180910390a35060019392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6012805460ff60a81b1916600160a81b1790556000611d3c6064611d36846055611f52565b90611fd4565b90506000611d4a8284612677565b60408051600280825260608201835292935047926000926020830190803683370190505090503081600081518110611d8457611d84612632565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e01919061268a565b81600181518110611e1457611e14612632565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac94790611e5a9087906000908690309042906004016126eb565b600060405180830381600087803b158015611e7457600080fd5b505af1158015611e88573d6000803e3d6000fd5b505050506000611ea1834761201690919063ffffffff16565b9050611ebc84611eb76064611d3685600f611f52565b612058565b50506012805460ff60a81b1916905550505050565b6010546040516000916001600160a01b03169083908381818185875af1925050503d8060008114611f1e576040519150601f19603f3d011682016040523d82523d6000602084013e611f23565b606091505b50509050806107bd57600080fd5b80611f4757611f41848484611bed565b50611b47565b611b478484846120ea565b600082600003611f64575060006107d2565b6000611f708385612757565b905082611f7d858361276e565b14611be65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161074c565b6000611be683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121dd565b6000611be683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b4d565b60115460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156120c5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610dd59190612790565b60006120f6848361220b565b905061215e8260405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060046000886001600160a01b03166001600160a01b0316815260200190815260200160002054611b4d9092919063ffffffff16565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461218d9082611b87565b6001600160a01b0380851660008181526004602052604090819020939093559151908616906000805160206127e7833981519152906121cf9085815260200190565b60405180910390a350505050565b600081836121fe5760405162461bcd60e51b815260040161074c919061239e565b506000611b7e848661276e565b6000806122286064611d36600e5486611f5290919063ffffffff16565b306000908152600460205260409020549091506122459082611b87565b30600081815260046020526040908190209290925590516001600160a01b038616906000805160206127e7833981519152906122849085815260200190565b60405180910390a36122968382612016565b949350505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461096a57600080fd5b80356122d4816122b4565b919050565b600060208083850312156122ec57600080fd5b823567ffffffffffffffff8082111561230457600080fd5b818501915085601f83011261231857600080fd5b81358181111561232a5761232a61229e565b8060051b604051601f19603f8301168101818110858211171561234f5761234f61229e565b60405291825284820192508381018501918883111561236d57600080fd5b938501935b8285101561239257612383856122c9565b84529385019392850192612372565b98975050505050505050565b600060208083528351808285015260005b818110156123cb578581018301518582016040015282016123af565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156123ff57600080fd5b823561240a816122b4565b946020939093013593505050565b6000806040838503121561242b57600080fd5b50508035926020909101359150565b60008060006060848603121561244f57600080fd5b833561245a816122b4565b9250602084013561246a816122b4565b929592945050506040919091013590565b801515811461096a57600080fd5b60006020828403121561249b57600080fd5b8135611be68161247b565b6000602082840312156124b857600080fd5b5035919050565b600080604083850312156124d257600080fd5b82356124dd816122b4565b915060208301356124ed8161247b565b809150509250929050565b60008083601f84011261250a57600080fd5b50813567ffffffffffffffff81111561252257600080fd5b6020830191508360208260051b850101111561253d57600080fd5b9250929050565b6000806000806040858703121561255a57600080fd5b843567ffffffffffffffff8082111561257257600080fd5b61257e888389016124f8565b9096509450602087013591508082111561259757600080fd5b506125a4878288016124f8565b95989497509550505050565b6000602082840312156125c257600080fd5b8135611be6816122b4565b600080604083850312156125e057600080fd5b82356125eb816122b4565b915060208301356124ed816122b4565b6020808252601e908201527f4f776e61626c653a2063616c6c6572206973206e6f7420616c6c6f7765640000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161267057612670612648565b5060010190565b818103818111156107d2576107d2612648565b60006020828403121561269c57600080fd5b8151611be6816122b4565b600081518084526020808501945080840160005b838110156126e05781516001600160a01b0316875295820195908201906001016126bb565b509495945050505050565b85815284602082015260a06040820152600061270a60a08301866126a7565b6001600160a01b0394909416606083015250608001529392505050565b60006020828403121561273957600080fd5b8151611be68161247b565b808201808211156107d2576107d2612648565b80820281158282048414176107d2576107d2612648565b60008261278b57634e487b7160e01b600052601260045260246000fd5b500490565b6000806000606084860312156127a557600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122088683a3ee5a8ce623e6b2d4d54724c64601f9860b5dbd5f1654b6789d6ca072164736f6c63430008110033
Deployed Bytecode Sourcemap
5157:14523:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15903:169;;;;;;;;;;-1:-1:-1;15903:169:0;;;;;:::i;:::-;;:::i;:::-;;7761:83;;;;;;;;;;-1:-1:-1;7831:5:0;;;;;;;;;;;;-1:-1:-1;;;7831:5:0;;;;7761:83;;;;;;;:::i;:::-;;;;;;;;8672:193;;;;;;;;;;-1:-1:-1;8672:193:0;;;;;:::i;:::-;;:::i;:::-;;;2585:14:1;;2578:22;2560:41;;2548:2;2533:18;8672:193:0;2420:187:1;18356:184:0;;;;;;;;;;-1:-1:-1;18356:184:0;;;;;:::i;:::-;;:::i;6233:41::-;;;;;;;;;;-1:-1:-1;6233:41:0;;;;-1:-1:-1;;;;;6233:41:0;;;;;;-1:-1:-1;;;;;3055:32:1;;;3037:51;;3025:2;3010:18;6233:41:0;2865:229:1;8038:100:0;;;;;;;;;;-1:-1:-1;8118:12:0;;8038:100;;;3245:25:1;;;3233:2;3218:18;8038:100:0;3099:177:1;8873:446:0;;;;;;;;;;-1:-1:-1;8873:446:0;;;;;:::i;:::-;;:::i;9443:129::-;;;;;;;;;;-1:-1:-1;9443:129:0;;;;;:::i;:::-;;:::i;6692:52::-;;;;;;;;;;;;;;;;7947:83;;;;;;;;;;-1:-1:-1;7947:83:0;;5490:1;4253:36:1;;4241:2;4226:18;7947:83:0;4111:184:1;19303:201:0;;;;;;;;;;;;;:::i;6281:28::-;;;;;;;;;;-1:-1:-1;6281:28:0;;;;-1:-1:-1;;;;;6281:28:0;;;9327:108;;;;;;;;;;-1:-1:-1;9327:108:0;;;;;:::i;:::-;;:::i;9580:1097::-;;;;;;;;;;;;;:::i;19066:124::-;;;;;;;;;;-1:-1:-1;19066:124:0;;;;;:::i;:::-;;:::i;16505:260::-;;;;;;;;;;-1:-1:-1;16505:260:0;;;;;:::i;:::-;;:::i;16080:92::-;;;;;;;;;;-1:-1:-1;16080:92:0;;;;;:::i;:::-;;:::i;18718:101::-;;;;;;;;;;-1:-1:-1;18718:101:0;;;;;:::i;:::-;;:::i;8146:119::-;;;;;;;;;;-1:-1:-1;8146:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8239:18:0;8212:7;8239:18;;;:9;:18;;;;;;;8146:119;1971:103;;;;;;;;;;;;;:::i;18827:108::-;;;;;;;;;;-1:-1:-1;18827:108:0;;;;;:::i;:::-;;:::i;6576:46::-;;;;;;;;;;;;;;;;1683:87;;;;;;;;;;-1:-1:-1;1729:7:0;1756:6;-1:-1:-1;;;;;1756:6:0;1683:87;;19198:97;;;;;;;;;;;;;:::i;6633:48::-;;;;;;;;;;;;;;;;7852:87;;;;;;;;;;-1:-1:-1;7924:7:0;;;;;;;;;;;;-1:-1:-1;;;7924:7:0;;;;7852:87;;18548:162;;;;;;;;;;-1:-1:-1;18548:162:0;;;;;:::i;:::-;;:::i;8273:199::-;;;;;;;;;;-1:-1:-1;8273:199:0;;;;;:::i;:::-;;:::i;2527:94::-;;;;;;;;;;-1:-1:-1;2527:94:0;;;;;:::i;:::-;;:::i;15741:154::-;;;;;;;;;;;;;:::i;15585:148::-;;;;;;;;;;;;;:::i;8480:184::-;;;;;;;;;;-1:-1:-1;8480:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8629:18:0;;;8597:7;8629:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8480:184;19512:165;;;;;;;;;;-1:-1:-1;19512:165:0;;;;;:::i;:::-;;:::i;18943:115::-;;;;;;;;;;-1:-1:-1;18943:115:0;;;;;:::i;:::-;;:::i;2629:97::-;;;;;;;;;;-1:-1:-1;2629:97:0;;;;;:::i;:::-;;:::i;18018:330::-;;;;;;;;;;-1:-1:-1;18018:330:0;;;;;:::i;:::-;;:::i;2734:107::-;;;;;;;;;;-1:-1:-1;2734:107:0;;;;;:::i;:::-;-1:-1:-1;;;;;2814:19:0;2790:4;2814:19;;;:14;:19;;;;;;;;;2734:107;15903:169;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;;;;;;;;;15979:9:::1;15974:91;15998:5;:12;15994:1;:16;15974:91;;;16049:4;16032;:14;16037:5;16043:1;16037:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;16032:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;16032:14:0;:21;;-1:-1:-1;;16032:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16012:3;::::1;::::0;::::1;:::i;:::-;;;;15974:91;;;;15903:169:::0;:::o;8672:193::-;8774:4;8796:39;496:10;8819:7;8828:6;8796:8;:39::i;:::-;-1:-1:-1;8853:4:0;8672:193;;;;;:::o;18356:184::-;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;18467:12:::1;:26:::0;;;;18504:13:::1;:28:::0;18356:184::o;8873:446::-;9005:4;9022:36;9032:6;9040:9;9051:6;9022:9;:36::i;:::-;9069:220;9092:6;496:10;9140:138;9196:6;9140:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9140:19:0;;;;;;:11;:19;;;;;;;;496:10;9140:33;;;;;;;;;;:37;:138::i;:::-;9069:8;:220::i;:::-;-1:-1:-1;9307:4:0;8873:446;;;;;:::o;9443:129::-;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;9526:17:::1;:38:::0;;;::::1;;-1:-1:-1::0;;;9526:38:0::1;-1:-1:-1::0;;;;9526:38:0;;::::1;::::0;;;::::1;::::0;;9443:129::o;19303:201::-;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;19378:91:::1;::::0;19360:12:::1;::::0;19394:10:::1;::::0;19433:21:::1;::::0;19360:12;19378:91;19360:12;19378:91;19433:21;19394:10;19378:91:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19359:110;;;19488:7;19480:16;;;::::0;::::1;;19348:156;19303:201::o:0;9327:108::-;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;9401:10:::1;:26:::0;9327:108::o;9580:1097::-;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;6846:6:::1;:13:::0;;-1:-1:-1;;;;6846:13:0::1;-1:-1:-1::0;;;6846:13:0::1;::::0;;9650:9:::2;:16:::0;:20;9646:1024:::2;;9734:4;9687:26;9716:24:::0;;;:9:::2;:24;::::0;;;;;;9755:416:::2;9779:9;:16:::0;9775:20;::::2;9755:416;;;9848:93;9899:9;:23;9909:9;9919:1;9909:12;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;::::2;::::0;-1:-1:-1;;;;;9909:12:0::2;9899:23:::0;;;;::::2;::::0;;;;;;;;;;;9866:4:::2;9848:24:::0;;:9:::2;:24:::0;;;;;;:28:::2;:93::i;:::-;9839:4;9821:24;::::0;;;:9:::2;:24;::::0;;;;:120;;;;9996:9:::2;:12:::0;;10006:1;;9996:12;::::2;;;;;:::i;:::-;;::::0;;;::::2;::::0;;::::2;::::0;10077:9:::2;:12:::0;;-1:-1:-1;;;;;9996:12:0;;::::2;::::0;-1:-1:-1;;;;;;;;;;;9965:144:0;10067:9:::2;::::0;10077;10087:1;;10077:12;::::2;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;;::::2;::::0;-1:-1:-1;;;;;10077:12:0::2;10067:23:::0;;;;::::2;::::0;;;;;;;;;;;9965:144;;3245:25:1;;;3218:18;9965:144:0::2;;;;;;;10154:1;10128:9;:23;10138:9;10148:1;10138:12;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;::::2;::::0;-1:-1:-1;;;;;10138:12:0::2;10128:23:::0;;;::::2;::::0;;;;;;;;:27;9797:3;::::2;::::0;::::2;:::i;:::-;;;;9755:416;;;-1:-1:-1::0;10229:4:0::2;10185:23;10211:24:::0;;;:9:::2;:24;::::0;;;;;:62:::2;::::0;10255:18;;10211:62:::2;:::i;:::-;10312:16;::::0;;10326:1:::2;10312:16:::0;;;;;::::2;::::0;;10185:88;;-1:-1:-1;10288:21:0::2;::::0;10312:16;;::::2;::::0;::::2;::::0;;::::2;::::0;::::2;;::::0;-1:-1:-1;10312:16:0::2;10288:40;;10361:4;10343;10348:1;10343:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10343:23:0;;::::2;:7;::::0;;::::2;::::0;;;;;;:23;;;;10391:15:::2;::::0;:22:::2;::::0;;-1:-1:-1;;;10391:22:0;;;;:15;;;::::2;::::0;:20:::2;::::0;:22:::2;::::0;;::::2;::::0;10343:7;;10391:22;;;;;:15;:22:::2;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10381:4;10386:1;10381:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10381:32:0;;::::2;:7;::::0;;::::2;::::0;;;;;:32;10430:15:::2;::::0;10592:17:::2;::::0;10430:228:::2;::::0;-1:-1:-1;;;10430:228:0;;:15;;::::2;::::0;:66:::2;::::0;:228:::2;::::0;10515:15;;10430::::2;::::0;10569:4;;10592:17;;::::2;::::0;10628:15:::2;::::0;10430:228:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;9672:998;;;9646:1024;6882:6:::1;:14:::0;;-1:-1:-1;;;;6882:14:0::1;::::0;;9580:1097::o;19066:124::-;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19147:26:0;;;::::1;;::::0;;;:18:::1;:26;::::0;;;;:35;;-1:-1:-1;;19147:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19066:124::o;16505:260::-;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;16636:9:::1;16631:127;16651:21:::0;;::::1;16631:127;;;16694:52;16709:10;16721;;16732:1;16721:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16736:6;;16743:1;16736:9;;;;;;;:::i;:::-;;;;;;;16694:14;:52::i;:::-;-1:-1:-1::0;16674:3:0;::::1;::::0;::::1;:::i;:::-;;;;16631:127;;;;16505:260:::0;;;;:::o;16080:92::-;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16144:12:0::1;16159:5;16144:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;16144:20:0::1;::::0;;16080:92::o;18718:101::-;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;18785:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18785:26:0::1;-1:-1:-1::0;;;;18785:26:0;;::::1;::::0;;;::::1;::::0;;18718:101::o;1971:103::-;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;2036:30:::1;2063:1;2036:18;:30::i;:::-;1971:103::o:0;18827:108::-;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;18901:12:::1;:26:::0;18827:108::o;19198:97::-;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;19274:13:::1;::::0;;-1:-1:-1;;;;19257:30:0;::::1;-1:-1:-1::0;;;19274:13:0;;;::::1;;;19273:14;19257:30:::0;;::::1;;::::0;;19198:97::o;18548:162::-;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;18662:19:::1;:40:::0;18548:162::o;8273:199::-;8378:4;8400:42;496:10;8424:9;8435:6;8400:9;:42::i;2527:94::-;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2587:19:0::1;;::::0;;;2609:4:::1;2587:19;::::0;;;;;;;:26;;-1:-1:-1;;2587:26:0::1;::::0;;::::1;::::0;;2527:94::o;15741:154::-;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;15837:4:::1;15793:23;8239:18:::0;;;:9;:18;;;;;;15854:33:::1;8239:18:::0;15854:16:::1;:33::i;15585:148::-:0;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;15636:11:::1;:18:::0;;-1:-1:-1;;;;15665:24:0;-1:-1:-1;;;15665:24:0;;;15713:12:::1;15636:11;15700:25:::0;15585:148::o;19512:165::-;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;19625:44:::1;::::0;-1:-1:-1;;;19625:44:0;;19649:10:::1;19625:44;::::0;::::1;9472:51:1::0;9539:18;;;9532:34;;;-1:-1:-1;;;;;19625:23:0;::::1;::::0;::::1;::::0;9445:18:1;;19625:44:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19512:165:::0;;:::o;18943:115::-;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;19020:14:::1;:30:::0;18943:115::o;2629:97::-;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2691:19:0::1;2713:5;2691:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2691:27:0::1;::::0;;2629:97::o;18018:330::-;1729:7;1756:6;-1:-1:-1;;;;;1756:6:0;496:10;1832:23;;:53;;-1:-1:-1;1859:26:0;496:10;2734:107;:::i;1859:26::-;1810:133;;;;-1:-1:-1;;;1810:133:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18122:22:0;::::1;18100:110;;;::::0;-1:-1:-1;;;18100:110:0;;10029:2:1;18100:110:0::1;::::0;::::1;10011:21:1::0;10068:2;10048:18;;;10041:30;10107:34;10087:18;;;10080:62;-1:-1:-1;;;10158:18:1;;;10151:36;10204:19;;18100:110:0::1;9827:402:1::0;18100:110:0::1;18251:5;18221:18;:27;18240:7;1729::::0;1756:6;-1:-1:-1;;;;;1756:6:0;;1683:87;18240:7:::1;-1:-1:-1::0;;;;;18221:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18221:27:0;:35;;-1:-1:-1;;18221:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18267:28:::1;18286:8:::0;18267:18:::1;:28::i;:::-;18336:4;18306:18;:27;18325:7;1729::::0;1756:6;-1:-1:-1;;;;;1756:6:0;;1683:87;18325:7:::1;-1:-1:-1::0;;;;;18306:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18306:27:0;:34;;-1:-1:-1;;18306:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;18018:330:0:o;10685:369::-;-1:-1:-1;;;;;10812:19:0;;10804:68;;;;-1:-1:-1;;;10804:68:0;;10436:2:1;10804:68:0;;;10418:21:1;10475:2;10455:18;;;10448:30;10514:34;10494:18;;;10487:62;-1:-1:-1;;;10565:18:1;;;10558:34;10609:19;;10804:68:0;10234:400:1;10804:68:0;-1:-1:-1;;;;;10891:21:0;;10883:68;;;;-1:-1:-1;;;10883:68:0;;10841:2:1;10883:68:0;;;10823:21:1;10880:2;10860:18;;;10853:30;10919:34;10899:18;;;10892:62;-1:-1:-1;;;10970:18:1;;;10963:32;11012:19;;10883:68:0;10639:398:1;10883:68:0;-1:-1:-1;;;;;10962:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11014:32;;3245:25:1;;;11014:32:0;;3218:18:1;11014:32:0;;;;;;;10685:369;;;:::o;11062:3266::-;-1:-1:-1;;;;;11184:18:0;;11176:68;;;;-1:-1:-1;;;11176:68:0;;11244:2:1;11176:68:0;;;11226:21:1;11283:2;11263:18;;;11256:30;11322:34;11302:18;;;11295:62;-1:-1:-1;;;11373:18:1;;;11366:35;11418:19;;11176:68:0;11042:401:1;11176:68:0;-1:-1:-1;;;;;11263:16:0;;11255:64;;;;-1:-1:-1;;;11255:64:0;;11650:2:1;11255:64:0;;;11632:21:1;11689:2;11669:18;;;11662:30;11728:34;11708:18;;;11701:62;-1:-1:-1;;;11779:18:1;;;11772:33;11822:19;;11255:64:0;11448:399:1;11255:64:0;11347:1;11338:6;:10;11330:64;;;;-1:-1:-1;;;11330:64:0;;12054:2:1;11330:64:0;;;12036:21:1;12093:2;12073:18;;;12066:30;12132:34;12112:18;;;12105:62;-1:-1:-1;;;12183:18:1;;;12176:39;12232:19;;11330:64:0;11852:405:1;11330:64:0;-1:-1:-1;;;;;11412:22:0;;;;;;:18;:22;;;;;;;;11411:23;:52;;;;-1:-1:-1;;;;;;11439:24:0;;;;;;:18;:24;;;;;;;;11438:25;11411:52;11407:2167;;;11488:11;;-1:-1:-1;;;11488:11:0;;;;11480:54;;;;-1:-1:-1;;;11480:54:0;;12464:2:1;11480:54:0;;;12446:21:1;12503:2;12483:18;;;12476:30;12542:32;12522:18;;;12515:60;12592:18;;11480:54:0;12262:354:1;11480:54:0;11567:12;;11557:6;:22;;11549:63;;;;-1:-1:-1;;;11549:63:0;;12823:2:1;11549:63:0;;;12805:21:1;12862:2;12842:18;;;12835:30;12901;12881:18;;;12874:58;12949:18;;11549:63:0;12621:352:1;11549:63:0;-1:-1:-1;;;;;11654:10:0;;;;;;:4;:10;;;;;;;;11653:11;:24;;;;-1:-1:-1;;;;;;11669:8:0;;;;;;:4;:8;;;;;;;;11668:9;11653:24;11627:121;;;;-1:-1:-1;;;11627:121:0;;13180:2:1;11627:121:0;;;13162:21:1;13219:2;13199:18;;;13192:30;13258:34;13238:18;;;13231:62;-1:-1:-1;;;13309:18:1;;;13302:33;13352:19;;11627:121:0;12978:399:1;11627:121:0;11769:17;;-1:-1:-1;;;11769:17:0;;;;11765:542;;;11846:1;11833:10;;:14;:60;;;;-1:-1:-1;11880:13:0;;-1:-1:-1;;;;;11872:21:0;;;11880:13;;11872:21;11833:60;:109;;;;-1:-1:-1;;;;;;11919:23:0;;;;;;:17;:23;;;;;;;;11918:24;11833:109;:156;;;;-1:-1:-1;;;;;;11968:21:0;;;;;;:17;:21;;;;;;;;11967:22;11833:156;11807:485;;;12065:10;;12051;;12036:25;;:12;:25;:::i;:::-;:39;12032:241;;-1:-1:-1;;;;;12109:14:0;;;;;;:10;:14;;;;;;;;12104:98;;12156:9;:18;;;;;;;-1:-1:-1;12156:18:0;;;;;;;;-1:-1:-1;;;;;;12156:18:0;-1:-1:-1;;;;;12156:18:0;;;;;12104:98;-1:-1:-1;;;;;12228:14:0;;;;;;:10;:14;;;;;:21;;-1:-1:-1;;12228:21:0;12245:4;12228:21;;;12032:241;12333:13;;-1:-1:-1;;;;;12327:19:0;;;12333:13;;12327:19;12323:559;;12379:13;;-1:-1:-1;;;;;12371:21:0;;;12379:13;;12371:21;:38;;;;-1:-1:-1;12396:13:0;;-1:-1:-1;;;12396:13:0;;;;12371:38;12367:333;;;12476:9;12468:18;;;;:7;:18;;;;;;12501:15;;12468:30;;12489:9;12468:30;:::i;:::-;:48;:122;;;;-1:-1:-1;;;;;;12549:11:0;;;;;;:7;:11;;;;;;12575:15;;12549:23;;12563:9;12549:23;:::i;:::-;:41;12468:122;12434:246;;;;-1:-1:-1;;;12434:246:0;;13714:2:1;12434:246:0;;;13696:21:1;13753:2;13733:18;;;13726:30;13792:34;13772:18;;;13765:62;-1:-1:-1;;;13843:18:1;;;13836:36;13889:19;;12434:246:0;13512:402:1;12434:246:0;12773:14;;12764:6;12748:13;12758:2;-1:-1:-1;;;;;8239:18:0;8212:7;8239:18;;;:9;:18;;;;;;;8146:119;12748:13;:22;;;;:::i;:::-;:39;12718:148;;;;-1:-1:-1;;;12718:148:0;;14121:2:1;12718:148:0;;;14103:21:1;14160:2;14140:18;;;14133:30;14199:34;14179:18;;;14172:62;-1:-1:-1;;;14250:18:1;;;14243:33;14293:19;;12718:148:0;13919:399:1;12718:148:0;12947:4;12898:28;8239:18;;;:9;:18;;;;;;13007:19;;12983:43;;;;;13043:126;;13134:19;;13111:42;;13043:126;13189:7;:18;;;;-1:-1:-1;13201:6:0;;-1:-1:-1;;;13201:6:0;;;;13200:7;13189:18;:43;;;;-1:-1:-1;13219:13:0;;-1:-1:-1;;;;;13211:21:0;;;13219:13;;13211:21;;13189:43;:58;;;;-1:-1:-1;13236:11:0;;-1:-1:-1;;;13236:11:0;;;;13189:58;13185:378;;;13268:38;13285:20;13268:16;:38::i;:::-;13396:21;13440:28;;13436:112;;13493:35;13506:21;13493:12;:35::i;:::-;13249:314;13185:378;11465:2109;;11407:2167;-1:-1:-1;;;;;13664:24:0;;13586:12;13664:24;;;:18;:24;;;;;;13601:4;;13664:24;;;:50;;-1:-1:-1;;;;;;13692:22:0;;;;;;:18;:22;;;;;;;;13664:50;13663:115;;;-1:-1:-1;13741:13:0;;-1:-1:-1;;;;;13733:21:0;;;13741:13;;13733:21;;;;:44;;-1:-1:-1;13764:13:0;;-1:-1:-1;;;;;13758:19:0;;;13764:13;;13758:19;;13733:44;13645:537;;;-1:-1:-1;13815:5:0;13645:537;;;13897:13;;-1:-1:-1;;;;;13889:21:0;;;13897:13;;13889:21;:55;;;;-1:-1:-1;13928:15:0;;-1:-1:-1;;;;;13914:30:0;;;13928:15;;13914:30;;13889:55;13885:118;;;13975:12;;13965:7;:22;13885:118;14062:13;;-1:-1:-1;;;;;14056:19:0;;;14062:13;;14056:19;:55;;;;-1:-1:-1;14095:15:0;;-1:-1:-1;;;;;14079:32:0;;;14095:15;;14079:32;;14056:55;14052:119;;;14142:13;;14132:7;:23;14052:119;14200:9;14192:18;;;;:7;:18;;;;;;14213:15;14192:36;;;;-1:-1:-1;;;;;14239:11:0;;;;;;:29;14279:41;14294:4;14247:2;14304:6;14312:7;14279:14;:41::i;:::-;11165:3163;11062:3266;;;:::o;3203:224::-;3323:7;3359:12;3351:6;;;;3343:29;;;;-1:-1:-1;;;3343:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3383:9:0;3395:5;3399:1;3395;:5;:::i;:::-;3383:17;3203:224;-1:-1:-1;;;;;3203:224:0:o;2872:179::-;2930:7;;2962:5;2966:1;2962;:5;:::i;:::-;2950:17;;2991:1;2986;:6;;2978:46;;;;-1:-1:-1;;;2978:46:0;;14525:2:1;2978:46:0;;;14507:21:1;14564:2;14544:18;;;14537:30;14603:29;14583:18;;;14576:57;14650:18;;2978:46:0;14323:351:1;2978:46:0;3042:1;2872:179;-1:-1:-1;;;2872:179:0:o;17223:401::-;17387:90;;;;;;;;;;;-1:-1:-1;;;17387:90:0;;;;;;;;-1:-1:-1;;;;;17387:17:0;;17350:4;17387:17;;;:9;:17;;;;;;;:90;;17423:6;;17387:21;:90::i;:::-;-1:-1:-1;;;;;17367:17:0;;;;;;;:9;:17;;;;;;:110;;;;17511:20;;;;;;;:32;;17536:6;17511:24;:32::i;:::-;-1:-1:-1;;;;;17488:20:0;;;;;;;:9;:20;;;;;;;:55;;;;17559:35;;;;;;-1:-1:-1;;;;;;;;;;;17559:35:0;;;17587:6;3245:25:1;;3233:2;3218:18;;3099:177;17559:35:0;;;;;;;;-1:-1:-1;17612:4:0;17223:401;;;;;:::o;2328:191::-;2402:16;2421:6;;-1:-1:-1;;;;;2438:17:0;;;-1:-1:-1;;;;;;2438:17:0;;;;;;2471:40;;2421:6;;;;;;;2471:40;;2402:16;2471:40;2391:128;2328:191;:::o;14336:699::-;6846:6;:13;;-1:-1:-1;;;;6846:13:0;-1:-1:-1;;;6846:13:0;;;;14431:28:::1;14455:3;14431:19;:11:::0;14447:2:::1;14431:15;:19::i;:::-;:23:::0;::::1;:28::i;:::-;14414:45:::0;-1:-1:-1;14470:14:0::1;14487:20;14414:45:::0;14487:11;:20:::1;:::i;:::-;14600:16;::::0;;14614:1:::1;14600:16:::0;;;;;::::1;::::0;;14470:37;;-1:-1:-1;14542:21:0::1;::::0;14518::::1;::::0;14600:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14600:16:0::1;14576:40;;14645:4;14627;14632:1;14627:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14627:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;14671:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;14671:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;14627:7;;14671:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14661:4;14666:1;14661:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14661:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;14704:15:::1;::::0;:191:::1;::::0;-1:-1:-1;;;14704:191:0;;:15;::::1;::::0;:66:::1;::::0;:191:::1;::::0;14785:6;;14704:15:::1;::::0;14822:4;;14849::::1;::::0;14869:15:::1;::::0;14704:191:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14906:17;14926:40;14952:13;14926:21;:25;;:40;;;;:::i;:::-;14906:60:::0;-1:-1:-1;14979:48:0::1;14992:6:::0;15000:26:::1;15022:3;15000:17;14906:60:::0;15014:2:::1;15000:13;:17::i;:26::-;14979:12;:48::i;:::-;-1:-1:-1::0;;6882:6:0;:14;;-1:-1:-1;;;;6882:14:0;;;-1:-1:-1;;;;14336:699:0:o;15043:152::-;15119:17;;:41;;15101:12;;-1:-1:-1;;;;;15119:17:0;;15149:6;;15101:12;15119:41;15101:12;15119:41;15149:6;15119:17;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15100:60;;;15179:7;15171:16;;;;;16180:317;16336:7;16331:159;;16360:41;16375:6;16383:9;16394:6;16360:14;:41::i;:::-;;16331:159;;;16434:44;16452:6;16460:9;16471:6;16434:17;:44::i;3435:246::-;3493:7;3517:1;3522;3517:6;3513:47;;-1:-1:-1;3547:1:0;3540:8;;3513:47;3570:9;3582:5;3586:1;3582;:5;:::i;:::-;3570:17;-1:-1:-1;3615:1:0;3606:5;3610:1;3570:17;3606:5;:::i;:::-;:10;3598:56;;;;-1:-1:-1;;;3598:56:0;;15863:2:1;3598:56:0;;;15845:21:1;15902:2;15882:18;;;15875:30;15941:34;15921:18;;;15914:62;-1:-1:-1;;;15992:18:1;;;15985:31;16033:19;;3598:56:0;15661:397:1;3689:132:0;3747:7;3774:39;3778:1;3781;3774:39;;;;;;;;;;;;;;;;;:3;:39::i;3059:136::-;3117:7;3144:43;3148:1;3151;3144:43;;;;;;;;;;;;;;;;;:3;:43::i;15203:374::-;15314:15;;:255;;-1:-1:-1;;;15314:255:0;;15386:4;15314:255;;;16404:34:1;16454:18;;;16447:34;;;15314:15:0;16497:18:1;;;16490:34;;;16540:18;;;16533:34;;;16583:19;;;16576:44;15543:15:0;16636:19:1;;;16629:35;-1:-1:-1;;;;;15314:15:0;;;;:31;;15353:9;;16338:19:1;;15314:255:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16773:442::-;16904:22;16929:24;16938:6;16946;16929:8;:24::i;:::-;16904:49;;16984:90;17020:6;16984:90;;;;;;;;;;;;;-1:-1:-1;;;16984:90:0;;;:9;:17;16994:6;-1:-1:-1;;;;;16984:17:0;-1:-1:-1;;;;;16984:17:0;;;;;;;;;;;;;:21;;:90;;;;;:::i;:::-;-1:-1:-1;;;;;16964:17:0;;;;;;;:9;:17;;;;;;:110;;;;17108:20;;;;;;;:40;;17133:14;17108:24;:40::i;:::-;-1:-1:-1;;;;;17085:20:0;;;;;;;:9;:20;;;;;;;:63;;;;17164:43;;;;;;-1:-1:-1;;;;;;;;;;;17164:43:0;;;17192:14;3245:25:1;;3233:2;3218:18;;3099:177;17164:43:0;;;;;;;;16893:322;16773:442;;;:::o;3829:223::-;3949:7;3984:12;3977:5;3969:28;;;;-1:-1:-1;;;3969:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4008:9:0;4020:5;4024:1;4020;:5;:::i;17632:341::-;17718:7;17743:17;17763:28;17787:3;17763:19;17774:7;;17763:6;:10;;:19;;;;:::i;:28::-;17847:4;17829:24;;;;:9;:24;;;;;;17743:48;;-1:-1:-1;17829:39:0;;17743:48;17829:28;:39::i;:::-;17820:4;17802:24;;;;:9;:24;;;;;;;:66;;;;17884:42;;-1:-1:-1;;;;;17884:42:0;;;-1:-1:-1;;;;;;;;;;;17884:42:0;;;17916:9;3245:25:1;;3233:2;3218:18;;3099:177;17884:42:0;;;;;;;;17944:21;:6;17955:9;17944:10;:21::i;:::-;17937:28;17632:341;-1:-1:-1;;;;17632:341:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:548::-;1659:4;1688:2;1717;1706:9;1699:21;1749:6;1743:13;1792:6;1787:2;1776:9;1772:18;1765:34;1817:1;1827:140;1841:6;1838:1;1835:13;1827:140;;;1936:14;;;1932:23;;1926:30;1902:17;;;1921:2;1898:26;1891:66;1856:10;;1827:140;;;1831:3;2016:1;2011:2;2002:6;1991:9;1987:22;1983:31;1976:42;2086:2;2079;2075:7;2070:2;2062:6;2058:15;2054:29;2043:9;2039:45;2035:54;2027:62;;;;1547:548;;;;:::o;2100:315::-;2168:6;2176;2229:2;2217:9;2208:7;2204:23;2200:32;2197:52;;;2245:1;2242;2235:12;2197:52;2284:9;2271:23;2303:31;2328:5;2303:31;:::i;:::-;2353:5;2405:2;2390:18;;;;2377:32;;-1:-1:-1;;;2100:315:1:o;2612:248::-;2680:6;2688;2741:2;2729:9;2720:7;2716:23;2712:32;2709:52;;;2757:1;2754;2747:12;2709:52;-1:-1:-1;;2780:23:1;;;2850:2;2835:18;;;2822:32;;-1:-1:-1;2612:248:1:o;3281:456::-;3358:6;3366;3374;3427:2;3415:9;3406:7;3402:23;3398:32;3395:52;;;3443:1;3440;3433:12;3395:52;3482:9;3469:23;3501:31;3526:5;3501:31;:::i;:::-;3551:5;-1:-1:-1;3608:2:1;3593:18;;3580:32;3621:33;3580:32;3621:33;:::i;:::-;3281:456;;3673:7;;-1:-1:-1;;;3727:2:1;3712:18;;;;3699:32;;3281:456::o;3742:118::-;3828:5;3821:13;3814:21;3807:5;3804:32;3794:60;;3850:1;3847;3840:12;3865:241;3921:6;3974:2;3962:9;3953:7;3949:23;3945:32;3942:52;;;3990:1;3987;3980:12;3942:52;4029:9;4016:23;4048:28;4070:5;4048:28;:::i;4508:180::-;4567:6;4620:2;4608:9;4599:7;4595:23;4591:32;4588:52;;;4636:1;4633;4626:12;4588:52;-1:-1:-1;4659:23:1;;4508:180;-1:-1:-1;4508:180:1:o;4693:382::-;4758:6;4766;4819:2;4807:9;4798:7;4794:23;4790:32;4787:52;;;4835:1;4832;4825:12;4787:52;4874:9;4861:23;4893:31;4918:5;4893:31;:::i;:::-;4943:5;-1:-1:-1;5000:2:1;4985:18;;4972:32;5013:30;4972:32;5013:30;:::i;:::-;5062:7;5052:17;;;4693:382;;;;;:::o;5080:367::-;5143:8;5153:6;5207:3;5200:4;5192:6;5188:17;5184:27;5174:55;;5225:1;5222;5215:12;5174:55;-1:-1:-1;5248:20:1;;5291:18;5280:30;;5277:50;;;5323:1;5320;5313:12;5277:50;5360:4;5352:6;5348:17;5336:29;;5420:3;5413:4;5403:6;5400:1;5396:14;5388:6;5384:27;5380:38;5377:47;5374:67;;;5437:1;5434;5427:12;5374:67;5080:367;;;;;:::o;5452:773::-;5574:6;5582;5590;5598;5651:2;5639:9;5630:7;5626:23;5622:32;5619:52;;;5667:1;5664;5657:12;5619:52;5707:9;5694:23;5736:18;5777:2;5769:6;5766:14;5763:34;;;5793:1;5790;5783:12;5763:34;5832:70;5894:7;5885:6;5874:9;5870:22;5832:70;:::i;:::-;5921:8;;-1:-1:-1;5806:96:1;-1:-1:-1;6009:2:1;5994:18;;5981:32;;-1:-1:-1;6025:16:1;;;6022:36;;;6054:1;6051;6044:12;6022:36;;6093:72;6157:7;6146:8;6135:9;6131:24;6093:72;:::i;:::-;5452:773;;;;-1:-1:-1;6184:8:1;-1:-1:-1;;;;5452:773:1:o;6230:247::-;6289:6;6342:2;6330:9;6321:7;6317:23;6313:32;6310:52;;;6358:1;6355;6348:12;6310:52;6397:9;6384:23;6416:31;6441:5;6416:31;:::i;6482:388::-;6550:6;6558;6611:2;6599:9;6590:7;6586:23;6582:32;6579:52;;;6627:1;6624;6617:12;6579:52;6666:9;6653:23;6685:31;6710:5;6685:31;:::i;:::-;6735:5;-1:-1:-1;6792:2:1;6777:18;;6764:32;6805:33;6764:32;6805:33;:::i;6875:354::-;7077:2;7059:21;;;7116:2;7096:18;;;7089:30;7155:32;7150:2;7135:18;;7128:60;7220:2;7205:18;;6875:354::o;7234:127::-;7295:10;7290:3;7286:20;7283:1;7276:31;7326:4;7323:1;7316:15;7350:4;7347:1;7340:15;7366:127;7427:10;7422:3;7418:20;7415:1;7408:31;7458:4;7455:1;7448:15;7482:4;7479:1;7472:15;7498:135;7537:3;7558:17;;;7555:43;;7578:18;;:::i;:::-;-1:-1:-1;7625:1:1;7614:13;;7498:135::o;7848:128::-;7915:9;;;7936:11;;;7933:37;;;7950:18;;:::i;7981:251::-;8051:6;8104:2;8092:9;8083:7;8079:23;8075:32;8072:52;;;8120:1;8117;8110:12;8072:52;8152:9;8146:16;8171:31;8196:5;8171:31;:::i;8237:461::-;8290:3;8328:5;8322:12;8355:6;8350:3;8343:19;8381:4;8410:2;8405:3;8401:12;8394:19;;8447:2;8440:5;8436:14;8468:1;8478:195;8492:6;8489:1;8486:13;8478:195;;;8557:13;;-1:-1:-1;;;;;8553:39:1;8541:52;;8613:12;;;;8648:15;;;;8589:1;8507:9;8478:195;;;-1:-1:-1;8689:3:1;;8237:461;-1:-1:-1;;;;;8237:461:1:o;8703:590::-;9010:6;8999:9;8992:25;9053:6;9048:2;9037:9;9033:18;9026:34;9096:3;9091:2;9080:9;9076:18;9069:31;8973:4;9117:57;9169:3;9158:9;9154:19;9146:6;9117:57;:::i;:::-;-1:-1:-1;;;;;9210:32:1;;;;9205:2;9190:18;;9183:60;-1:-1:-1;9274:3:1;9259:19;9252:35;9109:65;8703:590;-1:-1:-1;;;8703:590:1:o;9577:245::-;9644:6;9697:2;9685:9;9676:7;9672:23;9668:32;9665:52;;;9713:1;9710;9703:12;9665:52;9745:9;9739:16;9764:28;9786:5;9764:28;:::i;13382:125::-;13447:9;;;13468:10;;;13465:36;;;13481:18;;:::i;15266:168::-;15339:9;;;15370;;15387:15;;;15381:22;;15367:37;15357:71;;15408:18;;:::i;15439:217::-;15479:1;15505;15495:132;;15549:10;15544:3;15540:20;15537:1;15530:31;15584:4;15581:1;15574:15;15612:4;15609:1;15602:15;15495:132;-1:-1:-1;15641:9:1;;15439:217::o;16675:306::-;16763:6;16771;16779;16832:2;16820:9;16811:7;16807:23;16803:32;16800:52;;;16848:1;16845;16838:12;16800:52;16877:9;16871:16;16861:26;;16927:2;16916:9;16912:18;16906:25;16896:35;;16971:2;16960:9;16956:18;16950:25;16940:35;;16675:306;;;;;:::o
Swarm Source
ipfs://88683a3ee5a8ce623e6b2d4d54724c64601f9860b5dbd5f1654b6789d6ca0721
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.