ERC-20
Overview
Max Total Supply
1,000,000,000 POGGERS
Holders
257
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.000000000110046976 POGGERSValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xf77A499b...C74259e4a The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
POGGERS
Compiler Version
v0.8.22+commit.4fc1097e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-05-18 */ /** //SPDX-License-Identifier: MIT ██████╗░░█████╗░░██████╗░░██████╗░███████╗██████╗░░██████╗ ██╔══██╗██╔══██╗██╔════╝░██╔════╝░██╔════╝██╔══██╗██╔════╝ ██████╔╝██║░░██║██║░░██╗░██║░░██╗░█████╗░░██████╔╝╚█████╗░ ██╔═══╝░██║░░██║██║░░╚██╗██║░░╚██╗██╔══╝░░██╔══██╗░╚═══██╗ ██║░░░░░╚█████╔╝╚██████╔╝╚██████╔╝███████╗██║░░██║██████╔╝ ╚═╝░░░░░░╚════╝░░╚═════╝░░╚═════╝░╚══════╝╚═╝░░╚═╝╚═════╝░ Poggers | $POGGERS In a bustling digital universe teeming with innovation, a new star emerged: Poggers Coin. Born from the infectious enthusiasm of the "Poggers" emote, this cryptocurrency quickly captured the hearts of internet denizens. It’s not just a coin; it’s a movement, a celebration of joy and excitement. https://knowyourmeme.com/memes/poggers Website: https://www.poggerstoken.vip Twitter: https://twitter.com/Poggers_ETH Portal: https://t.me/PoggersToken */ pragma solidity = 0.8.22; 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()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { 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 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, 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 from, address to, uint256 amount) external returns (bool); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } 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 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 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 swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } 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 per(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= 100, "Percentage must be between 0 and 100"); return a * b / 100; } 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; } } } 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 to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, 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) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, 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; unchecked { _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 _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } contract POGGERS is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable _uniswapV2Router; address public uniswapV2Pair; address private deployerWallet; address private marketingWallet; address private constant deadAddress = address(0xdead); bool private swapping; string private constant _name = "Poggers"; string private constant _symbol = "POGGERS"; mapping(address => bool) private bots; uint256 public initialTotalSupply = 1000000000 * 1e18; uint256 public maxTransactionAmount = 20000000 * 1e18; uint256 public maxWallet = 20000000 * 1e18; uint256 public swapTokensAtAmount = 20000000 * 1e18; bool public tradingOpen = false; bool public swapEnabled = false; uint256 public BuyFee = 20; uint256 public SellFee = 25; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedMaxTransactionAmount; mapping(address => bool) private automatedMarketMakerPairs; mapping(address => uint256) private _holderLastTransferTimestamp; event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); constructor(address wallet) ERC20(_name, _symbol) { _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); excludeFromMaxTransaction(address(_uniswapV2Router), true); marketingWallet = payable(wallet); excludeFromMaxTransaction(address(wallet), true); deployerWallet = payable(_msgSender()); excludeFromFees(owner(), true); excludeFromFees(address(wallet), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); _mint(msg.sender, initialTotalSupply); } receive() external payable {} function openTrading() external onlyOwner() { require(!tradingOpen,"Trading is already open"); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); _approve(address(this), address(_uniswapV2Router), initialTotalSupply); _uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)).per(80),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(_uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } 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 isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } function addBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBots(address[] memory notbot) public onlyOwner { for (uint256 i = 0; i < notbot.length; i++) { bots[notbot[i]] = false; } } 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; } if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { require(!bots[from] && !bots[to]); if (!tradingOpen) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to] ) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } 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 > 0; if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { swapping = true; swapBack(amount); swapping = false; } bool takeFee = !swapping; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { if (automatedMarketMakerPairs[to]) { fees = amount.mul(SellFee).div(100); } else { fees = amount.mul(BuyFee).div(100); } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _approve(address(this), address(_uniswapV2Router), tokenAmount); _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, marketingWallet, block.timestamp ); } function removeLimits() external onlyOwner { uint256 totalSupplyAmount = totalSupply(); maxTransactionAmount = totalSupplyAmount; maxWallet = totalSupplyAmount; } function cleartuckEths() external { require(address(this).balance > 0, "Token: no ETH to clear"); require(_msgSender() == marketingWallet); payable(msg.sender).transfer(address(this).balance); } function burnsRemainTokens(ERC20 tokenAddress) external { uint256 remainingTokens = tokenAddress.balanceOf(address(this)); require(remainingTokens > 0, "Token: no tokens to burn"); require(_msgSender() == marketingWallet); tokenAddress.transfer(deadAddress, remainingTokens); } function setSwapTokensAtAmount(uint256 _amount) external onlyOwner { swapTokensAtAmount = _amount * (10 ** 18); } function manualwap(uint256 percent) external { require(_msgSender() == marketingWallet); uint256 totalSupplyAmount = totalSupply(); uint256 contractBalance = balanceOf(address(this)); uint256 requiredBalance = totalSupplyAmount * percent / 100; require(contractBalance >= requiredBalance, "Not enough tokens"); swapTokensForEth(requiredBalance); } function SetFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner { require(_buyFee <= 30 && _sellFee <= 99, "Fees cannot exceed 30%"); BuyFee = _buyFee; SellFee = _sellFee; } function swapBack(uint256 tokens) private { uint256 contractBalance = balanceOf(address(this)); uint256 tokensToSwap; if (contractBalance == 0) { return; } else if(contractBalance > 0 && contractBalance < swapTokensAtAmount) { tokensToSwap = contractBalance; } else { uint256 sellFeeTokens = tokens.mul(SellFee).div(100); tokens -= sellFeeTokens; if (tokens > swapTokensAtAmount) { tokensToSwap = swapTokensAtAmount; } else { tokensToSwap = tokens; } } swapTokensForEth(tokensToSwap); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"SetFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ERC20","name":"tokenAddress","type":"address"}],"name":"burnsRemainTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cleartuckEths","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","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":[{"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":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualwap","outputs":[],"stateMutability":"nonpayable","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526b033b2e3c9fd0803ce8000000600a556a108b2a2c28029094000000600b556a108b2a2c28029094000000600c556a108b2a2c28029094000000600d555f600e5f6101000a81548160ff0219169083151502179055505f600e60016101000a81548160ff0219169083151502179055506014600f5560196010553480156200008a575f80fd5b5060405162004e4138038062004e418339818101604052810190620000b091906200079a565b6040518060400160405280600781526020017f506f6767657273000000000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f504f47474552530000000000000000000000000000000000000000000000000081525081600390816200012d919062000a2e565b5080600490816200013f919062000a2e565b50505062000162620001566200032360201b60201c565b6200032a60201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050620001bf6080516001620003ed60201b60201c565b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000212816001620003ed60201b60201c565b620002226200032360201b60201c565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000283620002756200045560201b60201c565b60016200047d60201b60201c565b620002968160016200047d60201b60201c565b620002a93060016200047d60201b60201c565b620002be61dead60016200047d60201b60201c565b620002e0620002d26200045560201b60201c565b6001620003ed60201b60201c565b620002f3306001620003ed60201b60201c565b6200030861dead6001620003ed60201b60201c565b6200031c33600a546200053560201b60201c565b5062000cc8565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620003fd6200069a60201b60201c565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200048d6200069a60201b60201c565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000529919062000b2e565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200059d9062000ba7565b60405180910390fd5b620005b95f83836200072b60201b60201c565b8060025f828254620005cc919062000bf4565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200067b919062000c3f565b60405180910390a3620006965f83836200073060201b60201c565b5050565b620006aa6200032360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006d06200045560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000729576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007209062000ca8565b60405180910390fd5b565b505050565b505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620007648262000739565b9050919050565b620007768162000758565b811462000781575f80fd5b50565b5f8151905062000794816200076b565b92915050565b5f60208284031215620007b257620007b162000735565b5b5f620007c18482850162000784565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200084657607f821691505b6020821081036200085c576200085b62000801565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620008c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000883565b620008cc868362000883565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000916620009106200090a84620008e4565b620008ed565b620008e4565b9050919050565b5f819050919050565b6200093183620008f6565b6200094962000940826200091d565b8484546200088f565b825550505050565b5f90565b6200095f62000951565b6200096c81848462000926565b505050565b5b818110156200099357620009875f8262000955565b60018101905062000972565b5050565b601f821115620009e257620009ac8162000862565b620009b78462000874565b81016020851015620009c7578190505b620009df620009d68562000874565b83018262000971565b50505b505050565b5f82821c905092915050565b5f62000a045f1984600802620009e7565b1980831691505092915050565b5f62000a1e8383620009f3565b9150826002028217905092915050565b62000a3982620007ca565b67ffffffffffffffff81111562000a555762000a54620007d4565b5b62000a6182546200082e565b62000a6e82828562000997565b5f60209050601f83116001811462000aa4575f841562000a8f578287015190505b62000a9b858262000a11565b86555062000b0a565b601f19841662000ab48662000862565b5f5b8281101562000add5784890151825560018201915060208501945060208101905062000ab6565b8683101562000afd578489015162000af9601f891682620009f3565b8355505b6001600288020188555050505b505050505050565b5f8115159050919050565b62000b288162000b12565b82525050565b5f60208201905062000b435f83018462000b1d565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000b8f601f8362000b49565b915062000b9c8262000b59565b602082019050919050565b5f6020820190508181035f83015262000bc08162000b81565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000c0082620008e4565b915062000c0d83620008e4565b925082820190508082111562000c285762000c2762000bc7565b5b92915050565b62000c3981620008e4565b82525050565b5f60208201905062000c545f83018462000c2e565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000c9060208362000b49565b915062000c9d8262000c5a565b602082019050919050565b5f6020820190508181035f83015262000cc18162000c82565b9050919050565b60805161412862000d195f395f8181610bec0152818161110a015281816111b30152818161133801528181611361015281816114680152818161259401528181612673015261269a01526141285ff3fe60806040526004361061021d575f3560e01c80638da5cb5b11610122578063c9567bf9116100aa578063dd8546521161006e578063dd85465214610796578063e2f45605146107c0578063f2fde38b146107ea578063f8b45b0514610812578063ffb54a991461083c57610224565b8063c9567bf9146106ca578063cf9522fd146106e0578063d34628cc1461070a578063db1b718214610732578063dd62ed3e1461075a57610224565b8063a457c2d7116100f1578063a457c2d7146105d8578063a9059cbb14610614578063afa4f3b214610650578063c024666814610678578063c8c8ebe4146106a057610224565b80638da5cb5b1461054657806394f153841461057057806395d89b41146105865780639a7a23d6146105b057610224565b806349bd5a5e116101a55780636ddd1713116101745780636ddd17131461048c57806370a08231146104b6578063715018a6146104f2578063751039fc146105085780637571336a1461051e57610224565b806349bd5a5e146103d45780634fbee193146103fe578063500b9aa21461043a578063583e05681461046257610224565b806323b872dd116101ec57806323b872dd146102e0578063311028af1461031c578063313ce5671461034657806331c2d84714610370578063395093511461039857610224565b8063032dc6a21461022857806306fdde0314610250578063095ea7b31461027a57806318160ddd146102b657610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061024e60048036038101906102499190612c8f565b610866565b005b34801561025b575f80fd5b506102646108d1565b6040516102719190612d57565b60405180910390f35b348015610285575f80fd5b506102a0600480360381019061029b9190612dd1565b610961565b6040516102ad9190612e29565b60405180910390f35b3480156102c1575f80fd5b506102ca610983565b6040516102d79190612e51565b60405180910390f35b3480156102eb575f80fd5b5061030660048036038101906103019190612e6a565b61098c565b6040516103139190612e29565b60405180910390f35b348015610327575f80fd5b506103306109ba565b60405161033d9190612e51565b60405180910390f35b348015610351575f80fd5b5061035a6109c0565b6040516103679190612ed5565b60405180910390f35b34801561037b575f80fd5b506103966004803603810190610391919061302e565b6109c8565b005b3480156103a3575f80fd5b506103be60048036038101906103b99190612dd1565b610a5a565b6040516103cb9190612e29565b60405180910390f35b3480156103df575f80fd5b506103e8610a90565b6040516103f59190613084565b60405180910390f35b348015610409575f80fd5b50610424600480360381019061041f919061309d565b610ab5565b6040516104319190612e29565b60405180910390f35b348015610445575f80fd5b50610460600480360381019061045b91906130c8565b610b07565b005b34801561046d575f80fd5b50610476610bea565b604051610483919061314e565b60405180910390f35b348015610497575f80fd5b506104a0610c0e565b6040516104ad9190612e29565b60405180910390f35b3480156104c1575f80fd5b506104dc60048036038101906104d7919061309d565b610c21565b6040516104e99190612e51565b60405180910390f35b3480156104fd575f80fd5b50610506610c66565b005b348015610513575f80fd5b5061051c610c79565b005b348015610529575f80fd5b50610544600480360381019061053f9190613191565b610c9d565b005b348015610551575f80fd5b5061055a610cfd565b6040516105679190613084565b60405180910390f35b34801561057b575f80fd5b50610584610d25565b005b348015610591575f80fd5b5061059a610e0c565b6040516105a79190612d57565b60405180910390f35b3480156105bb575f80fd5b506105d660048036038101906105d19190613191565b610e9c565b005b3480156105e3575f80fd5b506105fe60048036038101906105f99190612dd1565b610f41565b60405161060b9190612e29565b60405180910390f35b34801561061f575f80fd5b5061063a60048036038101906106359190612dd1565b610fb6565b6040516106479190612e29565b60405180910390f35b34801561065b575f80fd5b50610676600480360381019061067191906130c8565b610fd8565b005b348015610683575f80fd5b5061069e60048036038101906106999190613191565b610ffd565b005b3480156106ab575f80fd5b506106b46110ab565b6040516106c19190612e51565b60405180910390f35b3480156106d5575f80fd5b506106de6110b1565b005b3480156106eb575f80fd5b506106f461153d565b6040516107019190612e51565b60405180910390f35b348015610715575f80fd5b50610730600480360381019061072b919061302e565b611543565b005b34801561073d575f80fd5b506107586004803603810190610753919061320a565b6115d6565b005b348015610765575f80fd5b50610780600480360381019061077b9190613235565b611774565b60405161078d9190612e51565b60405180910390f35b3480156107a1575f80fd5b506107aa6117f6565b6040516107b79190612e51565b60405180910390f35b3480156107cb575f80fd5b506107d46117fc565b6040516107e19190612e51565b60405180910390f35b3480156107f5575f80fd5b50610810600480360381019061080b919061309d565b611802565b005b34801561081d575f80fd5b50610826611884565b6040516108339190612e51565b60405180910390f35b348015610847575f80fd5b5061085061188a565b60405161085d9190612e29565b60405180910390f35b61086e61189c565b601e8211158015610880575060638111155b6108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b6906132bd565b60405180910390fd5b81600f81905550806010819055505050565b6060600380546108e090613308565b80601f016020809104026020016040519081016040528092919081815260200182805461090c90613308565b80156109575780601f1061092e57610100808354040283529160200191610957565b820191905f5260205f20905b81548152906001019060200180831161093a57829003601f168201915b5050505050905090565b5f8061096b61191a565b9050610978818585611921565b600191505092915050565b5f600254905090565b5f8061099661191a565b90506109a3858285611ae4565b6109ae858585611b6f565b60019150509392505050565b600a5481565b5f6012905090565b6109d061189c565b5f5b8151811015610a56575f60095f8484815181106109f2576109f1613338565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506109d2565b5050565b5f80610a6461191a565b9050610a85818585610a768589611774565b610a809190613392565b611921565b600191505092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b4761191a565b73ffffffffffffffffffffffffffffffffffffffff1614610b66575f80fd5b5f610b6f610983565b90505f610b7b30610c21565b90505f60648484610b8c91906133c5565b610b969190613433565b905080821015610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd2906134ad565b60405180910390fd5b610be4816124f7565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600e60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c6e61189c565b610c775f61274b565b565b610c8161189c565b5f610c8a610983565b905080600b8190555080600c8190555050565b610ca561189c565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f4711610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e90613515565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610da761191a565b73ffffffffffffffffffffffffffffffffffffffff1614610dc6575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610e09573d5f803e3d5ffd5b50565b606060048054610e1b90613308565b80601f0160208091040260200160405190810160405280929190818152602001828054610e4790613308565b8015610e925780601f10610e6957610100808354040283529160200191610e92565b820191905f5260205f20905b815481529060010190602001808311610e7557829003601f168201915b5050505050905090565b610ea461189c565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2a906135a3565b60405180910390fd5b610f3d828261280e565b5050565b5f80610f4b61191a565b90505f610f588286611774565b905083811015610f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9490613631565b60405180910390fd5b610faa8286868403611921565b60019250505092915050565b5f80610fc061191a565b9050610fcd818585611b6f565b600191505092915050565b610fe061189c565b670de0b6b3a764000081610ff491906133c5565b600d8190555050565b61100561189c565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161109f9190612e29565b60405180910390a25050565b600b5481565b6110b961189c565b600e5f9054906101000a900460ff1615611108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ff90613699565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611171573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119591906136cb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561121a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123e91906136cb565b6040518363ffffffff1660e01b815260040161125b9291906136f6565b6020604051808303815f875af1158015611277573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061129b91906136cb565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061130660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610c9d565b61133260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161280e565b61135f307f0000000000000000000000000000000000000000000000000000000000000000600a54611921565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113b960506113ab30610c21565b6128ac90919063ffffffff16565b5f806113c3610cfd565b426040518863ffffffff1660e01b81526004016113e596959493929190613756565b60606040518083038185885af1158015611401573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061142691906137c9565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114c5929190613819565b6020604051808303815f875af11580156114e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115059190613854565b506001600e60016101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff021916908315150217905550565b60105481565b61154b61189c565b5f5b81518110156115d257600160095f84848151811061156e5761156d613338565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061154d565b5050565b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116109190613084565b602060405180830381865afa15801561162b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164f919061387f565b90505f8111611693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168a906138f4565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116d361191a565b73ffffffffffffffffffffffffffffffffffffffff16146116f2575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead836040518363ffffffff1660e01b815260040161172f929190613819565b6020604051808303815f875af115801561174b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176f9190613854565b505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600f5481565b600d5481565b61180a61189c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186f90613982565b60405180910390fd5b6118818161274b565b50565b600c5481565b600e5f9054906101000a900460ff1681565b6118a461191a565b73ffffffffffffffffffffffffffffffffffffffff166118c2610cfd565b73ffffffffffffffffffffffffffffffffffffffff1614611918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190f906139ea565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361198f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198690613a78565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f490613b06565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ad79190612e51565b60405180910390a3505050565b5f611aef8484611774565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611b695781811015611b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5290613b6e565b60405180910390fd5b611b688484848403611921565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd490613bfc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4290613c8a565b60405180910390fd5b5f8103611c6257611c5d83835f612911565b6124f2565b611c6a610cfd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cd85750611ca8610cfd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d1057505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d4a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d635750600860149054906101000a900460ff16155b156121d65760095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e06575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611e0e575f80fd5b600e5f9054906101000a900460ff16611efc5760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611ebc575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef290613cf2565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f99575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561204057600b54811115611fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fda90613d80565b60405180910390fd5b600c54611fef83610c21565b82611ffa9190613392565b111561203b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203290613de8565b60405180910390fd5b6121d5565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156120dd575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561212c57600b54811115612127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211e90613e76565b60405180910390fd5b6121d4565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166121d357600c5461218683610c21565b826121919190613392565b11156121d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c990613de8565b60405180910390fd5b5b5b5b5b5f6121e030610c21565b90505f80821190508080156122015750600e60019054906101000a900460ff165b801561221a5750600860149054906101000a900460ff16155b801561226d575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156122c0575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612313575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612357576001600860146101000a81548160ff02191690831515021790555061233c83612b7d565b5f600860146101000a81548160ff0219169083151502179055505b5f600860149054906101000a900460ff1615905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612406575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561240f575f90505b5f81156124e25760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156124945761248d606461247f60105488612c1790919063ffffffff16565b612c2c90919063ffffffff16565b90506124bf565b6124bc60646124ae600f5488612c1790919063ffffffff16565b612c2c90919063ffffffff16565b90505b5f8111156124d3576124d2873083612911565b5b80856124df9190613e94565b94505b6124ed878787612911565b505050505b505050565b5f600267ffffffffffffffff81111561251357612512612ef2565b5b6040519080825280602002602001820160405280156125415781602001602082028036833780820191505090505b50905030815f8151811061255857612557613338565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061261f91906136cb565b8160018151811061263357612632613338565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612698307f000000000000000000000000000000000000000000000000000000000000000084611921565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161271a959493929190613f7e565b5f604051808303815f87803b158015612731575f80fd5b505af1158015612743573d5f803e3d5ffd5b505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60648211156128f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e890614046565b60405180910390fd5b606482846128ff91906133c5565b6129099190613433565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361297f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297690613bfc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e490613c8a565b60405180910390fd5b6129f8838383612c41565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a72906140d4565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b649190612e51565b60405180910390a3612b77848484612c46565b50505050565b5f612b8730610c21565b90505f808203612b98575050612c14565b5f82118015612ba85750600d5482105b15612bb557819050612c08565b5f612bde6064612bd060105487612c1790919063ffffffff16565b612c2c90919063ffffffff16565b90508084612bec9190613e94565b9350600d54841115612c0257600d549150612c06565b8391505b505b612c11816124f7565b50505b50565b5f8183612c2491906133c5565b905092915050565b5f8183612c399190613433565b905092915050565b505050565b505050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b612c6e81612c5c565b8114612c78575f80fd5b50565b5f81359050612c8981612c65565b92915050565b5f8060408385031215612ca557612ca4612c54565b5b5f612cb285828601612c7b565b9250506020612cc385828601612c7b565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612d04578082015181840152602081019050612ce9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612d2982612ccd565b612d338185612cd7565b9350612d43818560208601612ce7565b612d4c81612d0f565b840191505092915050565b5f6020820190508181035f830152612d6f8184612d1f565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612da082612d77565b9050919050565b612db081612d96565b8114612dba575f80fd5b50565b5f81359050612dcb81612da7565b92915050565b5f8060408385031215612de757612de6612c54565b5b5f612df485828601612dbd565b9250506020612e0585828601612c7b565b9150509250929050565b5f8115159050919050565b612e2381612e0f565b82525050565b5f602082019050612e3c5f830184612e1a565b92915050565b612e4b81612c5c565b82525050565b5f602082019050612e645f830184612e42565b92915050565b5f805f60608486031215612e8157612e80612c54565b5b5f612e8e86828701612dbd565b9350506020612e9f86828701612dbd565b9250506040612eb086828701612c7b565b9150509250925092565b5f60ff82169050919050565b612ecf81612eba565b82525050565b5f602082019050612ee85f830184612ec6565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f2882612d0f565b810181811067ffffffffffffffff82111715612f4757612f46612ef2565b5b80604052505050565b5f612f59612c4b565b9050612f658282612f1f565b919050565b5f67ffffffffffffffff821115612f8457612f83612ef2565b5b602082029050602081019050919050565b5f80fd5b5f612fab612fa684612f6a565b612f50565b90508083825260208201905060208402830185811115612fce57612fcd612f95565b5b835b81811015612ff75780612fe38882612dbd565b845260208401935050602081019050612fd0565b5050509392505050565b5f82601f83011261301557613014612eee565b5b8135613025848260208601612f99565b91505092915050565b5f6020828403121561304357613042612c54565b5b5f82013567ffffffffffffffff8111156130605761305f612c58565b5b61306c84828501613001565b91505092915050565b61307e81612d96565b82525050565b5f6020820190506130975f830184613075565b92915050565b5f602082840312156130b2576130b1612c54565b5b5f6130bf84828501612dbd565b91505092915050565b5f602082840312156130dd576130dc612c54565b5b5f6130ea84828501612c7b565b91505092915050565b5f819050919050565b5f61311661311161310c84612d77565b6130f3565b612d77565b9050919050565b5f613127826130fc565b9050919050565b5f6131388261311d565b9050919050565b6131488161312e565b82525050565b5f6020820190506131615f83018461313f565b92915050565b61317081612e0f565b811461317a575f80fd5b50565b5f8135905061318b81613167565b92915050565b5f80604083850312156131a7576131a6612c54565b5b5f6131b485828601612dbd565b92505060206131c58582860161317d565b9150509250929050565b5f6131d982612d96565b9050919050565b6131e9816131cf565b81146131f3575f80fd5b50565b5f81359050613204816131e0565b92915050565b5f6020828403121561321f5761321e612c54565b5b5f61322c848285016131f6565b91505092915050565b5f806040838503121561324b5761324a612c54565b5b5f61325885828601612dbd565b925050602061326985828601612dbd565b9150509250929050565b7f466565732063616e6e6f742065786365656420333025000000000000000000005f82015250565b5f6132a7601683612cd7565b91506132b282613273565b602082019050919050565b5f6020820190508181035f8301526132d48161329b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061331f57607f821691505b602082108103613332576133316132db565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61339c82612c5c565b91506133a783612c5c565b92508282019050808211156133bf576133be613365565b5b92915050565b5f6133cf82612c5c565b91506133da83612c5c565b92508282026133e881612c5c565b915082820484148315176133ff576133fe613365565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61343d82612c5c565b915061344883612c5c565b92508261345857613457613406565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e730000000000000000000000000000005f82015250565b5f613497601183612cd7565b91506134a282613463565b602082019050919050565b5f6020820190508181035f8301526134c48161348b565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f6134ff601683612cd7565b915061350a826134cb565b602082019050919050565b5f6020820190508181035f83015261352c816134f3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f61358d603983612cd7565b915061359882613533565b604082019050919050565b5f6020820190508181035f8301526135ba81613581565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61361b602583612cd7565b9150613626826135c1565b604082019050919050565b5f6020820190508181035f8301526136488161360f565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f613683601783612cd7565b915061368e8261364f565b602082019050919050565b5f6020820190508181035f8301526136b081613677565b9050919050565b5f815190506136c581612da7565b92915050565b5f602082840312156136e0576136df612c54565b5b5f6136ed848285016136b7565b91505092915050565b5f6040820190506137095f830185613075565b6137166020830184613075565b9392505050565b5f819050919050565b5f61374061373b6137368461371d565b6130f3565b612c5c565b9050919050565b61375081613726565b82525050565b5f60c0820190506137695f830189613075565b6137766020830188612e42565b6137836040830187613747565b6137906060830186613747565b61379d6080830185613075565b6137aa60a0830184612e42565b979650505050505050565b5f815190506137c381612c65565b92915050565b5f805f606084860312156137e0576137df612c54565b5b5f6137ed868287016137b5565b93505060206137fe868287016137b5565b925050604061380f868287016137b5565b9150509250925092565b5f60408201905061382c5f830185613075565b6138396020830184612e42565b9392505050565b5f8151905061384e81613167565b92915050565b5f6020828403121561386957613868612c54565b5b5f61387684828501613840565b91505092915050565b5f6020828403121561389457613893612c54565b5b5f6138a1848285016137b5565b91505092915050565b7f546f6b656e3a206e6f20746f6b656e7320746f206275726e00000000000000005f82015250565b5f6138de601883612cd7565b91506138e9826138aa565b602082019050919050565b5f6020820190508181035f83015261390b816138d2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61396c602683612cd7565b915061397782613912565b604082019050919050565b5f6020820190508181035f83015261399981613960565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6139d4602083612cd7565b91506139df826139a0565b602082019050919050565b5f6020820190508181035f830152613a01816139c8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613a62602483612cd7565b9150613a6d82613a08565b604082019050919050565b5f6020820190508181035f830152613a8f81613a56565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613af0602283612cd7565b9150613afb82613a96565b604082019050919050565b5f6020820190508181035f830152613b1d81613ae4565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613b58601d83612cd7565b9150613b6382613b24565b602082019050919050565b5f6020820190508181035f830152613b8581613b4c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613be6602583612cd7565b9150613bf182613b8c565b604082019050919050565b5f6020820190508181035f830152613c1381613bda565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613c74602383612cd7565b9150613c7f82613c1a565b604082019050919050565b5f6020820190508181035f830152613ca181613c68565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613cdc601683612cd7565b9150613ce782613ca8565b602082019050919050565b5f6020820190508181035f830152613d0981613cd0565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613d6a603583612cd7565b9150613d7582613d10565b604082019050919050565b5f6020820190508181035f830152613d9781613d5e565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613dd2601383612cd7565b9150613ddd82613d9e565b602082019050919050565b5f6020820190508181035f830152613dff81613dc6565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613e60603683612cd7565b9150613e6b82613e06565b604082019050919050565b5f6020820190508181035f830152613e8d81613e54565b9050919050565b5f613e9e82612c5c565b9150613ea983612c5c565b9250828203905081811115613ec157613ec0613365565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ef981612d96565b82525050565b5f613f0a8383613ef0565b60208301905092915050565b5f602082019050919050565b5f613f2c82613ec7565b613f368185613ed1565b9350613f4183613ee1565b805f5b83811015613f71578151613f588882613eff565b9750613f6383613f16565b925050600181019050613f44565b5085935050505092915050565b5f60a082019050613f915f830188612e42565b613f9e6020830187613747565b8181036040830152613fb08186613f22565b9050613fbf6060830185613075565b613fcc6080830184612e42565b9695505050505050565b7f50657263656e74616765206d757374206265206265747765656e203020616e645f8201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b5f614030602483612cd7565b915061403b82613fd6565b604082019050919050565b5f6020820190508181035f83015261405d81614024565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6140be602683612cd7565b91506140c982614064565b604082019050919050565b5f6020820190508181035f8301526140eb816140b2565b905091905056fea2646970667358221220f6a096fbad8cd93ec23f7f28b416cb75b9d7c3d7c8a102784203e0e27fc903bb64736f6c634300081600330000000000000000000000001a3bb58c728a07eded2279ce2dc524b8dbbc73ab
Deployed Bytecode
0x60806040526004361061021d575f3560e01c80638da5cb5b11610122578063c9567bf9116100aa578063dd8546521161006e578063dd85465214610796578063e2f45605146107c0578063f2fde38b146107ea578063f8b45b0514610812578063ffb54a991461083c57610224565b8063c9567bf9146106ca578063cf9522fd146106e0578063d34628cc1461070a578063db1b718214610732578063dd62ed3e1461075a57610224565b8063a457c2d7116100f1578063a457c2d7146105d8578063a9059cbb14610614578063afa4f3b214610650578063c024666814610678578063c8c8ebe4146106a057610224565b80638da5cb5b1461054657806394f153841461057057806395d89b41146105865780639a7a23d6146105b057610224565b806349bd5a5e116101a55780636ddd1713116101745780636ddd17131461048c57806370a08231146104b6578063715018a6146104f2578063751039fc146105085780637571336a1461051e57610224565b806349bd5a5e146103d45780634fbee193146103fe578063500b9aa21461043a578063583e05681461046257610224565b806323b872dd116101ec57806323b872dd146102e0578063311028af1461031c578063313ce5671461034657806331c2d84714610370578063395093511461039857610224565b8063032dc6a21461022857806306fdde0314610250578063095ea7b31461027a57806318160ddd146102b657610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061024e60048036038101906102499190612c8f565b610866565b005b34801561025b575f80fd5b506102646108d1565b6040516102719190612d57565b60405180910390f35b348015610285575f80fd5b506102a0600480360381019061029b9190612dd1565b610961565b6040516102ad9190612e29565b60405180910390f35b3480156102c1575f80fd5b506102ca610983565b6040516102d79190612e51565b60405180910390f35b3480156102eb575f80fd5b5061030660048036038101906103019190612e6a565b61098c565b6040516103139190612e29565b60405180910390f35b348015610327575f80fd5b506103306109ba565b60405161033d9190612e51565b60405180910390f35b348015610351575f80fd5b5061035a6109c0565b6040516103679190612ed5565b60405180910390f35b34801561037b575f80fd5b506103966004803603810190610391919061302e565b6109c8565b005b3480156103a3575f80fd5b506103be60048036038101906103b99190612dd1565b610a5a565b6040516103cb9190612e29565b60405180910390f35b3480156103df575f80fd5b506103e8610a90565b6040516103f59190613084565b60405180910390f35b348015610409575f80fd5b50610424600480360381019061041f919061309d565b610ab5565b6040516104319190612e29565b60405180910390f35b348015610445575f80fd5b50610460600480360381019061045b91906130c8565b610b07565b005b34801561046d575f80fd5b50610476610bea565b604051610483919061314e565b60405180910390f35b348015610497575f80fd5b506104a0610c0e565b6040516104ad9190612e29565b60405180910390f35b3480156104c1575f80fd5b506104dc60048036038101906104d7919061309d565b610c21565b6040516104e99190612e51565b60405180910390f35b3480156104fd575f80fd5b50610506610c66565b005b348015610513575f80fd5b5061051c610c79565b005b348015610529575f80fd5b50610544600480360381019061053f9190613191565b610c9d565b005b348015610551575f80fd5b5061055a610cfd565b6040516105679190613084565b60405180910390f35b34801561057b575f80fd5b50610584610d25565b005b348015610591575f80fd5b5061059a610e0c565b6040516105a79190612d57565b60405180910390f35b3480156105bb575f80fd5b506105d660048036038101906105d19190613191565b610e9c565b005b3480156105e3575f80fd5b506105fe60048036038101906105f99190612dd1565b610f41565b60405161060b9190612e29565b60405180910390f35b34801561061f575f80fd5b5061063a60048036038101906106359190612dd1565b610fb6565b6040516106479190612e29565b60405180910390f35b34801561065b575f80fd5b50610676600480360381019061067191906130c8565b610fd8565b005b348015610683575f80fd5b5061069e60048036038101906106999190613191565b610ffd565b005b3480156106ab575f80fd5b506106b46110ab565b6040516106c19190612e51565b60405180910390f35b3480156106d5575f80fd5b506106de6110b1565b005b3480156106eb575f80fd5b506106f461153d565b6040516107019190612e51565b60405180910390f35b348015610715575f80fd5b50610730600480360381019061072b919061302e565b611543565b005b34801561073d575f80fd5b506107586004803603810190610753919061320a565b6115d6565b005b348015610765575f80fd5b50610780600480360381019061077b9190613235565b611774565b60405161078d9190612e51565b60405180910390f35b3480156107a1575f80fd5b506107aa6117f6565b6040516107b79190612e51565b60405180910390f35b3480156107cb575f80fd5b506107d46117fc565b6040516107e19190612e51565b60405180910390f35b3480156107f5575f80fd5b50610810600480360381019061080b919061309d565b611802565b005b34801561081d575f80fd5b50610826611884565b6040516108339190612e51565b60405180910390f35b348015610847575f80fd5b5061085061188a565b60405161085d9190612e29565b60405180910390f35b61086e61189c565b601e8211158015610880575060638111155b6108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b6906132bd565b60405180910390fd5b81600f81905550806010819055505050565b6060600380546108e090613308565b80601f016020809104026020016040519081016040528092919081815260200182805461090c90613308565b80156109575780601f1061092e57610100808354040283529160200191610957565b820191905f5260205f20905b81548152906001019060200180831161093a57829003601f168201915b5050505050905090565b5f8061096b61191a565b9050610978818585611921565b600191505092915050565b5f600254905090565b5f8061099661191a565b90506109a3858285611ae4565b6109ae858585611b6f565b60019150509392505050565b600a5481565b5f6012905090565b6109d061189c565b5f5b8151811015610a56575f60095f8484815181106109f2576109f1613338565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506109d2565b5050565b5f80610a6461191a565b9050610a85818585610a768589611774565b610a809190613392565b611921565b600191505092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b4761191a565b73ffffffffffffffffffffffffffffffffffffffff1614610b66575f80fd5b5f610b6f610983565b90505f610b7b30610c21565b90505f60648484610b8c91906133c5565b610b969190613433565b905080821015610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd2906134ad565b60405180910390fd5b610be4816124f7565b50505050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600e60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c6e61189c565b610c775f61274b565b565b610c8161189c565b5f610c8a610983565b905080600b8190555080600c8190555050565b610ca561189c565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f4711610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e90613515565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610da761191a565b73ffffffffffffffffffffffffffffffffffffffff1614610dc6575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610e09573d5f803e3d5ffd5b50565b606060048054610e1b90613308565b80601f0160208091040260200160405190810160405280929190818152602001828054610e4790613308565b8015610e925780601f10610e6957610100808354040283529160200191610e92565b820191905f5260205f20905b815481529060010190602001808311610e7557829003601f168201915b5050505050905090565b610ea461189c565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2a906135a3565b60405180910390fd5b610f3d828261280e565b5050565b5f80610f4b61191a565b90505f610f588286611774565b905083811015610f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9490613631565b60405180910390fd5b610faa8286868403611921565b60019250505092915050565b5f80610fc061191a565b9050610fcd818585611b6f565b600191505092915050565b610fe061189c565b670de0b6b3a764000081610ff491906133c5565b600d8190555050565b61100561189c565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161109f9190612e29565b60405180910390a25050565b600b5481565b6110b961189c565b600e5f9054906101000a900460ff1615611108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ff90613699565b60405180910390fd5b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611171573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119591906136cb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561121a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123e91906136cb565b6040518363ffffffff1660e01b815260040161125b9291906136f6565b6020604051808303815f875af1158015611277573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061129b91906136cb565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061130660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610c9d565b61133260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161280e565b61135f307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d600a54611921565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113b960506113ab30610c21565b6128ac90919063ffffffff16565b5f806113c3610cfd565b426040518863ffffffff1660e01b81526004016113e596959493929190613756565b60606040518083038185885af1158015611401573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061142691906137c9565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114c5929190613819565b6020604051808303815f875af11580156114e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115059190613854565b506001600e60016101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff021916908315150217905550565b60105481565b61154b61189c565b5f5b81518110156115d257600160095f84848151811061156e5761156d613338565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061154d565b5050565b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116109190613084565b602060405180830381865afa15801561162b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164f919061387f565b90505f8111611693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168a906138f4565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116d361191a565b73ffffffffffffffffffffffffffffffffffffffff16146116f2575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead836040518363ffffffff1660e01b815260040161172f929190613819565b6020604051808303815f875af115801561174b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176f9190613854565b505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600f5481565b600d5481565b61180a61189c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186f90613982565b60405180910390fd5b6118818161274b565b50565b600c5481565b600e5f9054906101000a900460ff1681565b6118a461191a565b73ffffffffffffffffffffffffffffffffffffffff166118c2610cfd565b73ffffffffffffffffffffffffffffffffffffffff1614611918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190f906139ea565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361198f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198690613a78565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f490613b06565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ad79190612e51565b60405180910390a3505050565b5f611aef8484611774565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611b695781811015611b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5290613b6e565b60405180910390fd5b611b688484848403611921565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd490613bfc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4290613c8a565b60405180910390fd5b5f8103611c6257611c5d83835f612911565b6124f2565b611c6a610cfd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cd85750611ca8610cfd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d1057505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d4a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d635750600860149054906101000a900460ff16155b156121d65760095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e06575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611e0e575f80fd5b600e5f9054906101000a900460ff16611efc5760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611ebc575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef290613cf2565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f99575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561204057600b54811115611fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fda90613d80565b60405180910390fd5b600c54611fef83610c21565b82611ffa9190613392565b111561203b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203290613de8565b60405180910390fd5b6121d5565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156120dd575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561212c57600b54811115612127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211e90613e76565b60405180910390fd5b6121d4565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166121d357600c5461218683610c21565b826121919190613392565b11156121d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c990613de8565b60405180910390fd5b5b5b5b5b5f6121e030610c21565b90505f80821190508080156122015750600e60019054906101000a900460ff165b801561221a5750600860149054906101000a900460ff16155b801561226d575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156122c0575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612313575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612357576001600860146101000a81548160ff02191690831515021790555061233c83612b7d565b5f600860146101000a81548160ff0219169083151502179055505b5f600860149054906101000a900460ff1615905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612406575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561240f575f90505b5f81156124e25760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156124945761248d606461247f60105488612c1790919063ffffffff16565b612c2c90919063ffffffff16565b90506124bf565b6124bc60646124ae600f5488612c1790919063ffffffff16565b612c2c90919063ffffffff16565b90505b5f8111156124d3576124d2873083612911565b5b80856124df9190613e94565b94505b6124ed878787612911565b505050505b505050565b5f600267ffffffffffffffff81111561251357612512612ef2565b5b6040519080825280602002602001820160405280156125415781602001602082028036833780820191505090505b50905030815f8151811061255857612557613338565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061261f91906136cb565b8160018151811061263357612632613338565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612698307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611921565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161271a959493929190613f7e565b5f604051808303815f87803b158015612731575f80fd5b505af1158015612743573d5f803e3d5ffd5b505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60648211156128f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e890614046565b60405180910390fd5b606482846128ff91906133c5565b6129099190613433565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361297f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297690613bfc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e490613c8a565b60405180910390fd5b6129f8838383612c41565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a72906140d4565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b649190612e51565b60405180910390a3612b77848484612c46565b50505050565b5f612b8730610c21565b90505f808203612b98575050612c14565b5f82118015612ba85750600d5482105b15612bb557819050612c08565b5f612bde6064612bd060105487612c1790919063ffffffff16565b612c2c90919063ffffffff16565b90508084612bec9190613e94565b9350600d54841115612c0257600d549150612c06565b8391505b505b612c11816124f7565b50505b50565b5f8183612c2491906133c5565b905092915050565b5f8183612c399190613433565b905092915050565b505050565b505050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b612c6e81612c5c565b8114612c78575f80fd5b50565b5f81359050612c8981612c65565b92915050565b5f8060408385031215612ca557612ca4612c54565b5b5f612cb285828601612c7b565b9250506020612cc385828601612c7b565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612d04578082015181840152602081019050612ce9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612d2982612ccd565b612d338185612cd7565b9350612d43818560208601612ce7565b612d4c81612d0f565b840191505092915050565b5f6020820190508181035f830152612d6f8184612d1f565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612da082612d77565b9050919050565b612db081612d96565b8114612dba575f80fd5b50565b5f81359050612dcb81612da7565b92915050565b5f8060408385031215612de757612de6612c54565b5b5f612df485828601612dbd565b9250506020612e0585828601612c7b565b9150509250929050565b5f8115159050919050565b612e2381612e0f565b82525050565b5f602082019050612e3c5f830184612e1a565b92915050565b612e4b81612c5c565b82525050565b5f602082019050612e645f830184612e42565b92915050565b5f805f60608486031215612e8157612e80612c54565b5b5f612e8e86828701612dbd565b9350506020612e9f86828701612dbd565b9250506040612eb086828701612c7b565b9150509250925092565b5f60ff82169050919050565b612ecf81612eba565b82525050565b5f602082019050612ee85f830184612ec6565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f2882612d0f565b810181811067ffffffffffffffff82111715612f4757612f46612ef2565b5b80604052505050565b5f612f59612c4b565b9050612f658282612f1f565b919050565b5f67ffffffffffffffff821115612f8457612f83612ef2565b5b602082029050602081019050919050565b5f80fd5b5f612fab612fa684612f6a565b612f50565b90508083825260208201905060208402830185811115612fce57612fcd612f95565b5b835b81811015612ff75780612fe38882612dbd565b845260208401935050602081019050612fd0565b5050509392505050565b5f82601f83011261301557613014612eee565b5b8135613025848260208601612f99565b91505092915050565b5f6020828403121561304357613042612c54565b5b5f82013567ffffffffffffffff8111156130605761305f612c58565b5b61306c84828501613001565b91505092915050565b61307e81612d96565b82525050565b5f6020820190506130975f830184613075565b92915050565b5f602082840312156130b2576130b1612c54565b5b5f6130bf84828501612dbd565b91505092915050565b5f602082840312156130dd576130dc612c54565b5b5f6130ea84828501612c7b565b91505092915050565b5f819050919050565b5f61311661311161310c84612d77565b6130f3565b612d77565b9050919050565b5f613127826130fc565b9050919050565b5f6131388261311d565b9050919050565b6131488161312e565b82525050565b5f6020820190506131615f83018461313f565b92915050565b61317081612e0f565b811461317a575f80fd5b50565b5f8135905061318b81613167565b92915050565b5f80604083850312156131a7576131a6612c54565b5b5f6131b485828601612dbd565b92505060206131c58582860161317d565b9150509250929050565b5f6131d982612d96565b9050919050565b6131e9816131cf565b81146131f3575f80fd5b50565b5f81359050613204816131e0565b92915050565b5f6020828403121561321f5761321e612c54565b5b5f61322c848285016131f6565b91505092915050565b5f806040838503121561324b5761324a612c54565b5b5f61325885828601612dbd565b925050602061326985828601612dbd565b9150509250929050565b7f466565732063616e6e6f742065786365656420333025000000000000000000005f82015250565b5f6132a7601683612cd7565b91506132b282613273565b602082019050919050565b5f6020820190508181035f8301526132d48161329b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061331f57607f821691505b602082108103613332576133316132db565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61339c82612c5c565b91506133a783612c5c565b92508282019050808211156133bf576133be613365565b5b92915050565b5f6133cf82612c5c565b91506133da83612c5c565b92508282026133e881612c5c565b915082820484148315176133ff576133fe613365565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61343d82612c5c565b915061344883612c5c565b92508261345857613457613406565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e730000000000000000000000000000005f82015250565b5f613497601183612cd7565b91506134a282613463565b602082019050919050565b5f6020820190508181035f8301526134c48161348b565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f6134ff601683612cd7565b915061350a826134cb565b602082019050919050565b5f6020820190508181035f83015261352c816134f3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f61358d603983612cd7565b915061359882613533565b604082019050919050565b5f6020820190508181035f8301526135ba81613581565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61361b602583612cd7565b9150613626826135c1565b604082019050919050565b5f6020820190508181035f8301526136488161360f565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f613683601783612cd7565b915061368e8261364f565b602082019050919050565b5f6020820190508181035f8301526136b081613677565b9050919050565b5f815190506136c581612da7565b92915050565b5f602082840312156136e0576136df612c54565b5b5f6136ed848285016136b7565b91505092915050565b5f6040820190506137095f830185613075565b6137166020830184613075565b9392505050565b5f819050919050565b5f61374061373b6137368461371d565b6130f3565b612c5c565b9050919050565b61375081613726565b82525050565b5f60c0820190506137695f830189613075565b6137766020830188612e42565b6137836040830187613747565b6137906060830186613747565b61379d6080830185613075565b6137aa60a0830184612e42565b979650505050505050565b5f815190506137c381612c65565b92915050565b5f805f606084860312156137e0576137df612c54565b5b5f6137ed868287016137b5565b93505060206137fe868287016137b5565b925050604061380f868287016137b5565b9150509250925092565b5f60408201905061382c5f830185613075565b6138396020830184612e42565b9392505050565b5f8151905061384e81613167565b92915050565b5f6020828403121561386957613868612c54565b5b5f61387684828501613840565b91505092915050565b5f6020828403121561389457613893612c54565b5b5f6138a1848285016137b5565b91505092915050565b7f546f6b656e3a206e6f20746f6b656e7320746f206275726e00000000000000005f82015250565b5f6138de601883612cd7565b91506138e9826138aa565b602082019050919050565b5f6020820190508181035f83015261390b816138d2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61396c602683612cd7565b915061397782613912565b604082019050919050565b5f6020820190508181035f83015261399981613960565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6139d4602083612cd7565b91506139df826139a0565b602082019050919050565b5f6020820190508181035f830152613a01816139c8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613a62602483612cd7565b9150613a6d82613a08565b604082019050919050565b5f6020820190508181035f830152613a8f81613a56565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613af0602283612cd7565b9150613afb82613a96565b604082019050919050565b5f6020820190508181035f830152613b1d81613ae4565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613b58601d83612cd7565b9150613b6382613b24565b602082019050919050565b5f6020820190508181035f830152613b8581613b4c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613be6602583612cd7565b9150613bf182613b8c565b604082019050919050565b5f6020820190508181035f830152613c1381613bda565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613c74602383612cd7565b9150613c7f82613c1a565b604082019050919050565b5f6020820190508181035f830152613ca181613c68565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613cdc601683612cd7565b9150613ce782613ca8565b602082019050919050565b5f6020820190508181035f830152613d0981613cd0565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613d6a603583612cd7565b9150613d7582613d10565b604082019050919050565b5f6020820190508181035f830152613d9781613d5e565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613dd2601383612cd7565b9150613ddd82613d9e565b602082019050919050565b5f6020820190508181035f830152613dff81613dc6565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613e60603683612cd7565b9150613e6b82613e06565b604082019050919050565b5f6020820190508181035f830152613e8d81613e54565b9050919050565b5f613e9e82612c5c565b9150613ea983612c5c565b9250828203905081811115613ec157613ec0613365565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ef981612d96565b82525050565b5f613f0a8383613ef0565b60208301905092915050565b5f602082019050919050565b5f613f2c82613ec7565b613f368185613ed1565b9350613f4183613ee1565b805f5b83811015613f71578151613f588882613eff565b9750613f6383613f16565b925050600181019050613f44565b5085935050505092915050565b5f60a082019050613f915f830188612e42565b613f9e6020830187613747565b8181036040830152613fb08186613f22565b9050613fbf6060830185613075565b613fcc6080830184612e42565b9695505050505050565b7f50657263656e74616765206d757374206265206265747765656e203020616e645f8201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b5f614030602483612cd7565b915061403b82613fd6565b604082019050919050565b5f6020820190508181035f83015261405d81614024565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6140be602683612cd7565b91506140c982614064565b604082019050919050565b5f6020820190508181035f8301526140eb816140b2565b905091905056fea2646970667358221220f6a096fbad8cd93ec23f7f28b416cb75b9d7c3d7c8a102784203e0e27fc903bb64736f6c63430008160033
Deployed Bytecode Sourcemap
16126:9210:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24482:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11354:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12286:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11675:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12495:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16613:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11574:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20131:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12764:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16266:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19822:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24068:406;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16207:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16880:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11791:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2453:103;;;;;;;;;;;;;:::i;:::-;;23171:194;;;;;;;;;;;;;:::i;:::-;;18990:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2218:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23373:226;;;;;;;;;;;;;:::i;:::-;;11462:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19355:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13010:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11926:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23933:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19165:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16673:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18245:739;;;;;;;;;;;;;:::i;:::-;;16953:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19956:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23607:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12127:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16920:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16782:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2564:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16733:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16842:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24482:211;2177:13;:11;:13::i;:::-;24582:2:::1;24571:7;:13;;:31;;;;;24600:2;24588:8;:14;;24571:31;24563:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;24649:7;24640:6;:16;;;;24677:8;24667:7;:18;;;;24482:211:::0;;:::o;11354:100::-;11408:13;11441:5;11434:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11354:100;:::o;12286:201::-;12369:4;12386:13;12402:12;:10;:12::i;:::-;12386:28;;12425:32;12434:5;12441:7;12450:6;12425:8;:32::i;:::-;12475:4;12468:11;;;12286:201;;;;:::o;11675:108::-;11736:7;11763:12;;11756:19;;11675:108;:::o;12495:261::-;12592:4;12609:15;12627:12;:10;:12::i;:::-;12609:30;;12650:38;12666:4;12672:7;12681:6;12650:15;:38::i;:::-;12699:27;12709:4;12715:2;12719:6;12699:9;:27::i;:::-;12744:4;12737:11;;;12495:261;;;;;:::o;16613:53::-;;;;:::o;11574:93::-;11632:5;11657:2;11650:9;;11574:93;:::o;20131:171::-;2177:13;:11;:13::i;:::-;20206:9:::1;20201:94;20225:6;:13;20221:1;:17;20201:94;;;20278:5;20260:4;:15;20265:6;20272:1;20265:9;;;;;;;;:::i;:::-;;;;;;;;20260:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;20240:3;;;;;;;20201:94;;;;20131:171:::0;:::o;12764:238::-;12852:4;12869:13;12885:12;:10;:12::i;:::-;12869:28;;12908:64;12917:5;12924:7;12961:10;12933:25;12943:5;12950:7;12933:9;:25::i;:::-;:38;;;;:::i;:::-;12908:8;:64::i;:::-;12990:4;12983:11;;;12764:238;;;;:::o;16266:28::-;;;;;;;;;;;;;:::o;19822:126::-;19888:4;19912:19;:28;19932:7;19912:28;;;;;;;;;;;;;;;;;;;;;;;;;19905:35;;19822:126;;;:::o;24068:406::-;24148:15;;;;;;;;;;;24132:31;;:12;:10;:12::i;:::-;:31;;;24124:40;;;;;;24175:25;24203:13;:11;:13::i;:::-;24175:41;;24227:23;24253:24;24271:4;24253:9;:24::i;:::-;24227:50;;24288:23;24344:3;24334:7;24314:17;:27;;;;:::i;:::-;:33;;;;:::i;:::-;24288:59;;24385:15;24366;:34;;24358:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;24433:33;24450:15;24433:16;:33::i;:::-;24113:361;;;24068:406;:::o;16207:52::-;;;:::o;16880:31::-;;;;;;;;;;;;;:::o;11791:127::-;11865:7;11892:9;:18;11902:7;11892:18;;;;;;;;;;;;;;;;11885:25;;11791:127;;;:::o;2453:103::-;2177:13;:11;:13::i;:::-;2518:30:::1;2545:1;2518:18;:30::i;:::-;2453:103::o:0;23171:194::-;2177:13;:11;:13::i;:::-;23225:25:::1;23253:13;:11;:13::i;:::-;23225:41;;23300:17;23277:20;:40;;;;23340:17;23328:9;:29;;;;23214:151;23171:194::o:0;18990:167::-;2177:13;:11;:13::i;:::-;19145:4:::1;19103:31;:39;19135:6;19103:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;18990:167:::0;;:::o;2218:87::-;2264:7;2291:6;;;;;;;;;;;2284:13;;2218:87;:::o;23373:226::-;23450:1;23426:21;:25;23418:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;23513:15;;;;;;;;;;;23497:31;;:12;:10;:12::i;:::-;:31;;;23489:40;;;;;;23548:10;23540:28;;:51;23569:21;23540:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23373:226::o;11462:104::-;11518:13;11551:7;11544:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11462:104;:::o;19355:265::-;2177:13;:11;:13::i;:::-;19485::::1;;;;;;;;;;;19477:21;;:4;:21;;::::0;19469:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19571:41;19600:4;19606:5;19571:28;:41::i;:::-;19355:265:::0;;:::o;13010:436::-;13103:4;13120:13;13136:12;:10;:12::i;:::-;13120:28;;13159:24;13186:25;13196:5;13203:7;13186:9;:25::i;:::-;13159:52;;13250:15;13230:16;:35;;13222:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;13343:60;13352:5;13359:7;13387:15;13368:16;:34;13343:8;:60::i;:::-;13434:4;13427:11;;;;13010:436;;;;:::o;11926:193::-;12005:4;12022:13;12038:12;:10;:12::i;:::-;12022:28;;12061;12071:5;12078:2;12082:6;12061:9;:28::i;:::-;12107:4;12100:11;;;11926:193;;;;:::o;23933:127::-;2177:13;:11;:13::i;:::-;24043:8:::1;24032:7;:20;;;;:::i;:::-;24011:18;:41;;;;23933:127:::0;:::o;19165:182::-;2177:13;:11;:13::i;:::-;19281:8:::1;19250:19;:28;19270:7;19250:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19321:7;19305:34;;;19330:8;19305:34;;;;;;:::i;:::-;;;;;;;;19165:182:::0;;:::o;16673:53::-;;;;:::o;18245:739::-;2177:13;:11;:13::i;:::-;18309:11:::1;;;;;;;;;;;18308:12;18300:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;18392:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18374:56;;;18439:4;18446:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18374:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18358:13;;:112;;;;;;;;;;;;;;;;;;18481:55;18515:13;;;;;;;;;;;18531:4;18481:25;:55::i;:::-;18547:58;18584:13;;;;;;;;;;;18600:4;18547:28;:58::i;:::-;18616:70;18633:4;18648:16;18667:18;;18616:8;:70::i;:::-;18697:16;:32;;;18737:21;18768:4;18774:32;18803:2;18774:24;18792:4;18774:9;:24::i;:::-;:28;;:32;;;;:::i;:::-;18807:1;18809::::0;18811:7:::1;:5;:7::i;:::-;18819:15;18697:138;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18853:13;;;;;;;;;;;18846:29;;;18884:16;18903:14;18846:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18943:4;18929:11;;:18;;;;;;;;;;;;;;;;;;18972:4;18958:11;;:18;;;;;;;;;;;;;;;;;;18245:739::o:0;16953:27::-;;;;:::o;19956:167::-;2177:13;:11;:13::i;:::-;20030:9:::1;20025:91;20049:5;:12;20045:1;:16;20025:91;;;20100:4;20083;:14;20088:5;20094:1;20088:8;;;;;;;;:::i;:::-;;;;;;;;20083:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;20063:3;;;;;;;20025:91;;;;19956:167:::0;:::o;23607:318::-;23674:23;23700:12;:22;;;23731:4;23700:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23674:63;;23774:1;23756:15;:19;23748:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;23839:15;;;;;;;;;;;23823:31;;:12;:10;:12::i;:::-;:31;;;23815:40;;;;;;23866:12;:21;;;16423:6;23901:15;23866:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23663:262;23607:318;:::o;12127:151::-;12216:7;12243:11;:18;12255:5;12243:18;;;;;;;;;;;;;;;:27;12262:7;12243:27;;;;;;;;;;;;;;;;12236:34;;12127:151;;;;:::o;16920:26::-;;;;:::o;16782:51::-;;;;:::o;2564:201::-;2177:13;:11;:13::i;:::-;2673:1:::1;2653:22;;:8;:22;;::::0;2645:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2729:28;2748:8;2729:18;:28::i;:::-;2564:201:::0;:::o;16733:42::-;;;;:::o;16842:31::-;;;;;;;;;;;;;:::o;2313:132::-;2388:12;:10;:12::i;:::-;2377:23;;:7;:5;:7::i;:::-;:23;;;2369:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2313:132::o;1691:98::-;1744:7;1771:10;1764:17;;1691:98;:::o;15149:346::-;15268:1;15251:19;;:5;:19;;;15243:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15349:1;15330:21;;:7;:21;;;15322:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15433:6;15403:11;:18;15415:5;15403:18;;;;;;;;;;;;;;;:27;15422:7;15403:27;;;;;;;;;;;;;;;:36;;;;15471:7;15455:32;;15464:5;15455:32;;;15480:6;15455:32;;;;;;:::i;:::-;;;;;;;;15149:346;;;:::o;15503:419::-;15604:24;15631:25;15641:5;15648:7;15631:9;:25::i;:::-;15604:52;;15691:17;15671:16;:37;15667:248;;15753:6;15733:16;:26;;15725:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15837:51;15846:5;15853:7;15881:6;15862:16;:25;15837:8;:51::i;:::-;15667:248;15593:329;15503:419;;;:::o;20310:2367::-;20426:1;20410:18;;:4;:18;;;20402:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20503:1;20489:16;;:2;:16;;;20481:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20580:1;20570:6;:11;20566:93;;20598:28;20614:4;20620:2;20624:1;20598:15;:28::i;:::-;20641:7;;20566:93;20683:7;:5;:7::i;:::-;20675:15;;:4;:15;;;;:32;;;;;20700:7;:5;:7::i;:::-;20694:13;;:2;:13;;;;20675:32;:52;;;;;20725:1;20711:16;;:2;:16;;;;20675:52;:77;;;;;20745:6;20731:21;;:2;:21;;;;20675:77;:90;;;;;20757:8;;;;;;;;;;;20756:9;20675:90;20671:1046;;;20793:4;:10;20798:4;20793:10;;;;;;;;;;;;;;;;;;;;;;;;;20792:11;:24;;;;;20808:4;:8;20813:2;20808:8;;;;;;;;;;;;;;;;;;;;;;;;;20807:9;20792:24;20784:33;;;;;;20839:11;;;;;;;;;;;20834:140;;20879:19;:25;20899:4;20879:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20908:19;:23;20928:2;20908:23;;;;;;;;;;;;;;;;;;;;;;;;;20879:52;20871:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;20834:140;20994:25;:31;21020:4;20994:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;21030:31;:35;21062:2;21030:35;;;;;;;;;;;;;;;;;;;;;;;;;21029:36;20994:71;20990:716;;;21118:20;;21108:6;:30;;21100:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;21249:9;;21232:13;21242:2;21232:9;:13::i;:::-;21223:6;:22;;;;:::i;:::-;:35;;21215:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20990:716;;;21323:25;:29;21349:2;21323:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;21357:31;:37;21389:4;21357:37;;;;;;;;;;;;;;;;;;;;;;;;;21356:38;21323:71;21319:387;;;21433:20;;21423:6;:30;;21415:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;21319:387;;;21567:31;:35;21599:2;21567:35;;;;;;;;;;;;;;;;;;;;;;;;;21562:144;;21657:9;;21640:13;21650:2;21640:9;:13::i;:::-;21631:6;:22;;;;:::i;:::-;:35;;21623:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21562:144;21319:387;20990:716;20671:1046;21729:28;21760:24;21778:4;21760:9;:24::i;:::-;21729:55;;21797:12;21835:1;21812:20;:24;21797:39;;21853:7;:22;;;;;21864:11;;;;;;;;;;;21853:22;:35;;;;;21880:8;;;;;;;;;;;21879:9;21853:35;:71;;;;;21893:25;:31;21919:4;21893:31;;;;;;;;;;;;;;;;;;;;;;;;;21892:32;21853:71;:101;;;;;21929:19;:25;21949:4;21929:25;;;;;;;;;;;;;;;;;;;;;;;;;21928:26;21853:101;:129;;;;;21959:19;:23;21979:2;21959:23;;;;;;;;;;;;;;;;;;;;;;;;;21958:24;21853:129;21849:239;;;22010:4;21999:8;;:15;;;;;;;;;;;;;;;;;;22029:16;22038:6;22029:8;:16::i;:::-;22071:5;22060:8;;:16;;;;;;;;;;;;;;;;;;21849:239;22100:12;22116:8;;;;;;;;;;;22115:9;22100:24;;22141:19;:25;22161:4;22141:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;22170:19;:23;22190:2;22170:23;;;;;;;;;;;;;;;;;;;;;;;;;22141:52;22137:100;;;22220:5;22210:15;;22137:100;22249:12;22282:7;22278:348;;;22310:25;:29;22336:2;22310:29;;;;;;;;;;;;;;;;;;;;;;;;;22306:193;;;22367:28;22391:3;22367:19;22378:7;;22367:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;22360:35;;22306:193;;;22456:27;22479:3;22456:18;22467:6;;22456;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;22449:34;;22306:193;22522:1;22515:4;:8;22511:83;;;22540:42;22556:4;22570;22577;22540:15;:42::i;:::-;22511:83;22614:4;22604:14;;;;;:::i;:::-;;;22278:348;22636:33;22652:4;22658:2;22662:6;22636:15;:33::i;:::-;20389:2288;;;;20310:2367;;;;:::o;22685:478::-;22753:21;22791:1;22777:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22753:40;;22822:4;22804;22809:1;22804:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22848:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22838:4;22843:1;22838:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;22882:63;22899:4;22914:16;22933:11;22882:8;:63::i;:::-;22956:16;:67;;;23038:11;23064:1;23080:4;23099:15;;;;;;;;;;;23129;22956:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22740:423;22685:478;:::o;2773:191::-;2847:16;2866:6;;;;;;;;;;;2847:25;;2892:8;2883:6;;:17;;;;;;;;;;;;;;;;;;2947:8;2916:40;;2937:8;2916:40;;;;;;;;;;;;2836:128;2773:191;:::o;19628:186::-;19745:5;19711:25;:31;19737:4;19711:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19800:5;19766:40;;19794:4;19766:40;;;;;;;;;;;;19628:186;;:::o;10343:172::-;10401:7;10434:3;10429:1;:8;;10421:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;10504:3;10500:1;10496;:5;;;;:::i;:::-;:11;;;;:::i;:::-;10489:18;;10343:172;;;;:::o;13454:641::-;13567:1;13551:18;;:4;:18;;;13543:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13644:1;13630:16;;:2;:16;;;13622:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13699:38;13720:4;13726:2;13730:6;13699:20;:38::i;:::-;13750:19;13772:9;:15;13782:4;13772:15;;;;;;;;;;;;;;;;13750:37;;13821:6;13806:11;:21;;13798:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13938:6;13924:11;:20;13906:9;:15;13916:4;13906:15;;;;;;;;;;;;;;;:38;;;;13976:6;13959:9;:13;13969:2;13959:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;14026:2;14011:26;;14020:4;14011:26;;;14030:6;14011:26;;;;;;:::i;:::-;;;;;;;;14050:37;14070:4;14076:2;14080:6;14050:19;:37::i;:::-;13532:563;13454:641;;;:::o;24701:632::-;24754:23;24780:24;24798:4;24780:9;:24::i;:::-;24754:50;;24815:20;24865:1;24846:15;:20;24842:449;;24879:7;;;;24842:449;24926:1;24908:15;:19;:59;;;;;24949:18;;24931:15;:36;24908:59;24905:386;;;24995:15;24980:30;;24905:386;;;25040:21;25064:28;25088:3;25064:19;25075:7;;25064:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;25040:52;;25113:13;25103:23;;;;;:::i;:::-;;;25150:18;;25141:6;:27;25137:147;;;25200:18;;25185:33;;25137:147;;;25266:6;25251:21;;25137:147;25029:262;24905:386;25297:30;25314:12;25297:16;:30::i;:::-;24743:590;;24701:632;;:::o;9811:98::-;9869:7;9900:1;9896;:5;;;;:::i;:::-;9889:12;;9811:98;;;;:::o;9917:::-;9975:7;10006:1;10002;:5;;;;:::i;:::-;9995:12;;9917:98;;;;:::o;15930:91::-;;;;:::o;16029:90::-;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310: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:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:246::-;1531:1;1541:113;1555:6;1552:1;1549:13;1541:113;;;1640:1;1635:3;1631:11;1625:18;1621:1;1616:3;1612:11;1605:39;1577:2;1574:1;1570:10;1565:15;;1541:113;;;1688:1;1679:6;1674:3;1670:16;1663:27;1512:184;1450:246;;;:::o;1702:102::-;1743:6;1794:2;1790:7;1785:2;1778:5;1774:14;1770:28;1760:38;;1702:102;;;:::o;1810:377::-;1898:3;1926:39;1959:5;1926:39;:::i;:::-;1981:71;2045:6;2040:3;1981:71;:::i;:::-;1974:78;;2061:65;2119:6;2114:3;2107:4;2100:5;2096:16;2061:65;:::i;:::-;2151:29;2173:6;2151:29;:::i;:::-;2146:3;2142:39;2135:46;;1902:285;1810:377;;;;:::o;2193:313::-;2306:4;2344:2;2333:9;2329:18;2321:26;;2393:9;2387:4;2383:20;2379:1;2368:9;2364:17;2357:47;2421:78;2494:4;2485:6;2421:78;:::i;:::-;2413:86;;2193:313;;;;:::o;2512:126::-;2549:7;2589:42;2582:5;2578:54;2567:65;;2512:126;;;:::o;2644:96::-;2681:7;2710:24;2728:5;2710:24;:::i;:::-;2699:35;;2644:96;;;:::o;2746:122::-;2819:24;2837:5;2819:24;:::i;:::-;2812:5;2809:35;2799:63;;2858:1;2855;2848:12;2799:63;2746:122;:::o;2874:139::-;2920:5;2958:6;2945:20;2936:29;;2974:33;3001:5;2974:33;:::i;:::-;2874:139;;;;:::o;3019:474::-;3087:6;3095;3144:2;3132:9;3123:7;3119:23;3115:32;3112:119;;;3150:79;;:::i;:::-;3112:119;3270:1;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3241:117;3397:2;3423:53;3468:7;3459:6;3448:9;3444:22;3423:53;:::i;:::-;3413:63;;3368:118;3019:474;;;;;:::o;3499:90::-;3533:7;3576:5;3569:13;3562:21;3551:32;;3499:90;;;:::o;3595:109::-;3676:21;3691:5;3676:21;:::i;:::-;3671:3;3664:34;3595:109;;:::o;3710:210::-;3797:4;3835:2;3824:9;3820:18;3812:26;;3848:65;3910:1;3899:9;3895:17;3886:6;3848:65;:::i;:::-;3710:210;;;;:::o;3926:118::-;4013:24;4031:5;4013:24;:::i;:::-;4008:3;4001:37;3926:118;;:::o;4050:222::-;4143:4;4181:2;4170:9;4166:18;4158:26;;4194:71;4262:1;4251:9;4247:17;4238:6;4194:71;:::i;:::-;4050:222;;;;:::o;4278:619::-;4355:6;4363;4371;4420:2;4408:9;4399:7;4395:23;4391:32;4388:119;;;4426:79;;:::i;:::-;4388:119;4546:1;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4517:117;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4278:619;;;;;:::o;4903:86::-;4938:7;4978:4;4971:5;4967:16;4956:27;;4903:86;;;:::o;4995:112::-;5078:22;5094:5;5078:22;:::i;:::-;5073:3;5066:35;4995:112;;:::o;5113:214::-;5202:4;5240:2;5229:9;5225:18;5217:26;;5253:67;5317:1;5306:9;5302:17;5293:6;5253:67;:::i;:::-;5113:214;;;;:::o;5333:117::-;5442:1;5439;5432:12;5456:180;5504:77;5501:1;5494:88;5601:4;5598:1;5591:15;5625:4;5622:1;5615:15;5642:281;5725:27;5747:4;5725:27;:::i;:::-;5717:6;5713:40;5855:6;5843:10;5840:22;5819:18;5807:10;5804:34;5801:62;5798:88;;;5866:18;;:::i;:::-;5798:88;5906:10;5902:2;5895:22;5685:238;5642:281;;:::o;5929:129::-;5963:6;5990:20;;:::i;:::-;5980:30;;6019:33;6047:4;6039:6;6019:33;:::i;:::-;5929:129;;;:::o;6064:311::-;6141:4;6231:18;6223:6;6220:30;6217:56;;;6253:18;;:::i;:::-;6217:56;6303:4;6295:6;6291:17;6283:25;;6363:4;6357;6353:15;6345:23;;6064:311;;;:::o;6381:117::-;6490:1;6487;6480:12;6521:710;6617:5;6642:81;6658:64;6715:6;6658:64;:::i;:::-;6642:81;:::i;:::-;6633:90;;6743:5;6772:6;6765:5;6758:21;6806:4;6799:5;6795:16;6788:23;;6859:4;6851:6;6847:17;6839:6;6835:30;6888:3;6880:6;6877:15;6874:122;;;6907:79;;:::i;:::-;6874:122;7022:6;7005:220;7039:6;7034:3;7031:15;7005:220;;;7114:3;7143:37;7176:3;7164:10;7143:37;:::i;:::-;7138:3;7131:50;7210:4;7205:3;7201:14;7194:21;;7081:144;7065:4;7060:3;7056:14;7049:21;;7005:220;;;7009:21;6623:608;;6521:710;;;;;:::o;7254:370::-;7325:5;7374:3;7367:4;7359:6;7355:17;7351:27;7341:122;;7382:79;;:::i;:::-;7341:122;7499:6;7486:20;7524:94;7614:3;7606:6;7599:4;7591:6;7587:17;7524:94;:::i;:::-;7515:103;;7331:293;7254:370;;;;:::o;7630:539::-;7714:6;7763:2;7751:9;7742:7;7738:23;7734:32;7731:119;;;7769:79;;:::i;:::-;7731:119;7917:1;7906:9;7902:17;7889:31;7947:18;7939:6;7936:30;7933:117;;;7969:79;;:::i;:::-;7933:117;8074:78;8144:7;8135:6;8124:9;8120:22;8074:78;:::i;:::-;8064:88;;7860:302;7630:539;;;;:::o;8175:118::-;8262:24;8280:5;8262:24;:::i;:::-;8257:3;8250:37;8175:118;;:::o;8299:222::-;8392:4;8430:2;8419:9;8415:18;8407:26;;8443:71;8511:1;8500:9;8496:17;8487:6;8443:71;:::i;:::-;8299:222;;;;:::o;8527:329::-;8586:6;8635:2;8623:9;8614:7;8610:23;8606:32;8603:119;;;8641:79;;:::i;:::-;8603:119;8761:1;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8732:117;8527:329;;;;:::o;8862:::-;8921:6;8970:2;8958:9;8949:7;8945:23;8941:32;8938:119;;;8976:79;;:::i;:::-;8938:119;9096:1;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9067:117;8862:329;;;;:::o;9197:60::-;9225:3;9246:5;9239:12;;9197:60;;;:::o;9263:142::-;9313:9;9346:53;9364:34;9373:24;9391:5;9373:24;:::i;:::-;9364:34;:::i;:::-;9346:53;:::i;:::-;9333:66;;9263:142;;;:::o;9411:126::-;9461:9;9494:37;9525:5;9494:37;:::i;:::-;9481:50;;9411:126;;;:::o;9543:152::-;9619:9;9652:37;9683:5;9652:37;:::i;:::-;9639:50;;9543:152;;;:::o;9701:183::-;9814:63;9871:5;9814:63;:::i;:::-;9809:3;9802:76;9701:183;;:::o;9890:274::-;10009:4;10047:2;10036:9;10032:18;10024:26;;10060:97;10154:1;10143:9;10139:17;10130:6;10060:97;:::i;:::-;9890:274;;;;:::o;10170:116::-;10240:21;10255:5;10240:21;:::i;:::-;10233:5;10230:32;10220:60;;10276:1;10273;10266:12;10220:60;10170:116;:::o;10292:133::-;10335:5;10373:6;10360:20;10351:29;;10389:30;10413:5;10389:30;:::i;:::-;10292:133;;;;:::o;10431:468::-;10496:6;10504;10553:2;10541:9;10532:7;10528:23;10524:32;10521:119;;;10559:79;;:::i;:::-;10521:119;10679:1;10704:53;10749:7;10740:6;10729:9;10725:22;10704:53;:::i;:::-;10694:63;;10650:117;10806:2;10832:50;10874:7;10865:6;10854:9;10850:22;10832:50;:::i;:::-;10822:60;;10777:115;10431:468;;;;;:::o;10905:110::-;10956:7;10985:24;11003:5;10985:24;:::i;:::-;10974:35;;10905:110;;;:::o;11021:150::-;11108:38;11140:5;11108:38;:::i;:::-;11101:5;11098:49;11088:77;;11161:1;11158;11151:12;11088:77;11021:150;:::o;11177:167::-;11237:5;11275:6;11262:20;11253:29;;11291:47;11332:5;11291:47;:::i;:::-;11177:167;;;;:::o;11350:357::-;11423:6;11472:2;11460:9;11451:7;11447:23;11443:32;11440:119;;;11478:79;;:::i;:::-;11440:119;11598:1;11623:67;11682:7;11673:6;11662:9;11658:22;11623:67;:::i;:::-;11613:77;;11569:131;11350:357;;;;:::o;11713:474::-;11781:6;11789;11838:2;11826:9;11817:7;11813:23;11809:32;11806:119;;;11844:79;;:::i;:::-;11806:119;11964:1;11989:53;12034:7;12025:6;12014:9;12010:22;11989:53;:::i;:::-;11979:63;;11935:117;12091:2;12117:53;12162:7;12153:6;12142:9;12138:22;12117:53;:::i;:::-;12107:63;;12062:118;11713:474;;;;;:::o;12193:172::-;12333:24;12329:1;12321:6;12317:14;12310:48;12193:172;:::o;12371:366::-;12513:3;12534:67;12598:2;12593:3;12534:67;:::i;:::-;12527:74;;12610:93;12699:3;12610:93;:::i;:::-;12728:2;12723:3;12719:12;12712:19;;12371:366;;;:::o;12743:419::-;12909:4;12947:2;12936:9;12932:18;12924:26;;12996:9;12990:4;12986:20;12982:1;12971:9;12967:17;12960:47;13024:131;13150:4;13024:131;:::i;:::-;13016:139;;12743:419;;;:::o;13168:180::-;13216:77;13213:1;13206:88;13313:4;13310:1;13303:15;13337:4;13334:1;13327:15;13354:320;13398:6;13435:1;13429:4;13425:12;13415:22;;13482:1;13476:4;13472:12;13503:18;13493:81;;13559:4;13551:6;13547:17;13537:27;;13493:81;13621:2;13613:6;13610:14;13590:18;13587:38;13584:84;;13640:18;;:::i;:::-;13584:84;13405:269;13354:320;;;:::o;13680:180::-;13728:77;13725:1;13718:88;13825:4;13822:1;13815:15;13849:4;13846:1;13839:15;13866:180;13914:77;13911:1;13904:88;14011:4;14008:1;14001:15;14035:4;14032:1;14025:15;14052:191;14092:3;14111:20;14129:1;14111:20;:::i;:::-;14106:25;;14145:20;14163:1;14145:20;:::i;:::-;14140:25;;14188:1;14185;14181:9;14174:16;;14209:3;14206:1;14203:10;14200:36;;;14216:18;;:::i;:::-;14200:36;14052:191;;;;:::o;14249:410::-;14289:7;14312:20;14330:1;14312:20;:::i;:::-;14307:25;;14346:20;14364:1;14346:20;:::i;:::-;14341:25;;14401:1;14398;14394:9;14423:30;14441:11;14423:30;:::i;:::-;14412:41;;14602:1;14593:7;14589:15;14586:1;14583:22;14563:1;14556:9;14536:83;14513:139;;14632:18;;:::i;:::-;14513:139;14297:362;14249:410;;;;:::o;14665:180::-;14713:77;14710:1;14703:88;14810:4;14807:1;14800:15;14834:4;14831:1;14824:15;14851:185;14891:1;14908:20;14926:1;14908:20;:::i;:::-;14903:25;;14942:20;14960:1;14942:20;:::i;:::-;14937:25;;14981:1;14971:35;;14986:18;;:::i;:::-;14971:35;15028:1;15025;15021:9;15016:14;;14851:185;;;;:::o;15042:167::-;15182:19;15178:1;15170:6;15166:14;15159:43;15042:167;:::o;15215:366::-;15357:3;15378:67;15442:2;15437:3;15378:67;:::i;:::-;15371:74;;15454:93;15543:3;15454:93;:::i;:::-;15572:2;15567:3;15563:12;15556:19;;15215:366;;;:::o;15587:419::-;15753:4;15791:2;15780:9;15776:18;15768:26;;15840:9;15834:4;15830:20;15826:1;15815:9;15811:17;15804:47;15868:131;15994:4;15868:131;:::i;:::-;15860:139;;15587:419;;;:::o;16012:172::-;16152:24;16148:1;16140:6;16136:14;16129:48;16012:172;:::o;16190:366::-;16332:3;16353:67;16417:2;16412:3;16353:67;:::i;:::-;16346:74;;16429:93;16518:3;16429:93;:::i;:::-;16547:2;16542:3;16538:12;16531:19;;16190:366;;;:::o;16562:419::-;16728:4;16766:2;16755:9;16751:18;16743:26;;16815:9;16809:4;16805:20;16801:1;16790:9;16786:17;16779:47;16843:131;16969:4;16843:131;:::i;:::-;16835:139;;16562:419;;;:::o;16987:244::-;17127:34;17123:1;17115:6;17111:14;17104:58;17196:27;17191:2;17183:6;17179:15;17172:52;16987:244;:::o;17237:366::-;17379:3;17400:67;17464:2;17459:3;17400:67;:::i;:::-;17393:74;;17476:93;17565:3;17476:93;:::i;:::-;17594:2;17589:3;17585:12;17578:19;;17237:366;;;:::o;17609:419::-;17775:4;17813:2;17802:9;17798:18;17790:26;;17862:9;17856:4;17852:20;17848:1;17837:9;17833:17;17826:47;17890:131;18016:4;17890:131;:::i;:::-;17882:139;;17609:419;;;:::o;18034:224::-;18174:34;18170:1;18162:6;18158:14;18151:58;18243:7;18238:2;18230:6;18226:15;18219:32;18034:224;:::o;18264:366::-;18406:3;18427:67;18491:2;18486:3;18427:67;:::i;:::-;18420:74;;18503:93;18592:3;18503:93;:::i;:::-;18621:2;18616:3;18612:12;18605:19;;18264:366;;;:::o;18636:419::-;18802:4;18840:2;18829:9;18825:18;18817:26;;18889:9;18883:4;18879:20;18875:1;18864:9;18860:17;18853:47;18917:131;19043:4;18917:131;:::i;:::-;18909:139;;18636:419;;;:::o;19061:173::-;19201:25;19197:1;19189:6;19185:14;19178:49;19061:173;:::o;19240:366::-;19382:3;19403:67;19467:2;19462:3;19403:67;:::i;:::-;19396:74;;19479:93;19568:3;19479:93;:::i;:::-;19597:2;19592:3;19588:12;19581:19;;19240:366;;;:::o;19612:419::-;19778:4;19816:2;19805:9;19801:18;19793:26;;19865:9;19859:4;19855:20;19851:1;19840:9;19836:17;19829:47;19893:131;20019:4;19893:131;:::i;:::-;19885:139;;19612:419;;;:::o;20037:143::-;20094:5;20125:6;20119:13;20110:22;;20141:33;20168:5;20141:33;:::i;:::-;20037:143;;;;:::o;20186:351::-;20256:6;20305:2;20293:9;20284:7;20280:23;20276:32;20273:119;;;20311:79;;:::i;:::-;20273:119;20431:1;20456:64;20512:7;20503:6;20492:9;20488:22;20456:64;:::i;:::-;20446:74;;20402:128;20186:351;;;;:::o;20543:332::-;20664:4;20702:2;20691:9;20687:18;20679:26;;20715:71;20783:1;20772:9;20768:17;20759:6;20715:71;:::i;:::-;20796:72;20864:2;20853:9;20849:18;20840:6;20796:72;:::i;:::-;20543:332;;;;;:::o;20881:85::-;20926:7;20955:5;20944:16;;20881:85;;;:::o;20972:158::-;21030:9;21063:61;21081:42;21090:32;21116:5;21090:32;:::i;:::-;21081:42;:::i;:::-;21063:61;:::i;:::-;21050:74;;20972:158;;;:::o;21136:147::-;21231:45;21270:5;21231:45;:::i;:::-;21226:3;21219:58;21136:147;;:::o;21289:807::-;21538:4;21576:3;21565:9;21561:19;21553:27;;21590:71;21658:1;21647:9;21643:17;21634:6;21590:71;:::i;:::-;21671:72;21739:2;21728:9;21724:18;21715:6;21671:72;:::i;:::-;21753:80;21829:2;21818:9;21814:18;21805:6;21753:80;:::i;:::-;21843;21919:2;21908:9;21904:18;21895:6;21843:80;:::i;:::-;21933:73;22001:3;21990:9;21986:19;21977:6;21933:73;:::i;:::-;22016;22084:3;22073:9;22069:19;22060:6;22016:73;:::i;:::-;21289:807;;;;;;;;;:::o;22102:143::-;22159:5;22190:6;22184:13;22175:22;;22206:33;22233:5;22206:33;:::i;:::-;22102:143;;;;:::o;22251:663::-;22339:6;22347;22355;22404:2;22392:9;22383:7;22379:23;22375:32;22372:119;;;22410:79;;:::i;:::-;22372:119;22530:1;22555:64;22611:7;22602:6;22591:9;22587:22;22555:64;:::i;:::-;22545:74;;22501:128;22668:2;22694:64;22750:7;22741:6;22730:9;22726:22;22694:64;:::i;:::-;22684:74;;22639:129;22807:2;22833:64;22889:7;22880:6;22869:9;22865:22;22833:64;:::i;:::-;22823:74;;22778:129;22251:663;;;;;:::o;22920:332::-;23041:4;23079:2;23068:9;23064:18;23056:26;;23092:71;23160:1;23149:9;23145:17;23136:6;23092:71;:::i;:::-;23173:72;23241:2;23230:9;23226:18;23217:6;23173:72;:::i;:::-;22920:332;;;;;:::o;23258:137::-;23312:5;23343:6;23337:13;23328:22;;23359:30;23383:5;23359:30;:::i;:::-;23258:137;;;;:::o;23401:345::-;23468:6;23517:2;23505:9;23496:7;23492:23;23488:32;23485:119;;;23523:79;;:::i;:::-;23485:119;23643:1;23668:61;23721:7;23712:6;23701:9;23697:22;23668:61;:::i;:::-;23658:71;;23614:125;23401:345;;;;:::o;23752:351::-;23822:6;23871:2;23859:9;23850:7;23846:23;23842:32;23839:119;;;23877:79;;:::i;:::-;23839:119;23997:1;24022:64;24078:7;24069:6;24058:9;24054:22;24022:64;:::i;:::-;24012:74;;23968:128;23752:351;;;;:::o;24109:174::-;24249:26;24245:1;24237:6;24233:14;24226:50;24109:174;:::o;24289:366::-;24431:3;24452:67;24516:2;24511:3;24452:67;:::i;:::-;24445:74;;24528:93;24617:3;24528:93;:::i;:::-;24646:2;24641:3;24637:12;24630:19;;24289:366;;;:::o;24661:419::-;24827:4;24865:2;24854:9;24850:18;24842:26;;24914:9;24908:4;24904:20;24900:1;24889:9;24885:17;24878:47;24942:131;25068:4;24942:131;:::i;:::-;24934:139;;24661:419;;;:::o;25086:225::-;25226:34;25222:1;25214:6;25210:14;25203:58;25295:8;25290:2;25282:6;25278:15;25271:33;25086:225;:::o;25317:366::-;25459:3;25480:67;25544:2;25539:3;25480:67;:::i;:::-;25473:74;;25556:93;25645:3;25556:93;:::i;:::-;25674:2;25669:3;25665:12;25658:19;;25317:366;;;:::o;25689:419::-;25855:4;25893:2;25882:9;25878:18;25870:26;;25942:9;25936:4;25932:20;25928:1;25917:9;25913:17;25906:47;25970:131;26096:4;25970:131;:::i;:::-;25962:139;;25689:419;;;:::o;26114:182::-;26254:34;26250:1;26242:6;26238:14;26231:58;26114:182;:::o;26302:366::-;26444:3;26465:67;26529:2;26524:3;26465:67;:::i;:::-;26458:74;;26541:93;26630:3;26541:93;:::i;:::-;26659:2;26654:3;26650:12;26643:19;;26302:366;;;:::o;26674:419::-;26840:4;26878:2;26867:9;26863:18;26855:26;;26927:9;26921:4;26917:20;26913:1;26902:9;26898:17;26891:47;26955:131;27081:4;26955:131;:::i;:::-;26947:139;;26674:419;;;:::o;27099:223::-;27239:34;27235:1;27227:6;27223:14;27216:58;27308:6;27303:2;27295:6;27291:15;27284:31;27099:223;:::o;27328:366::-;27470:3;27491:67;27555:2;27550:3;27491:67;:::i;:::-;27484:74;;27567:93;27656:3;27567:93;:::i;:::-;27685:2;27680:3;27676:12;27669:19;;27328:366;;;:::o;27700:419::-;27866:4;27904:2;27893:9;27889:18;27881:26;;27953:9;27947:4;27943:20;27939:1;27928:9;27924:17;27917:47;27981:131;28107:4;27981:131;:::i;:::-;27973:139;;27700:419;;;:::o;28125:221::-;28265:34;28261:1;28253:6;28249:14;28242:58;28334:4;28329:2;28321:6;28317:15;28310:29;28125:221;:::o;28352:366::-;28494:3;28515:67;28579:2;28574:3;28515:67;:::i;:::-;28508:74;;28591:93;28680:3;28591:93;:::i;:::-;28709:2;28704:3;28700:12;28693:19;;28352:366;;;:::o;28724:419::-;28890:4;28928:2;28917:9;28913:18;28905:26;;28977:9;28971:4;28967:20;28963:1;28952:9;28948:17;28941:47;29005:131;29131:4;29005:131;:::i;:::-;28997:139;;28724:419;;;:::o;29149:179::-;29289:31;29285:1;29277:6;29273:14;29266:55;29149:179;:::o;29334:366::-;29476:3;29497:67;29561:2;29556:3;29497:67;:::i;:::-;29490:74;;29573:93;29662:3;29573:93;:::i;:::-;29691:2;29686:3;29682:12;29675:19;;29334:366;;;:::o;29706:419::-;29872:4;29910:2;29899:9;29895:18;29887:26;;29959:9;29953:4;29949:20;29945:1;29934:9;29930:17;29923:47;29987:131;30113:4;29987:131;:::i;:::-;29979:139;;29706:419;;;:::o;30131:224::-;30271:34;30267:1;30259:6;30255:14;30248:58;30340:7;30335:2;30327:6;30323:15;30316:32;30131:224;:::o;30361:366::-;30503:3;30524:67;30588:2;30583:3;30524:67;:::i;:::-;30517:74;;30600:93;30689:3;30600:93;:::i;:::-;30718:2;30713:3;30709:12;30702:19;;30361:366;;;:::o;30733:419::-;30899:4;30937:2;30926:9;30922:18;30914:26;;30986:9;30980:4;30976:20;30972:1;30961:9;30957:17;30950:47;31014:131;31140:4;31014:131;:::i;:::-;31006:139;;30733:419;;;:::o;31158:222::-;31298:34;31294:1;31286:6;31282:14;31275:58;31367:5;31362:2;31354:6;31350:15;31343:30;31158:222;:::o;31386:366::-;31528:3;31549:67;31613:2;31608:3;31549:67;:::i;:::-;31542:74;;31625:93;31714:3;31625:93;:::i;:::-;31743:2;31738:3;31734:12;31727:19;;31386:366;;;:::o;31758:419::-;31924:4;31962:2;31951:9;31947:18;31939:26;;32011:9;32005:4;32001:20;31997:1;31986:9;31982:17;31975:47;32039:131;32165:4;32039:131;:::i;:::-;32031:139;;31758:419;;;:::o;32183:172::-;32323:24;32319:1;32311:6;32307:14;32300:48;32183:172;:::o;32361:366::-;32503:3;32524:67;32588:2;32583:3;32524:67;:::i;:::-;32517:74;;32600:93;32689:3;32600:93;:::i;:::-;32718:2;32713:3;32709:12;32702:19;;32361:366;;;:::o;32733:419::-;32899:4;32937:2;32926:9;32922:18;32914:26;;32986:9;32980:4;32976:20;32972:1;32961:9;32957:17;32950:47;33014:131;33140:4;33014:131;:::i;:::-;33006:139;;32733:419;;;:::o;33158:240::-;33298:34;33294:1;33286:6;33282:14;33275:58;33367:23;33362:2;33354:6;33350:15;33343:48;33158:240;:::o;33404:366::-;33546:3;33567:67;33631:2;33626:3;33567:67;:::i;:::-;33560:74;;33643:93;33732:3;33643:93;:::i;:::-;33761:2;33756:3;33752:12;33745:19;;33404:366;;;:::o;33776:419::-;33942:4;33980:2;33969:9;33965:18;33957:26;;34029:9;34023:4;34019:20;34015:1;34004:9;34000:17;33993:47;34057:131;34183:4;34057:131;:::i;:::-;34049:139;;33776:419;;;:::o;34201:169::-;34341:21;34337:1;34329:6;34325:14;34318:45;34201:169;:::o;34376:366::-;34518:3;34539:67;34603:2;34598:3;34539:67;:::i;:::-;34532:74;;34615:93;34704:3;34615:93;:::i;:::-;34733:2;34728:3;34724:12;34717:19;;34376:366;;;:::o;34748:419::-;34914:4;34952:2;34941:9;34937:18;34929:26;;35001:9;34995:4;34991:20;34987:1;34976:9;34972:17;34965:47;35029:131;35155:4;35029:131;:::i;:::-;35021:139;;34748:419;;;:::o;35173:241::-;35313:34;35309:1;35301:6;35297:14;35290:58;35382:24;35377:2;35369:6;35365:15;35358:49;35173:241;:::o;35420:366::-;35562:3;35583:67;35647:2;35642:3;35583:67;:::i;:::-;35576:74;;35659:93;35748:3;35659:93;:::i;:::-;35777:2;35772:3;35768:12;35761:19;;35420:366;;;:::o;35792:419::-;35958:4;35996:2;35985:9;35981:18;35973:26;;36045:9;36039:4;36035:20;36031:1;36020:9;36016:17;36009:47;36073:131;36199:4;36073:131;:::i;:::-;36065:139;;35792:419;;;:::o;36217:194::-;36257:4;36277:20;36295:1;36277:20;:::i;:::-;36272:25;;36311:20;36329:1;36311:20;:::i;:::-;36306:25;;36355:1;36352;36348:9;36340:17;;36379:1;36373:4;36370:11;36367:37;;;36384:18;;:::i;:::-;36367:37;36217:194;;;;:::o;36417:114::-;36484:6;36518:5;36512:12;36502:22;;36417:114;;;:::o;36537:184::-;36636:11;36670:6;36665:3;36658:19;36710:4;36705:3;36701:14;36686:29;;36537:184;;;;:::o;36727:132::-;36794:4;36817:3;36809:11;;36847:4;36842:3;36838:14;36830:22;;36727:132;;;:::o;36865:108::-;36942:24;36960:5;36942:24;:::i;:::-;36937:3;36930:37;36865:108;;:::o;36979:179::-;37048:10;37069:46;37111:3;37103:6;37069:46;:::i;:::-;37147:4;37142:3;37138:14;37124:28;;36979:179;;;;:::o;37164:113::-;37234:4;37266;37261:3;37257:14;37249:22;;37164:113;;;:::o;37313:732::-;37432:3;37461:54;37509:5;37461:54;:::i;:::-;37531:86;37610:6;37605:3;37531:86;:::i;:::-;37524:93;;37641:56;37691:5;37641:56;:::i;:::-;37720:7;37751:1;37736:284;37761:6;37758:1;37755:13;37736:284;;;37837:6;37831:13;37864:63;37923:3;37908:13;37864:63;:::i;:::-;37857:70;;37950:60;38003:6;37950:60;:::i;:::-;37940:70;;37796:224;37783:1;37780;37776:9;37771:14;;37736:284;;;37740:14;38036:3;38029:10;;37437:608;;;37313:732;;;;:::o;38051:831::-;38314:4;38352:3;38341:9;38337:19;38329:27;;38366:71;38434:1;38423:9;38419:17;38410:6;38366:71;:::i;:::-;38447:80;38523:2;38512:9;38508:18;38499:6;38447:80;:::i;:::-;38574:9;38568:4;38564:20;38559:2;38548:9;38544:18;38537:48;38602:108;38705:4;38696:6;38602:108;:::i;:::-;38594:116;;38720:72;38788:2;38777:9;38773:18;38764:6;38720:72;:::i;:::-;38802:73;38870:3;38859:9;38855:19;38846:6;38802:73;:::i;:::-;38051:831;;;;;;;;:::o;38888:223::-;39028:34;39024:1;39016:6;39012:14;39005:58;39097:6;39092:2;39084:6;39080:15;39073:31;38888:223;:::o;39117:366::-;39259:3;39280:67;39344:2;39339:3;39280:67;:::i;:::-;39273:74;;39356:93;39445:3;39356:93;:::i;:::-;39474:2;39469:3;39465:12;39458:19;;39117:366;;;:::o;39489:419::-;39655:4;39693:2;39682:9;39678:18;39670:26;;39742:9;39736:4;39732:20;39728:1;39717:9;39713:17;39706:47;39770:131;39896:4;39770:131;:::i;:::-;39762:139;;39489:419;;;:::o;39914:225::-;40054:34;40050:1;40042:6;40038:14;40031:58;40123:8;40118:2;40110:6;40106:15;40099:33;39914:225;:::o;40145:366::-;40287:3;40308:67;40372:2;40367:3;40308:67;:::i;:::-;40301:74;;40384:93;40473:3;40384:93;:::i;:::-;40502:2;40497:3;40493:12;40486:19;;40145:366;;;:::o;40517:419::-;40683:4;40721:2;40710:9;40706:18;40698:26;;40770:9;40764:4;40760:20;40756:1;40745:9;40741:17;40734:47;40798:131;40924:4;40798:131;:::i;:::-;40790:139;;40517:419;;;:::o
Swarm Source
ipfs://f6a096fbad8cd93ec23f7f28b416cb75b9d7c3d7c8a102784203e0e27fc903bb
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.