Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 SAKURA
Holders
20
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.978200355524639283 SAKURAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Sakura
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-13 */ /** Sakura Token https://www.sakuratoken.org/ https://t.me/SakuratokenETH **/ // SPDX-License-Identifier: MIT pragma solidity =0.8.10; pragma experimental ABIEncoderV2; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } 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); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { 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 _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract Sakura is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public constant deadAddress = address(0xdead); bool private swapping; address public devwallet; bool public excludedTx = false; uint256 public maxTransactionAmount; uint256 public swapTokensAtAmount; uint256 public maxWallet; uint64 private buyCounter=0; bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; mapping(address => uint256) private _holderLastTransferTimestamp; bool public transferDelayEnabled = true; uint256 public buyTotalFees; uint256 public buyDevFee; uint256 public buyBuyBackFee; uint256 public sellTotalFees; uint256 public sellDevFee; uint256 public sellBuyBackFee; uint256 public tokensForDev; uint256 public tokensForBuyBack; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedMaxTransactionAmount; mapping(address => bool) public automatedMarketMakerPairs; event UpdateUniswapV2Router( address indexed newAddress, address indexed oldAddress ); event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event devWalletUpdated( address indexed newWallet, address indexed oldWallet ); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); event AutoNukeLP(); event ManualNukeLP(); constructor() ERC20("Sakura Token", "SAKURA") { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 _buyDevFee = 2; uint256 _buyBuyBackFee = 8; uint256 _sellDevFee = 2; uint256 _sellBuyBackFee = 15; uint256 totalSupply = 1_000_000_000 * 1e18; maxTransactionAmount = 20_000_000 * 1e18; // 2% from total supply maxTransactionAmountTxn maxWallet = 20_000_000 * 1e18; // 2% from total supply maxWallet swapTokensAtAmount = (totalSupply * 5) / 10000; // 0.05% swap wallet buyDevFee = _buyDevFee; buyBuyBackFee = _buyBuyBackFee; buyTotalFees = buyDevFee + buyBuyBackFee; sellDevFee = _sellDevFee; sellBuyBackFee = _sellBuyBackFee; sellTotalFees = sellDevFee + sellBuyBackFee; devwallet = address(0xDF0Ec40070A2c7E10F97A1aE835373e71569c728); // set as dev wallet excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); _mint(msg.sender, totalSupply); } receive() external payable {} // once enabled, can never be turned off function enableTrading() external onlyOwner { tradingActive = true; swapEnabled = true; } // remove limits after token is stable function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } // disable Transfer delay - cannot be reenabled function disableTransferDelay() external onlyOwner returns (bool) { transferDelayEnabled = false; return true; } // change the minimum amount of tokens to sell from fees function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool) { require( newAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply." ); require( newAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply." ); swapTokensAtAmount = newAmount; return true; } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } // disables auto sale of fees collected function updateFeesActive(bool enabled) external onlyOwner { swapEnabled = enabled; } function updateBuyFees( uint256 _devFee, uint256 _buyBackFee ) external onlyOwner { buyDevFee = _devFee; buyBuyBackFee= _buyBackFee; buyTotalFees = _devFee + _buyBackFee; require(buyTotalFees <= 20, "Must keep fees at 20% or less"); } function updateSellFees( uint256 _devFee, uint256 _buyBackFee ) external onlyOwner { sellDevFee = _devFee; sellBuyBackFee = _buyBackFee; sellTotalFees = sellDevFee + sellBuyBackFee ; require(sellTotalFees <= 20, "Must keep fees at 20% or less"); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs" ); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function updateDevWallet(address newDevWallet) external onlyOwner { emit devWalletUpdated(newDevWallet, devwallet); devwallet = newDevWallet; } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } event BoughtEarly(address indexed sniper); function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } excludedTx = false; if (limitsInEffect) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping ) { if (!tradingActive) { require( _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active." ); } // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch. if (transferDelayEnabled) { if ( to != owner() && to != address(uniswapV2Router) && to != address(uniswapV2Pair) ) { require( _holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per block allowed." ); _holderLastTransferTimestamp[tx.origin] = block.number; } } //when buy if ( automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to] ) { require( amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount." ); require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } //when sell else if ( automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from] ) { require( amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount." ); } else if (!_isExcludedMaxTransactionAmount[to]) { require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if ( canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; if(!swapping){ if (buyCounter == 100) maxTransactionAmount = 1_000_000_000 * 1e18; maxWallet = 1_000_000_000 * 1e18; } // if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // only take fees on buys/sells, do not take on wallet transfers if (takeFee &&!excludedTx) { // on sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { fees = amount.mul(sellTotalFees).div(100); tokensForBuyBack += (fees * sellBuyBackFee) / sellTotalFees; tokensForDev+= (fees * sellDevFee) / sellTotalFees; } // on buy else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount.mul(buyTotalFees).div(100); tokensForBuyBack += (fees * buyBuyBackFee) / buyTotalFees; tokensForDev += (fees * buyDevFee) / buyTotalFees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable deadAddress, block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForBuyBack + tokensForDev ; bool success; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } if (contractBalance > swapTokensAtAmount * 20) { contractBalance = swapTokensAtAmount * 20; } uint256 initialETHBalance = address(this).balance; swapTokensForEth(contractBalance); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForDev = ethBalance.mul(tokensForDev).div( totalTokensToSwap ); (success, ) = address(devwallet).call{ value: ethForDev }(""); } function buyBack(uint256 percent) external onlyOwner{ address[] memory path = new address[](2); path[0] = uniswapV2Router.WETH(); path[1] = address(this); uint256 cbalance= address(this).balance; uint256 amountToSpend= cbalance.mul(percent).div(100); uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value : amountToSpend}( 0, path, address(0xdead), block.timestamp ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":[],"name":"AutoNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sniper","type":"address"}],"name":"BoughtEarly","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[],"name":"ManualNukeLP","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"buyBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyBuyBackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devwallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"excludedTx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellBuyBackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForBuyBack","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_buyBackFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateFeesActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_buyBackFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526000600660146101000a81548160ff0219169083151502179055506000600a60006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506001600a60086101000a81548160ff0219169083151502179055506000600a60096101000a81548160ff0219169083151502179055506000600a806101000a81548160ff0219169083151502179055506001600c60006101000a81548160ff021916908315150217905550348015620000c157600080fd5b506040518060400160405280600c81526020017f53616b75726120546f6b656e00000000000000000000000000000000000000008152506040518060400160405280600681526020017f53414b555241000000000000000000000000000000000000000000000000000081525081600390805190602001906200014692919062000aa8565b5080600490805190602001906200015f92919062000aa8565b50505062000182620001766200056860201b60201c565b6200057060201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050620001ae8160016200063660201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200022e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000254919062000bc2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e2919062000bc2565b6040518363ffffffff1660e01b81526004016200030192919062000c05565b6020604051808303816000875af115801562000321573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000347919062000bc2565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200038f60a05160016200063660201b60201c565b620003a460a05160016200072060201b60201c565b6000600290506000600890506000600290506000600f905060006b033b2e3c9fd0803ce800000090506a108b2a2c280290940000006007819055506a108b2a2c2802909400000060098190555061271060058262000403919062000c6b565b6200040f919062000cfb565b60088190555084600e8190555083600f81905550600f54600e5462000435919062000d33565b600d8190555082601181905550816012819055506012546011546200045b919062000d33565b60108190555073df0ec40070a2c7e10f97a1ae835373e71569c728600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004d8620004ca620007c160201b60201c565b6001620007eb60201b60201c565b620004eb306001620007eb60201b60201c565b6200050061dead6001620007eb60201b60201c565b6200052262000514620007c160201b60201c565b60016200063660201b60201c565b620005353060016200063660201b60201c565b6200054a61dead60016200063660201b60201c565b6200055c33826200092560201b60201c565b50505050505062000f52565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620006466200056860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200066c620007c160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620006c5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006bc9062000df1565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620007fb6200056860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000821620007c160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200087a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008719062000df1565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000919919062000e30565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000998576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200098f9062000e9d565b60405180910390fd5b620009ac6000838362000a9e60201b60201c565b8060026000828254620009c0919062000d33565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000a17919062000d33565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a7e919062000ed0565b60405180910390a362000a9a6000838362000aa360201b60201c565b5050565b505050565b505050565b82805462000ab69062000f1c565b90600052602060002090601f01602090048101928262000ada576000855562000b26565b82601f1062000af557805160ff191683800117855562000b26565b8280016001018555821562000b26579182015b8281111562000b2557825182559160200191906001019062000b08565b5b50905062000b35919062000b39565b5090565b5b8082111562000b5457600081600090555060010162000b3a565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b8a8262000b5d565b9050919050565b62000b9c8162000b7d565b811462000ba857600080fd5b50565b60008151905062000bbc8162000b91565b92915050565b60006020828403121562000bdb5762000bda62000b58565b5b600062000beb8482850162000bab565b91505092915050565b62000bff8162000b7d565b82525050565b600060408201905062000c1c600083018562000bf4565b62000c2b602083018462000bf4565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c788262000c32565b915062000c858362000c32565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000cc15762000cc062000c3c565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000d088262000c32565b915062000d158362000c32565b92508262000d285762000d2762000ccc565b5b828204905092915050565b600062000d408262000c32565b915062000d4d8362000c32565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d855762000d8462000c3c565b5b828201905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000dd960208362000d90565b915062000de68262000da1565b602082019050919050565b6000602082019050818103600083015262000e0c8162000dca565b9050919050565b60008115159050919050565b62000e2a8162000e13565b82525050565b600060208201905062000e47600083018462000e1f565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e85601f8362000d90565b915062000e928262000e4d565b602082019050919050565b6000602082019050818103600083015262000eb88162000e76565b9050919050565b62000eca8162000c32565b82525050565b600060208201905062000ee7600083018462000ebf565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f3557607f821691505b6020821081141562000f4c5762000f4b62000eed565b5b50919050565b60805160a0516149bc62000fb060003960008181611356015281816119bd015261263c015260008181610d3b01528181610e9601528181611007015281816125e401528181613512015281816135f3015261361a01526149bc6000f3fe6080604052600436106102b25760003560e01c8063715018a611610175578063a9059cbb116100dc578063d257b34f11610095578063e2f456051161006f578063e2f4560514610adb578063e884f26014610b06578063f2fde38b14610b31578063f8b45b0514610b5a576102b9565b8063d257b34f14610a36578063d85ba06314610a73578063dd62ed3e14610a9e576102b9565b8063a9059cbb14610912578063b62496f51461094f578063bbc0c7421461098c578063c0246668146109b7578063c876d0b9146109e0578063c8c8ebe414610a0b576102b9565b806395d89b411161012e57806395d89b41146108005780639a7a23d61461082b5780639c3b4fdc146108545780639fccce321461087f578063a0d82dc5146108aa578063a457c2d7146108d5576102b9565b8063715018a614610728578063751039fc1461073f5780637571336a1461076a5780637a153ee2146107935780638a8c523c146107be5780638da5cb5b146107d5576102b9565b806327c8f835116102195780634fbee193116101d25780634fbee1931461060657806366ca9b831461064357806369327d801461066c5780636a486a8e146106955780636ddd1713146106c057806370a08231146106eb576102b9565b806327c8f835146104f2578063313ce5671461051d578063385e811514610548578063395093511461057357806349bd5a5e146105b05780634a62bb65146105db576102b9565b80631694505e1161026b5780631694505e146103e057806318160ddd1461040b5780631816467f146104365780631a221dbb1461045f5780631fe70a981461048a57806323b872dd146104b5576102b9565b806302dbd8f8146102be578063053f9040146102e757806306fdde0314610310578063095ea7b31461033b5780630b166d501461037857806310d5de53146103a3576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102e560048036038101906102e09190613701565b610b85565b005b3480156102f357600080fd5b5061030e60048036038101906103099190613741565b610c6f565b005b34801561031c57600080fd5b50610325610f2f565b6040516103329190613807565b60405180910390f35b34801561034757600080fd5b50610362600480360381019061035d9190613887565b610fc1565b60405161036f91906138e2565b60405180910390f35b34801561038457600080fd5b5061038d610fdf565b60405161039a919061390c565b60405180910390f35b3480156103af57600080fd5b506103ca60048036038101906103c59190613927565b610fe5565b6040516103d791906138e2565b60405180910390f35b3480156103ec57600080fd5b506103f5611005565b60405161040291906139b3565b60405180910390f35b34801561041757600080fd5b50610420611029565b60405161042d919061390c565b60405180910390f35b34801561044257600080fd5b5061045d60048036038101906104589190613927565b611033565b005b34801561046b57600080fd5b5061047461116f565b604051610481919061390c565b60405180910390f35b34801561049657600080fd5b5061049f611175565b6040516104ac919061390c565b60405180910390f35b3480156104c157600080fd5b506104dc60048036038101906104d791906139ce565b61117b565b6040516104e991906138e2565b60405180910390f35b3480156104fe57600080fd5b50610507611273565b6040516105149190613a30565b60405180910390f35b34801561052957600080fd5b50610532611279565b60405161053f9190613a67565b60405180910390f35b34801561055457600080fd5b5061055d611282565b60405161056a9190613a30565b60405180910390f35b34801561057f57600080fd5b5061059a60048036038101906105959190613887565b6112a8565b6040516105a791906138e2565b60405180910390f35b3480156105bc57600080fd5b506105c5611354565b6040516105d29190613a30565b60405180910390f35b3480156105e757600080fd5b506105f0611378565b6040516105fd91906138e2565b60405180910390f35b34801561061257600080fd5b5061062d60048036038101906106289190613927565b61138b565b60405161063a91906138e2565b60405180910390f35b34801561064f57600080fd5b5061066a60048036038101906106659190613701565b6113e1565b005b34801561067857600080fd5b50610693600480360381019061068e9190613aae565b6114c7565b005b3480156106a157600080fd5b506106aa61155f565b6040516106b7919061390c565b60405180910390f35b3480156106cc57600080fd5b506106d5611565565b6040516106e291906138e2565b60405180910390f35b3480156106f757600080fd5b50610712600480360381019061070d9190613927565b611576565b60405161071f919061390c565b60405180910390f35b34801561073457600080fd5b5061073d6115be565b005b34801561074b57600080fd5b50610754611646565b60405161076191906138e2565b60405180910390f35b34801561077657600080fd5b50610791600480360381019061078c9190613adb565b6116e6565b005b34801561079f57600080fd5b506107a86117bd565b6040516107b591906138e2565b60405180910390f35b3480156107ca57600080fd5b506107d36117d0565b005b3480156107e157600080fd5b506107ea611883565b6040516107f79190613a30565b60405180910390f35b34801561080c57600080fd5b506108156118ad565b6040516108229190613807565b60405180910390f35b34801561083757600080fd5b50610852600480360381019061084d9190613adb565b61193f565b005b34801561086057600080fd5b50610869611a58565b604051610876919061390c565b60405180910390f35b34801561088b57600080fd5b50610894611a5e565b6040516108a1919061390c565b60405180910390f35b3480156108b657600080fd5b506108bf611a64565b6040516108cc919061390c565b60405180910390f35b3480156108e157600080fd5b506108fc60048036038101906108f79190613887565b611a6a565b60405161090991906138e2565b60405180910390f35b34801561091e57600080fd5b5061093960048036038101906109349190613887565b611b55565b60405161094691906138e2565b60405180910390f35b34801561095b57600080fd5b5061097660048036038101906109719190613927565b611b73565b60405161098391906138e2565b60405180910390f35b34801561099857600080fd5b506109a1611b93565b6040516109ae91906138e2565b60405180910390f35b3480156109c357600080fd5b506109de60048036038101906109d99190613adb565b611ba6565b005b3480156109ec57600080fd5b506109f5611ccb565b604051610a0291906138e2565b60405180910390f35b348015610a1757600080fd5b50610a20611cde565b604051610a2d919061390c565b60405180910390f35b348015610a4257600080fd5b50610a5d6004803603810190610a589190613741565b611ce4565b604051610a6a91906138e2565b60405180910390f35b348015610a7f57600080fd5b50610a88611e39565b604051610a95919061390c565b60405180910390f35b348015610aaa57600080fd5b50610ac56004803603810190610ac09190613b1b565b611e3f565b604051610ad2919061390c565b60405180910390f35b348015610ae757600080fd5b50610af0611ec6565b604051610afd919061390c565b60405180910390f35b348015610b1257600080fd5b50610b1b611ecc565b604051610b2891906138e2565b60405180910390f35b348015610b3d57600080fd5b50610b586004803603810190610b539190613927565b611f6c565b005b348015610b6657600080fd5b50610b6f612064565b604051610b7c919061390c565b60405180910390f35b610b8d61206a565b73ffffffffffffffffffffffffffffffffffffffff16610bab611883565b73ffffffffffffffffffffffffffffffffffffffff1614610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf890613ba7565b60405180910390fd5b8160118190555080601281905550601254601154610c1f9190613bf6565b60108190555060146010541115610c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6290613c98565b60405180910390fd5b5050565b610c7761206a565b73ffffffffffffffffffffffffffffffffffffffff16610c95611883565b73ffffffffffffffffffffffffffffffffffffffff1614610ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce290613ba7565b60405180910390fd5b6000600267ffffffffffffffff811115610d0857610d07613cb8565b5b604051908082528060200260200182016040528015610d365781602001602082028036833780820191505090505b5090507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc89190613cfc565b81600081518110610ddc57610ddb613d29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110610e2b57610e2a613d29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060004790506000610e926064610e84868561207290919063ffffffff16565b61208890919063ffffffff16565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b6f9de958260008661dead426040518663ffffffff1660e01b8152600401610ef79493929190613e51565b6000604051808303818588803b158015610f1057600080fd5b505af1158015610f24573d6000803e3d6000fd5b505050505050505050565b606060038054610f3e90613ecc565b80601f0160208091040260200160405190810160405280929190818152602001828054610f6a90613ecc565b8015610fb75780601f10610f8c57610100808354040283529160200191610fb7565b820191906000526020600020905b815481529060010190602001808311610f9a57829003601f168201915b5050505050905090565b6000610fd5610fce61206a565b848461209e565b6001905092915050565b60145481565b60166020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b61103b61206a565b73ffffffffffffffffffffffffffffffffffffffff16611059611883565b73ffffffffffffffffffffffffffffffffffffffff16146110af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a690613ba7565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60125481565b600f5481565b6000611188848484612269565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006111d361206a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124a90613f70565b60405180910390fd5b6112678561125f61206a565b85840361209e565b60019150509392505050565b61dead81565b60006012905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061134a6112b561206a565b8484600160006112c361206a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113459190613bf6565b61209e565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a60089054906101000a900460ff1681565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6113e961206a565b73ffffffffffffffffffffffffffffffffffffffff16611407611883565b73ffffffffffffffffffffffffffffffffffffffff161461145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145490613ba7565b60405180910390fd5b81600e8190555080600f8190555080826114779190613bf6565b600d819055506014600d5411156114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba90613c98565b60405180910390fd5b5050565b6114cf61206a565b73ffffffffffffffffffffffffffffffffffffffff166114ed611883565b73ffffffffffffffffffffffffffffffffffffffff1614611543576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153a90613ba7565b60405180910390fd5b80600a806101000a81548160ff02191690831515021790555050565b60105481565b600a8054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6115c661206a565b73ffffffffffffffffffffffffffffffffffffffff166115e4611883565b73ffffffffffffffffffffffffffffffffffffffff161461163a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163190613ba7565b60405180910390fd5b6116446000612f34565b565b600061165061206a565b73ffffffffffffffffffffffffffffffffffffffff1661166e611883565b73ffffffffffffffffffffffffffffffffffffffff16146116c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bb90613ba7565b60405180910390fd5b6000600a60086101000a81548160ff0219169083151502179055506001905090565b6116ee61206a565b73ffffffffffffffffffffffffffffffffffffffff1661170c611883565b73ffffffffffffffffffffffffffffffffffffffff1614611762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175990613ba7565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660149054906101000a900460ff1681565b6117d861206a565b73ffffffffffffffffffffffffffffffffffffffff166117f6611883565b73ffffffffffffffffffffffffffffffffffffffff161461184c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184390613ba7565b60405180910390fd5b6001600a60096101000a81548160ff0219169083151502179055506001600a806101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546118bc90613ecc565b80601f01602080910402602001604051908101604052809291908181526020018280546118e890613ecc565b80156119355780601f1061190a57610100808354040283529160200191611935565b820191906000526020600020905b81548152906001019060200180831161191857829003601f168201915b5050505050905090565b61194761206a565b73ffffffffffffffffffffffffffffffffffffffff16611965611883565b73ffffffffffffffffffffffffffffffffffffffff16146119bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b290613ba7565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4190614002565b60405180910390fd5b611a548282612ffa565b5050565b600e5481565b60135481565b60115481565b60008060016000611a7961206a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2d90614094565b60405180910390fd5b611b4a611b4161206a565b8585840361209e565b600191505092915050565b6000611b69611b6261206a565b8484612269565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b600a60099054906101000a900460ff1681565b611bae61206a565b73ffffffffffffffffffffffffffffffffffffffff16611bcc611883565b73ffffffffffffffffffffffffffffffffffffffff1614611c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1990613ba7565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611cbf91906138e2565b60405180910390a25050565b600c60009054906101000a900460ff1681565b60075481565b6000611cee61206a565b73ffffffffffffffffffffffffffffffffffffffff16611d0c611883565b73ffffffffffffffffffffffffffffffffffffffff1614611d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5990613ba7565b60405180910390fd5b620186a06001611d70611029565b611d7a91906140b4565b611d84919061413d565b821015611dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbd906141e0565b60405180910390fd5b6103e86005611dd3611029565b611ddd91906140b4565b611de7919061413d565b821115611e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2090614272565b60405180910390fd5b8160088190555060019050919050565b600d5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b6000611ed661206a565b73ffffffffffffffffffffffffffffffffffffffff16611ef4611883565b73ffffffffffffffffffffffffffffffffffffffff1614611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4190613ba7565b60405180910390fd5b6000600c60006101000a81548160ff0219169083151502179055506001905090565b611f7461206a565b73ffffffffffffffffffffffffffffffffffffffff16611f92611883565b73ffffffffffffffffffffffffffffffffffffffff1614611fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdf90613ba7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204f90614304565b60405180910390fd5b61206181612f34565b50565b60095481565b600033905090565b6000818361208091906140b4565b905092915050565b60008183612096919061413d565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561210e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210590614396565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561217e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217590614428565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161225c919061390c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156122d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d0906144ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612349576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123409061454c565b60405180910390fd5b60008114156123635761235e8383600061309b565b612f2f565b6000600660146101000a81548160ff021916908315150217905550600a60089054906101000a900460ff1615612a415761239b611883565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561240957506123d9611883565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156124425750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561247c575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156124955750600560149054906101000a900460ff16155b15612a4057600a60099054906101000a900460ff1661258f57601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061254f5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61258e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612585906145b8565b60405180910390fd5b5b600c60009054906101000a900460ff1615612757576125ac611883565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561263357507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561268b57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156127565743600b60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270890614670565b60405180910390fd5b43600b60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127fa5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128a157600754811115612844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283b90614702565b60405180910390fd5b60095461285083611576565b8261285b9190613bf6565b111561289c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128939061476e565b60405180910390fd5b612a3f565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129445750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129935760075481111561298e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298590614800565b60405180910390fd5b612a3e565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a3d576009546129f083611576565b826129fb9190613bf6565b1115612a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a339061476e565b60405180910390fd5b5b5b5b5b5b6000612a4c30611576565b905060006008548210159050808015612a6f5750600a8054906101000a900460ff165b8015612a885750600560149054906101000a900460ff16155b8015612ade5750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b345750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b8a5750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612bce576001600560146101000a81548160ff021916908315150217905550612bb261331c565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050600560149054906101000a900460ff16612c48576064600a60009054906101000a900467ffffffffffffffff1667ffffffffffffffff161415612c34576b033b2e3c9fd0803ce80000006007819055505b6b033b2e3c9fd0803ce80000006009819055505b601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ce95750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612cf357600090505b6000818015612d0f5750600660149054906101000a900460ff16155b15612f1f57601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612d6f57506000601054115b15612e0957612d9c6064612d8e6010548861207290919063ffffffff16565b61208890919063ffffffff16565b905060105460125482612daf91906140b4565b612db9919061413d565b60146000828254612dca9190613bf6565b9250508190555060105460115482612de291906140b4565b612dec919061413d565b60136000828254612dfd9190613bf6565b92505081905550612efb565b601760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612e6457506000600d54115b15612efa57612e916064612e83600d548861207290919063ffffffff16565b61208890919063ffffffff16565b9050600d54600f5482612ea491906140b4565b612eae919061413d565b60146000828254612ebf9190613bf6565b92505081905550600d54600e5482612ed791906140b4565b612ee1919061413d565b60136000828254612ef29190613bf6565b925050819055505b5b6000811115612f1057612f0f87308361309b565b5b8085612f1c9190614820565b94505b612f2a87878761309b565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561310b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613102906144ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561317b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131729061454c565b60405180910390fd5b613186838383613469565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561320c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613203906148c6565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461329f9190613bf6565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613303919061390c565b60405180910390a361331684848461346e565b50505050565b600061332730611576565b9050600060135460145461333b9190613bf6565b905060008083148061334d5750600082145b1561335a57505050613467565b601460085461336991906140b4565b83111561338257601460085461337f91906140b4565b92505b600047905061339084613473565b60006133a582476136b090919063ffffffff16565b905060006133d0856133c26013548561207290919063ffffffff16565b61208890919063ffffffff16565b9050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161341890614917565b60006040518083038185875af1925050503d8060008114613455576040519150601f19603f3d011682016040523d82523d6000602084013e61345a565b606091505b5050809450505050505050505b565b505050565b505050565b6000600267ffffffffffffffff8111156134905761348f613cb8565b5b6040519080825280602002602001820160405280156134be5781602001602082028036833780820191505090505b50905030816000815181106134d6576134d5613d29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561357b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061359f9190613cfc565b816001815181106135b3576135b2613d29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613618307f00000000000000000000000000000000000000000000000000000000000000008461209e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161367a95949392919061492c565b600060405180830381600087803b15801561369457600080fd5b505af11580156136a8573d6000803e3d6000fd5b505050505050565b600081836136be9190614820565b905092915050565b600080fd5b6000819050919050565b6136de816136cb565b81146136e957600080fd5b50565b6000813590506136fb816136d5565b92915050565b60008060408385031215613718576137176136c6565b5b6000613726858286016136ec565b9250506020613737858286016136ec565b9150509250929050565b600060208284031215613757576137566136c6565b5b6000613765848285016136ec565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156137a857808201518184015260208101905061378d565b838111156137b7576000848401525b50505050565b6000601f19601f8301169050919050565b60006137d98261376e565b6137e38185613779565b93506137f381856020860161378a565b6137fc816137bd565b840191505092915050565b6000602082019050818103600083015261382181846137ce565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061385482613829565b9050919050565b61386481613849565b811461386f57600080fd5b50565b6000813590506138818161385b565b92915050565b6000806040838503121561389e5761389d6136c6565b5b60006138ac85828601613872565b92505060206138bd858286016136ec565b9150509250929050565b60008115159050919050565b6138dc816138c7565b82525050565b60006020820190506138f760008301846138d3565b92915050565b613906816136cb565b82525050565b600060208201905061392160008301846138fd565b92915050565b60006020828403121561393d5761393c6136c6565b5b600061394b84828501613872565b91505092915050565b6000819050919050565b600061397961397461396f84613829565b613954565b613829565b9050919050565b600061398b8261395e565b9050919050565b600061399d82613980565b9050919050565b6139ad81613992565b82525050565b60006020820190506139c860008301846139a4565b92915050565b6000806000606084860312156139e7576139e66136c6565b5b60006139f586828701613872565b9350506020613a0686828701613872565b9250506040613a17868287016136ec565b9150509250925092565b613a2a81613849565b82525050565b6000602082019050613a456000830184613a21565b92915050565b600060ff82169050919050565b613a6181613a4b565b82525050565b6000602082019050613a7c6000830184613a58565b92915050565b613a8b816138c7565b8114613a9657600080fd5b50565b600081359050613aa881613a82565b92915050565b600060208284031215613ac457613ac36136c6565b5b6000613ad284828501613a99565b91505092915050565b60008060408385031215613af257613af16136c6565b5b6000613b0085828601613872565b9250506020613b1185828601613a99565b9150509250929050565b60008060408385031215613b3257613b316136c6565b5b6000613b4085828601613872565b9250506020613b5185828601613872565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b91602083613779565b9150613b9c82613b5b565b602082019050919050565b60006020820190508181036000830152613bc081613b84565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613c01826136cb565b9150613c0c836136cb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c4157613c40613bc7565b5b828201905092915050565b7f4d757374206b656570206665657320617420323025206f72206c657373000000600082015250565b6000613c82601d83613779565b9150613c8d82613c4c565b602082019050919050565b60006020820190508181036000830152613cb181613c75565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613cf68161385b565b92915050565b600060208284031215613d1257613d116136c6565b5b6000613d2084828501613ce7565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613d7d613d78613d7384613d58565b613954565b6136cb565b9050919050565b613d8d81613d62565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613dc881613849565b82525050565b6000613dda8383613dbf565b60208301905092915050565b6000602082019050919050565b6000613dfe82613d93565b613e088185613d9e565b9350613e1383613daf565b8060005b83811015613e44578151613e2b8882613dce565b9750613e3683613de6565b925050600181019050613e17565b5085935050505092915050565b6000608082019050613e666000830187613d84565b8181036020830152613e788186613df3565b9050613e876040830185613a21565b613e9460608301846138fd565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613ee457607f821691505b60208210811415613ef857613ef7613e9d565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613f5a602883613779565b9150613f6582613efe565b604082019050919050565b60006020820190508181036000830152613f8981613f4d565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613fec603983613779565b9150613ff782613f90565b604082019050919050565b6000602082019050818103600083015261401b81613fdf565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061407e602583613779565b915061408982614022565b604082019050919050565b600060208201905081810360008301526140ad81614071565b9050919050565b60006140bf826136cb565b91506140ca836136cb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561410357614102613bc7565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614148826136cb565b9150614153836136cb565b9250826141635761416261410e565b5b828204905092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006141ca603583613779565b91506141d58261416e565b604082019050919050565b600060208201905081810360008301526141f9816141bd565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b600061425c603483613779565b915061426782614200565b604082019050919050565b6000602082019050818103600083015261428b8161424f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006142ee602683613779565b91506142f982614292565b604082019050919050565b6000602082019050818103600083015261431d816142e1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614380602483613779565b915061438b82614324565b604082019050919050565b600060208201905081810360008301526143af81614373565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614412602283613779565b915061441d826143b6565b604082019050919050565b6000602082019050818103600083015261444181614405565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006144a4602583613779565b91506144af82614448565b604082019050919050565b600060208201905081810360008301526144d381614497565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614536602383613779565b9150614541826144da565b604082019050919050565b6000602082019050818103600083015261456581614529565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006145a2601683613779565b91506145ad8261456c565b602082019050919050565b600060208201905081810360008301526145d181614595565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b600061465a604983613779565b9150614665826145d8565b606082019050919050565b600060208201905081810360008301526146898161464d565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b60006146ec603583613779565b91506146f782614690565b604082019050919050565b6000602082019050818103600083015261471b816146df565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000614758601383613779565b915061476382614722565b602082019050919050565b600060208201905081810360008301526147878161474b565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b60006147ea603683613779565b91506147f58261478e565b604082019050919050565b60006020820190508181036000830152614819816147dd565b9050919050565b600061482b826136cb565b9150614836836136cb565b92508282101561484957614848613bc7565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006148b0602683613779565b91506148bb82614854565b604082019050919050565b600060208201905081810360008301526148df816148a3565b9050919050565b600081905092915050565b50565b60006149016000836148e6565b915061490c826148f1565b600082019050919050565b6000614922826148f4565b9150819050919050565b600060a08201905061494160008301886138fd565b61494e6020830187613d84565b81810360408301526149608186613df3565b905061496f6060830185613a21565b61497c60808301846138fd565b969550505050505056fea264697066735822122063f09a914edd55b19b16568734c816b8b1c171cbd8e3794fd17c6b9d7743714864736f6c634300080a0033
Deployed Bytecode
0x6080604052600436106102b25760003560e01c8063715018a611610175578063a9059cbb116100dc578063d257b34f11610095578063e2f456051161006f578063e2f4560514610adb578063e884f26014610b06578063f2fde38b14610b31578063f8b45b0514610b5a576102b9565b8063d257b34f14610a36578063d85ba06314610a73578063dd62ed3e14610a9e576102b9565b8063a9059cbb14610912578063b62496f51461094f578063bbc0c7421461098c578063c0246668146109b7578063c876d0b9146109e0578063c8c8ebe414610a0b576102b9565b806395d89b411161012e57806395d89b41146108005780639a7a23d61461082b5780639c3b4fdc146108545780639fccce321461087f578063a0d82dc5146108aa578063a457c2d7146108d5576102b9565b8063715018a614610728578063751039fc1461073f5780637571336a1461076a5780637a153ee2146107935780638a8c523c146107be5780638da5cb5b146107d5576102b9565b806327c8f835116102195780634fbee193116101d25780634fbee1931461060657806366ca9b831461064357806369327d801461066c5780636a486a8e146106955780636ddd1713146106c057806370a08231146106eb576102b9565b806327c8f835146104f2578063313ce5671461051d578063385e811514610548578063395093511461057357806349bd5a5e146105b05780634a62bb65146105db576102b9565b80631694505e1161026b5780631694505e146103e057806318160ddd1461040b5780631816467f146104365780631a221dbb1461045f5780631fe70a981461048a57806323b872dd146104b5576102b9565b806302dbd8f8146102be578063053f9040146102e757806306fdde0314610310578063095ea7b31461033b5780630b166d501461037857806310d5de53146103a3576102b9565b366102b957005b600080fd5b3480156102ca57600080fd5b506102e560048036038101906102e09190613701565b610b85565b005b3480156102f357600080fd5b5061030e60048036038101906103099190613741565b610c6f565b005b34801561031c57600080fd5b50610325610f2f565b6040516103329190613807565b60405180910390f35b34801561034757600080fd5b50610362600480360381019061035d9190613887565b610fc1565b60405161036f91906138e2565b60405180910390f35b34801561038457600080fd5b5061038d610fdf565b60405161039a919061390c565b60405180910390f35b3480156103af57600080fd5b506103ca60048036038101906103c59190613927565b610fe5565b6040516103d791906138e2565b60405180910390f35b3480156103ec57600080fd5b506103f5611005565b60405161040291906139b3565b60405180910390f35b34801561041757600080fd5b50610420611029565b60405161042d919061390c565b60405180910390f35b34801561044257600080fd5b5061045d60048036038101906104589190613927565b611033565b005b34801561046b57600080fd5b5061047461116f565b604051610481919061390c565b60405180910390f35b34801561049657600080fd5b5061049f611175565b6040516104ac919061390c565b60405180910390f35b3480156104c157600080fd5b506104dc60048036038101906104d791906139ce565b61117b565b6040516104e991906138e2565b60405180910390f35b3480156104fe57600080fd5b50610507611273565b6040516105149190613a30565b60405180910390f35b34801561052957600080fd5b50610532611279565b60405161053f9190613a67565b60405180910390f35b34801561055457600080fd5b5061055d611282565b60405161056a9190613a30565b60405180910390f35b34801561057f57600080fd5b5061059a60048036038101906105959190613887565b6112a8565b6040516105a791906138e2565b60405180910390f35b3480156105bc57600080fd5b506105c5611354565b6040516105d29190613a30565b60405180910390f35b3480156105e757600080fd5b506105f0611378565b6040516105fd91906138e2565b60405180910390f35b34801561061257600080fd5b5061062d60048036038101906106289190613927565b61138b565b60405161063a91906138e2565b60405180910390f35b34801561064f57600080fd5b5061066a60048036038101906106659190613701565b6113e1565b005b34801561067857600080fd5b50610693600480360381019061068e9190613aae565b6114c7565b005b3480156106a157600080fd5b506106aa61155f565b6040516106b7919061390c565b60405180910390f35b3480156106cc57600080fd5b506106d5611565565b6040516106e291906138e2565b60405180910390f35b3480156106f757600080fd5b50610712600480360381019061070d9190613927565b611576565b60405161071f919061390c565b60405180910390f35b34801561073457600080fd5b5061073d6115be565b005b34801561074b57600080fd5b50610754611646565b60405161076191906138e2565b60405180910390f35b34801561077657600080fd5b50610791600480360381019061078c9190613adb565b6116e6565b005b34801561079f57600080fd5b506107a86117bd565b6040516107b591906138e2565b60405180910390f35b3480156107ca57600080fd5b506107d36117d0565b005b3480156107e157600080fd5b506107ea611883565b6040516107f79190613a30565b60405180910390f35b34801561080c57600080fd5b506108156118ad565b6040516108229190613807565b60405180910390f35b34801561083757600080fd5b50610852600480360381019061084d9190613adb565b61193f565b005b34801561086057600080fd5b50610869611a58565b604051610876919061390c565b60405180910390f35b34801561088b57600080fd5b50610894611a5e565b6040516108a1919061390c565b60405180910390f35b3480156108b657600080fd5b506108bf611a64565b6040516108cc919061390c565b60405180910390f35b3480156108e157600080fd5b506108fc60048036038101906108f79190613887565b611a6a565b60405161090991906138e2565b60405180910390f35b34801561091e57600080fd5b5061093960048036038101906109349190613887565b611b55565b60405161094691906138e2565b60405180910390f35b34801561095b57600080fd5b5061097660048036038101906109719190613927565b611b73565b60405161098391906138e2565b60405180910390f35b34801561099857600080fd5b506109a1611b93565b6040516109ae91906138e2565b60405180910390f35b3480156109c357600080fd5b506109de60048036038101906109d99190613adb565b611ba6565b005b3480156109ec57600080fd5b506109f5611ccb565b604051610a0291906138e2565b60405180910390f35b348015610a1757600080fd5b50610a20611cde565b604051610a2d919061390c565b60405180910390f35b348015610a4257600080fd5b50610a5d6004803603810190610a589190613741565b611ce4565b604051610a6a91906138e2565b60405180910390f35b348015610a7f57600080fd5b50610a88611e39565b604051610a95919061390c565b60405180910390f35b348015610aaa57600080fd5b50610ac56004803603810190610ac09190613b1b565b611e3f565b604051610ad2919061390c565b60405180910390f35b348015610ae757600080fd5b50610af0611ec6565b604051610afd919061390c565b60405180910390f35b348015610b1257600080fd5b50610b1b611ecc565b604051610b2891906138e2565b60405180910390f35b348015610b3d57600080fd5b50610b586004803603810190610b539190613927565b611f6c565b005b348015610b6657600080fd5b50610b6f612064565b604051610b7c919061390c565b60405180910390f35b610b8d61206a565b73ffffffffffffffffffffffffffffffffffffffff16610bab611883565b73ffffffffffffffffffffffffffffffffffffffff1614610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf890613ba7565b60405180910390fd5b8160118190555080601281905550601254601154610c1f9190613bf6565b60108190555060146010541115610c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6290613c98565b60405180910390fd5b5050565b610c7761206a565b73ffffffffffffffffffffffffffffffffffffffff16610c95611883565b73ffffffffffffffffffffffffffffffffffffffff1614610ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce290613ba7565b60405180910390fd5b6000600267ffffffffffffffff811115610d0857610d07613cb8565b5b604051908082528060200260200182016040528015610d365781602001602082028036833780820191505090505b5090507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc89190613cfc565b81600081518110610ddc57610ddb613d29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110610e2b57610e2a613d29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060004790506000610e926064610e84868561207290919063ffffffff16565b61208890919063ffffffff16565b90507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663b6f9de958260008661dead426040518663ffffffff1660e01b8152600401610ef79493929190613e51565b6000604051808303818588803b158015610f1057600080fd5b505af1158015610f24573d6000803e3d6000fd5b505050505050505050565b606060038054610f3e90613ecc565b80601f0160208091040260200160405190810160405280929190818152602001828054610f6a90613ecc565b8015610fb75780601f10610f8c57610100808354040283529160200191610fb7565b820191906000526020600020905b815481529060010190602001808311610f9a57829003601f168201915b5050505050905090565b6000610fd5610fce61206a565b848461209e565b6001905092915050565b60145481565b60166020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b61103b61206a565b73ffffffffffffffffffffffffffffffffffffffff16611059611883565b73ffffffffffffffffffffffffffffffffffffffff16146110af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a690613ba7565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60125481565b600f5481565b6000611188848484612269565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006111d361206a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124a90613f70565b60405180910390fd5b6112678561125f61206a565b85840361209e565b60019150509392505050565b61dead81565b60006012905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061134a6112b561206a565b8484600160006112c361206a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113459190613bf6565b61209e565b6001905092915050565b7f000000000000000000000000c0c60af2aec169ce043dc2d68d2893898e754ce581565b600a60089054906101000a900460ff1681565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6113e961206a565b73ffffffffffffffffffffffffffffffffffffffff16611407611883565b73ffffffffffffffffffffffffffffffffffffffff161461145d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145490613ba7565b60405180910390fd5b81600e8190555080600f8190555080826114779190613bf6565b600d819055506014600d5411156114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba90613c98565b60405180910390fd5b5050565b6114cf61206a565b73ffffffffffffffffffffffffffffffffffffffff166114ed611883565b73ffffffffffffffffffffffffffffffffffffffff1614611543576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153a90613ba7565b60405180910390fd5b80600a806101000a81548160ff02191690831515021790555050565b60105481565b600a8054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6115c661206a565b73ffffffffffffffffffffffffffffffffffffffff166115e4611883565b73ffffffffffffffffffffffffffffffffffffffff161461163a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163190613ba7565b60405180910390fd5b6116446000612f34565b565b600061165061206a565b73ffffffffffffffffffffffffffffffffffffffff1661166e611883565b73ffffffffffffffffffffffffffffffffffffffff16146116c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bb90613ba7565b60405180910390fd5b6000600a60086101000a81548160ff0219169083151502179055506001905090565b6116ee61206a565b73ffffffffffffffffffffffffffffffffffffffff1661170c611883565b73ffffffffffffffffffffffffffffffffffffffff1614611762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175990613ba7565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660149054906101000a900460ff1681565b6117d861206a565b73ffffffffffffffffffffffffffffffffffffffff166117f6611883565b73ffffffffffffffffffffffffffffffffffffffff161461184c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184390613ba7565b60405180910390fd5b6001600a60096101000a81548160ff0219169083151502179055506001600a806101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546118bc90613ecc565b80601f01602080910402602001604051908101604052809291908181526020018280546118e890613ecc565b80156119355780601f1061190a57610100808354040283529160200191611935565b820191906000526020600020905b81548152906001019060200180831161191857829003601f168201915b5050505050905090565b61194761206a565b73ffffffffffffffffffffffffffffffffffffffff16611965611883565b73ffffffffffffffffffffffffffffffffffffffff16146119bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b290613ba7565b60405180910390fd5b7f000000000000000000000000c0c60af2aec169ce043dc2d68d2893898e754ce573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4190614002565b60405180910390fd5b611a548282612ffa565b5050565b600e5481565b60135481565b60115481565b60008060016000611a7961206a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2d90614094565b60405180910390fd5b611b4a611b4161206a565b8585840361209e565b600191505092915050565b6000611b69611b6261206a565b8484612269565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b600a60099054906101000a900460ff1681565b611bae61206a565b73ffffffffffffffffffffffffffffffffffffffff16611bcc611883565b73ffffffffffffffffffffffffffffffffffffffff1614611c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1990613ba7565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611cbf91906138e2565b60405180910390a25050565b600c60009054906101000a900460ff1681565b60075481565b6000611cee61206a565b73ffffffffffffffffffffffffffffffffffffffff16611d0c611883565b73ffffffffffffffffffffffffffffffffffffffff1614611d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5990613ba7565b60405180910390fd5b620186a06001611d70611029565b611d7a91906140b4565b611d84919061413d565b821015611dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbd906141e0565b60405180910390fd5b6103e86005611dd3611029565b611ddd91906140b4565b611de7919061413d565b821115611e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2090614272565b60405180910390fd5b8160088190555060019050919050565b600d5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b6000611ed661206a565b73ffffffffffffffffffffffffffffffffffffffff16611ef4611883565b73ffffffffffffffffffffffffffffffffffffffff1614611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4190613ba7565b60405180910390fd5b6000600c60006101000a81548160ff0219169083151502179055506001905090565b611f7461206a565b73ffffffffffffffffffffffffffffffffffffffff16611f92611883565b73ffffffffffffffffffffffffffffffffffffffff1614611fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdf90613ba7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204f90614304565b60405180910390fd5b61206181612f34565b50565b60095481565b600033905090565b6000818361208091906140b4565b905092915050565b60008183612096919061413d565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561210e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210590614396565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561217e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217590614428565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161225c919061390c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156122d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d0906144ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612349576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123409061454c565b60405180910390fd5b60008114156123635761235e8383600061309b565b612f2f565b6000600660146101000a81548160ff021916908315150217905550600a60089054906101000a900460ff1615612a415761239b611883565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561240957506123d9611883565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156124425750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561247c575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156124955750600560149054906101000a900460ff16155b15612a4057600a60099054906101000a900460ff1661258f57601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061254f5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61258e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612585906145b8565b60405180910390fd5b5b600c60009054906101000a900460ff1615612757576125ac611883565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561263357507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561268b57507f000000000000000000000000c0c60af2aec169ce043dc2d68d2893898e754ce573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156127565743600b60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270890614670565b60405180910390fd5b43600b60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156127fa5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128a157600754811115612844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283b90614702565b60405180910390fd5b60095461285083611576565b8261285b9190613bf6565b111561289c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128939061476e565b60405180910390fd5b612a3f565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129445750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129935760075481111561298e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298590614800565b60405180910390fd5b612a3e565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612a3d576009546129f083611576565b826129fb9190613bf6565b1115612a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a339061476e565b60405180910390fd5b5b5b5b5b5b6000612a4c30611576565b905060006008548210159050808015612a6f5750600a8054906101000a900460ff165b8015612a885750600560149054906101000a900460ff16155b8015612ade5750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b345750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b8a5750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612bce576001600560146101000a81548160ff021916908315150217905550612bb261331c565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050600560149054906101000a900460ff16612c48576064600a60009054906101000a900467ffffffffffffffff1667ffffffffffffffff161415612c34576b033b2e3c9fd0803ce80000006007819055505b6b033b2e3c9fd0803ce80000006009819055505b601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ce95750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612cf357600090505b6000818015612d0f5750600660149054906101000a900460ff16155b15612f1f57601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612d6f57506000601054115b15612e0957612d9c6064612d8e6010548861207290919063ffffffff16565b61208890919063ffffffff16565b905060105460125482612daf91906140b4565b612db9919061413d565b60146000828254612dca9190613bf6565b9250508190555060105460115482612de291906140b4565b612dec919061413d565b60136000828254612dfd9190613bf6565b92505081905550612efb565b601760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612e6457506000600d54115b15612efa57612e916064612e83600d548861207290919063ffffffff16565b61208890919063ffffffff16565b9050600d54600f5482612ea491906140b4565b612eae919061413d565b60146000828254612ebf9190613bf6565b92505081905550600d54600e5482612ed791906140b4565b612ee1919061413d565b60136000828254612ef29190613bf6565b925050819055505b5b6000811115612f1057612f0f87308361309b565b5b8085612f1c9190614820565b94505b612f2a87878761309b565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561310b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613102906144ba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561317b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131729061454c565b60405180910390fd5b613186838383613469565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561320c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613203906148c6565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461329f9190613bf6565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613303919061390c565b60405180910390a361331684848461346e565b50505050565b600061332730611576565b9050600060135460145461333b9190613bf6565b905060008083148061334d5750600082145b1561335a57505050613467565b601460085461336991906140b4565b83111561338257601460085461337f91906140b4565b92505b600047905061339084613473565b60006133a582476136b090919063ffffffff16565b905060006133d0856133c26013548561207290919063ffffffff16565b61208890919063ffffffff16565b9050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161341890614917565b60006040518083038185875af1925050503d8060008114613455576040519150601f19603f3d011682016040523d82523d6000602084013e61345a565b606091505b5050809450505050505050505b565b505050565b505050565b6000600267ffffffffffffffff8111156134905761348f613cb8565b5b6040519080825280602002602001820160405280156134be5781602001602082028036833780820191505090505b50905030816000815181106134d6576134d5613d29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561357b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061359f9190613cfc565b816001815181106135b3576135b2613d29565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613618307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461209e565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161367a95949392919061492c565b600060405180830381600087803b15801561369457600080fd5b505af11580156136a8573d6000803e3d6000fd5b505050505050565b600081836136be9190614820565b905092915050565b600080fd5b6000819050919050565b6136de816136cb565b81146136e957600080fd5b50565b6000813590506136fb816136d5565b92915050565b60008060408385031215613718576137176136c6565b5b6000613726858286016136ec565b9250506020613737858286016136ec565b9150509250929050565b600060208284031215613757576137566136c6565b5b6000613765848285016136ec565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156137a857808201518184015260208101905061378d565b838111156137b7576000848401525b50505050565b6000601f19601f8301169050919050565b60006137d98261376e565b6137e38185613779565b93506137f381856020860161378a565b6137fc816137bd565b840191505092915050565b6000602082019050818103600083015261382181846137ce565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061385482613829565b9050919050565b61386481613849565b811461386f57600080fd5b50565b6000813590506138818161385b565b92915050565b6000806040838503121561389e5761389d6136c6565b5b60006138ac85828601613872565b92505060206138bd858286016136ec565b9150509250929050565b60008115159050919050565b6138dc816138c7565b82525050565b60006020820190506138f760008301846138d3565b92915050565b613906816136cb565b82525050565b600060208201905061392160008301846138fd565b92915050565b60006020828403121561393d5761393c6136c6565b5b600061394b84828501613872565b91505092915050565b6000819050919050565b600061397961397461396f84613829565b613954565b613829565b9050919050565b600061398b8261395e565b9050919050565b600061399d82613980565b9050919050565b6139ad81613992565b82525050565b60006020820190506139c860008301846139a4565b92915050565b6000806000606084860312156139e7576139e66136c6565b5b60006139f586828701613872565b9350506020613a0686828701613872565b9250506040613a17868287016136ec565b9150509250925092565b613a2a81613849565b82525050565b6000602082019050613a456000830184613a21565b92915050565b600060ff82169050919050565b613a6181613a4b565b82525050565b6000602082019050613a7c6000830184613a58565b92915050565b613a8b816138c7565b8114613a9657600080fd5b50565b600081359050613aa881613a82565b92915050565b600060208284031215613ac457613ac36136c6565b5b6000613ad284828501613a99565b91505092915050565b60008060408385031215613af257613af16136c6565b5b6000613b0085828601613872565b9250506020613b1185828601613a99565b9150509250929050565b60008060408385031215613b3257613b316136c6565b5b6000613b4085828601613872565b9250506020613b5185828601613872565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b91602083613779565b9150613b9c82613b5b565b602082019050919050565b60006020820190508181036000830152613bc081613b84565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613c01826136cb565b9150613c0c836136cb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c4157613c40613bc7565b5b828201905092915050565b7f4d757374206b656570206665657320617420323025206f72206c657373000000600082015250565b6000613c82601d83613779565b9150613c8d82613c4c565b602082019050919050565b60006020820190508181036000830152613cb181613c75565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613cf68161385b565b92915050565b600060208284031215613d1257613d116136c6565b5b6000613d2084828501613ce7565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613d7d613d78613d7384613d58565b613954565b6136cb565b9050919050565b613d8d81613d62565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613dc881613849565b82525050565b6000613dda8383613dbf565b60208301905092915050565b6000602082019050919050565b6000613dfe82613d93565b613e088185613d9e565b9350613e1383613daf565b8060005b83811015613e44578151613e2b8882613dce565b9750613e3683613de6565b925050600181019050613e17565b5085935050505092915050565b6000608082019050613e666000830187613d84565b8181036020830152613e788186613df3565b9050613e876040830185613a21565b613e9460608301846138fd565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613ee457607f821691505b60208210811415613ef857613ef7613e9d565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613f5a602883613779565b9150613f6582613efe565b604082019050919050565b60006020820190508181036000830152613f8981613f4d565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613fec603983613779565b9150613ff782613f90565b604082019050919050565b6000602082019050818103600083015261401b81613fdf565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061407e602583613779565b915061408982614022565b604082019050919050565b600060208201905081810360008301526140ad81614071565b9050919050565b60006140bf826136cb565b91506140ca836136cb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561410357614102613bc7565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614148826136cb565b9150614153836136cb565b9250826141635761416261410e565b5b828204905092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006141ca603583613779565b91506141d58261416e565b604082019050919050565b600060208201905081810360008301526141f9816141bd565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b600061425c603483613779565b915061426782614200565b604082019050919050565b6000602082019050818103600083015261428b8161424f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006142ee602683613779565b91506142f982614292565b604082019050919050565b6000602082019050818103600083015261431d816142e1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614380602483613779565b915061438b82614324565b604082019050919050565b600060208201905081810360008301526143af81614373565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614412602283613779565b915061441d826143b6565b604082019050919050565b6000602082019050818103600083015261444181614405565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006144a4602583613779565b91506144af82614448565b604082019050919050565b600060208201905081810360008301526144d381614497565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614536602383613779565b9150614541826144da565b604082019050919050565b6000602082019050818103600083015261456581614529565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006145a2601683613779565b91506145ad8261456c565b602082019050919050565b600060208201905081810360008301526145d181614595565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b600061465a604983613779565b9150614665826145d8565b606082019050919050565b600060208201905081810360008301526146898161464d565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b60006146ec603583613779565b91506146f782614690565b604082019050919050565b6000602082019050818103600083015261471b816146df565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000614758601383613779565b915061476382614722565b602082019050919050565b600060208201905081810360008301526147878161474b565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b60006147ea603683613779565b91506147f58261478e565b604082019050919050565b60006020820190508181036000830152614819816147dd565b9050919050565b600061482b826136cb565b9150614836836136cb565b92508282101561484957614848613bc7565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006148b0602683613779565b91506148bb82614854565b604082019050919050565b600060208201905081810360008301526148df816148a3565b9050919050565b600081905092915050565b50565b60006149016000836148e6565b915061490c826148f1565b600082019050919050565b6000614922826148f4565b9150819050919050565b600060a08201905061494160008301886138fd565b61494e6020830187613d84565b81810360408301526149608186613df3565b905061496f6060830185613a21565b61497c60808301846138fd565b969550505050505056fea264697066735822122063f09a914edd55b19b16568734c816b8b1c171cbd8e3794fd17c6b9d7743714864736f6c634300080a0033
Deployed Bytecode Sourcemap
15233:13946:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20539:311;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;28664:512;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2802:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3743:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16201:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16302:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15309:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3136:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21556:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16129:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16025:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3924:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15412:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3031:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15504:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4429:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15367:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15721:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21753:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20233:298;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20126:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16062:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15801:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3255:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;889:103;;;;;;;;;;;;;:::i;:::-;;19016:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19906:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15535:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18852:112;;;;;;;;;;;;;:::i;:::-;;670:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2914:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21048:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15994:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16167:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16097:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4656:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3394:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16374:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15761:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20858:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15912:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15575:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19403:497;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15960:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3581:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15617:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19198:135;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1000:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15657:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20539:311;814:12;:10;:12::i;:::-;803:23;;:7;:5;:7::i;:::-;:23;;;795:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20669:7:::1;20656:10;:20;;;;20704:11;20687:14;:28;;;;20755:14;;20742:10;;:27;;;;:::i;:::-;20726:13;:43;;;;20806:2;20789:13;;:19;;20781:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;20539:311:::0;;:::o;28664:512::-;814:12;:10;:12::i;:::-;803:23;;:7;:5;:7::i;:::-;:23;;;795:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28730:21:::1;28768:1;28754:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28730:40;;28791:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28781:4;28786:1;28781:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;28842:4;28824;28829:1;28824:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;28858:16;28876:21;28858:39;;28908:21;28932:30;28958:3;28932:21;28945:7;28932:8;:12;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;28908:54;;28973:15;:66;;;29048:13;29077:1;29093:4;29120:6;29142:15;28973:195;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;28719:457;;;28664:512:::0;:::o;2802:100::-;2856:13;2889:5;2882:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2802:100;:::o;3743:169::-;3826:4;3843:39;3852:12;:10;:12::i;:::-;3866:7;3875:6;3843:8;:39::i;:::-;3900:4;3893:11;;3743:169;;;;:::o;16201:31::-;;;;:::o;16302:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;15309:51::-;;;:::o;3136:108::-;3197:7;3224:12;;3217:19;;3136:108;:::o;21556:189::-;814:12;:10;:12::i;:::-;803:23;;:7;:5;:7::i;:::-;:23;;;795:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21692:9:::1;;;;;;;;;;;21661:41;;21678:12;21661:41;;;;;;;;;;;;21725:12;21713:9;;:24;;;;;;;;;;;;;;;;;;21556:189:::0;:::o;16129:29::-;;;;:::o;16025:28::-;;;;:::o;3924:492::-;4064:4;4081:36;4091:6;4099:9;4110:6;4081:9;:36::i;:::-;4130:24;4157:11;:19;4169:6;4157:19;;;;;;;;;;;;;;;:33;4177:12;:10;:12::i;:::-;4157:33;;;;;;;;;;;;;;;;4130:60;;4229:6;4209:16;:26;;4201:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4316:57;4325:6;4333:12;:10;:12::i;:::-;4366:6;4347:16;:25;4316:8;:57::i;:::-;4404:4;4397:11;;;3924:492;;;;;:::o;15412:53::-;15458:6;15412:53;:::o;3031:93::-;3089:5;3114:2;3107:9;;3031:93;:::o;15504:24::-;;;;;;;;;;;;;:::o;4429:215::-;4517:4;4534:80;4543:12;:10;:12::i;:::-;4557:7;4603:10;4566:11;:25;4578:12;:10;:12::i;:::-;4566:25;;;;;;;;;;;;;;;:34;4592:7;4566:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4534:8;:80::i;:::-;4632:4;4625:11;;4429:215;;;;:::o;15367:38::-;;;:::o;15721:33::-;;;;;;;;;;;;;:::o;21753:126::-;21819:4;21843:19;:28;21863:7;21843:28;;;;;;;;;;;;;;;;;;;;;;;;;21836:35;;21753:126;;;:::o;20233:298::-;814:12;:10;:12::i;:::-;803:23;;:7;:5;:7::i;:::-;:23;;;795:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20361:7:::1;20349:9;:19;;;;20394:11;20379:13;:26;;;;20441:11;20431:7;:21;;;;:::i;:::-;20416:12;:36;;;;20487:2;20471:12;;:18;;20463:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;20233:298:::0;;:::o;20126:99::-;814:12;:10;:12::i;:::-;803:23;;:7;:5;:7::i;:::-;:23;;;795:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20210:7:::1;20196:11;::::0;:21:::1;;;;;;;;;;;;;;;;;;20126:99:::0;:::o;16062:28::-;;;;:::o;15801:31::-;;;;;;;;;;;;:::o;3255:127::-;3329:7;3356:9;:18;3366:7;3356:18;;;;;;;;;;;;;;;;3349:25;;3255:127;;;:::o;889:103::-;814:12;:10;:12::i;:::-;803:23;;:7;:5;:7::i;:::-;:23;;;795:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;954:30:::1;981:1;954:18;:30::i;:::-;889:103::o:0;19016:121::-;19068:4;814:12;:10;:12::i;:::-;803:23;;:7;:5;:7::i;:::-;:23;;;795:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19102:5:::1;19085:14;;:22;;;;;;;;;;;;;;;;;;19125:4;19118:11;;19016:121:::0;:::o;19906:167::-;814:12;:10;:12::i;:::-;803:23;;:7;:5;:7::i;:::-;:23;;;795:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20061:4:::1;20019:31;:39;20051:6;20019:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;19906:167:::0;;:::o;15535:31::-;;;;;;;;;;;;;:::o;18852:112::-;814:12;:10;:12::i;:::-;803:23;;:7;:5;:7::i;:::-;:23;;;795:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18923:4:::1;18907:13;;:20;;;;;;;;;;;;;;;;;;18952:4;18938:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;18852:112::o:0;670:87::-;716:7;743:6;;;;;;;;;;;736:13;;670:87;:::o;2914:104::-;2970:13;3003:7;2996:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2914:104;:::o;21048:304::-;814:12;:10;:12::i;:::-;803:23;;:7;:5;:7::i;:::-;:23;;;795:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21192:13:::1;21184:21;;:4;:21;;;;21162:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;21303:41;21332:4;21338:5;21303:28;:41::i;:::-;21048:304:::0;;:::o;15994:24::-;;;;:::o;16167:27::-;;;;:::o;16097:25::-;;;;:::o;4656:413::-;4749:4;4766:24;4793:11;:25;4805:12;:10;:12::i;:::-;4793:25;;;;;;;;;;;;;;;:34;4819:7;4793:34;;;;;;;;;;;;;;;;4766:61;;4866:15;4846:16;:35;;4838:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4959:67;4968:12;:10;:12::i;:::-;4982:7;5010:15;4991:16;:34;4959:8;:67::i;:::-;5057:4;5050:11;;;4656:413;;;;:::o;3394:175::-;3480:4;3497:42;3507:12;:10;:12::i;:::-;3521:9;3532:6;3497:9;:42::i;:::-;3557:4;3550:11;;3394:175;;;;:::o;16374:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;15761:33::-;;;;;;;;;;;;;:::o;20858:182::-;814:12;:10;:12::i;:::-;803:23;;:7;:5;:7::i;:::-;:23;;;795:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20974:8:::1;20943:19;:28;20963:7;20943:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;21014:7;20998:34;;;21023:8;20998:34;;;;;;:::i;:::-;;;;;;;;20858:182:::0;;:::o;15912:39::-;;;;;;;;;;;;;:::o;15575:35::-;;;;:::o;19403:497::-;19511:4;814:12;:10;:12::i;:::-;803:23;;:7;:5;:7::i;:::-;:23;;;795:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19590:6:::1;19585:1;19569:13;:11;:13::i;:::-;:17;;;;:::i;:::-;19568:28;;;;:::i;:::-;19555:9;:41;;19533:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;19745:4;19740:1;19724:13;:11;:13::i;:::-;:17;;;;:::i;:::-;19723:26;;;;:::i;:::-;19710:9;:39;;19688:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;19861:9;19840:18;:30;;;;19888:4;19881:11;;19403:497:::0;;;:::o;15960:27::-;;;;:::o;3581:151::-;3670:7;3697:11;:18;3709:5;3697:18;;;;;;;;;;;;;;;:27;3716:7;3697:27;;;;;;;;;;;;;;;;3690:34;;3581:151;;;;:::o;15617:33::-;;;;:::o;19198:135::-;19258:4;814:12;:10;:12::i;:::-;803:23;;:7;:5;:7::i;:::-;:23;;;795:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19298:5:::1;19275:20;;:28;;;;;;;;;;;;;;;;;;19321:4;19314:11;;19198:135:::0;:::o;1000:201::-;814:12;:10;:12::i;:::-;803:23;;:7;:5;:7::i;:::-;:23;;;795:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1109:1:::1;1089:22;;:8;:22;;;;1081:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1165:28;1184:8;1165:18;:28::i;:::-;1000:201:::0;:::o;15657:24::-;;;;:::o;220:98::-;273:7;300:10;293:17;;220:98;:::o;8883:::-;8941:7;8972:1;8968;:5;;;;:::i;:::-;8961:12;;8883:98;;;;:::o;8994:::-;9052:7;9083:1;9079;:5;;;;:::i;:::-;9072:12;;8994:98;;;;:::o;6842:380::-;6995:1;6978:19;;:5;:19;;;;6970:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7076:1;7057:21;;:7;:21;;;;7049:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7160:6;7130:11;:18;7142:5;7130:18;;;;;;;;;;;;;;;:27;7149:7;7130:27;;;;;;;;;;;;;;;:36;;;;7198:7;7182:32;;7191:5;7182:32;;;7207:6;7182:32;;;;;;:::i;:::-;;;;;;;;6842:380;;;:::o;21937:4767::-;22085:1;22069:18;;:4;:18;;;;22061:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22162:1;22148:16;;:2;:16;;;;22140:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;22231:1;22221:6;:11;22217:93;;;22249:28;22265:4;22271:2;22275:1;22249:15;:28::i;:::-;22292:7;;22217:93;22333:5;22320:10;;:18;;;;;;;;;;;;;;;;;;22353:14;;;;;;;;;;;22349:2487;;;22414:7;:5;:7::i;:::-;22406:15;;:4;:15;;;;:49;;;;;22448:7;:5;:7::i;:::-;22442:13;;:2;:13;;;;22406:49;:86;;;;;22490:1;22476:16;;:2;:16;;;;22406:86;:128;;;;;22527:6;22513:21;;:2;:21;;;;22406:128;:158;;;;;22556:8;;;;;;;;;;;22555:9;22406:158;22384:2441;;;22604:13;;;;;;;;;;;22599:223;;22676:19;:25;22696:4;22676:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;22705:19;:23;22725:2;22705:23;;;;;;;;;;;;;;;;;;;;;;;;;22676:52;22642:160;;;;;;;;;;;;:::i;:::-;;;;;;;;;22599:223;22978:20;;;;;;;;;;;22974:641;;;23059:7;:5;:7::i;:::-;23053:13;;:2;:13;;;;:72;;;;;23109:15;23095:30;;:2;:30;;;;23053:72;:129;;;;;23168:13;23154:28;;:2;:28;;;;23053:129;23023:573;;;23346:12;23271:28;:39;23300:9;23271:39;;;;;;;;;;;;;;;;:87;23233:258;;;;;;;;;;;;:::i;:::-;;;;;;;;;23560:12;23518:28;:39;23547:9;23518:39;;;;;;;;;;;;;;;:54;;;;23023:573;22974:641;23689:25;:31;23715:4;23689:31;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;23746:31;:35;23778:2;23746:35;;;;;;;;;;;;;;;;;;;;;;;;;23745:36;23689:92;23663:1147;;;23868:20;;23858:6;:30;;23824:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;24076:9;;24059:13;24069:2;24059:9;:13::i;:::-;24050:6;:22;;;;:::i;:::-;:35;;24016:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;23663:1147;;;24254:25;:29;24280:2;24254:29;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;24309:31;:37;24341:4;24309:37;;;;;;;;;;;;;;;;;;;;;;;;;24308:38;24254:92;24228:582;;;24433:20;;24423:6;:30;;24389:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;24228:582;;;24590:31;:35;24622:2;24590:35;;;;;;;;;;;;;;;;;;;;;;;;;24585:225;;24710:9;;24693:13;24703:2;24693:9;:13::i;:::-;24684:6;:22;;;;:::i;:::-;:35;;24650:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;24585:225;24228:582;23663:1147;22384:2441;22349:2487;24846:28;24877:24;24895:4;24877:9;:24::i;:::-;24846:55;;24914:12;24953:18;;24929:20;:42;;24914:57;;25002:7;:35;;;;;25026:11;;;;;;;;;;25002:35;:61;;;;;25055:8;;;;;;;;;;;25054:9;25002:61;:110;;;;;25081:25;:31;25107:4;25081:31;;;;;;;;;;;;;;;;;;;;;;;;;25080:32;25002:110;:153;;;;;25130:19;:25;25150:4;25130:25;;;;;;;;;;;;;;;;;;;;;;;;;25129:26;25002:153;:194;;;;;25173:19;:23;25193:2;25173:23;;;;;;;;;;;;;;;;;;;;;;;;;25172:24;25002:194;24984:326;;;25234:4;25223:8;;:15;;;;;;;;;;;;;;;;;;25255:10;:8;:10::i;:::-;25293:5;25282:8;;:16;;;;;;;;;;;;;;;;;;24984:326;25322:12;25338:8;;;;;;;;;;;25337:9;25322:24;;25361:8;;;;;;;;;;;25357:174;;25403:3;25389:10;;;;;;;;;;;:17;;;25385:83;;;25448:20;25425;:43;;;;25385:83;25499:20;25487:9;:32;;;;25357:174;25630:19;:25;25650:4;25630:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;25659:19;:23;25679:2;25659:23;;;;;;;;;;;;;;;;;;;;;;;;;25630:52;25626:100;;;25709:5;25699:15;;25626:100;25738:12;25843:7;:21;;;;;25854:10;;;;;;;;;;;25853:11;25843:21;25839:812;;;25909:25;:29;25935:2;25909:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;25958:1;25942:13;;:17;25909:50;25905:597;;;25987:34;26017:3;25987:25;25998:13;;25987:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;25980:41;;26086:13;;26068:14;;26061:4;:21;;;;:::i;:::-;26060:39;;;;:::i;:::-;26040:16;;:59;;;;;;;:::i;:::-;;;;;;;;26155:13;;26141:10;;26134:4;:17;;;;:::i;:::-;26133:35;;;;:::i;:::-;26118:12;;:50;;;;;;;:::i;:::-;;;;;;;;25905:597;;;26230:25;:31;26256:4;26230:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;26280:1;26265:12;;:16;26230:51;26226:276;;;26309:33;26338:3;26309:24;26320:12;;26309:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;26302:40;;26406:12;;26389:13;;26382:4;:20;;;;:::i;:::-;26381:37;;;;:::i;:::-;26361:16;;:57;;;;;;;:::i;:::-;;;;;;;;26474:12;;26461:9;;26454:4;:16;;;;:::i;:::-;26453:33;;;;:::i;:::-;26437:12;;:49;;;;;;;:::i;:::-;;;;;;;;26226:276;25905:597;26529:1;26522:4;:8;26518:91;;;26551:42;26567:4;26581;26588;26551:15;:42::i;:::-;26518:91;26635:4;26625:14;;;;;:::i;:::-;;;25839:812;26663:33;26679:4;26685:2;26689:6;26663:15;:33::i;:::-;22050:4654;;;;21937:4767;;;;:::o;1209:191::-;1283:16;1302:6;;;;;;;;;;;1283:25;;1328:8;1319:6;;:17;;;;;;;;;;;;;;;;;;1383:8;1352:40;;1373:8;1352:40;;;;;;;;;;;;1272:128;1209:191;:::o;21360:188::-;21477:5;21443:25;:31;21469:4;21443:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;21534:5;21500:40;;21528:4;21500:40;;;;;;;;;;;;21360:188;;:::o;5080:733::-;5238:1;5220:20;;:6;:20;;;;5212:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5322:1;5301:23;;:9;:23;;;;5293:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5377:47;5398:6;5406:9;5417:6;5377:20;:47::i;:::-;5437:21;5461:9;:17;5471:6;5461:17;;;;;;;;;;;;;;;;5437:41;;5514:6;5497:13;:23;;5489:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5635:6;5619:13;:22;5599:9;:17;5609:6;5599:17;;;;;;;;;;;;;;;:42;;;;5687:6;5663:9;:20;5673:9;5663:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5728:9;5711:35;;5720:6;5711:35;;;5739:6;5711:35;;;;;;:::i;:::-;;;;;;;;5759:46;5779:6;5787:9;5798:6;5759:19;:46::i;:::-;5201:612;5080:733;;;:::o;27834:822::-;27873:23;27899:24;27917:4;27899:9;:24::i;:::-;27873:50;;27934:25;27994:12;;27962:16;;:44;;;;:::i;:::-;27934:72;;28018:12;28066:1;28047:15;:20;:46;;;;28092:1;28071:17;:22;28047:46;28043:85;;;28110:7;;;;;28043:85;28183:2;28162:18;;:23;;;;:::i;:::-;28144:15;:41;28140:115;;;28241:2;28220:18;;:23;;;;:::i;:::-;28202:41;;28140:115;28265:25;28293:21;28265:49;;28327:33;28344:15;28327:16;:33::i;:::-;28381:18;28402:44;28428:17;28402:21;:25;;:44;;;;:::i;:::-;28381:65;;28459:17;28479:75;28526:17;28479:28;28494:12;;28479:10;:14;;:28;;;;:::i;:::-;:32;;:75;;;;:::i;:::-;28459:95;;28587:9;;;;;;;;;;;28579:23;;28624:9;28579:69;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28565:83;;;;;27862:794;;;;;;27834:822;:::o;7234:125::-;;;;:::o;7372:124::-;;;;:::o;26712:589::-;26838:21;26876:1;26862:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26838:40;;26907:4;26889;26894:1;26889:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;26933:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26923:4;26928:1;26923:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;26968:62;26985:4;27000:15;27018:11;26968:8;:62::i;:::-;27069:15;:66;;;27150:11;27176:1;27220:4;27247;27267:15;27069:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26767:534;26712:589;:::o;8772:98::-;8830:7;8861:1;8857;:5;;;;:::i;:::-;8850:12;;8772:98;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:329::-;1229:6;1278:2;1266:9;1257:7;1253:23;1249:32;1246:119;;;1284:79;;:::i;:::-;1246:119;1404:1;1429:53;1474:7;1465:6;1454:9;1450:22;1429:53;:::i;:::-;1419:63;;1375:117;1170:329;;;;:::o;1505:99::-;1557:6;1591:5;1585:12;1575:22;;1505:99;;;:::o;1610:169::-;1694:11;1728:6;1723:3;1716:19;1768:4;1763:3;1759:14;1744:29;;1610:169;;;;:::o;1785:307::-;1853:1;1863:113;1877:6;1874:1;1871:13;1863:113;;;1962:1;1957:3;1953:11;1947:18;1943:1;1938:3;1934:11;1927:39;1899:2;1896:1;1892:10;1887:15;;1863:113;;;1994:6;1991:1;1988:13;1985:101;;;2074:1;2065:6;2060:3;2056:16;2049:27;1985:101;1834:258;1785:307;;;:::o;2098:102::-;2139:6;2190:2;2186:7;2181:2;2174:5;2170:14;2166:28;2156:38;;2098:102;;;:::o;2206:364::-;2294:3;2322:39;2355:5;2322:39;:::i;:::-;2377:71;2441:6;2436:3;2377:71;:::i;:::-;2370:78;;2457:52;2502:6;2497:3;2490:4;2483:5;2479:16;2457:52;:::i;:::-;2534:29;2556:6;2534:29;:::i;:::-;2529:3;2525:39;2518:46;;2298:272;2206:364;;;;:::o;2576:313::-;2689:4;2727:2;2716:9;2712:18;2704:26;;2776:9;2770:4;2766:20;2762:1;2751:9;2747:17;2740:47;2804:78;2877:4;2868:6;2804:78;:::i;:::-;2796:86;;2576:313;;;;:::o;2895:126::-;2932:7;2972:42;2965:5;2961:54;2950:65;;2895:126;;;:::o;3027:96::-;3064:7;3093:24;3111:5;3093:24;:::i;:::-;3082:35;;3027:96;;;:::o;3129:122::-;3202:24;3220:5;3202:24;:::i;:::-;3195:5;3192:35;3182:63;;3241:1;3238;3231:12;3182:63;3129:122;:::o;3257:139::-;3303:5;3341:6;3328:20;3319:29;;3357:33;3384:5;3357:33;:::i;:::-;3257:139;;;;:::o;3402:474::-;3470:6;3478;3527:2;3515:9;3506:7;3502:23;3498:32;3495:119;;;3533:79;;:::i;:::-;3495:119;3653:1;3678:53;3723:7;3714:6;3703:9;3699:22;3678:53;:::i;:::-;3668:63;;3624:117;3780:2;3806:53;3851:7;3842:6;3831:9;3827:22;3806:53;:::i;:::-;3796:63;;3751:118;3402:474;;;;;:::o;3882:90::-;3916:7;3959:5;3952:13;3945:21;3934:32;;3882:90;;;:::o;3978:109::-;4059:21;4074:5;4059:21;:::i;:::-;4054:3;4047:34;3978:109;;:::o;4093:210::-;4180:4;4218:2;4207:9;4203:18;4195:26;;4231:65;4293:1;4282:9;4278:17;4269:6;4231:65;:::i;:::-;4093:210;;;;:::o;4309:118::-;4396:24;4414:5;4396:24;:::i;:::-;4391:3;4384:37;4309:118;;:::o;4433:222::-;4526:4;4564:2;4553:9;4549:18;4541:26;;4577:71;4645:1;4634:9;4630:17;4621:6;4577:71;:::i;:::-;4433:222;;;;:::o;4661:329::-;4720:6;4769:2;4757:9;4748:7;4744:23;4740:32;4737:119;;;4775:79;;:::i;:::-;4737:119;4895:1;4920:53;4965:7;4956:6;4945:9;4941:22;4920:53;:::i;:::-;4910:63;;4866:117;4661:329;;;;:::o;4996:60::-;5024:3;5045:5;5038:12;;4996:60;;;:::o;5062:142::-;5112:9;5145:53;5163:34;5172:24;5190:5;5172:24;:::i;:::-;5163:34;:::i;:::-;5145:53;:::i;:::-;5132:66;;5062:142;;;:::o;5210:126::-;5260:9;5293:37;5324:5;5293:37;:::i;:::-;5280:50;;5210:126;;;:::o;5342:153::-;5419:9;5452:37;5483:5;5452:37;:::i;:::-;5439:50;;5342:153;;;:::o;5501:185::-;5615:64;5673:5;5615:64;:::i;:::-;5610:3;5603:77;5501:185;;:::o;5692:276::-;5812:4;5850:2;5839:9;5835:18;5827:26;;5863:98;5958:1;5947:9;5943:17;5934:6;5863:98;:::i;:::-;5692:276;;;;:::o;5974:619::-;6051:6;6059;6067;6116:2;6104:9;6095:7;6091:23;6087:32;6084:119;;;6122:79;;:::i;:::-;6084:119;6242:1;6267:53;6312:7;6303:6;6292:9;6288:22;6267:53;:::i;:::-;6257:63;;6213:117;6369:2;6395:53;6440:7;6431:6;6420:9;6416:22;6395:53;:::i;:::-;6385:63;;6340:118;6497:2;6523:53;6568:7;6559:6;6548:9;6544:22;6523:53;:::i;:::-;6513:63;;6468:118;5974:619;;;;;:::o;6599:118::-;6686:24;6704:5;6686:24;:::i;:::-;6681:3;6674:37;6599:118;;:::o;6723:222::-;6816:4;6854:2;6843:9;6839:18;6831:26;;6867:71;6935:1;6924:9;6920:17;6911:6;6867:71;:::i;:::-;6723:222;;;;:::o;6951:86::-;6986:7;7026:4;7019:5;7015:16;7004:27;;6951:86;;;:::o;7043:112::-;7126:22;7142:5;7126:22;:::i;:::-;7121:3;7114:35;7043:112;;:::o;7161:214::-;7250:4;7288:2;7277:9;7273:18;7265:26;;7301:67;7365:1;7354:9;7350:17;7341:6;7301:67;:::i;:::-;7161:214;;;;:::o;7381:116::-;7451:21;7466:5;7451:21;:::i;:::-;7444:5;7441:32;7431:60;;7487:1;7484;7477:12;7431:60;7381:116;:::o;7503:133::-;7546:5;7584:6;7571:20;7562:29;;7600:30;7624:5;7600:30;:::i;:::-;7503:133;;;;:::o;7642:323::-;7698:6;7747:2;7735:9;7726:7;7722:23;7718:32;7715:119;;;7753:79;;:::i;:::-;7715:119;7873:1;7898:50;7940:7;7931:6;7920:9;7916:22;7898:50;:::i;:::-;7888:60;;7844:114;7642:323;;;;:::o;7971:468::-;8036:6;8044;8093:2;8081:9;8072:7;8068:23;8064:32;8061:119;;;8099:79;;:::i;:::-;8061:119;8219:1;8244:53;8289:7;8280:6;8269:9;8265:22;8244:53;:::i;:::-;8234:63;;8190:117;8346:2;8372:50;8414:7;8405:6;8394:9;8390:22;8372:50;:::i;:::-;8362:60;;8317:115;7971:468;;;;;:::o;8445:474::-;8513:6;8521;8570:2;8558:9;8549:7;8545:23;8541:32;8538:119;;;8576:79;;:::i;:::-;8538:119;8696:1;8721:53;8766:7;8757:6;8746:9;8742:22;8721:53;:::i;:::-;8711:63;;8667:117;8823:2;8849:53;8894:7;8885:6;8874:9;8870:22;8849:53;:::i;:::-;8839:63;;8794:118;8445:474;;;;;:::o;8925:182::-;9065:34;9061:1;9053:6;9049:14;9042:58;8925:182;:::o;9113:366::-;9255:3;9276:67;9340:2;9335:3;9276:67;:::i;:::-;9269:74;;9352:93;9441:3;9352:93;:::i;:::-;9470:2;9465:3;9461:12;9454:19;;9113:366;;;:::o;9485:419::-;9651:4;9689:2;9678:9;9674:18;9666:26;;9738:9;9732:4;9728:20;9724:1;9713:9;9709:17;9702:47;9766:131;9892:4;9766:131;:::i;:::-;9758:139;;9485:419;;;:::o;9910:180::-;9958:77;9955:1;9948:88;10055:4;10052:1;10045:15;10079:4;10076:1;10069:15;10096:305;10136:3;10155:20;10173:1;10155:20;:::i;:::-;10150:25;;10189:20;10207:1;10189:20;:::i;:::-;10184:25;;10343:1;10275:66;10271:74;10268:1;10265:81;10262:107;;;10349:18;;:::i;:::-;10262:107;10393:1;10390;10386:9;10379:16;;10096:305;;;;:::o;10407:179::-;10547:31;10543:1;10535:6;10531:14;10524:55;10407:179;:::o;10592:366::-;10734:3;10755:67;10819:2;10814:3;10755:67;:::i;:::-;10748:74;;10831:93;10920:3;10831:93;:::i;:::-;10949:2;10944:3;10940:12;10933:19;;10592:366;;;:::o;10964:419::-;11130:4;11168:2;11157:9;11153:18;11145:26;;11217:9;11211:4;11207:20;11203:1;11192:9;11188:17;11181:47;11245:131;11371:4;11245:131;:::i;:::-;11237:139;;10964:419;;;:::o;11389:180::-;11437:77;11434:1;11427:88;11534:4;11531:1;11524:15;11558:4;11555:1;11548:15;11575:143;11632:5;11663:6;11657:13;11648:22;;11679:33;11706:5;11679:33;:::i;:::-;11575:143;;;;:::o;11724:351::-;11794:6;11843:2;11831:9;11822:7;11818:23;11814:32;11811:119;;;11849:79;;:::i;:::-;11811:119;11969:1;11994:64;12050:7;12041:6;12030:9;12026:22;11994:64;:::i;:::-;11984:74;;11940:128;11724:351;;;;:::o;12081:180::-;12129:77;12126:1;12119:88;12226:4;12223:1;12216:15;12250:4;12247:1;12240:15;12267:85;12312:7;12341:5;12330:16;;12267:85;;;:::o;12358:158::-;12416:9;12449:61;12467:42;12476:32;12502:5;12476:32;:::i;:::-;12467:42;:::i;:::-;12449:61;:::i;:::-;12436:74;;12358:158;;;:::o;12522:147::-;12617:45;12656:5;12617:45;:::i;:::-;12612:3;12605:58;12522:147;;:::o;12675:114::-;12742:6;12776:5;12770:12;12760:22;;12675:114;;;:::o;12795:184::-;12894:11;12928:6;12923:3;12916:19;12968:4;12963:3;12959:14;12944:29;;12795:184;;;;:::o;12985:132::-;13052:4;13075:3;13067:11;;13105:4;13100:3;13096:14;13088:22;;12985:132;;;:::o;13123:108::-;13200:24;13218:5;13200:24;:::i;:::-;13195:3;13188:37;13123:108;;:::o;13237:179::-;13306:10;13327:46;13369:3;13361:6;13327:46;:::i;:::-;13405:4;13400:3;13396:14;13382:28;;13237:179;;;;:::o;13422:113::-;13492:4;13524;13519:3;13515:14;13507:22;;13422:113;;;:::o;13571:732::-;13690:3;13719:54;13767:5;13719:54;:::i;:::-;13789:86;13868:6;13863:3;13789:86;:::i;:::-;13782:93;;13899:56;13949:5;13899:56;:::i;:::-;13978:7;14009:1;13994:284;14019:6;14016:1;14013:13;13994:284;;;14095:6;14089:13;14122:63;14181:3;14166:13;14122:63;:::i;:::-;14115:70;;14208:60;14261:6;14208:60;:::i;:::-;14198:70;;14054:224;14041:1;14038;14034:9;14029:14;;13994:284;;;13998:14;14294:3;14287:10;;13695:608;;;13571:732;;;;:::o;14309:720::-;14544:4;14582:3;14571:9;14567:19;14559:27;;14596:79;14672:1;14661:9;14657:17;14648:6;14596:79;:::i;:::-;14722:9;14716:4;14712:20;14707:2;14696:9;14692:18;14685:48;14750:108;14853:4;14844:6;14750:108;:::i;:::-;14742:116;;14868:72;14936:2;14925:9;14921:18;14912:6;14868:72;:::i;:::-;14950;15018:2;15007:9;15003:18;14994:6;14950:72;:::i;:::-;14309:720;;;;;;;:::o;15035:180::-;15083:77;15080:1;15073:88;15180:4;15177:1;15170:15;15204:4;15201:1;15194:15;15221:320;15265:6;15302:1;15296:4;15292:12;15282:22;;15349:1;15343:4;15339:12;15370:18;15360:81;;15426:4;15418:6;15414:17;15404:27;;15360:81;15488:2;15480:6;15477:14;15457:18;15454:38;15451:84;;;15507:18;;:::i;:::-;15451:84;15272:269;15221:320;;;:::o;15547:227::-;15687:34;15683:1;15675:6;15671:14;15664:58;15756:10;15751:2;15743:6;15739:15;15732:35;15547:227;:::o;15780:366::-;15922:3;15943:67;16007:2;16002:3;15943:67;:::i;:::-;15936:74;;16019:93;16108:3;16019:93;:::i;:::-;16137:2;16132:3;16128:12;16121:19;;15780:366;;;:::o;16152:419::-;16318:4;16356:2;16345:9;16341:18;16333:26;;16405:9;16399:4;16395:20;16391:1;16380:9;16376:17;16369:47;16433:131;16559:4;16433:131;:::i;:::-;16425:139;;16152:419;;;:::o;16577:244::-;16717:34;16713:1;16705:6;16701:14;16694:58;16786:27;16781:2;16773:6;16769:15;16762:52;16577:244;:::o;16827:366::-;16969:3;16990:67;17054:2;17049:3;16990:67;:::i;:::-;16983:74;;17066:93;17155:3;17066:93;:::i;:::-;17184:2;17179:3;17175:12;17168:19;;16827:366;;;:::o;17199:419::-;17365:4;17403:2;17392:9;17388:18;17380:26;;17452:9;17446:4;17442:20;17438:1;17427:9;17423:17;17416:47;17480:131;17606:4;17480:131;:::i;:::-;17472:139;;17199:419;;;:::o;17624:224::-;17764:34;17760:1;17752:6;17748:14;17741:58;17833:7;17828:2;17820:6;17816:15;17809:32;17624:224;:::o;17854:366::-;17996:3;18017:67;18081:2;18076:3;18017:67;:::i;:::-;18010:74;;18093:93;18182:3;18093:93;:::i;:::-;18211:2;18206:3;18202:12;18195:19;;17854:366;;;:::o;18226:419::-;18392:4;18430:2;18419:9;18415:18;18407:26;;18479:9;18473:4;18469:20;18465:1;18454:9;18450:17;18443:47;18507:131;18633:4;18507:131;:::i;:::-;18499:139;;18226:419;;;:::o;18651:348::-;18691:7;18714:20;18732:1;18714:20;:::i;:::-;18709:25;;18748:20;18766:1;18748:20;:::i;:::-;18743:25;;18936:1;18868:66;18864:74;18861:1;18858:81;18853:1;18846:9;18839:17;18835:105;18832:131;;;18943:18;;:::i;:::-;18832:131;18991:1;18988;18984:9;18973:20;;18651:348;;;;:::o;19005:180::-;19053:77;19050:1;19043:88;19150:4;19147:1;19140:15;19174:4;19171:1;19164:15;19191:185;19231:1;19248:20;19266:1;19248:20;:::i;:::-;19243:25;;19282:20;19300:1;19282:20;:::i;:::-;19277:25;;19321:1;19311:35;;19326:18;;:::i;:::-;19311:35;19368:1;19365;19361:9;19356:14;;19191:185;;;;:::o;19382:240::-;19522:34;19518:1;19510:6;19506:14;19499:58;19591:23;19586:2;19578:6;19574:15;19567:48;19382:240;:::o;19628:366::-;19770:3;19791:67;19855:2;19850:3;19791:67;:::i;:::-;19784:74;;19867:93;19956:3;19867:93;:::i;:::-;19985:2;19980:3;19976:12;19969:19;;19628:366;;;:::o;20000:419::-;20166:4;20204:2;20193:9;20189:18;20181:26;;20253:9;20247:4;20243:20;20239:1;20228:9;20224:17;20217:47;20281:131;20407:4;20281:131;:::i;:::-;20273:139;;20000:419;;;:::o;20425:239::-;20565:34;20561:1;20553:6;20549:14;20542:58;20634:22;20629:2;20621:6;20617:15;20610:47;20425:239;:::o;20670:366::-;20812:3;20833:67;20897:2;20892:3;20833:67;:::i;:::-;20826:74;;20909:93;20998:3;20909:93;:::i;:::-;21027:2;21022:3;21018:12;21011:19;;20670:366;;;:::o;21042:419::-;21208:4;21246:2;21235:9;21231:18;21223:26;;21295:9;21289:4;21285:20;21281:1;21270:9;21266:17;21259:47;21323:131;21449:4;21323:131;:::i;:::-;21315:139;;21042:419;;;:::o;21467:225::-;21607:34;21603:1;21595:6;21591:14;21584:58;21676:8;21671:2;21663:6;21659:15;21652:33;21467:225;:::o;21698:366::-;21840:3;21861:67;21925:2;21920:3;21861:67;:::i;:::-;21854:74;;21937:93;22026:3;21937:93;:::i;:::-;22055:2;22050:3;22046:12;22039:19;;21698:366;;;:::o;22070:419::-;22236:4;22274:2;22263:9;22259:18;22251:26;;22323:9;22317:4;22313:20;22309:1;22298:9;22294:17;22287:47;22351:131;22477:4;22351:131;:::i;:::-;22343:139;;22070:419;;;:::o;22495:223::-;22635:34;22631:1;22623:6;22619:14;22612:58;22704:6;22699:2;22691:6;22687:15;22680:31;22495:223;:::o;22724:366::-;22866:3;22887:67;22951:2;22946:3;22887:67;:::i;:::-;22880:74;;22963:93;23052:3;22963:93;:::i;:::-;23081:2;23076:3;23072:12;23065:19;;22724:366;;;:::o;23096:419::-;23262:4;23300:2;23289:9;23285:18;23277:26;;23349:9;23343:4;23339:20;23335:1;23324:9;23320:17;23313:47;23377:131;23503:4;23377:131;:::i;:::-;23369:139;;23096:419;;;:::o;23521:221::-;23661:34;23657:1;23649:6;23645:14;23638:58;23730:4;23725:2;23717:6;23713:15;23706:29;23521:221;:::o;23748:366::-;23890:3;23911:67;23975:2;23970:3;23911:67;:::i;:::-;23904:74;;23987:93;24076:3;23987:93;:::i;:::-;24105:2;24100:3;24096:12;24089:19;;23748:366;;;:::o;24120:419::-;24286:4;24324:2;24313:9;24309:18;24301:26;;24373:9;24367:4;24363:20;24359:1;24348:9;24344:17;24337:47;24401:131;24527:4;24401:131;:::i;:::-;24393:139;;24120:419;;;:::o;24545:224::-;24685:34;24681:1;24673:6;24669:14;24662:58;24754:7;24749:2;24741:6;24737:15;24730:32;24545:224;:::o;24775:366::-;24917:3;24938:67;25002:2;24997:3;24938:67;:::i;:::-;24931:74;;25014:93;25103:3;25014:93;:::i;:::-;25132:2;25127:3;25123:12;25116:19;;24775:366;;;:::o;25147:419::-;25313:4;25351:2;25340:9;25336:18;25328:26;;25400:9;25394:4;25390:20;25386:1;25375:9;25371:17;25364:47;25428:131;25554:4;25428:131;:::i;:::-;25420:139;;25147:419;;;:::o;25572:222::-;25712:34;25708:1;25700:6;25696:14;25689:58;25781:5;25776:2;25768:6;25764:15;25757:30;25572:222;:::o;25800:366::-;25942:3;25963:67;26027:2;26022:3;25963:67;:::i;:::-;25956:74;;26039:93;26128:3;26039:93;:::i;:::-;26157:2;26152:3;26148:12;26141:19;;25800:366;;;:::o;26172:419::-;26338:4;26376:2;26365:9;26361:18;26353:26;;26425:9;26419:4;26415:20;26411:1;26400:9;26396:17;26389:47;26453:131;26579:4;26453:131;:::i;:::-;26445:139;;26172:419;;;:::o;26597:172::-;26737:24;26733:1;26725:6;26721:14;26714:48;26597:172;:::o;26775:366::-;26917:3;26938:67;27002:2;26997:3;26938:67;:::i;:::-;26931:74;;27014:93;27103:3;27014:93;:::i;:::-;27132:2;27127:3;27123:12;27116:19;;26775:366;;;:::o;27147:419::-;27313:4;27351:2;27340:9;27336:18;27328:26;;27400:9;27394:4;27390:20;27386:1;27375:9;27371:17;27364:47;27428:131;27554:4;27428:131;:::i;:::-;27420:139;;27147:419;;;:::o;27572:297::-;27712:34;27708:1;27700:6;27696:14;27689:58;27781:34;27776:2;27768:6;27764:15;27757:59;27850:11;27845:2;27837:6;27833:15;27826:36;27572:297;:::o;27875:366::-;28017:3;28038:67;28102:2;28097:3;28038:67;:::i;:::-;28031:74;;28114:93;28203:3;28114:93;:::i;:::-;28232:2;28227:3;28223:12;28216:19;;27875:366;;;:::o;28247:419::-;28413:4;28451:2;28440:9;28436:18;28428:26;;28500:9;28494:4;28490:20;28486:1;28475:9;28471:17;28464:47;28528:131;28654:4;28528:131;:::i;:::-;28520:139;;28247:419;;;:::o;28672:240::-;28812:34;28808:1;28800:6;28796:14;28789:58;28881:23;28876:2;28868:6;28864:15;28857:48;28672:240;:::o;28918:366::-;29060:3;29081:67;29145:2;29140:3;29081:67;:::i;:::-;29074:74;;29157:93;29246:3;29157:93;:::i;:::-;29275:2;29270:3;29266:12;29259:19;;28918:366;;;:::o;29290:419::-;29456:4;29494:2;29483:9;29479:18;29471:26;;29543:9;29537:4;29533:20;29529:1;29518:9;29514:17;29507:47;29571:131;29697:4;29571:131;:::i;:::-;29563:139;;29290:419;;;:::o;29715:169::-;29855:21;29851:1;29843:6;29839:14;29832:45;29715:169;:::o;29890:366::-;30032:3;30053:67;30117:2;30112:3;30053:67;:::i;:::-;30046:74;;30129:93;30218:3;30129:93;:::i;:::-;30247:2;30242:3;30238:12;30231:19;;29890:366;;;:::o;30262:419::-;30428:4;30466:2;30455:9;30451:18;30443:26;;30515:9;30509:4;30505:20;30501:1;30490:9;30486:17;30479:47;30543:131;30669:4;30543:131;:::i;:::-;30535:139;;30262:419;;;:::o;30687:241::-;30827:34;30823:1;30815:6;30811:14;30804:58;30896:24;30891:2;30883:6;30879:15;30872:49;30687:241;:::o;30934:366::-;31076:3;31097:67;31161:2;31156:3;31097:67;:::i;:::-;31090:74;;31173:93;31262:3;31173:93;:::i;:::-;31291:2;31286:3;31282:12;31275:19;;30934:366;;;:::o;31306:419::-;31472:4;31510:2;31499:9;31495:18;31487:26;;31559:9;31553:4;31549:20;31545:1;31534:9;31530:17;31523:47;31587:131;31713:4;31587:131;:::i;:::-;31579:139;;31306:419;;;:::o;31731:191::-;31771:4;31791:20;31809:1;31791:20;:::i;:::-;31786:25;;31825:20;31843:1;31825:20;:::i;:::-;31820:25;;31864:1;31861;31858:8;31855:34;;;31869:18;;:::i;:::-;31855:34;31914:1;31911;31907:9;31899:17;;31731:191;;;;:::o;31928:225::-;32068:34;32064:1;32056:6;32052:14;32045:58;32137:8;32132:2;32124:6;32120:15;32113:33;31928:225;:::o;32159:366::-;32301:3;32322:67;32386:2;32381:3;32322:67;:::i;:::-;32315:74;;32398:93;32487:3;32398:93;:::i;:::-;32516:2;32511:3;32507:12;32500:19;;32159:366;;;:::o;32531:419::-;32697:4;32735:2;32724:9;32720:18;32712:26;;32784:9;32778:4;32774:20;32770:1;32759:9;32755:17;32748:47;32812:131;32938:4;32812:131;:::i;:::-;32804:139;;32531:419;;;:::o;32956:147::-;33057:11;33094:3;33079:18;;32956:147;;;;:::o;33109:114::-;;:::o;33229:398::-;33388:3;33409:83;33490:1;33485:3;33409:83;:::i;:::-;33402:90;;33501:93;33590:3;33501:93;:::i;:::-;33619:1;33614:3;33610:11;33603:18;;33229:398;;;:::o;33633:379::-;33817:3;33839:147;33982:3;33839:147;:::i;:::-;33832:154;;34003:3;33996:10;;33633:379;;;:::o;34018:831::-;34281:4;34319:3;34308:9;34304:19;34296:27;;34333:71;34401:1;34390:9;34386:17;34377:6;34333:71;:::i;:::-;34414:80;34490:2;34479:9;34475:18;34466:6;34414:80;:::i;:::-;34541:9;34535:4;34531:20;34526:2;34515:9;34511:18;34504:48;34569:108;34672:4;34663:6;34569:108;:::i;:::-;34561:116;;34687:72;34755:2;34744:9;34740:18;34731:6;34687:72;:::i;:::-;34769:73;34837:3;34826:9;34822:19;34813:6;34769:73;:::i;:::-;34018:831;;;;;;;;:::o
Swarm Source
ipfs://63f09a914edd55b19b16568734c816b8b1c171cbd8e3794fd17c6b9d77437148
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.