ERC-20
Overview
Max Total Supply
100,000,000 NBA
Holders
16
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000001 NBAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
NBA
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-14 */ /** Telegram: https://t.me/NBA24_erc */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.9; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract NBA is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "NBA24"; string private constant _symbol = "NBA"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 100_000_000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 10; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 30; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; address payable private _developmentAddress = payable(0xC370ED21F1b8aE68680055CbF69A477034F0c5A5); address payable private _marketingAddress = payable(0xC370ED21F1b8aE68680055CbF69A477034F0c5A5); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = false; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 2_000_000 * 10**9; uint256 public _maxWalletSize = 2_000_000 * 10**9; uint256 public _swapTokensAtAmount = 10_000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner() && from != _developmentAddress && to != _developmentAddress && from != _marketingAddress && to != _marketingAddress) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if (contractTokenBalance >= _swapTokensAtAmount * 20) { contractTokenBalance = _swapTokensAtAmount * 20; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function enableTrading() public onlyOwner { tradingOpen = true; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; require(_redisFeeOnBuy + _taxFeeOnBuy <= 15, "TOKEN: buy fees should be lower than 15%."); require(_redisFeeOnSell + _taxFeeOnSell <= 20, "TOKEN: sell fees should be lower than 20%."); } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { require(maxTxAmount >= (_tTotal / 1000), "Cannot set maxTransactionAmount lower than 0.1%"); _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { require(maxWalletSize >= (_tTotal * 5 / 1000), "Cannot set maxWallet lower than 0.5%"); _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405267016345785d8a00006000196200001c91906200075a565b6000196200002b9190620007c1565b6006556000600855600a6009556000600a55601e600b55600a54600c55600b54600d55600c54600e55600d54600f5573c370ed21f1b8ae68680055cbf69a477034f0c5a5601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c370ed21f1b8ae68680055cbf69a477034f0c5a5601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601360146101000a81548160ff0219169083151502179055506000601360156101000a81548160ff0219169083151502179055506001601360166101000a81548160ff02191690831515021790555066071afd498d000060145566071afd498d00006015556509184e72a0006016553480156200018257600080fd5b50600062000195620006f060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200024a620006f060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032957600080fd5b505afa1580156200033e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000364919062000866565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003c757600080fd5b505afa158015620003dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000402919062000866565b6040518363ffffffff1660e01b815260040162000421929190620008a9565b602060405180830381600087803b1580156200043c57600080fd5b505af115801562000451573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000477919062000866565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004cd620006f860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200067a620006f060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a0000604051620006e19190620008e7565b60405180910390a35062000904565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007678262000721565b9150620007748362000721565b9250826200078757620007866200072b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007ce8262000721565b9150620007db8362000721565b925082821015620007f157620007f062000792565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200082e8262000801565b9050919050565b620008408162000821565b81146200084c57600080fd5b50565b600081519050620008608162000835565b92915050565b6000602082840312156200087f576200087e620007fc565b5b60006200088f848285016200084f565b91505092915050565b620008a38162000821565b82525050565b6000604082019050620008c0600083018562000898565b620008cf602083018462000898565b9392505050565b620008e18162000721565b82525050565b6000602082019050620008fe6000830184620008d6565b92915050565b613cbc80620009146000396000f3fe6080604052600436106101855760003560e01c80637d1db4a5116100d1578063a2a957bb1161008a578063c492f04611610064578063c492f04614610533578063dd62ed3e1461055c578063ea1644d514610599578063f2fde38b146105c25761018c565b8063a2a957bb146104b6578063a9059cbb146104df578063c3c8cd801461051c5761018c565b80637d1db4a5146103ca5780638a8c523c146103f55780638da5cb5b1461040c5780638f9a55c01461043757806395d89b411461046257806398a5c3151461048d5761018c565b8063313ce5671161013e5780636fc3eaec116101185780636fc3eaec1461033657806370a082311461034d578063715018a61461038a57806374010ece146103a15761018c565b8063313ce567146102b757806349bd5a5e146102e25780636d8aa8f81461030d5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd1461022457806323b872dd1461024f5780632fd689e31461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105eb565b6040516101b39190612ac2565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612b82565b610628565b6040516101f09190612bdd565b60405180910390f35b34801561020557600080fd5b5061020e610646565b60405161021b9190612c57565b60405180910390f35b34801561023057600080fd5b5061023961066c565b6040516102469190612c81565b60405180910390f35b34801561025b57600080fd5b5061027660048036038101906102719190612c9c565b61067c565b6040516102839190612bdd565b60405180910390f35b34801561029857600080fd5b506102a1610755565b6040516102ae9190612c81565b60405180910390f35b3480156102c357600080fd5b506102cc61075b565b6040516102d99190612d0b565b60405180910390f35b3480156102ee57600080fd5b506102f7610764565b6040516103049190612d35565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f9190612d7c565b61078a565b005b34801561034257600080fd5b5061034b61083c565b005b34801561035957600080fd5b50610374600480360381019061036f9190612da9565b61090d565b6040516103819190612c81565b60405180910390f35b34801561039657600080fd5b5061039f61095e565b005b3480156103ad57600080fd5b506103c860048036038101906103c39190612dd6565b610ab1565b005b3480156103d657600080fd5b506103df610ba8565b6040516103ec9190612c81565b60405180910390f35b34801561040157600080fd5b5061040a610bae565b005b34801561041857600080fd5b50610421610c60565b60405161042e9190612d35565b60405180910390f35b34801561044357600080fd5b5061044c610c89565b6040516104599190612c81565b60405180910390f35b34801561046e57600080fd5b50610477610c8f565b6040516104849190612ac2565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af9190612dd6565b610ccc565b005b3480156104c257600080fd5b506104dd60048036038101906104d89190612e03565b610d6b565b005b3480156104eb57600080fd5b5061050660048036038101906105019190612b82565b610ec8565b6040516105139190612bdd565b60405180910390f35b34801561052857600080fd5b50610531610ee6565b005b34801561053f57600080fd5b5061055a60048036038101906105559190612ecf565b610fbf565b005b34801561056857600080fd5b50610583600480360381019061057e9190612f2f565b6110f9565b6040516105909190612c81565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb9190612dd6565b611180565b005b3480156105ce57600080fd5b506105e960048036038101906105e49190612da9565b611283565b005b60606040518060400160405280600581526020017f4e42413234000000000000000000000000000000000000000000000000000000815250905090565b600061063c610635611445565b848461144d565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b6000610689848484611618565b61074a84610695611445565b61074585604051806060016040528060288152602001613c5f60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106fb611445565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3c9092919063ffffffff16565b61144d565b600190509392505050565b60165481565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610792611445565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081690612fbb565b60405180910390fd5b80601360166101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661087d611445565b73ffffffffffffffffffffffffffffffffffffffff1614806108f35750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108db611445565b73ffffffffffffffffffffffffffffffffffffffff16145b6108fc57600080fd5b600047905061090a81611fa0565b50565b6000610957600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200c565b9050919050565b610966611445565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ea90612fbb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ab9611445565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3d90612fbb565b60405180910390fd5b6103e867016345785d8a0000610b5c9190613039565b811015610b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b95906130dc565b60405180910390fd5b8060148190555050565b60145481565b610bb6611445565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a90612fbb565b60405180910390fd5b6001601360146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60155481565b60606040518060400160405280600381526020017f4e42410000000000000000000000000000000000000000000000000000000000815250905090565b610cd4611445565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5890612fbb565b60405180910390fd5b8060168190555050565b610d73611445565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df790612fbb565b60405180910390fd5b8360088190555082600a819055508160098190555080600b81905550600f600954600854610e2e91906130fc565b1115610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e66906131c4565b60405180910390fd5b6014600b54600a54610e8191906130fc565b1115610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb990613256565b60405180910390fd5b50505050565b6000610edc610ed5611445565b8484611618565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f27611445565b73ffffffffffffffffffffffffffffffffffffffff161480610f9d5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f85611445565b73ffffffffffffffffffffffffffffffffffffffff16145b610fa657600080fd5b6000610fb13061090d565b9050610fbc8161207a565b50565b610fc7611445565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104b90612fbb565b60405180910390fd5b60005b838390508110156110f357816005600086868581811061107a57611079613276565b5b905060200201602081019061108f9190612da9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110eb906132a5565b915050611057565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611188611445565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120c90612fbb565b60405180910390fd5b6103e8600567016345785d8a000061122d91906132ee565b6112379190613039565b811015611279576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611270906133ba565b60405180910390fd5b8060158190555050565b61128b611445565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130f90612fbb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137f9061344c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b4906134de565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561152d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152490613570565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161160b9190612c81565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611688576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167f90613602565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ef90613694565b60405180910390fd5b6000811161173b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173290613726565b60405180910390fd5b611743610c60565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117b15750611781610c60565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561180b5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118655750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118bf5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119195750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c3b57601360149054906101000a900460ff166119a85761193a610c60565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199e906137b8565b60405180910390fd5b5b6014548111156119ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e490613824565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a9a5760155481611a4f8461090d565b611a5991906130fc565b10611a99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a90906138b6565b60405180910390fd5b5b6000611aa53061090d565b9050600060165482101590506014601654611ac091906132ee565b8210611ad8576014601654611ad591906132ee565b91505b808015611af25750601360159054906101000a900460ff16155b8015611b4c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b645750601360169054906101000a900460ff165b8015611bba5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c105750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c3857611c1e8261207a565b60004790506000811115611c3657611c3547611fa0565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ce25750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d955750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d945750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611da35760009050611f2a565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e4e5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e6657600854600c81905550600954600d819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f115750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f2957600a54600c81905550600b54600d819055505b5b611f3684848484612302565b50505050565b6000838311158290611f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7b9190612ac2565b60405180910390fd5b5060008385611f9391906138d6565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612008573d6000803e3d6000fd5b5050565b6000600654821115612053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204a9061397c565b60405180910390fd5b600061205d61232f565b9050612072818461235a90919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120b2576120b161399c565b5b6040519080825280602002602001820160405280156120e05781602001602082028036833780820191505090505b50905030816000815181106120f8576120f7613276565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561219a57600080fd5b505afa1580156121ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d291906139e0565b816001815181106121e6576121e5613276565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061224d30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461144d565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122b1959493929190613b06565b600060405180830381600087803b1580156122cb57600080fd5b505af11580156122df573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b806123105761230f6123a4565b5b61231b8484846123e7565b80612329576123286125b2565b5b50505050565b600080600061233c6125c6565b91509150612353818361235a90919063ffffffff16565b9250505090565b600061239c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612625565b905092915050565b6000600c541480156123b857506000600d54145b156123c2576123e5565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806123f987612688565b95509550955095509550955061245786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124ec85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061253881612798565b6125428483612855565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161259f9190612c81565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600067016345785d8a000090506125fa67016345785d8a000060065461235a90919063ffffffff16565b8210156126185760065467016345785d8a0000935093505050612621565b81819350935050505b9091565b6000808311829061266c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126639190612ac2565b60405180910390fd5b506000838561267b9190613039565b9050809150509392505050565b60008060008060008060008060006126a58a600c54600d5461288f565b92509250925060006126b561232f565b905060008060006126c88e878787612925565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061273283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f3c565b905092915050565b600080828461274991906130fc565b90508381101561278e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278590613bac565b60405180910390fd5b8091505092915050565b60006127a261232f565b905060006127b982846129ae90919063ffffffff16565b905061280d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61286a826006546126f090919063ffffffff16565b6006819055506128858160075461273a90919063ffffffff16565b6007819055505050565b6000806000806128bb60646128ad888a6129ae90919063ffffffff16565b61235a90919063ffffffff16565b905060006128e560646128d7888b6129ae90919063ffffffff16565b61235a90919063ffffffff16565b9050600061290e82612900858c6126f090919063ffffffff16565b6126f090919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061293e85896129ae90919063ffffffff16565b9050600061295586896129ae90919063ffffffff16565b9050600061296c87896129ae90919063ffffffff16565b905060006129958261298785876126f090919063ffffffff16565b6126f090919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156129c15760009050612a23565b600082846129cf91906132ee565b90508284826129de9190613039565b14612a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1590613c3e565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a63578082015181840152602081019050612a48565b83811115612a72576000848401525b50505050565b6000601f19601f8301169050919050565b6000612a9482612a29565b612a9e8185612a34565b9350612aae818560208601612a45565b612ab781612a78565b840191505092915050565b60006020820190508181036000830152612adc8184612a89565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b1982612aee565b9050919050565b612b2981612b0e565b8114612b3457600080fd5b50565b600081359050612b4681612b20565b92915050565b6000819050919050565b612b5f81612b4c565b8114612b6a57600080fd5b50565b600081359050612b7c81612b56565b92915050565b60008060408385031215612b9957612b98612ae4565b5b6000612ba785828601612b37565b9250506020612bb885828601612b6d565b9150509250929050565b60008115159050919050565b612bd781612bc2565b82525050565b6000602082019050612bf26000830184612bce565b92915050565b6000819050919050565b6000612c1d612c18612c1384612aee565b612bf8565b612aee565b9050919050565b6000612c2f82612c02565b9050919050565b6000612c4182612c24565b9050919050565b612c5181612c36565b82525050565b6000602082019050612c6c6000830184612c48565b92915050565b612c7b81612b4c565b82525050565b6000602082019050612c966000830184612c72565b92915050565b600080600060608486031215612cb557612cb4612ae4565b5b6000612cc386828701612b37565b9350506020612cd486828701612b37565b9250506040612ce586828701612b6d565b9150509250925092565b600060ff82169050919050565b612d0581612cef565b82525050565b6000602082019050612d206000830184612cfc565b92915050565b612d2f81612b0e565b82525050565b6000602082019050612d4a6000830184612d26565b92915050565b612d5981612bc2565b8114612d6457600080fd5b50565b600081359050612d7681612d50565b92915050565b600060208284031215612d9257612d91612ae4565b5b6000612da084828501612d67565b91505092915050565b600060208284031215612dbf57612dbe612ae4565b5b6000612dcd84828501612b37565b91505092915050565b600060208284031215612dec57612deb612ae4565b5b6000612dfa84828501612b6d565b91505092915050565b60008060008060808587031215612e1d57612e1c612ae4565b5b6000612e2b87828801612b6d565b9450506020612e3c87828801612b6d565b9350506040612e4d87828801612b6d565b9250506060612e5e87828801612b6d565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612e8f57612e8e612e6a565b5b8235905067ffffffffffffffff811115612eac57612eab612e6f565b5b602083019150836020820283011115612ec857612ec7612e74565b5b9250929050565b600080600060408486031215612ee857612ee7612ae4565b5b600084013567ffffffffffffffff811115612f0657612f05612ae9565b5b612f1286828701612e79565b93509350506020612f2586828701612d67565b9150509250925092565b60008060408385031215612f4657612f45612ae4565b5b6000612f5485828601612b37565b9250506020612f6585828601612b37565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612fa5602083612a34565b9150612fb082612f6f565b602082019050919050565b60006020820190508181036000830152612fd481612f98565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061304482612b4c565b915061304f83612b4c565b92508261305f5761305e612fdb565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b60006130c6602f83612a34565b91506130d18261306a565b604082019050919050565b600060208201905081810360008301526130f5816130b9565b9050919050565b600061310782612b4c565b915061311283612b4c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131475761314661300a565b5b828201905092915050565b7f544f4b454e3a2062757920666565732073686f756c64206265206c6f7765722060008201527f7468616e203135252e0000000000000000000000000000000000000000000000602082015250565b60006131ae602983612a34565b91506131b982613152565b604082019050919050565b600060208201905081810360008301526131dd816131a1565b9050919050565b7f544f4b454e3a2073656c6c20666565732073686f756c64206265206c6f77657260008201527f207468616e203230252e00000000000000000000000000000000000000000000602082015250565b6000613240602a83612a34565b915061324b826131e4565b604082019050919050565b6000602082019050818103600083015261326f81613233565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006132b082612b4c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132e3576132e261300a565b5b600182019050919050565b60006132f982612b4c565b915061330483612b4c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561333d5761333c61300a565b5b828202905092915050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006133a4602483612a34565b91506133af82613348565b604082019050919050565b600060208201905081810360008301526133d381613397565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613436602683612a34565b9150613441826133da565b604082019050919050565b6000602082019050818103600083015261346581613429565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006134c8602483612a34565b91506134d38261346c565b604082019050919050565b600060208201905081810360008301526134f7816134bb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061355a602283612a34565b9150613565826134fe565b604082019050919050565b600060208201905081810360008301526135898161354d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006135ec602583612a34565b91506135f782613590565b604082019050919050565b6000602082019050818103600083015261361b816135df565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061367e602383612a34565b915061368982613622565b604082019050919050565b600060208201905081810360008301526136ad81613671565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613710602983612a34565b915061371b826136b4565b604082019050919050565b6000602082019050818103600083015261373f81613703565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006137a2603f83612a34565b91506137ad82613746565b604082019050919050565b600060208201905081810360008301526137d181613795565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061380e601c83612a34565b9150613819826137d8565b602082019050919050565b6000602082019050818103600083015261383d81613801565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006138a0602383612a34565b91506138ab82613844565b604082019050919050565b600060208201905081810360008301526138cf81613893565b9050919050565b60006138e182612b4c565b91506138ec83612b4c565b9250828210156138ff576138fe61300a565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613966602a83612a34565b91506139718261390a565b604082019050919050565b6000602082019050818103600083015261399581613959565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506139da81612b20565b92915050565b6000602082840312156139f6576139f5612ae4565b5b6000613a04848285016139cb565b91505092915050565b6000819050919050565b6000613a32613a2d613a2884613a0d565b612bf8565b612b4c565b9050919050565b613a4281613a17565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a7d81612b0e565b82525050565b6000613a8f8383613a74565b60208301905092915050565b6000602082019050919050565b6000613ab382613a48565b613abd8185613a53565b9350613ac883613a64565b8060005b83811015613af9578151613ae08882613a83565b9750613aeb83613a9b565b925050600181019050613acc565b5085935050505092915050565b600060a082019050613b1b6000830188612c72565b613b286020830187613a39565b8181036040830152613b3a8186613aa8565b9050613b496060830185612d26565b613b566080830184612c72565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b96601b83612a34565b9150613ba182613b60565b602082019050919050565b60006020820190508181036000830152613bc581613b89565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c28602183612a34565b9150613c3382613bcc565b604082019050919050565b60006020820190508181036000830152613c5781613c1b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204ca3222119a4e4af7f4370a588fb7df8fede30e3fe45203c559b005efe6aa4cf64736f6c63430008090033
Deployed Bytecode
0x6080604052600436106101855760003560e01c80637d1db4a5116100d1578063a2a957bb1161008a578063c492f04611610064578063c492f04614610533578063dd62ed3e1461055c578063ea1644d514610599578063f2fde38b146105c25761018c565b8063a2a957bb146104b6578063a9059cbb146104df578063c3c8cd801461051c5761018c565b80637d1db4a5146103ca5780638a8c523c146103f55780638da5cb5b1461040c5780638f9a55c01461043757806395d89b411461046257806398a5c3151461048d5761018c565b8063313ce5671161013e5780636fc3eaec116101185780636fc3eaec1461033657806370a082311461034d578063715018a61461038a57806374010ece146103a15761018c565b8063313ce567146102b757806349bd5a5e146102e25780636d8aa8f81461030d5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd1461022457806323b872dd1461024f5780632fd689e31461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105eb565b6040516101b39190612ac2565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612b82565b610628565b6040516101f09190612bdd565b60405180910390f35b34801561020557600080fd5b5061020e610646565b60405161021b9190612c57565b60405180910390f35b34801561023057600080fd5b5061023961066c565b6040516102469190612c81565b60405180910390f35b34801561025b57600080fd5b5061027660048036038101906102719190612c9c565b61067c565b6040516102839190612bdd565b60405180910390f35b34801561029857600080fd5b506102a1610755565b6040516102ae9190612c81565b60405180910390f35b3480156102c357600080fd5b506102cc61075b565b6040516102d99190612d0b565b60405180910390f35b3480156102ee57600080fd5b506102f7610764565b6040516103049190612d35565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f9190612d7c565b61078a565b005b34801561034257600080fd5b5061034b61083c565b005b34801561035957600080fd5b50610374600480360381019061036f9190612da9565b61090d565b6040516103819190612c81565b60405180910390f35b34801561039657600080fd5b5061039f61095e565b005b3480156103ad57600080fd5b506103c860048036038101906103c39190612dd6565b610ab1565b005b3480156103d657600080fd5b506103df610ba8565b6040516103ec9190612c81565b60405180910390f35b34801561040157600080fd5b5061040a610bae565b005b34801561041857600080fd5b50610421610c60565b60405161042e9190612d35565b60405180910390f35b34801561044357600080fd5b5061044c610c89565b6040516104599190612c81565b60405180910390f35b34801561046e57600080fd5b50610477610c8f565b6040516104849190612ac2565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af9190612dd6565b610ccc565b005b3480156104c257600080fd5b506104dd60048036038101906104d89190612e03565b610d6b565b005b3480156104eb57600080fd5b5061050660048036038101906105019190612b82565b610ec8565b6040516105139190612bdd565b60405180910390f35b34801561052857600080fd5b50610531610ee6565b005b34801561053f57600080fd5b5061055a60048036038101906105559190612ecf565b610fbf565b005b34801561056857600080fd5b50610583600480360381019061057e9190612f2f565b6110f9565b6040516105909190612c81565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb9190612dd6565b611180565b005b3480156105ce57600080fd5b506105e960048036038101906105e49190612da9565b611283565b005b60606040518060400160405280600581526020017f4e42413234000000000000000000000000000000000000000000000000000000815250905090565b600061063c610635611445565b848461144d565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b6000610689848484611618565b61074a84610695611445565b61074585604051806060016040528060288152602001613c5f60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106fb611445565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3c9092919063ffffffff16565b61144d565b600190509392505050565b60165481565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610792611445565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081690612fbb565b60405180910390fd5b80601360166101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661087d611445565b73ffffffffffffffffffffffffffffffffffffffff1614806108f35750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108db611445565b73ffffffffffffffffffffffffffffffffffffffff16145b6108fc57600080fd5b600047905061090a81611fa0565b50565b6000610957600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200c565b9050919050565b610966611445565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ea90612fbb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ab9611445565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3d90612fbb565b60405180910390fd5b6103e867016345785d8a0000610b5c9190613039565b811015610b9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b95906130dc565b60405180910390fd5b8060148190555050565b60145481565b610bb6611445565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a90612fbb565b60405180910390fd5b6001601360146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60155481565b60606040518060400160405280600381526020017f4e42410000000000000000000000000000000000000000000000000000000000815250905090565b610cd4611445565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5890612fbb565b60405180910390fd5b8060168190555050565b610d73611445565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df790612fbb565b60405180910390fd5b8360088190555082600a819055508160098190555080600b81905550600f600954600854610e2e91906130fc565b1115610e6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e66906131c4565b60405180910390fd5b6014600b54600a54610e8191906130fc565b1115610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb990613256565b60405180910390fd5b50505050565b6000610edc610ed5611445565b8484611618565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f27611445565b73ffffffffffffffffffffffffffffffffffffffff161480610f9d5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f85611445565b73ffffffffffffffffffffffffffffffffffffffff16145b610fa657600080fd5b6000610fb13061090d565b9050610fbc8161207a565b50565b610fc7611445565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104b90612fbb565b60405180910390fd5b60005b838390508110156110f357816005600086868581811061107a57611079613276565b5b905060200201602081019061108f9190612da9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110eb906132a5565b915050611057565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611188611445565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120c90612fbb565b60405180910390fd5b6103e8600567016345785d8a000061122d91906132ee565b6112379190613039565b811015611279576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611270906133ba565b60405180910390fd5b8060158190555050565b61128b611445565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130f90612fbb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137f9061344c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b4906134de565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561152d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152490613570565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161160b9190612c81565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611688576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167f90613602565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ef90613694565b60405180910390fd5b6000811161173b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173290613726565b60405180910390fd5b611743610c60565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117b15750611781610c60565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561180b5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118655750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118bf5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119195750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c3b57601360149054906101000a900460ff166119a85761193a610c60565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199e906137b8565b60405180910390fd5b5b6014548111156119ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e490613824565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a9a5760155481611a4f8461090d565b611a5991906130fc565b10611a99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a90906138b6565b60405180910390fd5b5b6000611aa53061090d565b9050600060165482101590506014601654611ac091906132ee565b8210611ad8576014601654611ad591906132ee565b91505b808015611af25750601360159054906101000a900460ff16155b8015611b4c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b645750601360169054906101000a900460ff165b8015611bba5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c105750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c3857611c1e8261207a565b60004790506000811115611c3657611c3547611fa0565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ce25750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d955750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d945750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611da35760009050611f2a565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e4e5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e6657600854600c81905550600954600d819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f115750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f2957600a54600c81905550600b54600d819055505b5b611f3684848484612302565b50505050565b6000838311158290611f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7b9190612ac2565b60405180910390fd5b5060008385611f9391906138d6565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612008573d6000803e3d6000fd5b5050565b6000600654821115612053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204a9061397c565b60405180910390fd5b600061205d61232f565b9050612072818461235a90919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120b2576120b161399c565b5b6040519080825280602002602001820160405280156120e05781602001602082028036833780820191505090505b50905030816000815181106120f8576120f7613276565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561219a57600080fd5b505afa1580156121ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d291906139e0565b816001815181106121e6576121e5613276565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061224d30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461144d565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122b1959493929190613b06565b600060405180830381600087803b1580156122cb57600080fd5b505af11580156122df573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b806123105761230f6123a4565b5b61231b8484846123e7565b80612329576123286125b2565b5b50505050565b600080600061233c6125c6565b91509150612353818361235a90919063ffffffff16565b9250505090565b600061239c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612625565b905092915050565b6000600c541480156123b857506000600d54145b156123c2576123e5565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806123f987612688565b95509550955095509550955061245786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124ec85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061253881612798565b6125428483612855565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161259f9190612c81565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600067016345785d8a000090506125fa67016345785d8a000060065461235a90919063ffffffff16565b8210156126185760065467016345785d8a0000935093505050612621565b81819350935050505b9091565b6000808311829061266c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126639190612ac2565b60405180910390fd5b506000838561267b9190613039565b9050809150509392505050565b60008060008060008060008060006126a58a600c54600d5461288f565b92509250925060006126b561232f565b905060008060006126c88e878787612925565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061273283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f3c565b905092915050565b600080828461274991906130fc565b90508381101561278e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278590613bac565b60405180910390fd5b8091505092915050565b60006127a261232f565b905060006127b982846129ae90919063ffffffff16565b905061280d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61286a826006546126f090919063ffffffff16565b6006819055506128858160075461273a90919063ffffffff16565b6007819055505050565b6000806000806128bb60646128ad888a6129ae90919063ffffffff16565b61235a90919063ffffffff16565b905060006128e560646128d7888b6129ae90919063ffffffff16565b61235a90919063ffffffff16565b9050600061290e82612900858c6126f090919063ffffffff16565b6126f090919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061293e85896129ae90919063ffffffff16565b9050600061295586896129ae90919063ffffffff16565b9050600061296c87896129ae90919063ffffffff16565b905060006129958261298785876126f090919063ffffffff16565b6126f090919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156129c15760009050612a23565b600082846129cf91906132ee565b90508284826129de9190613039565b14612a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1590613c3e565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a63578082015181840152602081019050612a48565b83811115612a72576000848401525b50505050565b6000601f19601f8301169050919050565b6000612a9482612a29565b612a9e8185612a34565b9350612aae818560208601612a45565b612ab781612a78565b840191505092915050565b60006020820190508181036000830152612adc8184612a89565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b1982612aee565b9050919050565b612b2981612b0e565b8114612b3457600080fd5b50565b600081359050612b4681612b20565b92915050565b6000819050919050565b612b5f81612b4c565b8114612b6a57600080fd5b50565b600081359050612b7c81612b56565b92915050565b60008060408385031215612b9957612b98612ae4565b5b6000612ba785828601612b37565b9250506020612bb885828601612b6d565b9150509250929050565b60008115159050919050565b612bd781612bc2565b82525050565b6000602082019050612bf26000830184612bce565b92915050565b6000819050919050565b6000612c1d612c18612c1384612aee565b612bf8565b612aee565b9050919050565b6000612c2f82612c02565b9050919050565b6000612c4182612c24565b9050919050565b612c5181612c36565b82525050565b6000602082019050612c6c6000830184612c48565b92915050565b612c7b81612b4c565b82525050565b6000602082019050612c966000830184612c72565b92915050565b600080600060608486031215612cb557612cb4612ae4565b5b6000612cc386828701612b37565b9350506020612cd486828701612b37565b9250506040612ce586828701612b6d565b9150509250925092565b600060ff82169050919050565b612d0581612cef565b82525050565b6000602082019050612d206000830184612cfc565b92915050565b612d2f81612b0e565b82525050565b6000602082019050612d4a6000830184612d26565b92915050565b612d5981612bc2565b8114612d6457600080fd5b50565b600081359050612d7681612d50565b92915050565b600060208284031215612d9257612d91612ae4565b5b6000612da084828501612d67565b91505092915050565b600060208284031215612dbf57612dbe612ae4565b5b6000612dcd84828501612b37565b91505092915050565b600060208284031215612dec57612deb612ae4565b5b6000612dfa84828501612b6d565b91505092915050565b60008060008060808587031215612e1d57612e1c612ae4565b5b6000612e2b87828801612b6d565b9450506020612e3c87828801612b6d565b9350506040612e4d87828801612b6d565b9250506060612e5e87828801612b6d565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612e8f57612e8e612e6a565b5b8235905067ffffffffffffffff811115612eac57612eab612e6f565b5b602083019150836020820283011115612ec857612ec7612e74565b5b9250929050565b600080600060408486031215612ee857612ee7612ae4565b5b600084013567ffffffffffffffff811115612f0657612f05612ae9565b5b612f1286828701612e79565b93509350506020612f2586828701612d67565b9150509250925092565b60008060408385031215612f4657612f45612ae4565b5b6000612f5485828601612b37565b9250506020612f6585828601612b37565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612fa5602083612a34565b9150612fb082612f6f565b602082019050919050565b60006020820190508181036000830152612fd481612f98565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061304482612b4c565b915061304f83612b4c565b92508261305f5761305e612fdb565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b60006130c6602f83612a34565b91506130d18261306a565b604082019050919050565b600060208201905081810360008301526130f5816130b9565b9050919050565b600061310782612b4c565b915061311283612b4c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131475761314661300a565b5b828201905092915050565b7f544f4b454e3a2062757920666565732073686f756c64206265206c6f7765722060008201527f7468616e203135252e0000000000000000000000000000000000000000000000602082015250565b60006131ae602983612a34565b91506131b982613152565b604082019050919050565b600060208201905081810360008301526131dd816131a1565b9050919050565b7f544f4b454e3a2073656c6c20666565732073686f756c64206265206c6f77657260008201527f207468616e203230252e00000000000000000000000000000000000000000000602082015250565b6000613240602a83612a34565b915061324b826131e4565b604082019050919050565b6000602082019050818103600083015261326f81613233565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006132b082612b4c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132e3576132e261300a565b5b600182019050919050565b60006132f982612b4c565b915061330483612b4c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561333d5761333c61300a565b5b828202905092915050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006133a4602483612a34565b91506133af82613348565b604082019050919050565b600060208201905081810360008301526133d381613397565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613436602683612a34565b9150613441826133da565b604082019050919050565b6000602082019050818103600083015261346581613429565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006134c8602483612a34565b91506134d38261346c565b604082019050919050565b600060208201905081810360008301526134f7816134bb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061355a602283612a34565b9150613565826134fe565b604082019050919050565b600060208201905081810360008301526135898161354d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006135ec602583612a34565b91506135f782613590565b604082019050919050565b6000602082019050818103600083015261361b816135df565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061367e602383612a34565b915061368982613622565b604082019050919050565b600060208201905081810360008301526136ad81613671565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613710602983612a34565b915061371b826136b4565b604082019050919050565b6000602082019050818103600083015261373f81613703565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006137a2603f83612a34565b91506137ad82613746565b604082019050919050565b600060208201905081810360008301526137d181613795565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061380e601c83612a34565b9150613819826137d8565b602082019050919050565b6000602082019050818103600083015261383d81613801565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006138a0602383612a34565b91506138ab82613844565b604082019050919050565b600060208201905081810360008301526138cf81613893565b9050919050565b60006138e182612b4c565b91506138ec83612b4c565b9250828210156138ff576138fe61300a565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613966602a83612a34565b91506139718261390a565b604082019050919050565b6000602082019050818103600083015261399581613959565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506139da81612b20565b92915050565b6000602082840312156139f6576139f5612ae4565b5b6000613a04848285016139cb565b91505092915050565b6000819050919050565b6000613a32613a2d613a2884613a0d565b612bf8565b612b4c565b9050919050565b613a4281613a17565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a7d81612b0e565b82525050565b6000613a8f8383613a74565b60208301905092915050565b6000602082019050919050565b6000613ab382613a48565b613abd8185613a53565b9350613ac883613a64565b8060005b83811015613af9578151613ae08882613a83565b9750613aeb83613a9b565b925050600181019050613acc565b5085935050505092915050565b600060a082019050613b1b6000830188612c72565b613b286020830187613a39565b8181036040830152613b3a8186613aa8565b9050613b496060830185612d26565b613b566080830184612c72565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b96601b83612a34565b9150613ba182613b60565b602082019050919050565b60006020820190508181036000830152613bc581613b89565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c28602183612a34565b9150613c3382613bcc565b604082019050919050565b60006020820190508181036000830152613c5781613c1b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204ca3222119a4e4af7f4370a588fb7df8fede30e3fe45203c559b005efe6aa4cf64736f6c63430008090033
Deployed Bytecode Sourcemap
4110:13528:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6516:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7441:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5357:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6793:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7642:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5665:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6702:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5405:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16821:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12487:235;;;;;;;;;;;;;:::i;:::-;;6896:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1597:148;;;;;;;;;;;;;:::i;:::-;;16961:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5555:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12156:79;;;;;;;;;;;;;:::i;:::-;;1383;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5609:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6607:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16674:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16128:494;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7042:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12243:236;;;;;;;;;;;;;:::i;:::-;;17399:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7249:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17179:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1753:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6516:83;6553:13;6586:5;;;;;;;;;;;;;;;;;6579:12;;6516:83;:::o;7441:193::-;7543:4;7565:39;7574:12;:10;:12::i;:::-;7588:7;7597:6;7565:8;:39::i;:::-;7622:4;7615:11;;7441:193;;;;:::o;5357:41::-;;;;;;;;;;;;;:::o;6793:95::-;6846:7;4648:19;6866:14;;6793:95;:::o;7642:446::-;7774:4;7791:36;7801:6;7809:9;7820:6;7791:9;:36::i;:::-;7838:220;7861:6;7882:12;:10;:12::i;:::-;7909:138;7965:6;7909:138;;;;;;;;;;;;;;;;;:11;:19;7921:6;7909:19;;;;;;;;;;;;;;;:33;7929:12;:10;:12::i;:::-;7909:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7838:8;:220::i;:::-;8076:4;8069:11;;7642:446;;;;;:::o;5665:51::-;;;;:::o;6702:83::-;6743:5;4322:1;6761:16;;6702:83;:::o;5405:28::-;;;;;;;;;;;;;:::o;16821:101::-;1520:12;:10;:12::i;:::-;1510:22;;:6;;;;;;;;;;:22;;;1502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16902:12:::1;16888:11;;:26;;;;;;;;;;;;;;;;;;16821:101:::0;:::o;12487:235::-;12553:19;;;;;;;;;;;12537:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12592:17;;;;;;;;;;;12576:33;;:12;:10;:12::i;:::-;:33;;;12537:72;12529:81;;;;;;12621:26;12650:21;12621:50;;12682:32;12695:18;12682:12;:32::i;:::-;12518:204;12487:235::o;6896:138::-;6962:7;6989:37;7009:7;:16;7017:7;7009:16;;;;;;;;;;;;;;;;6989:19;:37::i;:::-;6982:44;;6896:138;;;:::o;1597:148::-;1520:12;:10;:12::i;:::-;1510:22;;:6;;;;;;;;;;:22;;;1502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1704:1:::1;1667:40;;1688:6;::::0;::::1;;;;;;;;1667:40;;;;;;;;;;;;1735:1;1718:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1597:148::o:0;16961:210::-;1520:12;:10;:12::i;:::-;1510:22;;:6;;;;;;;;;;:22;;;1502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17069:4:::1;4648:19;17059:14;;;;:::i;:::-;17043:11;:31;;17035:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;17152:11;17137:12;:26;;;;16961:210:::0;:::o;5555:47::-;;;;:::o;12156:79::-;1520:12;:10;:12::i;:::-;1510:22;;:6;;;;;;;;;;:22;;;1502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12223:4:::1;12209:11;;:18;;;;;;;;;;;;;;;;;;12156:79::o:0;1383:::-;1421:7;1448:6;;;;;;;;;;;1441:13;;1383:79;:::o;5609:49::-;;;;:::o;6607:87::-;6646:13;6679:7;;;;;;;;;;;;;;;;;6672:14;;6607:87;:::o;16674:139::-;1520:12;:10;:12::i;:::-;1510:22;;:6;;;;;;;;;;:22;;;1502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16787:18:::1;16765:19;:40;;;;16674:139:::0;:::o;16128:494::-;1520:12;:10;:12::i;:::-;1510:22;;:6;;;;;;;;;;:22;;;1502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16279:13:::1;16262:14;:30;;;;16321:14;16303:15;:32;;;;16361:11;16346:12;:26;;;;16399:12;16383:13;:28;;;;16463:2;16447:12;;16430:14;;:29;;;;:::i;:::-;:35;;16422:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;16565:2;16548:13;;16530:15;;:31;;;;:::i;:::-;:37;;16522:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;16128:494:::0;;;;:::o;7042:199::-;7147:4;7169:42;7179:12;:10;:12::i;:::-;7193:9;7204:6;7169:9;:42::i;:::-;7229:4;7222:11;;7042:199;;;;:::o;12243:236::-;12309:19;;;;;;;;;;;12293:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12348:17;;;;;;;;;;;12332:33;;:12;:10;:12::i;:::-;:33;;;12293:72;12285:81;;;;;;12377:23;12403:24;12421:4;12403:9;:24::i;:::-;12377:50;;12438:33;12455:15;12438:16;:33::i;:::-;12274:205;12243:236::o;17399:234::-;1520:12;:10;:12::i;:::-;1510:22;;:6;;;;;;;;;;:22;;;1502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17516:9:::1;17512:114;17535:8;;:15;;17531:1;:19;17512:114;;;17606:8;17572:18;:31;17591:8;;17600:1;17591:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17572:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17552:3;;;;;:::i;:::-;;;;17512:114;;;;17399:234:::0;;;:::o;7249:184::-;7366:7;7398:11;:18;7410:5;7398:18;;;;;;;;;;;;;;;:27;7417:7;7398:27;;;;;;;;;;;;;;;;7391:34;;7249:184;;;;:::o;17179:212::-;1520:12;:10;:12::i;:::-;1510:22;;:6;;;;;;;;;;:22;;;1502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17296:4:::1;17292:1;4648:19;17282:11;;;;:::i;:::-;:18;;;;:::i;:::-;17264:13;:37;;17256:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;17370:13;17353:14;:30;;;;17179:212:::0;:::o;1753:244::-;1520:12;:10;:12::i;:::-;1510:22;;:6;;;;;;;;;;:22;;;1502:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1862:1:::1;1842:22;;:8;:22;;;;1834:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1952:8;1923:38;;1944:6;::::0;::::1;;;;;;;;1923:38;;;;;;;;;;;;1981:8;1972:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1753:244:::0;:::o;142:98::-;195:7;222:10;215:17;;142:98;:::o;8779:369::-;8923:1;8906:19;;:5;:19;;;;8898:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9004:1;8985:21;;:7;:21;;;;8977:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9086:6;9056:11;:18;9068:5;9056:18;;;;;;;;;;;;;;;:27;9075:7;9056:27;;;;;;;;;;;;;;;:36;;;;9124:7;9108:32;;9117:5;9108:32;;;9133:6;9108:32;;;;;;:::i;:::-;;;;;;;;8779:369;;;:::o;9156:2394::-;9294:1;9278:18;;:4;:18;;;;9270:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9371:1;9357:16;;:2;:16;;;;9349:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9441:1;9432:6;:10;9424:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9513:7;:5;:7::i;:::-;9505:15;;:4;:15;;;;:32;;;;;9530:7;:5;:7::i;:::-;9524:13;;:2;:13;;;;9505:32;:63;;;;;9549:19;;;;;;;;;;;9541:27;;:4;:27;;;;9505:63;:92;;;;;9578:19;;;;;;;;;;;9572:25;;:2;:25;;;;9505:92;:121;;;;;9609:17;;;;;;;;;;;9601:25;;:4;:25;;;;9505:121;:148;;;;;9636:17;;;;;;;;;;;9630:23;;:2;:23;;;;9505:148;9501:1313;;;9710:11;;;;;;;;;;;9705:144;;9758:7;:5;:7::i;:::-;9750:15;;:4;:15;;;9742:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9705:144;9883:12;;9873:6;:22;;9865:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9954:13;;;;;;;;;;;9948:19;;:2;:19;;;9945:146;;10021:14;;10012:6;9996:13;10006:2;9996:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9988:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;9945:146;10107:28;10138:24;10156:4;10138:9;:24::i;:::-;10107:55;;10177:12;10216:19;;10192:20;:43;;10177:58;;10302:2;10280:19;;:24;;;;:::i;:::-;10256:20;:48;10252:149;;10383:2;10361:19;;:24;;;;:::i;:::-;10338:47;;10252:149;10421:7;:18;;;;;10433:6;;;;;;;;;;;10432:7;10421:18;:43;;;;;10451:13;;;;;;;;;;;10443:21;;:4;:21;;;;10421:43;:58;;;;;10468:11;;;;;;;;;;;10421:58;:87;;;;;10484:18;:24;10503:4;10484:24;;;;;;;;;;;;;;;;;;;;;;;;;10483:25;10421:87;:114;;;;;10513:18;:22;10532:2;10513:22;;;;;;;;;;;;;;;;;;;;;;;;;10512:23;10421:114;10417:386;;;10556:38;10573:20;10556:16;:38::i;:::-;10613:26;10642:21;10613:50;;10707:1;10686:18;:22;10682:106;;;10733:35;10746:21;10733:12;:35::i;:::-;10682:106;10537:266;10417:386;9655:1159;;9501:1313;10826:12;10841:4;10826:19;;10890:18;:24;10909:4;10890:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10918:18;:22;10937:2;10918:22;;;;;;;;;;;;;;;;;;;;;;;;;10890:50;10889:102;;;;10954:13;;;;;;;;;;;10946:21;;:4;:21;;;;:44;;;;;10977:13;;;;;;;;;;;10971:19;;:2;:19;;;;10946:44;10889:102;10885:604;;;11018:5;11008:15;;10885:604;;;11113:13;;;;;;;;;;;11105:21;;:4;:21;;;:55;;;;;11144:15;;;;;;;;;;;11130:30;;:2;:30;;;;11105:55;11102:162;;;11193:14;;11181:9;:26;;;;11236:12;;11226:7;:22;;;;11102:162;11323:13;;;;;;;;;;;11317:19;;:2;:19;;;:55;;;;;11356:15;;;;;;;;;;;11340:32;;:4;:32;;;;11317:55;11313:165;;;11405:15;;11393:9;:27;;;;11449:13;;11439:7;:23;;;;11313:165;10885:604;11501:41;11516:4;11522:2;11526:6;11534:7;11501:14;:41::i;:::-;9259:2291;9156:2394;;;:::o;2361:224::-;2481:7;2514:1;2509;:6;;2517:12;2501:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2541:9;2557:1;2553;:5;;;;:::i;:::-;2541:17;;2576:1;2569:8;;;2361:224;;;;;:::o;12049:99::-;12106:17;;;;;;;;;;;:26;;:34;12133:6;12106:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12049:99;:::o;8096:323::-;8191:7;8249;;8238;:18;;8216:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8337:19;8359:10;:8;:10::i;:::-;8337:32;;8387:24;8399:11;8387:7;:11;;:24;;;;:::i;:::-;8380:31;;;8096:323;;;:::o;11558:483::-;5819:4;5810:6;;:13;;;;;;;;;;;;;;;;;;11636:21:::1;11674:1;11660:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11636:40;;11705:4;11687;11692:1;11687:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11731:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11721:4;11726:1;11721:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11764:62;11781:4;11796:15;;;;;;;;;;;11814:11;11764:8;:62::i;:::-;11837:15;;;;;;;;;;;:66;;;11918:11;11944:1;11960:4;11987;12007:15;11837:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11625:416;5855:5:::0;5846:6;;:14;;;;;;;;;;;;;;;;;;11558:483;:::o;12730:282::-;12886:7;12881:28;;12895:14;:12;:14::i;:::-;12881:28;12920:44;12938:6;12946:9;12957:6;12920:17;:44::i;:::-;12980:7;12975:29;;12989:15;:13;:15::i;:::-;12975:29;12730:282;;;;:::o;15691:164::-;15733:7;15754:15;15771;15790:19;:17;:19::i;:::-;15753:56;;;;15827:20;15839:7;15827;:11;;:20;;;;:::i;:::-;15820:27;;;;15691:164;:::o;2847:132::-;2905:7;2932:39;2936:1;2939;2932:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2925:46;;2847:132;;;;:::o;8427:219::-;8487:1;8474:9;;:14;:30;;;;;8503:1;8492:7;;:12;8474:30;8470:43;;;8506:7;;8470:43;8545:9;;8525:17;:29;;;;8583:7;;8565:15;:25;;;;8615:1;8603:9;:13;;;;8637:1;8627:7;:11;;;;8427:219;:::o;13020:610::-;13167:15;13197:23;13235:12;13262:23;13300:12;13327:13;13354:19;13365:7;13354:10;:19::i;:::-;13152:221;;;;;;;;;;;;13402:28;13422:7;13402;:15;13410:6;13402:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13384:7;:15;13392:6;13384:15;;;;;;;;;;;;;;;:46;;;;13462:39;13485:15;13462:7;:18;13470:9;13462:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13441:7;:18;13449:9;13441:18;;;;;;;;;;;;;;;:60;;;;13512:16;13522:5;13512:9;:16::i;:::-;13539:23;13551:4;13557;13539:11;:23::i;:::-;13595:9;13578:44;;13587:6;13578:44;;;13606:15;13578:44;;;;;;:::i;:::-;;;;;;;;13141:489;;;;;;13020:610;;;:::o;8654:117::-;8710:17;;8698:9;:29;;;;8748:15;;8738:7;:25;;;;8654:117::o;15863:257::-;15914:7;15923;15943:15;15961:7;;15943:25;;15979:15;4648:19;15979:25;;16029:20;4648:19;16029:7;;:11;;:20;;;;:::i;:::-;16019:7;:30;16015:61;;;16059:7;;4648:19;16051:25;;;;;;;;16015:61;16095:7;16104;16087:25;;;;;;15863:257;;;:::o;2987:223::-;3107:7;3139:1;3135;:5;3142:12;3127:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3166:9;3182:1;3178;:5;;;;:::i;:::-;3166:17;;3201:1;3194:8;;;2987:223;;;;;:::o;14049:615::-;14149:7;14171;14193;14215;14237;14259;14295:23;14320:12;14334:13;14364:40;14376:7;14385:9;;14396:7;;14364:11;:40::i;:::-;14294:110;;;;;;14415:19;14437:10;:8;:10::i;:::-;14415:32;;14459:15;14476:23;14501:12;14530:46;14542:7;14551:4;14557:5;14564:11;14530;:46::i;:::-;14458:118;;;;;;14595:7;14604:15;14621:4;14627:15;14644:4;14650:5;14587:69;;;;;;;;;;;;;;;;;;;14049:615;;;;;;;:::o;2217:136::-;2275:7;2302:43;2306:1;2309;2302:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2295:50;;2217:136;;;;:::o;2030:179::-;2088:7;2108:9;2124:1;2120;:5;;;;:::i;:::-;2108:17;;2149:1;2144;:6;;2136:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2200:1;2193:8;;;2030:179;;;;:::o;13638:211::-;13691:19;13713:10;:8;:10::i;:::-;13691:32;;13734:13;13750:22;13760:11;13750:5;:9;;:22;;;;:::i;:::-;13734:38;;13808:33;13835:5;13808:7;:22;13824:4;13808:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13783:7;:22;13799:4;13783:22;;;;;;;;;;;;;;;:58;;;;13680:169;;13638:211;:::o;13857:147::-;13935:17;13947:4;13935:7;;:11;;:17;;;;:::i;:::-;13925:7;:27;;;;13976:20;13991:4;13976:10;;:14;;:20;;;;:::i;:::-;13963:10;:33;;;;13857:147;;:::o;14672:469::-;14841:7;14863;14885;14920:12;14935:30;14961:3;14935:21;14947:8;14935:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;14920:45;;14976:13;14992:28;15016:3;14992:19;15004:6;14992:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14976:44;;15031:23;15057:28;15079:5;15057:17;15069:4;15057:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15031:54;;15104:15;15121:4;15127:5;15096:37;;;;;;;;;14672:469;;;;;;;:::o;15149:534::-;15343:7;15365;15387;15422:15;15440:24;15452:11;15440:7;:11;;:24;;;;:::i;:::-;15422:42;;15475:12;15490:21;15499:11;15490:4;:8;;:21;;;;:::i;:::-;15475:36;;15522:13;15538:22;15548:11;15538:5;:9;;:22;;;;:::i;:::-;15522:38;;15571:23;15597:28;15619:5;15597:17;15609:4;15597:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15571:54;;15644:7;15653:15;15670:4;15636:39;;;;;;;;;;15149:534;;;;;;;;:::o;2593:246::-;2651:7;2680:1;2675;:6;2671:47;;;2705:1;2698:8;;;;2671:47;2728:9;2744:1;2740;:5;;;;:::i;:::-;2728:17;;2773:1;2768;2764;:5;;;;:::i;:::-;:10;2756:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2830:1;2823:8;;;2593:246;;;;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:86::-;5479:7;5519:4;5512:5;5508:16;5497:27;;5444:86;;;:::o;5536:112::-;5619:22;5635:5;5619:22;:::i;:::-;5614:3;5607:35;5536:112;;:::o;5654:214::-;5743:4;5781:2;5770:9;5766:18;5758:26;;5794:67;5858:1;5847:9;5843:17;5834:6;5794:67;:::i;:::-;5654:214;;;;:::o;5874:118::-;5961:24;5979:5;5961:24;:::i;:::-;5956:3;5949:37;5874:118;;:::o;5998:222::-;6091:4;6129:2;6118:9;6114:18;6106:26;;6142:71;6210:1;6199:9;6195:17;6186:6;6142:71;:::i;:::-;5998:222;;;;:::o;6226:116::-;6296:21;6311:5;6296:21;:::i;:::-;6289:5;6286:32;6276:60;;6332:1;6329;6322:12;6276:60;6226:116;:::o;6348:133::-;6391:5;6429:6;6416:20;6407:29;;6445:30;6469:5;6445:30;:::i;:::-;6348:133;;;;:::o;6487:323::-;6543:6;6592:2;6580:9;6571:7;6567:23;6563:32;6560:119;;;6598:79;;:::i;:::-;6560:119;6718:1;6743:50;6785:7;6776:6;6765:9;6761:22;6743:50;:::i;:::-;6733:60;;6689:114;6487:323;;;;:::o;6816:329::-;6875:6;6924:2;6912:9;6903:7;6899:23;6895:32;6892:119;;;6930:79;;:::i;:::-;6892:119;7050:1;7075:53;7120:7;7111:6;7100:9;7096:22;7075:53;:::i;:::-;7065:63;;7021:117;6816:329;;;;:::o;7151:::-;7210:6;7259:2;7247:9;7238:7;7234:23;7230:32;7227:119;;;7265:79;;:::i;:::-;7227:119;7385:1;7410:53;7455:7;7446:6;7435:9;7431:22;7410:53;:::i;:::-;7400:63;;7356:117;7151:329;;;;:::o;7486:765::-;7572:6;7580;7588;7596;7645:3;7633:9;7624:7;7620:23;7616:33;7613:120;;;7652:79;;:::i;:::-;7613:120;7772:1;7797:53;7842:7;7833:6;7822:9;7818:22;7797:53;:::i;:::-;7787:63;;7743:117;7899:2;7925:53;7970:7;7961:6;7950:9;7946:22;7925:53;:::i;:::-;7915:63;;7870:118;8027:2;8053:53;8098:7;8089:6;8078:9;8074:22;8053:53;:::i;:::-;8043:63;;7998:118;8155:2;8181:53;8226:7;8217:6;8206:9;8202:22;8181:53;:::i;:::-;8171:63;;8126:118;7486:765;;;;;;;:::o;8257:117::-;8366:1;8363;8356:12;8380:117;8489:1;8486;8479:12;8503:117;8612:1;8609;8602:12;8643:568;8716:8;8726:6;8776:3;8769:4;8761:6;8757:17;8753:27;8743:122;;8784:79;;:::i;:::-;8743:122;8897:6;8884:20;8874:30;;8927:18;8919:6;8916:30;8913:117;;;8949:79;;:::i;:::-;8913:117;9063:4;9055:6;9051:17;9039:29;;9117:3;9109:4;9101:6;9097:17;9087:8;9083:32;9080:41;9077:128;;;9124:79;;:::i;:::-;9077:128;8643:568;;;;;:::o;9217:698::-;9309:6;9317;9325;9374:2;9362:9;9353:7;9349:23;9345:32;9342:119;;;9380:79;;:::i;:::-;9342:119;9528:1;9517:9;9513:17;9500:31;9558:18;9550:6;9547:30;9544:117;;;9580:79;;:::i;:::-;9544:117;9693:80;9765:7;9756:6;9745:9;9741:22;9693:80;:::i;:::-;9675:98;;;;9471:312;9822:2;9848:50;9890:7;9881:6;9870:9;9866:22;9848:50;:::i;:::-;9838:60;;9793:115;9217:698;;;;;:::o;9921:474::-;9989:6;9997;10046:2;10034:9;10025:7;10021:23;10017:32;10014:119;;;10052:79;;:::i;:::-;10014:119;10172:1;10197:53;10242:7;10233:6;10222:9;10218:22;10197:53;:::i;:::-;10187:63;;10143:117;10299:2;10325:53;10370:7;10361:6;10350:9;10346:22;10325:53;:::i;:::-;10315:63;;10270:118;9921:474;;;;;:::o;10401:182::-;10541:34;10537:1;10529:6;10525:14;10518:58;10401:182;:::o;10589:366::-;10731:3;10752:67;10816:2;10811:3;10752:67;:::i;:::-;10745:74;;10828:93;10917:3;10828:93;:::i;:::-;10946:2;10941:3;10937:12;10930:19;;10589:366;;;:::o;10961:419::-;11127:4;11165:2;11154:9;11150:18;11142:26;;11214:9;11208:4;11204:20;11200:1;11189:9;11185:17;11178:47;11242:131;11368:4;11242:131;:::i;:::-;11234:139;;10961:419;;;:::o;11386:180::-;11434:77;11431:1;11424:88;11531:4;11528:1;11521:15;11555:4;11552:1;11545:15;11572:180;11620:77;11617:1;11610:88;11717:4;11714:1;11707:15;11741:4;11738:1;11731:15;11758:185;11798:1;11815:20;11833:1;11815:20;:::i;:::-;11810:25;;11849:20;11867:1;11849:20;:::i;:::-;11844:25;;11888:1;11878:35;;11893:18;;:::i;:::-;11878:35;11935:1;11932;11928:9;11923:14;;11758:185;;;;:::o;11949:234::-;12089:34;12085:1;12077:6;12073:14;12066:58;12158:17;12153:2;12145:6;12141:15;12134:42;11949:234;:::o;12189:366::-;12331:3;12352:67;12416:2;12411:3;12352:67;:::i;:::-;12345:74;;12428:93;12517:3;12428:93;:::i;:::-;12546:2;12541:3;12537:12;12530:19;;12189:366;;;:::o;12561:419::-;12727:4;12765:2;12754:9;12750:18;12742:26;;12814:9;12808:4;12804:20;12800:1;12789:9;12785:17;12778:47;12842:131;12968:4;12842:131;:::i;:::-;12834:139;;12561:419;;;:::o;12986:305::-;13026:3;13045:20;13063:1;13045:20;:::i;:::-;13040:25;;13079:20;13097:1;13079:20;:::i;:::-;13074:25;;13233:1;13165:66;13161:74;13158:1;13155:81;13152:107;;;13239:18;;:::i;:::-;13152:107;13283:1;13280;13276:9;13269:16;;12986:305;;;;:::o;13297:228::-;13437:34;13433:1;13425:6;13421:14;13414:58;13506:11;13501:2;13493:6;13489:15;13482:36;13297:228;:::o;13531:366::-;13673:3;13694:67;13758:2;13753:3;13694:67;:::i;:::-;13687:74;;13770:93;13859:3;13770:93;:::i;:::-;13888:2;13883:3;13879:12;13872:19;;13531:366;;;:::o;13903:419::-;14069:4;14107:2;14096:9;14092:18;14084:26;;14156:9;14150:4;14146:20;14142:1;14131:9;14127:17;14120:47;14184:131;14310:4;14184:131;:::i;:::-;14176:139;;13903:419;;;:::o;14328:229::-;14468:34;14464:1;14456:6;14452:14;14445:58;14537:12;14532:2;14524:6;14520:15;14513:37;14328:229;:::o;14563:366::-;14705:3;14726:67;14790:2;14785:3;14726:67;:::i;:::-;14719:74;;14802:93;14891:3;14802:93;:::i;:::-;14920:2;14915:3;14911:12;14904:19;;14563:366;;;:::o;14935:419::-;15101:4;15139:2;15128:9;15124:18;15116:26;;15188:9;15182:4;15178:20;15174:1;15163:9;15159:17;15152:47;15216:131;15342:4;15216:131;:::i;:::-;15208:139;;14935:419;;;:::o;15360:180::-;15408:77;15405:1;15398:88;15505:4;15502:1;15495:15;15529:4;15526:1;15519:15;15546:233;15585:3;15608:24;15626:5;15608:24;:::i;:::-;15599:33;;15654:66;15647:5;15644:77;15641:103;;;15724:18;;:::i;:::-;15641:103;15771:1;15764:5;15760:13;15753:20;;15546:233;;;:::o;15785:348::-;15825:7;15848:20;15866:1;15848:20;:::i;:::-;15843:25;;15882:20;15900:1;15882:20;:::i;:::-;15877:25;;16070:1;16002:66;15998:74;15995:1;15992:81;15987:1;15980:9;15973:17;15969:105;15966:131;;;16077:18;;:::i;:::-;15966:131;16125:1;16122;16118:9;16107:20;;15785:348;;;;:::o;16139:223::-;16279:34;16275:1;16267:6;16263:14;16256:58;16348:6;16343:2;16335:6;16331:15;16324:31;16139:223;:::o;16368:366::-;16510:3;16531:67;16595:2;16590:3;16531:67;:::i;:::-;16524:74;;16607:93;16696:3;16607:93;:::i;:::-;16725:2;16720:3;16716:12;16709:19;;16368:366;;;:::o;16740:419::-;16906:4;16944:2;16933:9;16929:18;16921:26;;16993:9;16987:4;16983:20;16979:1;16968:9;16964:17;16957:47;17021:131;17147:4;17021:131;:::i;:::-;17013:139;;16740:419;;;:::o;17165:225::-;17305:34;17301:1;17293:6;17289:14;17282:58;17374:8;17369:2;17361:6;17357:15;17350:33;17165:225;:::o;17396:366::-;17538:3;17559:67;17623:2;17618:3;17559:67;:::i;:::-;17552:74;;17635:93;17724:3;17635:93;:::i;:::-;17753:2;17748:3;17744:12;17737:19;;17396:366;;;:::o;17768:419::-;17934:4;17972:2;17961:9;17957:18;17949:26;;18021:9;18015:4;18011:20;18007:1;17996:9;17992:17;17985:47;18049:131;18175:4;18049:131;:::i;:::-;18041:139;;17768:419;;;:::o;18193:223::-;18333:34;18329:1;18321:6;18317:14;18310:58;18402:6;18397:2;18389:6;18385:15;18378:31;18193:223;:::o;18422:366::-;18564:3;18585:67;18649:2;18644:3;18585:67;:::i;:::-;18578:74;;18661:93;18750:3;18661:93;:::i;:::-;18779:2;18774:3;18770:12;18763:19;;18422:366;;;:::o;18794:419::-;18960:4;18998:2;18987:9;18983:18;18975:26;;19047:9;19041:4;19037:20;19033:1;19022:9;19018:17;19011:47;19075:131;19201:4;19075:131;:::i;:::-;19067:139;;18794:419;;;:::o;19219:221::-;19359:34;19355:1;19347:6;19343:14;19336:58;19428:4;19423:2;19415:6;19411:15;19404:29;19219:221;:::o;19446:366::-;19588:3;19609:67;19673:2;19668:3;19609:67;:::i;:::-;19602:74;;19685:93;19774:3;19685:93;:::i;:::-;19803:2;19798:3;19794:12;19787:19;;19446:366;;;:::o;19818:419::-;19984:4;20022:2;20011:9;20007:18;19999:26;;20071:9;20065:4;20061:20;20057:1;20046:9;20042:17;20035:47;20099:131;20225:4;20099:131;:::i;:::-;20091:139;;19818:419;;;:::o;20243:224::-;20383:34;20379:1;20371:6;20367:14;20360:58;20452:7;20447:2;20439:6;20435:15;20428:32;20243:224;:::o;20473:366::-;20615:3;20636:67;20700:2;20695:3;20636:67;:::i;:::-;20629:74;;20712:93;20801:3;20712:93;:::i;:::-;20830:2;20825:3;20821:12;20814:19;;20473:366;;;:::o;20845:419::-;21011:4;21049:2;21038:9;21034:18;21026:26;;21098:9;21092:4;21088:20;21084:1;21073:9;21069:17;21062:47;21126:131;21252:4;21126:131;:::i;:::-;21118:139;;20845:419;;;:::o;21270:222::-;21410:34;21406:1;21398:6;21394:14;21387:58;21479:5;21474:2;21466:6;21462:15;21455:30;21270:222;:::o;21498:366::-;21640:3;21661:67;21725:2;21720:3;21661:67;:::i;:::-;21654:74;;21737:93;21826:3;21737:93;:::i;:::-;21855:2;21850:3;21846:12;21839:19;;21498:366;;;:::o;21870:419::-;22036:4;22074:2;22063:9;22059:18;22051:26;;22123:9;22117:4;22113:20;22109:1;22098:9;22094:17;22087:47;22151:131;22277:4;22151:131;:::i;:::-;22143:139;;21870:419;;;:::o;22295:228::-;22435:34;22431:1;22423:6;22419:14;22412:58;22504:11;22499:2;22491:6;22487:15;22480:36;22295:228;:::o;22529:366::-;22671:3;22692:67;22756:2;22751:3;22692:67;:::i;:::-;22685:74;;22768:93;22857:3;22768:93;:::i;:::-;22886:2;22881:3;22877:12;22870:19;;22529:366;;;:::o;22901:419::-;23067:4;23105:2;23094:9;23090:18;23082:26;;23154:9;23148:4;23144:20;23140:1;23129:9;23125:17;23118:47;23182:131;23308:4;23182:131;:::i;:::-;23174:139;;22901:419;;;:::o;23326:250::-;23466:34;23462:1;23454:6;23450:14;23443:58;23535:33;23530:2;23522:6;23518:15;23511:58;23326:250;:::o;23582:366::-;23724:3;23745:67;23809:2;23804:3;23745:67;:::i;:::-;23738:74;;23821:93;23910:3;23821:93;:::i;:::-;23939:2;23934:3;23930:12;23923:19;;23582:366;;;:::o;23954:419::-;24120:4;24158:2;24147:9;24143:18;24135:26;;24207:9;24201:4;24197:20;24193:1;24182:9;24178:17;24171:47;24235:131;24361:4;24235:131;:::i;:::-;24227:139;;23954:419;;;:::o;24379:178::-;24519:30;24515:1;24507:6;24503:14;24496:54;24379:178;:::o;24563:366::-;24705:3;24726:67;24790:2;24785:3;24726:67;:::i;:::-;24719:74;;24802:93;24891:3;24802:93;:::i;:::-;24920:2;24915:3;24911:12;24904:19;;24563:366;;;:::o;24935:419::-;25101:4;25139:2;25128:9;25124:18;25116:26;;25188:9;25182:4;25178:20;25174:1;25163:9;25159:17;25152:47;25216:131;25342:4;25216:131;:::i;:::-;25208:139;;24935:419;;;:::o;25360:222::-;25500:34;25496:1;25488:6;25484:14;25477:58;25569:5;25564:2;25556:6;25552:15;25545:30;25360:222;:::o;25588:366::-;25730:3;25751:67;25815:2;25810:3;25751:67;:::i;:::-;25744:74;;25827:93;25916:3;25827:93;:::i;:::-;25945:2;25940:3;25936:12;25929:19;;25588:366;;;:::o;25960:419::-;26126:4;26164:2;26153:9;26149:18;26141:26;;26213:9;26207:4;26203:20;26199:1;26188:9;26184:17;26177:47;26241:131;26367:4;26241:131;:::i;:::-;26233:139;;25960:419;;;:::o;26385:191::-;26425:4;26445:20;26463:1;26445:20;:::i;:::-;26440:25;;26479:20;26497:1;26479:20;:::i;:::-;26474:25;;26518:1;26515;26512:8;26509:34;;;26523:18;;:::i;:::-;26509:34;26568:1;26565;26561:9;26553:17;;26385:191;;;;:::o;26582:229::-;26722:34;26718:1;26710:6;26706:14;26699:58;26791:12;26786:2;26778:6;26774:15;26767:37;26582:229;:::o;26817:366::-;26959:3;26980:67;27044:2;27039:3;26980:67;:::i;:::-;26973:74;;27056:93;27145:3;27056:93;:::i;:::-;27174:2;27169:3;27165:12;27158:19;;26817:366;;;:::o;27189:419::-;27355:4;27393:2;27382:9;27378:18;27370:26;;27442:9;27436:4;27432:20;27428:1;27417:9;27413:17;27406:47;27470:131;27596:4;27470:131;:::i;:::-;27462:139;;27189:419;;;:::o;27614:180::-;27662:77;27659:1;27652:88;27759:4;27756:1;27749:15;27783:4;27780:1;27773:15;27800:143;27857:5;27888:6;27882:13;27873:22;;27904:33;27931:5;27904:33;:::i;:::-;27800:143;;;;:::o;27949:351::-;28019:6;28068:2;28056:9;28047:7;28043:23;28039:32;28036:119;;;28074:79;;:::i;:::-;28036:119;28194:1;28219:64;28275:7;28266:6;28255:9;28251:22;28219:64;:::i;:::-;28209:74;;28165:128;27949:351;;;;:::o;28306:85::-;28351:7;28380:5;28369:16;;28306:85;;;:::o;28397:158::-;28455:9;28488:61;28506:42;28515:32;28541:5;28515:32;:::i;:::-;28506:42;:::i;:::-;28488:61;:::i;:::-;28475:74;;28397:158;;;:::o;28561:147::-;28656:45;28695:5;28656:45;:::i;:::-;28651:3;28644:58;28561:147;;:::o;28714:114::-;28781:6;28815:5;28809:12;28799:22;;28714:114;;;:::o;28834:184::-;28933:11;28967:6;28962:3;28955:19;29007:4;29002:3;28998:14;28983:29;;28834:184;;;;:::o;29024:132::-;29091:4;29114:3;29106:11;;29144:4;29139:3;29135:14;29127:22;;29024:132;;;:::o;29162:108::-;29239:24;29257:5;29239:24;:::i;:::-;29234:3;29227:37;29162:108;;:::o;29276:179::-;29345:10;29366:46;29408:3;29400:6;29366:46;:::i;:::-;29444:4;29439:3;29435:14;29421:28;;29276:179;;;;:::o;29461:113::-;29531:4;29563;29558:3;29554:14;29546:22;;29461:113;;;:::o;29610:732::-;29729:3;29758:54;29806:5;29758:54;:::i;:::-;29828:86;29907:6;29902:3;29828:86;:::i;:::-;29821:93;;29938:56;29988:5;29938:56;:::i;:::-;30017:7;30048:1;30033:284;30058:6;30055:1;30052:13;30033:284;;;30134:6;30128:13;30161:63;30220:3;30205:13;30161:63;:::i;:::-;30154:70;;30247:60;30300:6;30247:60;:::i;:::-;30237:70;;30093:224;30080:1;30077;30073:9;30068:14;;30033:284;;;30037:14;30333:3;30326:10;;29734:608;;;29610:732;;;;:::o;30348:831::-;30611:4;30649:3;30638:9;30634:19;30626:27;;30663:71;30731:1;30720:9;30716:17;30707:6;30663:71;:::i;:::-;30744:80;30820:2;30809:9;30805:18;30796:6;30744:80;:::i;:::-;30871:9;30865:4;30861:20;30856:2;30845:9;30841:18;30834:48;30899:108;31002:4;30993:6;30899:108;:::i;:::-;30891:116;;31017:72;31085:2;31074:9;31070:18;31061:6;31017:72;:::i;:::-;31099:73;31167:3;31156:9;31152:19;31143:6;31099:73;:::i;:::-;30348:831;;;;;;;;:::o;31185:177::-;31325:29;31321:1;31313:6;31309:14;31302:53;31185:177;:::o;31368:366::-;31510:3;31531:67;31595:2;31590:3;31531:67;:::i;:::-;31524:74;;31607:93;31696:3;31607:93;:::i;:::-;31725:2;31720:3;31716:12;31709:19;;31368:366;;;:::o;31740:419::-;31906:4;31944:2;31933:9;31929:18;31921:26;;31993:9;31987:4;31983:20;31979:1;31968:9;31964:17;31957:47;32021:131;32147:4;32021:131;:::i;:::-;32013:139;;31740:419;;;:::o;32165:220::-;32305:34;32301:1;32293:6;32289:14;32282:58;32374:3;32369:2;32361:6;32357:15;32350:28;32165:220;:::o;32391:366::-;32533:3;32554:67;32618:2;32613:3;32554:67;:::i;:::-;32547:74;;32630:93;32719:3;32630:93;:::i;:::-;32748:2;32743:3;32739:12;32732:19;;32391:366;;;:::o;32763:419::-;32929:4;32967:2;32956:9;32952:18;32944:26;;33016:9;33010:4;33006:20;33002:1;32991:9;32987:17;32980:47;33044:131;33170:4;33044:131;:::i;:::-;33036:139;;32763:419;;;:::o
Swarm Source
ipfs://4ca3222119a4e4af7f4370a588fb7df8fede30e3fe45203c559b005efe6aa4cf
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.