Overview
Max Total Supply
1,000,000,000 ECOREAL
Holders
56 (0.00%)
Market
Price
$0.16 @ 0.000053 ETH (+0.10%)
Onchain Market Cap
$161,782,000.00
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
205,178.9 ECOREALValue
$33,194.25 ( ~10.9485 Eth) [0.0205%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|---|---|---|---|---|
1 | Coinsbit | ECOREAL-USDT | $0.1611 0.0000531 Eth | $240,368.00 1,491,613.005 ECOREAL | 99.9948% |
2 | ProBit Global | ECOREAL-USDT | $0.04 0.0000132 Eth | $3.12 78.034 ECOREAL | 0.0052% |
Contract Name:
ecoreal
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-04-14 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address private _owner; address private asdasd; uint256 private _lockTime; 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 waiveOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD)); _owner = address(0x000000000000000000000000000000000000dEaD); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function getTime() public view returns (uint256) { return block.timestamp; } } 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 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 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 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 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 ecoreal is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "ECOREAL"; string private _symbol = "ECOREAL"; uint8 private _decimals = 18; address payable public marketingWalletAddress = payable(0xF333148b458B4857E7039d822E4bBDDF2C840724); address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isMarketPair; uint256 public _marketingShare = 4; uint256 public _holders = 2; uint256 public _burn = 2; uint256 public _liquidityShare = 2; // uint256 public _totalTax = 10; uint256 public _totalTaxIfBuying = 10; uint256 public _totalTaxIfSelling = 10; uint256 public _totalDistributionShares = 20; address[] public holders; address public pairAddress; uint256 private _totalSupply = 1000000000 * 10 ** _decimals; uint256 private minimumTokensBeforeSwap = 100 * 10 ** _decimals; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; bool public checkWalletLimit = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens( uint256 amountIn, address[] path ); event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { // IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()) // .createPair(address(this), _uniswapV2Router.WETH()); // uniswapV2Router = _uniswapV2Router; // _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; // isMarketPair[address(uniswapPair)] = true; holders.push(_msgSender()); _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function minimumTokensBeforeSwapAmount() public view returns (uint256) { return minimumTokensBeforeSwap; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function setMarketPairStatus(address account, bool newValue) public onlyOwner { isMarketPair[account] = newValue; pairAddress = account; } function setIsExcludedFromFee(address account, bool newValue) public onlyOwner { isExcludedFromFee[account] = newValue; } function setValues(uint256 _market_, uint256 _holders_, uint256 _burn_, uint256 _setliq_ ) public onlyOwner { _marketingShare = _market_; _holders = _holders_; _burn = _burn_; _liquidityShare = _setliq_; _totalTaxIfBuying = _marketingShare.add(_holders).add(_burn).add(_liquidityShare); _totalTaxIfSelling = _totalTaxIfBuying; _totalDistributionShares = _totalTaxIfBuying.add(_totalTaxIfSelling); } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setMarketingWalletAddress(address newAddress) external onlyOwner() { marketingWalletAddress = payable(newAddress); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner { swapAndLiquifyByLimitOnly = newValue; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)); } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); if(newPairAddress == address(0)) //Create If Doesnt exist { newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } uniswapPair = newPairAddress; //Set new pair address uniswapV2Router = _uniswapV2Router; //Set new router address isMarketPair[address(uniswapPair)] = true; } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { // uint256 contractTokenBalance = balanceOf(address(this)); // bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; // if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) // { // if(swapAndLiquifyByLimitOnly) // contractTokenBalance = minimumTokensBeforeSwap; // swapAndLiquify(contractTokenBalance); // } addHolder(recipient); //add holders _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount); _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2); uint256 tokensForSwap = tAmount.sub(tokensForLP); swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance; uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2)); uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2); uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity); if(amountBNBMarketing > 0) transferToAddressETH(marketingWalletAddress, amountBNBMarketing); if(amountBNBLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, amountBNBLiquidity); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if(isMarketPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if(isMarketPair[recipient]) { feeAmount = amount.mul(_totalTaxIfSelling).div(100); } // feeAmount = amount.mul(_totalTax).div(100); if(feeAmount > 0) { // _balances[address(this)] = _balances[address(this)].add(feeAmount); // emit Transfer(sender, address(this), feeAmount); _distribution(sender,feeAmount); } return amount.sub(feeAmount); } function mint(uint _amount) public onlyOwner{ _totalSupply = _totalSupply.add(_amount); _balances[msg.sender] = _balances[msg.sender].add(_amount); emit Transfer(address(0), msg.sender, _amount); } function addHolder(address recipient) internal returns (bool) { for(uint i = 0; i < holders.length ; i++) { if (holders[i] == recipient) { return false; } } holders.push(recipient); return true; } function _distribution(address sender,uint256 disAmount) internal { uint256 marketShare = disAmount.mul(_marketingShare).div(100); uint256 burned = disAmount.mul(_burn).div(100); uint256 holderShare = disAmount.mul(_holders).div(100); uint256 LiquidityPool = disAmount.mul(_liquidityShare).div(100); uint256 divholder = (holderShare).div(holders.length - 1); _balances[marketingWalletAddress] = _balances[marketingWalletAddress].add(marketShare); _balances[deadAddress] = _balances[deadAddress].add(burned); _balances[pairAddress] = _balances[pairAddress].add(LiquidityPool); emit Transfer(sender,marketingWalletAddress, marketShare); emit Transfer(sender,deadAddress, burned); emit Transfer(sender,pairAddress, LiquidityPool); for(uint i = 0; i < holders.length ; i++) { if(holders[i] != pairAddress) { _balances[holders[i]] = _balances[holders[i]].add(divholder); emit Transfer(sender,holders[i], divholder); } } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","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":[],"name":"_burn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_holders","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"holders","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","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":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_market_","type":"uint256"},{"internalType":"uint256","name":"_holders_","type":"uint256"},{"internalType":"uint256","name":"_burn_","type":"uint256"},{"internalType":"uint256","name":"_setliq_","type":"uint256"}],"name":"setValues","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526040518060400160405280600781526020017f45434f5245414c00000000000000000000000000000000000000000000000000815250600390805190602001906200005192919062000511565b506040518060400160405280600781526020017f45434f5245414c00000000000000000000000000000000000000000000000000815250600490805190602001906200009f92919062000511565b506012600560006101000a81548160ff021916908360ff16021790555073f333148b458b4857e7039d822e4bbddf2c840724600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506004600a556002600b556002600c556002600d55600a600e55600a600f556014601055600560009054906101000a900460ff16600a6200018a91906200064a565b633b9aca006200019b919062000787565b601355600560009054906101000a900460ff16600a620001bc91906200064a565b6064620001ca919062000787565b6014556001601660156101000a81548160ff02191690831515021790555060006016806101000a81548160ff0219169083151502179055506001601660176101000a81548160ff0219169083151502179055503480156200022a57600080fd5b5060006200023d620004e060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600160086000620002f1620004e860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506011620003ac620004e060201b60201c565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506013546006600062000423620004e060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000471620004e060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601354604051620004d29190620005d2565b60405180910390a3620008a0565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8280546200051f90620007ff565b90600052602060002090601f0160209004810192826200054357600085556200058f565b82601f106200055e57805160ff19168380011785556200058f565b828001600101855582156200058f579182015b828111156200058e57825182559160200191906001019062000571565b5b5090506200059e9190620005a2565b5090565b5b80821115620005bd576000816000905550600101620005a3565b5090565b620005cc81620007e8565b82525050565b6000602082019050620005e96000830184620005c1565b92915050565b6000808291508390505b6001851115620006415780860481111562000619576200061862000835565b5b6001851615620006295780820291505b8081029050620006398562000893565b9450620005f9565b94509492505050565b60006200065782620007e8565b91506200066483620007f2565b9250620006937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200069b565b905092915050565b600082620006ad576001905062000780565b81620006bd576000905062000780565b8160018114620006d65760028114620006e15762000717565b600191505062000780565b60ff841115620006f657620006f562000835565b5b8360020a91508482111562000710576200070f62000835565b5b5062000780565b5060208310610133831016604e8410600b8410161715620007515782820a9050838111156200074b576200074a62000835565b5b62000780565b620007608484846001620005ef565b925090508184048111156200077a576200077962000835565b5b81810290505b9392505050565b60006200079482620007e8565b9150620007a183620007e8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620007dd57620007dc62000835565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b600060028204905060018216806200081857607f821691505b602082108114156200082f576200082e62000864565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b60805160601c61411a620008db60003960008181610c3d01528181610ca801528181612e8101528181612eef01526130ae015261411a6000f3fe60806040526004361061026b5760003560e01c806382eefb4311610144578063a8b08982116100b6578063da00097d1161007a578063da00097d1461096b578063dd62ed3e14610996578063ef422a18146109d3578063f0cd1dac146109fc578063f2fde38b14610a27578063f872858a14610a5057610272565b8063a8b0898214610884578063a9059cbb146108af578063c49b9a80146108ec578063c816841b14610915578063d158272d1461094057610272565b806395d89b411161010857806395d89b4114610774578063a0712d681461079f578063a073d37f146107c8578063a08e671f146107f3578063a457c2d71461081e578063a5d69d1f1461085b57610272565b806382eefb43146106b5578063844d591c146106e0578063862b6683146107095780638da5cb5b14610732578063914eb66a1461075d57610272565b80633b97084a116101dd578063557ed1ba116101a1578063557ed1ba1461058f57806357a5802f146105ba5780635881f3ef146105e557806361a23c69146106225780636871c7a81461064d57806370a082311461067857610272565b80633b97084a146104985780633ecad271146104c15780634a74bb02146104fe5780634cb80fd5146105295780635342acb41461055257610272565b806323b872dd1161022f57806323b872dd1461036057806327c8f8351461039d5780632a11ced0146103c85780632b112e4914610405578063313ce56714610430578063395093511461045b57610272565b806306fdde0314610277578063095ea7b3146102a2578063144f2f94146102df5780631694505e1461030a57806318160ddd1461033557610272565b3661027257005b600080fd5b34801561028357600080fd5b5061028c610a7b565b60405161029991906139c6565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c49190613695565b610b0d565b6040516102d69190613990565b60405180910390f35b3480156102eb57600080fd5b506102f4610b2b565b6040516103019190613ae8565b60405180910390f35b34801561031657600080fd5b5061031f610b31565b60405161032c91906139ab565b60405180910390f35b34801561034157600080fd5b5061034a610b57565b6040516103579190613ae8565b60405180910390f35b34801561036c57600080fd5b506103876004803603810190610382919061360a565b610b61565b6040516103949190613990565b60405180910390f35b3480156103a957600080fd5b506103b2610c3b565b6040516103bf9190613931565b60405180910390f35b3480156103d457600080fd5b506103ef60048036038101906103ea91906136fa565b610c5f565b6040516103fc9190613931565b60405180910390f35b34801561041157600080fd5b5061041a610c9e565b6040516104279190613ae8565b60405180910390f35b34801561043c57600080fd5b50610445610ce2565b6040516104529190613b03565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d9190613695565b610cf9565b60405161048f9190613990565b60405180910390f35b3480156104a457600080fd5b506104bf60048036038101906104ba91906136fa565b610dac565b005b3480156104cd57600080fd5b506104e860048036038101906104e3919061357c565b610e4b565b6040516104f59190613990565b60405180910390f35b34801561050a57600080fd5b50610513610e6b565b6040516105209190613990565b60405180910390f35b34801561053557600080fd5b50610550600480360381019061054b919061357c565b610e7e565b005b34801561055e57600080fd5b506105796004803603810190610574919061357c565b610f57565b6040516105869190613990565b60405180910390f35b34801561059b57600080fd5b506105a4610f77565b6040516105b19190613ae8565b60405180910390f35b3480156105c657600080fd5b506105cf610f7f565b6040516105dc9190613ae8565b60405180910390f35b3480156105f157600080fd5b5061060c6004803603810190610607919061357c565b610f85565b6040516106199190613931565b60405180910390f35b34801561062e57600080fd5b50610637611469565b6040516106449190613ae8565b60405180910390f35b34801561065957600080fd5b5061066261146f565b60405161066f9190613ae8565b60405180910390f35b34801561068457600080fd5b5061069f600480360381019061069a919061357c565b611475565b6040516106ac9190613ae8565b60405180910390f35b3480156106c157600080fd5b506106ca6114be565b6040516106d79190613ae8565b60405180910390f35b3480156106ec57600080fd5b5061070760048036038101906107029190613659565b6114c4565b005b34801561071557600080fd5b50610730600480360381019061072b9190613723565b6115f5565b005b34801561073e57600080fd5b50610747611717565b6040516107549190613931565b60405180910390f35b34801561076957600080fd5b50610772611740565b005b34801561078057600080fd5b50610789611895565b60405161079691906139c6565b60405180910390f35b3480156107ab57600080fd5b506107c660048036038101906107c191906136fa565b611927565b005b3480156107d457600080fd5b506107dd611ad5565b6040516107ea9190613ae8565b60405180910390f35b3480156107ff57600080fd5b50610808611adf565b6040516108159190613ae8565b60405180910390f35b34801561082a57600080fd5b5061084560048036038101906108409190613695565b611ae5565b6040516108529190613990565b60405180910390f35b34801561086757600080fd5b50610882600480360381019061087d91906136d1565b611bb2565b005b34801561089057600080fd5b50610899611c63565b6040516108a69190613931565b60405180910390f35b3480156108bb57600080fd5b506108d660048036038101906108d19190613695565b611c89565b6040516108e39190613990565b60405180910390f35b3480156108f857600080fd5b50610913600480360381019061090e91906136d1565b611ca8565b005b34801561092157600080fd5b5061092a611d91565b6040516109379190613931565b60405180910390f35b34801561094c57600080fd5b50610955611db7565b604051610962919061394c565b60405180910390f35b34801561097757600080fd5b50610980611ddd565b60405161098d9190613990565b60405180910390f35b3480156109a257600080fd5b506109bd60048036038101906109b891906135ce565b611dee565b6040516109ca9190613ae8565b60405180910390f35b3480156109df57600080fd5b506109fa60048036038101906109f59190613659565b611e75565b005b348015610a0857600080fd5b50610a11611f65565b604051610a1e9190613ae8565b60405180910390f35b348015610a3357600080fd5b50610a4e6004803603810190610a49919061357c565b611f6b565b005b348015610a5c57600080fd5b50610a6561212d565b604051610a729190613990565b60405180910390f35b606060038054610a8a90613d0d565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab690613d0d565b8015610b035780601f10610ad857610100808354040283529160200191610b03565b820191906000526020600020905b815481529060010190602001808311610ae657829003601f168201915b5050505050905090565b6000610b21610b1a612140565b8484612148565b6001905092915050565b600c5481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601354905090565b6000610b6e848484612313565b50610c3084610b7b612140565b610c2b8560405180606001604052806028815260200161409860289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610be1612140565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b39092919063ffffffff16565b612148565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60118181548110610c6f57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610cdd610ccc7f0000000000000000000000000000000000000000000000000000000000000000611475565b60135461271790919063ffffffff16565b905090565b6000600560009054906101000a900460ff16905090565b6000610da2610d06612140565b84610d9d8560076000610d17612140565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276190919063ffffffff16565b612148565b6001905092915050565b610db4612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3890613a88565b60405180910390fd5b8060148190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b601660159054906101000a900460ff1681565b610e86612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0a90613a88565b60405180910390fd5b80600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60086020528060005260406000206000915054906101000a900460ff1681565b600042905090565b600d5481565b6000610f8f612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101390613a88565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561106757600080fd5b505afa15801561107b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109f91906135a5565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561110157600080fd5b505afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113991906135a5565b6040518363ffffffff1660e01b8152600401611156929190613967565b60206040518083038186803b15801561116e57600080fd5b505afa158015611182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a691906135a5565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611367578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561122357600080fd5b505afa158015611237573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125b91906135a5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156112bd57600080fd5b505afa1580156112d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f591906135a5565b6040518363ffffffff1660e01b8152600401611312929190613967565b602060405180830381600087803b15801561132c57600080fd5b505af1158015611340573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136491906135a5565b91505b81601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b600a5481565b600b5481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600f5481565b6114cc612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155090613a88565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6115fd612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461168a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168190613a88565b60405180910390fd5b83600a8190555082600b8190555081600c8190555080600d819055506116e5600d546116d7600c546116c9600b54600a5461276190919063ffffffff16565b61276190919063ffffffff16565b61276190919063ffffffff16565b600e81905550600e54600f8190555061170b600f54600e5461276190919063ffffffff16565b60108190555050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611748612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cc90613a88565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600480546118a490613d0d565b80601f01602080910402602001604051908101604052809291908181526020018280546118d090613d0d565b801561191d5780601f106118f25761010080835404028352916020019161191d565b820191906000526020600020905b81548152906001019060200180831161190057829003601f168201915b5050505050905090565b61192f612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b390613a88565b60405180910390fd5b6119d18160135461276190919063ffffffff16565b601381905550611a2981600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276190919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611aca9190613ae8565b60405180910390a350565b6000601454905090565b60105481565b6000611ba8611af2612140565b84611ba3856040518060600160405280602581526020016140c06025913960076000611b1c612140565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b39092919063ffffffff16565b612148565b6001905092915050565b611bba612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e90613a88565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c9d611c96612140565b8484612313565b506001905092915050565b611cb0612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3490613a88565b60405180910390fd5b80601660156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051611d869190613990565b60405180910390a150565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60168054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e7d612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0190613a88565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e5481565b611f73612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff790613a88565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206790613a08565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601660179054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156121b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121af90613ac8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221f90613a28565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516123069190613ae8565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237b90613aa8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123eb906139e8565b60405180910390fd5b601660149054906101000a900460ff161561241b576124148484846127bf565b90506126ac565b61242483612992565b506124ae826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b39092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125945750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6125a8576125a3858585612aca565b6125aa565b825b90506125fe81600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276190919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161269e9190613ae8565b60405180910390a360019150505b9392505050565b60008383111582906126fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f291906139c6565b60405180910390fd5b506000838561270a9190613c1b565b9050809150509392505050565b600061275983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126b3565b905092915050565b60008082846127709190613b3a565b9050838110156127b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ac90613a48565b60405180910390fd5b8091505092915050565b600061284a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b39092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128df82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276190919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161297f9190613ae8565b60405180910390a3600190509392505050565b600080600090505b601180549050811015612a5c578273ffffffffffffffffffffffffffffffffffffffff16601182815481106129f8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612a49576000915050612ac5565b8080612a5490613d3f565b91505061299a565b506011829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b919050565b60008060009050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612b5257612b4b6064612b3d600e5486612c0190919063ffffffff16565b612c7c90919063ffffffff16565b9050612bd0565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612bcf57612bcc6064612bbe600f5486612c0190919063ffffffff16565b612c7c90919063ffffffff16565b90505b5b6000811115612be457612be38582612cc6565b5b612bf7818461271790919063ffffffff16565b9150509392505050565b600080831415612c145760009050612c76565b60008284612c229190613bc1565b9050828482612c319190613b90565b14612c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6890613a68565b60405180910390fd5b809150505b92915050565b6000612cbe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506134c5565b905092915050565b6000612cf06064612ce2600a5485612c0190919063ffffffff16565b612c7c90919063ffffffff16565b90506000612d1c6064612d0e600c5486612c0190919063ffffffff16565b612c7c90919063ffffffff16565b90506000612d486064612d3a600b5487612c0190919063ffffffff16565b612c7c90919063ffffffff16565b90506000612d746064612d66600d5488612c0190919063ffffffff16565b612c7c90919063ffffffff16565b90506000612d9c6001601180549050612d8d9190613c1b565b84612c7c90919063ffffffff16565b9050612e128560066000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276190919063ffffffff16565b60066000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ee984600660007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276190919063ffffffff16565b600660007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fc08260066000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276190919063ffffffff16565b60066000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516130a49190613ae8565b60405180910390a37f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516131299190613ae8565b60405180910390a3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131b09190613ae8565b60405180910390a360005b6011805490508110156134bb57601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166011828154811061323b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146134a8576133378260066000601185815481106132c3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276190919063ffffffff16565b6006600060118481548110613375577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060118181548110613418577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161349f9190613ae8565b60405180910390a35b80806134b390613d3f565b9150506131bb565b5050505050505050565b6000808311829061350c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161350391906139c6565b60405180910390fd5b506000838561351b9190613b90565b9050809150509392505050565b60008135905061353781614052565b92915050565b60008151905061354c81614052565b92915050565b60008135905061356181614069565b92915050565b60008135905061357681614080565b92915050565b60006020828403121561358e57600080fd5b600061359c84828501613528565b91505092915050565b6000602082840312156135b757600080fd5b60006135c58482850161353d565b91505092915050565b600080604083850312156135e157600080fd5b60006135ef85828601613528565b925050602061360085828601613528565b9150509250929050565b60008060006060848603121561361f57600080fd5b600061362d86828701613528565b935050602061363e86828701613528565b925050604061364f86828701613567565b9150509250925092565b6000806040838503121561366c57600080fd5b600061367a85828601613528565b925050602061368b85828601613552565b9150509250929050565b600080604083850312156136a857600080fd5b60006136b685828601613528565b92505060206136c785828601613567565b9150509250929050565b6000602082840312156136e357600080fd5b60006136f184828501613552565b91505092915050565b60006020828403121561370c57600080fd5b600061371a84828501613567565b91505092915050565b6000806000806080858703121561373957600080fd5b600061374787828801613567565b945050602061375887828801613567565b935050604061376987828801613567565b925050606061377a87828801613567565b91505092959194509250565b61378f81613c61565b82525050565b61379e81613c4f565b82525050565b6137ad81613c73565b82525050565b6137bc81613cb6565b82525050565b60006137cd82613b1e565b6137d78185613b29565b93506137e7818560208601613cda565b6137f081613e15565b840191505092915050565b6000613808602383613b29565b915061381382613e26565b604082019050919050565b600061382b602683613b29565b915061383682613e75565b604082019050919050565b600061384e602283613b29565b915061385982613ec4565b604082019050919050565b6000613871601b83613b29565b915061387c82613f13565b602082019050919050565b6000613894602183613b29565b915061389f82613f3c565b604082019050919050565b60006138b7602083613b29565b91506138c282613f8b565b602082019050919050565b60006138da602583613b29565b91506138e582613fb4565b604082019050919050565b60006138fd602483613b29565b915061390882614003565b604082019050919050565b61391c81613c9f565b82525050565b61392b81613ca9565b82525050565b60006020820190506139466000830184613795565b92915050565b60006020820190506139616000830184613786565b92915050565b600060408201905061397c6000830185613795565b6139896020830184613795565b9392505050565b60006020820190506139a560008301846137a4565b92915050565b60006020820190506139c060008301846137b3565b92915050565b600060208201905081810360008301526139e081846137c2565b905092915050565b60006020820190508181036000830152613a01816137fb565b9050919050565b60006020820190508181036000830152613a218161381e565b9050919050565b60006020820190508181036000830152613a4181613841565b9050919050565b60006020820190508181036000830152613a6181613864565b9050919050565b60006020820190508181036000830152613a8181613887565b9050919050565b60006020820190508181036000830152613aa1816138aa565b9050919050565b60006020820190508181036000830152613ac1816138cd565b9050919050565b60006020820190508181036000830152613ae1816138f0565b9050919050565b6000602082019050613afd6000830184613913565b92915050565b6000602082019050613b186000830184613922565b92915050565b600081519050919050565b600082825260208201905092915050565b6000613b4582613c9f565b9150613b5083613c9f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b8557613b84613d88565b5b828201905092915050565b6000613b9b82613c9f565b9150613ba683613c9f565b925082613bb657613bb5613db7565b5b828204905092915050565b6000613bcc82613c9f565b9150613bd783613c9f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c1057613c0f613d88565b5b828202905092915050565b6000613c2682613c9f565b9150613c3183613c9f565b925082821015613c4457613c43613d88565b5b828203905092915050565b6000613c5a82613c7f565b9050919050565b6000613c6c82613c7f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613cc182613cc8565b9050919050565b6000613cd382613c7f565b9050919050565b60005b83811015613cf8578082015181840152602081019050613cdd565b83811115613d07576000848401525b50505050565b60006002820490506001821680613d2557607f821691505b60208210811415613d3957613d38613de6565b5b50919050565b6000613d4a82613c9f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d7d57613d7c613d88565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61405b81613c4f565b811461406657600080fd5b50565b61407281613c73565b811461407d57600080fd5b50565b61408981613c9f565b811461409457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220850156a0c9a14e39aa284ca9e96256411340a27ad5b2606371217127d449dd7b64736f6c63430008040033
Deployed Bytecode
0x60806040526004361061026b5760003560e01c806382eefb4311610144578063a8b08982116100b6578063da00097d1161007a578063da00097d1461096b578063dd62ed3e14610996578063ef422a18146109d3578063f0cd1dac146109fc578063f2fde38b14610a27578063f872858a14610a5057610272565b8063a8b0898214610884578063a9059cbb146108af578063c49b9a80146108ec578063c816841b14610915578063d158272d1461094057610272565b806395d89b411161010857806395d89b4114610774578063a0712d681461079f578063a073d37f146107c8578063a08e671f146107f3578063a457c2d71461081e578063a5d69d1f1461085b57610272565b806382eefb43146106b5578063844d591c146106e0578063862b6683146107095780638da5cb5b14610732578063914eb66a1461075d57610272565b80633b97084a116101dd578063557ed1ba116101a1578063557ed1ba1461058f57806357a5802f146105ba5780635881f3ef146105e557806361a23c69146106225780636871c7a81461064d57806370a082311461067857610272565b80633b97084a146104985780633ecad271146104c15780634a74bb02146104fe5780634cb80fd5146105295780635342acb41461055257610272565b806323b872dd1161022f57806323b872dd1461036057806327c8f8351461039d5780632a11ced0146103c85780632b112e4914610405578063313ce56714610430578063395093511461045b57610272565b806306fdde0314610277578063095ea7b3146102a2578063144f2f94146102df5780631694505e1461030a57806318160ddd1461033557610272565b3661027257005b600080fd5b34801561028357600080fd5b5061028c610a7b565b60405161029991906139c6565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c49190613695565b610b0d565b6040516102d69190613990565b60405180910390f35b3480156102eb57600080fd5b506102f4610b2b565b6040516103019190613ae8565b60405180910390f35b34801561031657600080fd5b5061031f610b31565b60405161032c91906139ab565b60405180910390f35b34801561034157600080fd5b5061034a610b57565b6040516103579190613ae8565b60405180910390f35b34801561036c57600080fd5b506103876004803603810190610382919061360a565b610b61565b6040516103949190613990565b60405180910390f35b3480156103a957600080fd5b506103b2610c3b565b6040516103bf9190613931565b60405180910390f35b3480156103d457600080fd5b506103ef60048036038101906103ea91906136fa565b610c5f565b6040516103fc9190613931565b60405180910390f35b34801561041157600080fd5b5061041a610c9e565b6040516104279190613ae8565b60405180910390f35b34801561043c57600080fd5b50610445610ce2565b6040516104529190613b03565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d9190613695565b610cf9565b60405161048f9190613990565b60405180910390f35b3480156104a457600080fd5b506104bf60048036038101906104ba91906136fa565b610dac565b005b3480156104cd57600080fd5b506104e860048036038101906104e3919061357c565b610e4b565b6040516104f59190613990565b60405180910390f35b34801561050a57600080fd5b50610513610e6b565b6040516105209190613990565b60405180910390f35b34801561053557600080fd5b50610550600480360381019061054b919061357c565b610e7e565b005b34801561055e57600080fd5b506105796004803603810190610574919061357c565b610f57565b6040516105869190613990565b60405180910390f35b34801561059b57600080fd5b506105a4610f77565b6040516105b19190613ae8565b60405180910390f35b3480156105c657600080fd5b506105cf610f7f565b6040516105dc9190613ae8565b60405180910390f35b3480156105f157600080fd5b5061060c6004803603810190610607919061357c565b610f85565b6040516106199190613931565b60405180910390f35b34801561062e57600080fd5b50610637611469565b6040516106449190613ae8565b60405180910390f35b34801561065957600080fd5b5061066261146f565b60405161066f9190613ae8565b60405180910390f35b34801561068457600080fd5b5061069f600480360381019061069a919061357c565b611475565b6040516106ac9190613ae8565b60405180910390f35b3480156106c157600080fd5b506106ca6114be565b6040516106d79190613ae8565b60405180910390f35b3480156106ec57600080fd5b5061070760048036038101906107029190613659565b6114c4565b005b34801561071557600080fd5b50610730600480360381019061072b9190613723565b6115f5565b005b34801561073e57600080fd5b50610747611717565b6040516107549190613931565b60405180910390f35b34801561076957600080fd5b50610772611740565b005b34801561078057600080fd5b50610789611895565b60405161079691906139c6565b60405180910390f35b3480156107ab57600080fd5b506107c660048036038101906107c191906136fa565b611927565b005b3480156107d457600080fd5b506107dd611ad5565b6040516107ea9190613ae8565b60405180910390f35b3480156107ff57600080fd5b50610808611adf565b6040516108159190613ae8565b60405180910390f35b34801561082a57600080fd5b5061084560048036038101906108409190613695565b611ae5565b6040516108529190613990565b60405180910390f35b34801561086757600080fd5b50610882600480360381019061087d91906136d1565b611bb2565b005b34801561089057600080fd5b50610899611c63565b6040516108a69190613931565b60405180910390f35b3480156108bb57600080fd5b506108d660048036038101906108d19190613695565b611c89565b6040516108e39190613990565b60405180910390f35b3480156108f857600080fd5b50610913600480360381019061090e91906136d1565b611ca8565b005b34801561092157600080fd5b5061092a611d91565b6040516109379190613931565b60405180910390f35b34801561094c57600080fd5b50610955611db7565b604051610962919061394c565b60405180910390f35b34801561097757600080fd5b50610980611ddd565b60405161098d9190613990565b60405180910390f35b3480156109a257600080fd5b506109bd60048036038101906109b891906135ce565b611dee565b6040516109ca9190613ae8565b60405180910390f35b3480156109df57600080fd5b506109fa60048036038101906109f59190613659565b611e75565b005b348015610a0857600080fd5b50610a11611f65565b604051610a1e9190613ae8565b60405180910390f35b348015610a3357600080fd5b50610a4e6004803603810190610a49919061357c565b611f6b565b005b348015610a5c57600080fd5b50610a6561212d565b604051610a729190613990565b60405180910390f35b606060038054610a8a90613d0d565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab690613d0d565b8015610b035780601f10610ad857610100808354040283529160200191610b03565b820191906000526020600020905b815481529060010190602001808311610ae657829003601f168201915b5050505050905090565b6000610b21610b1a612140565b8484612148565b6001905092915050565b600c5481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601354905090565b6000610b6e848484612313565b50610c3084610b7b612140565b610c2b8560405180606001604052806028815260200161409860289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610be1612140565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b39092919063ffffffff16565b612148565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b60118181548110610c6f57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610cdd610ccc7f000000000000000000000000000000000000000000000000000000000000dead611475565b60135461271790919063ffffffff16565b905090565b6000600560009054906101000a900460ff16905090565b6000610da2610d06612140565b84610d9d8560076000610d17612140565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276190919063ffffffff16565b612148565b6001905092915050565b610db4612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3890613a88565b60405180910390fd5b8060148190555050565b60096020528060005260406000206000915054906101000a900460ff1681565b601660159054906101000a900460ff1681565b610e86612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0a90613a88565b60405180910390fd5b80600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60086020528060005260406000206000915054906101000a900460ff1681565b600042905090565b600d5481565b6000610f8f612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101390613a88565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561106757600080fd5b505afa15801561107b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109f91906135a5565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561110157600080fd5b505afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113991906135a5565b6040518363ffffffff1660e01b8152600401611156929190613967565b60206040518083038186803b15801561116e57600080fd5b505afa158015611182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a691906135a5565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611367578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561122357600080fd5b505afa158015611237573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125b91906135a5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156112bd57600080fd5b505afa1580156112d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f591906135a5565b6040518363ffffffff1660e01b8152600401611312929190613967565b602060405180830381600087803b15801561132c57600080fd5b505af1158015611340573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136491906135a5565b91505b81601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b600a5481565b600b5481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600f5481565b6114cc612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155090613a88565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6115fd612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461168a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168190613a88565b60405180910390fd5b83600a8190555082600b8190555081600c8190555080600d819055506116e5600d546116d7600c546116c9600b54600a5461276190919063ffffffff16565b61276190919063ffffffff16565b61276190919063ffffffff16565b600e81905550600e54600f8190555061170b600f54600e5461276190919063ffffffff16565b60108190555050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611748612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cc90613a88565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600480546118a490613d0d565b80601f01602080910402602001604051908101604052809291908181526020018280546118d090613d0d565b801561191d5780601f106118f25761010080835404028352916020019161191d565b820191906000526020600020905b81548152906001019060200180831161190057829003601f168201915b5050505050905090565b61192f612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b390613a88565b60405180910390fd5b6119d18160135461276190919063ffffffff16565b601381905550611a2981600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276190919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611aca9190613ae8565b60405180910390a350565b6000601454905090565b60105481565b6000611ba8611af2612140565b84611ba3856040518060600160405280602581526020016140c06025913960076000611b1c612140565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b39092919063ffffffff16565b612148565b6001905092915050565b611bba612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3e90613a88565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611c9d611c96612140565b8484612313565b506001905092915050565b611cb0612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3490613a88565b60405180910390fd5b80601660156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051611d869190613990565b60405180910390a150565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60168054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e7d612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0190613a88565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600e5481565b611f73612140565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff790613a88565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206790613a08565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601660179054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156121b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121af90613ac8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221f90613a28565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516123069190613ae8565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237b90613aa8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123eb906139e8565b60405180910390fd5b601660149054906101000a900460ff161561241b576124148484846127bf565b90506126ac565b61242483612992565b506124ae826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b39092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125945750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6125a8576125a3858585612aca565b6125aa565b825b90506125fe81600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276190919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161269e9190613ae8565b60405180910390a360019150505b9392505050565b60008383111582906126fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f291906139c6565b60405180910390fd5b506000838561270a9190613c1b565b9050809150509392505050565b600061275983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126b3565b905092915050565b60008082846127709190613b3a565b9050838110156127b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ac90613a48565b60405180910390fd5b8091505092915050565b600061284a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b39092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128df82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276190919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161297f9190613ae8565b60405180910390a3600190509392505050565b600080600090505b601180549050811015612a5c578273ffffffffffffffffffffffffffffffffffffffff16601182815481106129f8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612a49576000915050612ac5565b8080612a5490613d3f565b91505061299a565b506011829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190505b919050565b60008060009050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612b5257612b4b6064612b3d600e5486612c0190919063ffffffff16565b612c7c90919063ffffffff16565b9050612bd0565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612bcf57612bcc6064612bbe600f5486612c0190919063ffffffff16565b612c7c90919063ffffffff16565b90505b5b6000811115612be457612be38582612cc6565b5b612bf7818461271790919063ffffffff16565b9150509392505050565b600080831415612c145760009050612c76565b60008284612c229190613bc1565b9050828482612c319190613b90565b14612c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6890613a68565b60405180910390fd5b809150505b92915050565b6000612cbe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506134c5565b905092915050565b6000612cf06064612ce2600a5485612c0190919063ffffffff16565b612c7c90919063ffffffff16565b90506000612d1c6064612d0e600c5486612c0190919063ffffffff16565b612c7c90919063ffffffff16565b90506000612d486064612d3a600b5487612c0190919063ffffffff16565b612c7c90919063ffffffff16565b90506000612d746064612d66600d5488612c0190919063ffffffff16565b612c7c90919063ffffffff16565b90506000612d9c6001601180549050612d8d9190613c1b565b84612c7c90919063ffffffff16565b9050612e128560066000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276190919063ffffffff16565b60066000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ee984600660007f000000000000000000000000000000000000000000000000000000000000dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276190919063ffffffff16565b600660007f000000000000000000000000000000000000000000000000000000000000dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fc08260066000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276190919063ffffffff16565b60066000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516130a49190613ae8565b60405180910390a37f000000000000000000000000000000000000000000000000000000000000dead73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516131299190613ae8565b60405180910390a3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516131b09190613ae8565b60405180910390a360005b6011805490508110156134bb57601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166011828154811061323b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146134a8576133378260066000601185815481106132c3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461276190919063ffffffff16565b6006600060118481548110613375577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060118181548110613418577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161349f9190613ae8565b60405180910390a35b80806134b390613d3f565b9150506131bb565b5050505050505050565b6000808311829061350c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161350391906139c6565b60405180910390fd5b506000838561351b9190613b90565b9050809150509392505050565b60008135905061353781614052565b92915050565b60008151905061354c81614052565b92915050565b60008135905061356181614069565b92915050565b60008135905061357681614080565b92915050565b60006020828403121561358e57600080fd5b600061359c84828501613528565b91505092915050565b6000602082840312156135b757600080fd5b60006135c58482850161353d565b91505092915050565b600080604083850312156135e157600080fd5b60006135ef85828601613528565b925050602061360085828601613528565b9150509250929050565b60008060006060848603121561361f57600080fd5b600061362d86828701613528565b935050602061363e86828701613528565b925050604061364f86828701613567565b9150509250925092565b6000806040838503121561366c57600080fd5b600061367a85828601613528565b925050602061368b85828601613552565b9150509250929050565b600080604083850312156136a857600080fd5b60006136b685828601613528565b92505060206136c785828601613567565b9150509250929050565b6000602082840312156136e357600080fd5b60006136f184828501613552565b91505092915050565b60006020828403121561370c57600080fd5b600061371a84828501613567565b91505092915050565b6000806000806080858703121561373957600080fd5b600061374787828801613567565b945050602061375887828801613567565b935050604061376987828801613567565b925050606061377a87828801613567565b91505092959194509250565b61378f81613c61565b82525050565b61379e81613c4f565b82525050565b6137ad81613c73565b82525050565b6137bc81613cb6565b82525050565b60006137cd82613b1e565b6137d78185613b29565b93506137e7818560208601613cda565b6137f081613e15565b840191505092915050565b6000613808602383613b29565b915061381382613e26565b604082019050919050565b600061382b602683613b29565b915061383682613e75565b604082019050919050565b600061384e602283613b29565b915061385982613ec4565b604082019050919050565b6000613871601b83613b29565b915061387c82613f13565b602082019050919050565b6000613894602183613b29565b915061389f82613f3c565b604082019050919050565b60006138b7602083613b29565b91506138c282613f8b565b602082019050919050565b60006138da602583613b29565b91506138e582613fb4565b604082019050919050565b60006138fd602483613b29565b915061390882614003565b604082019050919050565b61391c81613c9f565b82525050565b61392b81613ca9565b82525050565b60006020820190506139466000830184613795565b92915050565b60006020820190506139616000830184613786565b92915050565b600060408201905061397c6000830185613795565b6139896020830184613795565b9392505050565b60006020820190506139a560008301846137a4565b92915050565b60006020820190506139c060008301846137b3565b92915050565b600060208201905081810360008301526139e081846137c2565b905092915050565b60006020820190508181036000830152613a01816137fb565b9050919050565b60006020820190508181036000830152613a218161381e565b9050919050565b60006020820190508181036000830152613a4181613841565b9050919050565b60006020820190508181036000830152613a6181613864565b9050919050565b60006020820190508181036000830152613a8181613887565b9050919050565b60006020820190508181036000830152613aa1816138aa565b9050919050565b60006020820190508181036000830152613ac1816138cd565b9050919050565b60006020820190508181036000830152613ae1816138f0565b9050919050565b6000602082019050613afd6000830184613913565b92915050565b6000602082019050613b186000830184613922565b92915050565b600081519050919050565b600082825260208201905092915050565b6000613b4582613c9f565b9150613b5083613c9f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b8557613b84613d88565b5b828201905092915050565b6000613b9b82613c9f565b9150613ba683613c9f565b925082613bb657613bb5613db7565b5b828204905092915050565b6000613bcc82613c9f565b9150613bd783613c9f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613c1057613c0f613d88565b5b828202905092915050565b6000613c2682613c9f565b9150613c3183613c9f565b925082821015613c4457613c43613d88565b5b828203905092915050565b6000613c5a82613c7f565b9050919050565b6000613c6c82613c7f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613cc182613cc8565b9050919050565b6000613cd382613c7f565b9050919050565b60005b83811015613cf8578082015181840152602081019050613cdd565b83811115613d07576000848401525b50505050565b60006002820490506001821680613d2557607f821691505b60208210811415613d3957613d38613de6565b5b50919050565b6000613d4a82613c9f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d7d57613d7c613d88565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61405b81613c4f565b811461406657600080fd5b50565b61407281613c73565b811461407d57600080fd5b50565b61408981613c9f565b811461409457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220850156a0c9a14e39aa284ca9e96256411340a27ad5b2606371217127d449dd7b64736f6c63430008040033
Deployed Bytecode Sourcemap
14315:13850:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17046:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18340:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15074:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15547:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17323:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21553:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14667:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15335:24;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20254:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17232:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17709:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19659:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14945:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15662:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19791:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14888:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6384:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15107:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20528:748;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14999:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15040:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17431:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15235:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18854:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19172:475;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5668:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5893:227;;;;;;;;;;;;;:::i;:::-;;17137:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26503:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18212:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15282:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17935:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20117:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15366:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21378:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19938:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15595:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14561:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15709:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17558:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19029:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15191:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6128:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15761:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17046:83;17083:13;17116:5;17109:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17046:83;:::o;18340:161::-;18415:4;18432:39;18441:12;:10;:12::i;:::-;18455:7;18464:6;18432:8;:39::i;:::-;18489:4;18482:11;;18340:161;;;;:::o;15074:24::-;;;;:::o;15547:41::-;;;;;;;;;;;;;:::o;17323:100::-;17376:7;17403:12;;17396:19;;17323:100;:::o;21553:313::-;21651:4;21668:36;21678:6;21686:9;21697:6;21668:9;:36::i;:::-;;21715:121;21724:6;21732:12;:10;:12::i;:::-;21746:89;21784:6;21746:89;;;;;;;;;;;;;;;;;:11;:19;21758:6;21746:19;;;;;;;;;;;;;;;:33;21766:12;:10;:12::i;:::-;21746:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;21715:8;:121::i;:::-;21854:4;21847:11;;21553:313;;;;;:::o;14667:81::-;;;:::o;15335:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20254:128::-;20307:7;20334:40;20351:22;20361:11;20351:9;:22::i;:::-;20334:12;;:16;;:40;;;;:::i;:::-;20327:47;;20254:128;:::o;17232:83::-;17273:5;17298:9;;;;;;;;;;;17291:16;;17232:83;:::o;17709:218::-;17797:4;17814:83;17823:12;:10;:12::i;:::-;17837:7;17846:50;17885:10;17846:11;:25;17858:12;:10;:12::i;:::-;17846:25;;;;;;;;;;;;;;;:34;17872:7;17846:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;17814:8;:83::i;:::-;17915:4;17908:11;;17709:218;;;;:::o;19659:124::-;5812:12;:10;:12::i;:::-;5802:22;;:6;;;;;;;;;;:22;;;5794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19767:8:::1;19741:23;:34;;;;19659:124:::0;:::o;14945:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;15662:40::-;;;;;;;;;;;;;:::o;19791:139::-;5812:12;:10;:12::i;:::-;5802:22;;:6;;;;;;;;;;:22;;;5794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19911:10:::1;19878:22;;:44;;;;;;;;;;;;;;;;;;19791:139:::0;:::o;14888:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;6384:90::-;6424:7;6451:15;6444:22;;6384:90;:::o;15107:34::-;;;;:::o;20528:748::-;20608:22;5812:12;:10;:12::i;:::-;5802:22;;:6;;;;;;;;;;:22;;;5794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20645:35:::1;20702:16;20645:74;;20768:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20750:53;;;20812:4;20819:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20750:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20733:110;;20885:1;20859:28;;:14;:28;;;20856:225;;;20973:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20955:74;;;21038:4;21045:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20955:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20938:131;;20856:225;21107:14;21093:11;;:28;;;;;;;;;;;;;;;;;;21173:16;21155:15;;:34;;;;;;;;;;;;;;;;;;21264:4;21227:12;:34;21248:11;;;;;;;;;;;21227:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;5872:1;20528:748:::0;;;:::o;14999:34::-;;;;:::o;15040:27::-;;;;:::o;17431:119::-;17497:7;17524:9;:18;17534:7;17524:18;;;;;;;;;;;;;;;;17517:25;;17431:119;;;:::o;15235:38::-;;;;:::o;18854:161::-;5812:12;:10;:12::i;:::-;5802:22;;:6;;;;;;;;;;:22;;;5794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18967:8:::1;18943:12;:21;18956:7;18943:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;19000:7;18986:11;;:21;;;;;;;;;;;;;;;;;;18854:161:::0;;:::o;19172:475::-;5812:12;:10;:12::i;:::-;5802:22;;:6;;;;;;;;;;:22;;;5794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19311:8:::1;19293:15;:26;;;;19341:9;19330:8;:20;;;;19369:6;19361:5;:14;;;;19405:8;19386:15;:27;;;;19446:61;19491:15;;19446:40;19480:5;;19446:29;19466:8;;19446:15;;:19;;:29;;;;:::i;:::-;:33;;:40;;;;:::i;:::-;:44;;:61;;;;:::i;:::-;19426:17;:81;;;;19539:17;;19518:18;:38;;;;19596:41;19618:18;;19596:17;;:21;;:41;;;;:::i;:::-;19569:24;:68;;;;19172:475:::0;;;;:::o;5668:79::-;5706:7;5733:6;;;;;;;;;;;5726:13;;5668:79;:::o;5893:227::-;5812:12;:10;:12::i;:::-;5802:22;;:6;;;;;;;;;;:22;;;5794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5997:42:::1;5960:81;;5981:6;::::0;::::1;;;;;;;;5960:81;;;;;;;;;;;;6069:42;6052:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;5893:227::o:0;17137:87::-;17176:13;17209:7;17202:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17137:87;:::o;26503:229::-;5812:12;:10;:12::i;:::-;5802:22;;:6;;;;;;;;;;:22;;;5794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;26573:25:::1;26590:7;26573:12;;:16;;:25;;;;:::i;:::-;26558:12;:40;;;;26633:34;26659:7;26633:9;:21;26643:10;26633:21;;;;;;;;;;;;;;;;:25;;:34;;;;:::i;:::-;26609:9;:21;26619:10;26609:21;;;;;;;;;;;;;;;:58;;;;26704:10;26683:41;;26700:1;26683:41;;;26716:7;26683:41;;;;;;:::i;:::-;;;;;;;;26503:229:::0;:::o;18212:120::-;18274:7;18301:23;;18294:30;;18212:120;:::o;15282:44::-;;;;:::o;17935:269::-;18028:4;18045:129;18054:12;:10;:12::i;:::-;18068:7;18077:96;18116:15;18077:96;;;;;;;;;;;;;;;;;:11;:25;18089:12;:10;:12::i;:::-;18077:25;;;;;;;;;;;;;;;:34;18103:7;18077:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18045:8;:129::i;:::-;18192:4;18185:11;;17935:269;;;;:::o;20117:125::-;5812:12;:10;:12::i;:::-;5802:22;;:6;;;;;;;;;;:22;;;5794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20226:8:::1;20198:25;::::0;:36:::1;;;;;;;;;;;;;;;;;;20117:125:::0;:::o;15366:26::-;;;;;;;;;;;;;:::o;21378:167::-;21456:4;21473:42;21483:12;:10;:12::i;:::-;21497:9;21508:6;21473:9;:42::i;:::-;;21533:4;21526:11;;21378:167;;;;:::o;19938:171::-;5812:12;:10;:12::i;:::-;5802:22;;:6;;;;;;;;;;:22;;;5794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20039:8:::1;20015:21;;:32;;;;;;;;;;;;;;;;;;20063:38;20092:8;20063:38;;;;;;:::i;:::-;;;;;;;;19938:171:::0;:::o;15595:26::-;;;;;;;;;;;;;:::o;14561:99::-;;;;;;;;;;;;;:::o;15709:45::-;;;;;;;;;;;;:::o;17558:143::-;17639:7;17666:11;:18;17678:5;17666:18;;;;;;;;;;;;;;;:27;17685:7;17666:27;;;;;;;;;;;;;;;;17659:34;;17558:143;;;;:::o;19029:135::-;5812:12;:10;:12::i;:::-;5802:22;;:6;;;;;;;;;;:22;;;5794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19148:8:::1;19119:17;:26;19137:7;19119:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;19029:135:::0;;:::o;15191:37::-;;;;:::o;6128:244::-;5812:12;:10;:12::i;:::-;5802:22;;:6;;;;;;;;;;:22;;;5794:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6237:1:::1;6217:22;;:8;:22;;;;6209:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6327:8;6298:38;;6319:6;::::0;::::1;;;;;;;;6298:38;;;;;;;;;;;;6356:8;6347:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6128:244:::0;:::o;15761:35::-;;;;;;;;;;;;;:::o;104:115::-;157:15;200:10;185:26;;104:115;:::o;18509:337::-;18619:1;18602:19;;:5;:19;;;;18594:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18700:1;18681:21;;:7;:21;;;;18673:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18784:6;18754:11;:18;18766:5;18754:18;;;;;;;;;;;;;;;:27;18773:7;18754:27;;;;;;;;;;;;;;;:36;;;;18822:7;18806:32;;18815:5;18806:32;;;18831:6;18806:32;;;;;;:::i;:::-;;;;;;;;18509:337;;;:::o;21874:1469::-;21961:4;22006:1;21988:20;;:6;:20;;;;21980:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;22090:1;22069:23;;:9;:23;;;;22061:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22148:16;;;;;;;;;;;22145:1191;;;22198:41;22213:6;22221:9;22232:6;22198:14;:41::i;:::-;22191:48;;;;22145:1191;22828:20;22838:9;22828;:20::i;:::-;;22903:53;22925:6;22903:53;;;;;;;;;;;;;;;;;:9;:17;22913:6;22903:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;22883:9;:17;22893:6;22883:17;;;;;;;;;;;;;;;:73;;;;22973:19;22996:17;:25;23014:6;22996:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;23025:17;:28;23043:9;23025:28;;;;;;;;;;;;;;;;;;;;;;;;;22996:57;22995:148;;23109:34;23117:6;23125:9;23136:6;23109:7;:34::i;:::-;22995:148;;;23100:6;22995:148;22973:170;;23183:37;23208:11;23183:9;:20;23193:9;23183:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;23160:9;:20;23170:9;23160:20;;;;;;;;;;;;;;;:60;;;;23261:9;23244:40;;23253:6;23244:40;;;23272:11;23244:40;;;;;;:::i;:::-;;;;;;;;23320:4;23313:11;;;21874:1469;;;;;;:::o;1379:192::-;1465:7;1498:1;1493;:6;;1501:12;1485:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1525:9;1541:1;1537;:5;;;;:::i;:::-;1525:17;;1562:1;1555:8;;;1379:192;;;;;:::o;1235:136::-;1293:7;1320:43;1324:1;1327;1320:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1313:50;;1235:136;;;;:::o;1046:181::-;1104:7;1124:9;1140:1;1136;:5;;;;:::i;:::-;1124:17;;1165:1;1160;:6;;1152:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1218:1;1211:8;;;1046:181;;;;:::o;23351:330::-;23444:4;23481:53;23503:6;23481:53;;;;;;;;;;;;;;;;;:9;:17;23491:6;23481:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;23461:9;:17;23471:6;23461:17;;;;;;;;;;;;;;;:73;;;;23568:32;23593:6;23568:9;:20;23578:9;23568:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;23545:9;:20;23555:9;23545:20;;;;;;;;;;;;;;;:55;;;;23633:9;23616:35;;23625:6;23616:35;;;23644:6;23616:35;;;;;;:::i;:::-;;;;;;;;23669:4;23662:11;;23351:330;;;;;:::o;26740:284::-;26796:4;26819:6;26828:1;26819:10;;26815:144;26835:7;:14;;;;26831:1;:18;26815:144;;;26890:9;26876:23;;:7;26884:1;26876:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;26872:76;;;26927:5;26920:12;;;;;26872:76;26852:3;;;;;:::i;:::-;;;;26815:144;;;;26971:7;26984:9;26971:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27012:4;27005:11;;26740:284;;;;:::o;25743:748::-;25829:7;25859:17;25879:1;25859:21;;25904:12;:20;25917:6;25904:20;;;;;;;;;;;;;;;;;;;;;;;;;25901:223;;;25953:38;25987:3;25953:29;25964:17;;25953:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;25941:50;;25901:223;;;26021:12;:23;26034:9;26021:23;;;;;;;;;;;;;;;;;;;;;;;;;26018:106;;;26073:39;26108:3;26073:30;26084:18;;26073:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;26061:51;;26018:106;25901:223;26217:1;26205:9;:13;26202:241;;;26400:31;26414:6;26421:9;26400:13;:31::i;:::-;26202:241;26462:21;26473:9;26462:6;:10;;:21;;;;:::i;:::-;26455:28;;;25743:748;;;;;:::o;1579:250::-;1637:7;1666:1;1661;:6;1657:47;;;1691:1;1684:8;;;;1657:47;1716:9;1732:1;1728;:5;;;;:::i;:::-;1716:17;;1761:1;1756;1752;:5;;;;:::i;:::-;:10;1744:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1820:1;1813:8;;;1579:250;;;;;:::o;1837:132::-;1895:7;1922:39;1926:1;1929;1922:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1915:46;;1837:132;;;;:::o;27032:1124::-;27111:19;27133:39;27168:3;27133:30;27147:15;;27133:9;:13;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;27111:61;;27183:14;27200:29;27225:3;27200:20;27214:5;;27200:9;:13;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;27183:46;;27240:19;27262:32;27290:3;27262:23;27276:8;;27262:9;:13;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;27240:54;;27307:21;27331:39;27366:3;27331:30;27345:15;;27331:9;:13;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;27307:63;;27383:17;27403:37;27438:1;27421:7;:14;;;;:18;;;;:::i;:::-;27404:11;27403:17;;:37;;;;:::i;:::-;27383:57;;27489:50;27527:11;27489:9;:33;27499:22;;;;;;;;;;;27489:33;;;;;;;;;;;;;;;;:37;;:50;;;;:::i;:::-;27453:9;:33;27463:22;;;;;;;;;;;27453:33;;;;;;;;;;;;;;;:86;;;;27575:34;27602:6;27575:9;:22;27585:11;27575:22;;;;;;;;;;;;;;;;:26;;:34;;;;:::i;:::-;27550:9;:22;27560:11;27550:22;;;;;;;;;;;;;;;:59;;;;27647:41;27674:13;27647:9;:22;27657:11;;;;;;;;;;;27647:22;;;;;;;;;;;;;;;;:26;;:41;;;;:::i;:::-;27622:9;:22;27632:11;;;;;;;;;;;27622:22;;;;;;;;;;;;;;;:66;;;;27722:22;;;;;;;;;;;27706:52;;27715:6;27706:52;;;27746:11;27706:52;;;;;;:::i;:::-;;;;;;;;27790:11;27774:36;;27783:6;27774:36;;;27803:6;27774:36;;;;;;:::i;:::-;;;;;;;;27852:11;;;;;;;;;;;27836:43;;27845:6;27836:43;;;27865:13;27836:43;;;;;;:::i;:::-;;;;;;;;27896:6;27892:255;27912:7;:14;;;;27908:1;:18;27892:255;;;27966:11;;;;;;;;;;;27952:25;;:7;27960:1;27952:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;27949:187;;28022:36;28048:9;28022;:21;28032:7;28040:1;28032:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28022:21;;;;;;;;;;;;;;;;:25;;:36;;;;:::i;:::-;27998:9;:21;28008:7;28016:1;28008:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27998:21;;;;;;;;;;;;;;;:60;;;;28098:7;28106:1;28098:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28082:38;;28091:6;28082:38;;;28110:9;28082:38;;;;;;:::i;:::-;;;;;;;;27949:187;27929:3;;;;;:::i;:::-;;;;27892:255;;;;27032:1124;;;;;;;:::o;1977:278::-;2063:7;2095:1;2091;:5;2098:12;2083:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2122:9;2138:1;2134;:5;;;;:::i;:::-;2122:17;;2246:1;2239:8;;;1977:278;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:139::-;486:5;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;492:87;;;;:::o;585:262::-;644:6;693:2;681:9;672:7;668:23;664:32;661:2;;;709:1;706;699:12;661:2;752:1;777:53;822:7;813:6;802:9;798:22;777:53;:::i;:::-;767:63;;723:117;651:196;;;;:::o;853:284::-;923:6;972:2;960:9;951:7;947:23;943:32;940:2;;;988:1;985;978:12;940:2;1031:1;1056:64;1112:7;1103:6;1092:9;1088:22;1056:64;:::i;:::-;1046:74;;1002:128;930:207;;;;:::o;1143:407::-;1211:6;1219;1268:2;1256:9;1247:7;1243:23;1239:32;1236:2;;;1284:1;1281;1274:12;1236:2;1327:1;1352:53;1397:7;1388:6;1377:9;1373:22;1352:53;:::i;:::-;1342:63;;1298:117;1454:2;1480:53;1525:7;1516:6;1505:9;1501:22;1480:53;:::i;:::-;1470:63;;1425:118;1226:324;;;;;:::o;1556:552::-;1633:6;1641;1649;1698:2;1686:9;1677:7;1673:23;1669:32;1666:2;;;1714:1;1711;1704:12;1666:2;1757:1;1782:53;1827:7;1818:6;1807:9;1803:22;1782:53;:::i;:::-;1772:63;;1728:117;1884:2;1910:53;1955:7;1946:6;1935:9;1931:22;1910:53;:::i;:::-;1900:63;;1855:118;2012:2;2038:53;2083:7;2074:6;2063:9;2059:22;2038:53;:::i;:::-;2028:63;;1983:118;1656:452;;;;;:::o;2114:401::-;2179:6;2187;2236:2;2224:9;2215:7;2211:23;2207:32;2204:2;;;2252:1;2249;2242:12;2204:2;2295:1;2320:53;2365:7;2356:6;2345:9;2341:22;2320:53;:::i;:::-;2310:63;;2266:117;2422:2;2448:50;2490:7;2481:6;2470:9;2466:22;2448:50;:::i;:::-;2438:60;;2393:115;2194:321;;;;;:::o;2521:407::-;2589:6;2597;2646:2;2634:9;2625:7;2621:23;2617:32;2614:2;;;2662:1;2659;2652:12;2614:2;2705:1;2730:53;2775:7;2766:6;2755:9;2751:22;2730:53;:::i;:::-;2720:63;;2676:117;2832:2;2858:53;2903:7;2894:6;2883:9;2879:22;2858:53;:::i;:::-;2848:63;;2803:118;2604:324;;;;;:::o;2934:256::-;2990:6;3039:2;3027:9;3018:7;3014:23;3010:32;3007:2;;;3055:1;3052;3045:12;3007:2;3098:1;3123:50;3165:7;3156:6;3145:9;3141:22;3123:50;:::i;:::-;3113:60;;3069:114;2997:193;;;;:::o;3196:262::-;3255:6;3304:2;3292:9;3283:7;3279:23;3275:32;3272:2;;;3320:1;3317;3310:12;3272:2;3363:1;3388:53;3433:7;3424:6;3413:9;3409:22;3388:53;:::i;:::-;3378:63;;3334:117;3262:196;;;;:::o;3464:698::-;3550:6;3558;3566;3574;3623:3;3611:9;3602:7;3598:23;3594:33;3591:2;;;3640:1;3637;3630:12;3591:2;3683:1;3708:53;3753:7;3744:6;3733:9;3729:22;3708:53;:::i;:::-;3698:63;;3654:117;3810:2;3836:53;3881:7;3872:6;3861:9;3857:22;3836:53;:::i;:::-;3826:63;;3781:118;3938:2;3964:53;4009:7;4000:6;3989:9;3985:22;3964:53;:::i;:::-;3954:63;;3909:118;4066:2;4092:53;4137:7;4128:6;4117:9;4113:22;4092:53;:::i;:::-;4082:63;;4037:118;3581:581;;;;;;;:::o;4168:142::-;4271:32;4297:5;4271:32;:::i;:::-;4266:3;4259:45;4249:61;;:::o;4316:118::-;4403:24;4421:5;4403:24;:::i;:::-;4398:3;4391:37;4381:53;;:::o;4440:109::-;4521:21;4536:5;4521:21;:::i;:::-;4516:3;4509:34;4499:50;;:::o;4555:185::-;4669:64;4727:5;4669:64;:::i;:::-;4664:3;4657:77;4647:93;;:::o;4746:364::-;4834:3;4862:39;4895:5;4862:39;:::i;:::-;4917:71;4981:6;4976:3;4917:71;:::i;:::-;4910:78;;4997:52;5042:6;5037:3;5030:4;5023:5;5019:16;4997:52;:::i;:::-;5074:29;5096:6;5074:29;:::i;:::-;5069:3;5065:39;5058:46;;4838:272;;;;;:::o;5116:366::-;5258:3;5279:67;5343:2;5338:3;5279:67;:::i;:::-;5272:74;;5355:93;5444:3;5355:93;:::i;:::-;5473:2;5468:3;5464:12;5457:19;;5262:220;;;:::o;5488:366::-;5630:3;5651:67;5715:2;5710:3;5651:67;:::i;:::-;5644:74;;5727:93;5816:3;5727:93;:::i;:::-;5845:2;5840:3;5836:12;5829:19;;5634:220;;;:::o;5860:366::-;6002:3;6023:67;6087:2;6082:3;6023:67;:::i;:::-;6016:74;;6099:93;6188:3;6099:93;:::i;:::-;6217:2;6212:3;6208:12;6201:19;;6006:220;;;:::o;6232:366::-;6374:3;6395:67;6459:2;6454:3;6395:67;:::i;:::-;6388:74;;6471:93;6560:3;6471:93;:::i;:::-;6589:2;6584:3;6580:12;6573:19;;6378:220;;;:::o;6604:366::-;6746:3;6767:67;6831:2;6826:3;6767:67;:::i;:::-;6760:74;;6843:93;6932:3;6843:93;:::i;:::-;6961:2;6956:3;6952:12;6945:19;;6750:220;;;:::o;6976:366::-;7118:3;7139:67;7203:2;7198:3;7139:67;:::i;:::-;7132:74;;7215:93;7304:3;7215:93;:::i;:::-;7333:2;7328:3;7324:12;7317:19;;7122:220;;;:::o;7348:366::-;7490:3;7511:67;7575:2;7570:3;7511:67;:::i;:::-;7504:74;;7587:93;7676:3;7587:93;:::i;:::-;7705:2;7700:3;7696:12;7689:19;;7494:220;;;:::o;7720:366::-;7862:3;7883:67;7947:2;7942:3;7883:67;:::i;:::-;7876:74;;7959:93;8048:3;7959:93;:::i;:::-;8077:2;8072:3;8068:12;8061:19;;7866:220;;;:::o;8092:118::-;8179:24;8197:5;8179:24;:::i;:::-;8174:3;8167:37;8157:53;;:::o;8216:112::-;8299:22;8315:5;8299:22;:::i;:::-;8294:3;8287:35;8277:51;;:::o;8334:222::-;8427:4;8465:2;8454:9;8450:18;8442:26;;8478:71;8546:1;8535:9;8531:17;8522:6;8478:71;:::i;:::-;8432:124;;;;:::o;8562:254::-;8671:4;8709:2;8698:9;8694:18;8686:26;;8722:87;8806:1;8795:9;8791:17;8782:6;8722:87;:::i;:::-;8676:140;;;;:::o;8822:332::-;8943:4;8981:2;8970:9;8966:18;8958:26;;8994:71;9062:1;9051:9;9047:17;9038:6;8994:71;:::i;:::-;9075:72;9143:2;9132:9;9128:18;9119:6;9075:72;:::i;:::-;8948:206;;;;;:::o;9160:210::-;9247:4;9285:2;9274:9;9270:18;9262:26;;9298:65;9360:1;9349:9;9345:17;9336:6;9298:65;:::i;:::-;9252:118;;;;:::o;9376:276::-;9496:4;9534:2;9523:9;9519:18;9511:26;;9547:98;9642:1;9631:9;9627:17;9618:6;9547:98;:::i;:::-;9501:151;;;;:::o;9658:313::-;9771:4;9809:2;9798:9;9794:18;9786:26;;9858:9;9852:4;9848:20;9844:1;9833:9;9829:17;9822:47;9886:78;9959:4;9950:6;9886:78;:::i;:::-;9878:86;;9776:195;;;;:::o;9977:419::-;10143:4;10181:2;10170:9;10166:18;10158:26;;10230:9;10224:4;10220:20;10216:1;10205:9;10201:17;10194:47;10258:131;10384:4;10258:131;:::i;:::-;10250:139;;10148:248;;;:::o;10402:419::-;10568:4;10606:2;10595:9;10591:18;10583:26;;10655:9;10649:4;10645:20;10641:1;10630:9;10626:17;10619:47;10683:131;10809:4;10683:131;:::i;:::-;10675:139;;10573:248;;;:::o;10827:419::-;10993:4;11031:2;11020:9;11016:18;11008:26;;11080:9;11074:4;11070:20;11066:1;11055:9;11051:17;11044:47;11108:131;11234:4;11108:131;:::i;:::-;11100:139;;10998:248;;;:::o;11252:419::-;11418:4;11456:2;11445:9;11441:18;11433:26;;11505:9;11499:4;11495:20;11491:1;11480:9;11476:17;11469:47;11533:131;11659:4;11533:131;:::i;:::-;11525:139;;11423:248;;;:::o;11677:419::-;11843:4;11881:2;11870:9;11866:18;11858:26;;11930:9;11924:4;11920:20;11916:1;11905:9;11901:17;11894:47;11958:131;12084:4;11958:131;:::i;:::-;11950:139;;11848:248;;;:::o;12102:419::-;12268:4;12306:2;12295:9;12291:18;12283:26;;12355:9;12349:4;12345:20;12341:1;12330:9;12326:17;12319:47;12383:131;12509:4;12383:131;:::i;:::-;12375:139;;12273:248;;;:::o;12527:419::-;12693:4;12731:2;12720:9;12716:18;12708:26;;12780:9;12774:4;12770:20;12766:1;12755:9;12751:17;12744:47;12808:131;12934:4;12808:131;:::i;:::-;12800:139;;12698:248;;;:::o;12952:419::-;13118:4;13156:2;13145:9;13141:18;13133:26;;13205:9;13199:4;13195:20;13191:1;13180:9;13176:17;13169:47;13233:131;13359:4;13233:131;:::i;:::-;13225:139;;13123:248;;;:::o;13377:222::-;13470:4;13508:2;13497:9;13493:18;13485:26;;13521:71;13589:1;13578:9;13574:17;13565:6;13521:71;:::i;:::-;13475:124;;;;:::o;13605:214::-;13694:4;13732:2;13721:9;13717:18;13709:26;;13745:67;13809:1;13798:9;13794:17;13785:6;13745:67;:::i;:::-;13699:120;;;;:::o;13825:99::-;13877:6;13911:5;13905:12;13895:22;;13884:40;;;:::o;13930:169::-;14014:11;14048:6;14043:3;14036:19;14088:4;14083:3;14079:14;14064:29;;14026:73;;;;:::o;14105:305::-;14145:3;14164:20;14182:1;14164:20;:::i;:::-;14159:25;;14198:20;14216:1;14198:20;:::i;:::-;14193:25;;14352:1;14284:66;14280:74;14277:1;14274:81;14271:2;;;14358:18;;:::i;:::-;14271:2;14402:1;14399;14395:9;14388:16;;14149:261;;;;:::o;14416:185::-;14456:1;14473:20;14491:1;14473:20;:::i;:::-;14468:25;;14507:20;14525:1;14507:20;:::i;:::-;14502:25;;14546:1;14536:2;;14551:18;;:::i;:::-;14536:2;14593:1;14590;14586:9;14581:14;;14458:143;;;;:::o;14607:348::-;14647:7;14670:20;14688:1;14670:20;:::i;:::-;14665:25;;14704:20;14722:1;14704:20;:::i;:::-;14699:25;;14892:1;14824:66;14820:74;14817:1;14814:81;14809:1;14802:9;14795:17;14791:105;14788:2;;;14899:18;;:::i;:::-;14788:2;14947:1;14944;14940:9;14929:20;;14655:300;;;;:::o;14961:191::-;15001:4;15021:20;15039:1;15021:20;:::i;:::-;15016:25;;15055:20;15073:1;15055:20;:::i;:::-;15050:25;;15094:1;15091;15088:8;15085:2;;;15099:18;;:::i;:::-;15085:2;15144:1;15141;15137:9;15129:17;;15006:146;;;;:::o;15158:96::-;15195:7;15224:24;15242:5;15224:24;:::i;:::-;15213:35;;15203:51;;;:::o;15260:104::-;15305:7;15334:24;15352:5;15334:24;:::i;:::-;15323:35;;15313:51;;;:::o;15370:90::-;15404:7;15447:5;15440:13;15433:21;15422:32;;15412:48;;;:::o;15466:126::-;15503:7;15543:42;15536:5;15532:54;15521:65;;15511:81;;;:::o;15598:77::-;15635:7;15664:5;15653:16;;15643:32;;;:::o;15681:86::-;15716:7;15756:4;15749:5;15745:16;15734:27;;15724:43;;;:::o;15773:180::-;15850:9;15883:64;15941:5;15883:64;:::i;:::-;15870:77;;15860:93;;;:::o;15959:140::-;16036:9;16069:24;16087:5;16069:24;:::i;:::-;16056:37;;16046:53;;;:::o;16105:307::-;16173:1;16183:113;16197:6;16194:1;16191:13;16183:113;;;16282:1;16277:3;16273:11;16267:18;16263:1;16258:3;16254:11;16247:39;16219:2;16216:1;16212:10;16207:15;;16183:113;;;16314:6;16311:1;16308:13;16305:2;;;16394:1;16385:6;16380:3;16376:16;16369:27;16305:2;16154:258;;;;:::o;16418:320::-;16462:6;16499:1;16493:4;16489:12;16479:22;;16546:1;16540:4;16536:12;16567:18;16557:2;;16623:4;16615:6;16611:17;16601:27;;16557:2;16685;16677:6;16674:14;16654:18;16651:38;16648:2;;;16704:18;;:::i;:::-;16648:2;16469:269;;;;:::o;16744:233::-;16783:3;16806:24;16824:5;16806:24;:::i;:::-;16797:33;;16852:66;16845:5;16842:77;16839:2;;;16922:18;;:::i;:::-;16839:2;16969:1;16962:5;16958:13;16951:20;;16787:190;;;:::o;16983:180::-;17031:77;17028:1;17021:88;17128:4;17125:1;17118:15;17152:4;17149:1;17142:15;17169:180;17217:77;17214:1;17207:88;17314:4;17311:1;17304:15;17338:4;17335:1;17328:15;17355:180;17403:77;17400:1;17393:88;17500:4;17497:1;17490:15;17524:4;17521:1;17514:15;17541:102;17582:6;17633:2;17629:7;17624:2;17617:5;17613:14;17609:28;17599:38;;17589:54;;;:::o;17649:222::-;17789:34;17785:1;17777:6;17773:14;17766:58;17858:5;17853:2;17845:6;17841:15;17834:30;17755:116;:::o;17877:225::-;18017:34;18013:1;18005:6;18001:14;17994:58;18086:8;18081:2;18073:6;18069:15;18062:33;17983:119;:::o;18108:221::-;18248:34;18244:1;18236:6;18232:14;18225:58;18317:4;18312:2;18304:6;18300:15;18293:29;18214:115;:::o;18335:177::-;18475:29;18471:1;18463:6;18459:14;18452:53;18441:71;:::o;18518:220::-;18658:34;18654:1;18646:6;18642:14;18635:58;18727:3;18722:2;18714:6;18710:15;18703:28;18624:114;:::o;18744:182::-;18884:34;18880:1;18872:6;18868:14;18861:58;18850:76;:::o;18932:224::-;19072:34;19068:1;19060:6;19056:14;19049:58;19141:7;19136:2;19128:6;19124:15;19117:32;19038:118;:::o;19162:223::-;19302:34;19298:1;19290:6;19286:14;19279:58;19371:6;19366:2;19358:6;19354:15;19347:31;19268:117;:::o;19391:122::-;19464:24;19482:5;19464:24;:::i;:::-;19457:5;19454:35;19444:2;;19503:1;19500;19493:12;19444:2;19434:79;:::o;19519:116::-;19589:21;19604:5;19589:21;:::i;:::-;19582:5;19579:32;19569:2;;19625:1;19622;19615:12;19569:2;19559:76;:::o;19641:122::-;19714:24;19732:5;19714:24;:::i;:::-;19707:5;19704:35;19694:2;;19753:1;19750;19743:12;19694:2;19684:79;:::o
Swarm Source
ipfs://850156a0c9a14e39aa284ca9e96256411340a27ad5b2606371217127d449dd7b
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.