ERC-20
Overview
Max Total Supply
21,000,000 SlenderX
Holders
109
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000001 SlenderXValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SLENDERX
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-26 */ // SPDX-License-Identifier: MIT /** █▀ █░░ █▀▀ █▄░█ █▀▄ █▀▀ █▀█ ▀▄▀ ▄█ █▄▄ ██▄ █░▀█ █▄▀ ██▄ █▀▄ █░█ https://t.me/SlenderXGameEth https://slendergame.vip/play https://slendergame.vip/ https://twitter.com/SlenderXGameETH **/ pragma solidity 0.8.19; interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address __owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed _owner, address indexed spender, uint256 value); } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; function WETH() external pure returns (address); function factory() 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); } abstract contract Auth { address internal _owner; constructor(address creatorOwner) { _owner = creatorOwner; } modifier onlyOwner() { require(msg.sender == _owner, "Only owner can call this"); _; } function owner() public view returns (address) { return _owner; } function transferOwnership(address payable newOwner) external onlyOwner { _owner = newOwner; emit OwnershipTransferred(newOwner); } function renounceOwnership() external onlyOwner { _owner = address(0); emit OwnershipTransferred(address(0)); } event OwnershipTransferred(address _owner); } contract SLENDERX is IERC20, Auth { uint8 private constant _decimals = 9; uint256 private constant _totalSupply = 21_000_000 * (10**_decimals); string private constant _name = "SlenderX"; string private constant _symbol = "SlenderX"; uint8 private IniTax1 = 2; uint8 private IniTax2 = 1; uint8 private launchBlocks1 = 1; uint8 private launchBlocks2 = 1; uint256 private _antiMevBlock = 2; uint8 private _buyTaxes = 1; uint8 private _sellTaxes = 2; uint16 private _taxSharesMarketing = 80; uint16 private _taxSharesDevelopment = 20; uint16 private _taxSharesLP = 0; uint16 private _totalTaxShares = _taxSharesMarketing + _taxSharesDevelopment + _taxSharesLP; address payable private _walletMarketing = payable(0xe708051903d03c009cAC1E2CEED32Cc85f6A74Fa); address payable private _walletDevelopment = payable(0x38dA09142F9E15B073bD385677D2bECFDf9d5B61); uint256 private _launchBlock; uint256 private _maxTxAmount = _totalSupply; uint256 private _maxWalletAmount = _totalSupply; uint256 private _taxSwapMin = _totalSupply * 10 / 100000; uint256 private _taxSwapMax = _totalSupply * 891 / 100000; uint256 private _swapLimit = _taxSwapMin * 70 * 100; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _noFees; mapping (address => bool) private _noLimits; address private _lpOwner; address private constant _swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); IUniswapV2Router02 private _primarySwapRouter = IUniswapV2Router02(_swapRouterAddress); address private _primaryLP; mapping (address => bool) private _isLP; bool private _tradingOpen; bool private _inTaxSwap = false; modifier lockTaxSwap { _inTaxSwap = true; _; _inTaxSwap = false; } event TokensBurned(address indexed burnedByWallet, uint256 tokenAmount); constructor() Auth(msg.sender) { _lpOwner = msg.sender; uint256 airdropAmount = _totalSupply * 5 / 100; _balances[address(this)] = _totalSupply - airdropAmount; emit Transfer(address(0), address(this), _balances[address(this)]); _balances[_owner] = airdropAmount; emit Transfer(address(0), _owner, _balances[_owner]); _noFees[_owner] = true; _noFees[address(this)] = true; _noFees[_swapRouterAddress] = true; _noFees[_walletMarketing] = true; _noFees[_walletDevelopment] = true; _noLimits[_owner] = true; _noLimits[address(this)] = true; _noLimits[_swapRouterAddress] = true; _noLimits[_walletMarketing] = true; _noLimits[_walletDevelopment] = true; } receive() external payable {} function totalSupply() external pure override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function transfer(address recipient, uint256 amount) external override returns (bool) { require(_checkTradingOpen(msg.sender), "Trading not open"); return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { require(_checkTradingOpen(sender), "Trading not open"); if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount; } return _transferFrom(sender, recipient, amount); } function _approveRouter(uint256 _tokenAmount) internal { if ( _allowances[address(this)][_swapRouterAddress] < _tokenAmount ) { _allowances[address(this)][_swapRouterAddress] = type(uint256).max; emit Approval(address(this), _swapRouterAddress, type(uint256).max); } } function addLiquidity() external payable onlyOwner lockTaxSwap { require(_primaryLP == address(0), "LP exists"); require(!_tradingOpen, "trading is open"); require(msg.value > 0 || address(this).balance>0, "No ETH in contract or message"); require(_balances[address(this)]>0, "No tokens in contract"); _primaryLP = IUniswapV2Factory(_primarySwapRouter.factory()).createPair(address(this), _primarySwapRouter.WETH()); _addLiquidity(_balances[address(this)], address(this).balance, false); _balances[_primaryLP] -= _swapLimit; (bool lpAddSuccess,) = _primaryLP.call(abi.encodeWithSignature("sync()")); require(lpAddSuccess, "Failed adding liquidity"); _isLP[_primaryLP] = lpAddSuccess; _openTrading(); } function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei, bool autoburn) internal { address lpTokenRecipient = _lpOwner; if ( autoburn ) { lpTokenRecipient = address(0); } _approveRouter(_tokenAmount); _primarySwapRouter.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, lpTokenRecipient, block.timestamp ); } function _openTrading() internal { _maxTxAmount = _totalSupply * 2 / 100; _maxWalletAmount = _totalSupply * 2 / 100; _tradingOpen = true; _launchBlock = block.number; _antiMevBlock = _antiMevBlock + _launchBlock + launchBlocks1 + launchBlocks2; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { require(sender != address(0), "No transfers from Zero wallet"); if (!_tradingOpen) { require(_noFees[sender] && _noLimits[sender], "Trading not open"); } if ( !_inTaxSwap && _isLP[recipient] ) { _swapTaxAndLiquify(); } if ( block.number < _antiMevBlock && block.number >= _launchBlock && _isLP[sender] ) { require(recipient == tx.origin, "MEV blocked"); } if ( sender != address(this) && recipient != address(this) && sender != _owner ) { require(_checkLimits(sender, recipient, amount), "TX exceeds limits"); } uint256 _taxAmount = _calculateTax(sender, recipient, amount); uint256 _transferAmount = amount - _taxAmount; _balances[sender] = _balances[sender] - amount; _swapLimit += _taxAmount; _balances[recipient] = _balances[recipient] + _transferAmount; emit Transfer(sender, recipient, amount); return true; } function _checkLimits(address sender, address recipient, uint256 transferAmount) internal view returns (bool) { bool limitCheckPassed = true; if ( _tradingOpen && !_noLimits[sender] && !_noLimits[recipient] ) { if ( transferAmount > _maxTxAmount ) { limitCheckPassed = false; } else if ( !_isLP[recipient] && (_balances[recipient] + transferAmount > _maxWalletAmount) ) { limitCheckPassed = false; } } return limitCheckPassed; } function _checkTradingOpen(address sender) private view returns (bool){ bool checkResult = false; if ( _tradingOpen ) { checkResult = true; } else if (_noFees[sender] && _noLimits[sender]) { checkResult = true; } return checkResult; } function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) { uint256 taxAmount; if ( !_tradingOpen || _noFees[sender] || _noFees[recipient] ) { taxAmount = 0; } else if ( _isLP[sender] ) { if ( block.number >= _launchBlock + launchBlocks1 + launchBlocks2 ) { taxAmount = amount * _buyTaxes / 100; } else if ( block.number >= _launchBlock + launchBlocks1 ) { taxAmount = amount * IniTax2 / 100; } else if ( block.number >= _launchBlock) { taxAmount = amount * IniTax1 / 100; } } else if ( _isLP[recipient] ) { taxAmount = amount * _sellTaxes / 100; } return taxAmount; } function exemptFromFees(address wallet) external view returns (bool) { return _noFees[wallet]; } function exemptFromLimits(address wallet) external view returns (bool) { return _noLimits[wallet]; } function setExempt(address wallet, bool noFees, bool noLimits) external onlyOwner { if (noLimits || noFees) { require(!_isLP[wallet], "Cannot exempt LP"); } _noFees[ wallet ] = noFees; _noLimits[ wallet ] = noLimits; } function buyFee() external view returns(uint8) { return _buyTaxes; } function sellFee() external view returns(uint8) { return _sellTaxes; } function feeSplit() external view returns (uint16 marketing, uint16 development, uint16 LP ) { return ( _taxSharesMarketing, _taxSharesDevelopment, _taxSharesLP); } function setFees(uint8 buy, uint8 sell) external onlyOwner { require(buy + sell <= 5, "Roundtrip too high"); _buyTaxes = buy; _sellTaxes = sell; } function setFeeSplit(uint16 sharesAutoLP, uint16 sharesMarketing, uint16 sharesDevelopment) external onlyOwner { uint16 totalShares = sharesAutoLP + sharesMarketing + sharesDevelopment; require( totalShares > 0, "All cannot be 0"); _taxSharesLP = sharesAutoLP; _taxSharesMarketing = sharesMarketing; _taxSharesDevelopment = sharesDevelopment; _totalTaxShares = totalShares; } function marketingWallet() external view returns (address) { return _walletMarketing; } function developmentWallet() external view returns (address) { return _walletDevelopment; } function updateWallets(address marketing, address development, address LPtokens) external onlyOwner { require(!_isLP[marketing] && !_isLP[development] && !_isLP[LPtokens], "LP cannot be tax wallet"); _walletMarketing = payable(marketing); _walletDevelopment = payable(development); _lpOwner = LPtokens; _noFees[marketing] = true; _noLimits[marketing] = true; _noFees[development] = true; _noLimits[development] = true; } function maxWallet() external view returns (uint256) { return _maxWalletAmount; } function maxTransaction() external view returns (uint256) { return _maxTxAmount; } function swapAtMin() external view returns (uint256) { return _taxSwapMin; } function swapAtMax() external view returns (uint256) { return _taxSwapMax; } function setLimits(uint16 maxTransactionPermille, uint16 maxWalletPermille) external onlyOwner { uint256 newTxAmt = _totalSupply * maxTransactionPermille / 1000 + 1; require(newTxAmt >= _maxTxAmount, "tx too low"); _maxTxAmount = newTxAmt; uint256 newWalletAmt = _totalSupply * maxWalletPermille / 1000 + 1; require(newWalletAmt >= _maxWalletAmount, "wallet too low"); _maxWalletAmount = newWalletAmt; } function setTaxSwap(uint32 minValue, uint32 minDivider, uint32 maxValue, uint32 maxDivider) external onlyOwner { _taxSwapMin = _totalSupply * minValue / minDivider; _taxSwapMax = _totalSupply * maxValue / maxDivider; require(_taxSwapMax>=_taxSwapMin, "Min/Max error"); require(_taxSwapMax>_totalSupply / 100000, "Max too low"); require(_taxSwapMax<_totalSupply / 100, "Max too high"); } function _burnTokens(address fromWallet, uint256 amount) private { if ( amount > 0 ) { _balances[fromWallet] -= amount; _balances[address(0)] += amount; emit Transfer(fromWallet, address(0), amount); } } function _swapTaxAndLiquify() private lockTaxSwap { uint256 _taxTokensAvailable = _swapLimit; if ( _taxTokensAvailable >= _taxSwapMin && _tradingOpen ) { if ( _taxTokensAvailable >= _taxSwapMax ) { _taxTokensAvailable = _taxSwapMax; } uint256 _tokensForLP = _taxTokensAvailable * _taxSharesLP / _totalTaxShares / 2; uint256 _tokensToSwap = _taxTokensAvailable - _tokensForLP; if( _tokensToSwap > 10**_decimals ) { uint256 _ethPreSwap = address(this).balance; _balances[address(this)] += _taxTokensAvailable; _swapTaxTokensForEth(_tokensToSwap); _swapLimit -= _taxTokensAvailable; uint256 _ethSwapped = address(this).balance - _ethPreSwap; if ( _taxSharesLP > 0 ) { uint256 _ethWeiAmount = _ethSwapped * _taxSharesLP / _totalTaxShares ; _approveRouter(_tokensForLP); _addLiquidity(_tokensForLP, _ethWeiAmount, false); } } uint256 _contractETHBalance = address(this).balance; if(_contractETHBalance > 0) { _distributeTaxEth(_contractETHBalance); } } } function _swapTaxTokensForEth(uint256 tokenAmount) private { _approveRouter(tokenAmount); address[] memory path = new address[](2); path[0] = address(this); path[1] = _primarySwapRouter.WETH(); _primarySwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp); } function _distributeTaxEth(uint256 amount) private { uint16 _taxShareTotal = _taxSharesMarketing + _taxSharesDevelopment; if (_taxShareTotal > 0) { uint256 marketingAmount = amount * _taxSharesMarketing / _taxShareTotal; uint256 developmentAmount = amount * _taxSharesDevelopment / _taxShareTotal; if ( marketingAmount > 0 ) { _walletMarketing.transfer(marketingAmount); } if ( developmentAmount > 0 ) { _walletDevelopment.transfer(developmentAmount); } } } function manualTaxSwapAndSend(uint8 swapTokenPercent, bool sendEth) external onlyOwner lockTaxSwap { require(swapTokenPercent <= 100, "Cannot swap more than 100%"); uint256 tokensToSwap = _balances[address(this)] * swapTokenPercent / 100; if (tokensToSwap > 10 ** _decimals) { _swapTaxTokensForEth(tokensToSwap); } if (sendEth) { uint256 ethBalance = address(this).balance; require(ethBalance > 0, "No ETH"); _distributeTaxEth(address(this).balance); } } function burn(uint256 amount) external { uint256 _tokensAvailable = balanceOf(msg.sender); require(amount <= _tokensAvailable, "balance too low"); _burnTokens(msg.sender, amount); emit TokensBurned(msg.sender, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"burnedByWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"TokensBurned","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":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"exemptFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"exemptFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeSplit","outputs":[{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"development","type":"uint16"},{"internalType":"uint16","name":"LP","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"swapTokenPercent","type":"uint8"},{"internalType":"bool","name":"sendEth","type":"bool"}],"name":"manualTaxSwapAndSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"noFees","type":"bool"},{"internalType":"bool","name":"noLimits","type":"bool"}],"name":"setExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"sharesAutoLP","type":"uint16"},{"internalType":"uint16","name":"sharesMarketing","type":"uint16"},{"internalType":"uint16","name":"sharesDevelopment","type":"uint16"}],"name":"setFeeSplit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buy","type":"uint8"},{"internalType":"uint8","name":"sell","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTransactionPermille","type":"uint16"},{"internalType":"uint16","name":"maxWalletPermille","type":"uint16"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minValue","type":"uint32"},{"internalType":"uint32","name":"minDivider","type":"uint32"},{"internalType":"uint32","name":"maxValue","type":"uint32"},{"internalType":"uint32","name":"maxDivider","type":"uint32"}],"name":"setTaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAtMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAtMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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 payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketing","type":"address"},{"internalType":"address","name":"development","type":"address"},{"internalType":"address","name":"LPtokens","type":"address"}],"name":"updateWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526002600060146101000a81548160ff021916908360ff1602179055506001600060156101000a81548160ff021916908360ff1602179055506001600060166101000a81548160ff021916908360ff1602179055506001600060176101000a81548160ff021916908360ff16021790555060026001556001600260006101000a81548160ff021916908360ff16021790555060028060016101000a81548160ff021916908360ff16021790555060506002806101000a81548161ffff021916908361ffff1602179055506014600260046101000a81548161ffff021916908361ffff1602179055506000600260066101000a81548161ffff021916908361ffff160217905550600260069054906101000a900461ffff16600260049054906101000a900461ffff1660028054906101000a900461ffff1662000146919062000b54565b62000152919062000b54565b600260086101000a81548161ffff021916908361ffff16021790555073e708051903d03c009cac1e2ceed32cc85f6a74fa6002600a6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507338da09142f9e15b073bd385677d2becfdf9d5b61600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000228919062000cfc565b6301406f4062000239919062000d4d565b6005556009600a6200024c919062000cfc565b6301406f406200025d919062000d4d565b600655620186a0600a6009600a62000276919062000cfc565b6301406f4062000287919062000d4d565b62000293919062000d4d565b6200029f919062000dc7565b600755620186a061037b6009600a620002b9919062000cfc565b6301406f40620002ca919062000d4d565b620002d6919062000d4d565b620002e2919062000dc7565b60085560646046600754620002f8919062000d4d565b62000304919062000d4d565b600955737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601260016101000a81548160ff0219169083151502179055503480156200038457600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000606460056009600a6200041e919062000cfc565b6301406f406200042f919062000d4d565b6200043b919062000d4d565b62000447919062000dc7565b9050806009600a6200045a919062000cfc565b6301406f406200046b919062000d4d565b62000477919062000dff565b600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000559919062000e4b565b60405180910390a380600a60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051620006a6919062000e4b565b60405180910390a36001600c60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60006002600a9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60006002600a9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505062000e68565b600061ffff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000b618262000b17565b915062000b6e8362000b17565b9250828201905061ffff81111562000b8b5762000b8a62000b25565b5b92915050565b60008160011c9050919050565b6000808291508390505b600185111562000bf05780860481111562000bc85762000bc762000b25565b5b600185161562000bd85780820291505b808102905062000be88562000b91565b945062000ba8565b94509492505050565b60008262000c0b576001905062000cde565b8162000c1b576000905062000cde565b816001811462000c34576002811462000c3f5762000c75565b600191505062000cde565b60ff84111562000c545762000c5362000b25565b5b8360020a91508482111562000c6e5762000c6d62000b25565b5b5062000cde565b5060208310610133831016604e8410600b841016171562000caf5782820a90508381111562000ca95762000ca862000b25565b5b62000cde565b62000cbe848484600162000b9e565b9250905081840481111562000cd85762000cd762000b25565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000d098262000ce5565b915062000d168362000cef565b925062000d457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bf9565b905092915050565b600062000d5a8262000ce5565b915062000d678362000ce5565b925082820262000d778162000ce5565b9150828204841483151762000d915762000d9062000b25565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000dd48262000ce5565b915062000de18362000ce5565b92508262000df45762000df362000d98565b5b828204905092915050565b600062000e0c8262000ce5565b915062000e198362000ce5565b925082820390508181111562000e345762000e3362000b25565b5b92915050565b62000e458162000ce5565b82525050565b600060208201905062000e62600083018462000e3a565b92915050565b6152708062000e786000396000f3fe6080604052600436106101e75760003560e01c80636373ea6911610102578063a6097b0a11610095578063dd62ed3e11610064578063dd62ed3e146106f1578063e8078d941461072e578063f2fde38b14610738578063f8b45b0514610761576101ee565b8063a6097b0a14610635578063a9059cbb1461065e578063c04a54141461069b578063c3f70b52146106c6576101ee565b806376a39c28116100d157806376a39c28146105795780638d3e6e40146105a25780638da5cb5b146105df57806395d89b411461060a576101ee565b80636373ea69146104cd57806370a08231146104fa578063715018a61461053757806375f0a8741461054e576101ee565b8063368f48001161017a5780634d4ce935116101495780634d4ce935146104135780634fcd24461461043e57806357ff135a146104675780635a90a49e14610490576101ee565b8063368f48001461036b57806342966c681461039457806346b89834146103bd57806347062402146103e8576101ee565b806323b872dd116101b657806323b872dd146102af5780632b14ca56146102ec5780632fb528ba14610317578063313ce56714610340576101ee565b806306fdde03146101f3578063095ea7b31461021e578063147c9f6d1461025b57806318160ddd14610284576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861078c565b6040516102159190613bcb565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190613c86565b6107c9565b6040516102529190613ce1565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190613cfc565b6108bb565b005b34801561029057600080fd5b50610299610caa565b6040516102a69190613d5e565b60405180910390f35b3480156102bb57600080fd5b506102d660048036038101906102d19190613d79565b610cce565b6040516102e39190613ce1565b60405180910390f35b3480156102f857600080fd5b50610301610ed8565b60405161030e9190613de8565b60405180910390f35b34801561032357600080fd5b5061033e60048036038101906103399190613e5b565b610eef565b005b34801561034c57600080fd5b506103556110d5565b6040516103629190613de8565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d9190613ed5565b6110de565b005b3480156103a057600080fd5b506103bb60048036038101906103b69190613f15565b61129c565b005b3480156103c957600080fd5b506103d2611348565b6040516103df9190613d5e565b60405180910390f35b3480156103f457600080fd5b506103fd611352565b60405161040a9190613de8565b60405180910390f35b34801561041f57600080fd5b50610428611369565b6040516104359190613d5e565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190613f42565b611373565b005b34801561047357600080fd5b5061048e60048036038101906104899190613f82565b61148d565b005b34801561049c57600080fd5b506104b760048036038101906104b29190613fd5565b61166a565b6040516104c49190613ce1565b60405180910390f35b3480156104d957600080fd5b506104e26116c0565b6040516104f193929190614011565b60405180910390f35b34801561050657600080fd5b50610521600480360381019061051c9190613fd5565b611701565b60405161052e9190613d5e565b60405180910390f35b34801561054357600080fd5b5061054c61174a565b005b34801561055a57600080fd5b50610563611853565b6040516105709190614057565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b9190614072565b61187d565b005b3480156105ae57600080fd5b506105c960048036038101906105c49190613fd5565b6119e6565b6040516105d69190613ce1565b60405180910390f35b3480156105eb57600080fd5b506105f4611a3c565b6040516106019190614057565b60405180910390f35b34801561061657600080fd5b5061061f611a65565b60405161062c9190613bcb565b60405180910390f35b34801561064157600080fd5b5061065c60048036038101906106579190614101565b611aa2565b005b34801561066a57600080fd5b5061068560048036038101906106809190613c86565b611ce1565b6040516106929190613ce1565b60405180910390f35b3480156106a757600080fd5b506106b0611d3e565b6040516106bd9190614057565b60405180910390f35b3480156106d257600080fd5b506106db611d68565b6040516106e89190613d5e565b60405180910390f35b3480156106fd57600080fd5b5061071860048036038101906107139190614168565b611d72565b6040516107259190613d5e565b60405180910390f35b610736611df9565b005b34801561074457600080fd5b5061075f600480360381019061075a91906141e6565b6124e6565b005b34801561076d57600080fd5b506107766125ee565b6040516107839190613d5e565b60405180910390f35b60606040518060400160405280600881526020017f536c656e64657258000000000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108a99190613d5e565b60405180910390a36001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610949576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109409061425f565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156109ed5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610a435750601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b610a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a79906142cb565b60405180910390fd5b826002600a6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60006009600a610cba919061444d565b6301406f40610cc99190614498565b905090565b6000610cd9846125f8565b610d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0f90614526565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ec45781600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e439190614546565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610ecf8484846126d3565b90509392505050565b6000600260019054906101000a900460ff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f749061425f565b60405180910390fd5b6001601260016101000a81548160ff02191690831515021790555060648260ff161115610fdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd6906145c6565b60405180910390fd5b600060648360ff16600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110319190614498565b61103b9190614615565b90506009600a61104b919061444d565b81111561105c5761105b81612c5f565b5b81156110b5576000479050600081116110aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a190614692565b60405180910390fd5b6110b347612e7e565b505b506000601260016101000a81548160ff0219169083151502179055505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461116c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111639061425f565b60405180910390fd5b600060016103e88461ffff166009600a611186919061444d565b6301406f406111959190614498565b61119f9190614498565b6111a99190614615565b6111b391906146b2565b90506005548110156111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f190614732565b60405180910390fd5b80600581905550600060016103e88461ffff166009600a61121b919061444d565b6301406f4061122a9190614498565b6112349190614498565b61123e9190614615565b61124891906146b2565b905060065481101561128f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112869061479e565b60405180910390fd5b8060068190555050505050565b60006112a733611701565b9050808211156112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e39061480a565b60405180910390fd5b6112f6338361300a565b3373ffffffffffffffffffffffffffffffffffffffff167ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb68360405161133c9190613d5e565b60405180910390a25050565b6000600754905090565b6000600260009054906101000a900460ff16905090565b6000600854905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f89061425f565b60405180910390fd5b6005818361140f919061482a565b60ff161115611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144a906148ab565b60405180910390fd5b81600260006101000a81548160ff021916908360ff16021790555080600260016101000a81548160ff021916908360ff1602179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461151b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115129061425f565b60405180910390fd5b80806115245750815b156115b757601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156115b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ad90614917565b60405180910390fd5b5b81600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080600060028054906101000a900461ffff16600260049054906101000a900461ffff16600260069054906101000a900461ffff16925092509250909192565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cf9061425f565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516118499190614057565b60405180910390a1565b60006002600a9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461190b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119029061425f565b60405180910390fd5b600081838561191a9190614937565b6119249190614937565b905060008161ffff161161196d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611964906149b9565b60405180910390fd5b83600260066101000a81548161ffff021916908361ffff160217905550826002806101000a81548161ffff021916908361ffff16021790555081600260046101000a81548161ffff021916908361ffff16021790555080600260086101000a81548161ffff021916908361ffff16021790555050505050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f536c656e64657258000000000000000000000000000000000000000000000000815250905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b279061425f565b60405180910390fd5b8263ffffffff168463ffffffff166009600a611b4c919061444d565b6301406f40611b5b9190614498565b611b659190614498565b611b6f9190614615565b6007819055508063ffffffff168263ffffffff166009600a611b91919061444d565b6301406f40611ba09190614498565b611baa9190614498565b611bb49190614615565b6008819055506007546008541015611c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf890614a25565b60405180910390fd5b620186a06009600a611c13919061444d565b6301406f40611c229190614498565b611c2c9190614615565b60085411611c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6690614a91565b60405180910390fd5b60646009600a611c7f919061444d565b6301406f40611c8e9190614498565b611c989190614615565b60085410611cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd290614afd565b60405180910390fd5b50505050565b6000611cec336125f8565b611d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2290614526565b60405180910390fd5b611d363384846126d3565b905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600554905090565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7e9061425f565b60405180910390fd5b6001601260016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2a90614b69565b60405180910390fd5b601260009054906101000a900460ff1615611f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7a90614bd5565b60405180910390fd5b6000341180611f925750600047115b611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc890614c41565b60405180910390fd5b6000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204a90614cad565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e49190614ce2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561216d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121919190614ce2565b6040518363ffffffff1660e01b81526004016121ae929190614d0f565b6020604051808303816000875af11580156121cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f19190614ce2565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061227c600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205447600061312a565b600954600a6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122ef9190614546565b925050819055506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527ffff6cae9000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516123c19190614d7f565b6000604051808303816000865af19150503d80600081146123fe576040519150601f19603f3d011682016040523d82523d6000602084013e612403565b606091505b5050905080612447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243e90614de2565b60405180910390fd5b8060116000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506124c8613218565b506000601260016101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256b9061425f565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516125e39190614e61565b60405180910390a150565b6000600654905090565b60008060009050601260009054906101000a900460ff161561261d57600190506126ca565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126bf5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156126c957600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273a90614ec8565b60405180910390fd5b601260009054906101000a900460ff1661283957600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127f95750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282f90614526565b60405180910390fd5b5b601260019054906101000a900460ff1615801561289f5750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128ad576128ac613302565b5b600154431080156128c057506004544310155b80156129155750601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612989573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297f90614f34565b60405180910390fd5b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156129f157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612a49575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612a9957612a5984848461350a565b612a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8f90614fa0565b60405180910390fd5b5b6000612aa68585856136a1565b905060008184612ab69190614546565b905083600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b039190614546565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160096000828254612b5891906146b2565b9250508190555080600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612baa91906146b2565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612c4a9190613d5e565b60405180910390a36001925050509392505050565b612c6881613951565b6000600267ffffffffffffffff811115612c8557612c84614fc0565b5b604051908082528060200260200182016040528015612cb35781602001602082028036833780820191505090505b5090503081600081518110612ccb57612cca614fef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d969190614ce2565b81600181518110612daa57612da9614fef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e48959493929190615117565b600060405180830381600087803b158015612e6257600080fd5b505af1158015612e76573d6000803e3d6000fd5b505050505050565b6000600260049054906101000a900461ffff1660028054906101000a900461ffff16612eaa9190614937565b905060008161ffff1611156130065760008161ffff1660028054906101000a900461ffff1661ffff1684612ede9190614498565b612ee89190614615565b905060008261ffff16600260049054906101000a900461ffff1661ffff1685612f119190614498565b612f1b9190614615565b90506000821115612f90576002600a9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612f8e573d6000803e3d6000fd5b505b600081111561300357600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613001573d6000803e3d6000fd5b505b50505b5050565b60008111156131265780600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130629190614546565b9250508190555080600a60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130b891906146b2565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161311d9190613d5e565b60405180910390a35b5050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050811561315c57600090505b61316584613951565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b81526004016131cc96959493929190615171565b60606040518083038185885af11580156131ea573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061320f91906151e7565b50505050505050565b606460026009600a61322a919061444d565b6301406f406132399190614498565b6132439190614498565b61324d9190614615565b600581905550606460026009600a613265919061444d565b6301406f406132749190614498565b61327e9190614498565b6132889190614615565b6006819055506001601260006101000a81548160ff02191690831515021790555043600481905550600060179054906101000a900460ff1660ff16600060169054906101000a900460ff1660ff166004546001546132e691906146b2565b6132f091906146b2565b6132fa91906146b2565b600181905550565b6001601260016101000a81548160ff0219169083151502179055506000600954905060075481101580156133425750601260009054906101000a900460ff165b156134ec5760085481106133565760085490505b600060028060089054906101000a900461ffff1661ffff16600260069054906101000a900461ffff1661ffff168461338e9190614498565b6133989190614615565b6133a29190614615565b9050600081836133b29190614546565b90506009600a6133c2919061444d565b8111156134d057600047905083600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461341d91906146b2565b9250508190555061342d82612c5f565b836009600082825461343f9190614546565b92505081905550600081476134549190614546565b90506000600260069054906101000a900461ffff1661ffff1611156134cd576000600260089054906101000a900461ffff1661ffff16600260069054906101000a900461ffff1661ffff16836134aa9190614498565b6134b49190614615565b90506134bf85613951565b6134cb8582600061312a565b505b50505b600047905060008111156134e8576134e781612e7e565b5b5050505b506000601260016101000a81548160ff021916908315150217905550565b60008060019050601260009054906101000a900460ff1680156135775750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135cd5750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613696576005548311156135e55760009050613695565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561368a575060065483600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461368891906146b2565b115b1561369457600090505b5b5b809150509392505050565b600080601260009054906101000a900460ff1615806137095750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061375d5750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561376b5760009050613946565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156138c557600060179054906101000a900460ff1660ff16600060169054906101000a900460ff1660ff166004546137f091906146b2565b6137fa91906146b2565b4310613831576064600260009054906101000a900460ff1660ff16846138209190614498565b61382a9190614615565b90506138c0565b600060169054906101000a900460ff1660ff1660045461385191906146b2565b4310613888576064600060159054906101000a900460ff1660ff16846138779190614498565b6138819190614615565b90506138bf565b60045443106138be576064600060149054906101000a900460ff1660ff16846138b19190614498565b6138bb9190614615565b90505b5b5b613945565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613944576064600260019054906101000a900460ff1660ff16846139379190614498565b6139419190614615565b90505b5b5b809150509392505050565b80600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613b38577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051613b2f9190613d5e565b60405180910390a35b50565b600081519050919050565b600082825260208201905092915050565b60005b83811015613b75578082015181840152602081019050613b5a565b60008484015250505050565b6000601f19601f8301169050919050565b6000613b9d82613b3b565b613ba78185613b46565b9350613bb7818560208601613b57565b613bc081613b81565b840191505092915050565b60006020820190508181036000830152613be58184613b92565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613c1d82613bf2565b9050919050565b613c2d81613c12565b8114613c3857600080fd5b50565b600081359050613c4a81613c24565b92915050565b6000819050919050565b613c6381613c50565b8114613c6e57600080fd5b50565b600081359050613c8081613c5a565b92915050565b60008060408385031215613c9d57613c9c613bed565b5b6000613cab85828601613c3b565b9250506020613cbc85828601613c71565b9150509250929050565b60008115159050919050565b613cdb81613cc6565b82525050565b6000602082019050613cf66000830184613cd2565b92915050565b600080600060608486031215613d1557613d14613bed565b5b6000613d2386828701613c3b565b9350506020613d3486828701613c3b565b9250506040613d4586828701613c3b565b9150509250925092565b613d5881613c50565b82525050565b6000602082019050613d736000830184613d4f565b92915050565b600080600060608486031215613d9257613d91613bed565b5b6000613da086828701613c3b565b9350506020613db186828701613c3b565b9250506040613dc286828701613c71565b9150509250925092565b600060ff82169050919050565b613de281613dcc565b82525050565b6000602082019050613dfd6000830184613dd9565b92915050565b613e0c81613dcc565b8114613e1757600080fd5b50565b600081359050613e2981613e03565b92915050565b613e3881613cc6565b8114613e4357600080fd5b50565b600081359050613e5581613e2f565b92915050565b60008060408385031215613e7257613e71613bed565b5b6000613e8085828601613e1a565b9250506020613e9185828601613e46565b9150509250929050565b600061ffff82169050919050565b613eb281613e9b565b8114613ebd57600080fd5b50565b600081359050613ecf81613ea9565b92915050565b60008060408385031215613eec57613eeb613bed565b5b6000613efa85828601613ec0565b9250506020613f0b85828601613ec0565b9150509250929050565b600060208284031215613f2b57613f2a613bed565b5b6000613f3984828501613c71565b91505092915050565b60008060408385031215613f5957613f58613bed565b5b6000613f6785828601613e1a565b9250506020613f7885828601613e1a565b9150509250929050565b600080600060608486031215613f9b57613f9a613bed565b5b6000613fa986828701613c3b565b9350506020613fba86828701613e46565b9250506040613fcb86828701613e46565b9150509250925092565b600060208284031215613feb57613fea613bed565b5b6000613ff984828501613c3b565b91505092915050565b61400b81613e9b565b82525050565b60006060820190506140266000830186614002565b6140336020830185614002565b6140406040830184614002565b949350505050565b61405181613c12565b82525050565b600060208201905061406c6000830184614048565b92915050565b60008060006060848603121561408b5761408a613bed565b5b600061409986828701613ec0565b93505060206140aa86828701613ec0565b92505060406140bb86828701613ec0565b9150509250925092565b600063ffffffff82169050919050565b6140de816140c5565b81146140e957600080fd5b50565b6000813590506140fb816140d5565b92915050565b6000806000806080858703121561411b5761411a613bed565b5b6000614129878288016140ec565b945050602061413a878288016140ec565b935050604061414b878288016140ec565b925050606061415c878288016140ec565b91505092959194509250565b6000806040838503121561417f5761417e613bed565b5b600061418d85828601613c3b565b925050602061419e85828601613c3b565b9150509250929050565b60006141b382613bf2565b9050919050565b6141c3816141a8565b81146141ce57600080fd5b50565b6000813590506141e0816141ba565b92915050565b6000602082840312156141fc576141fb613bed565b5b600061420a848285016141d1565b91505092915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000600082015250565b6000614249601883613b46565b915061425482614213565b602082019050919050565b600060208201905081810360008301526142788161423c565b9050919050565b7f4c502063616e6e6f74206265207461782077616c6c6574000000000000000000600082015250565b60006142b5601783613b46565b91506142c08261427f565b602082019050919050565b600060208201905081810360008301526142e4816142a8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156143715780860481111561434d5761434c6142eb565b5b600185161561435c5780820291505b808102905061436a8561431a565b9450614331565b94509492505050565b60008261438a5760019050614446565b816143985760009050614446565b81600181146143ae57600281146143b8576143e7565b6001915050614446565b60ff8411156143ca576143c96142eb565b5b8360020a9150848211156143e1576143e06142eb565b5b50614446565b5060208310610133831016604e8410600b841016171561441c5782820a905083811115614417576144166142eb565b5b614446565b6144298484846001614327565b925090508184048111156144405761443f6142eb565b5b81810290505b9392505050565b600061445882613c50565b915061446383613dcc565b92506144907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461437a565b905092915050565b60006144a382613c50565b91506144ae83613c50565b92508282026144bc81613c50565b915082820484148315176144d3576144d26142eb565b5b5092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000614510601083613b46565b915061451b826144da565b602082019050919050565b6000602082019050818103600083015261453f81614503565b9050919050565b600061455182613c50565b915061455c83613c50565b9250828203905081811115614574576145736142eb565b5b92915050565b7f43616e6e6f742073776170206d6f7265207468616e2031303025000000000000600082015250565b60006145b0601a83613b46565b91506145bb8261457a565b602082019050919050565b600060208201905081810360008301526145df816145a3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061462082613c50565b915061462b83613c50565b92508261463b5761463a6145e6565b5b828204905092915050565b7f4e6f204554480000000000000000000000000000000000000000000000000000600082015250565b600061467c600683613b46565b915061468782614646565b602082019050919050565b600060208201905081810360008301526146ab8161466f565b9050919050565b60006146bd82613c50565b91506146c883613c50565b92508282019050808211156146e0576146df6142eb565b5b92915050565b7f747820746f6f206c6f7700000000000000000000000000000000000000000000600082015250565b600061471c600a83613b46565b9150614727826146e6565b602082019050919050565b6000602082019050818103600083015261474b8161470f565b9050919050565b7f77616c6c657420746f6f206c6f77000000000000000000000000000000000000600082015250565b6000614788600e83613b46565b915061479382614752565b602082019050919050565b600060208201905081810360008301526147b78161477b565b9050919050565b7f62616c616e636520746f6f206c6f770000000000000000000000000000000000600082015250565b60006147f4600f83613b46565b91506147ff826147be565b602082019050919050565b60006020820190508181036000830152614823816147e7565b9050919050565b600061483582613dcc565b915061484083613dcc565b9250828201905060ff811115614859576148586142eb565b5b92915050565b7f526f756e647472697020746f6f20686967680000000000000000000000000000600082015250565b6000614895601283613b46565b91506148a08261485f565b602082019050919050565b600060208201905081810360008301526148c481614888565b9050919050565b7f43616e6e6f74206578656d7074204c5000000000000000000000000000000000600082015250565b6000614901601083613b46565b915061490c826148cb565b602082019050919050565b60006020820190508181036000830152614930816148f4565b9050919050565b600061494282613e9b565b915061494d83613e9b565b9250828201905061ffff811115614967576149666142eb565b5b92915050565b7f416c6c2063616e6e6f7420626520300000000000000000000000000000000000600082015250565b60006149a3600f83613b46565b91506149ae8261496d565b602082019050919050565b600060208201905081810360008301526149d281614996565b9050919050565b7f4d696e2f4d6178206572726f7200000000000000000000000000000000000000600082015250565b6000614a0f600d83613b46565b9150614a1a826149d9565b602082019050919050565b60006020820190508181036000830152614a3e81614a02565b9050919050565b7f4d617820746f6f206c6f77000000000000000000000000000000000000000000600082015250565b6000614a7b600b83613b46565b9150614a8682614a45565b602082019050919050565b60006020820190508181036000830152614aaa81614a6e565b9050919050565b7f4d617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000614ae7600c83613b46565b9150614af282614ab1565b602082019050919050565b60006020820190508181036000830152614b1681614ada565b9050919050565b7f4c50206578697374730000000000000000000000000000000000000000000000600082015250565b6000614b53600983613b46565b9150614b5e82614b1d565b602082019050919050565b60006020820190508181036000830152614b8281614b46565b9050919050565b7f74726164696e67206973206f70656e0000000000000000000000000000000000600082015250565b6000614bbf600f83613b46565b9150614bca82614b89565b602082019050919050565b60006020820190508181036000830152614bee81614bb2565b9050919050565b7f4e6f2045544820696e20636f6e7472616374206f72206d657373616765000000600082015250565b6000614c2b601d83613b46565b9150614c3682614bf5565b602082019050919050565b60006020820190508181036000830152614c5a81614c1e565b9050919050565b7f4e6f20746f6b656e7320696e20636f6e74726163740000000000000000000000600082015250565b6000614c97601583613b46565b9150614ca282614c61565b602082019050919050565b60006020820190508181036000830152614cc681614c8a565b9050919050565b600081519050614cdc81613c24565b92915050565b600060208284031215614cf857614cf7613bed565b5b6000614d0684828501614ccd565b91505092915050565b6000604082019050614d246000830185614048565b614d316020830184614048565b9392505050565b600081519050919050565b600081905092915050565b6000614d5982614d38565b614d638185614d43565b9350614d73818560208601613b57565b80840191505092915050565b6000614d8b8284614d4e565b915081905092915050565b7f4661696c656420616464696e67206c6971756964697479000000000000000000600082015250565b6000614dcc601783613b46565b9150614dd782614d96565b602082019050919050565b60006020820190508181036000830152614dfb81614dbf565b9050919050565b6000819050919050565b6000614e27614e22614e1d84613bf2565b614e02565b613bf2565b9050919050565b6000614e3982614e0c565b9050919050565b6000614e4b82614e2e565b9050919050565b614e5b81614e40565b82525050565b6000602082019050614e766000830184614e52565b92915050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b6000614eb2601d83613b46565b9150614ebd82614e7c565b602082019050919050565b60006020820190508181036000830152614ee181614ea5565b9050919050565b7f4d455620626c6f636b6564000000000000000000000000000000000000000000600082015250565b6000614f1e600b83613b46565b9150614f2982614ee8565b602082019050919050565b60006020820190508181036000830152614f4d81614f11565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b6000614f8a601183613b46565b9150614f9582614f54565b602082019050919050565b60006020820190508181036000830152614fb981614f7d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061504361503e6150398461501e565b614e02565b613c50565b9050919050565b61505381615028565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61508e81613c12565b82525050565b60006150a08383615085565b60208301905092915050565b6000602082019050919050565b60006150c482615059565b6150ce8185615064565b93506150d983615075565b8060005b8381101561510a5781516150f18882615094565b97506150fc836150ac565b9250506001810190506150dd565b5085935050505092915050565b600060a08201905061512c6000830188613d4f565b615139602083018761504a565b818103604083015261514b81866150b9565b905061515a6060830185614048565b6151676080830184613d4f565b9695505050505050565b600060c0820190506151866000830189614048565b6151936020830188613d4f565b6151a0604083018761504a565b6151ad606083018661504a565b6151ba6080830185614048565b6151c760a0830184613d4f565b979650505050505050565b6000815190506151e181613c5a565b92915050565b600080600060608486031215615200576151ff613bed565b5b600061520e868287016151d2565b935050602061521f868287016151d2565b9250506040615230868287016151d2565b915050925092509256fea2646970667358221220ef5271d4cd48ad36c6f7577ff7e1406ff7115aec8da2d685e34500fa5ebb132564736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101e75760003560e01c80636373ea6911610102578063a6097b0a11610095578063dd62ed3e11610064578063dd62ed3e146106f1578063e8078d941461072e578063f2fde38b14610738578063f8b45b0514610761576101ee565b8063a6097b0a14610635578063a9059cbb1461065e578063c04a54141461069b578063c3f70b52146106c6576101ee565b806376a39c28116100d157806376a39c28146105795780638d3e6e40146105a25780638da5cb5b146105df57806395d89b411461060a576101ee565b80636373ea69146104cd57806370a08231146104fa578063715018a61461053757806375f0a8741461054e576101ee565b8063368f48001161017a5780634d4ce935116101495780634d4ce935146104135780634fcd24461461043e57806357ff135a146104675780635a90a49e14610490576101ee565b8063368f48001461036b57806342966c681461039457806346b89834146103bd57806347062402146103e8576101ee565b806323b872dd116101b657806323b872dd146102af5780632b14ca56146102ec5780632fb528ba14610317578063313ce56714610340576101ee565b806306fdde03146101f3578063095ea7b31461021e578063147c9f6d1461025b57806318160ddd14610284576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861078c565b6040516102159190613bcb565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190613c86565b6107c9565b6040516102529190613ce1565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190613cfc565b6108bb565b005b34801561029057600080fd5b50610299610caa565b6040516102a69190613d5e565b60405180910390f35b3480156102bb57600080fd5b506102d660048036038101906102d19190613d79565b610cce565b6040516102e39190613ce1565b60405180910390f35b3480156102f857600080fd5b50610301610ed8565b60405161030e9190613de8565b60405180910390f35b34801561032357600080fd5b5061033e60048036038101906103399190613e5b565b610eef565b005b34801561034c57600080fd5b506103556110d5565b6040516103629190613de8565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d9190613ed5565b6110de565b005b3480156103a057600080fd5b506103bb60048036038101906103b69190613f15565b61129c565b005b3480156103c957600080fd5b506103d2611348565b6040516103df9190613d5e565b60405180910390f35b3480156103f457600080fd5b506103fd611352565b60405161040a9190613de8565b60405180910390f35b34801561041f57600080fd5b50610428611369565b6040516104359190613d5e565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190613f42565b611373565b005b34801561047357600080fd5b5061048e60048036038101906104899190613f82565b61148d565b005b34801561049c57600080fd5b506104b760048036038101906104b29190613fd5565b61166a565b6040516104c49190613ce1565b60405180910390f35b3480156104d957600080fd5b506104e26116c0565b6040516104f193929190614011565b60405180910390f35b34801561050657600080fd5b50610521600480360381019061051c9190613fd5565b611701565b60405161052e9190613d5e565b60405180910390f35b34801561054357600080fd5b5061054c61174a565b005b34801561055a57600080fd5b50610563611853565b6040516105709190614057565b60405180910390f35b34801561058557600080fd5b506105a0600480360381019061059b9190614072565b61187d565b005b3480156105ae57600080fd5b506105c960048036038101906105c49190613fd5565b6119e6565b6040516105d69190613ce1565b60405180910390f35b3480156105eb57600080fd5b506105f4611a3c565b6040516106019190614057565b60405180910390f35b34801561061657600080fd5b5061061f611a65565b60405161062c9190613bcb565b60405180910390f35b34801561064157600080fd5b5061065c60048036038101906106579190614101565b611aa2565b005b34801561066a57600080fd5b5061068560048036038101906106809190613c86565b611ce1565b6040516106929190613ce1565b60405180910390f35b3480156106a757600080fd5b506106b0611d3e565b6040516106bd9190614057565b60405180910390f35b3480156106d257600080fd5b506106db611d68565b6040516106e89190613d5e565b60405180910390f35b3480156106fd57600080fd5b5061071860048036038101906107139190614168565b611d72565b6040516107259190613d5e565b60405180910390f35b610736611df9565b005b34801561074457600080fd5b5061075f600480360381019061075a91906141e6565b6124e6565b005b34801561076d57600080fd5b506107766125ee565b6040516107839190613d5e565b60405180910390f35b60606040518060400160405280600881526020017f536c656e64657258000000000000000000000000000000000000000000000000815250905090565b600081600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108a99190613d5e565b60405180910390a36001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610949576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109409061425f565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156109ed5750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610a435750601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b610a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a79906142cb565b60405180910390fd5b826002600a6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60006009600a610cba919061444d565b6301406f40610cc99190614498565b905090565b6000610cd9846125f8565b610d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0f90614526565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610ec45781600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e439190614546565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610ecf8484846126d3565b90509392505050565b6000600260019054906101000a900460ff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f749061425f565b60405180910390fd5b6001601260016101000a81548160ff02191690831515021790555060648260ff161115610fdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd6906145c6565b60405180910390fd5b600060648360ff16600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110319190614498565b61103b9190614615565b90506009600a61104b919061444d565b81111561105c5761105b81612c5f565b5b81156110b5576000479050600081116110aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a190614692565b60405180910390fd5b6110b347612e7e565b505b506000601260016101000a81548160ff0219169083151502179055505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461116c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111639061425f565b60405180910390fd5b600060016103e88461ffff166009600a611186919061444d565b6301406f406111959190614498565b61119f9190614498565b6111a99190614615565b6111b391906146b2565b90506005548110156111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f190614732565b60405180910390fd5b80600581905550600060016103e88461ffff166009600a61121b919061444d565b6301406f4061122a9190614498565b6112349190614498565b61123e9190614615565b61124891906146b2565b905060065481101561128f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112869061479e565b60405180910390fd5b8060068190555050505050565b60006112a733611701565b9050808211156112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e39061480a565b60405180910390fd5b6112f6338361300a565b3373ffffffffffffffffffffffffffffffffffffffff167ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb68360405161133c9190613d5e565b60405180910390a25050565b6000600754905090565b6000600260009054906101000a900460ff16905090565b6000600854905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f89061425f565b60405180910390fd5b6005818361140f919061482a565b60ff161115611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144a906148ab565b60405180910390fd5b81600260006101000a81548160ff021916908360ff16021790555080600260016101000a81548160ff021916908360ff1602179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461151b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115129061425f565b60405180910390fd5b80806115245750815b156115b757601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156115b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ad90614917565b60405180910390fd5b5b81600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080600060028054906101000a900461ffff16600260049054906101000a900461ffff16600260069054906101000a900461ffff16925092509250909192565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cf9061425f565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516118499190614057565b60405180910390a1565b60006002600a9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461190b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119029061425f565b60405180910390fd5b600081838561191a9190614937565b6119249190614937565b905060008161ffff161161196d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611964906149b9565b60405180910390fd5b83600260066101000a81548161ffff021916908361ffff160217905550826002806101000a81548161ffff021916908361ffff16021790555081600260046101000a81548161ffff021916908361ffff16021790555080600260086101000a81548161ffff021916908361ffff16021790555050505050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f536c656e64657258000000000000000000000000000000000000000000000000815250905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b279061425f565b60405180910390fd5b8263ffffffff168463ffffffff166009600a611b4c919061444d565b6301406f40611b5b9190614498565b611b659190614498565b611b6f9190614615565b6007819055508063ffffffff168263ffffffff166009600a611b91919061444d565b6301406f40611ba09190614498565b611baa9190614498565b611bb49190614615565b6008819055506007546008541015611c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf890614a25565b60405180910390fd5b620186a06009600a611c13919061444d565b6301406f40611c229190614498565b611c2c9190614615565b60085411611c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6690614a91565b60405180910390fd5b60646009600a611c7f919061444d565b6301406f40611c8e9190614498565b611c989190614615565b60085410611cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd290614afd565b60405180910390fd5b50505050565b6000611cec336125f8565b611d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2290614526565b60405180910390fd5b611d363384846126d3565b905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600554905090565b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7e9061425f565b60405180910390fd5b6001601260016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2a90614b69565b60405180910390fd5b601260009054906101000a900460ff1615611f83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7a90614bd5565b60405180910390fd5b6000341180611f925750600047115b611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc890614c41565b60405180910390fd5b6000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204a90614cad565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e49190614ce2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561216d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121919190614ce2565b6040518363ffffffff1660e01b81526004016121ae929190614d0f565b6020604051808303816000875af11580156121cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f19190614ce2565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061227c600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205447600061312a565b600954600a6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122ef9190614546565b925050819055506000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527ffff6cae9000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516123c19190614d7f565b6000604051808303816000865af19150503d80600081146123fe576040519150601f19603f3d011682016040523d82523d6000602084013e612403565b606091505b5050905080612447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243e90614de2565b60405180910390fd5b8060116000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506124c8613218565b506000601260016101000a81548160ff021916908315150217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256b9061425f565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516125e39190614e61565b60405180910390a150565b6000600654905090565b60008060009050601260009054906101000a900460ff161561261d57600190506126ca565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126bf5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156126c957600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273a90614ec8565b60405180910390fd5b601260009054906101000a900460ff1661283957600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127f95750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282f90614526565b60405180910390fd5b5b601260019054906101000a900460ff1615801561289f5750601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128ad576128ac613302565b5b600154431080156128c057506004544310155b80156129155750601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612989573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297f90614f34565b60405180910390fd5b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156129f157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612a49575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612a9957612a5984848461350a565b612a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8f90614fa0565b60405180910390fd5b5b6000612aa68585856136a1565b905060008184612ab69190614546565b905083600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b039190614546565b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160096000828254612b5891906146b2565b9250508190555080600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612baa91906146b2565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612c4a9190613d5e565b60405180910390a36001925050509392505050565b612c6881613951565b6000600267ffffffffffffffff811115612c8557612c84614fc0565b5b604051908082528060200260200182016040528015612cb35781602001602082028036833780820191505090505b5090503081600081518110612ccb57612cca614fef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d969190614ce2565b81600181518110612daa57612da9614fef565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e48959493929190615117565b600060405180830381600087803b158015612e6257600080fd5b505af1158015612e76573d6000803e3d6000fd5b505050505050565b6000600260049054906101000a900461ffff1660028054906101000a900461ffff16612eaa9190614937565b905060008161ffff1611156130065760008161ffff1660028054906101000a900461ffff1661ffff1684612ede9190614498565b612ee89190614615565b905060008261ffff16600260049054906101000a900461ffff1661ffff1685612f119190614498565b612f1b9190614615565b90506000821115612f90576002600a9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612f8e573d6000803e3d6000fd5b505b600081111561300357600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613001573d6000803e3d6000fd5b505b50505b5050565b60008111156131265780600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130629190614546565b9250508190555080600a60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130b891906146b2565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161311d9190613d5e565b60405180910390a35b5050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050811561315c57600090505b61316584613951565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b81526004016131cc96959493929190615171565b60606040518083038185885af11580156131ea573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061320f91906151e7565b50505050505050565b606460026009600a61322a919061444d565b6301406f406132399190614498565b6132439190614498565b61324d9190614615565b600581905550606460026009600a613265919061444d565b6301406f406132749190614498565b61327e9190614498565b6132889190614615565b6006819055506001601260006101000a81548160ff02191690831515021790555043600481905550600060179054906101000a900460ff1660ff16600060169054906101000a900460ff1660ff166004546001546132e691906146b2565b6132f091906146b2565b6132fa91906146b2565b600181905550565b6001601260016101000a81548160ff0219169083151502179055506000600954905060075481101580156133425750601260009054906101000a900460ff165b156134ec5760085481106133565760085490505b600060028060089054906101000a900461ffff1661ffff16600260069054906101000a900461ffff1661ffff168461338e9190614498565b6133989190614615565b6133a29190614615565b9050600081836133b29190614546565b90506009600a6133c2919061444d565b8111156134d057600047905083600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461341d91906146b2565b9250508190555061342d82612c5f565b836009600082825461343f9190614546565b92505081905550600081476134549190614546565b90506000600260069054906101000a900461ffff1661ffff1611156134cd576000600260089054906101000a900461ffff1661ffff16600260069054906101000a900461ffff1661ffff16836134aa9190614498565b6134b49190614615565b90506134bf85613951565b6134cb8582600061312a565b505b50505b600047905060008111156134e8576134e781612e7e565b5b5050505b506000601260016101000a81548160ff021916908315150217905550565b60008060019050601260009054906101000a900460ff1680156135775750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135cd5750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613696576005548311156135e55760009050613695565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561368a575060065483600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461368891906146b2565b115b1561369457600090505b5b5b809150509392505050565b600080601260009054906101000a900460ff1615806137095750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061375d5750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561376b5760009050613946565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156138c557600060179054906101000a900460ff1660ff16600060169054906101000a900460ff1660ff166004546137f091906146b2565b6137fa91906146b2565b4310613831576064600260009054906101000a900460ff1660ff16846138209190614498565b61382a9190614615565b90506138c0565b600060169054906101000a900460ff1660ff1660045461385191906146b2565b4310613888576064600060159054906101000a900460ff1660ff16846138779190614498565b6138819190614615565b90506138bf565b60045443106138be576064600060149054906101000a900460ff1660ff16846138b19190614498565b6138bb9190614615565b90505b5b5b613945565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613944576064600260019054906101000a900460ff1660ff16846139379190614498565b6139419190614615565b90505b5b5b809150509392505050565b80600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613b38577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051613b2f9190613d5e565b60405180910390a35b50565b600081519050919050565b600082825260208201905092915050565b60005b83811015613b75578082015181840152602081019050613b5a565b60008484015250505050565b6000601f19601f8301169050919050565b6000613b9d82613b3b565b613ba78185613b46565b9350613bb7818560208601613b57565b613bc081613b81565b840191505092915050565b60006020820190508181036000830152613be58184613b92565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613c1d82613bf2565b9050919050565b613c2d81613c12565b8114613c3857600080fd5b50565b600081359050613c4a81613c24565b92915050565b6000819050919050565b613c6381613c50565b8114613c6e57600080fd5b50565b600081359050613c8081613c5a565b92915050565b60008060408385031215613c9d57613c9c613bed565b5b6000613cab85828601613c3b565b9250506020613cbc85828601613c71565b9150509250929050565b60008115159050919050565b613cdb81613cc6565b82525050565b6000602082019050613cf66000830184613cd2565b92915050565b600080600060608486031215613d1557613d14613bed565b5b6000613d2386828701613c3b565b9350506020613d3486828701613c3b565b9250506040613d4586828701613c3b565b9150509250925092565b613d5881613c50565b82525050565b6000602082019050613d736000830184613d4f565b92915050565b600080600060608486031215613d9257613d91613bed565b5b6000613da086828701613c3b565b9350506020613db186828701613c3b565b9250506040613dc286828701613c71565b9150509250925092565b600060ff82169050919050565b613de281613dcc565b82525050565b6000602082019050613dfd6000830184613dd9565b92915050565b613e0c81613dcc565b8114613e1757600080fd5b50565b600081359050613e2981613e03565b92915050565b613e3881613cc6565b8114613e4357600080fd5b50565b600081359050613e5581613e2f565b92915050565b60008060408385031215613e7257613e71613bed565b5b6000613e8085828601613e1a565b9250506020613e9185828601613e46565b9150509250929050565b600061ffff82169050919050565b613eb281613e9b565b8114613ebd57600080fd5b50565b600081359050613ecf81613ea9565b92915050565b60008060408385031215613eec57613eeb613bed565b5b6000613efa85828601613ec0565b9250506020613f0b85828601613ec0565b9150509250929050565b600060208284031215613f2b57613f2a613bed565b5b6000613f3984828501613c71565b91505092915050565b60008060408385031215613f5957613f58613bed565b5b6000613f6785828601613e1a565b9250506020613f7885828601613e1a565b9150509250929050565b600080600060608486031215613f9b57613f9a613bed565b5b6000613fa986828701613c3b565b9350506020613fba86828701613e46565b9250506040613fcb86828701613e46565b9150509250925092565b600060208284031215613feb57613fea613bed565b5b6000613ff984828501613c3b565b91505092915050565b61400b81613e9b565b82525050565b60006060820190506140266000830186614002565b6140336020830185614002565b6140406040830184614002565b949350505050565b61405181613c12565b82525050565b600060208201905061406c6000830184614048565b92915050565b60008060006060848603121561408b5761408a613bed565b5b600061409986828701613ec0565b93505060206140aa86828701613ec0565b92505060406140bb86828701613ec0565b9150509250925092565b600063ffffffff82169050919050565b6140de816140c5565b81146140e957600080fd5b50565b6000813590506140fb816140d5565b92915050565b6000806000806080858703121561411b5761411a613bed565b5b6000614129878288016140ec565b945050602061413a878288016140ec565b935050604061414b878288016140ec565b925050606061415c878288016140ec565b91505092959194509250565b6000806040838503121561417f5761417e613bed565b5b600061418d85828601613c3b565b925050602061419e85828601613c3b565b9150509250929050565b60006141b382613bf2565b9050919050565b6141c3816141a8565b81146141ce57600080fd5b50565b6000813590506141e0816141ba565b92915050565b6000602082840312156141fc576141fb613bed565b5b600061420a848285016141d1565b91505092915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000600082015250565b6000614249601883613b46565b915061425482614213565b602082019050919050565b600060208201905081810360008301526142788161423c565b9050919050565b7f4c502063616e6e6f74206265207461782077616c6c6574000000000000000000600082015250565b60006142b5601783613b46565b91506142c08261427f565b602082019050919050565b600060208201905081810360008301526142e4816142a8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156143715780860481111561434d5761434c6142eb565b5b600185161561435c5780820291505b808102905061436a8561431a565b9450614331565b94509492505050565b60008261438a5760019050614446565b816143985760009050614446565b81600181146143ae57600281146143b8576143e7565b6001915050614446565b60ff8411156143ca576143c96142eb565b5b8360020a9150848211156143e1576143e06142eb565b5b50614446565b5060208310610133831016604e8410600b841016171561441c5782820a905083811115614417576144166142eb565b5b614446565b6144298484846001614327565b925090508184048111156144405761443f6142eb565b5b81810290505b9392505050565b600061445882613c50565b915061446383613dcc565b92506144907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461437a565b905092915050565b60006144a382613c50565b91506144ae83613c50565b92508282026144bc81613c50565b915082820484148315176144d3576144d26142eb565b5b5092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000614510601083613b46565b915061451b826144da565b602082019050919050565b6000602082019050818103600083015261453f81614503565b9050919050565b600061455182613c50565b915061455c83613c50565b9250828203905081811115614574576145736142eb565b5b92915050565b7f43616e6e6f742073776170206d6f7265207468616e2031303025000000000000600082015250565b60006145b0601a83613b46565b91506145bb8261457a565b602082019050919050565b600060208201905081810360008301526145df816145a3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061462082613c50565b915061462b83613c50565b92508261463b5761463a6145e6565b5b828204905092915050565b7f4e6f204554480000000000000000000000000000000000000000000000000000600082015250565b600061467c600683613b46565b915061468782614646565b602082019050919050565b600060208201905081810360008301526146ab8161466f565b9050919050565b60006146bd82613c50565b91506146c883613c50565b92508282019050808211156146e0576146df6142eb565b5b92915050565b7f747820746f6f206c6f7700000000000000000000000000000000000000000000600082015250565b600061471c600a83613b46565b9150614727826146e6565b602082019050919050565b6000602082019050818103600083015261474b8161470f565b9050919050565b7f77616c6c657420746f6f206c6f77000000000000000000000000000000000000600082015250565b6000614788600e83613b46565b915061479382614752565b602082019050919050565b600060208201905081810360008301526147b78161477b565b9050919050565b7f62616c616e636520746f6f206c6f770000000000000000000000000000000000600082015250565b60006147f4600f83613b46565b91506147ff826147be565b602082019050919050565b60006020820190508181036000830152614823816147e7565b9050919050565b600061483582613dcc565b915061484083613dcc565b9250828201905060ff811115614859576148586142eb565b5b92915050565b7f526f756e647472697020746f6f20686967680000000000000000000000000000600082015250565b6000614895601283613b46565b91506148a08261485f565b602082019050919050565b600060208201905081810360008301526148c481614888565b9050919050565b7f43616e6e6f74206578656d7074204c5000000000000000000000000000000000600082015250565b6000614901601083613b46565b915061490c826148cb565b602082019050919050565b60006020820190508181036000830152614930816148f4565b9050919050565b600061494282613e9b565b915061494d83613e9b565b9250828201905061ffff811115614967576149666142eb565b5b92915050565b7f416c6c2063616e6e6f7420626520300000000000000000000000000000000000600082015250565b60006149a3600f83613b46565b91506149ae8261496d565b602082019050919050565b600060208201905081810360008301526149d281614996565b9050919050565b7f4d696e2f4d6178206572726f7200000000000000000000000000000000000000600082015250565b6000614a0f600d83613b46565b9150614a1a826149d9565b602082019050919050565b60006020820190508181036000830152614a3e81614a02565b9050919050565b7f4d617820746f6f206c6f77000000000000000000000000000000000000000000600082015250565b6000614a7b600b83613b46565b9150614a8682614a45565b602082019050919050565b60006020820190508181036000830152614aaa81614a6e565b9050919050565b7f4d617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000614ae7600c83613b46565b9150614af282614ab1565b602082019050919050565b60006020820190508181036000830152614b1681614ada565b9050919050565b7f4c50206578697374730000000000000000000000000000000000000000000000600082015250565b6000614b53600983613b46565b9150614b5e82614b1d565b602082019050919050565b60006020820190508181036000830152614b8281614b46565b9050919050565b7f74726164696e67206973206f70656e0000000000000000000000000000000000600082015250565b6000614bbf600f83613b46565b9150614bca82614b89565b602082019050919050565b60006020820190508181036000830152614bee81614bb2565b9050919050565b7f4e6f2045544820696e20636f6e7472616374206f72206d657373616765000000600082015250565b6000614c2b601d83613b46565b9150614c3682614bf5565b602082019050919050565b60006020820190508181036000830152614c5a81614c1e565b9050919050565b7f4e6f20746f6b656e7320696e20636f6e74726163740000000000000000000000600082015250565b6000614c97601583613b46565b9150614ca282614c61565b602082019050919050565b60006020820190508181036000830152614cc681614c8a565b9050919050565b600081519050614cdc81613c24565b92915050565b600060208284031215614cf857614cf7613bed565b5b6000614d0684828501614ccd565b91505092915050565b6000604082019050614d246000830185614048565b614d316020830184614048565b9392505050565b600081519050919050565b600081905092915050565b6000614d5982614d38565b614d638185614d43565b9350614d73818560208601613b57565b80840191505092915050565b6000614d8b8284614d4e565b915081905092915050565b7f4661696c656420616464696e67206c6971756964697479000000000000000000600082015250565b6000614dcc601783613b46565b9150614dd782614d96565b602082019050919050565b60006020820190508181036000830152614dfb81614dbf565b9050919050565b6000819050919050565b6000614e27614e22614e1d84613bf2565b614e02565b613bf2565b9050919050565b6000614e3982614e0c565b9050919050565b6000614e4b82614e2e565b9050919050565b614e5b81614e40565b82525050565b6000602082019050614e766000830184614e52565b92915050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b6000614eb2601d83613b46565b9150614ebd82614e7c565b602082019050919050565b60006020820190508181036000830152614ee181614ea5565b9050919050565b7f4d455620626c6f636b6564000000000000000000000000000000000000000000600082015250565b6000614f1e600b83613b46565b9150614f2982614ee8565b602082019050919050565b60006020820190508181036000830152614f4d81614f11565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b6000614f8a601183613b46565b9150614f9582614f54565b602082019050919050565b60006020820190508181036000830152614fb981614f7d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061504361503e6150398461501e565b614e02565b613c50565b9050919050565b61505381615028565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61508e81613c12565b82525050565b60006150a08383615085565b60208301905092915050565b6000602082019050919050565b60006150c482615059565b6150ce8185615064565b93506150d983615075565b8060005b8381101561510a5781516150f18882615094565b97506150fc836150ac565b9250506001810190506150dd565b5085935050505092915050565b600060a08201905061512c6000830188613d4f565b615139602083018761504a565b818103604083015261514b81866150b9565b905061515a6060830185614048565b6151676080830184613d4f565b9695505050505050565b600060c0820190506151866000830189614048565b6151936020830188613d4f565b6151a0604083018761504a565b6151ad606083018661504a565b6151ba6080830185614048565b6151c760a0830184613d4f565b979650505050505050565b6000815190506151e181613c5a565b92915050565b600080600060608486031215615200576151ff613bed565b5b600061520e868287016151d2565b935050602061521f868287016151d2565b9250506040615230868287016151d2565b915050925092509256fea2646970667358221220ef5271d4cd48ad36c6f7577ff7e1406ff7115aec8da2d685e34500fa5ebb132564736f6c63430008130033
Deployed Bytecode Sourcemap
2614:15881:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5869:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6207:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13328:535;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5599:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6664:404;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12204:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17656:567;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5693:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14270:462;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18231:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14076:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12116:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14172:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12480:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11858:250;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11620:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12296:178;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;5955:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2421:137;;;;;;;;;;;;;:::i;:::-;;13108:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12666:434;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11737:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2171:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5779:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14740:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6431:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13215:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13972:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6066:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7401:805;;;:::i;:::-;;2258:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13871:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5869:80;5917:13;5941:5;;;;;;;;;;;;;;;;;5934:12;;5869:80;:::o;6207:216::-;6282:4;6334:6;6299:11;:23;6311:10;6299:23;;;;;;;;;;;;;;;:32;6323:7;6299:32;;;;;;;;;;;;;;;:41;;;;6377:7;6356:37;;6365:10;6356:37;;;6386:6;6356:37;;;;;;:::i;:::-;;;;;;;;6411:4;6404:11;;6207:216;;;;:::o;13328:535::-;2108:6;;;;;;;;;;2094:20;;:10;:20;;;2086:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;13448:5:::1;:16;13454:9;13448:16;;;;;;;;;;;;;;;;;;;;;;;;;13447:17;:40;;;;;13469:5;:18;13475:11;13469:18;;;;;;;;;;;;;;;;;;;;;;;;;13468:19;13447:40;:60;;;;;13492:5;:15;13498:8;13492:15;;;;;;;;;;;;;;;;;;;;;;;;;13491:16;13447:60;13439:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;13583:9;13556:16;;:37;;;;;;;;;;;;;;;;;;13633:11;13604:18;;:41;;;;;;;;;;;;;;;;;;13667:8;13656;;:19;;;;;;;;;;;;;;;;;;13717:4;13696:7;:18;13704:9;13696:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;13755:4;13732:9;:20;13742:9;13732:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;13803:4;13780:7;:20;13788:11;13780:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;13851:4;13826:9;:22;13836:11;13826:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;13328:535:::0;;;:::o;5599:88::-;5654:7;2695:1;2757:2;:13;;;;:::i;:::-;2743:10;:28;;;;:::i;:::-;5665:19;;5599:88;:::o;6664:404::-;6764:4;6789:25;6807:6;6789:17;:25::i;:::-;6781:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;6884:17;6849:11;:19;6861:6;6849:19;;;;;;;;;;;;;;;:31;6869:10;6849:31;;;;;;;;;;;;;;;;:52;6846:157;;6985:6;6951:11;:19;6963:6;6951:19;;;;;;;;;;;;;;;:31;6971:10;6951:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;6917:11;:19;6929:6;6917:19;;;;;;;;;;;;;;;:31;6937:10;6917:31;;;;;;;;;;;;;;;:74;;;;6846:157;7020:40;7034:6;7042:9;7053:6;7020:13;:40::i;:::-;7013:47;;6664:404;;;;;:::o;12204:84::-;12245:5;12270:10;;;;;;;;;;;12263:17;;12204:84;:::o;17656:567::-;2108:6;;;;;;;;;;2094:20;;:10;:20;;;2086:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4589:4:::1;4576:10;;:17;;;;;;;;;;;;;;;;;;17794:3:::2;17774:16;:23;;;;17766:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;17839:20;17908:3;17889:16;17862:43;;:9;:24;17880:4;17862:24;;;;;;;;;;;;;;;;:43;;;;:::i;:::-;:49;;;;:::i;:::-;17839:72;;2695:1;17941:2;:15;;;;:::i;:::-;17926:12;:30;17922:97;;;17973:34;17994:12;17973:20;:34::i;:::-;17922:97;18033:7;18029:187;;;18058:18;18079:21;18058:42;;18136:1;18123:10;:14;18115:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;18163:40;18181:21;18163:17;:40::i;:::-;18042:174;18029:187;17755:468;4631:5:::1;4618:10;;:18;;;;;;;;;;;;;;;;;;17656:567:::0;;:::o;5693:80::-;5745:5;2695:1;5754:16;;5693:80;:::o;14270:462::-;2108:6;;;;;;;;;;2094:20;;:10;:20;;;2086:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;14376:16:::1;14442:1;14435:4;14410:22;14395:37;;2695:1;2757:2;:13;;;;:::i;:::-;2743:10;:28;;;;:::i;:::-;14395:37;;;;:::i;:::-;:44;;;;:::i;:::-;:48;;;;:::i;:::-;14376:67;;14474:12;;14462:8;:24;;14454:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;14527:8;14512:12;:23;;;;14546:20;14611:1;14604:4;14584:17;14569:32;;2695:1;2757:2;:13;;;;:::i;:::-;2743:10;:28;;;;:::i;:::-;14569:32;;;;:::i;:::-;:39;;;;:::i;:::-;:43;;;;:::i;:::-;14546:66;;14647:16;;14631:12;:32;;14623:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;14712:12;14693:16;:31;;;;14365:367;;14270:462:::0;;:::o;18231:261::-;18281:24;18308:21;18318:10;18308:9;:21::i;:::-;18281:48;;18358:16;18348:6;:26;;18340:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;18405:31;18417:10;18429:6;18405:11;:31::i;:::-;18465:10;18452:32;;;18477:6;18452:32;;;;;;:::i;:::-;;;;;;;;18270:222;18231:261;:::o;14076:90::-;14120:7;14147:11;;14140:18;;14076:90;:::o;12116:82::-;12156:5;12181:9;;;;;;;;;;;12174:16;;12116:82;:::o;14172:90::-;14216:7;14243:11;;14236:18;;14172:90;:::o;12480:178::-;2108:6;;;;;;;;;;2094:20;;:10;:20;;;2086:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;12572:1:::1;12564:4;12558:3;:10;;;;:::i;:::-;:15;;;;12550:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;12619:3;12607:9;;:15;;;;;;;;;;;;;;;;;;12646:4;12633:10;;:17;;;;;;;;;;;;;;;;;;12480:178:::0;;:::o;11858:250::-;2108:6;;;;;;;;;;2094:20;;:10;:20;;;2086:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;11955:8:::1;:18;;;;11967:6;11955:18;11951:72;;;11986:5;:13;11992:6;11986:13;;;;;;;;;;;;;;;;;;;;;;;;;11985:14;11977:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;11951:72;12053:6;12033:7;:17;12042:6;12033:17;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;12092:8;12070:9;:19;12081:6;12070:19;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;11858:250:::0;;;:::o;11620:110::-;11683:4;11707:7;:15;11715:6;11707:15;;;;;;;;;;;;;;;;;;;;;;;;;11700:22;;11620:110;;;:::o;12296:178::-;12339:16;12357:18;12377:9;12409:19;;;;;;;;;;12430:21;;;;;;;;;;;12453:12;;;;;;;;;;;12400:66;;;;;;12296:178;;;:::o;5955:105::-;6021:7;6039:9;:18;6049:7;6039:18;;;;;;;;;;;;;;;;6032:25;;5955:105;;;:::o;2421:137::-;2108:6;;;;;;;;;;2094:20;;:10;:20;;;2086:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;2498:1:::1;2481:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2517:32;2546:1;2517:32;;;;;;:::i;:::-;;;;;;;;2421:137::o:0;13108:101::-;13158:7;13185:16;;;;;;;;;;;13178:23;;13108:101;:::o;12666:434::-;2108:6;;;;;;;;;;2094:20;;:10;:20;;;2086:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;12788:18:::1;12842:17;12824:15;12809:12;:30;;;;:::i;:::-;:50;;;;:::i;:::-;12788:71;;12893:1;12879:11;:15;;;12870:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;12940:12;12925;;:27;;;;;;;;;;;;;;;;;;12985:15;12963:19;::::0;:37:::1;;;;;;;;;;;;;;;;;;13035:17;13011:21;;:41;;;;;;;;;;;;;;;;;;13081:11;13063:15;;:29;;;;;;;;;;;;;;;;;;12777:323;12666:434:::0;;;:::o;11737:114::-;11802:4;11826:9;:17;11836:6;11826:17;;;;;;;;;;;;;;;;;;;;;;;;;11819:24;;11737:114;;;:::o;2171:81::-;2209:7;2237:6;;;;;;;;;;;2230:13;;2171:81;:::o;5779:84::-;5829:13;5853:7;;;;;;;;;;;;;;;;;5846:14;;5779:84;:::o;14740:436::-;2108:6;;;;;;;;;;2094:20;;:10;:20;;;2086:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;14902:10:::1;14876:36;;14891:8;14876:23;;2695:1;2757:2;:13;;;;:::i;:::-;2743:10;:28;;;;:::i;:::-;14876:23;;;;:::i;:::-;:36;;;;:::i;:::-;14862:11;:50;;;;14963:10;14937:36;;14952:8;14937:23;;2695:1;2757:2;:13;;;;:::i;:::-;2743:10;:28;;;;:::i;:::-;14937:23;;;;:::i;:::-;:36;;;;:::i;:::-;14923:11;:50;;;;15005:11;;14992;;:24;;14984:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;15080:6;2695:1;2757:2;:13;;;;:::i;:::-;2743:10;:28;;;;:::i;:::-;15065:21;;;;:::i;:::-;15053:11;;:33;15045:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;15148:3;2695:1;2757:2;:13;;;;:::i;:::-;2743:10;:28;;;;:::i;:::-;15133:18;;;;:::i;:::-;15121:11;;:30;15113:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;14740:436:::0;;;;:::o;6431:225::-;6511:4;6536:29;6554:10;6536:17;:29::i;:::-;6528:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;6604:44;6618:10;6630:9;6641:6;6604:13;:44::i;:::-;6597:51;;6431:225;;;;:::o;13215:105::-;13267:7;13294:18;;;;;;;;;;;13287:25;;13215:105;:::o;13972:96::-;14021:7;14048:12;;14041:19;;13972:96;:::o;6066:133::-;6150:7;6168:11;:19;6180:6;6168:19;;;;;;;;;;;;;;;:28;6188:7;6168:28;;;;;;;;;;;;;;;;6161:35;;6066:133;;;;:::o;7401:805::-;2108:6;;;;;;;;;;2094:20;;:10;:20;;;2086:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4589:4:::1;4576:10;;:17;;;;;;;;;;;;;;;;;;7505:1:::2;7483:24;;:10;;;;;;;;;;;:24;;;7475:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;7541:12;;;;;;;;;;;7540:13;7532:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;7604:1;7592:9;:13;:40;;;;7631:1;7609:21;:23;7592:40;7584:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;7710:1;7685:9;:24;7703:4;7685:24;;;;;;;;;;;;;;;;:26;7677:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7779:18;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7761:58;;;7828:4;7835:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7761:100;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7748:10;;:113;;;;;;;;;;;;;;;;;;7872:69;7886:9;:24;7904:4;7886:24;;;;;;;;;;;;;;;;7912:21;7935:5;7872:13;:69::i;:::-;7977:10;;7952:9;:21;7962:10;;;;;;;;;;;7952:21;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;7999:17;8021:10;;;;;;;;;;;:15;;8037:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8021:50;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7998:73;;;8090:12;8082:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;8161:12;8141:5;:17;8147:10;;;;;;;;;;;8141:17;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;8184:14;:12;:14::i;:::-;7464:742;4631:5:::1;4618:10;;:18;;;;;;;;;;;;;;;;;;7401:805::o:0;2258:157::-;2108:6;;;;;;;;;;2094:20;;:10;:20;;;2086:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;2351:8:::1;2342:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2376:30;2397:8;2376:30;;;;;;:::i;:::-;;;;;;;;2258:157:::0;:::o;13871:95::-;13915:7;13942:16;;13935:23;;13871:95;:::o;10501:279::-;10566:4;10582:16;10601:5;10582:24;;10622:12;;;;;;;;;;;10617:124;;;10653:4;10639:18;;10617:124;;;10680:7;:15;10688:6;10680:15;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;;;10699:9;:17;10709:6;10699:17;;;;;;;;;;;;;;;;;;;;;;;;;10680:36;10676:65;;;10734:4;10720:18;;10676:65;10617:124;10761:11;10754:18;;;10501:279;;;:::o;8916:1074::-;9008:4;9051:1;9033:20;;:6;:20;;;9025:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9103:12;;;;;;;;;;;9098:89;;9127:7;:15;9135:6;9127:15;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;;;9146:9;:17;9156:6;9146:17;;;;;;;;;;;;;;;;;;;;;;;;;9127:36;9119:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;9098:89;9203:10;;;;;;;;;;;9202:11;:31;;;;;9217:5;:16;9223:9;9217:16;;;;;;;;;;;;;;;;;;;;;;;;;9202:31;9197:64;;;9238:20;:18;:20::i;:::-;9197:64;9291:13;;9276:12;:28;:60;;;;;9324:12;;9308;:28;;9276:60;:77;;;;;9340:5;:13;9346:6;9340:13;;;;;;;;;;;;;;;;;;;;;;;;;9276:77;9271:158;;;9392:9;9379:22;;:9;:22;;;9371:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;9271:158;9462:4;9444:23;;:6;:23;;;;:53;;;;;9492:4;9471:26;;:9;:26;;;;9444:53;:73;;;;;9511:6;;;;;;;;;;9501:16;;:6;:16;;;;9444:73;9439:179;;;9544:39;9557:6;9565:9;9576:6;9544:12;:39::i;:::-;9536:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;9439:179;9628:18;9649:40;9663:6;9671:9;9682:6;9649:13;:40::i;:::-;9628:61;;9700:23;9735:10;9726:6;:19;;;;:::i;:::-;9700:45;;9796:6;9776:9;:17;9786:6;9776:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;9756:9;:17;9766:6;9756:17;;;;;;;;;;;;;;;:46;;;;9827:10;9813;;:24;;;;;;;:::i;:::-;;;;;;;;9894:15;9871:9;:20;9881:9;9871:20;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;9848:9;:20;9858:9;9848:20;;;;;;;;;;;;;;;:61;;;;9942:9;9925:35;;9934:6;9925:35;;;9953:6;9925:35;;;;;;:::i;:::-;;;;;;;;9978:4;9971:11;;;;8916:1074;;;;;:::o;16733:366::-;16803:27;16818:11;16803:14;:27::i;:::-;16841:21;16879:1;16865:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16841:40;;16910:4;16892;16897:1;16892:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16936:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16926:4;16931:1;16926:7;;;;;;;;:::i;:::-;;;;;;;:35;;;;;;;;;;;16972:18;;;;;;;;;;;:69;;;17042:11;17054:1;17056:4;17069;17075:15;16972:119;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16792:307;16733:366;:::o;17107:541::-;17169:21;17215;;;;;;;;;;;17193:19;;;;;;;;;;:43;;;;:::i;:::-;17169:67;;17268:1;17251:14;:18;;;17247:394;;;17286:23;17343:14;17312:45;;17321:19;;;;;;;;;;17312:28;;:6;:28;;;;:::i;:::-;:45;;;;:::i;:::-;17286:71;;17372:25;17433:14;17400:47;;17409:21;;;;;;;;;;;17400:30;;:6;:30;;;;:::i;:::-;:47;;;;:::i;:::-;17372:75;;17485:1;17467:15;:19;17462:74;;;17491:16;;;;;;;;;;;:25;;:42;17517:15;17491:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17462:74;17575:1;17555:17;:21;17550:80;;;17581:18;;;;;;;;;;;:27;;:46;17609:17;17581:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17550:80;17271:370;;17247:394;17158:490;17107:541;:::o;15184:265::-;15274:1;15265:6;:10;15260:182;;;15318:6;15293:9;:21;15303:10;15293:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;15364:6;15339:9;:21;15357:1;15339:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;15419:1;15390:40;;15399:10;15390:40;;;15423:6;15390:40;;;;;;:::i;:::-;;;;;;;;15260:182;15184:265;;:::o;8214:385::-;8317:24;8344:8;;;;;;;;;;;8317:35;;8368:8;8363:50;;;8408:1;8381:29;;8363:50;8423:28;8438:12;8423:14;:28::i;:::-;8462:18;;;;;;;;;;;:34;;;8504:13;8529:4;8536:12;8550:1;8553;8556:16;8574:15;8462:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8306:293;8214:385;;;:::o;8607:301::-;8689:3;8685:1;2695;2757:2;:13;;;;:::i;:::-;2743:10;:28;;;;:::i;:::-;8670:16;;;;:::i;:::-;:22;;;;:::i;:::-;8651:12;:41;;;;8742:3;8738:1;2695;2757:2;:13;;;;:::i;:::-;2743:10;:28;;;;:::i;:::-;8723:16;;;;:::i;:::-;:22;;;;:::i;:::-;8704:16;:41;;;;8771:4;8756:12;;:19;;;;;;;;;;;;;;;;;;8801:12;8786;:27;;;;8887:13;;;;;;;;;;;8840:60;;8871:13;;;;;;;;;;;8840:44;;8856:12;;8840:13;;:28;;;;:::i;:::-;:44;;;;:::i;:::-;:60;;;;:::i;:::-;8824:13;:76;;;;8607:301::o;15457:1268::-;4589:4;4576:10;;:17;;;;;;;;;;;;;;;;;;15518:27:::1;15548:10;;15518:40;;15597:11;;15574:19;:34;;:50;;;;;15612:12;;;;;;;;;;;15574:50;15569:1149;;;15670:11;;15647:19;:34;15642:80;;15708:11;;15686:33;;15642:80;15736:20;15814:1;15796:15:::0;::::1;;;;;;;;;;15759:52;;15781:12;;;;;;;;;;;15759:34;;:19;:34;;;;:::i;:::-;:52;;;;:::i;:::-;:56;;;;:::i;:::-;15736:79;;15844:21;15890:12;15868:19;:34;;;;:::i;:::-;15844:58;;2695:1;15937:2;:13;;;;:::i;:::-;15921;:29;15917:639;;;15972:19;15994:21;15972:43;;16062:19;16034:9;:24;16052:4;16034:24;;;;;;;;;;;;;;;;:47;;;;;;;:::i;:::-;;;;;;;;16100:35;16121:13;16100:20;:35::i;:::-;16168:19;16154:10;;:33;;;;;;;:::i;:::-;;;;;;;;16206:19;16252:11;16228:21;:35;;;;:::i;:::-;16206:57;;16302:1;16287:12;;;;;;;;;;;:16;;;16282:259;;;16329:21;16382:15;;;;;;;;;;;16353:44;;16367:12;;;;;;;;;;;16353:26;;:11;:26;;;;:::i;:::-;:44;;;;:::i;:::-;16329:68;;16421:28;16436:12;16421:14;:28::i;:::-;16472:49;16486:12;16500:13;16515:5;16472:13;:49::i;:::-;16306:235;16282:259;15953:603;;15917:639;16570:27;16600:21;16570:51;;16661:1;16639:19;:23;16636:71;;;16666:38;16684:19;16666:17;:38::i;:::-;16636:71;15627:1091;;;15569:1149;15507:1218;4631:5:::0;4618:10;;:18;;;;;;;;;;;;;;;;;;15457:1268::o;9998:495::-;10102:4;10119:21;10143:4;10119:28;;10163:12;;;;;;;;;;;:34;;;;;10180:9;:17;10190:6;10180:17;;;;;;;;;;;;;;;;;;;;;;;;;10179:18;10163:34;:59;;;;;10202:9;:20;10212:9;10202:20;;;;;;;;;;;;;;;;;;;;;;;;;10201:21;10163:59;10158:294;;;10262:12;;10245:14;:29;10240:201;;;10298:5;10279:24;;10240:201;;;10331:5;:16;10337:9;10331:16;;;;;;;;;;;;;;;;;;;;;;;;;10330:17;:79;;;;;10392:16;;10375:14;10352:9;:20;10362:9;10352:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;:56;10330:79;10325:116;;;10433:5;10414:24;;10325:116;10240:201;10158:294;10469:16;10462:23;;;9998:495;;;;;:::o;10788:822::-;10885:7;10905:17;10949:12;;;;;;;;;;;10948:13;:32;;;;10965:7;:15;10973:6;10965:15;;;;;;;;;;;;;;;;;;;;;;;;;10948:32;:54;;;;10984:7;:18;10992:9;10984:18;;;;;;;;;;;;;;;;;;;;;;;;;10948:54;10943:631;;;11033:1;11021:13;;10943:631;;;11058:5;:13;11064:6;11058:13;;;;;;;;;;;;;;;;;;;;;;;;;11053:521;;;11142:13;;;;;;;;;;;11111:44;;11126:13;;;;;;;;;;;11111:28;;:12;;:28;;;;:::i;:::-;:44;;;;:::i;:::-;11095:12;:60;11090:377;;11210:3;11198:9;;;;;;;;;;;11189:18;;:6;:18;;;;:::i;:::-;:24;;;;:::i;:::-;11177:36;;11090:377;;;11272:13;;;;;;;;;;;11257:28;;:12;;:28;;;;:::i;:::-;11241:12;:44;11236:231;;11338:3;11328:7;;;;;;;;;;;11319:16;;:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;11307:34;;11236:231;;;11384:12;;11368;:28;11363:104;;11448:3;11438:7;;;;;;;;;;;11429:16;;:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;11417:34;;11363:104;11236:231;11090:377;11053:521;;;11489:5;:16;11495:9;11489:16;;;;;;;;;;;;;;;;;;;;;;;;;11484:90;;;11558:3;11545:10;;;;;;;;;;;11536:19;;:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;11524:37;;11484:90;11053:521;10943:631;11593:9;11586:16;;;10788:822;;;;;:::o;7076:317::-;7196:12;7147:11;:26;7167:4;7147:26;;;;;;;;;;;;;;;:46;4247:42;7147:46;;;;;;;;;;;;;;;;:61;7142:244;;;7275:17;7226:11;:26;7246:4;7226:26;;;;;;;;;;;;;;;:46;4247:42;7226:46;;;;;;;;;;;;;;;:66;;;;4247:42;7312:62;;7329:4;7312:62;;;7356:17;7312:62;;;;;;:::i;:::-;;;;;;;;7142:244;7076:317;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:619::-;3523:6;3531;3539;3588:2;3576:9;3567:7;3563:23;3559:32;3556:119;;;3594:79;;:::i;:::-;3556:119;3714:1;3739:53;3784:7;3775:6;3764:9;3760:22;3739:53;:::i;:::-;3729:63;;3685:117;3841:2;3867:53;3912:7;3903:6;3892:9;3888:22;3867:53;:::i;:::-;3857:63;;3812:118;3969:2;3995:53;4040:7;4031:6;4020:9;4016:22;3995:53;:::i;:::-;3985:63;;3940:118;3446:619;;;;;:::o;4071:118::-;4158:24;4176:5;4158:24;:::i;:::-;4153:3;4146:37;4071:118;;:::o;4195:222::-;4288:4;4326:2;4315:9;4311:18;4303:26;;4339:71;4407:1;4396:9;4392:17;4383:6;4339:71;:::i;:::-;4195:222;;;;:::o;4423:619::-;4500:6;4508;4516;4565:2;4553:9;4544:7;4540:23;4536:32;4533:119;;;4571:79;;:::i;:::-;4533:119;4691:1;4716:53;4761:7;4752:6;4741:9;4737:22;4716:53;:::i;:::-;4706:63;;4662:117;4818:2;4844:53;4889:7;4880:6;4869:9;4865:22;4844:53;:::i;:::-;4834:63;;4789:118;4946:2;4972:53;5017:7;5008:6;4997:9;4993:22;4972:53;:::i;:::-;4962:63;;4917:118;4423:619;;;;;:::o;5048:86::-;5083:7;5123:4;5116:5;5112:16;5101:27;;5048:86;;;:::o;5140:112::-;5223:22;5239:5;5223:22;:::i;:::-;5218:3;5211:35;5140:112;;:::o;5258:214::-;5347:4;5385:2;5374:9;5370:18;5362:26;;5398:67;5462:1;5451:9;5447:17;5438:6;5398:67;:::i;:::-;5258:214;;;;:::o;5478:118::-;5549:22;5565:5;5549:22;:::i;:::-;5542:5;5539:33;5529:61;;5586:1;5583;5576:12;5529:61;5478:118;:::o;5602:135::-;5646:5;5684:6;5671:20;5662:29;;5700:31;5725:5;5700:31;:::i;:::-;5602:135;;;;:::o;5743:116::-;5813:21;5828:5;5813:21;:::i;:::-;5806:5;5803:32;5793:60;;5849:1;5846;5839:12;5793:60;5743:116;:::o;5865:133::-;5908:5;5946:6;5933:20;5924:29;;5962:30;5986:5;5962:30;:::i;:::-;5865:133;;;;:::o;6004:464::-;6067:6;6075;6124:2;6112:9;6103:7;6099:23;6095:32;6092:119;;;6130:79;;:::i;:::-;6092:119;6250:1;6275:51;6318:7;6309:6;6298:9;6294:22;6275:51;:::i;:::-;6265:61;;6221:115;6375:2;6401:50;6443:7;6434:6;6423:9;6419:22;6401:50;:::i;:::-;6391:60;;6346:115;6004:464;;;;;:::o;6474:89::-;6510:7;6550:6;6543:5;6539:18;6528:29;;6474:89;;;:::o;6569:120::-;6641:23;6658:5;6641:23;:::i;:::-;6634:5;6631:34;6621:62;;6679:1;6676;6669:12;6621:62;6569:120;:::o;6695:137::-;6740:5;6778:6;6765:20;6756:29;;6794:32;6820:5;6794:32;:::i;:::-;6695:137;;;;:::o;6838:470::-;6904:6;6912;6961:2;6949:9;6940:7;6936:23;6932:32;6929:119;;;6967:79;;:::i;:::-;6929:119;7087:1;7112:52;7156:7;7147:6;7136:9;7132:22;7112:52;:::i;:::-;7102:62;;7058:116;7213:2;7239:52;7283:7;7274:6;7263:9;7259:22;7239:52;:::i;:::-;7229:62;;7184:117;6838:470;;;;;:::o;7314:329::-;7373:6;7422:2;7410:9;7401:7;7397:23;7393:32;7390:119;;;7428:79;;:::i;:::-;7390:119;7548:1;7573:53;7618:7;7609:6;7598:9;7594:22;7573:53;:::i;:::-;7563:63;;7519:117;7314:329;;;;:::o;7649:466::-;7713:6;7721;7770:2;7758:9;7749:7;7745:23;7741:32;7738:119;;;7776:79;;:::i;:::-;7738:119;7896:1;7921:51;7964:7;7955:6;7944:9;7940:22;7921:51;:::i;:::-;7911:61;;7867:115;8021:2;8047:51;8090:7;8081:6;8070:9;8066:22;8047:51;:::i;:::-;8037:61;;7992:116;7649:466;;;;;:::o;8121:607::-;8192:6;8200;8208;8257:2;8245:9;8236:7;8232:23;8228:32;8225:119;;;8263:79;;:::i;:::-;8225:119;8383:1;8408:53;8453:7;8444:6;8433:9;8429:22;8408:53;:::i;:::-;8398:63;;8354:117;8510:2;8536:50;8578:7;8569:6;8558:9;8554:22;8536:50;:::i;:::-;8526:60;;8481:115;8635:2;8661:50;8703:7;8694:6;8683:9;8679:22;8661:50;:::i;:::-;8651:60;;8606:115;8121:607;;;;;:::o;8734:329::-;8793:6;8842:2;8830:9;8821:7;8817:23;8813:32;8810:119;;;8848:79;;:::i;:::-;8810:119;8968:1;8993:53;9038:7;9029:6;9018:9;9014:22;8993:53;:::i;:::-;8983:63;;8939:117;8734:329;;;;:::o;9069:115::-;9154:23;9171:5;9154:23;:::i;:::-;9149:3;9142:36;9069:115;;:::o;9190:430::-;9333:4;9371:2;9360:9;9356:18;9348:26;;9384:69;9450:1;9439:9;9435:17;9426:6;9384:69;:::i;:::-;9463:70;9529:2;9518:9;9514:18;9505:6;9463:70;:::i;:::-;9543;9609:2;9598:9;9594:18;9585:6;9543:70;:::i;:::-;9190:430;;;;;;:::o;9626:118::-;9713:24;9731:5;9713:24;:::i;:::-;9708:3;9701:37;9626:118;;:::o;9750:222::-;9843:4;9881:2;9870:9;9866:18;9858:26;;9894:71;9962:1;9951:9;9947:17;9938:6;9894:71;:::i;:::-;9750:222;;;;:::o;9978:613::-;10052:6;10060;10068;10117:2;10105:9;10096:7;10092:23;10088:32;10085:119;;;10123:79;;:::i;:::-;10085:119;10243:1;10268:52;10312:7;10303:6;10292:9;10288:22;10268:52;:::i;:::-;10258:62;;10214:116;10369:2;10395:52;10439:7;10430:6;10419:9;10415:22;10395:52;:::i;:::-;10385:62;;10340:117;10496:2;10522:52;10566:7;10557:6;10546:9;10542:22;10522:52;:::i;:::-;10512:62;;10467:117;9978:613;;;;;:::o;10597:93::-;10633:7;10673:10;10666:5;10662:22;10651:33;;10597:93;;;:::o;10696:120::-;10768:23;10785:5;10768:23;:::i;:::-;10761:5;10758:34;10748:62;;10806:1;10803;10796:12;10748:62;10696:120;:::o;10822:137::-;10867:5;10905:6;10892:20;10883:29;;10921:32;10947:5;10921:32;:::i;:::-;10822:137;;;;:::o;10965:757::-;11047:6;11055;11063;11071;11120:3;11108:9;11099:7;11095:23;11091:33;11088:120;;;11127:79;;:::i;:::-;11088:120;11247:1;11272:52;11316:7;11307:6;11296:9;11292:22;11272:52;:::i;:::-;11262:62;;11218:116;11373:2;11399:52;11443:7;11434:6;11423:9;11419:22;11399:52;:::i;:::-;11389:62;;11344:117;11500:2;11526:52;11570:7;11561:6;11550:9;11546:22;11526:52;:::i;:::-;11516:62;;11471:117;11627:2;11653:52;11697:7;11688:6;11677:9;11673:22;11653:52;:::i;:::-;11643:62;;11598:117;10965:757;;;;;;;:::o;11728:474::-;11796:6;11804;11853:2;11841:9;11832:7;11828:23;11824:32;11821:119;;;11859:79;;:::i;:::-;11821:119;11979:1;12004:53;12049:7;12040:6;12029:9;12025:22;12004:53;:::i;:::-;11994:63;;11950:117;12106:2;12132:53;12177:7;12168:6;12157:9;12153:22;12132:53;:::i;:::-;12122:63;;12077:118;11728:474;;;;;:::o;12208:104::-;12253:7;12282:24;12300:5;12282:24;:::i;:::-;12271:35;;12208:104;;;:::o;12318:138::-;12399:32;12425:5;12399:32;:::i;:::-;12392:5;12389:43;12379:71;;12446:1;12443;12436:12;12379:71;12318:138;:::o;12462:155::-;12516:5;12554:6;12541:20;12532:29;;12570:41;12605:5;12570:41;:::i;:::-;12462:155;;;;:::o;12623:345::-;12690:6;12739:2;12727:9;12718:7;12714:23;12710:32;12707:119;;;12745:79;;:::i;:::-;12707:119;12865:1;12890:61;12943:7;12934:6;12923:9;12919:22;12890:61;:::i;:::-;12880:71;;12836:125;12623:345;;;;:::o;12974:174::-;13114:26;13110:1;13102:6;13098:14;13091:50;12974:174;:::o;13154:366::-;13296:3;13317:67;13381:2;13376:3;13317:67;:::i;:::-;13310:74;;13393:93;13482:3;13393:93;:::i;:::-;13511:2;13506:3;13502:12;13495:19;;13154:366;;;:::o;13526:419::-;13692:4;13730:2;13719:9;13715:18;13707:26;;13779:9;13773:4;13769:20;13765:1;13754:9;13750:17;13743:47;13807:131;13933:4;13807:131;:::i;:::-;13799:139;;13526:419;;;:::o;13951:173::-;14091:25;14087:1;14079:6;14075:14;14068:49;13951:173;:::o;14130:366::-;14272:3;14293:67;14357:2;14352:3;14293:67;:::i;:::-;14286:74;;14369:93;14458:3;14369:93;:::i;:::-;14487:2;14482:3;14478:12;14471:19;;14130:366;;;:::o;14502:419::-;14668:4;14706:2;14695:9;14691:18;14683:26;;14755:9;14749:4;14745:20;14741:1;14730:9;14726:17;14719:47;14783:131;14909:4;14783:131;:::i;:::-;14775:139;;14502:419;;;:::o;14927:180::-;14975:77;14972:1;14965:88;15072:4;15069:1;15062:15;15096:4;15093:1;15086:15;15113:102;15155:8;15202:5;15199:1;15195:13;15174:34;;15113:102;;;:::o;15221:848::-;15282:5;15289:4;15313:6;15304:15;;15337:5;15328:14;;15351:712;15372:1;15362:8;15359:15;15351:712;;;15467:4;15462:3;15458:14;15452:4;15449:24;15446:50;;;15476:18;;:::i;:::-;15446:50;15526:1;15516:8;15512:16;15509:451;;;15941:4;15934:5;15930:16;15921:25;;15509:451;15991:4;15985;15981:15;15973:23;;16021:32;16044:8;16021:32;:::i;:::-;16009:44;;15351:712;;;15221:848;;;;;;;:::o;16075:1073::-;16129:5;16320:8;16310:40;;16341:1;16332:10;;16343:5;;16310:40;16369:4;16359:36;;16386:1;16377:10;;16388:5;;16359:36;16455:4;16503:1;16498:27;;;;16539:1;16534:191;;;;16448:277;;16498:27;16516:1;16507:10;;16518:5;;;16534:191;16579:3;16569:8;16566:17;16563:43;;;16586:18;;:::i;:::-;16563:43;16635:8;16632:1;16628:16;16619:25;;16670:3;16663:5;16660:14;16657:40;;;16677:18;;:::i;:::-;16657:40;16710:5;;;16448:277;;16834:2;16824:8;16821:16;16815:3;16809:4;16806:13;16802:36;16784:2;16774:8;16771:16;16766:2;16760:4;16757:12;16753:35;16737:111;16734:246;;;16890:8;16884:4;16880:19;16871:28;;16925:3;16918:5;16915:14;16912:40;;;16932:18;;:::i;:::-;16912:40;16965:5;;16734:246;17005:42;17043:3;17033:8;17027:4;17024:1;17005:42;:::i;:::-;16990:57;;;;17079:4;17074:3;17070:14;17063:5;17060:25;17057:51;;;17088:18;;:::i;:::-;17057:51;17137:4;17130:5;17126:16;17117:25;;16075:1073;;;;;;:::o;17154:281::-;17212:5;17236:23;17254:4;17236:23;:::i;:::-;17228:31;;17280:25;17296:8;17280:25;:::i;:::-;17268:37;;17324:104;17361:66;17351:8;17345:4;17324:104;:::i;:::-;17315:113;;17154:281;;;;:::o;17441:410::-;17481:7;17504:20;17522:1;17504:20;:::i;:::-;17499:25;;17538:20;17556:1;17538:20;:::i;:::-;17533:25;;17593:1;17590;17586:9;17615:30;17633:11;17615:30;:::i;:::-;17604:41;;17794:1;17785:7;17781:15;17778:1;17775:22;17755:1;17748:9;17728:83;17705:139;;17824:18;;:::i;:::-;17705:139;17489:362;17441:410;;;;:::o;17857:166::-;17997:18;17993:1;17985:6;17981:14;17974:42;17857:166;:::o;18029:366::-;18171:3;18192:67;18256:2;18251:3;18192:67;:::i;:::-;18185:74;;18268:93;18357:3;18268:93;:::i;:::-;18386:2;18381:3;18377:12;18370:19;;18029:366;;;:::o;18401:419::-;18567:4;18605:2;18594:9;18590:18;18582:26;;18654:9;18648:4;18644:20;18640:1;18629:9;18625:17;18618:47;18682:131;18808:4;18682:131;:::i;:::-;18674:139;;18401:419;;;:::o;18826:194::-;18866:4;18886:20;18904:1;18886:20;:::i;:::-;18881:25;;18920:20;18938:1;18920:20;:::i;:::-;18915:25;;18964:1;18961;18957:9;18949:17;;18988:1;18982:4;18979:11;18976:37;;;18993:18;;:::i;:::-;18976:37;18826:194;;;;:::o;19026:176::-;19166:28;19162:1;19154:6;19150:14;19143:52;19026:176;:::o;19208:366::-;19350:3;19371:67;19435:2;19430:3;19371:67;:::i;:::-;19364:74;;19447:93;19536:3;19447:93;:::i;:::-;19565:2;19560:3;19556:12;19549:19;;19208:366;;;:::o;19580:419::-;19746:4;19784:2;19773:9;19769:18;19761:26;;19833:9;19827:4;19823:20;19819:1;19808:9;19804:17;19797:47;19861:131;19987:4;19861:131;:::i;:::-;19853:139;;19580:419;;;:::o;20005:180::-;20053:77;20050:1;20043:88;20150:4;20147:1;20140:15;20174:4;20171:1;20164:15;20191:185;20231:1;20248:20;20266:1;20248:20;:::i;:::-;20243:25;;20282:20;20300:1;20282:20;:::i;:::-;20277:25;;20321:1;20311:35;;20326:18;;:::i;:::-;20311:35;20368:1;20365;20361:9;20356:14;;20191:185;;;;:::o;20382:156::-;20522:8;20518:1;20510:6;20506:14;20499:32;20382:156;:::o;20544:365::-;20686:3;20707:66;20771:1;20766:3;20707:66;:::i;:::-;20700:73;;20782:93;20871:3;20782:93;:::i;:::-;20900:2;20895:3;20891:12;20884:19;;20544:365;;;:::o;20915:419::-;21081:4;21119:2;21108:9;21104:18;21096:26;;21168:9;21162:4;21158:20;21154:1;21143:9;21139:17;21132:47;21196:131;21322:4;21196:131;:::i;:::-;21188:139;;20915:419;;;:::o;21340:191::-;21380:3;21399:20;21417:1;21399:20;:::i;:::-;21394:25;;21433:20;21451:1;21433:20;:::i;:::-;21428:25;;21476:1;21473;21469:9;21462:16;;21497:3;21494:1;21491:10;21488:36;;;21504:18;;:::i;:::-;21488:36;21340:191;;;;:::o;21537:160::-;21677:12;21673:1;21665:6;21661:14;21654:36;21537:160;:::o;21703:366::-;21845:3;21866:67;21930:2;21925:3;21866:67;:::i;:::-;21859:74;;21942:93;22031:3;21942:93;:::i;:::-;22060:2;22055:3;22051:12;22044:19;;21703:366;;;:::o;22075:419::-;22241:4;22279:2;22268:9;22264:18;22256:26;;22328:9;22322:4;22318:20;22314:1;22303:9;22299:17;22292:47;22356:131;22482:4;22356:131;:::i;:::-;22348:139;;22075:419;;;:::o;22500:164::-;22640:16;22636:1;22628:6;22624:14;22617:40;22500:164;:::o;22670:366::-;22812:3;22833:67;22897:2;22892:3;22833:67;:::i;:::-;22826:74;;22909:93;22998:3;22909:93;:::i;:::-;23027:2;23022:3;23018:12;23011:19;;22670:366;;;:::o;23042:419::-;23208:4;23246:2;23235:9;23231:18;23223:26;;23295:9;23289:4;23285:20;23281:1;23270:9;23266:17;23259:47;23323:131;23449:4;23323:131;:::i;:::-;23315:139;;23042:419;;;:::o;23467:165::-;23607:17;23603:1;23595:6;23591:14;23584:41;23467:165;:::o;23638:366::-;23780:3;23801:67;23865:2;23860:3;23801:67;:::i;:::-;23794:74;;23877:93;23966:3;23877:93;:::i;:::-;23995:2;23990:3;23986:12;23979:19;;23638:366;;;:::o;24010:419::-;24176:4;24214:2;24203:9;24199:18;24191:26;;24263:9;24257:4;24253:20;24249:1;24238:9;24234:17;24227:47;24291:131;24417:4;24291:131;:::i;:::-;24283:139;;24010:419;;;:::o;24435:188::-;24473:3;24492:18;24508:1;24492:18;:::i;:::-;24487:23;;24524:18;24540:1;24524:18;:::i;:::-;24519:23;;24565:1;24562;24558:9;24551:16;;24588:4;24583:3;24580:13;24577:39;;;24596:18;;:::i;:::-;24577:39;24435:188;;;;:::o;24629:168::-;24769:20;24765:1;24757:6;24753:14;24746:44;24629:168;:::o;24803:366::-;24945:3;24966:67;25030:2;25025:3;24966:67;:::i;:::-;24959:74;;25042:93;25131:3;25042:93;:::i;:::-;25160:2;25155:3;25151:12;25144:19;;24803:366;;;:::o;25175:419::-;25341:4;25379:2;25368:9;25364:18;25356:26;;25428:9;25422:4;25418:20;25414:1;25403:9;25399:17;25392:47;25456:131;25582:4;25456:131;:::i;:::-;25448:139;;25175:419;;;:::o;25600:166::-;25740:18;25736:1;25728:6;25724:14;25717:42;25600:166;:::o;25772:366::-;25914:3;25935:67;25999:2;25994:3;25935:67;:::i;:::-;25928:74;;26011:93;26100:3;26011:93;:::i;:::-;26129:2;26124:3;26120:12;26113:19;;25772:366;;;:::o;26144:419::-;26310:4;26348:2;26337:9;26333:18;26325:26;;26397:9;26391:4;26387:20;26383:1;26372:9;26368:17;26361:47;26425:131;26551:4;26425:131;:::i;:::-;26417:139;;26144:419;;;:::o;26569:193::-;26608:3;26627:19;26644:1;26627:19;:::i;:::-;26622:24;;26660:19;26677:1;26660:19;:::i;:::-;26655:24;;26702:1;26699;26695:9;26688:16;;26725:6;26720:3;26717:15;26714:41;;;26735:18;;:::i;:::-;26714:41;26569:193;;;;:::o;26768:165::-;26908:17;26904:1;26896:6;26892:14;26885:41;26768:165;:::o;26939:366::-;27081:3;27102:67;27166:2;27161:3;27102:67;:::i;:::-;27095:74;;27178:93;27267:3;27178:93;:::i;:::-;27296:2;27291:3;27287:12;27280:19;;26939:366;;;:::o;27311:419::-;27477:4;27515:2;27504:9;27500:18;27492:26;;27564:9;27558:4;27554:20;27550:1;27539:9;27535:17;27528:47;27592:131;27718:4;27592:131;:::i;:::-;27584:139;;27311:419;;;:::o;27736:163::-;27876:15;27872:1;27864:6;27860:14;27853:39;27736:163;:::o;27905:366::-;28047:3;28068:67;28132:2;28127:3;28068:67;:::i;:::-;28061:74;;28144:93;28233:3;28144:93;:::i;:::-;28262:2;28257:3;28253:12;28246:19;;27905:366;;;:::o;28277:419::-;28443:4;28481:2;28470:9;28466:18;28458:26;;28530:9;28524:4;28520:20;28516:1;28505:9;28501:17;28494:47;28558:131;28684:4;28558:131;:::i;:::-;28550:139;;28277:419;;;:::o;28702:161::-;28842:13;28838:1;28830:6;28826:14;28819:37;28702:161;:::o;28869:366::-;29011:3;29032:67;29096:2;29091:3;29032:67;:::i;:::-;29025:74;;29108:93;29197:3;29108:93;:::i;:::-;29226:2;29221:3;29217:12;29210:19;;28869:366;;;:::o;29241:419::-;29407:4;29445:2;29434:9;29430:18;29422:26;;29494:9;29488:4;29484:20;29480:1;29469:9;29465:17;29458:47;29522:131;29648:4;29522:131;:::i;:::-;29514:139;;29241:419;;;:::o;29666:162::-;29806:14;29802:1;29794:6;29790:14;29783:38;29666:162;:::o;29834:366::-;29976:3;29997:67;30061:2;30056:3;29997:67;:::i;:::-;29990:74;;30073:93;30162:3;30073:93;:::i;:::-;30191:2;30186:3;30182:12;30175:19;;29834:366;;;:::o;30206:419::-;30372:4;30410:2;30399:9;30395:18;30387:26;;30459:9;30453:4;30449:20;30445:1;30434:9;30430:17;30423:47;30487:131;30613:4;30487:131;:::i;:::-;30479:139;;30206:419;;;:::o;30631:159::-;30771:11;30767:1;30759:6;30755:14;30748:35;30631:159;:::o;30796:365::-;30938:3;30959:66;31023:1;31018:3;30959:66;:::i;:::-;30952:73;;31034:93;31123:3;31034:93;:::i;:::-;31152:2;31147:3;31143:12;31136:19;;30796:365;;;:::o;31167:419::-;31333:4;31371:2;31360:9;31356:18;31348:26;;31420:9;31414:4;31410:20;31406:1;31395:9;31391:17;31384:47;31448:131;31574:4;31448:131;:::i;:::-;31440:139;;31167:419;;;:::o;31592:165::-;31732:17;31728:1;31720:6;31716:14;31709:41;31592:165;:::o;31763:366::-;31905:3;31926:67;31990:2;31985:3;31926:67;:::i;:::-;31919:74;;32002:93;32091:3;32002:93;:::i;:::-;32120:2;32115:3;32111:12;32104:19;;31763:366;;;:::o;32135:419::-;32301:4;32339:2;32328:9;32324:18;32316:26;;32388:9;32382:4;32378:20;32374:1;32363:9;32359:17;32352:47;32416:131;32542:4;32416:131;:::i;:::-;32408:139;;32135:419;;;:::o;32560:179::-;32700:31;32696:1;32688:6;32684:14;32677:55;32560:179;:::o;32745:366::-;32887:3;32908:67;32972:2;32967:3;32908:67;:::i;:::-;32901:74;;32984:93;33073:3;32984:93;:::i;:::-;33102:2;33097:3;33093:12;33086:19;;32745:366;;;:::o;33117:419::-;33283:4;33321:2;33310:9;33306:18;33298:26;;33370:9;33364:4;33360:20;33356:1;33345:9;33341:17;33334:47;33398:131;33524:4;33398:131;:::i;:::-;33390:139;;33117:419;;;:::o;33542:171::-;33682:23;33678:1;33670:6;33666:14;33659:47;33542:171;:::o;33719:366::-;33861:3;33882:67;33946:2;33941:3;33882:67;:::i;:::-;33875:74;;33958:93;34047:3;33958:93;:::i;:::-;34076:2;34071:3;34067:12;34060:19;;33719:366;;;:::o;34091:419::-;34257:4;34295:2;34284:9;34280:18;34272:26;;34344:9;34338:4;34334:20;34330:1;34319:9;34315:17;34308:47;34372:131;34498:4;34372:131;:::i;:::-;34364:139;;34091:419;;;:::o;34516:143::-;34573:5;34604:6;34598:13;34589:22;;34620:33;34647:5;34620:33;:::i;:::-;34516:143;;;;:::o;34665:351::-;34735:6;34784:2;34772:9;34763:7;34759:23;34755:32;34752:119;;;34790:79;;:::i;:::-;34752:119;34910:1;34935:64;34991:7;34982:6;34971:9;34967:22;34935:64;:::i;:::-;34925:74;;34881:128;34665:351;;;;:::o;35022:332::-;35143:4;35181:2;35170:9;35166:18;35158:26;;35194:71;35262:1;35251:9;35247:17;35238:6;35194:71;:::i;:::-;35275:72;35343:2;35332:9;35328:18;35319:6;35275:72;:::i;:::-;35022:332;;;;;:::o;35360:98::-;35411:6;35445:5;35439:12;35429:22;;35360:98;;;:::o;35464:147::-;35565:11;35602:3;35587:18;;35464:147;;;;:::o;35617:386::-;35721:3;35749:38;35781:5;35749:38;:::i;:::-;35803:88;35884:6;35879:3;35803:88;:::i;:::-;35796:95;;35900:65;35958:6;35953:3;35946:4;35939:5;35935:16;35900:65;:::i;:::-;35990:6;35985:3;35981:16;35974:23;;35725:278;35617:386;;;;:::o;36009:271::-;36139:3;36161:93;36250:3;36241:6;36161:93;:::i;:::-;36154:100;;36271:3;36264:10;;36009:271;;;;:::o;36286:173::-;36426:25;36422:1;36414:6;36410:14;36403:49;36286:173;:::o;36465:366::-;36607:3;36628:67;36692:2;36687:3;36628:67;:::i;:::-;36621:74;;36704:93;36793:3;36704:93;:::i;:::-;36822:2;36817:3;36813:12;36806:19;;36465:366;;;:::o;36837:419::-;37003:4;37041:2;37030:9;37026:18;37018:26;;37090:9;37084:4;37080:20;37076:1;37065:9;37061:17;37054:47;37118:131;37244:4;37118:131;:::i;:::-;37110:139;;36837:419;;;:::o;37262:60::-;37290:3;37311:5;37304:12;;37262:60;;;:::o;37328:142::-;37378:9;37411:53;37429:34;37438:24;37456:5;37438:24;:::i;:::-;37429:34;:::i;:::-;37411:53;:::i;:::-;37398:66;;37328:142;;;:::o;37476:126::-;37526:9;37559:37;37590:5;37559:37;:::i;:::-;37546:50;;37476:126;;;:::o;37608:134::-;37666:9;37699:37;37730:5;37699:37;:::i;:::-;37686:50;;37608:134;;;:::o;37748:147::-;37843:45;37882:5;37843:45;:::i;:::-;37838:3;37831:58;37748:147;;:::o;37901:238::-;38002:4;38040:2;38029:9;38025:18;38017:26;;38053:79;38129:1;38118:9;38114:17;38105:6;38053:79;:::i;:::-;37901:238;;;;:::o;38145:179::-;38285:31;38281:1;38273:6;38269:14;38262:55;38145:179;:::o;38330:366::-;38472:3;38493:67;38557:2;38552:3;38493:67;:::i;:::-;38486:74;;38569:93;38658:3;38569:93;:::i;:::-;38687:2;38682:3;38678:12;38671:19;;38330:366;;;:::o;38702:419::-;38868:4;38906:2;38895:9;38891:18;38883:26;;38955:9;38949:4;38945:20;38941:1;38930:9;38926:17;38919:47;38983:131;39109:4;38983:131;:::i;:::-;38975:139;;38702:419;;;:::o;39127:161::-;39267:13;39263:1;39255:6;39251:14;39244:37;39127:161;:::o;39294:366::-;39436:3;39457:67;39521:2;39516:3;39457:67;:::i;:::-;39450:74;;39533:93;39622:3;39533:93;:::i;:::-;39651:2;39646:3;39642:12;39635:19;;39294:366;;;:::o;39666:419::-;39832:4;39870:2;39859:9;39855:18;39847:26;;39919:9;39913:4;39909:20;39905:1;39894:9;39890:17;39883:47;39947:131;40073:4;39947:131;:::i;:::-;39939:139;;39666:419;;;:::o;40091:167::-;40231:19;40227:1;40219:6;40215:14;40208:43;40091:167;:::o;40264:366::-;40406:3;40427:67;40491:2;40486:3;40427:67;:::i;:::-;40420:74;;40503:93;40592:3;40503:93;:::i;:::-;40621:2;40616:3;40612:12;40605:19;;40264:366;;;:::o;40636:419::-;40802:4;40840:2;40829:9;40825:18;40817:26;;40889:9;40883:4;40879:20;40875:1;40864:9;40860:17;40853:47;40917:131;41043:4;40917:131;:::i;:::-;40909:139;;40636:419;;;:::o;41061:180::-;41109:77;41106:1;41099:88;41206:4;41203:1;41196:15;41230:4;41227:1;41220:15;41247:180;41295:77;41292:1;41285:88;41392:4;41389:1;41382:15;41416:4;41413:1;41406:15;41433:85;41478:7;41507:5;41496:16;;41433:85;;;:::o;41524:158::-;41582:9;41615:61;41633:42;41642:32;41668:5;41642:32;:::i;:::-;41633:42;:::i;:::-;41615:61;:::i;:::-;41602:74;;41524:158;;;:::o;41688:147::-;41783:45;41822:5;41783:45;:::i;:::-;41778:3;41771:58;41688:147;;:::o;41841:114::-;41908:6;41942:5;41936:12;41926:22;;41841:114;;;:::o;41961:184::-;42060:11;42094:6;42089:3;42082:19;42134:4;42129:3;42125:14;42110:29;;41961:184;;;;:::o;42151:132::-;42218:4;42241:3;42233:11;;42271:4;42266:3;42262:14;42254:22;;42151:132;;;:::o;42289:108::-;42366:24;42384:5;42366:24;:::i;:::-;42361:3;42354:37;42289:108;;:::o;42403:179::-;42472:10;42493:46;42535:3;42527:6;42493:46;:::i;:::-;42571:4;42566:3;42562:14;42548:28;;42403:179;;;;:::o;42588:113::-;42658:4;42690;42685:3;42681:14;42673:22;;42588:113;;;:::o;42737:732::-;42856:3;42885:54;42933:5;42885:54;:::i;:::-;42955:86;43034:6;43029:3;42955:86;:::i;:::-;42948:93;;43065:56;43115:5;43065:56;:::i;:::-;43144:7;43175:1;43160:284;43185:6;43182:1;43179:13;43160:284;;;43261:6;43255:13;43288:63;43347:3;43332:13;43288:63;:::i;:::-;43281:70;;43374:60;43427:6;43374:60;:::i;:::-;43364:70;;43220:224;43207:1;43204;43200:9;43195:14;;43160:284;;;43164:14;43460:3;43453:10;;42861:608;;;42737:732;;;;:::o;43475:831::-;43738:4;43776:3;43765:9;43761:19;43753:27;;43790:71;43858:1;43847:9;43843:17;43834:6;43790:71;:::i;:::-;43871:80;43947:2;43936:9;43932:18;43923:6;43871:80;:::i;:::-;43998:9;43992:4;43988:20;43983:2;43972:9;43968:18;43961:48;44026:108;44129:4;44120:6;44026:108;:::i;:::-;44018:116;;44144:72;44212:2;44201:9;44197:18;44188:6;44144:72;:::i;:::-;44226:73;44294:3;44283:9;44279:19;44270:6;44226:73;:::i;:::-;43475:831;;;;;;;;:::o;44312:807::-;44561:4;44599:3;44588:9;44584:19;44576:27;;44613:71;44681:1;44670:9;44666:17;44657:6;44613:71;:::i;:::-;44694:72;44762:2;44751:9;44747:18;44738:6;44694:72;:::i;:::-;44776:80;44852:2;44841:9;44837:18;44828:6;44776:80;:::i;:::-;44866;44942:2;44931:9;44927:18;44918:6;44866:80;:::i;:::-;44956:73;45024:3;45013:9;45009:19;45000:6;44956:73;:::i;:::-;45039;45107:3;45096:9;45092:19;45083:6;45039:73;:::i;:::-;44312:807;;;;;;;;;:::o;45125:143::-;45182:5;45213:6;45207:13;45198:22;;45229:33;45256:5;45229:33;:::i;:::-;45125:143;;;;:::o;45274:663::-;45362:6;45370;45378;45427:2;45415:9;45406:7;45402:23;45398:32;45395:119;;;45433:79;;:::i;:::-;45395:119;45553:1;45578:64;45634:7;45625:6;45614:9;45610:22;45578:64;:::i;:::-;45568:74;;45524:128;45691:2;45717:64;45773:7;45764:6;45753:9;45749:22;45717:64;:::i;:::-;45707:74;;45662:129;45830:2;45856:64;45912:7;45903:6;45892:9;45888:22;45856:64;:::i;:::-;45846:74;;45801:129;45274:663;;;;;:::o
Swarm Source
ipfs://ef5271d4cd48ad36c6f7577ff7e1406ff7115aec8da2d685e34500fa5ebb1325
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.