ERC-20
Overview
Max Total Supply
1,000,000,000,000 $CATBOYAPE
Holders
6
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
17,600,000,000 $CATBOYAPEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CATBOYAPE
Compiler Version
v0.8.3+commit.8d00100c
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-17 */ /* PROJECT : CAT BOY APE , SLIPPAGE: 13-15% MAX BUY : 2% , MAX WALLET: 3% JOIN TG: https://t.me/catboyape */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.3; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 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 _previousOwner; 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 renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function getUnlockTime() public view returns (uint256) { return _lockTime; } function getTime() public view returns (uint256) { return block.timestamp; } function lock(uint256 time) public virtual onlyOwner { _previousOwner = _owner; _owner = address(0); _lockTime = block.timestamp + time; emit OwnershipTransferred(_owner, address(0)); } function unlock() public virtual { require(_previousOwner == msg.sender, "You don't have permission to unlock"); require(block.timestamp > _lockTime , "Contract is locked until 7 days"); emit OwnershipTransferred(_owner, _previousOwner); _owner = _previousOwner; } } 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 CATBOYAPE is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "CAT BOY APE"; string private _symbol = "$CATBOYAPE"; uint8 private _decimals = 9; uint256 private _totalSupply = 1 * 10**12 * 10**9; uint256 private minimumTokensBeforeSwap = 1000 * 10**9; uint256 public _limitbuy = 3 * 10**10 * 10**9; uint256 public _limitwallet = 4 * 10**10 * 10**9; uint256 public _giveaway = 3; uint256 public _burntax = 0; uint256 public _totaltax = 0; uint256 public _liquidity = 2; uint256 public _marketing = 6; uint256 public _developer = 4; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public isBlacklisted; address payable public marketingWallet = payable(0xD1C15F44FeCf654B4b6dC4B649D3a0D83523c32c); address payable public giveawayWallet = payable(0x49610281718dE78d42571D2237cCbd41757bc613); address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; 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); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; _totaltax = _liquidity.add(_marketing).add(_developer); _burntax = _totaltax.add(_giveaway); isWalletLimitExempt[owner()] = true; isWalletLimitExempt[address(uniswapV2Pair)] = true; _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 blacklistAddress(address account, bool newValue) public onlyOwner { isBlacklisted[account] = newValue; } function setIsExcludedFromFee(address account, bool newValue) public onlyOwner { isExcludedFromFee[account] = newValue; } function setTaxes(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newdevTax, uint256 newgiveawayTax) external onlyOwner() { _liquidity = newLiquidityTax; _marketing = newMarketingTax; _developer = newdevTax; _giveaway = newgiveawayTax; _totaltax = _liquidity.add(_marketing).add(_developer); _burntax = _totaltax.add(_giveaway); } function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() { _limitbuy = maxTxAmount; } function enableDisableWalletLimit(bool newValue) external onlyOwner { checkWalletLimit = newValue; } function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner { isWalletLimitExempt[holder] = exempt; } function setWalletLimit(uint256 newLimit) external onlyOwner { _limitwallet = newLimit; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setMarketingWallet(address newAddress) external onlyOwner() { marketingWallet = payable(newAddress); } function setgiveawayWallet(address newAddress) external onlyOwner() { giveawayWallet = 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()); } uniswapV2Pair = newPairAddress; //Set new pair address uniswapV2Router = _uniswapV2Router; //Set new router address } //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"); require(!isBlacklisted[sender] && !isBlacklisted[recipient], "To/from address is blacklisted!"); require(amount > 0, "Transfer amount must be greater than zero"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if(sender != owner() && recipient != owner()) { require(amount <= _limitbuy, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && sender != uniswapV2Pair && swapAndLiquifyEnabled) { if(swapAndLiquifyByLimitOnly) contractTokenBalance = minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount); if(checkWalletLimit && !isWalletLimitExempt[recipient]) require(balanceOf(recipient).add(finalAmount) <= _limitwallet); _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.div(_totaltax).mul(_liquidity).div(2); uint256 tokensForSwap = tAmount.sub(tokensForLP); swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance; uint256 totalBNBFee = _totaltax.sub(_liquidity.div(2)); uint256 amountBNBLiquidity = amountReceived.mul(_liquidity).div(totalBNBFee).div(2); uint256 amountBNBRewards = amountReceived.mul(_developer).div(totalBNBFee); uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBRewards); transferToAddressETH(marketingWallet, amountBNBMarketing); transferToAddressETH(giveawayWallet, amountBNBRewards); 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 = recipient == uniswapV2Pair ? amount.mul(_burntax).div(100) : amount.mul(_totaltax).div(100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } }
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":"_burntax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_developer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_giveaway","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_limitbuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_limitwallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totaltax","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":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"blacklistAddress","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"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":[],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"giveawayWallet","outputs":[{"internalType":"address payable","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":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","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":[],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","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":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newdevTax","type":"uint256"},{"internalType":"uint256","name":"newgiveawayTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setgiveawayWallet","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526040518060400160405280600b81526020017f43415420424f592041504500000000000000000000000000000000000000000081525060039080519060200190620000519291906200093b565b506040518060400160405280600a81526020017f24434154424f5941504500000000000000000000000000000000000000000000815250600490805190602001906200009f9291906200093b565b506009600560006101000a81548160ff021916908360ff160217905550683635c9adc5dea0000060065564e8d4a510006007556801a055690d9db8000060085568022b1c8c1227a000006009556003600a556000600b556000600c556002600d556006600e556004600f5573d1c15f44fecf654b4b6dc4b649d3a0d83523c32c601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507349610281718de78d42571d2237ccbd41757bc613601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506001601860156101000a81548160ff0219169083151502179055506000601860166101000a81548160ff0219169083151502179055506001601860176101000a81548160ff0219169083151502179055503480156200024a57600080fd5b5060006200025d620008a760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200035b57600080fd5b505afa15801562000370573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000396919062000a02565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003f957600080fd5b505afa1580156200040e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000434919062000a02565b6040518363ffffffff1660e01b81526004016200045392919062000a77565b602060405180830381600087803b1580156200046e57600080fd5b505af115801562000483573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a9919062000a02565b601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160126000620005e5620008af60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006c7600f54620006b3600e54600d54620008d860201b620027d21790919060201c565b620008d860201b620027d21790919060201c565b600c81905550620006eb600a54600c54620008d860201b620027d21790919060201c565b600b8190555060016013600062000707620008af60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160136000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060065460106000620007e9620008a760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000837620008a760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60065460405162000898919062000ac6565b60405180910390a35062000c66565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808284620008e9919062000af4565b90508381101562000931576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009289062000aa4565b60405180910390fd5b8091505092915050565b828054620009499062000b8f565b90600052602060002090601f0160209004810192826200096d5760008555620009b9565b82601f106200098857805160ff1916838001178555620009b9565b82800160010185558215620009b9579182015b82811115620009b85782518255916020019190600101906200099b565b5b509050620009c89190620009cc565b5090565b5b80821115620009e7576000816000905550600101620009cd565b5090565b600081519050620009fc8162000c4c565b92915050565b60006020828403121562000a1557600080fd5b600062000a2584828501620009eb565b91505092915050565b62000a398162000b51565b82525050565b600062000a4e601b8362000ae3565b915062000a5b8262000c23565b602082019050919050565b62000a718162000b85565b82525050565b600060408201905062000a8e600083018562000a2e565b62000a9d602083018462000a2e565b9392505050565b6000602082019050818103600083015262000abf8162000a3f565b9050919050565b600060208201905062000add600083018462000a66565b92915050565b600082825260208201905092915050565b600062000b018262000b85565b915062000b0e8362000b85565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000b465762000b4562000bc5565b5b828201905092915050565b600062000b5e8262000b65565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000600282049050600182168062000ba857607f821691505b6020821081141562000bbf5762000bbe62000bf4565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b62000c578162000b51565b811462000c6357600080fd5b50565b60805160601c614cbc62000c8c6000396000818161108401526110b00152614cbc6000f3fe6080604052600436106103035760003560e01c8063715018a611610190578063c49b9a80116100dc578063ec28438a11610095578063f2fde38b1161006f578063f2fde38b14610b91578063f872858a14610bba578063fd3d49f714610be5578063fe575a8714610c105761030a565b8063ec28438a14610b16578063ef422a1814610b3f578063f1d5f51714610b685761030a565b8063c49b9a80146109f4578063c867d60b14610a1d578063ced8128314610a5a578063da00097d14610a85578063dd46706414610ab0578063dd62ed3e14610ad95761030a565b8063a073d37f11610149578063a5d69d1f11610123578063a5d69d1f1461094c578063a69df4b514610975578063a9059cbb1461098c578063aa660bea146109c95761030a565b8063a073d37f146108bb578063a12a7d61146108e6578063a457c2d71461090f5761030a565b8063715018a6146107cd57806375f0a874146107e45780637a9d07581461080f5780638da5cb5b1461083a57806394e003d21461086557806395d89b41146108905761030a565b8063455a43961161024f57806355c830cc116102085780635d098b38116101e25780635d098b3814610711578063602bc62b1461073a57806362940cc41461076557806370a08231146107905761030a565b806355c830cc1461067e5780635881f3ef146106a95780635c9db064146106e65761030a565b8063455a43961461056c578063491d0a561461059557806349bd5a5e146105c05780634a74bb02146105eb5780635342acb414610616578063557ed1ba146106535761030a565b806323b872dd116102bc5780632b112e49116102965780632b112e49146104b0578063313ce567146104db57806339509351146105065780633b97084a146105435761030a565b806323b872dd1461041f5780632563ae831461045c57806327c8f835146104855761030a565b806306fdde031461030f578063095ea7b31461033a5780630cd5bc89146103775780631694505e146103a057806318160ddd146103cb5780632198cf6c146103f65761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610c4d565b60405161033191906142fd565b60405180910390f35b34801561034657600080fd5b50610361600480360381019061035c9190613dd9565b610cdf565b60405161036e91906142c7565b60405180910390f35b34801561038357600080fd5b5061039e60048036038101906103999190613cc0565b610cfd565b005b3480156103ac57600080fd5b506103b5610dd6565b6040516103c291906142e2565b60405180910390f35b3480156103d757600080fd5b506103e0610dfc565b6040516103ed91906144bf565b60405180910390f35b34801561040257600080fd5b5061041d60048036038101906104189190613d9d565b610e06565b005b34801561042b57600080fd5b5061044660048036038101906104419190613d4e565b610ef6565b60405161045391906142c7565b60405180910390f35b34801561046857600080fd5b50610483600480360381019061047e9190613e15565b610fd0565b005b34801561049157600080fd5b5061049a611082565b6040516104a79190614207565b60405180910390f35b3480156104bc57600080fd5b506104c56110a6565b6040516104d291906144bf565b60405180910390f35b3480156104e757600080fd5b506104f06110ea565b6040516104fd9190614564565b60405180910390f35b34801561051257600080fd5b5061052d60048036038101906105289190613dd9565b611101565b60405161053a91906142c7565b60405180910390f35b34801561054f57600080fd5b5061056a60048036038101906105659190613e3e565b6111b4565b005b34801561057857600080fd5b50610593600480360381019061058e9190613d9d565b611253565b005b3480156105a157600080fd5b506105aa611343565b6040516105b791906144bf565b60405180910390f35b3480156105cc57600080fd5b506105d5611349565b6040516105e29190614207565b60405180910390f35b3480156105f757600080fd5b5061060061136f565b60405161060d91906142c7565b60405180910390f35b34801561062257600080fd5b5061063d60048036038101906106389190613cc0565b611382565b60405161064a91906142c7565b60405180910390f35b34801561065f57600080fd5b506106686113a2565b60405161067591906144bf565b60405180910390f35b34801561068a57600080fd5b506106936113aa565b6040516106a091906144bf565b60405180910390f35b3480156106b557600080fd5b506106d060048036038101906106cb9190613cc0565b6113b0565b6040516106dd9190614207565b60405180910390f35b3480156106f257600080fd5b506106fb61181a565b6040516107089190614222565b60405180910390f35b34801561071d57600080fd5b5061073860048036038101906107339190613cc0565b611840565b005b34801561074657600080fd5b5061074f611919565b60405161075c91906144bf565b60405180910390f35b34801561077157600080fd5b5061077a611923565b60405161078791906144bf565b60405180910390f35b34801561079c57600080fd5b506107b760048036038101906107b29190613cc0565b611929565b6040516107c491906144bf565b60405180910390f35b3480156107d957600080fd5b506107e2611972565b005b3480156107f057600080fd5b506107f9611ac5565b6040516108069190614222565b60405180910390f35b34801561081b57600080fd5b50610824611aeb565b60405161083191906144bf565b60405180910390f35b34801561084657600080fd5b5061084f611af1565b60405161085c9190614207565b60405180910390f35b34801561087157600080fd5b5061087a611b1a565b60405161088791906144bf565b60405180910390f35b34801561089c57600080fd5b506108a5611b20565b6040516108b291906142fd565b60405180910390f35b3480156108c757600080fd5b506108d0611bb2565b6040516108dd91906144bf565b60405180910390f35b3480156108f257600080fd5b5061090d60048036038101906109089190613eb6565b611bbc565b005b34801561091b57600080fd5b5061093660048036038101906109319190613dd9565b611cc1565b60405161094391906142c7565b60405180910390f35b34801561095857600080fd5b50610973600480360381019061096e9190613e15565b611d8e565b005b34801561098157600080fd5b5061098a611e40565b005b34801561099857600080fd5b506109b360048036038101906109ae9190613dd9565b612014565b6040516109c091906142c7565b60405180910390f35b3480156109d557600080fd5b506109de612033565b6040516109eb91906144bf565b60405180910390f35b348015610a0057600080fd5b50610a1b6004803603810190610a169190613e15565b612039565b005b348015610a2957600080fd5b50610a446004803603810190610a3f9190613cc0565b612122565b604051610a5191906142c7565b60405180910390f35b348015610a6657600080fd5b50610a6f612142565b604051610a7c91906144bf565b60405180910390f35b348015610a9157600080fd5b50610a9a612148565b604051610aa791906142c7565b60405180910390f35b348015610abc57600080fd5b50610ad76004803603810190610ad29190613e3e565b61215b565b005b348015610ae557600080fd5b50610b006004803603810190610afb9190613d12565b612322565b604051610b0d91906144bf565b60405180910390f35b348015610b2257600080fd5b50610b3d6004803603810190610b389190613e3e565b6123a9565b005b348015610b4b57600080fd5b50610b666004803603810190610b619190613d9d565b612448565b005b348015610b7457600080fd5b50610b8f6004803603810190610b8a9190613e3e565b612538565b005b348015610b9d57600080fd5b50610bb86004803603810190610bb39190613cc0565b6125d7565b005b348015610bc657600080fd5b50610bcf612799565b604051610bdc91906142c7565b60405180910390f35b348015610bf157600080fd5b50610bfa6127ac565b604051610c0791906144bf565b60405180910390f35b348015610c1c57600080fd5b50610c376004803603810190610c329190613cc0565b6127b2565b604051610c4491906142c7565b60405180910390f35b606060038054610c5c906147b9565b80601f0160208091040260200160405190810160405280929190818152602001828054610c88906147b9565b8015610cd55780601f10610caa57610100808354040283529160200191610cd5565b820191906000526020600020905b815481529060010190602001808311610cb857829003601f168201915b5050505050905090565b6000610cf3610cec612830565b8484612838565b6001905092915050565b610d05612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d89906143ff565b60405180910390fd5b80601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b610e0e612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e92906143ff565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610f03848484612a03565b50610fc584610f10612830565b610fc085604051806060016040528060288152602001614c3a60289139601160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f76612830565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e49092919063ffffffff16565b612838565b600190509392505050565b610fd8612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105c906143ff565b60405180910390fd5b80601860176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006110e56110d47f0000000000000000000000000000000000000000000000000000000000000000611929565b60065461314890919063ffffffff16565b905090565b6000600560009054906101000a900460ff16905090565b60006111aa61110e612830565b846111a5856011600061111f612830565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d290919063ffffffff16565b612838565b6001905092915050565b6111bc612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611249576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611240906143ff565b60405180910390fd5b8060078190555050565b61125b612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112df906143ff565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601860159054906101000a900460ff1681565b60126020528060005260406000206000915054906101000a900460ff1681565b600042905090565b60085481565b60006113ba612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143e906143ff565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561149257600080fd5b505afa1580156114a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ca9190613ce9565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561152c57600080fd5b505afa158015611540573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115649190613ce9565b6040518363ffffffff1660e01b815260040161158192919061423d565b60206040518083038186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d19190613ce9565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611792578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561164e57600080fd5b505afa158015611662573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116869190613ce9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156116e857600080fd5b505afa1580156116fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117209190613ce9565b6040518363ffffffff1660e01b815260040161173d92919061423d565b602060405180830381600087803b15801561175757600080fd5b505af115801561176b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178f9190613ce9565b91505b81601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050919050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611848612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc906143ff565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600254905090565b600e5481565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61197a612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fe906143ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b606060048054611b2f906147b9565b80601f0160208091040260200160405190810160405280929190818152602001828054611b5b906147b9565b8015611ba85780601f10611b7d57610100808354040283529160200191611ba8565b820191906000526020600020905b815481529060010190602001808311611b8b57829003601f168201915b5050505050905090565b6000600754905090565b611bc4612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c48906143ff565b60405180910390fd5b83600d8190555082600e8190555081600f8190555080600a81905550611c98600f54611c8a600e54600d546127d290919063ffffffff16565b6127d290919063ffffffff16565b600c81905550611cb5600a54600c546127d290919063ffffffff16565b600b8190555050505050565b6000611d84611cce612830565b84611d7f85604051806060016040528060258152602001614c626025913960116000611cf8612830565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e49092919063ffffffff16565b612838565b6001905092915050565b611d96612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1a906143ff565b60405180910390fd5b80601860166101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec79061449f565b60405180910390fd5b6002544211611f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0b9061447f565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000612028612021612830565b8484612a03565b506001905092915050565b600c5481565b612041612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c5906143ff565b60405180910390fd5b80601860156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161211791906142c7565b60405180910390a150565b60136020528060005260406000206000915054906101000a900460ff1681565b600b5481565b601860169054906101000a900460ff1681565b612163612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e7906143ff565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804261229e91906145d4565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6123b1612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461243e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612435906143ff565b60405180910390fd5b8060088190555050565b612450612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d4906143ff565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b612540612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c4906143ff565b60405180910390fd5b8060098190555050565b6125df612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461266c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612663906143ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156126dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d39061433f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601860179054906101000a900460ff1681565b600a5481565b60146020528060005260406000206000915054906101000a900460ff1681565b60008082846127e191906145d4565b905083811015612826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281d9061437f565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289f9061445f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290f9061435f565b60405180910390fd5b80601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516129f691906144bf565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6b9061443f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612adb9061431f565b60405180910390fd5b601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b885750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bbe9061439f565b60405180910390fd5b60008211612c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c019061441f565b60405180910390fd5b601860149054906101000a900460ff1615612c3157612c2a848484613192565b90506130dd565b612c39611af1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612ca75750612c77611af1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612cf257600854821115612cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce8906143bf565b60405180910390fd5b5b6000612cfd30611929565b905060006007548210159050808015612d235750601860149054906101000a900460ff16155b8015612d7d5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612d955750601860159054906101000a900460ff165b15612dbf57601860169054906101000a900460ff1615612db55760075491505b612dbe82613365565b5b612e48846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e49092919063ffffffff16565b601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f2e5750601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612f4257612f3d87878761352c565b612f44565b845b9050601860179054906101000a900460ff168015612fac5750601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fdb57600954612fcf82612fc189611929565b6127d290919063ffffffff16565b1115612fda57600080fd5b5b61302d81601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d290919063ffffffff16565b601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130cd91906144bf565b60405180910390a3600193505050505b9392505050565b600083831115829061312c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312391906142fd565b60405180910390fd5b506000838561313b91906146b5565b9050809150509392505050565b600061318a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130e4565b905092915050565b600061321d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e49092919063ffffffff16565b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132b282601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d290919063ffffffff16565b601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161335291906144bf565b60405180910390a3600190509392505050565b6001601860146101000a81548160ff02191690831515021790555060006133be60026133b0600d546133a2600c54876136f390919063ffffffff16565b61373d90919063ffffffff16565b6136f390919063ffffffff16565b905060006133d5828461314890919063ffffffff16565b90506133e0816137b8565b600047905060006134116134006002600d546136f390919063ffffffff16565b600c5461314890919063ffffffff16565b9050600061344f600261344184613433600d548861373d90919063ffffffff16565b6136f390919063ffffffff16565b6136f390919063ffffffff16565b9050600061347a8361346c600f548761373d90919063ffffffff16565b6136f390919063ffffffff16565b905060006134a382613495858861314890919063ffffffff16565b61314890919063ffffffff16565b90506134d1601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613ab5565b6134fd601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613ab5565b6135078784613b00565b505050505050506000601860146101000a81548160ff02191690831515021790555050565b600080601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146135b1576135ac606461359e600c548661373d90919063ffffffff16565b6136f390919063ffffffff16565b6135da565b6135d960646135cb600b548661373d90919063ffffffff16565b6136f390919063ffffffff16565b5b905061362e81601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d290919063ffffffff16565b601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136ce91906144bf565b60405180910390a36136e9818461314890919063ffffffff16565b9150509392505050565b600061373583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613bf4565b905092915050565b60008083141561375057600090506137b2565b6000828461375e919061465b565b905082848261376d919061462a565b146137ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137a4906143df565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff8111156137fb577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156138295781602001602082028036833780820191505090505b5090503081600081518110613867577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561390957600080fd5b505afa15801561391d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139419190613ce9565b8160018151811061397b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506139e230601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612838565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a4695949392919061450a565b600060405180830381600087803b158015613a6057600080fd5b505af1158015613a74573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613aa99291906144da565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613afb573d6000803e3d6000fd5b505050565b613b2d30601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612838565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613b79611af1565b426040518863ffffffff1660e01b8152600401613b9b96959493929190614266565b6060604051808303818588803b158015613bb457600080fd5b505af1158015613bc8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613bed9190613e67565b5050505050565b60008083118290613c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c3291906142fd565b60405180910390fd5b5060008385613c4a919061462a565b9050809150509392505050565b600081359050613c6681614bf4565b92915050565b600081519050613c7b81614bf4565b92915050565b600081359050613c9081614c0b565b92915050565b600081359050613ca581614c22565b92915050565b600081519050613cba81614c22565b92915050565b600060208284031215613cd257600080fd5b6000613ce084828501613c57565b91505092915050565b600060208284031215613cfb57600080fd5b6000613d0984828501613c6c565b91505092915050565b60008060408385031215613d2557600080fd5b6000613d3385828601613c57565b9250506020613d4485828601613c57565b9150509250929050565b600080600060608486031215613d6357600080fd5b6000613d7186828701613c57565b9350506020613d8286828701613c57565b9250506040613d9386828701613c96565b9150509250925092565b60008060408385031215613db057600080fd5b6000613dbe85828601613c57565b9250506020613dcf85828601613c81565b9150509250929050565b60008060408385031215613dec57600080fd5b6000613dfa85828601613c57565b9250506020613e0b85828601613c96565b9150509250929050565b600060208284031215613e2757600080fd5b6000613e3584828501613c81565b91505092915050565b600060208284031215613e5057600080fd5b6000613e5e84828501613c96565b91505092915050565b600080600060608486031215613e7c57600080fd5b6000613e8a86828701613cab565b9350506020613e9b86828701613cab565b9250506040613eac86828701613cab565b9150509250925092565b60008060008060808587031215613ecc57600080fd5b6000613eda87828801613c96565b9450506020613eeb87828801613c96565b9350506040613efc87828801613c96565b9250506060613f0d87828801613c96565b91505092959194509250565b6000613f258383613f40565b60208301905092915050565b613f3a816146fb565b82525050565b613f49816146e9565b82525050565b613f58816146e9565b82525050565b6000613f698261458f565b613f7381856145b2565b9350613f7e8361457f565b8060005b83811015613faf578151613f968882613f19565b9750613fa1836145a5565b925050600181019050613f82565b5085935050505092915050565b613fc58161470d565b82525050565b613fd481614750565b82525050565b613fe381614774565b82525050565b6000613ff48261459a565b613ffe81856145c3565b935061400e818560208601614786565b61401781614878565b840191505092915050565b600061402f6023836145c3565b915061403a82614889565b604082019050919050565b60006140526026836145c3565b915061405d826148d8565b604082019050919050565b60006140756022836145c3565b915061408082614927565b604082019050919050565b6000614098601b836145c3565b91506140a382614976565b602082019050919050565b60006140bb601f836145c3565b91506140c68261499f565b602082019050919050565b60006140de6028836145c3565b91506140e9826149c8565b604082019050919050565b60006141016021836145c3565b915061410c82614a17565b604082019050919050565b60006141246020836145c3565b915061412f82614a66565b602082019050919050565b60006141476029836145c3565b915061415282614a8f565b604082019050919050565b600061416a6025836145c3565b915061417582614ade565b604082019050919050565b600061418d6024836145c3565b915061419882614b2d565b604082019050919050565b60006141b0601f836145c3565b91506141bb82614b7c565b602082019050919050565b60006141d36023836145c3565b91506141de82614ba5565b604082019050919050565b6141f281614739565b82525050565b61420181614743565b82525050565b600060208201905061421c6000830184613f4f565b92915050565b60006020820190506142376000830184613f31565b92915050565b60006040820190506142526000830185613f4f565b61425f6020830184613f4f565b9392505050565b600060c08201905061427b6000830189613f4f565b61428860208301886141e9565b6142956040830187613fda565b6142a26060830186613fda565b6142af6080830185613f4f565b6142bc60a08301846141e9565b979650505050505050565b60006020820190506142dc6000830184613fbc565b92915050565b60006020820190506142f76000830184613fcb565b92915050565b600060208201905081810360008301526143178184613fe9565b905092915050565b6000602082019050818103600083015261433881614022565b9050919050565b6000602082019050818103600083015261435881614045565b9050919050565b6000602082019050818103600083015261437881614068565b9050919050565b600060208201905081810360008301526143988161408b565b9050919050565b600060208201905081810360008301526143b8816140ae565b9050919050565b600060208201905081810360008301526143d8816140d1565b9050919050565b600060208201905081810360008301526143f8816140f4565b9050919050565b6000602082019050818103600083015261441881614117565b9050919050565b600060208201905081810360008301526144388161413a565b9050919050565b600060208201905081810360008301526144588161415d565b9050919050565b6000602082019050818103600083015261447881614180565b9050919050565b60006020820190508181036000830152614498816141a3565b9050919050565b600060208201905081810360008301526144b8816141c6565b9050919050565b60006020820190506144d460008301846141e9565b92915050565b60006040820190506144ef60008301856141e9565b81810360208301526145018184613f5e565b90509392505050565b600060a08201905061451f60008301886141e9565b61452c6020830187613fda565b818103604083015261453e8186613f5e565b905061454d6060830185613f4f565b61455a60808301846141e9565b9695505050505050565b600060208201905061457960008301846141f8565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006145df82614739565b91506145ea83614739565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561461f5761461e6147eb565b5b828201905092915050565b600061463582614739565b915061464083614739565b9250826146505761464f61481a565b5b828204905092915050565b600061466682614739565b915061467183614739565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156146aa576146a96147eb565b5b828202905092915050565b60006146c082614739565b91506146cb83614739565b9250828210156146de576146dd6147eb565b5b828203905092915050565b60006146f482614719565b9050919050565b600061470682614719565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061475b82614762565b9050919050565b600061476d82614719565b9050919050565b600061477f82614739565b9050919050565b60005b838110156147a4578082015181840152602081019050614789565b838111156147b3576000848401525b50505050565b600060028204905060018216806147d157607f821691505b602082108114156147e5576147e4614849565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f546f2f66726f6d206164647265737320697320626c61636b6c69737465642100600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f436f6e7472616374206973206c6f636b656420756e74696c2037206461797300600082015250565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b0000000000000000000000000000000000000000000000000000000000602082015250565b614bfd816146e9565b8114614c0857600080fd5b50565b614c148161470d565b8114614c1f57600080fd5b50565b614c2b81614739565b8114614c3657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b8a292f5467d371af52fe1ff0d4a5055d2be62153947fef0c7632bfbe18bac1c64736f6c63430008030033
Deployed Bytecode
0x6080604052600436106103035760003560e01c8063715018a611610190578063c49b9a80116100dc578063ec28438a11610095578063f2fde38b1161006f578063f2fde38b14610b91578063f872858a14610bba578063fd3d49f714610be5578063fe575a8714610c105761030a565b8063ec28438a14610b16578063ef422a1814610b3f578063f1d5f51714610b685761030a565b8063c49b9a80146109f4578063c867d60b14610a1d578063ced8128314610a5a578063da00097d14610a85578063dd46706414610ab0578063dd62ed3e14610ad95761030a565b8063a073d37f11610149578063a5d69d1f11610123578063a5d69d1f1461094c578063a69df4b514610975578063a9059cbb1461098c578063aa660bea146109c95761030a565b8063a073d37f146108bb578063a12a7d61146108e6578063a457c2d71461090f5761030a565b8063715018a6146107cd57806375f0a874146107e45780637a9d07581461080f5780638da5cb5b1461083a57806394e003d21461086557806395d89b41146108905761030a565b8063455a43961161024f57806355c830cc116102085780635d098b38116101e25780635d098b3814610711578063602bc62b1461073a57806362940cc41461076557806370a08231146107905761030a565b806355c830cc1461067e5780635881f3ef146106a95780635c9db064146106e65761030a565b8063455a43961461056c578063491d0a561461059557806349bd5a5e146105c05780634a74bb02146105eb5780635342acb414610616578063557ed1ba146106535761030a565b806323b872dd116102bc5780632b112e49116102965780632b112e49146104b0578063313ce567146104db57806339509351146105065780633b97084a146105435761030a565b806323b872dd1461041f5780632563ae831461045c57806327c8f835146104855761030a565b806306fdde031461030f578063095ea7b31461033a5780630cd5bc89146103775780631694505e146103a057806318160ddd146103cb5780632198cf6c146103f65761030a565b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610c4d565b60405161033191906142fd565b60405180910390f35b34801561034657600080fd5b50610361600480360381019061035c9190613dd9565b610cdf565b60405161036e91906142c7565b60405180910390f35b34801561038357600080fd5b5061039e60048036038101906103999190613cc0565b610cfd565b005b3480156103ac57600080fd5b506103b5610dd6565b6040516103c291906142e2565b60405180910390f35b3480156103d757600080fd5b506103e0610dfc565b6040516103ed91906144bf565b60405180910390f35b34801561040257600080fd5b5061041d60048036038101906104189190613d9d565b610e06565b005b34801561042b57600080fd5b5061044660048036038101906104419190613d4e565b610ef6565b60405161045391906142c7565b60405180910390f35b34801561046857600080fd5b50610483600480360381019061047e9190613e15565b610fd0565b005b34801561049157600080fd5b5061049a611082565b6040516104a79190614207565b60405180910390f35b3480156104bc57600080fd5b506104c56110a6565b6040516104d291906144bf565b60405180910390f35b3480156104e757600080fd5b506104f06110ea565b6040516104fd9190614564565b60405180910390f35b34801561051257600080fd5b5061052d60048036038101906105289190613dd9565b611101565b60405161053a91906142c7565b60405180910390f35b34801561054f57600080fd5b5061056a60048036038101906105659190613e3e565b6111b4565b005b34801561057857600080fd5b50610593600480360381019061058e9190613d9d565b611253565b005b3480156105a157600080fd5b506105aa611343565b6040516105b791906144bf565b60405180910390f35b3480156105cc57600080fd5b506105d5611349565b6040516105e29190614207565b60405180910390f35b3480156105f757600080fd5b5061060061136f565b60405161060d91906142c7565b60405180910390f35b34801561062257600080fd5b5061063d60048036038101906106389190613cc0565b611382565b60405161064a91906142c7565b60405180910390f35b34801561065f57600080fd5b506106686113a2565b60405161067591906144bf565b60405180910390f35b34801561068a57600080fd5b506106936113aa565b6040516106a091906144bf565b60405180910390f35b3480156106b557600080fd5b506106d060048036038101906106cb9190613cc0565b6113b0565b6040516106dd9190614207565b60405180910390f35b3480156106f257600080fd5b506106fb61181a565b6040516107089190614222565b60405180910390f35b34801561071d57600080fd5b5061073860048036038101906107339190613cc0565b611840565b005b34801561074657600080fd5b5061074f611919565b60405161075c91906144bf565b60405180910390f35b34801561077157600080fd5b5061077a611923565b60405161078791906144bf565b60405180910390f35b34801561079c57600080fd5b506107b760048036038101906107b29190613cc0565b611929565b6040516107c491906144bf565b60405180910390f35b3480156107d957600080fd5b506107e2611972565b005b3480156107f057600080fd5b506107f9611ac5565b6040516108069190614222565b60405180910390f35b34801561081b57600080fd5b50610824611aeb565b60405161083191906144bf565b60405180910390f35b34801561084657600080fd5b5061084f611af1565b60405161085c9190614207565b60405180910390f35b34801561087157600080fd5b5061087a611b1a565b60405161088791906144bf565b60405180910390f35b34801561089c57600080fd5b506108a5611b20565b6040516108b291906142fd565b60405180910390f35b3480156108c757600080fd5b506108d0611bb2565b6040516108dd91906144bf565b60405180910390f35b3480156108f257600080fd5b5061090d60048036038101906109089190613eb6565b611bbc565b005b34801561091b57600080fd5b5061093660048036038101906109319190613dd9565b611cc1565b60405161094391906142c7565b60405180910390f35b34801561095857600080fd5b50610973600480360381019061096e9190613e15565b611d8e565b005b34801561098157600080fd5b5061098a611e40565b005b34801561099857600080fd5b506109b360048036038101906109ae9190613dd9565b612014565b6040516109c091906142c7565b60405180910390f35b3480156109d557600080fd5b506109de612033565b6040516109eb91906144bf565b60405180910390f35b348015610a0057600080fd5b50610a1b6004803603810190610a169190613e15565b612039565b005b348015610a2957600080fd5b50610a446004803603810190610a3f9190613cc0565b612122565b604051610a5191906142c7565b60405180910390f35b348015610a6657600080fd5b50610a6f612142565b604051610a7c91906144bf565b60405180910390f35b348015610a9157600080fd5b50610a9a612148565b604051610aa791906142c7565b60405180910390f35b348015610abc57600080fd5b50610ad76004803603810190610ad29190613e3e565b61215b565b005b348015610ae557600080fd5b50610b006004803603810190610afb9190613d12565b612322565b604051610b0d91906144bf565b60405180910390f35b348015610b2257600080fd5b50610b3d6004803603810190610b389190613e3e565b6123a9565b005b348015610b4b57600080fd5b50610b666004803603810190610b619190613d9d565b612448565b005b348015610b7457600080fd5b50610b8f6004803603810190610b8a9190613e3e565b612538565b005b348015610b9d57600080fd5b50610bb86004803603810190610bb39190613cc0565b6125d7565b005b348015610bc657600080fd5b50610bcf612799565b604051610bdc91906142c7565b60405180910390f35b348015610bf157600080fd5b50610bfa6127ac565b604051610c0791906144bf565b60405180910390f35b348015610c1c57600080fd5b50610c376004803603810190610c329190613cc0565b6127b2565b604051610c4491906142c7565b60405180910390f35b606060038054610c5c906147b9565b80601f0160208091040260200160405190810160405280929190818152602001828054610c88906147b9565b8015610cd55780601f10610caa57610100808354040283529160200191610cd5565b820191906000526020600020905b815481529060010190602001808311610cb857829003601f168201915b5050505050905090565b6000610cf3610cec612830565b8484612838565b6001905092915050565b610d05612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d89906143ff565b60405180910390fd5b80601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b610e0e612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e92906143ff565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610f03848484612a03565b50610fc584610f10612830565b610fc085604051806060016040528060288152602001614c3a60289139601160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610f76612830565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e49092919063ffffffff16565b612838565b600190509392505050565b610fd8612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105c906143ff565b60405180910390fd5b80601860176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b60006110e56110d47f000000000000000000000000000000000000000000000000000000000000dead611929565b60065461314890919063ffffffff16565b905090565b6000600560009054906101000a900460ff16905090565b60006111aa61110e612830565b846111a5856011600061111f612830565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d290919063ffffffff16565b612838565b6001905092915050565b6111bc612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611249576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611240906143ff565b60405180910390fd5b8060078190555050565b61125b612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112df906143ff565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600d5481565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601860159054906101000a900460ff1681565b60126020528060005260406000206000915054906101000a900460ff1681565b600042905090565b60085481565b60006113ba612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143e906143ff565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561149257600080fd5b505afa1580156114a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ca9190613ce9565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561152c57600080fd5b505afa158015611540573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115649190613ce9565b6040518363ffffffff1660e01b815260040161158192919061423d565b60206040518083038186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d19190613ce9565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611792578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561164e57600080fd5b505afa158015611662573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116869190613ce9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156116e857600080fd5b505afa1580156116fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117209190613ce9565b6040518363ffffffff1660e01b815260040161173d92919061423d565b602060405180830381600087803b15801561175757600080fd5b505af115801561176b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061178f9190613ce9565b91505b81601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050919050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611848612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc906143ff565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600254905090565b600e5481565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61197a612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fe906143ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b606060048054611b2f906147b9565b80601f0160208091040260200160405190810160405280929190818152602001828054611b5b906147b9565b8015611ba85780601f10611b7d57610100808354040283529160200191611ba8565b820191906000526020600020905b815481529060010190602001808311611b8b57829003601f168201915b5050505050905090565b6000600754905090565b611bc4612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c48906143ff565b60405180910390fd5b83600d8190555082600e8190555081600f8190555080600a81905550611c98600f54611c8a600e54600d546127d290919063ffffffff16565b6127d290919063ffffffff16565b600c81905550611cb5600a54600c546127d290919063ffffffff16565b600b8190555050505050565b6000611d84611cce612830565b84611d7f85604051806060016040528060258152602001614c626025913960116000611cf8612830565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e49092919063ffffffff16565b612838565b6001905092915050565b611d96612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1a906143ff565b60405180910390fd5b80601860166101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec79061449f565b60405180910390fd5b6002544211611f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0b9061447f565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000612028612021612830565b8484612a03565b506001905092915050565b600c5481565b612041612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c5906143ff565b60405180910390fd5b80601860156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161211791906142c7565b60405180910390a150565b60136020528060005260406000206000915054906101000a900460ff1681565b600b5481565b601860169054906101000a900460ff1681565b612163612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e7906143ff565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804261229e91906145d4565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6123b1612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461243e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612435906143ff565b60405180910390fd5b8060088190555050565b612450612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146124dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d4906143ff565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b612540612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c4906143ff565b60405180910390fd5b8060098190555050565b6125df612830565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461266c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612663906143ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156126dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d39061433f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601860179054906101000a900460ff1681565b600a5481565b60146020528060005260406000206000915054906101000a900460ff1681565b60008082846127e191906145d4565b905083811015612826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161281d9061437f565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156128a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289f9061445f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290f9061435f565b60405180910390fd5b80601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516129f691906144bf565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6b9061443f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612adb9061431f565b60405180910390fd5b601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b885750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bbe9061439f565b60405180910390fd5b60008211612c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c019061441f565b60405180910390fd5b601860149054906101000a900460ff1615612c3157612c2a848484613192565b90506130dd565b612c39611af1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612ca75750612c77611af1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612cf257600854821115612cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce8906143bf565b60405180910390fd5b5b6000612cfd30611929565b905060006007548210159050808015612d235750601860149054906101000a900460ff16155b8015612d7d5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612d955750601860159054906101000a900460ff165b15612dbf57601860169054906101000a900460ff1615612db55760075491505b612dbe82613365565b5b612e48846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e49092919063ffffffff16565b601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612f2e5750601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612f4257612f3d87878761352c565b612f44565b845b9050601860179054906101000a900460ff168015612fac5750601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612fdb57600954612fcf82612fc189611929565b6127d290919063ffffffff16565b1115612fda57600080fd5b5b61302d81601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d290919063ffffffff16565b601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130cd91906144bf565b60405180910390a3600193505050505b9392505050565b600083831115829061312c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312391906142fd565b60405180910390fd5b506000838561313b91906146b5565b9050809150509392505050565b600061318a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130e4565b905092915050565b600061321d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e49092919063ffffffff16565b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132b282601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d290919063ffffffff16565b601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161335291906144bf565b60405180910390a3600190509392505050565b6001601860146101000a81548160ff02191690831515021790555060006133be60026133b0600d546133a2600c54876136f390919063ffffffff16565b61373d90919063ffffffff16565b6136f390919063ffffffff16565b905060006133d5828461314890919063ffffffff16565b90506133e0816137b8565b600047905060006134116134006002600d546136f390919063ffffffff16565b600c5461314890919063ffffffff16565b9050600061344f600261344184613433600d548861373d90919063ffffffff16565b6136f390919063ffffffff16565b6136f390919063ffffffff16565b9050600061347a8361346c600f548761373d90919063ffffffff16565b6136f390919063ffffffff16565b905060006134a382613495858861314890919063ffffffff16565b61314890919063ffffffff16565b90506134d1601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682613ab5565b6134fd601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613ab5565b6135078784613b00565b505050505050506000601860146101000a81548160ff02191690831515021790555050565b600080601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146135b1576135ac606461359e600c548661373d90919063ffffffff16565b6136f390919063ffffffff16565b6135da565b6135d960646135cb600b548661373d90919063ffffffff16565b6136f390919063ffffffff16565b5b905061362e81601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d290919063ffffffff16565b601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516136ce91906144bf565b60405180910390a36136e9818461314890919063ffffffff16565b9150509392505050565b600061373583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613bf4565b905092915050565b60008083141561375057600090506137b2565b6000828461375e919061465b565b905082848261376d919061462a565b146137ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137a4906143df565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff8111156137fb577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156138295781602001602082028036833780820191505090505b5090503081600081518110613867577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561390957600080fd5b505afa15801561391d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139419190613ce9565b8160018151811061397b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506139e230601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612838565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613a4695949392919061450a565b600060405180830381600087803b158015613a6057600080fd5b505af1158015613a74573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613aa99291906144da565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613afb573d6000803e3d6000fd5b505050565b613b2d30601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612838565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613b79611af1565b426040518863ffffffff1660e01b8152600401613b9b96959493929190614266565b6060604051808303818588803b158015613bb457600080fd5b505af1158015613bc8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613bed9190613e67565b5050505050565b60008083118290613c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c3291906142fd565b60405180910390fd5b5060008385613c4a919061462a565b9050809150509392505050565b600081359050613c6681614bf4565b92915050565b600081519050613c7b81614bf4565b92915050565b600081359050613c9081614c0b565b92915050565b600081359050613ca581614c22565b92915050565b600081519050613cba81614c22565b92915050565b600060208284031215613cd257600080fd5b6000613ce084828501613c57565b91505092915050565b600060208284031215613cfb57600080fd5b6000613d0984828501613c6c565b91505092915050565b60008060408385031215613d2557600080fd5b6000613d3385828601613c57565b9250506020613d4485828601613c57565b9150509250929050565b600080600060608486031215613d6357600080fd5b6000613d7186828701613c57565b9350506020613d8286828701613c57565b9250506040613d9386828701613c96565b9150509250925092565b60008060408385031215613db057600080fd5b6000613dbe85828601613c57565b9250506020613dcf85828601613c81565b9150509250929050565b60008060408385031215613dec57600080fd5b6000613dfa85828601613c57565b9250506020613e0b85828601613c96565b9150509250929050565b600060208284031215613e2757600080fd5b6000613e3584828501613c81565b91505092915050565b600060208284031215613e5057600080fd5b6000613e5e84828501613c96565b91505092915050565b600080600060608486031215613e7c57600080fd5b6000613e8a86828701613cab565b9350506020613e9b86828701613cab565b9250506040613eac86828701613cab565b9150509250925092565b60008060008060808587031215613ecc57600080fd5b6000613eda87828801613c96565b9450506020613eeb87828801613c96565b9350506040613efc87828801613c96565b9250506060613f0d87828801613c96565b91505092959194509250565b6000613f258383613f40565b60208301905092915050565b613f3a816146fb565b82525050565b613f49816146e9565b82525050565b613f58816146e9565b82525050565b6000613f698261458f565b613f7381856145b2565b9350613f7e8361457f565b8060005b83811015613faf578151613f968882613f19565b9750613fa1836145a5565b925050600181019050613f82565b5085935050505092915050565b613fc58161470d565b82525050565b613fd481614750565b82525050565b613fe381614774565b82525050565b6000613ff48261459a565b613ffe81856145c3565b935061400e818560208601614786565b61401781614878565b840191505092915050565b600061402f6023836145c3565b915061403a82614889565b604082019050919050565b60006140526026836145c3565b915061405d826148d8565b604082019050919050565b60006140756022836145c3565b915061408082614927565b604082019050919050565b6000614098601b836145c3565b91506140a382614976565b602082019050919050565b60006140bb601f836145c3565b91506140c68261499f565b602082019050919050565b60006140de6028836145c3565b91506140e9826149c8565b604082019050919050565b60006141016021836145c3565b915061410c82614a17565b604082019050919050565b60006141246020836145c3565b915061412f82614a66565b602082019050919050565b60006141476029836145c3565b915061415282614a8f565b604082019050919050565b600061416a6025836145c3565b915061417582614ade565b604082019050919050565b600061418d6024836145c3565b915061419882614b2d565b604082019050919050565b60006141b0601f836145c3565b91506141bb82614b7c565b602082019050919050565b60006141d36023836145c3565b91506141de82614ba5565b604082019050919050565b6141f281614739565b82525050565b61420181614743565b82525050565b600060208201905061421c6000830184613f4f565b92915050565b60006020820190506142376000830184613f31565b92915050565b60006040820190506142526000830185613f4f565b61425f6020830184613f4f565b9392505050565b600060c08201905061427b6000830189613f4f565b61428860208301886141e9565b6142956040830187613fda565b6142a26060830186613fda565b6142af6080830185613f4f565b6142bc60a08301846141e9565b979650505050505050565b60006020820190506142dc6000830184613fbc565b92915050565b60006020820190506142f76000830184613fcb565b92915050565b600060208201905081810360008301526143178184613fe9565b905092915050565b6000602082019050818103600083015261433881614022565b9050919050565b6000602082019050818103600083015261435881614045565b9050919050565b6000602082019050818103600083015261437881614068565b9050919050565b600060208201905081810360008301526143988161408b565b9050919050565b600060208201905081810360008301526143b8816140ae565b9050919050565b600060208201905081810360008301526143d8816140d1565b9050919050565b600060208201905081810360008301526143f8816140f4565b9050919050565b6000602082019050818103600083015261441881614117565b9050919050565b600060208201905081810360008301526144388161413a565b9050919050565b600060208201905081810360008301526144588161415d565b9050919050565b6000602082019050818103600083015261447881614180565b9050919050565b60006020820190508181036000830152614498816141a3565b9050919050565b600060208201905081810360008301526144b8816141c6565b9050919050565b60006020820190506144d460008301846141e9565b92915050565b60006040820190506144ef60008301856141e9565b81810360208301526145018184613f5e565b90509392505050565b600060a08201905061451f60008301886141e9565b61452c6020830187613fda565b818103604083015261453e8186613f5e565b905061454d6060830185613f4f565b61455a60808301846141e9565b9695505050505050565b600060208201905061457960008301846141f8565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006145df82614739565b91506145ea83614739565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561461f5761461e6147eb565b5b828201905092915050565b600061463582614739565b915061464083614739565b9250826146505761464f61481a565b5b828204905092915050565b600061466682614739565b915061467183614739565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156146aa576146a96147eb565b5b828202905092915050565b60006146c082614739565b91506146cb83614739565b9250828210156146de576146dd6147eb565b5b828203905092915050565b60006146f482614719565b9050919050565b600061470682614719565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061475b82614762565b9050919050565b600061476d82614719565b9050919050565b600061477f82614739565b9050919050565b60005b838110156147a4578082015181840152602081019050614789565b838111156147b3576000848401525b50505050565b600060028204905060018216806147d157607f821691505b602082108114156147e5576147e4614849565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f546f2f66726f6d206164647265737320697320626c61636b6c69737465642100600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f436f6e7472616374206973206c6f636b656420756e74696c2037206461797300600082015250565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b0000000000000000000000000000000000000000000000000000000000602082015250565b614bfd816146e9565b8114614c0857600080fd5b50565b614c148161470d565b8114614c1f57600080fd5b50565b614c2b81614739565b8114614c3657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b8a292f5467d371af52fe1ff0d4a5055d2be62153947fef0c7632bfbe18bac1c64736f6c63430008030033
Deployed Bytecode Sourcemap
15174:12963:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18109:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19409:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21367:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16487:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18386:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20847:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23061:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20726:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16395:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21814:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18295:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18778:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21102:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19923:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15782:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16535:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16604:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16023:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6680:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15557:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22088:696;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16296:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21234:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6578:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15820:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18494:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6170:148;;;;;;;;;;;;;:::i;:::-;;16196:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15862:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5945:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15612:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18200:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19281:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20201:401;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19004:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21677:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7016:305;;;;;;;;;;;;;:::i;:::-;;22886:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15745:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21498:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16080:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15709:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16651:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6778:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18627:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20610:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20058:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20990:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6326:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16703:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15670:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16139:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18109:83;18146:13;18179:5;18172:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18109:83;:::o;19409:161::-;19484:4;19501:39;19510:12;:10;:12::i;:::-;19524:7;19533:6;19501:8;:39::i;:::-;19558:4;19551:11;;19409:161;;;;:::o;21367:123::-;6089:12;:10;:12::i;:::-;6079:22;;:6;;;;;;;;;;:22;;;6071:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21471:10:::1;21446:14;;:36;;;;;;;;;;;;;;;;;;21367:123:::0;:::o;16487:41::-;;;;;;;;;;;;;:::o;18386:100::-;18439:7;18466:12;;18459:19;;18386:100;:::o;20847:135::-;6089:12;:10;:12::i;:::-;6079:22;;:6;;;;;;;;;;:22;;;6071:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20968:6:::1;20938:19;:27;20958:6;20938:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;20847:135:::0;;:::o;23061:313::-;23159:4;23176:36;23186:6;23194:9;23205:6;23176:9;:36::i;:::-;;23223:121;23232:6;23240:12;:10;:12::i;:::-;23254:89;23292:6;23254:89;;;;;;;;;;;;;;;;;:11;:19;23266:6;23254:19;;;;;;;;;;;;;;;:33;23274:12;:10;:12::i;:::-;23254:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;23223:8;:121::i;:::-;23362:4;23355:11;;23061:313;;;;;:::o;20726:113::-;6089:12;:10;:12::i;:::-;6079:22;;:6;;;;;;;;;;:22;;;6071:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20823:8:::1;20804:16;;:27;;;;;;;;;;;;;;;;;;20726:113:::0;:::o;16395:81::-;;;:::o;21814:128::-;21867:7;21894:40;21911:22;21921:11;21911:9;:22::i;:::-;21894:12;;:16;;:40;;;;:::i;:::-;21887:47;;21814:128;:::o;18295:83::-;18336:5;18361:9;;;;;;;;;;;18354:16;;18295:83;:::o;18778:218::-;18866:4;18883:83;18892:12;:10;:12::i;:::-;18906:7;18915:50;18954:10;18915:11;:25;18927:12;:10;:12::i;:::-;18915:25;;;;;;;;;;;;;;;:34;18941:7;18915:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18883:8;:83::i;:::-;18984:4;18977:11;;18778:218;;;;:::o;21102:124::-;6089:12;:10;:12::i;:::-;6079:22;;:6;;;;;;;;;;:22;;;6071:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21210:8:::1;21184:23;:34;;;;21102:124:::0;:::o;19923:127::-;6089:12;:10;:12::i;:::-;6079:22;;:6;;;;;;;;;;:22;;;6071:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20034:8:::1;20009:13;:22;20023:7;20009:22;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;19923:127:::0;;:::o;15782:29::-;;;;:::o;16535:28::-;;;;;;;;;;;;;:::o;16604:40::-;;;;;;;;;;;;;:::o;16023:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;6680:90::-;6720:7;6747:15;6740:22;;6680:90;:::o;15557:45::-;;;;:::o;22088:696::-;22168:22;6089:12;:10;:12::i;:::-;6079:22;;:6;;;;;;;;;;:22;;;6071:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22205:35:::1;22262:16;22205:74;;22328:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22310:53;;;22372:4;22379:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22310:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22293:110;;22445:1;22419:28;;:14;:28;;;22416:225;;;22533:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22515:74;;;22598:4;22605:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22515:114;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22498:131;;22416:225;22669:14;22653:13;;:30;;;;;;;;;;;;;;;;;;22735:16;22717:15;;:34;;;;;;;;;;;;;;;;;;6149:1;22088:696:::0;;;:::o;16296:91::-;;;;;;;;;;;;;:::o;21234:125::-;6089:12;:10;:12::i;:::-;6079:22;;:6;;;;;;;;;;:22;;;6071:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21340:10:::1;21314:15;;:37;;;;;;;;;;;;;;;;;;21234:125:::0;:::o;6578:90::-;6624:7;6651:9;;6644:16;;6578:90;:::o;15820:29::-;;;;:::o;18494:119::-;18560:7;18587:9;:18;18597:7;18587:18;;;;;;;;;;;;;;;;18580:25;;18494:119;;;:::o;6170:148::-;6089:12;:10;:12::i;:::-;6079:22;;:6;;;;;;;;;;:22;;;6071:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6277:1:::1;6240:40;;6261:6;::::0;::::1;;;;;;;;6240:40;;;;;;;;;;;;6308:1;6291:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6170:148::o:0;16196:92::-;;;;;;;;;;;;;:::o;15862:29::-;;;;:::o;5945:79::-;5983:7;6010:6;;;;;;;;;;;6003:13;;5945:79;:::o;15612:48::-;;;;:::o;18200:87::-;18239:13;18272:7;18265:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18200:87;:::o;19281:120::-;19343:7;19370:23;;19363:30;;19281:120;:::o;20201:401::-;6089:12;:10;:12::i;:::-;6079:22;;:6;;;;;;;;;;:22;;;6071:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20357:15:::1;20344:10;:28;;;;20396:15;20383:10;:28;;;;20435:9;20422:10;:22;;;;20467:14;20455:9;:26;;;;20506:42;20537:10;;20506:26;20521:10;;20506;;:14;;:26;;;;:::i;:::-;:30;;:42;;;;:::i;:::-;20494:9;:54;;;;20570:24;20584:9;;20570;;:13;;:24;;;;:::i;:::-;20559:8;:35;;;;20201:401:::0;;;;:::o;19004:269::-;19097:4;19114:129;19123:12;:10;:12::i;:::-;19137:7;19146:96;19185:15;19146:96;;;;;;;;;;;;;;;;;:11;:25;19158:12;:10;:12::i;:::-;19146:25;;;;;;;;;;;;;;;:34;19172:7;19146:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;19114:8;:129::i;:::-;19261:4;19254:11;;19004:269;;;;:::o;21677:125::-;6089:12;:10;:12::i;:::-;6079:22;;:6;;;;;;;;;;:22;;;6071:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21786:8:::1;21758:25;;:36;;;;;;;;;;;;;;;;;;21677:125:::0;:::o;7016:305::-;7086:10;7068:28;;:14;;;;;;;;;;;:28;;;7060:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;7173:9;;7155:15;:27;7147:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7264:14;;;;;;;;;;;7235:44;;7256:6;;;;;;;;;;7235:44;;;;;;;;;;;;7299:14;;;;;;;;;;;7290:6;;:23;;;;;;;;;;;;;;;;;;7016:305::o;22886:167::-;22964:4;22981:42;22991:12;:10;:12::i;:::-;23005:9;23016:6;22981:9;:42::i;:::-;;23041:4;23034:11;;22886:167;;;;:::o;15745:28::-;;;;:::o;21498:171::-;6089:12;:10;:12::i;:::-;6079:22;;:6;;;;;;;;;;:22;;;6071:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21599:8:::1;21575:21;;:32;;;;;;;;;;;;;;;;;;21623:38;21652:8;21623:38;;;;;;:::i;:::-;;;;;;;;21498:171:::0;:::o;16080:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;15709:27::-;;;;:::o;16651:45::-;;;;;;;;;;;;;:::o;6778:226::-;6089:12;:10;:12::i;:::-;6079:22;;:6;;;;;;;;;;:22;;;6071:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6859:6:::1;::::0;::::1;;;;;;;;6842:14;;:23;;;;;;;;;;;;;;;;;;6893:1;6876:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6936:4;6918:15;:22;;;;:::i;:::-;6906:9;:34;;;;6993:1;6956:40;;6977:6;::::0;::::1;;;;;;;;6956:40;;;;;;;;;;;;6778:226:::0;:::o;18627:143::-;18708:7;18735:11;:18;18747:5;18735:18;;;;;;;;;;;;;;;:27;18754:7;18735:27;;;;;;;;;;;;;;;;18728:34;;18627:143;;;;:::o;20610:108::-;6089:12;:10;:12::i;:::-;6079:22;;:6;;;;;;;;;;:22;;;6071:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20699:11:::1;20687:9;:23;;;;20610:108:::0;:::o;20058:135::-;6089:12;:10;:12::i;:::-;6079:22;;:6;;;;;;;;;;:22;;;6071:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20177:8:::1;20148:17;:26;20166:7;20148:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;20058:135:::0;;:::o;20990:104::-;6089:12;:10;:12::i;:::-;6079:22;;:6;;;;;;;;;;:22;;;6071:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21078:8:::1;21062:12;:24;;;;20990:104:::0;:::o;6326:244::-;6089:12;:10;:12::i;:::-;6079:22;;:6;;;;;;;;;;:22;;;6071:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6435:1:::1;6415:22;;:8;:22;;;;6407:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6525:8;6496:38;;6517:6;::::0;::::1;;;;;;;;6496:38;;;;;;;;;;;;6554:8;6545:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6326:244:::0;:::o;16703:35::-;;;;;;;;;;;;;:::o;15670:28::-;;;;:::o;16139:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;1315:181::-;1373:7;1393:9;1409:1;1405;:5;;;;:::i;:::-;1393:17;;1434:1;1429;:6;;1421:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1487:1;1480:8;;;1315:181;;;;:::o;247:115::-;300:15;343:10;328:26;;247:115;:::o;19578:337::-;19688:1;19671:19;;:5;:19;;;;19663:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19769:1;19750:21;;:7;:21;;;;19742:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19853:6;19823:11;:18;19835:5;19823:18;;;;;;;;;;;;;;;:27;19842:7;19823:27;;;;;;;;;;;;;;;:36;;;;19891:7;19875:32;;19884:5;19875:32;;;19900:6;19875:32;;;;;;:::i;:::-;;;;;;;;19578:337;;;:::o;23382:1883::-;23469:4;23514:1;23496:20;;:6;:20;;;;23488:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;23598:1;23577:23;;:9;:23;;;;23569:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;23660:13;:21;23674:6;23660:21;;;;;;;;;;;;;;;;;;;;;;;;;23659:22;:51;;;;;23686:13;:24;23700:9;23686:24;;;;;;;;;;;;;;;;;;;;;;;;;23685:25;23659:51;23651:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;23774:1;23765:6;:10;23757:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23845:16;;;;;;;;;;;23842:1416;;;23895:41;23910:6;23918:9;23929:6;23895:14;:41::i;:::-;23888:48;;;;23842:1416;24001:7;:5;:7::i;:::-;23991:17;;:6;:17;;;;:41;;;;;24025:7;:5;:7::i;:::-;24012:20;;:9;:20;;;;23991:41;23988:153;;;24071:9;;24061:6;:19;;24053:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;23988:153;24169:28;24200:24;24218:4;24200:9;:24::i;:::-;24169:55;;24239:28;24294:23;;24270:20;:47;;24239:78;;24350:23;:44;;;;;24378:16;;;;;;;;;;;24377:17;24350:44;:71;;;;;24408:13;;;;;;;;;;;24398:23;;:6;:23;;;;24350:71;:96;;;;;24425:21;;;;;;;;;;;24350:96;24346:307;;;24484:25;;;;;;;;;;;24481:97;;;24555:23;;24532:46;;24481:97;24597:36;24612:20;24597:14;:36::i;:::-;24346:307;24689:53;24711:6;24689:53;;;;;;;;;;;;;;;;;:9;:17;24699:6;24689:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;24669:9;:17;24679:6;24669:17;;;;;;;;;;;;;;;:73;;;;24759:19;24782:17;:25;24800:6;24782:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;24811:17;:28;24829:9;24811:28;;;;;;;;;;;;;;;;;;;;;;;;;24782:57;24781:148;;24895:34;24903:6;24911:9;24922:6;24895:7;:34::i;:::-;24781:148;;;24886:6;24781:148;24759:170;;24949:16;;;;;;;;;;;:51;;;;;24970:19;:30;24990:9;24970:30;;;;;;;;;;;;;;;;;;;;;;;;;24969:31;24949:51;24946:135;;;25068:12;;25027:37;25052:11;25027:20;25037:9;25027;:20::i;:::-;:24;;:37;;;;:::i;:::-;:53;;25019:62;;;;;;24946:135;25121:37;25146:11;25121:9;:20;25131:9;25121:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;25098:9;:20;25108:9;25098:20;;;;;;;;;;;;;;;:60;;;;25197:9;25180:40;;25189:6;25180:40;;;25208:11;25180:40;;;;;;:::i;:::-;;;;;;;;25242:4;25235:11;;;;;23382:1883;;;;;;:::o;1648:192::-;1734:7;1767:1;1762;:6;;1770:12;1754:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1794:9;1810:1;1806;:5;;;;:::i;:::-;1794:17;;1831:1;1824:8;;;1648:192;;;;;:::o;1504:136::-;1562:7;1589:43;1593:1;1596;1589:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1582:50;;1504:136;;;;:::o;25273:330::-;25366:4;25403:53;25425:6;25403:53;;;;;;;;;;;;;;;;;:9;:17;25413:6;25403:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;25383:9;:17;25393:6;25383:17;;;;;;;;;;;;;;;:73;;;;25490:32;25515:6;25490:9;:20;25500:9;25490:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;25467:9;:20;25477:9;25467:20;;;;;;;;;;;;;;;:55;;;;25555:9;25538:35;;25547:6;25538:35;;;25566:6;25538:35;;;;;;:::i;:::-;;;;;;;;25591:4;25584:11;;25273:330;;;;;:::o;25611:863::-;17180:4;17161:16;;:23;;;;;;;;;;;;;;;;;;25692:19:::1;25714:45;25757:1;25714:38;25741:10;;25714:22;25726:9;;25714:7;:11;;:22;;;;:::i;:::-;:26;;:38;;;;:::i;:::-;:42;;:45;;;;:::i;:::-;25692:67;;25770:21;25794:24;25806:11;25794:7;:11;;:24;;;;:::i;:::-;25770:48;;25831:31;25848:13;25831:16;:31::i;:::-;25873:22;25898:21;25873:46;;25932:19;25954:32;25968:17;25983:1;25968:10;;:14;;:17;;;;:::i;:::-;25954:9;;:13;;:32;;;;:::i;:::-;25932:54;;26007:26;26036:54;26088:1;26036:47;26071:11;26036:30;26055:10;;26036:14;:18;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;:51;;:54;;;;:::i;:::-;26007:83;;26101:24;26128:47;26163:11;26128:30;26147:10;;26128:14;:18;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;26101:74;;26186:26;26215:60;26258:16;26215:38;26234:18;26215:14;:18;;:38;;;;:::i;:::-;:42;;:60;;;;:::i;:::-;26186:89;;26288:57;26309:15;;;;;;;;;;;26326:18;26288:20;:57::i;:::-;26356:54;26377:14;;;;;;;;;;;26393:16;26356:20;:54::i;:::-;26421:45;26434:11;26447:18;26421:12;:45::i;:::-;17195:1;;;;;;;17226:5:::0;17207:16;;:24;;;;;;;;;;;;;;;;;;25611:863;:::o;27681:447::-;27767:7;27797:17;27830:13;;;;;;;;;;;27817:26;;:9;:26;;;:125;;27912:30;27938:3;27912:21;27923:9;;27912:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;27817:125;;;27846:29;27871:3;27846:20;27857:8;;27846:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;27817:125;27797:145;;27982:39;28011:9;27982;:24;28000:4;27982:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;27955:9;:24;27973:4;27955:24;;;;;;;;;;;;;;;:66;;;;28062:4;28037:42;;28046:6;28037:42;;;28069:9;28037:42;;;;;;:::i;:::-;;;;;;;;28099:21;28110:9;28099:6;:10;;:21;;;;:::i;:::-;28092:28;;;27681:447;;;;;:::o;2106:132::-;2164:7;2191:39;2195:1;2198;2191:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2184:46;;2106:132;;;;:::o;1848:250::-;1906:7;1935:1;1930;:6;1926:47;;;1960:1;1953:8;;;;1926:47;1985:9;2001:1;1997;:5;;;;:::i;:::-;1985:17;;2030:1;2025;2021;:5;;;;:::i;:::-;:10;2013:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2089:1;2082:8;;;1848:250;;;;;:::o;26486:666::-;26612:21;26650:1;26636:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26612:40;;26681:4;26663;26668:1;26663:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;26707:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26697:4;26702:1;26697:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;26742:62;26759:4;26774:15;;;;;;;;;;;26792:11;26742:8;:62::i;:::-;26843:15;;;;;;;;;;;:66;;;26924:11;26950:1;26994:4;27021;27057:15;26843:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27109:35;27126:11;27139:4;27109:35;;;;;;;:::i;:::-;;;;;;;;26486:666;;:::o;21950:126::-;22042:9;:18;;:26;22061:6;22042:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21950:126;;:::o;27160:513::-;27308:62;27325:4;27340:15;;;;;;;;;;;27358:11;27308:8;:62::i;:::-;27413:15;;;;;;;;;;;:31;;;27452:9;27485:4;27505:11;27531:1;27574;27617:7;:5;:7::i;:::-;27639:15;27413:252;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;27160:513;;:::o;2246:278::-;2332:7;2364:1;2360;:5;2367:12;2352:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2391:9;2407:1;2403;:5;;;;:::i;:::-;2391:17;;2515:1;2508:8;;;2246:278;;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:139::-;;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;492:87;;;;:::o;585:143::-;;673:6;667:13;658:22;;689:33;716:5;689:33;:::i;:::-;648:80;;;;:::o;734:262::-;;842:2;830:9;821:7;817:23;813:32;810:2;;;858:1;855;848:12;810:2;901:1;926:53;971:7;962:6;951:9;947:22;926:53;:::i;:::-;916:63;;872:117;800:196;;;;:::o;1002:284::-;;1121:2;1109:9;1100:7;1096:23;1092:32;1089:2;;;1137:1;1134;1127:12;1089:2;1180:1;1205:64;1261:7;1252:6;1241:9;1237:22;1205:64;:::i;:::-;1195:74;;1151:128;1079:207;;;;:::o;1292:407::-;;;1417:2;1405:9;1396:7;1392:23;1388:32;1385:2;;;1433:1;1430;1423:12;1385:2;1476:1;1501:53;1546:7;1537:6;1526:9;1522:22;1501:53;:::i;:::-;1491:63;;1447:117;1603:2;1629:53;1674:7;1665:6;1654:9;1650:22;1629:53;:::i;:::-;1619:63;;1574:118;1375:324;;;;;:::o;1705:552::-;;;;1847:2;1835:9;1826:7;1822:23;1818:32;1815:2;;;1863:1;1860;1853:12;1815:2;1906:1;1931:53;1976:7;1967:6;1956:9;1952:22;1931:53;:::i;:::-;1921:63;;1877:117;2033:2;2059:53;2104:7;2095:6;2084:9;2080:22;2059:53;:::i;:::-;2049:63;;2004:118;2161:2;2187:53;2232:7;2223:6;2212:9;2208:22;2187:53;:::i;:::-;2177:63;;2132:118;1805:452;;;;;:::o;2263:401::-;;;2385:2;2373:9;2364:7;2360:23;2356:32;2353:2;;;2401:1;2398;2391:12;2353:2;2444:1;2469:53;2514:7;2505:6;2494:9;2490:22;2469:53;:::i;:::-;2459:63;;2415:117;2571:2;2597:50;2639:7;2630:6;2619:9;2615:22;2597:50;:::i;:::-;2587:60;;2542:115;2343:321;;;;;:::o;2670:407::-;;;2795:2;2783:9;2774:7;2770:23;2766:32;2763:2;;;2811:1;2808;2801:12;2763:2;2854:1;2879:53;2924:7;2915:6;2904:9;2900:22;2879:53;:::i;:::-;2869:63;;2825:117;2981:2;3007:53;3052:7;3043:6;3032:9;3028:22;3007:53;:::i;:::-;2997:63;;2952:118;2753:324;;;;;:::o;3083:256::-;;3188:2;3176:9;3167:7;3163:23;3159:32;3156:2;;;3204:1;3201;3194:12;3156:2;3247:1;3272:50;3314:7;3305:6;3294:9;3290:22;3272:50;:::i;:::-;3262:60;;3218:114;3146:193;;;;:::o;3345:262::-;;3453:2;3441:9;3432:7;3428:23;3424:32;3421:2;;;3469:1;3466;3459:12;3421:2;3512:1;3537:53;3582:7;3573:6;3562:9;3558:22;3537:53;:::i;:::-;3527:63;;3483:117;3411:196;;;;:::o;3613:596::-;;;;3766:2;3754:9;3745:7;3741:23;3737:32;3734:2;;;3782:1;3779;3772:12;3734:2;3825:1;3850:64;3906:7;3897:6;3886:9;3882:22;3850:64;:::i;:::-;3840:74;;3796:128;3963:2;3989:64;4045:7;4036:6;4025:9;4021:22;3989:64;:::i;:::-;3979:74;;3934:129;4102:2;4128:64;4184:7;4175:6;4164:9;4160:22;4128:64;:::i;:::-;4118:74;;4073:129;3724:485;;;;;:::o;4215:698::-;;;;;4374:3;4362:9;4353:7;4349:23;4345:33;4342:2;;;4391:1;4388;4381:12;4342:2;4434:1;4459:53;4504:7;4495:6;4484:9;4480:22;4459:53;:::i;:::-;4449:63;;4405:117;4561:2;4587:53;4632:7;4623:6;4612:9;4608:22;4587:53;:::i;:::-;4577:63;;4532:118;4689:2;4715:53;4760:7;4751:6;4740:9;4736:22;4715:53;:::i;:::-;4705:63;;4660:118;4817:2;4843:53;4888:7;4879:6;4868:9;4864:22;4843:53;:::i;:::-;4833:63;;4788:118;4332:581;;;;;;;:::o;4919:179::-;;5009:46;5051:3;5043:6;5009:46;:::i;:::-;5087:4;5082:3;5078:14;5064:28;;4999:99;;;;:::o;5104:142::-;5207:32;5233:5;5207:32;:::i;:::-;5202:3;5195:45;5185:61;;:::o;5252:108::-;5329:24;5347:5;5329:24;:::i;:::-;5324:3;5317:37;5307:53;;:::o;5366:118::-;5453:24;5471:5;5453:24;:::i;:::-;5448:3;5441:37;5431:53;;:::o;5520:732::-;;5668:54;5716:5;5668:54;:::i;:::-;5738:86;5817:6;5812:3;5738:86;:::i;:::-;5731:93;;5848:56;5898:5;5848:56;:::i;:::-;5927:7;5958:1;5943:284;5968:6;5965:1;5962:13;5943:284;;;6044:6;6038:13;6071:63;6130:3;6115:13;6071:63;:::i;:::-;6064:70;;6157:60;6210:6;6157:60;:::i;:::-;6147:70;;6003:224;5990:1;5987;5983:9;5978:14;;5943:284;;;5947:14;6243:3;6236:10;;5644:608;;;;;;;:::o;6258:109::-;6339:21;6354:5;6339:21;:::i;:::-;6334:3;6327:34;6317:50;;:::o;6373:185::-;6487:64;6545:5;6487:64;:::i;:::-;6482:3;6475:77;6465:93;;:::o;6564:147::-;6659:45;6698:5;6659:45;:::i;:::-;6654:3;6647:58;6637:74;;:::o;6717:364::-;;6833:39;6866:5;6833:39;:::i;:::-;6888:71;6952:6;6947:3;6888:71;:::i;:::-;6881:78;;6968:52;7013:6;7008:3;7001:4;6994:5;6990:16;6968:52;:::i;:::-;7045:29;7067:6;7045:29;:::i;:::-;7040:3;7036:39;7029:46;;6809:272;;;;;:::o;7087:366::-;;7250:67;7314:2;7309:3;7250:67;:::i;:::-;7243:74;;7326:93;7415:3;7326:93;:::i;:::-;7444:2;7439:3;7435:12;7428:19;;7233:220;;;:::o;7459:366::-;;7622:67;7686:2;7681:3;7622:67;:::i;:::-;7615:74;;7698:93;7787:3;7698:93;:::i;:::-;7816:2;7811:3;7807:12;7800:19;;7605:220;;;:::o;7831:366::-;;7994:67;8058:2;8053:3;7994:67;:::i;:::-;7987:74;;8070:93;8159:3;8070:93;:::i;:::-;8188:2;8183:3;8179:12;8172:19;;7977:220;;;:::o;8203:366::-;;8366:67;8430:2;8425:3;8366:67;:::i;:::-;8359:74;;8442:93;8531:3;8442:93;:::i;:::-;8560:2;8555:3;8551:12;8544:19;;8349:220;;;:::o;8575:366::-;;8738:67;8802:2;8797:3;8738:67;:::i;:::-;8731:74;;8814:93;8903:3;8814:93;:::i;:::-;8932:2;8927:3;8923:12;8916:19;;8721:220;;;:::o;8947:366::-;;9110:67;9174:2;9169:3;9110:67;:::i;:::-;9103:74;;9186:93;9275:3;9186:93;:::i;:::-;9304:2;9299:3;9295:12;9288:19;;9093:220;;;:::o;9319:366::-;;9482:67;9546:2;9541:3;9482:67;:::i;:::-;9475:74;;9558:93;9647:3;9558:93;:::i;:::-;9676:2;9671:3;9667:12;9660:19;;9465:220;;;:::o;9691:366::-;;9854:67;9918:2;9913:3;9854:67;:::i;:::-;9847:74;;9930:93;10019:3;9930:93;:::i;:::-;10048:2;10043:3;10039:12;10032:19;;9837:220;;;:::o;10063:366::-;;10226:67;10290:2;10285:3;10226:67;:::i;:::-;10219:74;;10302:93;10391:3;10302:93;:::i;:::-;10420:2;10415:3;10411:12;10404:19;;10209:220;;;:::o;10435:366::-;;10598:67;10662:2;10657:3;10598:67;:::i;:::-;10591:74;;10674:93;10763:3;10674:93;:::i;:::-;10792:2;10787:3;10783:12;10776:19;;10581:220;;;:::o;10807:366::-;;10970:67;11034:2;11029:3;10970:67;:::i;:::-;10963:74;;11046:93;11135:3;11046:93;:::i;:::-;11164:2;11159:3;11155:12;11148:19;;10953:220;;;:::o;11179:366::-;;11342:67;11406:2;11401:3;11342:67;:::i;:::-;11335:74;;11418:93;11507:3;11418:93;:::i;:::-;11536:2;11531:3;11527:12;11520:19;;11325:220;;;:::o;11551:366::-;;11714:67;11778:2;11773:3;11714:67;:::i;:::-;11707:74;;11790:93;11879:3;11790:93;:::i;:::-;11908:2;11903:3;11899:12;11892:19;;11697:220;;;:::o;11923:118::-;12010:24;12028:5;12010:24;:::i;:::-;12005:3;11998:37;11988:53;;:::o;12047:112::-;12130:22;12146:5;12130:22;:::i;:::-;12125:3;12118:35;12108:51;;:::o;12165:222::-;;12296:2;12285:9;12281:18;12273:26;;12309:71;12377:1;12366:9;12362:17;12353:6;12309:71;:::i;:::-;12263:124;;;;:::o;12393:254::-;;12540:2;12529:9;12525:18;12517:26;;12553:87;12637:1;12626:9;12622:17;12613:6;12553:87;:::i;:::-;12507:140;;;;:::o;12653:332::-;;12812:2;12801:9;12797:18;12789:26;;12825:71;12893:1;12882:9;12878:17;12869:6;12825:71;:::i;:::-;12906:72;12974:2;12963:9;12959:18;12950:6;12906:72;:::i;:::-;12779:206;;;;;:::o;12991:807::-;;13278:3;13267:9;13263:19;13255:27;;13292:71;13360:1;13349:9;13345:17;13336:6;13292:71;:::i;:::-;13373:72;13441:2;13430:9;13426:18;13417:6;13373:72;:::i;:::-;13455:80;13531:2;13520:9;13516:18;13507:6;13455:80;:::i;:::-;13545;13621:2;13610:9;13606:18;13597:6;13545:80;:::i;:::-;13635:73;13703:3;13692:9;13688:19;13679:6;13635:73;:::i;:::-;13718;13786:3;13775:9;13771:19;13762:6;13718:73;:::i;:::-;13245:553;;;;;;;;;:::o;13804:210::-;;13929:2;13918:9;13914:18;13906:26;;13942:65;14004:1;13993:9;13989:17;13980:6;13942:65;:::i;:::-;13896:118;;;;:::o;14020:276::-;;14178:2;14167:9;14163:18;14155:26;;14191:98;14286:1;14275:9;14271:17;14262:6;14191:98;:::i;:::-;14145:151;;;;:::o;14302:313::-;;14453:2;14442:9;14438:18;14430:26;;14502:9;14496:4;14492:20;14488:1;14477:9;14473:17;14466:47;14530:78;14603:4;14594:6;14530:78;:::i;:::-;14522:86;;14420:195;;;;:::o;14621:419::-;;14825:2;14814:9;14810:18;14802:26;;14874:9;14868:4;14864:20;14860:1;14849:9;14845:17;14838:47;14902:131;15028:4;14902:131;:::i;:::-;14894:139;;14792:248;;;:::o;15046:419::-;;15250:2;15239:9;15235:18;15227:26;;15299:9;15293:4;15289:20;15285:1;15274:9;15270:17;15263:47;15327:131;15453:4;15327:131;:::i;:::-;15319:139;;15217:248;;;:::o;15471:419::-;;15675:2;15664:9;15660:18;15652:26;;15724:9;15718:4;15714:20;15710:1;15699:9;15695:17;15688:47;15752:131;15878:4;15752:131;:::i;:::-;15744:139;;15642:248;;;:::o;15896:419::-;;16100:2;16089:9;16085:18;16077:26;;16149:9;16143:4;16139:20;16135:1;16124:9;16120:17;16113:47;16177:131;16303:4;16177:131;:::i;:::-;16169:139;;16067:248;;;:::o;16321:419::-;;16525:2;16514:9;16510:18;16502:26;;16574:9;16568:4;16564:20;16560:1;16549:9;16545:17;16538:47;16602:131;16728:4;16602:131;:::i;:::-;16594:139;;16492:248;;;:::o;16746:419::-;;16950:2;16939:9;16935:18;16927:26;;16999:9;16993:4;16989:20;16985:1;16974:9;16970:17;16963:47;17027:131;17153:4;17027:131;:::i;:::-;17019:139;;16917:248;;;:::o;17171:419::-;;17375:2;17364:9;17360:18;17352:26;;17424:9;17418:4;17414:20;17410:1;17399:9;17395:17;17388:47;17452:131;17578:4;17452:131;:::i;:::-;17444:139;;17342:248;;;:::o;17596:419::-;;17800:2;17789:9;17785:18;17777:26;;17849:9;17843:4;17839:20;17835:1;17824:9;17820:17;17813:47;17877:131;18003:4;17877:131;:::i;:::-;17869:139;;17767:248;;;:::o;18021:419::-;;18225:2;18214:9;18210:18;18202:26;;18274:9;18268:4;18264:20;18260:1;18249:9;18245:17;18238:47;18302:131;18428:4;18302:131;:::i;:::-;18294:139;;18192:248;;;:::o;18446:419::-;;18650:2;18639:9;18635:18;18627:26;;18699:9;18693:4;18689:20;18685:1;18674:9;18670:17;18663:47;18727:131;18853:4;18727:131;:::i;:::-;18719:139;;18617:248;;;:::o;18871:419::-;;19075:2;19064:9;19060:18;19052:26;;19124:9;19118:4;19114:20;19110:1;19099:9;19095:17;19088:47;19152:131;19278:4;19152:131;:::i;:::-;19144:139;;19042:248;;;:::o;19296:419::-;;19500:2;19489:9;19485:18;19477:26;;19549:9;19543:4;19539:20;19535:1;19524:9;19520:17;19513:47;19577:131;19703:4;19577:131;:::i;:::-;19569:139;;19467:248;;;:::o;19721:419::-;;19925:2;19914:9;19910:18;19902:26;;19974:9;19968:4;19964:20;19960:1;19949:9;19945:17;19938:47;20002:131;20128:4;20002:131;:::i;:::-;19994:139;;19892:248;;;:::o;20146:222::-;;20277:2;20266:9;20262:18;20254:26;;20290:71;20358:1;20347:9;20343:17;20334:6;20290:71;:::i;:::-;20244:124;;;;:::o;20374:483::-;;20583:2;20572:9;20568:18;20560:26;;20596:71;20664:1;20653:9;20649:17;20640:6;20596:71;:::i;:::-;20714:9;20708:4;20704:20;20699:2;20688:9;20684:18;20677:48;20742:108;20845:4;20836:6;20742:108;:::i;:::-;20734:116;;20550:307;;;;;:::o;20863:831::-;;21164:3;21153:9;21149:19;21141:27;;21178:71;21246:1;21235:9;21231:17;21222:6;21178:71;:::i;:::-;21259:80;21335:2;21324:9;21320:18;21311:6;21259:80;:::i;:::-;21386:9;21380:4;21376:20;21371:2;21360:9;21356:18;21349:48;21414:108;21517:4;21508:6;21414:108;:::i;:::-;21406:116;;21532:72;21600:2;21589:9;21585:18;21576:6;21532:72;:::i;:::-;21614:73;21682:3;21671:9;21667:19;21658:6;21614:73;:::i;:::-;21131:563;;;;;;;;:::o;21700:214::-;;21827:2;21816:9;21812:18;21804:26;;21840:67;21904:1;21893:9;21889:17;21880:6;21840:67;:::i;:::-;21794:120;;;;:::o;21920:132::-;;22010:3;22002:11;;22040:4;22035:3;22031:14;22023:22;;21992:60;;;:::o;22058:114::-;;22159:5;22153:12;22143:22;;22132:40;;;:::o;22178:99::-;;22264:5;22258:12;22248:22;;22237:40;;;:::o;22283:113::-;;22385:4;22380:3;22376:14;22368:22;;22358:38;;;:::o;22402:184::-;;22535:6;22530:3;22523:19;22575:4;22570:3;22566:14;22551:29;;22513:73;;;;:::o;22592:169::-;;22710:6;22705:3;22698:19;22750:4;22745:3;22741:14;22726:29;;22688:73;;;;:::o;22767:305::-;;22826:20;22844:1;22826:20;:::i;:::-;22821:25;;22860:20;22878:1;22860:20;:::i;:::-;22855:25;;23014:1;22946:66;22942:74;22939:1;22936:81;22933:2;;;23020:18;;:::i;:::-;22933:2;23064:1;23061;23057:9;23050:16;;22811:261;;;;:::o;23078:185::-;;23135:20;23153:1;23135:20;:::i;:::-;23130:25;;23169:20;23187:1;23169:20;:::i;:::-;23164:25;;23208:1;23198:2;;23213:18;;:::i;:::-;23198:2;23255:1;23252;23248:9;23243:14;;23120:143;;;;:::o;23269:348::-;;23332:20;23350:1;23332:20;:::i;:::-;23327:25;;23366:20;23384:1;23366:20;:::i;:::-;23361:25;;23554:1;23486:66;23482:74;23479:1;23476:81;23471:1;23464:9;23457:17;23453:105;23450:2;;;23561:18;;:::i;:::-;23450:2;23609:1;23606;23602:9;23591:20;;23317:300;;;;:::o;23623:191::-;;23683:20;23701:1;23683:20;:::i;:::-;23678:25;;23717:20;23735:1;23717:20;:::i;:::-;23712:25;;23756:1;23753;23750:8;23747:2;;;23761:18;;:::i;:::-;23747:2;23806:1;23803;23799:9;23791:17;;23668:146;;;;:::o;23820:96::-;;23886:24;23904:5;23886:24;:::i;:::-;23875:35;;23865:51;;;:::o;23922:104::-;;23996:24;24014:5;23996:24;:::i;:::-;23985:35;;23975:51;;;:::o;24032:90::-;;24109:5;24102:13;24095:21;24084:32;;24074:48;;;:::o;24128:126::-;;24205:42;24198:5;24194:54;24183:65;;24173:81;;;:::o;24260:77::-;;24326:5;24315:16;;24305:32;;;:::o;24343:86::-;;24418:4;24411:5;24407:16;24396:27;;24386:43;;;:::o;24435:180::-;;24545:64;24603:5;24545:64;:::i;:::-;24532:77;;24522:93;;;:::o;24621:140::-;;24731:24;24749:5;24731:24;:::i;:::-;24718:37;;24708:53;;;:::o;24767:121::-;;24858:24;24876:5;24858:24;:::i;:::-;24845:37;;24835:53;;;:::o;24894:307::-;24962:1;24972:113;24986:6;24983:1;24980:13;24972:113;;;25071:1;25066:3;25062:11;25056:18;25052:1;25047:3;25043:11;25036:39;25008:2;25005:1;25001:10;24996:15;;24972:113;;;25103:6;25100:1;25097:13;25094:2;;;25183:1;25174:6;25169:3;25165:16;25158:27;25094:2;24943:258;;;;:::o;25207:320::-;;25288:1;25282:4;25278:12;25268:22;;25335:1;25329:4;25325:12;25356:18;25346:2;;25412:4;25404:6;25400:17;25390:27;;25346:2;25474;25466:6;25463:14;25443:18;25440:38;25437:2;;;25493:18;;:::i;:::-;25437:2;25258:269;;;;:::o;25533:180::-;25581:77;25578:1;25571:88;25678:4;25675:1;25668:15;25702:4;25699:1;25692:15;25719:180;25767:77;25764:1;25757:88;25864:4;25861:1;25854:15;25888:4;25885:1;25878:15;25905:180;25953:77;25950:1;25943:88;26050:4;26047:1;26040:15;26074:4;26071:1;26064:15;26091:102;;26183:2;26179:7;26174:2;26167:5;26163:14;26159:28;26149:38;;26139:54;;;:::o;26199:222::-;26339:34;26335:1;26327:6;26323:14;26316:58;26408:5;26403:2;26395:6;26391:15;26384:30;26305:116;:::o;26427:225::-;26567:34;26563:1;26555:6;26551:14;26544:58;26636:8;26631:2;26623:6;26619:15;26612:33;26533:119;:::o;26658:221::-;26798:34;26794:1;26786:6;26782:14;26775:58;26867:4;26862:2;26854:6;26850:15;26843:29;26764:115;:::o;26885:177::-;27025:29;27021:1;27013:6;27009:14;27002:53;26991:71;:::o;27068:181::-;27208:33;27204:1;27196:6;27192:14;27185:57;27174:75;:::o;27255:227::-;27395:34;27391:1;27383:6;27379:14;27372:58;27464:10;27459:2;27451:6;27447:15;27440:35;27361:121;:::o;27488:220::-;27628:34;27624:1;27616:6;27612:14;27605:58;27697:3;27692:2;27684:6;27680:15;27673:28;27594:114;:::o;27714:182::-;27854:34;27850:1;27842:6;27838:14;27831:58;27820:76;:::o;27902:228::-;28042:34;28038:1;28030:6;28026:14;28019:58;28111:11;28106:2;28098:6;28094:15;28087:36;28008:122;:::o;28136:224::-;28276:34;28272:1;28264:6;28260:14;28253:58;28345:7;28340:2;28332:6;28328:15;28321:32;28242:118;:::o;28366:223::-;28506:34;28502:1;28494:6;28490:14;28483:58;28575:6;28570:2;28562:6;28558:15;28551:31;28472:117;:::o;28595:181::-;28735:33;28731:1;28723:6;28719:14;28712:57;28701:75;:::o;28782:222::-;28922:34;28918:1;28910:6;28906:14;28899:58;28991:5;28986:2;28978:6;28974:15;28967:30;28888:116;:::o;29010:122::-;29083:24;29101:5;29083:24;:::i;:::-;29076:5;29073:35;29063:2;;29122:1;29119;29112:12;29063:2;29053:79;:::o;29138:116::-;29208:21;29223:5;29208:21;:::i;:::-;29201:5;29198:32;29188:2;;29244:1;29241;29234:12;29188:2;29178:76;:::o;29260:122::-;29333:24;29351:5;29333:24;:::i;:::-;29326:5;29323:35;29313:2;;29372:1;29369;29362:12;29313:2;29303:79;:::o
Swarm Source
ipfs://b8a292f5467d371af52fe1ff0d4a5055d2be62153947fef0c7632bfbe18bac1c
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.