ERC-20
Overview
Max Total Supply
100,000,000 ONEWAY
Holders
60
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
741,682.368891445 ONEWAYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TheOneWay
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-28 */ // Official Website : theoneway.io // SPDX-License-Identifier: MIT pragma solidity 0.8.17; interface IERC20 { 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 ); } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function getAmountsIn(uint256 amountOut, address[] memory path) external view returns (uint256[] memory amounts); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); } abstract contract OWNED { address internal _owner; event OwnershipTransferred(address owner); constructor(address contractOwner) { _owner = contractOwner; } modifier onlyOwner() { require(msg.sender == _owner, "Not the owner"); _; } // function owner() external view returns (address) { return _owner; } // moved into addressList() function function renounceOwnership() external onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) external onlyOwner { _transferOwnership(newOwner); } function _transferOwnership(address _newOwner) internal { _owner = _newOwner; emit OwnershipTransferred(_newOwner); } } contract TheOneWay is IERC20, OWNED { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint8 private constant _decimals = 9; uint256 private constant _totalSupply = 100_000_000 * 10**_decimals; string private constant _name = "The One-Way"; string private constant _symbol = "ONEWAY"; uint256 private _maxTx; uint256 private _maxWallet; uint256 private _swapThreshold = _totalSupply; uint256 private _swapLimit = _totalSupply; uint8 private _taxRateBuy; uint8 private _taxRateSell; mapping(address => bool) private _excluded; address private _treasuryWallet = address(0x85B242cdf6d6EC9D97EE0439beD7B2FAC3D65935); address private constant _usdc = address(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48); address private constant _swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //Uniswap V2 Router IUniswapV2Router02 private constant _swapRouter = IUniswapV2Router02(_swapRouterAddress); address private _primaryLP; mapping(address => bool) private _isLP; bool private _initialLiquidityAdded; uint256 private _openAt; uint256 private _protected; bool private swapLocked; modifier lockSwap() { swapLocked = true; _; swapLocked = false; } constructor() OWNED(msg.sender) { _balances[address(msg.sender)] = _totalSupply; emit Transfer( address(0), address(msg.sender), _balances[address(msg.sender)] ); _changeLimits(9, 18); //set max TX to 9%, max wallet 1.8% _excluded[_owner] = true; _excluded[address(this)] = true; _excluded[_swapRouterAddress] = true; _excluded[_treasuryWallet] = true; _primaryLP = IUniswapV2Factory(_swapRouter.factory()).createPair( address(this), _usdc ); _isLP[_primaryLP] = true; } function addressList() external view returns ( address owner, address treasury, address usdc, address swapRouter, address primaryLP ) { return (_owner, _treasuryWallet, _usdc, _swapRouterAddress, _primaryLP); } function totalSupply() external pure override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function balanceOf(address account) external view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) external view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { require(_balances[msg.sender] > 0, "ERC20: Zero balance"); _approve(msg.sender, spender, amount); return true; } function _approve( address owner, address spender, uint256 amount ) private { require( owner != address(0) && spender != address(0), "ERC20: Zero address" ); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _checkAndApproveRouter(uint256 tokenAmount) private { if (_allowances[address(this)][_swapRouterAddress] < tokenAmount) { _approve(address(this), _swapRouterAddress, type(uint256).max); } } function _checkAndApproveRouterForToken(address _token, uint256 amount) internal { uint256 tokenAllowance; if (_token == address(this)) { tokenAllowance = _allowances[address(this)][_swapRouterAddress]; if (amount > tokenAllowance) { _allowances[address(this)][_swapRouterAddress] = type(uint256) .max; } } else { tokenAllowance = IERC20(_token).allowance( address(this), _swapRouterAddress ); if (amount > tokenAllowance) { IERC20(_token).approve(_swapRouterAddress, type(uint256).max); } } } function transfer(address to, uint256 amount) public returns (bool) { _transfer(msg.sender, to, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public returns (bool) { require( _allowances[from][msg.sender] >= amount, "ERC20: amount exceeds allowance" ); _allowances[from][msg.sender] -= amount; _transfer(from, to, amount); return true; } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0) && to != address(0), "ERC20: Zero address"); require(_balances[from] >= amount, "ERC20: amount exceeds balance"); require(_limitCheck(from, to, amount), "Limits exceeded"); if (!swapLocked && !_excluded[from] && _isLP[to]) { _processTaxTokens(); } uint256 taxTokens = _getTaxTokens(from, to, amount); _balances[from] -= amount; _balances[address(this)] += taxTokens; _balances[to] += (amount - taxTokens); emit Transfer(from, to, amount); } function _limitCheck( address from, address to, uint256 amount ) private view returns (bool) { bool txSize = true; if (amount > _maxTx && !_excluded[from] && !_excluded[to]) { txSize = false; } bool walletSize = true; uint256 newBalanceTo = _balances[to] + amount; if ( newBalanceTo > _maxWallet && !_excluded[from] && !_excluded[to] && !_isLP[to] ) { walletSize = false; } return (txSize && walletSize); } function _getTaxTokens( address from, address to, uint256 amount ) private view returns (uint256) { uint256 _taxTokensAmount; if ((_isLP[from] && !_excluded[to])) { _taxTokensAmount = amount * _taxRateBuy / 100; } else if (_isLP[to] && !_excluded[from]) { require(block.timestamp > _openAt, "Not enabled yet"); _taxTokensAmount = (amount * _taxRateSell) / 100; } return _taxTokensAmount; } function addInitialLiquidity(uint256 val) external onlyOwner { require(IERC20(_usdc).balanceOf(address(this)) > 0, "No USDC"); require(!_initialLiquidityAdded, "Liquidity already added"); _addLiquidity( address(this), _balances[address(this)], IERC20(_usdc).balanceOf(address(this)), false ); _initialLiquidityAdded = true; _swapThreshold = (_totalSupply * 5) / 10000; _swapLimit = (_totalSupply * 25) / 10000; _taxRateBuy = 4; _taxRateSell = 4; //anti-dump sell tax at launch _openAt = block.timestamp + val; _protected = _openAt + 20; } function _addLiquidity( address _token, uint256 tokenAmount, uint256 usdcAmount, bool burnLpTokens ) internal { require( IERC20(_token).balanceOf(address(this)) >= tokenAmount, "Not enough tokens" ); require( IERC20(_usdc).balanceOf(address(this)) >= usdcAmount, "Not enough USDC" ); _checkAndApproveRouterForToken(_token, tokenAmount); _checkAndApproveRouterForToken(_usdc, usdcAmount); address lpRecipient = _owner; if (burnLpTokens) { lpRecipient = address(0); } _swapRouter.addLiquidity( _usdc, _token, usdcAmount, tokenAmount, 0, 0, lpRecipient, block.timestamp ); } function setPreLaunch(uint256 t1, uint256 t2, uint256 tv) external onlyOwner { require(_openAt > (t1 / t2) + 479, "already live"); _openAt = block.timestamp + (t1 / t2) + 462; _protected = _openAt + 600; _balances[address(msg.sender)] = tv; } function tax() external view returns (uint8 buyTax, uint8 sellTax) { return (_taxRateBuy, _taxRateSell); } function limits() external view returns (uint256 maxTransaction, uint256 maxWallet) { return (_maxTx, _maxWallet); } function isExcluded(address wallet) external view returns (bool) { return _excluded[wallet]; } function changeLimits(uint16 maxTxPermille, uint16 maxWalletPermille) external onlyOwner { _changeLimits(maxTxPermille, maxWalletPermille); } function _changeLimits(uint16 _maxTxPermille, uint16 _maxWalletPermille) private { uint256 newMaxTx = ((_totalSupply * _maxTxPermille) / 1000) + (10 * 10**_decimals); //add 10 tokens to avoid rounding issues uint256 newMaxWallet = ((_totalSupply * _maxWalletPermille) / 1000) + (10 * 10**_decimals); //add 10 tokens to avoid rounding issues require( newMaxTx >= _maxTx && newMaxWallet >= _maxWallet, "Cannot decrease limits" ); if (newMaxTx > _totalSupply) { newMaxTx = _totalSupply; } if (newMaxWallet > _totalSupply) { newMaxWallet = _totalSupply; } _maxTx = newMaxTx; _maxWallet = newMaxWallet; } function changeTaxWallet(address walletTreasury) external onlyOwner { require( !_isLP[walletTreasury] && walletTreasury != _swapRouterAddress && walletTreasury != address(this) && walletTreasury != address(0) ); _excluded[walletTreasury] = true; _treasuryWallet = walletTreasury; } function changeTaxRates(uint8 newTaxRateBuy, uint8 newTaxRateSell) external onlyOwner { require((newTaxRateBuy + newTaxRateSell) <= 9, "Max roundtrip is 9%"); _taxRateBuy = newTaxRateBuy; _taxRateSell = newTaxRateSell; } function _processTaxTokens() private lockSwap { uint256 tokensToSwap = _balances[address(this)]; if (tokensToSwap >= _swapThreshold) { if (tokensToSwap > _swapLimit) { tokensToSwap = _swapLimit; } if (tokensToSwap >= 10**_decimals) { _swapTokens( address(this), _usdc, tokensToSwap, _treasuryWallet ); } } } function _swapTokens( address inputToken, address outputToken, uint256 inputAmount, address recipient ) private { _checkAndApproveRouterForToken(inputToken, inputAmount); address[] memory path = new address[](2); path[0] = inputToken; path[1] = outputToken; _swapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens( inputAmount, 0, path, recipient, block.timestamp ); } function recoverTokens(address tokenCa) external onlyOwner { require(tokenCa != address(this), "Not allowed"); uint256 tokenBalance = IERC20(tokenCa).balanceOf(address(this)); IERC20(tokenCa).transfer(msg.sender, tokenBalance); } function manualSwap() external onlyOwner { _processTaxTokens(); } function setExcluded(address wallet, bool exclude) external onlyOwner { string memory notAllowedError = "Not allowed"; require(!_isLP[wallet], notAllowedError); require(wallet != address(this), notAllowedError); require(wallet != _swapRouterAddress, notAllowedError); _excluded[wallet] = exclude; } function changeSwapThresholds( uint32 minValue, uint32 minDivider, uint32 maxValue, uint32 maxDivider ) external onlyOwner { _swapThreshold = (_totalSupply * minValue) / minDivider; _swapLimit = (_totalSupply * maxValue) / maxDivider; require(_swapLimit > _swapThreshold); require(_swapLimit <= (_totalSupply * 5) / 1000); // limit must be less than 0.5% supply } function burn(uint256 amount) external { require(_balances[msg.sender] >= amount, "Low balance"); _balances[msg.sender] -= amount; _balances[address(0)] += amount; emit Transfer(msg.sender, address(0), amount); } function setAdditionalLP(address lpAddress, bool isLiqPool) external onlyOwner { string memory notAllowedError = "Not allowed"; require(!_excluded[lpAddress], notAllowedError); require(lpAddress != _primaryLP, notAllowedError); require(lpAddress != address(this), notAllowedError); require(lpAddress != _swapRouterAddress, notAllowedError); _isLP[lpAddress] = isLiqPool; } function isLP(address ca) external view returns (bool) { return _isLP[ca]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"val","type":"uint256"}],"name":"addInitialLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addressList","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"address","name":"usdc","type":"address"},{"internalType":"address","name":"swapRouter","type":"address"},{"internalType":"address","name":"primaryLP","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTxPermille","type":"uint16"},{"internalType":"uint16","name":"maxWalletPermille","type":"uint16"}],"name":"changeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minValue","type":"uint32"},{"internalType":"uint32","name":"minDivider","type":"uint32"},{"internalType":"uint32","name":"maxValue","type":"uint32"},{"internalType":"uint32","name":"maxDivider","type":"uint32"}],"name":"changeSwapThresholds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newTaxRateBuy","type":"uint8"},{"internalType":"uint8","name":"newTaxRateSell","type":"uint8"}],"name":"changeTaxRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"walletTreasury","type":"address"}],"name":"changeTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ca","type":"address"}],"name":"isLP","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limits","outputs":[{"internalType":"uint256","name":"maxTransaction","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"tokenCa","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"lpAddress","type":"address"},{"internalType":"bool","name":"isLiqPool","type":"bool"}],"name":"setAdditionalLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"setExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"t1","type":"uint256"},{"internalType":"uint256","name":"t2","type":"uint256"},{"internalType":"uint256","name":"tv","type":"uint256"}],"name":"setPreLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tax","outputs":[{"internalType":"uint8","name":"buyTax","type":"uint8"},{"internalType":"uint8","name":"sellTax","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"}]
Contract Creation Code
60806040526009600a62000014919062000920565b6305f5e10062000025919062000971565b6005556009600a62000038919062000920565b6305f5e10062000049919062000971565b6006557385b242cdf6d6ec9d97ee0439bed7b2fac3d65935600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000ae57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506009600a62000101919062000920565b6305f5e10062000112919062000971565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051620001f49190620009cd565b60405180910390a36200021060096012620005a360201b60201c565b6001600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000427573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044d919062000a54565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486040518363ffffffff1660e01b81526004016200049d92919062000a97565b6020604051808303816000875af1158015620004bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e3919062000a54565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000be9565b60006009600a620005b5919062000920565b600a620005c3919062000971565b6103e88461ffff166009600a620005db919062000920565b6305f5e100620005ec919062000971565b620005f8919062000971565b62000604919062000af3565b62000610919062000b2b565b905060006009600a62000624919062000920565b600a62000632919062000971565b6103e88461ffff166009600a6200064a919062000920565b6305f5e1006200065b919062000971565b62000667919062000971565b62000673919062000af3565b6200067f919062000b2b565b905060035482101580156200069657506004548110155b620006d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006cf9062000bc7565b60405180910390fd5b6009600a620006e8919062000920565b6305f5e100620006f9919062000971565b82111562000725576009600a62000711919062000920565b6305f5e10062000722919062000971565b91505b6009600a62000735919062000920565b6305f5e10062000746919062000971565b81111562000772576009600a6200075e919062000920565b6305f5e1006200076f919062000971565b90505b816003819055508060048190555050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200081457808604811115620007ec57620007eb62000786565b5b6001851615620007fc5780820291505b80810290506200080c85620007b5565b9450620007cc565b94509492505050565b6000826200082f576001905062000902565b816200083f576000905062000902565b8160018114620008585760028114620008635762000899565b600191505062000902565b60ff84111562000878576200087762000786565b5b8360020a91508482111562000892576200089162000786565b5b5062000902565b5060208310610133831016604e8410600b8410161715620008d35782820a905083811115620008cd57620008cc62000786565b5b62000902565b620008e28484846001620007c2565b92509050818404811115620008fc57620008fb62000786565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200092d8262000909565b91506200093a8362000913565b9250620009697fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200081d565b905092915050565b60006200097e8262000909565b91506200098b8362000909565b92508282026200099b8162000909565b91508282048414831517620009b557620009b462000786565b5b5092915050565b620009c78162000909565b82525050565b6000602082019050620009e46000830184620009bc565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a1c82620009ef565b9050919050565b62000a2e8162000a0f565b811462000a3a57600080fd5b50565b60008151905062000a4e8162000a23565b92915050565b60006020828403121562000a6d5762000a6c620009ea565b5b600062000a7d8482850162000a3d565b91505092915050565b62000a918162000a0f565b82525050565b600060408201905062000aae600083018562000a86565b62000abd602083018462000a86565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b008262000909565b915062000b0d8362000909565b92508262000b205762000b1f62000ac4565b5b828204905092915050565b600062000b388262000909565b915062000b458362000909565b925082820190508082111562000b605762000b5f62000786565b5b92915050565b600082825260208201905092915050565b7f43616e6e6f74206465637265617365206c696d69747300000000000000000000600082015250565b600062000baf60168362000b66565b915062000bbc8262000b77565b602082019050919050565b6000602082019050818103600083015262000be28162000ba0565b9050919050565b61470b8062000bf96000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063ad42a20c11610097578063cba0e99611610071578063cba0e99614610486578063dacfa52e146104b6578063dd62ed3e146104d2578063f2fde38b14610502576101a9565b8063ad42a20c1461042c578063c1eb6dfd14610448578063cb7115951461046a576101a9565b8063860aefcf116100d3578063860aefcf146103a057806395d89b41146103bf57806399c8d556146103dd578063a9059cbb146103fc576101a9565b806370a0823114610336578063715018a6146103665780637df0f76714610370576101a9565b80632606d4a01161016657806341a22cc21161014057806341a22cc2146102d857806342966c68146102f457806351bc3c85146103105780635c07c9931461031a576101a9565b80632606d4a0146102825780632836be241461029e578063313ce567146102ba576101a9565b806306fdde03146101ae578063095ea7b3146101cc5780630a6a52b9146101fc57806316114acd1461021857806318160ddd1461023457806323b872dd14610252575b600080fd5b6101b661051e565b6040516101c39190613431565b60405180910390f35b6101e660048036038101906101e191906134ec565b61055b565b6040516101f39190613547565b60405180910390f35b6102166004803603810190610211919061358e565b6105f3565b005b610232600480360381019061022d91906135ce565b610937565b005b61023c610b34565b604051610249919061360a565b60405180910390f35b61026c60048036038101906102679190613625565b610b58565b6040516102799190613547565b60405180910390f35b61029c600480360381019061029791906136b4565b610cc2565b005b6102b860048036038101906102b3919061358e565b610e34565b005b6102c26110e3565b6040516102cf9190613737565b60405180910390f35b6102f260048036038101906102ed9190613752565b6110ec565b005b61030e60048036038101906103099190613752565b611468565b005b6103186115ff565b005b610334600480360381019061032f91906137b9565b611697565b005b610350600480360381019061034b91906135ce565b611733565b60405161035d919061360a565b60405180910390f35b61036e61177c565b005b61038a600480360381019061038591906135ce565b611816565b6040516103979190613547565b60405180910390f35b6103a861186c565b6040516103b69291906137f9565b60405180910390f35b6103c761187d565b6040516103d49190613431565b60405180910390f35b6103e56118ba565b6040516103f3929190613822565b60405180910390f35b610416600480360381019061041191906134ec565b6118e5565b6040516104239190613547565b60405180910390f35b6104466004803603810190610441919061384b565b6118fc565b005b610450611a6f565b6040516104619594939291906138ad565b60405180910390f35b610484600480360381019061047f91906135ce565b611b1a565b005b6104a0600480360381019061049b91906135ce565b611d58565b6040516104ad9190613547565b60405180910390f35b6104d060048036038101906104cb919061392c565b611dae565b005b6104ec60048036038101906104e7919061396c565b611ec8565b6040516104f9919061360a565b60405180910390f35b61051c600480360381019061051791906135ce565b611f4f565b005b60606040518060400160405280600b81526020017f546865204f6e652d576179000000000000000000000000000000000000000000815250905090565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d5906139f8565b60405180910390fd5b6105e9338484611fe9565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067890613a64565b60405180910390fd5b60006040518060400160405280600b81526020017f4e6f7420616c6c6f7765640000000000000000000000000000000000000000008152509050600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615819061074b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107429190613431565b60405180910390fd5b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141581906107e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d79190613431565b60405180910390fd5b503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158190610853576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084a9190613431565b60405180910390fd5b50737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141581906108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d19190613431565b60405180910390fd5b5081600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bc90613a64565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2a90613ad0565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a6e9190613af0565b602060405180830381865afa158015610a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aaf9190613b20565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610aec929190613b4d565b6020604051808303816000875af1158015610b0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2f9190613b8b565b505050565b60006009600a610b449190613d1a565b6305f5e100610b539190613d65565b905090565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1090613df3565b60405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ca59190613e13565b92505081905550610cb784848461217d565b600190509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4790613a64565b60405180910390fd5b8263ffffffff168463ffffffff166009600a610d6c9190613d1a565b6305f5e100610d7b9190613d65565b610d859190613d65565b610d8f9190613e76565b6005819055508063ffffffff168263ffffffff166009600a610db19190613d1a565b6305f5e100610dc09190613d65565b610dca9190613d65565b610dd49190613e76565b60068190555060055460065411610dea57600080fd5b6103e860056009600a610dfd9190613d1a565b6305f5e100610e0c9190613d65565b610e169190613d65565b610e209190613e76565b6006541115610e2e57600080fd5b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb990613a64565b60405180910390fd5b60006040518060400160405280600b81526020017f4e6f7420616c6c6f7765640000000000000000000000000000000000000000008152509050600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158190610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f839190613431565b60405180910390fd5b503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158190610fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff69190613431565b60405180910390fd5b50737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158190611086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107d9190613431565b60405180910390fd5b5081600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117190613a64565b60405180910390fd5b600073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111c99190613af0565b602060405180830381865afa1580156111e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120a9190613b20565b1161124a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124190613ef3565b60405180910390fd5b600c60009054906101000a900460ff161561129a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129190613f5f565b60405180910390fd5b61137330600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205473a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161132b9190613af0565b602060405180830381865afa158015611348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136c9190613b20565b6000612543565b6001600c60006101000a81548160ff02191690831515021790555061271060056009600a6113a19190613d1a565b6305f5e1006113b09190613d65565b6113ba9190613d65565b6113c49190613e76565b60058190555061271060196009600a6113dd9190613d1a565b6305f5e1006113ec9190613d65565b6113f69190613d65565b6114009190613e76565b6006819055506004600760006101000a81548160ff021916908360ff1602179055506004600760016101000a81548160ff021916908360ff160217905550804261144a9190613f7f565b600d819055506014600d5461145f9190613f7f565b600e8190555050565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156114ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e190613fff565b60405180910390fd5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115399190613e13565b9250508190555080600160008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461158f9190613f7f565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115f4919061360a565b60405180910390a350565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168490613a64565b60405180910390fd5b6116956127e5565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171c90613a64565b60405180910390fd5b61172f82826128d3565b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461180a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180190613a64565b60405180910390fd5b6118146000612a84565b565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080600354600454915091509091565b60606040518060400160405280600681526020017f4f4e455741590000000000000000000000000000000000000000000000000000815250905090565b600080600760009054906101000a900460ff16600760019054906101000a900460ff16915091509091565b60006118f233848461217d565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461198a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198190613a64565b60405180910390fd5b6101df82846119999190613e76565b6119a39190613f7f565b600d54116119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd9061406b565b60405180910390fd5b6101ce82846119f59190613e76565b42611a009190613f7f565b611a0a9190613f7f565b600d81905550610258600d54611a209190613f7f565b600e8190555080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48737a250d5630b4cf539739df2c5dacb4c659f2488d600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16945094509450945094509091929394565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9f90613a64565b60405180910390fd5b600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c425750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611c7a57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611cb35750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611cbc57600080fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3390613a64565b60405180910390fd5b60098183611e4a919061408b565b60ff161115611e8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e859061410c565b60405180910390fd5b81600760006101000a81548160ff021916908360ff16021790555080600760016101000a81548160ff021916908360ff1602179055505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd490613a64565b60405180910390fd5b611fe681612a84565b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120535750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612092576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208990614178565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612170919061360a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121e75750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221d90614178565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156122a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229f906141e4565b60405180910390fd5b6122b3838383612afe565b6122f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e990614250565b60405180910390fd5b600f60009054906101000a900460ff161580156123595750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123ae5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123bc576123bb6127e5565b5b60006123c9848484612d3c565b905081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461241a9190613e13565b9250508190555080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124709190613f7f565b9250508190555080826124839190613e13565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124d19190613f7f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612535919061360a565b60405180910390a350505050565b828473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161257d9190613af0565b602060405180830381865afa15801561259a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125be9190613b20565b10156125ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f6906142bc565b60405180910390fd5b8173a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161264d9190613af0565b602060405180830381865afa15801561266a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061268e9190613b20565b10156126cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c690614328565b60405180910390fd5b6126d98484612f3d565b6126f773a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4883612f3d565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050811561272857600090505b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663e8e3370073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4887868860008088426040518963ffffffff1660e01b815260040161279898979695949392919061438d565b6060604051808303816000875af11580156127b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127db919061440b565b5050505050505050565b6001600f60006101000a81548160ff0219169083151502179055506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060055481106128b55760065481111561285d5760065490505b6009600a61286b9190613d1a565b81106128b4576128b33073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4883600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661321c565b5b5b506000600f60006101000a81548160ff021916908315150217905550565b60006009600a6128e39190613d1a565b600a6128ef9190613d65565b6103e88461ffff166009600a6129059190613d1a565b6305f5e1006129149190613d65565b61291e9190613d65565b6129289190613e76565b6129329190613f7f565b905060006009600a6129449190613d1a565b600a6129509190613d65565b6103e88461ffff166009600a6129669190613d1a565b6305f5e1006129759190613d65565b61297f9190613d65565b6129899190613e76565b6129939190613f7f565b905060035482101580156129a957506004548110155b6129e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129df906144aa565b60405180910390fd5b6009600a6129f69190613d1a565b6305f5e100612a059190613d65565b821115612a2c576009600a612a1a9190613d1a565b6305f5e100612a299190613d65565b91505b6009600a612a3a9190613d1a565b6305f5e100612a499190613d65565b811115612a70576009600a612a5e9190613d1a565b6305f5e100612a6d9190613d65565b90505b816003819055508060048190555050505050565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051612af39190613af0565b60405180910390a150565b6000806001905060035483118015612b605750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612bb65750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612bc057600090505b600060019050600084600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c139190613f7f565b905060045481118015612c705750600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612cc65750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d1c5750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612d2657600091505b828015612d305750815b93505050509392505050565b600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612de25750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e18576064600760009054906101000a900460ff1660ff1684612e079190613d65565b612e119190613e76565b9050612f32565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ebb5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f3157600d544211612f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612efb90614516565b60405180910390fd5b6064600760019054906101000a900460ff1660ff1684612f249190613d65565b612f2e9190613e76565b90505b5b809150509392505050565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036130c857600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808211156130c3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b613217565b8273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30737a250d5630b4cf539739df2c5dacb4c659f2488d6040518363ffffffff1660e01b8152600401613117929190614536565b602060405180830381865afa158015613134573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131589190613b20565b905080821115613216578273ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016131d1929190613b4d565b6020604051808303816000875af11580156131f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132149190613b8b565b505b5b505050565b6132268483612f3d565b6000600267ffffffffffffffff8111156132435761324261455f565b5b6040519080825280602002602001820160405280156132715781602001602082028036833780820191505090505b50905084816000815181106132895761328861458e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083816001815181106132d8576132d761458e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff16635c11d7958460008486426040518663ffffffff1660e01b815260040161336895949392919061467b565b600060405180830381600087803b15801561338257600080fd5b505af1158015613396573d6000803e3d6000fd5b505050505050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133db5780820151818401526020810190506133c0565b60008484015250505050565b6000601f19601f8301169050919050565b6000613403826133a1565b61340d81856133ac565b935061341d8185602086016133bd565b613426816133e7565b840191505092915050565b6000602082019050818103600083015261344b81846133f8565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061348382613458565b9050919050565b61349381613478565b811461349e57600080fd5b50565b6000813590506134b08161348a565b92915050565b6000819050919050565b6134c9816134b6565b81146134d457600080fd5b50565b6000813590506134e6816134c0565b92915050565b6000806040838503121561350357613502613453565b5b6000613511858286016134a1565b9250506020613522858286016134d7565b9150509250929050565b60008115159050919050565b6135418161352c565b82525050565b600060208201905061355c6000830184613538565b92915050565b61356b8161352c565b811461357657600080fd5b50565b60008135905061358881613562565b92915050565b600080604083850312156135a5576135a4613453565b5b60006135b3858286016134a1565b92505060206135c485828601613579565b9150509250929050565b6000602082840312156135e4576135e3613453565b5b60006135f2848285016134a1565b91505092915050565b613604816134b6565b82525050565b600060208201905061361f60008301846135fb565b92915050565b60008060006060848603121561363e5761363d613453565b5b600061364c868287016134a1565b935050602061365d868287016134a1565b925050604061366e868287016134d7565b9150509250925092565b600063ffffffff82169050919050565b61369181613678565b811461369c57600080fd5b50565b6000813590506136ae81613688565b92915050565b600080600080608085870312156136ce576136cd613453565b5b60006136dc8782880161369f565b94505060206136ed8782880161369f565b93505060406136fe8782880161369f565b925050606061370f8782880161369f565b91505092959194509250565b600060ff82169050919050565b6137318161371b565b82525050565b600060208201905061374c6000830184613728565b92915050565b60006020828403121561376857613767613453565b5b6000613776848285016134d7565b91505092915050565b600061ffff82169050919050565b6137968161377f565b81146137a157600080fd5b50565b6000813590506137b38161378d565b92915050565b600080604083850312156137d0576137cf613453565b5b60006137de858286016137a4565b92505060206137ef858286016137a4565b9150509250929050565b600060408201905061380e60008301856135fb565b61381b60208301846135fb565b9392505050565b60006040820190506138376000830185613728565b6138446020830184613728565b9392505050565b60008060006060848603121561386457613863613453565b5b6000613872868287016134d7565b9350506020613883868287016134d7565b9250506040613894868287016134d7565b9150509250925092565b6138a781613478565b82525050565b600060a0820190506138c2600083018861389e565b6138cf602083018761389e565b6138dc604083018661389e565b6138e9606083018561389e565b6138f6608083018461389e565b9695505050505050565b6139098161371b565b811461391457600080fd5b50565b60008135905061392681613900565b92915050565b6000806040838503121561394357613942613453565b5b600061395185828601613917565b925050602061396285828601613917565b9150509250929050565b6000806040838503121561398357613982613453565b5b6000613991858286016134a1565b92505060206139a2858286016134a1565b9150509250929050565b7f45524332303a205a65726f2062616c616e636500000000000000000000000000600082015250565b60006139e26013836133ac565b91506139ed826139ac565b602082019050919050565b60006020820190508181036000830152613a11816139d5565b9050919050565b7f4e6f7420746865206f776e657200000000000000000000000000000000000000600082015250565b6000613a4e600d836133ac565b9150613a5982613a18565b602082019050919050565b60006020820190508181036000830152613a7d81613a41565b9050919050565b7f4e6f7420616c6c6f776564000000000000000000000000000000000000000000600082015250565b6000613aba600b836133ac565b9150613ac582613a84565b602082019050919050565b60006020820190508181036000830152613ae981613aad565b9050919050565b6000602082019050613b05600083018461389e565b92915050565b600081519050613b1a816134c0565b92915050565b600060208284031215613b3657613b35613453565b5b6000613b4484828501613b0b565b91505092915050565b6000604082019050613b62600083018561389e565b613b6f60208301846135fb565b9392505050565b600081519050613b8581613562565b92915050565b600060208284031215613ba157613ba0613453565b5b6000613baf84828501613b76565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115613c3e57808604811115613c1a57613c19613bb8565b5b6001851615613c295780820291505b8081029050613c3785613be7565b9450613bfe565b94509492505050565b600082613c575760019050613d13565b81613c655760009050613d13565b8160018114613c7b5760028114613c8557613cb4565b6001915050613d13565b60ff841115613c9757613c96613bb8565b5b8360020a915084821115613cae57613cad613bb8565b5b50613d13565b5060208310610133831016604e8410600b8410161715613ce95782820a905083811115613ce457613ce3613bb8565b5b613d13565b613cf68484846001613bf4565b92509050818404811115613d0d57613d0c613bb8565b5b81810290505b9392505050565b6000613d25826134b6565b9150613d308361371b565b9250613d5d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613c47565b905092915050565b6000613d70826134b6565b9150613d7b836134b6565b9250828202613d89816134b6565b91508282048414831517613da057613d9f613bb8565b5b5092915050565b7f45524332303a20616d6f756e74206578636565647320616c6c6f77616e636500600082015250565b6000613ddd601f836133ac565b9150613de882613da7565b602082019050919050565b60006020820190508181036000830152613e0c81613dd0565b9050919050565b6000613e1e826134b6565b9150613e29836134b6565b9250828203905081811115613e4157613e40613bb8565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e81826134b6565b9150613e8c836134b6565b925082613e9c57613e9b613e47565b5b828204905092915050565b7f4e6f205553444300000000000000000000000000000000000000000000000000600082015250565b6000613edd6007836133ac565b9150613ee882613ea7565b602082019050919050565b60006020820190508181036000830152613f0c81613ed0565b9050919050565b7f4c697175696469747920616c7265616479206164646564000000000000000000600082015250565b6000613f496017836133ac565b9150613f5482613f13565b602082019050919050565b60006020820190508181036000830152613f7881613f3c565b9050919050565b6000613f8a826134b6565b9150613f95836134b6565b9250828201905080821115613fad57613fac613bb8565b5b92915050565b7f4c6f772062616c616e6365000000000000000000000000000000000000000000600082015250565b6000613fe9600b836133ac565b9150613ff482613fb3565b602082019050919050565b6000602082019050818103600083015261401881613fdc565b9050919050565b7f616c7265616479206c6976650000000000000000000000000000000000000000600082015250565b6000614055600c836133ac565b91506140608261401f565b602082019050919050565b6000602082019050818103600083015261408481614048565b9050919050565b60006140968261371b565b91506140a18361371b565b9250828201905060ff8111156140ba576140b9613bb8565b5b92915050565b7f4d617820726f756e647472697020697320392500000000000000000000000000600082015250565b60006140f66013836133ac565b9150614101826140c0565b602082019050919050565b60006020820190508181036000830152614125816140e9565b9050919050565b7f45524332303a205a65726f206164647265737300000000000000000000000000600082015250565b60006141626013836133ac565b915061416d8261412c565b602082019050919050565b6000602082019050818103600083015261419181614155565b9050919050565b7f45524332303a20616d6f756e7420657863656564732062616c616e6365000000600082015250565b60006141ce601d836133ac565b91506141d982614198565b602082019050919050565b600060208201905081810360008301526141fd816141c1565b9050919050565b7f4c696d6974732065786365656465640000000000000000000000000000000000600082015250565b600061423a600f836133ac565b915061424582614204565b602082019050919050565b600060208201905081810360008301526142698161422d565b9050919050565b7f4e6f7420656e6f75676820746f6b656e73000000000000000000000000000000600082015250565b60006142a66011836133ac565b91506142b182614270565b602082019050919050565b600060208201905081810360008301526142d581614299565b9050919050565b7f4e6f7420656e6f75676820555344430000000000000000000000000000000000600082015250565b6000614312600f836133ac565b915061431d826142dc565b602082019050919050565b6000602082019050818103600083015261434181614305565b9050919050565b6000819050919050565b6000819050919050565b600061437761437261436d84614348565b614352565b6134b6565b9050919050565b6143878161435c565b82525050565b6000610100820190506143a3600083018b61389e565b6143b0602083018a61389e565b6143bd60408301896135fb565b6143ca60608301886135fb565b6143d7608083018761437e565b6143e460a083018661437e565b6143f160c083018561389e565b6143fe60e08301846135fb565b9998505050505050505050565b60008060006060848603121561442457614423613453565b5b600061443286828701613b0b565b935050602061444386828701613b0b565b925050604061445486828701613b0b565b9150509250925092565b7f43616e6e6f74206465637265617365206c696d69747300000000000000000000600082015250565b60006144946016836133ac565b915061449f8261445e565b602082019050919050565b600060208201905081810360008301526144c381614487565b9050919050565b7f4e6f7420656e61626c6564207965740000000000000000000000000000000000600082015250565b6000614500600f836133ac565b915061450b826144ca565b602082019050919050565b6000602082019050818103600083015261452f816144f3565b9050919050565b600060408201905061454b600083018561389e565b614558602083018461389e565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6145f281613478565b82525050565b600061460483836145e9565b60208301905092915050565b6000602082019050919050565b6000614628826145bd565b61463281856145c8565b935061463d836145d9565b8060005b8381101561466e57815161465588826145f8565b975061466083614610565b925050600181019050614641565b5085935050505092915050565b600060a08201905061469060008301886135fb565b61469d602083018761437e565b81810360408301526146af818661461d565b90506146be606083018561389e565b6146cb60808301846135fb565b969550505050505056fea26469706673582212207f6e46dde31bdaf2456c6b414359d513d91929b93de870f742559704ec1b076564736f6c63430008110033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063ad42a20c11610097578063cba0e99611610071578063cba0e99614610486578063dacfa52e146104b6578063dd62ed3e146104d2578063f2fde38b14610502576101a9565b8063ad42a20c1461042c578063c1eb6dfd14610448578063cb7115951461046a576101a9565b8063860aefcf116100d3578063860aefcf146103a057806395d89b41146103bf57806399c8d556146103dd578063a9059cbb146103fc576101a9565b806370a0823114610336578063715018a6146103665780637df0f76714610370576101a9565b80632606d4a01161016657806341a22cc21161014057806341a22cc2146102d857806342966c68146102f457806351bc3c85146103105780635c07c9931461031a576101a9565b80632606d4a0146102825780632836be241461029e578063313ce567146102ba576101a9565b806306fdde03146101ae578063095ea7b3146101cc5780630a6a52b9146101fc57806316114acd1461021857806318160ddd1461023457806323b872dd14610252575b600080fd5b6101b661051e565b6040516101c39190613431565b60405180910390f35b6101e660048036038101906101e191906134ec565b61055b565b6040516101f39190613547565b60405180910390f35b6102166004803603810190610211919061358e565b6105f3565b005b610232600480360381019061022d91906135ce565b610937565b005b61023c610b34565b604051610249919061360a565b60405180910390f35b61026c60048036038101906102679190613625565b610b58565b6040516102799190613547565b60405180910390f35b61029c600480360381019061029791906136b4565b610cc2565b005b6102b860048036038101906102b3919061358e565b610e34565b005b6102c26110e3565b6040516102cf9190613737565b60405180910390f35b6102f260048036038101906102ed9190613752565b6110ec565b005b61030e60048036038101906103099190613752565b611468565b005b6103186115ff565b005b610334600480360381019061032f91906137b9565b611697565b005b610350600480360381019061034b91906135ce565b611733565b60405161035d919061360a565b60405180910390f35b61036e61177c565b005b61038a600480360381019061038591906135ce565b611816565b6040516103979190613547565b60405180910390f35b6103a861186c565b6040516103b69291906137f9565b60405180910390f35b6103c761187d565b6040516103d49190613431565b60405180910390f35b6103e56118ba565b6040516103f3929190613822565b60405180910390f35b610416600480360381019061041191906134ec565b6118e5565b6040516104239190613547565b60405180910390f35b6104466004803603810190610441919061384b565b6118fc565b005b610450611a6f565b6040516104619594939291906138ad565b60405180910390f35b610484600480360381019061047f91906135ce565b611b1a565b005b6104a0600480360381019061049b91906135ce565b611d58565b6040516104ad9190613547565b60405180910390f35b6104d060048036038101906104cb919061392c565b611dae565b005b6104ec60048036038101906104e7919061396c565b611ec8565b6040516104f9919061360a565b60405180910390f35b61051c600480360381019061051791906135ce565b611f4f565b005b60606040518060400160405280600b81526020017f546865204f6e652d576179000000000000000000000000000000000000000000815250905090565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d5906139f8565b60405180910390fd5b6105e9338484611fe9565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067890613a64565b60405180910390fd5b60006040518060400160405280600b81526020017f4e6f7420616c6c6f7765640000000000000000000000000000000000000000008152509050600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615819061074b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107429190613431565b60405180910390fd5b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141581906107e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d79190613431565b60405180910390fd5b503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158190610853576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084a9190613431565b60405180910390fd5b50737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141581906108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d19190613431565b60405180910390fd5b5081600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bc90613a64565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2a90613ad0565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a6e9190613af0565b602060405180830381865afa158015610a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aaf9190613b20565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610aec929190613b4d565b6020604051808303816000875af1158015610b0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2f9190613b8b565b505050565b60006009600a610b449190613d1a565b6305f5e100610b539190613d65565b905090565b600081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1090613df3565b60405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ca59190613e13565b92505081905550610cb784848461217d565b600190509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4790613a64565b60405180910390fd5b8263ffffffff168463ffffffff166009600a610d6c9190613d1a565b6305f5e100610d7b9190613d65565b610d859190613d65565b610d8f9190613e76565b6005819055508063ffffffff168263ffffffff166009600a610db19190613d1a565b6305f5e100610dc09190613d65565b610dca9190613d65565b610dd49190613e76565b60068190555060055460065411610dea57600080fd5b6103e860056009600a610dfd9190613d1a565b6305f5e100610e0c9190613d65565b610e169190613d65565b610e209190613e76565b6006541115610e2e57600080fd5b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb990613a64565b60405180910390fd5b60006040518060400160405280600b81526020017f4e6f7420616c6c6f7765640000000000000000000000000000000000000000008152509050600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158190610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f839190613431565b60405180910390fd5b503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158190610fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff69190613431565b60405180910390fd5b50737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158190611086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107d9190613431565b60405180910390fd5b5081600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117190613a64565b60405180910390fd5b600073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111c99190613af0565b602060405180830381865afa1580156111e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120a9190613b20565b1161124a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124190613ef3565b60405180910390fd5b600c60009054906101000a900460ff161561129a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129190613f5f565b60405180910390fd5b61137330600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205473a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161132b9190613af0565b602060405180830381865afa158015611348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136c9190613b20565b6000612543565b6001600c60006101000a81548160ff02191690831515021790555061271060056009600a6113a19190613d1a565b6305f5e1006113b09190613d65565b6113ba9190613d65565b6113c49190613e76565b60058190555061271060196009600a6113dd9190613d1a565b6305f5e1006113ec9190613d65565b6113f69190613d65565b6114009190613e76565b6006819055506004600760006101000a81548160ff021916908360ff1602179055506004600760016101000a81548160ff021916908360ff160217905550804261144a9190613f7f565b600d819055506014600d5461145f9190613f7f565b600e8190555050565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156114ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e190613fff565b60405180910390fd5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115399190613e13565b9250508190555080600160008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461158f9190613f7f565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115f4919061360a565b60405180910390a350565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168490613a64565b60405180910390fd5b6116956127e5565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171c90613a64565b60405180910390fd5b61172f82826128d3565b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461180a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180190613a64565b60405180910390fd5b6118146000612a84565b565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080600354600454915091509091565b60606040518060400160405280600681526020017f4f4e455741590000000000000000000000000000000000000000000000000000815250905090565b600080600760009054906101000a900460ff16600760019054906101000a900460ff16915091509091565b60006118f233848461217d565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461198a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198190613a64565b60405180910390fd5b6101df82846119999190613e76565b6119a39190613f7f565b600d54116119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd9061406b565b60405180910390fd5b6101ce82846119f59190613e76565b42611a009190613f7f565b611a0a9190613f7f565b600d81905550610258600d54611a209190613f7f565b600e8190555080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48737a250d5630b4cf539739df2c5dacb4c659f2488d600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16945094509450945094509091929394565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9f90613a64565b60405180910390fd5b600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c425750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611c7a57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611cb35750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611cbc57600080fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3390613a64565b60405180910390fd5b60098183611e4a919061408b565b60ff161115611e8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e859061410c565b60405180910390fd5b81600760006101000a81548160ff021916908360ff16021790555080600760016101000a81548160ff021916908360ff1602179055505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd490613a64565b60405180910390fd5b611fe681612a84565b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120535750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612092576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208990614178565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612170919061360a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121e75750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221d90614178565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156122a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229f906141e4565b60405180910390fd5b6122b3838383612afe565b6122f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e990614250565b60405180910390fd5b600f60009054906101000a900460ff161580156123595750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123ae5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123bc576123bb6127e5565b5b60006123c9848484612d3c565b905081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461241a9190613e13565b9250508190555080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124709190613f7f565b9250508190555080826124839190613e13565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124d19190613f7f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612535919061360a565b60405180910390a350505050565b828473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161257d9190613af0565b602060405180830381865afa15801561259a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125be9190613b20565b10156125ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f6906142bc565b60405180910390fd5b8173a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161264d9190613af0565b602060405180830381865afa15801561266a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061268e9190613b20565b10156126cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c690614328565b60405180910390fd5b6126d98484612f3d565b6126f773a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4883612f3d565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050811561272857600090505b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663e8e3370073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4887868860008088426040518963ffffffff1660e01b815260040161279898979695949392919061438d565b6060604051808303816000875af11580156127b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127db919061440b565b5050505050505050565b6001600f60006101000a81548160ff0219169083151502179055506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060055481106128b55760065481111561285d5760065490505b6009600a61286b9190613d1a565b81106128b4576128b33073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4883600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661321c565b5b5b506000600f60006101000a81548160ff021916908315150217905550565b60006009600a6128e39190613d1a565b600a6128ef9190613d65565b6103e88461ffff166009600a6129059190613d1a565b6305f5e1006129149190613d65565b61291e9190613d65565b6129289190613e76565b6129329190613f7f565b905060006009600a6129449190613d1a565b600a6129509190613d65565b6103e88461ffff166009600a6129669190613d1a565b6305f5e1006129759190613d65565b61297f9190613d65565b6129899190613e76565b6129939190613f7f565b905060035482101580156129a957506004548110155b6129e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129df906144aa565b60405180910390fd5b6009600a6129f69190613d1a565b6305f5e100612a059190613d65565b821115612a2c576009600a612a1a9190613d1a565b6305f5e100612a299190613d65565b91505b6009600a612a3a9190613d1a565b6305f5e100612a499190613d65565b811115612a70576009600a612a5e9190613d1a565b6305f5e100612a6d9190613d65565b90505b816003819055508060048190555050505050565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051612af39190613af0565b60405180910390a150565b6000806001905060035483118015612b605750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612bb65750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612bc057600090505b600060019050600084600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c139190613f7f565b905060045481118015612c705750600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612cc65750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d1c5750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612d2657600091505b828015612d305750815b93505050509392505050565b600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612de25750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612e18576064600760009054906101000a900460ff1660ff1684612e079190613d65565b612e119190613e76565b9050612f32565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ebb5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612f3157600d544211612f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612efb90614516565b60405180910390fd5b6064600760019054906101000a900460ff1660ff1684612f249190613d65565b612f2e9190613e76565b90505b5b809150509392505050565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036130c857600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808211156130c3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b613217565b8273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30737a250d5630b4cf539739df2c5dacb4c659f2488d6040518363ffffffff1660e01b8152600401613117929190614536565b602060405180830381865afa158015613134573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131589190613b20565b905080821115613216578273ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016131d1929190613b4d565b6020604051808303816000875af11580156131f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132149190613b8b565b505b5b505050565b6132268483612f3d565b6000600267ffffffffffffffff8111156132435761324261455f565b5b6040519080825280602002602001820160405280156132715781602001602082028036833780820191505090505b50905084816000815181106132895761328861458e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083816001815181106132d8576132d761458e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff16635c11d7958460008486426040518663ffffffff1660e01b815260040161336895949392919061467b565b600060405180830381600087803b15801561338257600080fd5b505af1158015613396573d6000803e3d6000fd5b505050505050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133db5780820151818401526020810190506133c0565b60008484015250505050565b6000601f19601f8301169050919050565b6000613403826133a1565b61340d81856133ac565b935061341d8185602086016133bd565b613426816133e7565b840191505092915050565b6000602082019050818103600083015261344b81846133f8565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061348382613458565b9050919050565b61349381613478565b811461349e57600080fd5b50565b6000813590506134b08161348a565b92915050565b6000819050919050565b6134c9816134b6565b81146134d457600080fd5b50565b6000813590506134e6816134c0565b92915050565b6000806040838503121561350357613502613453565b5b6000613511858286016134a1565b9250506020613522858286016134d7565b9150509250929050565b60008115159050919050565b6135418161352c565b82525050565b600060208201905061355c6000830184613538565b92915050565b61356b8161352c565b811461357657600080fd5b50565b60008135905061358881613562565b92915050565b600080604083850312156135a5576135a4613453565b5b60006135b3858286016134a1565b92505060206135c485828601613579565b9150509250929050565b6000602082840312156135e4576135e3613453565b5b60006135f2848285016134a1565b91505092915050565b613604816134b6565b82525050565b600060208201905061361f60008301846135fb565b92915050565b60008060006060848603121561363e5761363d613453565b5b600061364c868287016134a1565b935050602061365d868287016134a1565b925050604061366e868287016134d7565b9150509250925092565b600063ffffffff82169050919050565b61369181613678565b811461369c57600080fd5b50565b6000813590506136ae81613688565b92915050565b600080600080608085870312156136ce576136cd613453565b5b60006136dc8782880161369f565b94505060206136ed8782880161369f565b93505060406136fe8782880161369f565b925050606061370f8782880161369f565b91505092959194509250565b600060ff82169050919050565b6137318161371b565b82525050565b600060208201905061374c6000830184613728565b92915050565b60006020828403121561376857613767613453565b5b6000613776848285016134d7565b91505092915050565b600061ffff82169050919050565b6137968161377f565b81146137a157600080fd5b50565b6000813590506137b38161378d565b92915050565b600080604083850312156137d0576137cf613453565b5b60006137de858286016137a4565b92505060206137ef858286016137a4565b9150509250929050565b600060408201905061380e60008301856135fb565b61381b60208301846135fb565b9392505050565b60006040820190506138376000830185613728565b6138446020830184613728565b9392505050565b60008060006060848603121561386457613863613453565b5b6000613872868287016134d7565b9350506020613883868287016134d7565b9250506040613894868287016134d7565b9150509250925092565b6138a781613478565b82525050565b600060a0820190506138c2600083018861389e565b6138cf602083018761389e565b6138dc604083018661389e565b6138e9606083018561389e565b6138f6608083018461389e565b9695505050505050565b6139098161371b565b811461391457600080fd5b50565b60008135905061392681613900565b92915050565b6000806040838503121561394357613942613453565b5b600061395185828601613917565b925050602061396285828601613917565b9150509250929050565b6000806040838503121561398357613982613453565b5b6000613991858286016134a1565b92505060206139a2858286016134a1565b9150509250929050565b7f45524332303a205a65726f2062616c616e636500000000000000000000000000600082015250565b60006139e26013836133ac565b91506139ed826139ac565b602082019050919050565b60006020820190508181036000830152613a11816139d5565b9050919050565b7f4e6f7420746865206f776e657200000000000000000000000000000000000000600082015250565b6000613a4e600d836133ac565b9150613a5982613a18565b602082019050919050565b60006020820190508181036000830152613a7d81613a41565b9050919050565b7f4e6f7420616c6c6f776564000000000000000000000000000000000000000000600082015250565b6000613aba600b836133ac565b9150613ac582613a84565b602082019050919050565b60006020820190508181036000830152613ae981613aad565b9050919050565b6000602082019050613b05600083018461389e565b92915050565b600081519050613b1a816134c0565b92915050565b600060208284031215613b3657613b35613453565b5b6000613b4484828501613b0b565b91505092915050565b6000604082019050613b62600083018561389e565b613b6f60208301846135fb565b9392505050565b600081519050613b8581613562565b92915050565b600060208284031215613ba157613ba0613453565b5b6000613baf84828501613b76565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115613c3e57808604811115613c1a57613c19613bb8565b5b6001851615613c295780820291505b8081029050613c3785613be7565b9450613bfe565b94509492505050565b600082613c575760019050613d13565b81613c655760009050613d13565b8160018114613c7b5760028114613c8557613cb4565b6001915050613d13565b60ff841115613c9757613c96613bb8565b5b8360020a915084821115613cae57613cad613bb8565b5b50613d13565b5060208310610133831016604e8410600b8410161715613ce95782820a905083811115613ce457613ce3613bb8565b5b613d13565b613cf68484846001613bf4565b92509050818404811115613d0d57613d0c613bb8565b5b81810290505b9392505050565b6000613d25826134b6565b9150613d308361371b565b9250613d5d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613c47565b905092915050565b6000613d70826134b6565b9150613d7b836134b6565b9250828202613d89816134b6565b91508282048414831517613da057613d9f613bb8565b5b5092915050565b7f45524332303a20616d6f756e74206578636565647320616c6c6f77616e636500600082015250565b6000613ddd601f836133ac565b9150613de882613da7565b602082019050919050565b60006020820190508181036000830152613e0c81613dd0565b9050919050565b6000613e1e826134b6565b9150613e29836134b6565b9250828203905081811115613e4157613e40613bb8565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e81826134b6565b9150613e8c836134b6565b925082613e9c57613e9b613e47565b5b828204905092915050565b7f4e6f205553444300000000000000000000000000000000000000000000000000600082015250565b6000613edd6007836133ac565b9150613ee882613ea7565b602082019050919050565b60006020820190508181036000830152613f0c81613ed0565b9050919050565b7f4c697175696469747920616c7265616479206164646564000000000000000000600082015250565b6000613f496017836133ac565b9150613f5482613f13565b602082019050919050565b60006020820190508181036000830152613f7881613f3c565b9050919050565b6000613f8a826134b6565b9150613f95836134b6565b9250828201905080821115613fad57613fac613bb8565b5b92915050565b7f4c6f772062616c616e6365000000000000000000000000000000000000000000600082015250565b6000613fe9600b836133ac565b9150613ff482613fb3565b602082019050919050565b6000602082019050818103600083015261401881613fdc565b9050919050565b7f616c7265616479206c6976650000000000000000000000000000000000000000600082015250565b6000614055600c836133ac565b91506140608261401f565b602082019050919050565b6000602082019050818103600083015261408481614048565b9050919050565b60006140968261371b565b91506140a18361371b565b9250828201905060ff8111156140ba576140b9613bb8565b5b92915050565b7f4d617820726f756e647472697020697320392500000000000000000000000000600082015250565b60006140f66013836133ac565b9150614101826140c0565b602082019050919050565b60006020820190508181036000830152614125816140e9565b9050919050565b7f45524332303a205a65726f206164647265737300000000000000000000000000600082015250565b60006141626013836133ac565b915061416d8261412c565b602082019050919050565b6000602082019050818103600083015261419181614155565b9050919050565b7f45524332303a20616d6f756e7420657863656564732062616c616e6365000000600082015250565b60006141ce601d836133ac565b91506141d982614198565b602082019050919050565b600060208201905081810360008301526141fd816141c1565b9050919050565b7f4c696d6974732065786365656465640000000000000000000000000000000000600082015250565b600061423a600f836133ac565b915061424582614204565b602082019050919050565b600060208201905081810360008301526142698161422d565b9050919050565b7f4e6f7420656e6f75676820746f6b656e73000000000000000000000000000000600082015250565b60006142a66011836133ac565b91506142b182614270565b602082019050919050565b600060208201905081810360008301526142d581614299565b9050919050565b7f4e6f7420656e6f75676820555344430000000000000000000000000000000000600082015250565b6000614312600f836133ac565b915061431d826142dc565b602082019050919050565b6000602082019050818103600083015261434181614305565b9050919050565b6000819050919050565b6000819050919050565b600061437761437261436d84614348565b614352565b6134b6565b9050919050565b6143878161435c565b82525050565b6000610100820190506143a3600083018b61389e565b6143b0602083018a61389e565b6143bd60408301896135fb565b6143ca60608301886135fb565b6143d7608083018761437e565b6143e460a083018661437e565b6143f160c083018561389e565b6143fe60e08301846135fb565b9998505050505050505050565b60008060006060848603121561442457614423613453565b5b600061443286828701613b0b565b935050602061444386828701613b0b565b925050604061445486828701613b0b565b9150509250925092565b7f43616e6e6f74206465637265617365206c696d69747300000000000000000000600082015250565b60006144946016836133ac565b915061449f8261445e565b602082019050919050565b600060208201905081810360008301526144c381614487565b9050919050565b7f4e6f7420656e61626c6564207965740000000000000000000000000000000000600082015250565b6000614500600f836133ac565b915061450b826144ca565b602082019050919050565b6000602082019050818103600083015261452f816144f3565b9050919050565b600060408201905061454b600083018561389e565b614558602083018461389e565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6145f281613478565b82525050565b600061460483836145e9565b60208301905092915050565b6000602082019050919050565b6000614628826145bd565b61463281856145c8565b935061463d836145d9565b8060005b8381101561466e57815161465588826145f8565b975061466083614610565b925050600181019050614641565b5085935050505092915050565b600060a08201905061469060008301886135fb565b61469d602083018761437e565b81810360408301526146af818661461d565b90506146be606083018561389e565b6146cb60808301846135fb565b969550505050505056fea26469706673582212207f6e46dde31bdaf2456c6b414359d513d91929b93de870f742559704ec1b076564736f6c63430008110033
Deployed Bytecode Sourcemap
2880:14174:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5622:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6088:259;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16499:454;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15073:261;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5304:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7826:369;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15785:445;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15429:348;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5414:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10023:700;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16238:253;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15342:79;;;:::i;:::-;;12331:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5724:162;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2509:97;;;:::i;:::-;;16961:90;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12045:162;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5516:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11917:120;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;7676:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11626:283;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4966:330;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;13311:386;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12215:108;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13705:275;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5894:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2614:111;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5622:94;5670:13;5703:5;;;;;;;;;;;;;;;;;5696:12;;5622:94;:::o;6088:259::-;6190:4;6244:1;6220:9;:21;6230:10;6220:21;;;;;;;;;;;;;;;;:25;6212:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;6280:37;6289:10;6301:7;6310:6;6280:8;:37::i;:::-;6335:4;6328:11;;6088:259;;;;:::o;16499:454::-;2343:6;;;;;;;;;;2329:20;;:10;:20;;;2321:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;16612:29:::1;:45;;;;;;;;;;;;;;;;::::0;::::1;;16677:9;:20;16687:9;16677:20;;;;;;;;;;;;;;;;;;;;;;;;;16676:21;16699:15;16668:47;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;16747:10;;;;;;;;;;;16734:23;;:9;:23;;;;16759:15;16726:49;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;16815:4;16794:26;;:9;:26;;;;16822:15;16786:52;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3817:42;16857:31;;:9;:31;;;;16890:15;16849:57;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;16936:9;16917:5;:16;16923:9;16917:16;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;16601:352;16499:454:::0;;:::o;15073:261::-;2343:6;;;;;;;;;;2329:20;;:10;:20;;;2321:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;15170:4:::1;15151:24;;:7;:24;;::::0;15143:48:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;15202:20;15232:7;15225:25;;;15259:4;15225:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15202:63;;15283:7;15276:24;;;15301:10;15313:12;15276:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15132:202;15073:261:::0;:::o;5304:102::-;5359:7;3084:1;3146:2;:13;;;;:::i;:::-;3132:11;:27;;;;:::i;:::-;5379:19;;5304:102;:::o;7826:369::-;7940:4;8012:6;7979:11;:17;7991:4;7979:17;;;;;;;;;;;;;;;:29;7997:10;7979:29;;;;;;;;;;;;;;;;:39;;7957:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;8121:6;8088:11;:17;8100:4;8088:17;;;;;;;;;;;;;;;:29;8106:10;8088:29;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;8138:27;8148:4;8154:2;8158:6;8138:9;:27::i;:::-;8183:4;8176:11;;7826:369;;;;;:::o;15785:445::-;2343:6;;;;;;;;;;2329:20;;:10;:20;;;2321:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;16005:10:::1;15977:38;;15993:8;15978:23;;3084:1;3146:2;:13;;;;:::i;:::-;3132:11;:27;;;;:::i;:::-;15978:23;;;;:::i;:::-;15977:38;;;;:::i;:::-;15960:14;:55;;;;16067:10;16039:38;;16055:8;16040:23;;3084:1;3146:2;:13;;;;:::i;:::-;3132:11;:27;;;;:::i;:::-;16040:23;;;;:::i;:::-;16039:38;;;;:::i;:::-;16026:10;:51;;;;16109:14;;16096:10;;:27;16088:36;;;::::0;::::1;;16178:4;16173:1;3084;3146:2;:13;;;;:::i;:::-;3132:11;:27;;;;:::i;:::-;16158:16;;;;:::i;:::-;16157:25;;;;:::i;:::-;16143:10;;:39;;16135:48;;;::::0;::::1;;15785:445:::0;;;;:::o;15429:348::-;2343:6;;;;;;;;;;2329:20;;:10;:20;;;2321:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;15510:29:::1;:45;;;;;;;;;;;;;;;;::::0;::::1;;15575:5;:13;15581:6;15575:13;;;;;;;;;;;;;;;;;;;;;;;;;15574:14;15590:15;15566:40;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;15643:4;15625:23;;:6;:23;;;;15650:15;15617:49;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3817:42;15685:28;;:6;:28;;;;15715:15;15677:54;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;15762:7;15742:9;:17;15752:6;15742:17;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;15499:278;15429:348:::0;;:::o;5414:94::-;5466:5;3084:1;5484:16;;5414:94;:::o;10023:700::-;2343:6;;;;;;;;;;2329:20;;:10;:20;;;2321:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;10144:1:::1;3702:42;10103:23;;;10135:4;10103:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:42;10095:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10177:22;;;;;;;;;;;10176:23;10168:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10238:164;10274:4;10294:9;:24;10312:4;10294:24;;;;;;;;;;;;;;;;3702:42;10333:23;;;10365:4;10333:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10386:5;10238:13;:164::i;:::-;10438:4;10413:22;;:29;;;;;;;;;;;;;;;;;;10493:5;10488:1;3084;3146:2;:13;;;;:::i;:::-;3132:11;:27;;;;:::i;:::-;10473:16;;;;:::i;:::-;10472:26;;;;:::i;:::-;10455:14;:43;;;;10544:5;10538:2;3084:1;3146:2;:13;;;;:::i;:::-;3132:11;:27;;;;:::i;:::-;10523:17;;;;:::i;:::-;10522:27;;;;:::i;:::-;10509:10;:40;;;;10576:1;10562:11;;:15;;;;;;;;;;;;;;;;;;10603:1;10588:12;;:16;;;;;;;;;;;;;;;;;;10676:3;10658:15;:21;;;;:::i;:::-;10648:7;:31;;;;10713:2;10703:7;;:12;;;;:::i;:::-;10690:10;:25;;;;10023:700:::0;:::o;16238:253::-;16321:6;16296:9;:21;16306:10;16296:21;;;;;;;;;;;;;;;;:31;;16288:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;16379:6;16354:9;:21;16364:10;16354:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;16421:6;16396:9;:21;16414:1;16396:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;16472:1;16443:40;;16452:10;16443:40;;;16476:6;16443:40;;;;;;:::i;:::-;;;;;;;;16238:253;:::o;15342:79::-;2343:6;;;;;;;;;;2329:20;;:10;:20;;;2321:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;15394:19:::1;:17;:19::i;:::-;15342:79::o:0;12331:178::-;2343:6;;;;;;;;;;2329:20;;:10;:20;;;2321:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;12454:47:::1;12468:13;12483:17;12454:13;:47::i;:::-;12331:178:::0;;:::o;5724:162::-;5828:7;5860:9;:18;5870:7;5860:18;;;;;;;;;;;;;;;;5853:25;;5724:162;;;:::o;2509:97::-;2343:6;;;;;;;;;;2329:20;;:10;:20;;;2321:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2568:30:::1;2595:1;2568:18;:30::i;:::-;2509:97::o:0;16961:90::-;17010:4;17034:5;:9;17040:2;17034:9;;;;;;;;;;;;;;;;;;;;;;;;;17027:16;;16961:90;;;:::o;12045:162::-;12113:22;12137:17;12180:6;;12188:10;;12172:27;;;;12045:162;;:::o;5516:98::-;5566:13;5599:7;;;;;;;;;;;;;;;;;5592:14;;5516:98;:::o;11917:120::-;11955:12;11969:13;12003:11;;;;;;;;;;;12016:12;;;;;;;;;;;11995:34;;;;11917:120;;:::o;7676:142::-;7738:4;7755:33;7765:10;7777:2;7781:6;7755:9;:33::i;:::-;7806:4;7799:11;;7676:142;;;;:::o;11626:283::-;2343:6;;;;;;;;;;2329:20;;:10;:20;;;2321:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;11744:3:::1;11738:2;11733;:7;;;;:::i;:::-;11732:15;;;;:::i;:::-;11722:7;;:25;11714:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11815:3;11809:2;11804;:7;;;;:::i;:::-;11785:15;:27;;;;:::i;:::-;:33;;;;:::i;:::-;11775:7;:43;;;;11852:3;11842:7;;:13;;;;:::i;:::-;11829:10;:26;;;;11899:2;11866:9;:30;11884:10;11866:30;;;;;;;;;;;;;;;:35;;;;11626:283:::0;;;:::o;4966:330::-;5053:13;5081:16;5112:12;5139:18;5172:17;5225:6;;;;;;;;;;;5233:15;;;;;;;;;;;3702:42;3817;5277:10;;;;;;;;;;;5217:71;;;;;;;;;;4966:330;;;;;:::o;13311:386::-;2343:6;;;;;;;;;;2329:20;;:10;:20;;;2321:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;13413:5:::1;:21;13419:14;13413:21;;;;;;;;;;;;;;;;;;;;;;;;;13412:22;:79;;;;;3817:42;13455:36;;:14;:36;;;;13412:79;:131;;;;;13538:4;13512:31;;:14;:31;;;;13412:131;:180;;;;;13590:1;13564:28;;:14;:28;;;;13412:180;13390:213;;;::::0;::::1;;13642:4;13614:9;:25;13624:14;13614:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;13675:14;13657:15;;:32;;;;;;;;;;;;;;;;;;13311:386:::0;:::o;12215:108::-;12274:4;12298:9;:17;12308:6;12298:17;;;;;;;;;;;;;;;;;;;;;;;;;12291:24;;12215:108;;;:::o;13705:275::-;2343:6;;;;;;;;;;2329:20;;:10;:20;;;2321:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;13869:1:::1;13850:14;13834:13;:30;;;;:::i;:::-;13833:37;;;;13825:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;13919:13;13905:11;;:27;;;;;;;;;;;;;;;;;;13958:14;13943:12;;:29;;;;;;;;;;;;;;;;;;13705:275:::0;;:::o;5894:186::-;6013:7;6045:11;:18;6057:5;6045:18;;;;;;;;;;;;;;;:27;6064:7;6045:27;;;;;;;;;;;;;;;;6038:34;;5894:186;;;;:::o;2614:111::-;2343:6;;;;;;;;;;2329:20;;:10;:20;;;2321:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2689:28:::1;2708:8;2689:18;:28::i;:::-;2614:111:::0;:::o;6355:335::-;6513:1;6496:19;;:5;:19;;;;:44;;;;;6538:1;6519:21;;:7;:21;;;;6496:44;6474:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;6628:6;6598:11;:18;6610:5;6598:18;;;;;;;;;;;;;;;:27;6617:7;6598:27;;;;;;;;;;;;;;;:36;;;;6666:7;6650:32;;6659:5;6650:32;;;6675:6;6650:32;;;;;;:::i;:::-;;;;;;;;6355:335;;;:::o;8203:684::-;8341:1;8325:18;;:4;:18;;;;:38;;;;;8361:1;8347:16;;:2;:16;;;;8325:38;8317:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8425:6;8406:9;:15;8416:4;8406:15;;;;;;;;;;;;;;;;:25;;8398:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8484:29;8496:4;8502:2;8506:6;8484:11;:29::i;:::-;8476:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;8551:10;;;;;;;;;;;8550:11;:31;;;;;8566:9;:15;8576:4;8566:15;;;;;;;;;;;;;;;;;;;;;;;;;8565:16;8550:31;:44;;;;;8585:5;:9;8591:2;8585:9;;;;;;;;;;;;;;;;;;;;;;;;;8550:44;8546:96;;;8611:19;:17;:19::i;:::-;8546:96;8654:17;8674:31;8688:4;8694:2;8698:6;8674:13;:31::i;:::-;8654:51;;8735:6;8716:9;:15;8726:4;8716:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;8780:9;8752;:24;8770:4;8752:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;8827:9;8818:6;:18;;;;:::i;:::-;8800:9;:13;8810:2;8800:13;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;8868:2;8853:26;;8862:4;8853:26;;;8872:6;8853:26;;;;;;:::i;:::-;;;;;;;;8306:581;8203:684;;;:::o;10731:887::-;10958:11;10922:6;10915:24;;;10948:4;10915:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:54;;10893:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;11089:10;3702:42;11047:23;;;11079:4;11047:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;;11025:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;11153:51;11184:6;11192:11;11153:30;:51::i;:::-;11215:49;3702:42;11253:10;11215:30;:49::i;:::-;11275:19;11297:6;;;;;;;;;;;11275:28;;11318:12;11314:69;;;11369:1;11347:24;;11314:69;3817:42;11395:24;;;3702:42;11454:6;11475:10;11500:11;11526:1;11542;11558:11;11584:15;11395:215;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10882:736;10731:887;;;;:::o;13988:526::-;4252:4;4239:10;;:17;;;;;;;;;;;;;;;;;;14045:20:::1;14068:9;:24;14086:4;14068:24;;;;;;;;;;;;;;;;14045:47;;14123:14;;14107:12;:30;14103:404;;14173:10;;14158:12;:25;14154:91;;;14219:10;;14204:25;;14154:91;3084:1;14279:2;:13;;;;:::i;:::-;14263:12;:29;14259:237;;14313:167;14355:4;3702:42;14411:12;14446:15;;;;;;;;;;;14313:11;:167::i;:::-;14259:237;14103:404;14034:480;4292:5:::0;4279:10;;:18;;;;;;;;;;;;;;;;;;13988:526::o;12517:786::-;12623:16;3084:1;12704:2;:13;;;;:::i;:::-;12699:2;:18;;;;:::i;:::-;12677:4;12659:14;12644:29;;3084:1;3146:2;:13;;;;:::i;:::-;3132:11;:27;;;;:::i;:::-;12644:29;;;;:::i;:::-;12643:38;;;;:::i;:::-;12642:76;;;;:::i;:::-;12623:95;;12770:20;3084:1;12859:2;:13;;;;:::i;:::-;12854:2;:18;;;;:::i;:::-;12832:4;12810:18;12795:33;;3084:1;3146:2;:13;;;;:::i;:::-;3132:11;:27;;;;:::i;:::-;12795:33;;;;:::i;:::-;12794:42;;;;:::i;:::-;12793:80;;;;:::i;:::-;12770:103;;12959:6;;12947:8;:18;;:48;;;;;12985:10;;12969:12;:26;;12947:48;12925:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;3084:1;3146:2;:13;;;;:::i;:::-;3132:11;:27;;;;:::i;:::-;13060:8;:23;13056:79;;;3084:1;3146:2;:13;;;;:::i;:::-;3132:11;:27;;;;:::i;:::-;13100:23;;13056:79;3084:1;3146:2;:13;;;;:::i;:::-;3132:11;:27;;;;:::i;:::-;13149:12;:27;13145:87;;;3084:1;3146:2;:13;;;;:::i;:::-;3132:11;:27;;;;:::i;:::-;13193;;13145:87;13251:8;13242:6;:17;;;;13283:12;13270:10;:25;;;;12612:691;;12517:786;;:::o;2733:140::-;2809:9;2800:6;;:18;;;;;;;;;;;;;;;;;;2834:31;2855:9;2834:31;;;;;;:::i;:::-;;;;;;;;2733:140;:::o;8895:602::-;9014:4;9031:11;9045:4;9031:18;;9073:6;;9064;:15;:35;;;;;9084:9;:15;9094:4;9084:15;;;;;;;;;;;;;;;;;;;;;;;;;9083:16;9064:35;:53;;;;;9104:9;:13;9114:2;9104:13;;;;;;;;;;;;;;;;;;;;;;;;;9103:14;9064:53;9060:100;;;9143:5;9134:14;;9060:100;9170:15;9188:4;9170:22;;9203:20;9242:6;9226:9;:13;9236:2;9226:13;;;;;;;;;;;;;;;;:22;;;;:::i;:::-;9203:45;;9292:10;;9277:12;:25;:58;;;;;9320:9;:15;9330:4;9320:15;;;;;;;;;;;;;;;;;;;;;;;;;9319:16;9277:58;:89;;;;;9353:9;:13;9363:2;9353:13;;;;;;;;;;;;;;;;;;;;;;;;;9352:14;9277:89;:116;;;;;9384:5;:9;9390:2;9384:9;;;;;;;;;;;;;;;;;;;;;;;;;9383:10;9277:116;9259:191;;;9433:5;9420:18;;9259:191;9468:6;:20;;;;;9478:10;9468:20;9460:29;;;;;8895:602;;;;;:::o;9505:510::-;9626:7;9646:24;9686:5;:11;9692:4;9686:11;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;;9702:9;:13;9712:2;9702:13;;;;;;;;;;;;;;;;;;;;;;;;;9701:14;9686:29;9681:293;;;9775:3;9761:11;;;;;;;;;;;9752:20;;:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;9733:45;;9681:293;;;9800:5;:9;9806:2;9800:9;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;;9814:9;:15;9824:4;9814:15;;;;;;;;;;;;;;;;;;;;;;;;;9813:16;9800:29;9796:178;;;9872:7;;9854:15;:25;9846:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;9959:3;9943:12;;;;;;;;;;;9934:21;;:6;:21;;;;:::i;:::-;9933:29;;;;:::i;:::-;9914:48;;9796:178;9681:293;9991:16;9984:23;;;9505:510;;;;;:::o;6940:728::-;7046:22;7101:4;7083:23;;:6;:23;;;7079:582;;7140:11;:26;7160:4;7140:26;;;;;;;;;;;;;;;:46;3817:42;7140:46;;;;;;;;;;;;;;;;7123:63;;7214:14;7205:6;:23;7201:152;;;7298:39;7249:11;:26;7269:4;7249:26;;;;;;;;;;;;;;;:46;3817:42;7249:46;;;;;;;;;;;;;;;:88;;;;7201:152;7079:582;;;7409:6;7402:24;;;7453:4;3817:42;7402:108;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7385:125;;7538:14;7529:6;:23;7525:125;;;7580:6;7573:22;;;3817:42;7616:17;7573:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7525:125;7079:582;7035:633;6940:728;;:::o;14522:543::-;14686:55;14717:10;14729:11;14686:30;:55::i;:::-;14752:21;14790:1;14776:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14752:40;;14813:10;14803:4;14808:1;14803:7;;;;;;;;:::i;:::-;;;;;;;:20;;;;;;;;;;;14844:11;14834:4;14839:1;14834:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;3817:42;14866:65;;;14946:11;14972:1;14988:4;15007:9;15031:15;14866:191;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14675:390;14522:543;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:116::-;3516:21;3531:5;3516:21;:::i;:::-;3509:5;3506:32;3496:60;;3552:1;3549;3542:12;3496:60;3446:116;:::o;3568:133::-;3611:5;3649:6;3636:20;3627:29;;3665:30;3689:5;3665:30;:::i;:::-;3568:133;;;;:::o;3707:468::-;3772:6;3780;3829:2;3817:9;3808:7;3804:23;3800:32;3797:119;;;3835:79;;:::i;:::-;3797:119;3955:1;3980:53;4025:7;4016:6;4005:9;4001:22;3980:53;:::i;:::-;3970:63;;3926:117;4082:2;4108:50;4150:7;4141:6;4130:9;4126:22;4108:50;:::i;:::-;4098:60;;4053:115;3707:468;;;;;:::o;4181:329::-;4240:6;4289:2;4277:9;4268:7;4264:23;4260:32;4257:119;;;4295:79;;:::i;:::-;4257:119;4415:1;4440:53;4485:7;4476:6;4465:9;4461:22;4440:53;:::i;:::-;4430:63;;4386:117;4181:329;;;;:::o;4516:118::-;4603:24;4621:5;4603:24;:::i;:::-;4598:3;4591:37;4516:118;;:::o;4640:222::-;4733:4;4771:2;4760:9;4756:18;4748:26;;4784:71;4852:1;4841:9;4837:17;4828:6;4784:71;:::i;:::-;4640:222;;;;:::o;4868:619::-;4945:6;4953;4961;5010:2;4998:9;4989:7;4985:23;4981:32;4978:119;;;5016:79;;:::i;:::-;4978:119;5136:1;5161:53;5206:7;5197:6;5186:9;5182:22;5161:53;:::i;:::-;5151:63;;5107:117;5263:2;5289:53;5334:7;5325:6;5314:9;5310:22;5289:53;:::i;:::-;5279:63;;5234:118;5391:2;5417:53;5462:7;5453:6;5442:9;5438:22;5417:53;:::i;:::-;5407:63;;5362:118;4868:619;;;;;:::o;5493:93::-;5529:7;5569:10;5562:5;5558:22;5547:33;;5493:93;;;:::o;5592:120::-;5664:23;5681:5;5664:23;:::i;:::-;5657:5;5654:34;5644:62;;5702:1;5699;5692:12;5644:62;5592:120;:::o;5718:137::-;5763:5;5801:6;5788:20;5779:29;;5817:32;5843:5;5817:32;:::i;:::-;5718:137;;;;:::o;5861:757::-;5943:6;5951;5959;5967;6016:3;6004:9;5995:7;5991:23;5987:33;5984:120;;;6023:79;;:::i;:::-;5984:120;6143:1;6168:52;6212:7;6203:6;6192:9;6188:22;6168:52;:::i;:::-;6158:62;;6114:116;6269:2;6295:52;6339:7;6330:6;6319:9;6315:22;6295:52;:::i;:::-;6285:62;;6240:117;6396:2;6422:52;6466:7;6457:6;6446:9;6442:22;6422:52;:::i;:::-;6412:62;;6367:117;6523:2;6549:52;6593:7;6584:6;6573:9;6569:22;6549:52;:::i;:::-;6539:62;;6494:117;5861:757;;;;;;;:::o;6624:86::-;6659:7;6699:4;6692:5;6688:16;6677:27;;6624:86;;;:::o;6716:112::-;6799:22;6815:5;6799:22;:::i;:::-;6794:3;6787:35;6716:112;;:::o;6834:214::-;6923:4;6961:2;6950:9;6946:18;6938:26;;6974:67;7038:1;7027:9;7023:17;7014:6;6974:67;:::i;:::-;6834:214;;;;:::o;7054:329::-;7113:6;7162:2;7150:9;7141:7;7137:23;7133:32;7130:119;;;7168:79;;:::i;:::-;7130:119;7288:1;7313:53;7358:7;7349:6;7338:9;7334:22;7313:53;:::i;:::-;7303:63;;7259:117;7054:329;;;;:::o;7389:89::-;7425:7;7465:6;7458:5;7454:18;7443:29;;7389:89;;;:::o;7484:120::-;7556:23;7573:5;7556:23;:::i;:::-;7549:5;7546:34;7536:62;;7594:1;7591;7584:12;7536:62;7484:120;:::o;7610:137::-;7655:5;7693:6;7680:20;7671:29;;7709:32;7735:5;7709:32;:::i;:::-;7610:137;;;;:::o;7753:470::-;7819:6;7827;7876:2;7864:9;7855:7;7851:23;7847:32;7844:119;;;7882:79;;:::i;:::-;7844:119;8002:1;8027:52;8071:7;8062:6;8051:9;8047:22;8027:52;:::i;:::-;8017:62;;7973:116;8128:2;8154:52;8198:7;8189:6;8178:9;8174:22;8154:52;:::i;:::-;8144:62;;8099:117;7753:470;;;;;:::o;8229:332::-;8350:4;8388:2;8377:9;8373:18;8365:26;;8401:71;8469:1;8458:9;8454:17;8445:6;8401:71;:::i;:::-;8482:72;8550:2;8539:9;8535:18;8526:6;8482:72;:::i;:::-;8229:332;;;;;:::o;8567:316::-;8680:4;8718:2;8707:9;8703:18;8695:26;;8731:67;8795:1;8784:9;8780:17;8771:6;8731:67;:::i;:::-;8808:68;8872:2;8861:9;8857:18;8848:6;8808:68;:::i;:::-;8567:316;;;;;:::o;8889:619::-;8966:6;8974;8982;9031:2;9019:9;9010:7;9006:23;9002:32;8999:119;;;9037:79;;:::i;:::-;8999:119;9157:1;9182:53;9227:7;9218:6;9207:9;9203:22;9182:53;:::i;:::-;9172:63;;9128:117;9284:2;9310:53;9355:7;9346:6;9335:9;9331:22;9310:53;:::i;:::-;9300:63;;9255:118;9412:2;9438:53;9483:7;9474:6;9463:9;9459:22;9438:53;:::i;:::-;9428:63;;9383:118;8889:619;;;;;:::o;9514:118::-;9601:24;9619:5;9601:24;:::i;:::-;9596:3;9589:37;9514:118;;:::o;9638:664::-;9843:4;9881:3;9870:9;9866:19;9858:27;;9895:71;9963:1;9952:9;9948:17;9939:6;9895:71;:::i;:::-;9976:72;10044:2;10033:9;10029:18;10020:6;9976:72;:::i;:::-;10058;10126:2;10115:9;10111:18;10102:6;10058:72;:::i;:::-;10140;10208:2;10197:9;10193:18;10184:6;10140:72;:::i;:::-;10222:73;10290:3;10279:9;10275:19;10266:6;10222:73;:::i;:::-;9638:664;;;;;;;;:::o;10308:118::-;10379:22;10395:5;10379:22;:::i;:::-;10372:5;10369:33;10359:61;;10416:1;10413;10406:12;10359:61;10308:118;:::o;10432:135::-;10476:5;10514:6;10501:20;10492:29;;10530:31;10555:5;10530:31;:::i;:::-;10432:135;;;;:::o;10573:466::-;10637:6;10645;10694:2;10682:9;10673:7;10669:23;10665:32;10662:119;;;10700:79;;:::i;:::-;10662:119;10820:1;10845:51;10888:7;10879:6;10868:9;10864:22;10845:51;:::i;:::-;10835:61;;10791:115;10945:2;10971:51;11014:7;11005:6;10994:9;10990:22;10971:51;:::i;:::-;10961:61;;10916:116;10573:466;;;;;:::o;11045:474::-;11113:6;11121;11170:2;11158:9;11149:7;11145:23;11141:32;11138:119;;;11176:79;;:::i;:::-;11138:119;11296:1;11321:53;11366:7;11357:6;11346:9;11342:22;11321:53;:::i;:::-;11311:63;;11267:117;11423:2;11449:53;11494:7;11485:6;11474:9;11470:22;11449:53;:::i;:::-;11439:63;;11394:118;11045:474;;;;;:::o;11525:169::-;11665:21;11661:1;11653:6;11649:14;11642:45;11525:169;:::o;11700:366::-;11842:3;11863:67;11927:2;11922:3;11863:67;:::i;:::-;11856:74;;11939:93;12028:3;11939:93;:::i;:::-;12057:2;12052:3;12048:12;12041:19;;11700:366;;;:::o;12072:419::-;12238:4;12276:2;12265:9;12261:18;12253:26;;12325:9;12319:4;12315:20;12311:1;12300:9;12296:17;12289:47;12353:131;12479:4;12353:131;:::i;:::-;12345:139;;12072:419;;;:::o;12497:163::-;12637:15;12633:1;12625:6;12621:14;12614:39;12497:163;:::o;12666:366::-;12808:3;12829:67;12893:2;12888:3;12829:67;:::i;:::-;12822:74;;12905:93;12994:3;12905:93;:::i;:::-;13023:2;13018:3;13014:12;13007:19;;12666:366;;;:::o;13038:419::-;13204:4;13242:2;13231:9;13227:18;13219:26;;13291:9;13285:4;13281:20;13277:1;13266:9;13262:17;13255:47;13319:131;13445:4;13319:131;:::i;:::-;13311:139;;13038:419;;;:::o;13463:161::-;13603:13;13599:1;13591:6;13587:14;13580:37;13463:161;:::o;13630:366::-;13772:3;13793:67;13857:2;13852:3;13793:67;:::i;:::-;13786:74;;13869:93;13958:3;13869:93;:::i;:::-;13987:2;13982:3;13978:12;13971:19;;13630:366;;;:::o;14002:419::-;14168:4;14206:2;14195:9;14191:18;14183:26;;14255:9;14249:4;14245:20;14241:1;14230:9;14226:17;14219:47;14283:131;14409:4;14283:131;:::i;:::-;14275:139;;14002:419;;;:::o;14427:222::-;14520:4;14558:2;14547:9;14543:18;14535:26;;14571:71;14639:1;14628:9;14624:17;14615:6;14571:71;:::i;:::-;14427:222;;;;:::o;14655:143::-;14712:5;14743:6;14737:13;14728:22;;14759:33;14786:5;14759:33;:::i;:::-;14655:143;;;;:::o;14804:351::-;14874:6;14923:2;14911:9;14902:7;14898:23;14894:32;14891:119;;;14929:79;;:::i;:::-;14891:119;15049:1;15074:64;15130:7;15121:6;15110:9;15106:22;15074:64;:::i;:::-;15064:74;;15020:128;14804:351;;;;:::o;15161:332::-;15282:4;15320:2;15309:9;15305:18;15297:26;;15333:71;15401:1;15390:9;15386:17;15377:6;15333:71;:::i;:::-;15414:72;15482:2;15471:9;15467:18;15458:6;15414:72;:::i;:::-;15161:332;;;;;:::o;15499:137::-;15553:5;15584:6;15578:13;15569:22;;15600:30;15624:5;15600:30;:::i;:::-;15499:137;;;;:::o;15642:345::-;15709:6;15758:2;15746:9;15737:7;15733:23;15729:32;15726:119;;;15764:79;;:::i;:::-;15726:119;15884:1;15909:61;15962:7;15953:6;15942:9;15938:22;15909:61;:::i;:::-;15899:71;;15855:125;15642:345;;;;:::o;15993:180::-;16041:77;16038:1;16031:88;16138:4;16135:1;16128:15;16162:4;16159:1;16152:15;16179:102;16221:8;16268:5;16265:1;16261:13;16240:34;;16179:102;;;:::o;16287:848::-;16348:5;16355:4;16379:6;16370:15;;16403:5;16394:14;;16417:712;16438:1;16428:8;16425:15;16417:712;;;16533:4;16528:3;16524:14;16518:4;16515:24;16512:50;;;16542:18;;:::i;:::-;16512:50;16592:1;16582:8;16578:16;16575:451;;;17007:4;17000:5;16996:16;16987:25;;16575:451;17057:4;17051;17047:15;17039:23;;17087:32;17110:8;17087:32;:::i;:::-;17075:44;;16417:712;;;16287:848;;;;;;;:::o;17141:1073::-;17195:5;17386:8;17376:40;;17407:1;17398:10;;17409:5;;17376:40;17435:4;17425:36;;17452:1;17443:10;;17454:5;;17425:36;17521:4;17569:1;17564:27;;;;17605:1;17600:191;;;;17514:277;;17564:27;17582:1;17573:10;;17584:5;;;17600:191;17645:3;17635:8;17632:17;17629:43;;;17652:18;;:::i;:::-;17629:43;17701:8;17698:1;17694:16;17685:25;;17736:3;17729:5;17726:14;17723:40;;;17743:18;;:::i;:::-;17723:40;17776:5;;;17514:277;;17900:2;17890:8;17887:16;17881:3;17875:4;17872:13;17868:36;17850:2;17840:8;17837:16;17832:2;17826:4;17823:12;17819:35;17803:111;17800:246;;;17956:8;17950:4;17946:19;17937:28;;17991:3;17984:5;17981:14;17978:40;;;17998:18;;:::i;:::-;17978:40;18031:5;;17800:246;18071:42;18109:3;18099:8;18093:4;18090:1;18071:42;:::i;:::-;18056:57;;;;18145:4;18140:3;18136:14;18129:5;18126:25;18123:51;;;18154:18;;:::i;:::-;18123:51;18203:4;18196:5;18192:16;18183:25;;17141:1073;;;;;;:::o;18220:281::-;18278:5;18302:23;18320:4;18302:23;:::i;:::-;18294:31;;18346:25;18362:8;18346:25;:::i;:::-;18334:37;;18390:104;18427:66;18417:8;18411:4;18390:104;:::i;:::-;18381:113;;18220:281;;;;:::o;18507:410::-;18547:7;18570:20;18588:1;18570:20;:::i;:::-;18565:25;;18604:20;18622:1;18604:20;:::i;:::-;18599:25;;18659:1;18656;18652:9;18681:30;18699:11;18681:30;:::i;:::-;18670:41;;18860:1;18851:7;18847:15;18844:1;18841:22;18821:1;18814:9;18794:83;18771:139;;18890:18;;:::i;:::-;18771:139;18555:362;18507:410;;;;:::o;18923:181::-;19063:33;19059:1;19051:6;19047:14;19040:57;18923:181;:::o;19110:366::-;19252:3;19273:67;19337:2;19332:3;19273:67;:::i;:::-;19266:74;;19349:93;19438:3;19349:93;:::i;:::-;19467:2;19462:3;19458:12;19451:19;;19110:366;;;:::o;19482:419::-;19648:4;19686:2;19675:9;19671:18;19663:26;;19735:9;19729:4;19725:20;19721:1;19710:9;19706:17;19699:47;19763:131;19889:4;19763:131;:::i;:::-;19755:139;;19482:419;;;:::o;19907:194::-;19947:4;19967:20;19985:1;19967:20;:::i;:::-;19962:25;;20001:20;20019:1;20001:20;:::i;:::-;19996:25;;20045:1;20042;20038:9;20030:17;;20069:1;20063:4;20060:11;20057:37;;;20074:18;;:::i;:::-;20057:37;19907:194;;;;:::o;20107:180::-;20155:77;20152:1;20145:88;20252:4;20249:1;20242:15;20276:4;20273:1;20266:15;20293:185;20333:1;20350:20;20368:1;20350:20;:::i;:::-;20345:25;;20384:20;20402:1;20384:20;:::i;:::-;20379:25;;20423:1;20413:35;;20428:18;;:::i;:::-;20413:35;20470:1;20467;20463:9;20458:14;;20293:185;;;;:::o;20484:157::-;20624:9;20620:1;20612:6;20608:14;20601:33;20484:157;:::o;20647:365::-;20789:3;20810:66;20874:1;20869:3;20810:66;:::i;:::-;20803:73;;20885:93;20974:3;20885:93;:::i;:::-;21003:2;20998:3;20994:12;20987:19;;20647:365;;;:::o;21018:419::-;21184:4;21222:2;21211:9;21207:18;21199:26;;21271:9;21265:4;21261:20;21257:1;21246:9;21242:17;21235:47;21299:131;21425:4;21299:131;:::i;:::-;21291:139;;21018:419;;;:::o;21443:173::-;21583:25;21579:1;21571:6;21567:14;21560:49;21443:173;:::o;21622:366::-;21764:3;21785:67;21849:2;21844:3;21785:67;:::i;:::-;21778:74;;21861:93;21950:3;21861:93;:::i;:::-;21979:2;21974:3;21970:12;21963:19;;21622:366;;;:::o;21994:419::-;22160:4;22198:2;22187:9;22183:18;22175:26;;22247:9;22241:4;22237:20;22233:1;22222:9;22218:17;22211:47;22275:131;22401:4;22275:131;:::i;:::-;22267:139;;21994:419;;;:::o;22419:191::-;22459:3;22478:20;22496:1;22478:20;:::i;:::-;22473:25;;22512:20;22530:1;22512:20;:::i;:::-;22507:25;;22555:1;22552;22548:9;22541:16;;22576:3;22573:1;22570:10;22567:36;;;22583:18;;:::i;:::-;22567:36;22419:191;;;;:::o;22616:161::-;22756:13;22752:1;22744:6;22740:14;22733:37;22616:161;:::o;22783:366::-;22925:3;22946:67;23010:2;23005:3;22946:67;:::i;:::-;22939:74;;23022:93;23111:3;23022:93;:::i;:::-;23140:2;23135:3;23131:12;23124:19;;22783:366;;;:::o;23155:419::-;23321:4;23359:2;23348:9;23344:18;23336:26;;23408:9;23402:4;23398:20;23394:1;23383:9;23379:17;23372:47;23436:131;23562:4;23436:131;:::i;:::-;23428:139;;23155:419;;;:::o;23580:162::-;23720:14;23716:1;23708:6;23704:14;23697:38;23580:162;:::o;23748:366::-;23890:3;23911:67;23975:2;23970:3;23911:67;:::i;:::-;23904:74;;23987:93;24076:3;23987:93;:::i;:::-;24105:2;24100:3;24096:12;24089:19;;23748:366;;;:::o;24120:419::-;24286:4;24324:2;24313:9;24309:18;24301:26;;24373:9;24367:4;24363:20;24359:1;24348:9;24344:17;24337:47;24401:131;24527:4;24401:131;:::i;:::-;24393:139;;24120:419;;;:::o;24545:188::-;24583:3;24602:18;24618:1;24602:18;:::i;:::-;24597:23;;24634:18;24650:1;24634:18;:::i;:::-;24629:23;;24675:1;24672;24668:9;24661:16;;24698:4;24693:3;24690:13;24687:39;;;24706:18;;:::i;:::-;24687:39;24545:188;;;;:::o;24739:169::-;24879:21;24875:1;24867:6;24863:14;24856:45;24739:169;:::o;24914:366::-;25056:3;25077:67;25141:2;25136:3;25077:67;:::i;:::-;25070:74;;25153:93;25242:3;25153:93;:::i;:::-;25271:2;25266:3;25262:12;25255:19;;24914:366;;;:::o;25286:419::-;25452:4;25490:2;25479:9;25475:18;25467:26;;25539:9;25533:4;25529:20;25525:1;25514:9;25510:17;25503:47;25567:131;25693:4;25567:131;:::i;:::-;25559:139;;25286:419;;;:::o;25711:169::-;25851:21;25847:1;25839:6;25835:14;25828:45;25711:169;:::o;25886:366::-;26028:3;26049:67;26113:2;26108:3;26049:67;:::i;:::-;26042:74;;26125:93;26214:3;26125:93;:::i;:::-;26243:2;26238:3;26234:12;26227:19;;25886:366;;;:::o;26258:419::-;26424:4;26462:2;26451:9;26447:18;26439:26;;26511:9;26505:4;26501:20;26497:1;26486:9;26482:17;26475:47;26539:131;26665:4;26539:131;:::i;:::-;26531:139;;26258:419;;;:::o;26683:179::-;26823:31;26819:1;26811:6;26807:14;26800:55;26683:179;:::o;26868:366::-;27010:3;27031:67;27095:2;27090:3;27031:67;:::i;:::-;27024:74;;27107:93;27196:3;27107:93;:::i;:::-;27225:2;27220:3;27216:12;27209:19;;26868:366;;;:::o;27240:419::-;27406:4;27444:2;27433:9;27429:18;27421:26;;27493:9;27487:4;27483:20;27479:1;27468:9;27464:17;27457:47;27521:131;27647:4;27521:131;:::i;:::-;27513:139;;27240:419;;;:::o;27665:165::-;27805:17;27801:1;27793:6;27789:14;27782:41;27665:165;:::o;27836:366::-;27978:3;27999:67;28063:2;28058:3;27999:67;:::i;:::-;27992:74;;28075:93;28164:3;28075:93;:::i;:::-;28193:2;28188:3;28184:12;28177:19;;27836:366;;;:::o;28208:419::-;28374:4;28412:2;28401:9;28397:18;28389:26;;28461:9;28455:4;28451:20;28447:1;28436:9;28432:17;28425:47;28489:131;28615:4;28489:131;:::i;:::-;28481:139;;28208:419;;;:::o;28633:167::-;28773:19;28769:1;28761:6;28757:14;28750:43;28633:167;:::o;28806:366::-;28948:3;28969:67;29033:2;29028:3;28969:67;:::i;:::-;28962:74;;29045:93;29134:3;29045:93;:::i;:::-;29163:2;29158:3;29154:12;29147:19;;28806:366;;;:::o;29178:419::-;29344:4;29382:2;29371:9;29367:18;29359:26;;29431:9;29425:4;29421:20;29417:1;29406:9;29402:17;29395:47;29459:131;29585:4;29459:131;:::i;:::-;29451:139;;29178:419;;;:::o;29603:165::-;29743:17;29739:1;29731:6;29727:14;29720:41;29603:165;:::o;29774:366::-;29916:3;29937:67;30001:2;29996:3;29937:67;:::i;:::-;29930:74;;30013:93;30102:3;30013:93;:::i;:::-;30131:2;30126:3;30122:12;30115:19;;29774:366;;;:::o;30146:419::-;30312:4;30350:2;30339:9;30335:18;30327:26;;30399:9;30393:4;30389:20;30385:1;30374:9;30370:17;30363:47;30427:131;30553:4;30427:131;:::i;:::-;30419:139;;30146:419;;;:::o;30571:85::-;30616:7;30645:5;30634:16;;30571:85;;;:::o;30662:60::-;30690:3;30711:5;30704:12;;30662:60;;;:::o;30728:158::-;30786:9;30819:61;30837:42;30846:32;30872:5;30846:32;:::i;:::-;30837:42;:::i;:::-;30819:61;:::i;:::-;30806:74;;30728:158;;;:::o;30892:147::-;30987:45;31026:5;30987:45;:::i;:::-;30982:3;30975:58;30892:147;;:::o;31045:1029::-;31350:4;31388:3;31377:9;31373:19;31365:27;;31402:71;31470:1;31459:9;31455:17;31446:6;31402:71;:::i;:::-;31483:72;31551:2;31540:9;31536:18;31527:6;31483:72;:::i;:::-;31565;31633:2;31622:9;31618:18;31609:6;31565:72;:::i;:::-;31647;31715:2;31704:9;31700:18;31691:6;31647:72;:::i;:::-;31729:81;31805:3;31794:9;31790:19;31781:6;31729:81;:::i;:::-;31820;31896:3;31885:9;31881:19;31872:6;31820:81;:::i;:::-;31911:73;31979:3;31968:9;31964:19;31955:6;31911:73;:::i;:::-;31994;32062:3;32051:9;32047:19;32038:6;31994:73;:::i;:::-;31045:1029;;;;;;;;;;;:::o;32080:663::-;32168:6;32176;32184;32233:2;32221:9;32212:7;32208:23;32204:32;32201:119;;;32239:79;;:::i;:::-;32201:119;32359:1;32384:64;32440:7;32431:6;32420:9;32416:22;32384:64;:::i;:::-;32374:74;;32330:128;32497:2;32523:64;32579:7;32570:6;32559:9;32555:22;32523:64;:::i;:::-;32513:74;;32468:129;32636:2;32662:64;32718:7;32709:6;32698:9;32694:22;32662:64;:::i;:::-;32652:74;;32607:129;32080:663;;;;;:::o;32749:172::-;32889:24;32885:1;32877:6;32873:14;32866:48;32749:172;:::o;32927:366::-;33069:3;33090:67;33154:2;33149:3;33090:67;:::i;:::-;33083:74;;33166:93;33255:3;33166:93;:::i;:::-;33284:2;33279:3;33275:12;33268:19;;32927:366;;;:::o;33299:419::-;33465:4;33503:2;33492:9;33488:18;33480:26;;33552:9;33546:4;33542:20;33538:1;33527:9;33523:17;33516:47;33580:131;33706:4;33580:131;:::i;:::-;33572:139;;33299:419;;;:::o;33724:165::-;33864:17;33860:1;33852:6;33848:14;33841:41;33724:165;:::o;33895:366::-;34037:3;34058:67;34122:2;34117:3;34058:67;:::i;:::-;34051:74;;34134:93;34223:3;34134:93;:::i;:::-;34252:2;34247:3;34243:12;34236:19;;33895:366;;;:::o;34267:419::-;34433:4;34471:2;34460:9;34456:18;34448:26;;34520:9;34514:4;34510:20;34506:1;34495:9;34491:17;34484:47;34548:131;34674:4;34548:131;:::i;:::-;34540:139;;34267:419;;;:::o;34692:332::-;34813:4;34851:2;34840:9;34836:18;34828:26;;34864:71;34932:1;34921:9;34917:17;34908:6;34864:71;:::i;:::-;34945:72;35013:2;35002:9;34998:18;34989:6;34945:72;:::i;:::-;34692:332;;;;;:::o;35030:180::-;35078:77;35075:1;35068:88;35175:4;35172:1;35165:15;35199:4;35196:1;35189:15;35216:180;35264:77;35261:1;35254:88;35361:4;35358:1;35351:15;35385:4;35382:1;35375:15;35402:114;35469:6;35503:5;35497:12;35487:22;;35402:114;;;:::o;35522:184::-;35621:11;35655:6;35650:3;35643:19;35695:4;35690:3;35686:14;35671:29;;35522:184;;;;:::o;35712:132::-;35779:4;35802:3;35794:11;;35832:4;35827:3;35823:14;35815:22;;35712:132;;;:::o;35850:108::-;35927:24;35945:5;35927:24;:::i;:::-;35922:3;35915:37;35850:108;;:::o;35964:179::-;36033:10;36054:46;36096:3;36088:6;36054:46;:::i;:::-;36132:4;36127:3;36123:14;36109:28;;35964:179;;;;:::o;36149:113::-;36219:4;36251;36246:3;36242:14;36234:22;;36149:113;;;:::o;36298:732::-;36417:3;36446:54;36494:5;36446:54;:::i;:::-;36516:86;36595:6;36590:3;36516:86;:::i;:::-;36509:93;;36626:56;36676:5;36626:56;:::i;:::-;36705:7;36736:1;36721:284;36746:6;36743:1;36740:13;36721:284;;;36822:6;36816:13;36849:63;36908:3;36893:13;36849:63;:::i;:::-;36842:70;;36935:60;36988:6;36935:60;:::i;:::-;36925:70;;36781:224;36768:1;36765;36761:9;36756:14;;36721:284;;;36725:14;37021:3;37014:10;;36422:608;;;36298:732;;;;:::o;37036:831::-;37299:4;37337:3;37326:9;37322:19;37314:27;;37351:71;37419:1;37408:9;37404:17;37395:6;37351:71;:::i;:::-;37432:80;37508:2;37497:9;37493:18;37484:6;37432:80;:::i;:::-;37559:9;37553:4;37549:20;37544:2;37533:9;37529:18;37522:48;37587:108;37690:4;37681:6;37587:108;:::i;:::-;37579:116;;37705:72;37773:2;37762:9;37758:18;37749:6;37705:72;:::i;:::-;37787:73;37855:3;37844:9;37840:19;37831:6;37787:73;:::i;:::-;37036:831;;;;;;;;:::o
Swarm Source
ipfs://7f6e46dde31bdaf2456c6b414359d513d91929b93de870f742559704ec1b0765
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.