ERC-20
Overview
Max Total Supply
1,000,000 OMG
Holders
593
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
769.179109058 OMGValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
OMEGA
Compiler Version
v0.8.5+commit.a4f2e591
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-07-01 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.5; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Ownable { address internal owner; constructor(address _owner) { owner = _owner; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } function isOwner(address account) public view returns (bool) { return account == owner; } function renounceOwnership() public onlyOwner { owner = address(0); emit OwnershipTransferred(address(0)); } event OwnershipTransferred(address owner); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract OMEGA is ERC20, Ownable { using SafeMath for uint256; address routerAdress; address DEAD = 0x000000000000000000000000000000000000dEaD; string constant _name = "OMEGA FINANCE"; string constant _symbol = "OMG"; uint8 constant _decimals = 9; uint256 _totalSupply = 1 * 10**6 * (10 ** _decimals); // 1 Million mapping(address => uint256) _balances; mapping(address => mapping (address => uint256)) _allowances; address public marketingFeeReceiver = 0xe07692319060db7344ccDc7D777ee32236f80f7d; IDEXRouter public router; address public pair; struct user { uint256 firstBuy; uint256 lastTradeTime; } mapping(address => bool) public isFeeExempt; mapping(address => bool) public isTxLimitExempt; mapping(address => bool) public isBot; mapping(address => user) public tradeData; uint256 liquidityFee = 0; uint256 marketingFee = 10; uint256 totalFee = liquidityFee + marketingFee; uint256 feeDenominator = 100; bool inSwap; bool public swapEnabled = true; modifier swapping() { inSwap = true; _; inSwap = false; } uint256 public maxWalletAmount = (_totalSupply * 100) / 10000; //1% of Total Supply uint256 public maxSellTransactionAmount = (_totalSupply * 100) / 100000; //0.1% of Total Supply uint256 public swapThreshold = (_totalSupply * 500) / 100000; //0.5% of Total Supply uint256 public sellCooldownSeconds = 86400;//86400; //1 Day uint256 public sellPercent = 10; //0.1% bool private sellLimited = true; bool private p2pLimited = true; uint256 public startTime; modifier checkLimit(address sender, address recipient, uint256 amount) { if(!isTxLimitExempt[sender] && recipient == pair) { require(sold[sender][getCurrentDay()] + amount <= getUserSellLimit(sender), "Cannot sell or transfer more than limit."); } _; } mapping(address => mapping(uint256 => uint256)) public sold; constructor () Ownable(msg.sender) { routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; router = IDEXRouter(routerAdress); pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this)); _allowances[address(this)][address(router)] = type(uint256).max; address _owner = owner; isFeeExempt[_owner] = true; isFeeExempt[0xe07692319060db7344ccDc7D777ee32236f80f7d] = true; isTxLimitExempt[_owner] = true; isTxLimitExempt[0xe07692319060db7344ccDc7D777ee32236f80f7d] = true; isTxLimitExempt[DEAD] = true; startTime = block.timestamp; _balances[_owner] = _totalSupply; emit Transfer(address(0), _owner, _totalSupply); } receive() external payable { } function totalSupply() external view 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 getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function getCurrentDay() public view returns (uint256) { return minZero(block.timestamp, startTime).div(sellCooldownSeconds); } function getCirculatingSupply() public view returns (uint256) { return (_totalSupply - _balances[DEAD]); } function getUserSellLimitMultiplier(address sender) internal view returns (uint256) { uint multiplier; if(tradeData[sender].lastTradeTime == 0) { multiplier = ((block.timestamp - tradeData[sender].firstBuy) / sellCooldownSeconds).mul(1000); } else { multiplier = ((block.timestamp - tradeData[sender].lastTradeTime) / sellCooldownSeconds).mul(1000); } return multiplier < 1000 ? 1000 : multiplier; } function getUserSellLimit(address sender) public view returns (uint256) { uint256 calc = getUserSellLimitMultiplier(sender).div(1000); uint256 calc2 = calc.mul(sellPercent); return getCirculatingSupply().mul(calc2).div(10000); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal checkLimit(sender, recipient, amount) returns (bool) { require(!isBot[sender], "Bot Address"); if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(recipient != pair && sender != pair && recipient != DEAD && p2pLimited){ require(isFeeExempt[recipient] || isFeeExempt[sender] || isTxLimitExempt[recipient] || isTxLimitExempt[sender], "P2P not allowed"); } if (recipient != pair && recipient != DEAD) { require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= maxWalletAmount, "Transfer amount exceeds the bag size."); } if(!isTxLimitExempt[recipient] && sender == pair) { tradeData[recipient].firstBuy = block.timestamp; } if(!isTxLimitExempt[sender] && recipient == pair) { tradeData[sender].lastTradeTime = block.timestamp; sold[sender][getCurrentDay()] = sold[sender][getCurrentDay()].add(amount); } if(shouldSwapBack()){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function takeFee(address sender, uint256 amount) internal returns (uint256) { uint256 feeAmount = amount.mul(totalFee).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function swapBack() internal swapping { uint256 contractTokenBalance = swapThreshold; uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2); uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = totalFee.sub(liquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee); (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}(""); require(MarketingSuccess, "receiver rejected ETH transfer"); if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, marketingFeeReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } function buyTokens(uint256 amount, address to) internal swapping { address[] memory path = new address[](2); path[0] = router.WETH(); path[1] = address(this); router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}( 0, path, to, block.timestamp ); } function clearStuckBalance() external onlyOwner { payable(marketingFeeReceiver).transfer(address(this).balance); } function clearStuckTokens(address _tokenAddr, address _to, uint256 _amount) external onlyOwner { require(ERC20(_tokenAddr).transfer(_to, _amount), "Transfer failed"); } function setWalletLimit(uint256 amountPercent) external onlyOwner { maxWalletAmount = (_totalSupply * amountPercent ) / 1000; } function isBots(address botAddress, bool status) external onlyOwner { isBot[botAddress] = status; } function addBots(address[] calldata botAddress, bool status) external onlyOwner { for (uint256 i = 0; i < botAddress.length; i++) { isBot[botAddress[i]] = status; } } function setFees(uint256 _LiquidityFee, uint256 _MarketingFee) external onlyOwner { marketingFee = _MarketingFee; liquidityFee = _LiquidityFee; totalFee = liquidityFee + marketingFee; require(totalFee <= 25, "Must keep fees at 25% or less"); } function setContractLimits(bool sellLimited_, bool p2pLimited_) external onlyOwner { sellLimited = sellLimited_; p2pLimited = p2pLimited_; } function viewContractLimits() external view returns (bool isSellLimited, bool isP2PLimited){ return(sellLimited,p2pLimited); } function setADMSettings(uint256 sellCooldownSeconds_, uint256 maxSellTransactionAmount_, uint256 sellPercent_) external onlyOwner { sellCooldownSeconds = sellCooldownSeconds_; maxSellTransactionAmount = maxSellTransactionAmount_; sellPercent = sellPercent_; } function viewADMSettings() external view returns (uint sellCooldownSecs, uint maxSellTransactionAmt, uint256 sellPercentAmt){ return(sellCooldownSeconds,maxSellTransactionAmount,sellPercent); } function minZero(uint a, uint b) private pure returns(uint) { if (a > b) { return a - b; } else { return 0; } } event AutoLiquify(uint256 amountETH, uint256 amountBEE); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBEE","type":"uint256"}],"name":"AutoLiquify","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":"address[]","name":"botAddress","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"getUserSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"botAddress","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"isBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellCooldownSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellCooldownSeconds_","type":"uint256"},{"internalType":"uint256","name":"maxSellTransactionAmount_","type":"uint256"},{"internalType":"uint256","name":"sellPercent_","type":"uint256"}],"name":"setADMSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"sellLimited_","type":"bool"},{"internalType":"bool","name":"p2pLimited_","type":"bool"}],"name":"setContractLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_LiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_MarketingFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"sold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tradeData","outputs":[{"internalType":"uint256","name":"firstBuy","type":"uint256"},{"internalType":"uint256","name":"lastTradeTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"viewADMSettings","outputs":[{"internalType":"uint256","name":"sellCooldownSecs","type":"uint256"},{"internalType":"uint256","name":"maxSellTransactionAmt","type":"uint256"},{"internalType":"uint256","name":"sellPercentAmt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewContractLimits","outputs":[{"internalType":"bool","name":"isSellLimited","type":"bool"},{"internalType":"bool","name":"isP2PLimited","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000057919062000a1b565b620f424062000067919062000b58565b60035573e07692319060db7344ccdc7d777ee32236f80f7d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d55600a600e55600e54600d54620000db91906200092b565b600f5560646010556001601160016101000a81548160ff021916908315150217905550612710606460035462000112919062000b58565b6200011e919062000988565b601255620186a0606460035462000136919062000b58565b62000142919062000988565b601355620186a06101f46003546200015b919062000b58565b62000167919062000988565b60145562015180601555600a6016556001601760006101000a81548160ff0219169083151502179055506001601760016101000a81548160ff021916908315150217905550348015620001b957600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031d57600080fd5b505afa15801562000332573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035891906200088d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003dc57600080fd5b505afa158015620003f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041791906200088d565b306040518363ffffffff1660e01b815260040162000437929190620008e1565b602060405180830381600087803b1580156200045257600080fd5b505af115801562000467573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200048d91906200088d565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016009600073e07692319060db7344ccdc7d777ee32236f80f7d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a600073e07692319060db7344ccdc7d777ee32236f80f7d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555042601881905550600354600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040516200086791906200090e565b60405180910390a35062000c8e565b600081519050620008878162000c74565b92915050565b600060208284031215620008a657620008a562000c62565b5b6000620008b68482850162000876565b91505092915050565b620008ca8162000bb9565b82525050565b620008db8162000bed565b82525050565b6000604082019050620008f86000830185620008bf565b620009076020830184620008bf565b9392505050565b6000602082019050620009256000830184620008d0565b92915050565b6000620009388262000bed565b9150620009458362000bed565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200097d576200097c62000c04565b5b828201905092915050565b6000620009958262000bed565b9150620009a28362000bed565b925082620009b557620009b462000c33565b5b828204905092915050565b6000808291508390505b600185111562000a1257808604811115620009ea57620009e962000c04565b5b6001851615620009fa5780820291505b808102905062000a0a8562000c67565b9450620009ca565b94509492505050565b600062000a288262000bed565b915062000a358362000bf7565b925062000a647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a6c565b905092915050565b60008262000a7e576001905062000b51565b8162000a8e576000905062000b51565b816001811462000aa7576002811462000ab25762000ae8565b600191505062000b51565b60ff84111562000ac75762000ac662000c04565b5b8360020a91508482111562000ae15762000ae062000c04565b5b5062000b51565b5060208310610133831016604e8410600b841016171562000b225782820a90508381111562000b1c5762000b1b62000c04565b5b62000b51565b62000b318484846001620009c0565b9250905081840481111562000b4b5762000b4a62000c04565b5b81810290505b9392505050565b600062000b658262000bed565b915062000b728362000bed565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bae5762000bad62000c04565b5b828202905092915050565b600062000bc68262000bcd565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000c7f8162000bb9565b811462000c8b57600080fd5b50565b61404c8062000c9e6000396000f3fe60806040526004361061024a5760003560e01c8063715018a611610139578063aa4bde28116100b6578063dd62ed3e1161007a578063dd62ed3e146108e0578063e346d64f1461091d578063e96fada214610949578063ec993f5e14610974578063f1d5f5171461099d578063f887ea40146109c657610251565b8063aa4bde28146107fa578063ade927e714610825578063b2fe8a7a14610863578063d05b5a001461088c578063d36d0497146108b557610251565b80639d34a30d116100fd5780639d34a30d14610713578063a0916b821461073c578063a6af260f14610765578063a8aa1b3114610792578063a9059cbb146107bd57610251565b8063715018a61461063e57806378e9792514610655578063893d20e8146106805780638b42507f146106ab57806395d89b41146106e857610251565b8063313ce567116101c75780633f4218e01161018b5780633f4218e01461051f578063571ac8b01461055c5780635b0833cc146105995780636ddd1713146105d657806370a082311461060157610251565b8063313ce567146104385780633535cea914610463578063364333f4146104a05780633bbac579146104b75780633e6968b6146104f457610251565b80630eff64271161020e5780630eff64271461033d57806318160ddd1461036857806323b872dd146103935780632b112e49146103d05780632f54bf6e146103fb57610251565b806302259e9e146102565780630445b6671461028157806306fdde03146102ac578063095ea7b3146102d75780630b78f9c01461031457610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b6109f1565b6040516102789190613970565b60405180910390f35b34801561028d57600080fd5b506102966109f7565b6040516102a39190613970565b60405180910390f35b3480156102b857600080fd5b506102c16109fd565b6040516102ce919061380e565b60405180910390f35b3480156102e357600080fd5b506102fe60048036038101906102f9919061323c565b610a3a565b60405161030b91906137af565b60405180910390f35b34801561032057600080fd5b5061033b60048036038101906103369190613376565b610b2c565b005b34801561034957600080fd5b50610352610be2565b60405161035f9190613970565b60405180910390f35b34801561037457600080fd5b5061037d610be8565b60405161038a9190613970565b60405180910390f35b34801561039f57600080fd5b506103ba60048036038101906103b591906131a9565b610bf2565b6040516103c791906137af565b60405180910390f35b3480156103dc57600080fd5b506103e5610df2565b6040516103f29190613970565b60405180910390f35b34801561040757600080fd5b50610422600480360381019061041d919061310f565b610e68565b60405161042f91906137af565b60405180910390f35b34801561044457600080fd5b5061044d610ec1565b60405161045a9190613a45565b60405180910390f35b34801561046f57600080fd5b5061048a6004803603810190610485919061310f565b610eca565b6040516104979190613970565b60405180910390f35b3480156104ac57600080fd5b506104b5610f3c565b005b3480156104c357600080fd5b506104de60048036038101906104d9919061310f565b610fef565b6040516104eb91906137af565b60405180910390f35b34801561050057600080fd5b5061050961100f565b6040516105169190613970565b60405180910390f35b34801561052b57600080fd5b506105466004803603810190610541919061310f565b611036565b60405161055391906137af565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e919061310f565b611056565b60405161059091906137af565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb919061323c565b611089565b6040516105cd9190613970565b60405180910390f35b3480156105e257600080fd5b506105eb6110ae565b6040516105f891906137af565b60405180910390f35b34801561060d57600080fd5b506106286004803603810190610623919061310f565b6110c1565b6040516106359190613970565b60405180910390f35b34801561064a57600080fd5b5061065361110a565b005b34801561066157600080fd5b5061066a6111cd565b6040516106779190613970565b60405180910390f35b34801561068c57600080fd5b506106956111d3565b6040516106a2919061370a565b60405180910390f35b3480156106b757600080fd5b506106d260048036038101906106cd919061310f565b6111fc565b6040516106df91906137af565b60405180910390f35b3480156106f457600080fd5b506106fd61121c565b60405161070a919061380e565b60405180910390f35b34801561071f57600080fd5b5061073a600480360381019061073591906131a9565b611259565b005b34801561074857600080fd5b50610763600480360381019061075e919061327c565b611372565b005b34801561077157600080fd5b5061077a61145f565b60405161078993929190613a0e565b60405180910390f35b34801561079e57600080fd5b506107a7611478565b6040516107b4919061370a565b60405180910390f35b3480156107c957600080fd5b506107e460048036038101906107df919061323c565b61149e565b6040516107f191906137af565b60405180910390f35b34801561080657600080fd5b5061080f6114b3565b60405161081c9190613970565b60405180910390f35b34801561083157600080fd5b5061084c6004803603810190610847919061310f565b6114b9565b60405161085a9291906139e5565b60405180910390f35b34801561086f57600080fd5b5061088a60048036038101906108859190613309565b6114dd565b005b34801561089857600080fd5b506108b360048036038101906108ae91906131fc565b61155d565b005b3480156108c157600080fd5b506108ca611600565b6040516108d79190613970565b60405180910390f35b3480156108ec57600080fd5b5061090760048036038101906109029190613169565b611606565b6040516109149190613970565b60405180910390f35b34801561092957600080fd5b5061093261168d565b6040516109409291906137ca565b60405180910390f35b34801561095557600080fd5b5061095e6116b8565b60405161096b919061370a565b60405180910390f35b34801561098057600080fd5b5061099b600480360381019061099691906133b6565b6116de565b005b3480156109a957600080fd5b506109c460048036038101906109bf9190613349565b611740565b005b3480156109d257600080fd5b506109db6117ac565b6040516109e891906137f3565b60405180910390f35b60135481565b60145481565b60606040518060400160405280600d81526020017f4f4d4547412046494e414e434500000000000000000000000000000000000000815250905090565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b1a9190613970565b60405180910390a36001905092915050565b610b3533610e68565b610b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6b906138d0565b60405180910390fd5b80600e8190555081600d81905550600e54600d54610b929190613ac0565b600f819055506019600f541115610bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd590613930565b60405180910390fd5b5050565b60155481565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610dde57610d5d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117d29092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610de9848484611836565b90509392505050565b600060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600354610e639190613ba1565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600080610eea6103e8610edc85612345565b61249690919063ffffffff16565b90506000610f03601654836124e090919063ffffffff16565b9050610f33612710610f2583610f17610df2565b6124e090919063ffffffff16565b61249690919063ffffffff16565b92505050919050565b610f4533610e68565b610f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7b906138d0565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610fec573d6000803e3d6000fd5b50565b600b6020528060005260406000206000915054906101000a900460ff1681565b60006110316015546110234260185461255b565b61249690919063ffffffff16565b905090565b60096020528060005260406000206000915054906101000a900460ff1681565b6000611082827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a3a565b9050919050565b6019602052816000526040600020602052806000526040600020600091509150505481565b601160019054906101000a900460ff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61111333610e68565b611152576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611149906138d0565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516111c3919061370a565b60405180910390a1565b60185481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600381526020017f4f4d470000000000000000000000000000000000000000000000000000000000815250905090565b61126233610e68565b6112a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611298906138d0565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016112dc929190613725565b602060405180830381600087803b1580156112f657600080fd5b505af115801561130a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132e91906132dc565b61136d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136490613850565b60405180910390fd5b505050565b61137b33610e68565b6113ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b1906138d0565b60405180910390fd5b60005b838390508110156114595781600b60008686858181106113e0576113df613d3a565b5b90506020020160208101906113f5919061310f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061145190613c93565b9150506113bd565b50505050565b6000806000601554601354601654925092509250909192565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006114ab338484611836565b905092915050565b60125481565b600c6020528060005260406000206000915090508060000154908060010154905082565b6114e633610e68565b611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c906138d0565b60405180910390fd5b81601760006101000a81548160ff02191690831515021790555080601760016101000a81548160ff0219169083151502179055505050565b61156633610e68565b6115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c906138d0565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60165481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080601760009054906101000a900460ff16601760019054906101000a900460ff16915091509091565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116e733610e68565b611726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171d906138d0565b60405180910390fd5b826015819055508160138190555080601681905550505050565b61174933610e68565b611788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177f906138d0565b60405180910390fd5b6103e8816003546117999190613b47565b6117a39190613b16565b60128190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600083831115829061181a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611811919061380e565b60405180910390fd5b50600083856118299190613ba1565b9050809150509392505050565b6000838383600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118e25750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611995576118f083610eca565b81601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061193a61100f565b8152602001908152602001600020546119539190613ac0565b1115611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b90613950565b60405180910390fd5b5b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1990613910565b60405180910390fd5b601160009054906101000a900460ff1615611a4957611a42878787612583565b935061233b565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015611af55750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b8015611b4f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015611b675750601760019054906101000a900460ff165b15611cf557600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c0d5750600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611c615750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611cb55750600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ceb906138f0565b60405180910390fd5b5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015611da15750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b15611e8a57600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e4a575060125485600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e479190613ac0565b11155b611e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8090613830565b60405180910390fd5b5b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f315750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b15611f7e5742600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120255750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b156121375742600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506120db85601960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006120be61100f565b81526020019081526020016000205461275690919063ffffffff16565b601960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061212461100f565b8152602001908152602001600020819055505b61213f6127b4565b1561214d5761214c61288b565b5b6121d6856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117d29092919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061222488612df3565b61222e5785612239565b6122388887612e4a565b5b905061228d81600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275690919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161232d9190613970565b60405180910390a360019450505b5050509392505050565b6000806000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541415612409576124026103e8601554600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154426123ea9190613ba1565b6123f49190613b16565b6124e090919063ffffffff16565b905061247b565b6124786103e8601554600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154426124609190613ba1565b61246a9190613b16565b6124e090919063ffffffff16565b90505b6103e8811061248a578061248e565b6103e85b915050919050565b60006124d883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f8e565b905092915050565b6000808314156124f35760009050612555565b600082846125019190613b47565b90508284826125109190613b16565b14612550576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612547906138b0565b60405180910390fd5b809150505b92915050565b6000818311156125785781836125719190613ba1565b905061257d565b600090505b92915050565b600061260e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117d29092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126a382600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275690919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127439190613970565b60405180910390a3600190509392505050565b60008082846127659190613ac0565b9050838110156127aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a190613870565b60405180910390fd5b8091505092915050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156128215750601160009054906101000a900460ff16155b80156128395750601160019054906101000a900460ff165b80156128865750601454600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff0219169083151502179055506000601454905060006128eb60026128dd600f546128cf600d54876124e090919063ffffffff16565b61249690919063ffffffff16565b61249690919063ffffffff16565b905060006129028284612ff190919063ffffffff16565b90506000600267ffffffffffffffff81111561292157612920613d69565b5b60405190808252806020026020018201604052801561294f5781602001602082028036833780820191505090505b509050308160008151811061296757612966613d3a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612a0957600080fd5b505afa158015612a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a41919061313c565b81600181518110612a5557612a54613d3a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612af895949392919061398b565b600060405180830381600087803b158015612b1257600080fd5b505af1158015612b26573d6000803e3d6000fd5b505050506000612b3f8247612ff190919063ffffffff16565b90506000612b6d612b5c6002600d5461249690919063ffffffff16565b600f54612ff190919063ffffffff16565b90506000612bab6002612b9d84612b8f600d54886124e090919063ffffffff16565b61249690919063ffffffff16565b61249690919063ffffffff16565b90506000612bd683612bc8600e54876124e090919063ffffffff16565b61249690919063ffffffff16565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612c24906136f5565b600060405180830381858888f193505050503d8060008114612c62576040519150601f19603f3d011682016040523d82523d6000602084013e612c67565b606091505b5050905080612cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ca290613890565b60405180910390fd5b6000891115612dcc57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612d3d9695949392919061374e565b6060604051808303818588803b158015612d5657600080fd5b505af1158015612d6a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612d8f9190613409565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051612dc39291906139e5565b60405180910390a15b505050505050505050506000601160006101000a81548160ff021916908315150217905550565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080612e76601054612e68600f54866124e090919063ffffffff16565b61249690919063ffffffff16565b9050612eca81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275690919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f6a9190613970565b60405180910390a3612f858184612ff190919063ffffffff16565b91505092915050565b60008083118290612fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fcc919061380e565b60405180910390fd5b5060008385612fe49190613b16565b9050809150509392505050565b600061303383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117d2565b905092915050565b60008135905061304a81613fd1565b92915050565b60008151905061305f81613fd1565b92915050565b60008083601f84011261307b5761307a613d9d565b5b8235905067ffffffffffffffff81111561309857613097613d98565b5b6020830191508360208202830111156130b4576130b3613da2565b5b9250929050565b6000813590506130ca81613fe8565b92915050565b6000815190506130df81613fe8565b92915050565b6000813590506130f481613fff565b92915050565b60008151905061310981613fff565b92915050565b60006020828403121561312557613124613dac565b5b60006131338482850161303b565b91505092915050565b60006020828403121561315257613151613dac565b5b600061316084828501613050565b91505092915050565b600080604083850312156131805761317f613dac565b5b600061318e8582860161303b565b925050602061319f8582860161303b565b9150509250929050565b6000806000606084860312156131c2576131c1613dac565b5b60006131d08682870161303b565b93505060206131e18682870161303b565b92505060406131f2868287016130e5565b9150509250925092565b6000806040838503121561321357613212613dac565b5b60006132218582860161303b565b9250506020613232858286016130bb565b9150509250929050565b6000806040838503121561325357613252613dac565b5b60006132618582860161303b565b9250506020613272858286016130e5565b9150509250929050565b60008060006040848603121561329557613294613dac565b5b600084013567ffffffffffffffff8111156132b3576132b2613da7565b5b6132bf86828701613065565b935093505060206132d2868287016130bb565b9150509250925092565b6000602082840312156132f2576132f1613dac565b5b6000613300848285016130d0565b91505092915050565b600080604083850312156133205761331f613dac565b5b600061332e858286016130bb565b925050602061333f858286016130bb565b9150509250929050565b60006020828403121561335f5761335e613dac565b5b600061336d848285016130e5565b91505092915050565b6000806040838503121561338d5761338c613dac565b5b600061339b858286016130e5565b92505060206133ac858286016130e5565b9150509250929050565b6000806000606084860312156133cf576133ce613dac565b5b60006133dd868287016130e5565b93505060206133ee868287016130e5565b92505060406133ff868287016130e5565b9150509250925092565b60008060006060848603121561342257613421613dac565b5b6000613430868287016130fa565b9350506020613441868287016130fa565b9250506040613452868287016130fa565b9150509250925092565b60006134688383613474565b60208301905092915050565b61347d81613bd5565b82525050565b61348c81613bd5565b82525050565b600061349d82613a70565b6134a78185613a93565b93506134b283613a60565b8060005b838110156134e35781516134ca888261345c565b97506134d583613a86565b9250506001810190506134b6565b5085935050505092915050565b6134f981613be7565b82525050565b61350881613c2a565b82525050565b61351781613c4e565b82525050565b600061352882613a7b565b6135328185613aaf565b9350613542818560208601613c60565b61354b81613db1565b840191505092915050565b6000613563602583613aaf565b915061356e82613dc2565b604082019050919050565b6000613586600f83613aaf565b915061359182613e11565b602082019050919050565b60006135a9601b83613aaf565b91506135b482613e3a565b602082019050919050565b60006135cc601e83613aaf565b91506135d782613e63565b602082019050919050565b60006135ef602183613aaf565b91506135fa82613e8c565b604082019050919050565b6000613612600683613aaf565b915061361d82613edb565b602082019050919050565b6000613635600083613aa4565b915061364082613f04565b600082019050919050565b6000613658600f83613aaf565b915061366382613f07565b602082019050919050565b600061367b600b83613aaf565b915061368682613f30565b602082019050919050565b600061369e601d83613aaf565b91506136a982613f59565b602082019050919050565b60006136c1602883613aaf565b91506136cc82613f82565b604082019050919050565b6136e081613c13565b82525050565b6136ef81613c1d565b82525050565b600061370082613628565b9150819050919050565b600060208201905061371f6000830184613483565b92915050565b600060408201905061373a6000830185613483565b61374760208301846136d7565b9392505050565b600060c0820190506137636000830189613483565b61377060208301886136d7565b61377d604083018761350e565b61378a606083018661350e565b6137976080830185613483565b6137a460a08301846136d7565b979650505050505050565b60006020820190506137c460008301846134f0565b92915050565b60006040820190506137df60008301856134f0565b6137ec60208301846134f0565b9392505050565b600060208201905061380860008301846134ff565b92915050565b60006020820190508181036000830152613828818461351d565b905092915050565b6000602082019050818103600083015261384981613556565b9050919050565b6000602082019050818103600083015261386981613579565b9050919050565b600060208201905081810360008301526138898161359c565b9050919050565b600060208201905081810360008301526138a9816135bf565b9050919050565b600060208201905081810360008301526138c9816135e2565b9050919050565b600060208201905081810360008301526138e981613605565b9050919050565b600060208201905081810360008301526139098161364b565b9050919050565b600060208201905081810360008301526139298161366e565b9050919050565b6000602082019050818103600083015261394981613691565b9050919050565b60006020820190508181036000830152613969816136b4565b9050919050565b600060208201905061398560008301846136d7565b92915050565b600060a0820190506139a060008301886136d7565b6139ad602083018761350e565b81810360408301526139bf8186613492565b90506139ce6060830185613483565b6139db60808301846136d7565b9695505050505050565b60006040820190506139fa60008301856136d7565b613a0760208301846136d7565b9392505050565b6000606082019050613a2360008301866136d7565b613a3060208301856136d7565b613a3d60408301846136d7565b949350505050565b6000602082019050613a5a60008301846136e6565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613acb82613c13565b9150613ad683613c13565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b0b57613b0a613cdc565b5b828201905092915050565b6000613b2182613c13565b9150613b2c83613c13565b925082613b3c57613b3b613d0b565b5b828204905092915050565b6000613b5282613c13565b9150613b5d83613c13565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613b9657613b95613cdc565b5b828202905092915050565b6000613bac82613c13565b9150613bb783613c13565b925082821015613bca57613bc9613cdc565b5b828203905092915050565b6000613be082613bf3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613c3582613c3c565b9050919050565b6000613c4782613bf3565b9050919050565b6000613c5982613c13565b9050919050565b60005b83811015613c7e578082015181840152602081019050613c63565b83811115613c8d576000848401525b50505050565b6000613c9e82613c13565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613cd157613cd0613cdc565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f503250206e6f7420616c6c6f7765640000000000000000000000000000000000600082015250565b7f426f742041646472657373000000000000000000000000000000000000000000600082015250565b7f4d757374206b656570206665657320617420323525206f72206c657373000000600082015250565b7f43616e6e6f742073656c6c206f72207472616e73666572206d6f72652074686160008201527f6e206c696d69742e000000000000000000000000000000000000000000000000602082015250565b613fda81613bd5565b8114613fe557600080fd5b50565b613ff181613be7565b8114613ffc57600080fd5b50565b61400881613c13565b811461401357600080fd5b5056fea2646970667358221220d1961cfebf01436f4202419182a1ae877f0b863e1250acd0565d178bab29bbf564736f6c63430008050033
Deployed Bytecode
0x60806040526004361061024a5760003560e01c8063715018a611610139578063aa4bde28116100b6578063dd62ed3e1161007a578063dd62ed3e146108e0578063e346d64f1461091d578063e96fada214610949578063ec993f5e14610974578063f1d5f5171461099d578063f887ea40146109c657610251565b8063aa4bde28146107fa578063ade927e714610825578063b2fe8a7a14610863578063d05b5a001461088c578063d36d0497146108b557610251565b80639d34a30d116100fd5780639d34a30d14610713578063a0916b821461073c578063a6af260f14610765578063a8aa1b3114610792578063a9059cbb146107bd57610251565b8063715018a61461063e57806378e9792514610655578063893d20e8146106805780638b42507f146106ab57806395d89b41146106e857610251565b8063313ce567116101c75780633f4218e01161018b5780633f4218e01461051f578063571ac8b01461055c5780635b0833cc146105995780636ddd1713146105d657806370a082311461060157610251565b8063313ce567146104385780633535cea914610463578063364333f4146104a05780633bbac579146104b75780633e6968b6146104f457610251565b80630eff64271161020e5780630eff64271461033d57806318160ddd1461036857806323b872dd146103935780632b112e49146103d05780632f54bf6e146103fb57610251565b806302259e9e146102565780630445b6671461028157806306fdde03146102ac578063095ea7b3146102d75780630b78f9c01461031457610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b6109f1565b6040516102789190613970565b60405180910390f35b34801561028d57600080fd5b506102966109f7565b6040516102a39190613970565b60405180910390f35b3480156102b857600080fd5b506102c16109fd565b6040516102ce919061380e565b60405180910390f35b3480156102e357600080fd5b506102fe60048036038101906102f9919061323c565b610a3a565b60405161030b91906137af565b60405180910390f35b34801561032057600080fd5b5061033b60048036038101906103369190613376565b610b2c565b005b34801561034957600080fd5b50610352610be2565b60405161035f9190613970565b60405180910390f35b34801561037457600080fd5b5061037d610be8565b60405161038a9190613970565b60405180910390f35b34801561039f57600080fd5b506103ba60048036038101906103b591906131a9565b610bf2565b6040516103c791906137af565b60405180910390f35b3480156103dc57600080fd5b506103e5610df2565b6040516103f29190613970565b60405180910390f35b34801561040757600080fd5b50610422600480360381019061041d919061310f565b610e68565b60405161042f91906137af565b60405180910390f35b34801561044457600080fd5b5061044d610ec1565b60405161045a9190613a45565b60405180910390f35b34801561046f57600080fd5b5061048a6004803603810190610485919061310f565b610eca565b6040516104979190613970565b60405180910390f35b3480156104ac57600080fd5b506104b5610f3c565b005b3480156104c357600080fd5b506104de60048036038101906104d9919061310f565b610fef565b6040516104eb91906137af565b60405180910390f35b34801561050057600080fd5b5061050961100f565b6040516105169190613970565b60405180910390f35b34801561052b57600080fd5b506105466004803603810190610541919061310f565b611036565b60405161055391906137af565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e919061310f565b611056565b60405161059091906137af565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb919061323c565b611089565b6040516105cd9190613970565b60405180910390f35b3480156105e257600080fd5b506105eb6110ae565b6040516105f891906137af565b60405180910390f35b34801561060d57600080fd5b506106286004803603810190610623919061310f565b6110c1565b6040516106359190613970565b60405180910390f35b34801561064a57600080fd5b5061065361110a565b005b34801561066157600080fd5b5061066a6111cd565b6040516106779190613970565b60405180910390f35b34801561068c57600080fd5b506106956111d3565b6040516106a2919061370a565b60405180910390f35b3480156106b757600080fd5b506106d260048036038101906106cd919061310f565b6111fc565b6040516106df91906137af565b60405180910390f35b3480156106f457600080fd5b506106fd61121c565b60405161070a919061380e565b60405180910390f35b34801561071f57600080fd5b5061073a600480360381019061073591906131a9565b611259565b005b34801561074857600080fd5b50610763600480360381019061075e919061327c565b611372565b005b34801561077157600080fd5b5061077a61145f565b60405161078993929190613a0e565b60405180910390f35b34801561079e57600080fd5b506107a7611478565b6040516107b4919061370a565b60405180910390f35b3480156107c957600080fd5b506107e460048036038101906107df919061323c565b61149e565b6040516107f191906137af565b60405180910390f35b34801561080657600080fd5b5061080f6114b3565b60405161081c9190613970565b60405180910390f35b34801561083157600080fd5b5061084c6004803603810190610847919061310f565b6114b9565b60405161085a9291906139e5565b60405180910390f35b34801561086f57600080fd5b5061088a60048036038101906108859190613309565b6114dd565b005b34801561089857600080fd5b506108b360048036038101906108ae91906131fc565b61155d565b005b3480156108c157600080fd5b506108ca611600565b6040516108d79190613970565b60405180910390f35b3480156108ec57600080fd5b5061090760048036038101906109029190613169565b611606565b6040516109149190613970565b60405180910390f35b34801561092957600080fd5b5061093261168d565b6040516109409291906137ca565b60405180910390f35b34801561095557600080fd5b5061095e6116b8565b60405161096b919061370a565b60405180910390f35b34801561098057600080fd5b5061099b600480360381019061099691906133b6565b6116de565b005b3480156109a957600080fd5b506109c460048036038101906109bf9190613349565b611740565b005b3480156109d257600080fd5b506109db6117ac565b6040516109e891906137f3565b60405180910390f35b60135481565b60145481565b60606040518060400160405280600d81526020017f4f4d4547412046494e414e434500000000000000000000000000000000000000815250905090565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b1a9190613970565b60405180910390a36001905092915050565b610b3533610e68565b610b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6b906138d0565b60405180910390fd5b80600e8190555081600d81905550600e54600d54610b929190613ac0565b600f819055506019600f541115610bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd590613930565b60405180910390fd5b5050565b60155481565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610dde57610d5d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117d29092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610de9848484611836565b90509392505050565b600060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600354610e639190613ba1565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600080610eea6103e8610edc85612345565b61249690919063ffffffff16565b90506000610f03601654836124e090919063ffffffff16565b9050610f33612710610f2583610f17610df2565b6124e090919063ffffffff16565b61249690919063ffffffff16565b92505050919050565b610f4533610e68565b610f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7b906138d0565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610fec573d6000803e3d6000fd5b50565b600b6020528060005260406000206000915054906101000a900460ff1681565b60006110316015546110234260185461255b565b61249690919063ffffffff16565b905090565b60096020528060005260406000206000915054906101000a900460ff1681565b6000611082827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a3a565b9050919050565b6019602052816000526040600020602052806000526040600020600091509150505481565b601160019054906101000a900460ff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61111333610e68565b611152576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611149906138d0565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516111c3919061370a565b60405180910390a1565b60185481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600381526020017f4f4d470000000000000000000000000000000000000000000000000000000000815250905090565b61126233610e68565b6112a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611298906138d0565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016112dc929190613725565b602060405180830381600087803b1580156112f657600080fd5b505af115801561130a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132e91906132dc565b61136d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136490613850565b60405180910390fd5b505050565b61137b33610e68565b6113ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b1906138d0565b60405180910390fd5b60005b838390508110156114595781600b60008686858181106113e0576113df613d3a565b5b90506020020160208101906113f5919061310f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061145190613c93565b9150506113bd565b50505050565b6000806000601554601354601654925092509250909192565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006114ab338484611836565b905092915050565b60125481565b600c6020528060005260406000206000915090508060000154908060010154905082565b6114e633610e68565b611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c906138d0565b60405180910390fd5b81601760006101000a81548160ff02191690831515021790555080601760016101000a81548160ff0219169083151502179055505050565b61156633610e68565b6115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c906138d0565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60165481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080601760009054906101000a900460ff16601760019054906101000a900460ff16915091509091565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116e733610e68565b611726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171d906138d0565b60405180910390fd5b826015819055508160138190555080601681905550505050565b61174933610e68565b611788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177f906138d0565b60405180910390fd5b6103e8816003546117999190613b47565b6117a39190613b16565b60128190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600083831115829061181a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611811919061380e565b60405180910390fd5b50600083856118299190613ba1565b9050809150509392505050565b6000838383600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118e25750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611995576118f083610eca565b81601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061193a61100f565b8152602001908152602001600020546119539190613ac0565b1115611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b90613950565b60405180910390fd5b5b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1990613910565b60405180910390fd5b601160009054906101000a900460ff1615611a4957611a42878787612583565b935061233b565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015611af55750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b8015611b4f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015611b675750601760019054906101000a900460ff165b15611cf557600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c0d5750600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611c615750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611cb55750600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ceb906138f0565b60405180910390fd5b5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015611da15750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b15611e8a57600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e4a575060125485600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e479190613ac0565b11155b611e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8090613830565b60405180910390fd5b5b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f315750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b15611f7e5742600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120255750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b156121375742600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506120db85601960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006120be61100f565b81526020019081526020016000205461275690919063ffffffff16565b601960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061212461100f565b8152602001908152602001600020819055505b61213f6127b4565b1561214d5761214c61288b565b5b6121d6856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117d29092919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061222488612df3565b61222e5785612239565b6122388887612e4a565b5b905061228d81600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275690919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161232d9190613970565b60405180910390a360019450505b5050509392505050565b6000806000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541415612409576124026103e8601554600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154426123ea9190613ba1565b6123f49190613b16565b6124e090919063ffffffff16565b905061247b565b6124786103e8601554600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154426124609190613ba1565b61246a9190613b16565b6124e090919063ffffffff16565b90505b6103e8811061248a578061248e565b6103e85b915050919050565b60006124d883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f8e565b905092915050565b6000808314156124f35760009050612555565b600082846125019190613b47565b90508284826125109190613b16565b14612550576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612547906138b0565b60405180910390fd5b809150505b92915050565b6000818311156125785781836125719190613ba1565b905061257d565b600090505b92915050565b600061260e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117d29092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126a382600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275690919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127439190613970565b60405180910390a3600190509392505050565b60008082846127659190613ac0565b9050838110156127aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a190613870565b60405180910390fd5b8091505092915050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156128215750601160009054906101000a900460ff16155b80156128395750601160019054906101000a900460ff165b80156128865750601454600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff0219169083151502179055506000601454905060006128eb60026128dd600f546128cf600d54876124e090919063ffffffff16565b61249690919063ffffffff16565b61249690919063ffffffff16565b905060006129028284612ff190919063ffffffff16565b90506000600267ffffffffffffffff81111561292157612920613d69565b5b60405190808252806020026020018201604052801561294f5781602001602082028036833780820191505090505b509050308160008151811061296757612966613d3a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612a0957600080fd5b505afa158015612a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a41919061313c565b81600181518110612a5557612a54613d3a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612af895949392919061398b565b600060405180830381600087803b158015612b1257600080fd5b505af1158015612b26573d6000803e3d6000fd5b505050506000612b3f8247612ff190919063ffffffff16565b90506000612b6d612b5c6002600d5461249690919063ffffffff16565b600f54612ff190919063ffffffff16565b90506000612bab6002612b9d84612b8f600d54886124e090919063ffffffff16565b61249690919063ffffffff16565b61249690919063ffffffff16565b90506000612bd683612bc8600e54876124e090919063ffffffff16565b61249690919063ffffffff16565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612c24906136f5565b600060405180830381858888f193505050503d8060008114612c62576040519150601f19603f3d011682016040523d82523d6000602084013e612c67565b606091505b5050905080612cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ca290613890565b60405180910390fd5b6000891115612dcc57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612d3d9695949392919061374e565b6060604051808303818588803b158015612d5657600080fd5b505af1158015612d6a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612d8f9190613409565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051612dc39291906139e5565b60405180910390a15b505050505050505050506000601160006101000a81548160ff021916908315150217905550565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080612e76601054612e68600f54866124e090919063ffffffff16565b61249690919063ffffffff16565b9050612eca81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275690919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f6a9190613970565b60405180910390a3612f858184612ff190919063ffffffff16565b91505092915050565b60008083118290612fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fcc919061380e565b60405180910390fd5b5060008385612fe49190613b16565b9050809150509392505050565b600061303383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117d2565b905092915050565b60008135905061304a81613fd1565b92915050565b60008151905061305f81613fd1565b92915050565b60008083601f84011261307b5761307a613d9d565b5b8235905067ffffffffffffffff81111561309857613097613d98565b5b6020830191508360208202830111156130b4576130b3613da2565b5b9250929050565b6000813590506130ca81613fe8565b92915050565b6000815190506130df81613fe8565b92915050565b6000813590506130f481613fff565b92915050565b60008151905061310981613fff565b92915050565b60006020828403121561312557613124613dac565b5b60006131338482850161303b565b91505092915050565b60006020828403121561315257613151613dac565b5b600061316084828501613050565b91505092915050565b600080604083850312156131805761317f613dac565b5b600061318e8582860161303b565b925050602061319f8582860161303b565b9150509250929050565b6000806000606084860312156131c2576131c1613dac565b5b60006131d08682870161303b565b93505060206131e18682870161303b565b92505060406131f2868287016130e5565b9150509250925092565b6000806040838503121561321357613212613dac565b5b60006132218582860161303b565b9250506020613232858286016130bb565b9150509250929050565b6000806040838503121561325357613252613dac565b5b60006132618582860161303b565b9250506020613272858286016130e5565b9150509250929050565b60008060006040848603121561329557613294613dac565b5b600084013567ffffffffffffffff8111156132b3576132b2613da7565b5b6132bf86828701613065565b935093505060206132d2868287016130bb565b9150509250925092565b6000602082840312156132f2576132f1613dac565b5b6000613300848285016130d0565b91505092915050565b600080604083850312156133205761331f613dac565b5b600061332e858286016130bb565b925050602061333f858286016130bb565b9150509250929050565b60006020828403121561335f5761335e613dac565b5b600061336d848285016130e5565b91505092915050565b6000806040838503121561338d5761338c613dac565b5b600061339b858286016130e5565b92505060206133ac858286016130e5565b9150509250929050565b6000806000606084860312156133cf576133ce613dac565b5b60006133dd868287016130e5565b93505060206133ee868287016130e5565b92505060406133ff868287016130e5565b9150509250925092565b60008060006060848603121561342257613421613dac565b5b6000613430868287016130fa565b9350506020613441868287016130fa565b9250506040613452868287016130fa565b9150509250925092565b60006134688383613474565b60208301905092915050565b61347d81613bd5565b82525050565b61348c81613bd5565b82525050565b600061349d82613a70565b6134a78185613a93565b93506134b283613a60565b8060005b838110156134e35781516134ca888261345c565b97506134d583613a86565b9250506001810190506134b6565b5085935050505092915050565b6134f981613be7565b82525050565b61350881613c2a565b82525050565b61351781613c4e565b82525050565b600061352882613a7b565b6135328185613aaf565b9350613542818560208601613c60565b61354b81613db1565b840191505092915050565b6000613563602583613aaf565b915061356e82613dc2565b604082019050919050565b6000613586600f83613aaf565b915061359182613e11565b602082019050919050565b60006135a9601b83613aaf565b91506135b482613e3a565b602082019050919050565b60006135cc601e83613aaf565b91506135d782613e63565b602082019050919050565b60006135ef602183613aaf565b91506135fa82613e8c565b604082019050919050565b6000613612600683613aaf565b915061361d82613edb565b602082019050919050565b6000613635600083613aa4565b915061364082613f04565b600082019050919050565b6000613658600f83613aaf565b915061366382613f07565b602082019050919050565b600061367b600b83613aaf565b915061368682613f30565b602082019050919050565b600061369e601d83613aaf565b91506136a982613f59565b602082019050919050565b60006136c1602883613aaf565b91506136cc82613f82565b604082019050919050565b6136e081613c13565b82525050565b6136ef81613c1d565b82525050565b600061370082613628565b9150819050919050565b600060208201905061371f6000830184613483565b92915050565b600060408201905061373a6000830185613483565b61374760208301846136d7565b9392505050565b600060c0820190506137636000830189613483565b61377060208301886136d7565b61377d604083018761350e565b61378a606083018661350e565b6137976080830185613483565b6137a460a08301846136d7565b979650505050505050565b60006020820190506137c460008301846134f0565b92915050565b60006040820190506137df60008301856134f0565b6137ec60208301846134f0565b9392505050565b600060208201905061380860008301846134ff565b92915050565b60006020820190508181036000830152613828818461351d565b905092915050565b6000602082019050818103600083015261384981613556565b9050919050565b6000602082019050818103600083015261386981613579565b9050919050565b600060208201905081810360008301526138898161359c565b9050919050565b600060208201905081810360008301526138a9816135bf565b9050919050565b600060208201905081810360008301526138c9816135e2565b9050919050565b600060208201905081810360008301526138e981613605565b9050919050565b600060208201905081810360008301526139098161364b565b9050919050565b600060208201905081810360008301526139298161366e565b9050919050565b6000602082019050818103600083015261394981613691565b9050919050565b60006020820190508181036000830152613969816136b4565b9050919050565b600060208201905061398560008301846136d7565b92915050565b600060a0820190506139a060008301886136d7565b6139ad602083018761350e565b81810360408301526139bf8186613492565b90506139ce6060830185613483565b6139db60808301846136d7565b9695505050505050565b60006040820190506139fa60008301856136d7565b613a0760208301846136d7565b9392505050565b6000606082019050613a2360008301866136d7565b613a3060208301856136d7565b613a3d60408301846136d7565b949350505050565b6000602082019050613a5a60008301846136e6565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613acb82613c13565b9150613ad683613c13565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b0b57613b0a613cdc565b5b828201905092915050565b6000613b2182613c13565b9150613b2c83613c13565b925082613b3c57613b3b613d0b565b5b828204905092915050565b6000613b5282613c13565b9150613b5d83613c13565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613b9657613b95613cdc565b5b828202905092915050565b6000613bac82613c13565b9150613bb783613c13565b925082821015613bca57613bc9613cdc565b5b828203905092915050565b6000613be082613bf3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613c3582613c3c565b9050919050565b6000613c4782613bf3565b9050919050565b6000613c5982613c13565b9050919050565b60005b83811015613c7e578082015181840152602081019050613c63565b83811115613c8d576000848401525b50505050565b6000613c9e82613c13565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613cd157613cd0613cdc565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f503250206e6f7420616c6c6f7765640000000000000000000000000000000000600082015250565b7f426f742041646472657373000000000000000000000000000000000000000000600082015250565b7f4d757374206b656570206665657320617420323525206f72206c657373000000600082015250565b7f43616e6e6f742073656c6c206f72207472616e73666572206d6f72652074686160008201527f6e206c696d69742e000000000000000000000000000000000000000000000000602082015250565b613fda81613bd5565b8114613fe557600080fd5b50565b613ff181613be7565b8114613ffc57600080fd5b50565b61400881613c13565b811461401357600080fd5b5056fea2646970667358221220d1961cfebf01436f4202419182a1ae877f0b863e1250acd0565d178bab29bbf564736f6c63430008050033
Deployed Bytecode Sourcemap
4082:12154:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5353:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5454:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7237:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7659:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14857:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5544:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6967:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9224:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8162:133;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2320:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7061:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8790:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14037:128;;;;;;;;;;;;;:::i;:::-;;4895:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8013:141;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4791:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7883:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6069:59;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5160:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7407:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2429:131;;;;;;;;;;;;;:::i;:::-;;5733:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7323:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4841:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7147:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14173:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14639:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15775:207;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;4676:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9060:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5262:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4939:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;15153:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14512:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5609:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7518:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15328:140;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;4556:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15476:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14363:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4645:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5353:71;;;;:::o;5454:60::-;;;;:::o;7237:80::-;7285:13;7309:5;;;;;;;;;;;;;;;;;7302:12;;7237:80;:::o;7659:216::-;7734:4;7786:6;7751:11;:23;7763:10;7751:23;;;;;;;;;;;;;;;:32;7775:7;7751:32;;;;;;;;;;;;;;;:41;;;;7829:7;7808:37;;7817:10;7808:37;;;7838:6;7808:37;;;;;;:::i;:::-;;;;;;;;7863:4;7856:11;;7659:216;;;;:::o;14857:286::-;2273:19;2281:10;2273:7;:19::i;:::-;2265:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14965:13:::1;14950:12;:28;;;;15004:13;14989:12;:28;;;;15054:12;;15039;;:27;;;;:::i;:::-;15028:8;:38;;;;15099:2;15087:8;;:14;;15079:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;14857:286:::0;;:::o;5544:42::-;;;;:::o;6967:88::-;7022:7;7040:12;;7033:19;;6967:88;:::o;9224:370::-;9324:4;9379:17;9344:11;:19;9356:6;9344:19;;;;;;;;;;;;;;;:31;9364:10;9344:31;;;;;;;;;;;;;;;;:52;9341:186;;9446:69;9482:6;9446:69;;;;;;;;;;;;;;;;;:11;:19;9458:6;9446:19;;;;;;;;;;;;;;;:31;9466:10;9446:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9412:11;:19;9424:6;9412:19;;;;;;;;;;;;;;;:31;9432:10;9412:31;;;;;;;;;;;;;;;:103;;;;9341:186;9546:40;9560:6;9568:9;9579:6;9546:13;:40::i;:::-;9539:47;;9224:370;;;;;:::o;8162:133::-;8215:7;8271:9;:15;8281:4;;;;;;;;;;;8271:15;;;;;;;;;;;;;;;;8256:12;;:30;;;;:::i;:::-;8235:52;;8162:133;:::o;2320:103::-;2375:4;2410:5;;;;;;;;;;;2399:16;;:7;:16;;;2392:23;;2320:103;;;:::o;7061:80::-;7113:5;4359:1;7122:16;;7061:80;:::o;8790:262::-;8853:7;8873:12;8888:44;8927:4;8888:34;8915:6;8888:26;:34::i;:::-;:38;;:44;;;;:::i;:::-;8873:59;;8943:13;8959:21;8968:11;;8959:4;:8;;:21;;;;:::i;:::-;8943:37;;9000:44;9038:5;9000:33;9027:5;9000:22;:20;:22::i;:::-;:26;;:33;;;;:::i;:::-;:37;;:44;;;;:::i;:::-;8993:51;;;;8790:262;;;:::o;14037:128::-;2273:19;2281:10;2273:7;:19::i;:::-;2265:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14104:20:::1;;;;;;;;;;;14096:38;;:61;14135:21;14096:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14037:128::o:0;4895:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;8013:141::-;8059:7;8086:60;8126:19;;8086:35;8094:15;8111:9;;8086:7;:35::i;:::-;:39;;:60;;;;:::i;:::-;8079:67;;8013:141;:::o;4791:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;7883:122::-;7938:4;7962:35;7970:7;7979:17;7962:7;:35::i;:::-;7955:42;;7883:122;;;:::o;6069:59::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5160:30::-;;;;;;;;;;;;;:::o;7407:105::-;7473:7;7491:9;:18;7501:7;7491:18;;;;;;;;;;;;;;;;7484:25;;7407:105;;;:::o;2429:131::-;2273:19;2281:10;2273:7;:19::i;:::-;2265:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2502:1:::1;2486:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2520:32;2549:1;2520:32;;;;;;:::i;:::-;;;;;;;;2429:131::o:0;5733:24::-;;;;:::o;7323:78::-;7375:7;7393:5;;;;;;;;;;;7386:12;;7323:78;:::o;4841:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;7147:84::-;7197:13;7221:7;;;;;;;;;;;;;;;;;7214:14;;7147:84;:::o;14173:182::-;2273:19;2281:10;2273:7;:19::i;:::-;2265:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14293:10:::1;14287:26;;;14314:3;14319:7;14287:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14279:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14173:182:::0;;;:::o;14639:209::-;2273:19;2281:10;2273:7;:19::i;:::-;2265:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14735:9:::1;14730:105;14754:10;;:17;;14750:1;:21;14730:105;;;14817:6;14794:5;:20;14800:10;;14811:1;14800:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14794:20;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14773:3;;;;;:::i;:::-;;;;14730:105;;;;14639:209:::0;;;:::o;15775:207::-;15825:21;15848:26;15876:22;15917:19;;15937:24;;15962:11;;15910:64;;;;;;15775:207;;;:::o;4676:19::-;;;;;;;;;;;;;:::o;9060:156::-;9140:4;9164:44;9178:10;9190:9;9201:6;9164:13;:44::i;:::-;9157:51;;9060:156;;;;:::o;5262:61::-;;;;:::o;4939:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15153:163::-;2273:19;2281:10;2273:7;:19::i;:::-;2265:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15261:12:::1;15247:11;;:26;;;;;;;;;;;;;;;;;;15297:11;15284:10;;:24;;;;;;;;;;;;;;;;;;15153:163:::0;;:::o;14512:119::-;2273:19;2281:10;2273:7;:19::i;:::-;2265:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14617:6:::1;14597:5;:17;14603:10;14597:17;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;14512:119:::0;;:::o;5609:31::-;;;;:::o;7518:133::-;7602:7;7620:11;:19;7632:6;7620:19;;;;;;;;;;;;;;;:28;7640:7;7620:28;;;;;;;;;;;;;;;;7613:35;;7518:133;;;;:::o;15328:140::-;15381:18;15401:17;15437:11;;;;;;;;;;;15449:10;;;;;;;;;;;15430:30;;;;15328:140;;:::o;4556:80::-;;;;;;;;;;;;;:::o;15476:291::-;2273:19;2281:10;2273:7;:19::i;:::-;2265:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15639:20:::1;15617:19;:42;;;;15697:25;15670:24;:52;;;;15747:12;15733:11;:26;;;;15476:291:::0;;;:::o;14363:141::-;2273:19;2281:10;2273:7;:19::i;:::-;2265:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14492:4:::1;14474:13;14459:12;;:28;;;;:::i;:::-;14458:38;;;;:::i;:::-;14440:15;:56;;;;14363:141:::0;:::o;4645:24::-;;;;;;;;;;;;;:::o;409:190::-;495:7;528:1;523;:6;;531:12;515:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;555:9;571:1;567;:5;;;;:::i;:::-;555:17;;590:1;583:8;;;409:190;;;;;:::o;9602:1487::-;9732:4;9696:6;9704:9;9715:6;5852:15;:23;5868:6;5852:23;;;;;;;;;;;;;;;;;;;;;;;;;5851:24;:45;;;;;5892:4;;;;;;;;;;;5879:17;;:9;:17;;;5851:45;5848:196;;;5963:24;5980:6;5963:16;:24::i;:::-;5953:6;5921:4;:12;5926:6;5921:12;;;;;;;;;;;;;;;:29;5934:15;:13;:15::i;:::-;5921:29;;;;;;;;;;;;:38;;;;:::i;:::-;:66;;5913:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;5848:196;9758:5:::1;:13;9764:6;9758:13;;;;;;;;;;;;;;;;;;;;;;;;;9757:14;9749:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9803:6;;;;;;;;;;;9800:63;;;9819:41;9834:6;9842:9;9853:6;9819:14;:41::i;:::-;9812:48;;;;9800:63;9891:4;;;;;;;;;;;9878:17;;:9;:17;;;;:35;;;;;9909:4;;;;;;;;;;;9899:14;;:6;:14;;;;9878:35;:56;;;;;9930:4;;;;;;;;;;;9917:17;;:9;:17;;;;9878:56;:70;;;;;9938:10;;;;;;;;;;;9878:70;9875:231;;;9972:11;:22;9984:9;9972:22;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;9998:11;:19;10010:6;9998:19;;;;;;;;;;;;;;;;;;;;;;;;;9972:45;:75;;;;10021:15;:26;10037:9;10021:26;;;;;;;;;;;;;;;;;;;;;;;;;9972:75;:102;;;;10051:15;:23;10067:6;10051:23;;;;;;;;;;;;;;;;;;;;;;;;;9972:102;9964:130;;;;;;;;;;;;:::i;:::-;;;;;;;;;9875:231;10135:4;;;;;;;;;;;10122:17;;:9;:17;;;;:38;;;;;10156:4;;;;;;;;;;;10143:17;;:9;:17;;;;10122:38;10118:199;;;10185:15;:26;10201:9;10185:26;;;;;;;;;;;;;;;;;;;;;;;;;:78;;;;10248:15;;10238:6;10215:9;:20;10225:9;10215:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:48;;10185:78;10177:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;10118:199;10334:15;:26;10350:9;10334:26;;;;;;;;;;;;;;;;;;;;;;;;;10333:27;:45;;;;;10374:4;;;;;;;;;;;10364:14;;:6;:14;;;10333:45;10330:124;;;10427:15;10395:9;:20;10405:9;10395:20;;;;;;;;;;;;;;;:29;;:47;;;;10330:124;10470:15;:23;10486:6;10470:23;;;;;;;;;;;;;;;;;;;;;;;;;10469:24;:45;;;;;10510:4;;;;;;;;;;;10497:17;;:9;:17;;;10469:45;10466:214;;;10565:15;10531:9;:17;10541:6;10531:17;;;;;;;;;;;;;;;:31;;:49;;;;10627:41;10661:6;10627:4;:12;10632:6;10627:12;;;;;;;;;;;;;;;:29;10640:15;:13;:15::i;:::-;10627:29;;;;;;;;;;;;:33;;:41;;;;:::i;:::-;10595:4;:12;10600:6;10595:12;;;;;;;;;;;;;;;:29;10608:15;:13;:15::i;:::-;10595:29;;;;;;;;;;;:73;;;;10466:214;10703:16;:14;:16::i;:::-;10700:35;;;10722:10;:8;:10::i;:::-;10700:35;10768:53;10790:6;10768:53;;;;;;;;;;;;;;;;::::0;:9:::1;:17;10778:6;10768:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10748:9;:17;10758:6;10748:17;;;;;;;;;;;;;;;:73;;;;10834:22;10859:21;10873:6;10859:13;:21::i;:::-;:56;;10909:6;10859:56;;;10883:23;10891:6;10899;10883:7;:23::i;:::-;10859:56;10834:81;;10949:40;10974:14;10949:9;:20;10959:9;10949:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;10926:9;:20;10936:9;10926:20;;;;;;;;;;;;;;;:63;;;;11024:9;11007:43;;11016:6;11007:43;;;11035:14;11007:43;;;;;;:::i;:::-;;;;;;;;11068:4;11061:11;;;6054:1;9602:1487:::0;;;;;;;;:::o;8303:479::-;8378:7;8398:15;8464:1;8429:9;:17;8439:6;8429:17;;;;;;;;;;;;;;;:31;;;:36;8426:292;;;8495:80;8570:4;8545:19;;8515:9;:17;8525:6;8515:17;;;;;;;;;;;;;;;:26;;;8497:15;:44;;;;:::i;:::-;8496:68;;;;:::i;:::-;8495:74;;:80;;;;:::i;:::-;8482:93;;8426:292;;;8621:85;8701:4;8676:19;;8641:9;:17;8651:6;8641:17;;;;;;;;;;;;;;;:31;;;8623:15;:49;;;;:::i;:::-;8622:73;;;;:::i;:::-;8621:79;;:85;;;;:::i;:::-;8608:98;;8426:292;8750:4;8737:10;:17;:37;;8764:10;8737:37;;;8757:4;8737:37;8730:44;;;8303:479;;;:::o;857:132::-;915:7;942:39;946:1;949;942:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;935:46;;857:132;;;;:::o;605:246::-;663:7;692:1;687;:6;683:47;;;717:1;710:8;;;;683:47;740:9;756:1;752;:5;;;;:::i;:::-;740:17;;785:1;780;776;:5;;;;:::i;:::-;:10;768:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;842:1;835:8;;;605:246;;;;;:::o;15990:176::-;16044:4;16069:1;16065;:5;16061:94;;;16097:1;16093;:5;;;;:::i;:::-;16086:12;;;;16061:94;16138:1;16131:8;;15990:176;;;;;:::o;11101:330::-;11194:4;11231:53;11253:6;11231:53;;;;;;;;;;;;;;;;;:9;:17;11241:6;11231:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11211:9;:17;11221:6;11211:17;;;;;;;;;;;;;;;:73;;;;11318:32;11343:6;11318:9;:20;11328:9;11318:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11295:9;:20;11305:9;11295:20;;;;;;;;;;;;;;;:55;;;;11383:9;11366:35;;11375:6;11366:35;;;11394:6;11366:35;;;;;;:::i;:::-;;;;;;;;11419:4;11412:11;;11101:330;;;;;:::o;82:179::-;140:7;160:9;176:1;172;:5;;;;:::i;:::-;160:17;;201:1;196;:6;;188:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;252:1;245:8;;;82:179;;;;:::o;11898:197::-;11947:4;11985;;;;;;;;;;;11971:18;;:10;:18;;;;:38;;;;;12003:6;;;;;;;;;;;12002:7;11971:38;:62;;;;;12022:11;;;;;;;;;;;11971:62;:116;;;;;12074:13;;12046:9;:24;12064:4;12046:24;;;;;;;;;;;;;;;;:41;;11971:116;11964:123;;11898:197;:::o;12103:1548::-;5228:4;5219:6;;:13;;;;;;;;;;;;;;;;;;12152:28:::1;12183:13;;12152:44;;12207:23;12233:59;12290:1;12233:52;12276:8;;12233:38;12258:12;;12233:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;12207:85;;12303:20;12326:41;12351:15;12326:20;:24;;:41;;;;:::i;:::-;12303:64;;12380:21;12418:1;12404:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12380:40;;12449:4;12431;12436:1;12431:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12475:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12465:4;12470:1;12465:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12501:21;12525;12501:45;;12559:6;;;;;;;;;;;:57;;;12631:12;12658:1;12674:4;12701;12721:15;12559:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12758:17;12778:40;12804:13;12778:21;:25;;:40;;;;:::i;:::-;12758:60;;12829:19;12851:33;12864:19;12881:1;12864:12;;:16;;:19;;;;:::i;:::-;12851:8;;:12;;:33;;;;:::i;:::-;12829:55;;12895:26;12924:51;12973:1;12924:44;12956:11;12924:27;12938:12;;12924:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;12895:80;;12986:26;13015:44;13047:11;13015:27;13029:12;;13015:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;12986:73;;13073:21;13131:20;;;;;;;;;;;13123:34;;13165:18;13190:5;13123:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13072:128;;;13219:16;13211:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;13304:1;13286:15;:19;13283:361;;;13321:6;;;;;;;;;;;:22;;;13351:18;13397:4;13421:15;13455:1;13475::::0;13495:20:::1;;;;;;;;;;;13534:15;13321:243;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13584:48;13596:18;13616:15;13584:48;;;;;;;:::i;:::-;;;;;;;;13283:361;12141:1510;;;;;;;;;;5246:5:::0;5237:6;;:14;;;;;;;;;;;;;;;;;;12103:1548::o;11439:114::-;11501:4;11526:11;:19;11538:6;11526:19;;;;;;;;;;;;;;;;;;;;;;;;;11525:20;11518:27;;11439:114;;;:::o;11561:329::-;11628:7;11648:17;11668:40;11693:14;;11668:20;11679:8;;11668:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;11648:60;;11746:39;11775:9;11746;:24;11764:4;11746:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11719:9;:24;11737:4;11719:24;;;;;;;;;;;;;;;:66;;;;11826:4;11801:42;;11810:6;11801:42;;;11833:9;11801:42;;;;;;:::i;:::-;;;;;;;;11861:21;11872:9;11861:6;:10;;:21;;;;:::i;:::-;11854:28;;;11561:329;;;;:::o;995:189::-;1081:7;1113:1;1109;:5;1116:12;1101:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1140:9;1156:1;1152;:5;;;;:::i;:::-;1140:17;;1175:1;1168:8;;;995:189;;;;;:::o;267:136::-;325:7;352:43;356:1;359;352:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;345:50;;267:136;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:2;;459:79;;:::i;:::-;418:2;572:6;559:20;549:30;;602:18;594:6;591:30;588:2;;;624:79;;:::i;:::-;588:2;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:2;;;799:79;;:::i;:::-;752:2;408:478;;;;;:::o;892:133::-;935:5;973:6;960:20;951:29;;989:30;1013:5;989:30;:::i;:::-;941:84;;;;:::o;1031:137::-;1085:5;1116:6;1110:13;1101:22;;1132:30;1156:5;1132:30;:::i;:::-;1091:77;;;;:::o;1174:139::-;1220:5;1258:6;1245:20;1236:29;;1274:33;1301:5;1274:33;:::i;:::-;1226:87;;;;:::o;1319:143::-;1376:5;1407:6;1401:13;1392:22;;1423:33;1450:5;1423:33;:::i;:::-;1382:80;;;;:::o;1468:329::-;1527:6;1576:2;1564:9;1555:7;1551:23;1547:32;1544:2;;;1582:79;;:::i;:::-;1544:2;1702:1;1727:53;1772:7;1763:6;1752:9;1748:22;1727:53;:::i;:::-;1717:63;;1673:117;1534:263;;;;:::o;1803:351::-;1873:6;1922:2;1910:9;1901:7;1897:23;1893:32;1890:2;;;1928:79;;:::i;:::-;1890:2;2048:1;2073:64;2129:7;2120:6;2109:9;2105:22;2073:64;:::i;:::-;2063:74;;2019:128;1880:274;;;;:::o;2160:474::-;2228:6;2236;2285:2;2273:9;2264:7;2260:23;2256:32;2253:2;;;2291:79;;:::i;:::-;2253:2;2411:1;2436:53;2481:7;2472:6;2461:9;2457:22;2436:53;:::i;:::-;2426:63;;2382:117;2538:2;2564:53;2609:7;2600:6;2589:9;2585:22;2564:53;:::i;:::-;2554:63;;2509:118;2243:391;;;;;:::o;2640:619::-;2717:6;2725;2733;2782:2;2770:9;2761:7;2757:23;2753:32;2750:2;;;2788:79;;:::i;:::-;2750:2;2908:1;2933:53;2978:7;2969:6;2958:9;2954:22;2933:53;:::i;:::-;2923:63;;2879:117;3035:2;3061:53;3106:7;3097:6;3086:9;3082:22;3061:53;:::i;:::-;3051:63;;3006:118;3163:2;3189:53;3234:7;3225:6;3214:9;3210:22;3189:53;:::i;:::-;3179:63;;3134:118;2740:519;;;;;:::o;3265:468::-;3330:6;3338;3387:2;3375:9;3366:7;3362:23;3358:32;3355:2;;;3393:79;;:::i;:::-;3355:2;3513:1;3538:53;3583:7;3574:6;3563:9;3559:22;3538:53;:::i;:::-;3528:63;;3484:117;3640:2;3666:50;3708:7;3699:6;3688:9;3684:22;3666:50;:::i;:::-;3656:60;;3611:115;3345:388;;;;;:::o;3739:474::-;3807:6;3815;3864:2;3852:9;3843:7;3839:23;3835:32;3832:2;;;3870:79;;:::i;:::-;3832:2;3990:1;4015:53;4060:7;4051:6;4040:9;4036:22;4015:53;:::i;:::-;4005:63;;3961:117;4117:2;4143:53;4188:7;4179:6;4168:9;4164:22;4143:53;:::i;:::-;4133:63;;4088:118;3822:391;;;;;:::o;4219:698::-;4311:6;4319;4327;4376:2;4364:9;4355:7;4351:23;4347:32;4344:2;;;4382:79;;:::i;:::-;4344:2;4530:1;4519:9;4515:17;4502:31;4560:18;4552:6;4549:30;4546:2;;;4582:79;;:::i;:::-;4546:2;4695:80;4767:7;4758:6;4747:9;4743:22;4695:80;:::i;:::-;4677:98;;;;4473:312;4824:2;4850:50;4892:7;4883:6;4872:9;4868:22;4850:50;:::i;:::-;4840:60;;4795:115;4334:583;;;;;:::o;4923:345::-;4990:6;5039:2;5027:9;5018:7;5014:23;5010:32;5007:2;;;5045:79;;:::i;:::-;5007:2;5165:1;5190:61;5243:7;5234:6;5223:9;5219:22;5190:61;:::i;:::-;5180:71;;5136:125;4997:271;;;;:::o;5274:462::-;5336:6;5344;5393:2;5381:9;5372:7;5368:23;5364:32;5361:2;;;5399:79;;:::i;:::-;5361:2;5519:1;5544:50;5586:7;5577:6;5566:9;5562:22;5544:50;:::i;:::-;5534:60;;5490:114;5643:2;5669:50;5711:7;5702:6;5691:9;5687:22;5669:50;:::i;:::-;5659:60;;5614:115;5351:385;;;;;:::o;5742:329::-;5801:6;5850:2;5838:9;5829:7;5825:23;5821:32;5818:2;;;5856:79;;:::i;:::-;5818:2;5976:1;6001:53;6046:7;6037:6;6026:9;6022:22;6001:53;:::i;:::-;5991:63;;5947:117;5808:263;;;;:::o;6077:474::-;6145:6;6153;6202:2;6190:9;6181:7;6177:23;6173:32;6170:2;;;6208:79;;:::i;:::-;6170:2;6328:1;6353:53;6398:7;6389:6;6378:9;6374:22;6353:53;:::i;:::-;6343:63;;6299:117;6455:2;6481:53;6526:7;6517:6;6506:9;6502:22;6481:53;:::i;:::-;6471:63;;6426:118;6160:391;;;;;:::o;6557:619::-;6634:6;6642;6650;6699:2;6687:9;6678:7;6674:23;6670:32;6667:2;;;6705:79;;:::i;:::-;6667:2;6825:1;6850:53;6895:7;6886:6;6875:9;6871:22;6850:53;:::i;:::-;6840:63;;6796:117;6952:2;6978:53;7023:7;7014:6;7003:9;6999:22;6978:53;:::i;:::-;6968:63;;6923:118;7080:2;7106:53;7151:7;7142:6;7131:9;7127:22;7106:53;:::i;:::-;7096:63;;7051:118;6657:519;;;;;:::o;7182:663::-;7270:6;7278;7286;7335:2;7323:9;7314:7;7310:23;7306:32;7303:2;;;7341:79;;:::i;:::-;7303:2;7461:1;7486:64;7542:7;7533:6;7522:9;7518:22;7486:64;:::i;:::-;7476:74;;7432:128;7599:2;7625:64;7681:7;7672:6;7661:9;7657:22;7625:64;:::i;:::-;7615:74;;7570:129;7738:2;7764:64;7820:7;7811:6;7800:9;7796:22;7764:64;:::i;:::-;7754:74;;7709:129;7293:552;;;;;:::o;7851:179::-;7920:10;7941:46;7983:3;7975:6;7941:46;:::i;:::-;8019:4;8014:3;8010:14;7996:28;;7931:99;;;;:::o;8036:108::-;8113:24;8131:5;8113:24;:::i;:::-;8108:3;8101:37;8091:53;;:::o;8150:118::-;8237:24;8255:5;8237:24;:::i;:::-;8232:3;8225:37;8215:53;;:::o;8304:732::-;8423:3;8452:54;8500:5;8452:54;:::i;:::-;8522:86;8601:6;8596:3;8522:86;:::i;:::-;8515:93;;8632:56;8682:5;8632:56;:::i;:::-;8711:7;8742:1;8727:284;8752:6;8749:1;8746:13;8727:284;;;8828:6;8822:13;8855:63;8914:3;8899:13;8855:63;:::i;:::-;8848:70;;8941:60;8994:6;8941:60;:::i;:::-;8931:70;;8787:224;8774:1;8771;8767:9;8762:14;;8727:284;;;8731:14;9027:3;9020:10;;8428:608;;;;;;;:::o;9042:109::-;9123:21;9138:5;9123:21;:::i;:::-;9118:3;9111:34;9101:50;;:::o;9157:167::-;9262:55;9311:5;9262:55;:::i;:::-;9257:3;9250:68;9240:84;;:::o;9330:147::-;9425:45;9464:5;9425:45;:::i;:::-;9420:3;9413:58;9403:74;;:::o;9483:364::-;9571:3;9599:39;9632:5;9599:39;:::i;:::-;9654:71;9718:6;9713:3;9654:71;:::i;:::-;9647:78;;9734:52;9779:6;9774:3;9767:4;9760:5;9756:16;9734:52;:::i;:::-;9811:29;9833:6;9811:29;:::i;:::-;9806:3;9802:39;9795:46;;9575:272;;;;;:::o;9853:366::-;9995:3;10016:67;10080:2;10075:3;10016:67;:::i;:::-;10009:74;;10092:93;10181:3;10092:93;:::i;:::-;10210:2;10205:3;10201:12;10194:19;;9999:220;;;:::o;10225:366::-;10367:3;10388:67;10452:2;10447:3;10388:67;:::i;:::-;10381:74;;10464:93;10553:3;10464:93;:::i;:::-;10582:2;10577:3;10573:12;10566:19;;10371:220;;;:::o;10597:366::-;10739:3;10760:67;10824:2;10819:3;10760:67;:::i;:::-;10753:74;;10836:93;10925:3;10836:93;:::i;:::-;10954:2;10949:3;10945:12;10938:19;;10743:220;;;:::o;10969:366::-;11111:3;11132:67;11196:2;11191:3;11132:67;:::i;:::-;11125:74;;11208:93;11297:3;11208:93;:::i;:::-;11326:2;11321:3;11317:12;11310:19;;11115:220;;;:::o;11341:366::-;11483:3;11504:67;11568:2;11563:3;11504:67;:::i;:::-;11497:74;;11580:93;11669:3;11580:93;:::i;:::-;11698:2;11693:3;11689:12;11682:19;;11487:220;;;:::o;11713:365::-;11855:3;11876:66;11940:1;11935:3;11876:66;:::i;:::-;11869:73;;11951:93;12040:3;11951:93;:::i;:::-;12069:2;12064:3;12060:12;12053:19;;11859:219;;;:::o;12084:398::-;12243:3;12264:83;12345:1;12340:3;12264:83;:::i;:::-;12257:90;;12356:93;12445:3;12356:93;:::i;:::-;12474:1;12469:3;12465:11;12458:18;;12247:235;;;:::o;12488:366::-;12630:3;12651:67;12715:2;12710:3;12651:67;:::i;:::-;12644:74;;12727:93;12816:3;12727:93;:::i;:::-;12845:2;12840:3;12836:12;12829:19;;12634:220;;;:::o;12860:366::-;13002:3;13023:67;13087:2;13082:3;13023:67;:::i;:::-;13016:74;;13099:93;13188:3;13099:93;:::i;:::-;13217:2;13212:3;13208:12;13201:19;;13006:220;;;:::o;13232:366::-;13374:3;13395:67;13459:2;13454:3;13395:67;:::i;:::-;13388:74;;13471:93;13560:3;13471:93;:::i;:::-;13589:2;13584:3;13580:12;13573:19;;13378:220;;;:::o;13604:366::-;13746:3;13767:67;13831:2;13826:3;13767:67;:::i;:::-;13760:74;;13843:93;13932:3;13843:93;:::i;:::-;13961:2;13956:3;13952:12;13945:19;;13750:220;;;:::o;13976:118::-;14063:24;14081:5;14063:24;:::i;:::-;14058:3;14051:37;14041:53;;:::o;14100:112::-;14183:22;14199:5;14183:22;:::i;:::-;14178:3;14171:35;14161:51;;:::o;14218:379::-;14402:3;14424:147;14567:3;14424:147;:::i;:::-;14417:154;;14588:3;14581:10;;14406:191;;;:::o;14603:222::-;14696:4;14734:2;14723:9;14719:18;14711:26;;14747:71;14815:1;14804:9;14800:17;14791:6;14747:71;:::i;:::-;14701:124;;;;:::o;14831:332::-;14952:4;14990:2;14979:9;14975:18;14967:26;;15003:71;15071:1;15060:9;15056:17;15047:6;15003:71;:::i;:::-;15084:72;15152:2;15141:9;15137:18;15128:6;15084:72;:::i;:::-;14957:206;;;;;:::o;15169:807::-;15418:4;15456:3;15445:9;15441:19;15433:27;;15470:71;15538:1;15527:9;15523:17;15514:6;15470:71;:::i;:::-;15551:72;15619:2;15608:9;15604:18;15595:6;15551:72;:::i;:::-;15633:80;15709:2;15698:9;15694:18;15685:6;15633:80;:::i;:::-;15723;15799:2;15788:9;15784:18;15775:6;15723:80;:::i;:::-;15813:73;15881:3;15870:9;15866:19;15857:6;15813:73;:::i;:::-;15896;15964:3;15953:9;15949:19;15940:6;15896:73;:::i;:::-;15423:553;;;;;;;;;:::o;15982:210::-;16069:4;16107:2;16096:9;16092:18;16084:26;;16120:65;16182:1;16171:9;16167:17;16158:6;16120:65;:::i;:::-;16074:118;;;;:::o;16198:308::-;16307:4;16345:2;16334:9;16330:18;16322:26;;16358:65;16420:1;16409:9;16405:17;16396:6;16358:65;:::i;:::-;16433:66;16495:2;16484:9;16480:18;16471:6;16433:66;:::i;:::-;16312:194;;;;;:::o;16512:258::-;16623:4;16661:2;16650:9;16646:18;16638:26;;16674:89;16760:1;16749:9;16745:17;16736:6;16674:89;:::i;:::-;16628:142;;;;:::o;16776:313::-;16889:4;16927:2;16916:9;16912:18;16904:26;;16976:9;16970:4;16966:20;16962:1;16951:9;16947:17;16940:47;17004:78;17077:4;17068:6;17004:78;:::i;:::-;16996:86;;16894:195;;;;:::o;17095:419::-;17261:4;17299:2;17288:9;17284:18;17276:26;;17348:9;17342:4;17338:20;17334:1;17323:9;17319:17;17312:47;17376:131;17502:4;17376:131;:::i;:::-;17368:139;;17266:248;;;:::o;17520:419::-;17686:4;17724:2;17713:9;17709:18;17701:26;;17773:9;17767:4;17763:20;17759:1;17748:9;17744:17;17737:47;17801:131;17927:4;17801:131;:::i;:::-;17793:139;;17691:248;;;:::o;17945:419::-;18111:4;18149:2;18138:9;18134:18;18126:26;;18198:9;18192:4;18188:20;18184:1;18173:9;18169:17;18162:47;18226:131;18352:4;18226:131;:::i;:::-;18218:139;;18116:248;;;:::o;18370:419::-;18536:4;18574:2;18563:9;18559:18;18551:26;;18623:9;18617:4;18613:20;18609:1;18598:9;18594:17;18587:47;18651:131;18777:4;18651:131;:::i;:::-;18643:139;;18541:248;;;:::o;18795:419::-;18961:4;18999:2;18988:9;18984:18;18976:26;;19048:9;19042:4;19038:20;19034:1;19023:9;19019:17;19012:47;19076:131;19202:4;19076:131;:::i;:::-;19068:139;;18966:248;;;:::o;19220:419::-;19386:4;19424:2;19413:9;19409:18;19401:26;;19473:9;19467:4;19463:20;19459:1;19448:9;19444:17;19437:47;19501:131;19627:4;19501:131;:::i;:::-;19493:139;;19391:248;;;:::o;19645:419::-;19811:4;19849:2;19838:9;19834:18;19826:26;;19898:9;19892:4;19888:20;19884:1;19873:9;19869:17;19862:47;19926:131;20052:4;19926:131;:::i;:::-;19918:139;;19816:248;;;:::o;20070:419::-;20236:4;20274:2;20263:9;20259:18;20251:26;;20323:9;20317:4;20313:20;20309:1;20298:9;20294:17;20287:47;20351:131;20477:4;20351:131;:::i;:::-;20343:139;;20241:248;;;:::o;20495:419::-;20661:4;20699:2;20688:9;20684:18;20676:26;;20748:9;20742:4;20738:20;20734:1;20723:9;20719:17;20712:47;20776:131;20902:4;20776:131;:::i;:::-;20768:139;;20666:248;;;:::o;20920:419::-;21086:4;21124:2;21113:9;21109:18;21101:26;;21173:9;21167:4;21163:20;21159:1;21148:9;21144:17;21137:47;21201:131;21327:4;21201:131;:::i;:::-;21193:139;;21091:248;;;:::o;21345:222::-;21438:4;21476:2;21465:9;21461:18;21453:26;;21489:71;21557:1;21546:9;21542:17;21533:6;21489:71;:::i;:::-;21443:124;;;;:::o;21573:831::-;21836:4;21874:3;21863:9;21859:19;21851:27;;21888:71;21956:1;21945:9;21941:17;21932:6;21888:71;:::i;:::-;21969:80;22045:2;22034:9;22030:18;22021:6;21969:80;:::i;:::-;22096:9;22090:4;22086:20;22081:2;22070:9;22066:18;22059:48;22124:108;22227:4;22218:6;22124:108;:::i;:::-;22116:116;;22242:72;22310:2;22299:9;22295:18;22286:6;22242:72;:::i;:::-;22324:73;22392:3;22381:9;22377:19;22368:6;22324:73;:::i;:::-;21841:563;;;;;;;;:::o;22410:332::-;22531:4;22569:2;22558:9;22554:18;22546:26;;22582:71;22650:1;22639:9;22635:17;22626:6;22582:71;:::i;:::-;22663:72;22731:2;22720:9;22716:18;22707:6;22663:72;:::i;:::-;22536:206;;;;;:::o;22748:442::-;22897:4;22935:2;22924:9;22920:18;22912:26;;22948:71;23016:1;23005:9;23001:17;22992:6;22948:71;:::i;:::-;23029:72;23097:2;23086:9;23082:18;23073:6;23029:72;:::i;:::-;23111;23179:2;23168:9;23164:18;23155:6;23111:72;:::i;:::-;22902:288;;;;;;:::o;23196:214::-;23285:4;23323:2;23312:9;23308:18;23300:26;;23336:67;23400:1;23389:9;23385:17;23376:6;23336:67;:::i;:::-;23290:120;;;;:::o;23497:132::-;23564:4;23587:3;23579:11;;23617:4;23612:3;23608:14;23600:22;;23569:60;;;:::o;23635:114::-;23702:6;23736:5;23730:12;23720:22;;23709:40;;;:::o;23755:99::-;23807:6;23841:5;23835:12;23825:22;;23814:40;;;:::o;23860:113::-;23930:4;23962;23957:3;23953:14;23945:22;;23935:38;;;:::o;23979:184::-;24078:11;24112:6;24107:3;24100:19;24152:4;24147:3;24143:14;24128:29;;24090:73;;;;:::o;24169:147::-;24270:11;24307:3;24292:18;;24282:34;;;;:::o;24322:169::-;24406:11;24440:6;24435:3;24428:19;24480:4;24475:3;24471:14;24456:29;;24418:73;;;;:::o;24497:305::-;24537:3;24556:20;24574:1;24556:20;:::i;:::-;24551:25;;24590:20;24608:1;24590:20;:::i;:::-;24585:25;;24744:1;24676:66;24672:74;24669:1;24666:81;24663:2;;;24750:18;;:::i;:::-;24663:2;24794:1;24791;24787:9;24780:16;;24541:261;;;;:::o;24808:185::-;24848:1;24865:20;24883:1;24865:20;:::i;:::-;24860:25;;24899:20;24917:1;24899:20;:::i;:::-;24894:25;;24938:1;24928:2;;24943:18;;:::i;:::-;24928:2;24985:1;24982;24978:9;24973:14;;24850:143;;;;:::o;24999:348::-;25039:7;25062:20;25080:1;25062:20;:::i;:::-;25057:25;;25096:20;25114:1;25096:20;:::i;:::-;25091:25;;25284:1;25216:66;25212:74;25209:1;25206:81;25201:1;25194:9;25187:17;25183:105;25180:2;;;25291:18;;:::i;:::-;25180:2;25339:1;25336;25332:9;25321:20;;25047:300;;;;:::o;25353:191::-;25393:4;25413:20;25431:1;25413:20;:::i;:::-;25408:25;;25447:20;25465:1;25447:20;:::i;:::-;25442:25;;25486:1;25483;25480:8;25477:2;;;25491:18;;:::i;:::-;25477:2;25536:1;25533;25529:9;25521:17;;25398:146;;;;:::o;25550:96::-;25587:7;25616:24;25634:5;25616:24;:::i;:::-;25605:35;;25595:51;;;:::o;25652:90::-;25686:7;25729:5;25722:13;25715:21;25704:32;;25694:48;;;:::o;25748:126::-;25785:7;25825:42;25818:5;25814:54;25803:65;;25793:81;;;:::o;25880:77::-;25917:7;25946:5;25935:16;;25925:32;;;:::o;25963:86::-;25998:7;26038:4;26031:5;26027:16;26016:27;;26006:43;;;:::o;26055:162::-;26123:9;26156:55;26205:5;26156:55;:::i;:::-;26143:68;;26133:84;;;:::o;26223:131::-;26291:9;26324:24;26342:5;26324:24;:::i;:::-;26311:37;;26301:53;;;:::o;26360:121::-;26418:9;26451:24;26469:5;26451:24;:::i;:::-;26438:37;;26428:53;;;:::o;26487:307::-;26555:1;26565:113;26579:6;26576:1;26573:13;26565:113;;;26664:1;26659:3;26655:11;26649:18;26645:1;26640:3;26636:11;26629:39;26601:2;26598:1;26594:10;26589:15;;26565:113;;;26696:6;26693:1;26690:13;26687:2;;;26776:1;26767:6;26762:3;26758:16;26751:27;26687:2;26536:258;;;;:::o;26800:233::-;26839:3;26862:24;26880:5;26862:24;:::i;:::-;26853:33;;26908:66;26901:5;26898:77;26895:2;;;26978:18;;:::i;:::-;26895:2;27025:1;27018:5;27014:13;27007:20;;26843:190;;;:::o;27039:180::-;27087:77;27084:1;27077:88;27184:4;27181:1;27174:15;27208:4;27205:1;27198:15;27225:180;27273:77;27270:1;27263:88;27370:4;27367:1;27360:15;27394:4;27391:1;27384:15;27411:180;27459:77;27456:1;27449:88;27556:4;27553:1;27546:15;27580:4;27577:1;27570:15;27597:180;27645:77;27642:1;27635:88;27742:4;27739:1;27732:15;27766:4;27763:1;27756:15;27783:117;27892:1;27889;27882:12;27906:117;28015:1;28012;28005:12;28029:117;28138:1;28135;28128:12;28152:117;28261:1;28258;28251:12;28275:117;28384:1;28381;28374:12;28398:102;28439:6;28490:2;28486:7;28481:2;28474:5;28470:14;28466:28;28456:38;;28446:54;;;:::o;28506:224::-;28646:34;28642:1;28634:6;28630:14;28623:58;28715:7;28710:2;28702:6;28698:15;28691:32;28612:118;:::o;28736:165::-;28876:17;28872:1;28864:6;28860:14;28853:41;28842:59;:::o;28907:177::-;29047:29;29043:1;29035:6;29031:14;29024:53;29013:71;:::o;29090:180::-;29230:32;29226:1;29218:6;29214:14;29207:56;29196:74;:::o;29276:220::-;29416:34;29412:1;29404:6;29400:14;29393:58;29485:3;29480:2;29472:6;29468:15;29461:28;29382:114;:::o;29502:156::-;29642:8;29638:1;29630:6;29626:14;29619:32;29608:50;:::o;29664:114::-;29770:8;:::o;29784:165::-;29924:17;29920:1;29912:6;29908:14;29901:41;29890:59;:::o;29955:161::-;30095:13;30091:1;30083:6;30079:14;30072:37;30061:55;:::o;30122:179::-;30262:31;30258:1;30250:6;30246:14;30239:55;30228:73;:::o;30307:227::-;30447:34;30443:1;30435:6;30431:14;30424:58;30516:10;30511:2;30503:6;30499:15;30492:35;30413:121;:::o;30540:122::-;30613:24;30631:5;30613:24;:::i;:::-;30606:5;30603:35;30593:2;;30652:1;30649;30642:12;30593:2;30583:79;:::o;30668:116::-;30738:21;30753:5;30738:21;:::i;:::-;30731:5;30728:32;30718:2;;30774:1;30771;30764:12;30718:2;30708:76;:::o;30790:122::-;30863:24;30881:5;30863:24;:::i;:::-;30856:5;30853:35;30843:2;;30902:1;30899;30892:12;30843:2;30833:79;:::o
Swarm Source
ipfs://d1961cfebf01436f4202419182a1ae877f0b863e1250acd0565d178bab29bbf5
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.