ERC-20
Overview
Max Total Supply
1,718,325.407232378430435594 SEAGEN
Holders
53
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
captaincuck
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-20 */ // SPDX-License-Identifier: Unlicense pragma solidity ^0.8.17; 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) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { //Contract By Techaddict unchecked { require(b > 0, errorMessage); return a / b; } } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function sendValue(address payable recipient, uint256 amount) internal { require( address(this).balance >= amount, "Address: insufficient balance" ); (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" ); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}( data ); return _verifyCallResult(success, returndata, errorMessage); } function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall( target, data, "Address: low-level static call failed" ); } function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall( target, data, "Address: low-level delegate call failed" ); } function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) private pure returns (bytes memory) { if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } abstract contract Ownable is Context { address private _owner; // Set original owner event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _owner = 0x3d5e71A041fD15F83F96a97347108b5f5e57A5A3; emit OwnershipTransferred(address(0), _owner); } // Return current owner function owner() public view virtual returns (address) { return _owner; } // Restrict function to contract owner only modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } // Renounce ownership of the contract function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } // Transfer the contract to to a new owner function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function removeLiquidity( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETH( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountToken, uint256 amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint256 liquidity, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountA, uint256 amountB); function removeLiquidityETHWithPermit( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountToken, uint256 amountETH); function swapExactTokensForTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactETHForTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function swapTokensForExactETH( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapExactTokensForETH( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external returns (uint256[] memory amounts); function swapETHForExactTokens( uint256 amountOut, address[] calldata path, address to, uint256 deadline ) external payable returns (uint256[] memory amounts); function quote( uint256 amountA, uint256 reserveA, uint256 reserveB ) external pure returns (uint256 amountB); function getAmountOut( uint256 amountIn, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountOut); function getAmountIn( uint256 amountOut, uint256 reserveIn, uint256 reserveOut ) external pure returns (uint256 amountIn); function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts); function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external returns (uint256 amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint256 liquidity, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint256 amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract captaincuck is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public _isExcludedFromFee; address payable private Wallet_Dev = payable(0x3d5e71A041fD15F83F96a97347108b5f5e57A5A3); string private _name = "Captain Cuck AI"; string private _symbol = "SEAGEN"; uint8 private _decimals = 18; uint256 private _tTotal = 7000000 * 10**uint8(_decimals); uint256 private _tFeeTotal; bool public limitedBuyOnly = true; // Counter for liquify trigger uint8 private txCount = 0; uint8 private swapTrigger = 2; // This is the max fee that the contract will accept, it is hard-coded to protect buyers, note: it's 20 / 10 uint256 private maxPossibleFee = 8; // Setting the initial fees uint256 private _TotalFee = 2; uint256 public _buyFee = 2; uint256 public _sellFee = 2; // 'Previous fees' are used to keep track of fee settings when removing and restoring fees uint256 private _previousTotalFee = _TotalFee; uint256 private _previousBuyFee = _buyFee; uint256 private _previousSellFee = _sellFee; /* WALLET LIMITS */ uint256 public _maxTxAmount = _tTotal.mul(1).div(100); uint256 private _previousMaxTxAmount = _maxTxAmount; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool public inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor() { _tOwned[owner()] = _tTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[Wallet_Dev] = true; emit Transfer(address(0), owner(), _tTotal); } 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 _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function burn(uint256 amount) external onlyOwner { // Ensure the account is valid require(msg.sender != address(0), "ERC20: burn from the zero address"); // Reduce the account's balance by the burn amount _tOwned[msg.sender] = _tOwned[msg.sender].sub( amount, "ERC20: burn amount exceeds balance" ); // Reduce the total supply by the burn amount _tTotal = _tTotal.sub(amount); emit Transfer(msg.sender, address(0), amount); } function _burn(address account, uint256 amount) internal { // Ensure the account is valid require(account != address(0), "ERC20: burn from the zero address"); // Reduce the account's balance by the burn amount _tOwned[account] = _tOwned[account].sub( amount, "ERC20: burn amount exceeds balance" ); // Reduce the total supply by the burn amount _tTotal = _tTotal.sub(amount); emit Transfer(account, address(0), amount); } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, 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 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; } // Set a wallet address so that it does not have to pay transaction fees function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } // Set a wallet address so that it has to pay transaction fees function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function _set_Fees(uint256 Buy_Fee, uint256 Sell_Fee) external onlyOwner { require((Buy_Fee + Sell_Fee) <= maxPossibleFee, "Fee is too high!"); _sellFee = Sell_Fee; _buyFee = Buy_Fee; } function Wallet_Update_Dev(address payable wallet) public onlyOwner { Wallet_Dev = wallet; _isExcludedFromFee[Wallet_Dev] = true; } function setMaxBuyOnly(bool toggle) public onlyOwner { limitedBuyOnly = toggle; } // Toggle on and off to auto process tokens to ETH wallet function set_Swap_And_Liquify_Enabled(bool true_or_false) public onlyOwner { swapAndLiquifyEnabled = true_or_false; emit SwapAndLiquifyEnabledUpdated(true_or_false); } // This will set the number of transactions required before the 'swapAndLiquify' function triggers function set_Number_Of_Transactions_Before_Liquify_Trigger( uint8 number_of_transactions ) public onlyOwner { swapTrigger = number_of_transactions; } receive() external payable {} bool public noFeeToTransfer = true; function set_Transfers_Without_Fees(bool true_or_false) external onlyOwner { noFeeToTransfer = true_or_false; } // Set the Max transaction amount (percent of total supply) function set_Max_Transaction_Percent(uint256 maxTxPercent_x100) external onlyOwner { _maxTxAmount = (_tTotal * maxTxPercent_x100) / 10000; } function removeAllFee() private { if (_TotalFee == 0 && _buyFee == 0 && _sellFee == 0) return; _previousBuyFee = _buyFee; _previousSellFee = _sellFee; _previousTotalFee = _TotalFee; _buyFee = 0; _sellFee = 0; _TotalFee = 0; } function restoreAllFee() private { _TotalFee = _previousTotalFee; _buyFee = _previousBuyFee; _sellFee = _previousSellFee; } function _approve( address owner, address spender, uint256 amount ) private { require( owner != address(0) && spender != address(0), "ERR: zero address" ); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { // Limit the maximum number of tokens that can be bought in one transaction if (from == uniswapV2Pair && to != owner() && limitedBuyOnly == true) { require( amount <= _maxTxAmount, "You are trying to buy more than the max transaction limit." ); } require(from != address(0) && to != address(0), "Using 0 address!"); require(amount > 0, "Token value must be higher than zero."); if ( txCount >= swapTrigger && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled ) { txCount = 0; uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance > _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (contractTokenBalance > 0) { swapAndLiquify(contractTokenBalance); } } bool takeFee = true; if ( _isExcludedFromFee[from] || _isExcludedFromFee[to] || (noFeeToTransfer && from != uniswapV2Pair && to != uniswapV2Pair) ) { takeFee = false; } else if (from == uniswapV2Pair) { _TotalFee = _buyFee; } else if (to == uniswapV2Pair) { _TotalFee = _sellFee; uint256 burnAmount = amount.div(100); // Burn 1% of the sell transaction _burn(from, burnAmount); // Update the amount to be transferred after the burn amount = amount.sub(burnAmount); } _tokenTransfer(from, to, amount, takeFee); } function sendToWallet(address payable wallet, uint256 amount) private { wallet.transfer(amount); } function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { swapTokensForETH(contractTokenBalance); uint256 contractETH = address(this).balance; sendToWallet(Wallet_Dev, contractETH); } function process_Tokens_Now(uint256 percent_Of_Tokens_To_Process) public onlyOwner { // Do not trigger if already in swap require(!inSwapAndLiquify, "Currently processing, try later."); if (percent_Of_Tokens_To_Process > 100) { percent_Of_Tokens_To_Process == 100; } uint256 tokensOnContract = balanceOf(address(this)); uint256 sendTokens = (tokensOnContract * percent_Of_Tokens_To_Process) / 100; swapAndLiquify(sendTokens); } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } // Set new router and make the new pair address function set_New_Router_and_Make_Pair(address newRouter) public onlyOwner { IUniswapV2Router02 _newPCSRouter = IUniswapV2Router02(newRouter); uniswapV2Pair = IUniswapV2Factory(_newPCSRouter.factory()).createPair( address(this), _newPCSRouter.WETH() ); uniswapV2Router = _newPCSRouter; } // Set new router function set_New_Router_Address(address newRouter) public onlyOwner { IUniswapV2Router02 _newPCSRouter = IUniswapV2Router02(newRouter); uniswapV2Router = _newPCSRouter; } function set_New_Pair_Address(address newPair) public onlyOwner { uniswapV2Pair = newPair; } // Check if token transfer needs to process fees function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) { removeAllFee(); } else { txCount++; } _transferTokens(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferTokens( address sender, address recipient, uint256 tAmount ) private { (uint256 tTransferAmount, uint256 tDev) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _tOwned[address(this)] = _tOwned[address(this)].add(tDev); emit Transfer(sender, recipient, tTransferAmount); } function _getValues(uint256 tAmount) private view returns (uint256, uint256) { uint256 tDev = (tAmount * _TotalFee) / 100; uint256 tTransferAmount = tAmount.sub(tDev); return (tTransferAmount, tDev); } }
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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address payable","name":"wallet","type":"address"}],"name":"Wallet_Update_Dev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"Buy_Fee","type":"uint256"},{"internalType":"uint256","name":"Sell_Fee","type":"uint256"}],"name":"_set_Fees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitedBuyOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"noFeeToTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent_Of_Tokens_To_Process","type":"uint256"}],"name":"process_Tokens_Now","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"toggle","type":"bool"}],"name":"setMaxBuyOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent_x100","type":"uint256"}],"name":"set_Max_Transaction_Percent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPair","type":"address"}],"name":"set_New_Pair_Address","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"set_New_Router_Address","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"set_New_Router_and_Make_Pair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"number_of_transactions","type":"uint8"}],"name":"set_Number_Of_Transactions_Before_Liquify_Trigger","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"set_Swap_And_Liquify_Enabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"set_Transfers_Without_Fees","outputs":[],"stateMutability":"nonpayable","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052733d5e71a041fd15f83f96a97347108b5f5e57a5a3600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600f81526020017f4361707461696e204375636b2041490000000000000000000000000000000000815250600590816200009f9190620009df565b506040518060400160405280600681526020017f53454147454e000000000000000000000000000000000000000000000000000081525060069081620000e69190620009df565b506012600760006101000a81548160ff021916908360ff160217905550600760009054906101000a900460ff16600a62000121919062000c56565b626acfc062000131919062000ca7565b6008556001600a60006101000a81548160ff0219169083151502179055506000600a60016101000a81548160ff021916908360ff1602179055506002600a60026101000a81548160ff021916908360ff1602179055506008600b556002600c556002600d556002600e55600c54600f55600d54601055600e54601155620001e46064620001d060016008546200070c60201b62001f7a1790919060201c565b6200072460201b62001f901790919060201c565b60125560125460135560016015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055503480156200022f57600080fd5b50733d5e71a041fd15f83f96a97347108b5f5e57a5a36000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360085460016000620003166200073c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003df919062000d5c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000447573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046d919062000d5c565b6040518363ffffffff1660e01b81526004016200048c92919062000d9f565b6020604051808303816000875af1158015620004ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004d2919062000d5c565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620005696200073c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200069c6200073c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600854604051620006fd919062000ddd565b60405180910390a35062000e61565b600081836200071c919062000ca7565b905092915050565b6000818362000734919062000e29565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620007e757607f821691505b602082108103620007fd57620007fc6200079f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000828565b62000873868362000828565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620008c0620008ba620008b4846200088b565b62000895565b6200088b565b9050919050565b6000819050919050565b620008dc836200089f565b620008f4620008eb82620008c7565b84845462000835565b825550505050565b600090565b6200090b620008fc565b62000918818484620008d1565b505050565b5b8181101562000940576200093460008262000901565b6001810190506200091e565b5050565b601f8211156200098f57620009598162000803565b620009648462000818565b8101602085101562000974578190505b6200098c620009838562000818565b8301826200091d565b50505b505050565b600082821c905092915050565b6000620009b46000198460080262000994565b1980831691505092915050565b6000620009cf8383620009a1565b9150826002028217905092915050565b620009ea8262000765565b67ffffffffffffffff81111562000a065762000a0562000770565b5b62000a128254620007ce565b62000a1f82828562000944565b600060209050601f83116001811462000a57576000841562000a42578287015190505b62000a4e8582620009c1565b86555062000abe565b601f19841662000a678662000803565b60005b8281101562000a915784890151825560018201915060208501945060208101905062000a6a565b8683101562000ab1578489015162000aad601f891682620009a1565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000b545780860481111562000b2c5762000b2b62000ac6565b5b600185161562000b3c5780820291505b808102905062000b4c8562000af5565b945062000b0c565b94509492505050565b60008262000b6f576001905062000c42565b8162000b7f576000905062000c42565b816001811462000b98576002811462000ba35762000bd9565b600191505062000c42565b60ff84111562000bb85762000bb762000ac6565b5b8360020a91508482111562000bd25762000bd162000ac6565b5b5062000c42565b5060208310610133831016604e8410600b841016171562000c135782820a90508381111562000c0d5762000c0c62000ac6565b5b62000c42565b62000c22848484600162000b02565b9250905081840481111562000c3c5762000c3b62000ac6565b5b81810290505b9392505050565b600060ff82169050919050565b600062000c63826200088b565b915062000c708362000c49565b925062000c9f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b5d565b905092915050565b600062000cb4826200088b565b915062000cc1836200088b565b925082820262000cd1816200088b565b9150828204841483151762000ceb5762000cea62000ac6565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d248262000cf7565b9050919050565b62000d368162000d17565b811462000d4257600080fd5b50565b60008151905062000d568162000d2b565b92915050565b60006020828403121562000d755762000d7462000cf2565b5b600062000d858482850162000d45565b91505092915050565b62000d998162000d17565b82525050565b600060408201905062000db6600083018562000d8e565b62000dc5602083018462000d8e565b9392505050565b62000dd7816200088b565b82525050565b600060208201905062000df4600083018462000dcc565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e36826200088b565b915062000e43836200088b565b92508262000e565762000e5562000dfa565b5b828204905092915050565b613d3a8062000e716000396000f3fe6080604052600436106102295760003560e01c806370a0823111610123578063a457c2d7116100ab578063dd62ed3e1161006f578063dd62ed3e14610814578063ddbf526614610851578063ea2f0b371461087a578063f2fde38b146108a3578063f7739b5f146108cc57610230565b8063a457c2d71461071f578063a514a07d1461075c578063a9059cbb14610785578063ba0382b5146107c2578063d785d5be146107eb57610230565b80637d1db4a5116100f25780637d1db4a51461064a5780638824e16e146106755780638a6034b11461069e5780638da5cb5b146106c957806395d89b41146106f457610230565b806370a0823114610590578063715018a6146105cd578063768dc710146105e45780637caefa891461062157610230565b8063313ce567116101b1578063437823ec11610175578063437823ec146104bd57806349bd5a5e146104e65780634a74bb0214610511578063590f897e1461053c57806367cbd84c1461056757610230565b8063313ce567146103d857806336b1a1bc14610403578063395093511461042c57806340b9a54b1461046957806342966c681461049457610230565b80631694505e116101f85780631694505e146102f157806318160ddd1461031c578063220f66961461034757806323b872dd146103725780632e39c6c6146103af57610230565b806306fdde0314610235578063095ea7b3146102605780631282a0a01461029d57806313fad07a146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108f5565b6040516102579190612fd3565b60405180910390f35b34801561026c57600080fd5b506102876004803603810190610282919061308e565b610987565b60405161029491906130e9565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf9190613104565b6109a5565b005b3480156102d257600080fd5b506102db610c05565b6040516102e891906130e9565b60405180910390f35b3480156102fd57600080fd5b50610306610c18565b6040516103139190613190565b60405180910390f35b34801561032857600080fd5b50610331610c3e565b60405161033e91906131ba565b60405180910390f35b34801561035357600080fd5b5061035c610c48565b60405161036991906130e9565b60405180910390f35b34801561037e57600080fd5b50610399600480360381019061039491906131d5565b610c5b565b6040516103a691906130e9565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d19190613228565b610d34565b005b3480156103e457600080fd5b506103ed610dd4565b6040516103fa9190613271565b60405180910390f35b34801561040f57600080fd5b5061042a60048036038101906104259190613104565b610deb565b005b34801561043857600080fd5b50610453600480360381019061044e919061308e565b610eb1565b60405161046091906130e9565b60405180910390f35b34801561047557600080fd5b5061047e610f64565b60405161048b91906131ba565b60405180910390f35b3480156104a057600080fd5b506104bb60048036038101906104b69190613228565b610f6a565b005b3480156104c957600080fd5b506104e460048036038101906104df9190613104565b611188565b005b3480156104f257600080fd5b506104fb61125f565b604051610508919061329b565b60405180910390f35b34801561051d57600080fd5b50610526611285565b60405161053391906130e9565b60405180910390f35b34801561054857600080fd5b50610551611296565b60405161055e91906131ba565b60405180910390f35b34801561057357600080fd5b5061058e600480360381019061058991906132b6565b61129c565b005b34801561059c57600080fd5b506105b760048036038101906105b29190613104565b61137a565b6040516105c491906131ba565b60405180910390f35b3480156105d957600080fd5b506105e26113c3565b005b3480156105f057600080fd5b5061060b60048036038101906106069190613104565b6114fd565b60405161061891906130e9565b60405180910390f35b34801561062d57600080fd5b5061064860048036038101906106439190613322565b61151d565b005b34801561065657600080fd5b5061065f6115b7565b60405161066c91906131ba565b60405180910390f35b34801561068157600080fd5b5061069c6004803603810190610697919061338d565b6115bd565b005b3480156106aa57600080fd5b506106b36116f7565b6040516106c091906130e9565b60405180910390f35b3480156106d557600080fd5b506106de61170a565b6040516106eb919061329b565b60405180910390f35b34801561070057600080fd5b50610709611733565b6040516107169190612fd3565b60405180910390f35b34801561072b57600080fd5b506107466004803603810190610741919061308e565b6117c5565b60405161075391906130e9565b60405180910390f35b34801561076857600080fd5b50610783600480360381019061077e91906133e6565b611892565b005b34801561079157600080fd5b506107ac60048036038101906107a7919061308e565b61192b565b6040516107b991906130e9565b60405180910390f35b3480156107ce57600080fd5b506107e960048036038101906107e491906133e6565b611949565b005b3480156107f757600080fd5b50610812600480360381019061080d9190613104565b6119e2565b005b34801561082057600080fd5b5061083b60048036038101906108369190613413565b611aa2565b60405161084891906131ba565b60405180910390f35b34801561085d57600080fd5b5061087860048036038101906108739190613228565b611b29565b005b34801561088657600080fd5b506108a1600480360381019061089c9190613104565b611c2c565b005b3480156108af57600080fd5b506108ca60048036038101906108c59190613104565b611d03565b005b3480156108d857600080fd5b506108f360048036038101906108ee91906133e6565b611eab565b005b60606005805461090490613482565b80601f016020809104026020016040519081016040528092919081815260200182805461093090613482565b801561097d5780601f106109525761010080835404028352916020019161097d565b820191906000526020600020905b81548152906001019060200180831161096057829003601f168201915b5050505050905090565b600061099b610994611fa6565b8484611fae565b6001905092915050565b6109ad611fa6565b73ffffffffffffffffffffffffffffffffffffffff166109cb61170a565b73ffffffffffffffffffffffffffffffffffffffff1614610a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a18906134ff565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a959190613534565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610afc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b209190613534565b6040518363ffffffff1660e01b8152600401610b3d929190613561565b6020604051808303816000875af1158015610b5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b809190613534565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601560169054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600854905090565b601560149054906101000a900460ff1681565b6000610c68848484612142565b610d2984610c74611fa6565b610d2485604051806060016040528060288152602001613cb860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cda611fa6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ba9092919063ffffffff16565b611fae565b600190509392505050565b610d3c611fa6565b73ffffffffffffffffffffffffffffffffffffffff16610d5a61170a565b73ffffffffffffffffffffffffffffffffffffffff1614610db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da7906134ff565b60405180910390fd5b61271081600854610dc191906135b9565b610dcb919061362a565b60128190555050565b6000600760009054906101000a900460ff16905090565b610df3611fa6565b73ffffffffffffffffffffffffffffffffffffffff16610e1161170a565b73ffffffffffffffffffffffffffffffffffffffff1614610e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5e906134ff565b60405180910390fd5b600081905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000610f5a610ebe611fa6565b84610f558560026000610ecf611fa6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461270f90919063ffffffff16565b611fae565b6001905092915050565b600d5481565b610f72611fa6565b73ffffffffffffffffffffffffffffffffffffffff16610f9061170a565b73ffffffffffffffffffffffffffffffffffffffff1614610fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdd906134ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603611055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104c906136cd565b60405180910390fd5b6110c181604051806060016040528060228152602001613c9660229139600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ba9092919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111198160085461272590919063ffffffff16565b600881905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161117d91906131ba565b60405180910390a350565b611190611fa6565b73ffffffffffffffffffffffffffffffffffffffff166111ae61170a565b73ffffffffffffffffffffffffffffffffffffffff1614611204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fb906134ff565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60158054906101000a900460ff1681565b600e5481565b6112a4611fa6565b73ffffffffffffffffffffffffffffffffffffffff166112c261170a565b73ffffffffffffffffffffffffffffffffffffffff1614611318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130f906134ff565b60405180910390fd5b600b54818361132791906136ed565b1115611368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135f9061376d565b60405180910390fd5b80600e8190555081600d819055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113cb611fa6565b73ffffffffffffffffffffffffffffffffffffffff166113e961170a565b73ffffffffffffffffffffffffffffffffffffffff161461143f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611436906134ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60036020528060005260406000206000915054906101000a900460ff1681565b611525611fa6565b73ffffffffffffffffffffffffffffffffffffffff1661154361170a565b73ffffffffffffffffffffffffffffffffffffffff1614611599576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611590906134ff565b60405180910390fd5b80600a60026101000a81548160ff021916908360ff16021790555050565b60125481565b6115c5611fa6565b73ffffffffffffffffffffffffffffffffffffffff166115e361170a565b73ffffffffffffffffffffffffffffffffffffffff1614611639576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611630906134ff565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600a60009054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606006805461174290613482565b80601f016020809104026020016040519081016040528092919081815260200182805461176e90613482565b80156117bb5780601f10611790576101008083540402835291602001916117bb565b820191906000526020600020905b81548152906001019060200180831161179e57829003601f168201915b5050505050905090565b60006118886117d2611fa6565b8461188385604051806060016040528060258152602001613ce060259139600260006117fc611fa6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ba9092919063ffffffff16565b611fae565b6001905092915050565b61189a611fa6565b73ffffffffffffffffffffffffffffffffffffffff166118b861170a565b73ffffffffffffffffffffffffffffffffffffffff161461190e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611905906134ff565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b600061193f611938611fa6565b8484612142565b6001905092915050565b611951611fa6565b73ffffffffffffffffffffffffffffffffffffffff1661196f61170a565b73ffffffffffffffffffffffffffffffffffffffff16146119c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bc906134ff565b60405180910390fd5b80600a60006101000a81548160ff02191690831515021790555050565b6119ea611fa6565b73ffffffffffffffffffffffffffffffffffffffff16611a0861170a565b73ffffffffffffffffffffffffffffffffffffffff1614611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a55906134ff565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b31611fa6565b73ffffffffffffffffffffffffffffffffffffffff16611b4f61170a565b73ffffffffffffffffffffffffffffffffffffffff1614611ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9c906134ff565b60405180910390fd5b601560149054906101000a900460ff1615611bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bec906137d9565b60405180910390fd5b6000611c003061137a565b9050600060648383611c1291906135b9565b611c1c919061362a565b9050611c278161273b565b505050565b611c34611fa6565b73ffffffffffffffffffffffffffffffffffffffff16611c5261170a565b73ffffffffffffffffffffffffffffffffffffffff1614611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f906134ff565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611d0b611fa6565b73ffffffffffffffffffffffffffffffffffffffff16611d2961170a565b73ffffffffffffffffffffffffffffffffffffffff1614611d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d76906134ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de59061386b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611eb3611fa6565b73ffffffffffffffffffffffffffffffffffffffff16611ed161170a565b73ffffffffffffffffffffffffffffffffffffffff1614611f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1e906134ff565b60405180910390fd5b806015806101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051611f6f91906130e9565b60405180910390a150565b60008183611f8891906135b9565b905092915050565b60008183611f9e919061362a565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120185750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204e906138d7565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161213591906131ba565b60405180910390a3505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121d257506121a261170a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121f1575060011515600a60009054906101000a900460ff161515145b1561223c5760125481111561223b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223290613969565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122a65750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6122e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122dc906139d5565b60405180910390fd5b60008111612328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231f90613a67565b60405180910390fd5b600a60029054906101000a900460ff1660ff16600a60019054906101000a900460ff1660ff16101580156123695750601560149054906101000a900460ff16155b80156123c35750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123d9575060158054906101000a900460ff165b1561242c576000600a60016101000a81548160ff021916908360ff16021790555060006124053061137a565b90506012548111156124175760125490505b600081111561242a576124298161273b565b5b505b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124d35750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061259e5750601560169054906101000a900460ff1680156125435750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561259d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156125ac57600090506126a8565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361260f57600d54600c819055506126a7565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126a657600e54600c819055506000612683606484611f9090919063ffffffff16565b905061268f85826127af565b6126a2818461272590919063ffffffff16565b9250505b5b5b6126b484848484612952565b50505050565b6000838311158290612702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f99190612fd3565b60405180910390fd5b5082840390509392505050565b6000818361271d91906136ed565b905092915050565b600081836127339190613a87565b905092915050565b6001601560146101000a81548160ff02191690831515021790555061275f816129bc565b6000479050612790600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612bff565b506000601560146101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361281e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612815906136cd565b60405180910390fd5b61288a81604051806060016040528060228152602001613c9660229139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ba9092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128e28160085461272590919063ffffffff16565b600881905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161294691906131ba565b60405180910390a35050565b806129645761295f612c4a565b61299d565b600a600181819054906101000a900460ff168092919061298390613abb565b91906101000a81548160ff021916908360ff160217905550505b6129a8848484612ca6565b806129b6576129b5612ee1565b5b50505050565b6000600267ffffffffffffffff8111156129d9576129d8613ae4565b5b604051908082528060200260200182016040528015612a075781602001602082028036833780820191505090505b5090503081600081518110612a1f57612a1e613b13565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aea9190613534565b81600181518110612afe57612afd613b13565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b6530601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fae565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612bc9959493929190613c3b565b600060405180830381600087803b158015612be357600080fd5b505af1158015612bf7573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612c45573d6000803e3d6000fd5b505050565b6000600c54148015612c5e57506000600d54145b8015612c6c57506000600e54145b612ca457600d54601081905550600e54601181905550600c54600f819055506000600d819055506000600e819055506000600c819055505b565b600080612cb283612efe565b91509150612d0883600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461272590919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d9d82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461270f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e3281600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461270f90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ed291906131ba565b60405180910390a35050505050565b600f54600c81905550601054600d81905550601154600e81905550565b60008060006064600c5485612f1391906135b9565b612f1d919061362a565b90506000612f34828661272590919063ffffffff16565b90508082935093505050915091565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f7d578082015181840152602081019050612f62565b60008484015250505050565b6000601f19601f8301169050919050565b6000612fa582612f43565b612faf8185612f4e565b9350612fbf818560208601612f5f565b612fc881612f89565b840191505092915050565b60006020820190508181036000830152612fed8184612f9a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061302582612ffa565b9050919050565b6130358161301a565b811461304057600080fd5b50565b6000813590506130528161302c565b92915050565b6000819050919050565b61306b81613058565b811461307657600080fd5b50565b60008135905061308881613062565b92915050565b600080604083850312156130a5576130a4612ff5565b5b60006130b385828601613043565b92505060206130c485828601613079565b9150509250929050565b60008115159050919050565b6130e3816130ce565b82525050565b60006020820190506130fe60008301846130da565b92915050565b60006020828403121561311a57613119612ff5565b5b600061312884828501613043565b91505092915050565b6000819050919050565b600061315661315161314c84612ffa565b613131565b612ffa565b9050919050565b60006131688261313b565b9050919050565b600061317a8261315d565b9050919050565b61318a8161316f565b82525050565b60006020820190506131a56000830184613181565b92915050565b6131b481613058565b82525050565b60006020820190506131cf60008301846131ab565b92915050565b6000806000606084860312156131ee576131ed612ff5565b5b60006131fc86828701613043565b935050602061320d86828701613043565b925050604061321e86828701613079565b9150509250925092565b60006020828403121561323e5761323d612ff5565b5b600061324c84828501613079565b91505092915050565b600060ff82169050919050565b61326b81613255565b82525050565b60006020820190506132866000830184613262565b92915050565b6132958161301a565b82525050565b60006020820190506132b0600083018461328c565b92915050565b600080604083850312156132cd576132cc612ff5565b5b60006132db85828601613079565b92505060206132ec85828601613079565b9150509250929050565b6132ff81613255565b811461330a57600080fd5b50565b60008135905061331c816132f6565b92915050565b60006020828403121561333857613337612ff5565b5b60006133468482850161330d565b91505092915050565b600061335a82612ffa565b9050919050565b61336a8161334f565b811461337557600080fd5b50565b60008135905061338781613361565b92915050565b6000602082840312156133a3576133a2612ff5565b5b60006133b184828501613378565b91505092915050565b6133c3816130ce565b81146133ce57600080fd5b50565b6000813590506133e0816133ba565b92915050565b6000602082840312156133fc576133fb612ff5565b5b600061340a848285016133d1565b91505092915050565b6000806040838503121561342a57613429612ff5565b5b600061343885828601613043565b925050602061344985828601613043565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061349a57607f821691505b6020821081036134ad576134ac613453565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134e9602083612f4e565b91506134f4826134b3565b602082019050919050565b60006020820190508181036000830152613518816134dc565b9050919050565b60008151905061352e8161302c565b92915050565b60006020828403121561354a57613549612ff5565b5b60006135588482850161351f565b91505092915050565b6000604082019050613576600083018561328c565b613583602083018461328c565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135c482613058565b91506135cf83613058565b92508282026135dd81613058565b915082820484148315176135f4576135f361358a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061363582613058565b915061364083613058565b9250826136505761364f6135fb565b5b828204905092915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006136b7602183612f4e565b91506136c28261365b565b604082019050919050565b600060208201905081810360008301526136e6816136aa565b9050919050565b60006136f882613058565b915061370383613058565b925082820190508082111561371b5761371a61358a565b5b92915050565b7f46656520697320746f6f20686967682100000000000000000000000000000000600082015250565b6000613757601083612f4e565b915061376282613721565b602082019050919050565b600060208201905081810360008301526137868161374a565b9050919050565b7f43757272656e746c792070726f63657373696e672c20747279206c617465722e600082015250565b60006137c3602083612f4e565b91506137ce8261378d565b602082019050919050565b600060208201905081810360008301526137f2816137b6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613855602683612f4e565b9150613860826137f9565b604082019050919050565b6000602082019050818103600083015261388481613848565b9050919050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b60006138c1601183612f4e565b91506138cc8261388b565b602082019050919050565b600060208201905081810360008301526138f0816138b4565b9050919050565b7f596f752061726520747279696e6720746f20627579206d6f7265207468616e2060008201527f746865206d6178207472616e73616374696f6e206c696d69742e000000000000602082015250565b6000613953603a83612f4e565b915061395e826138f7565b604082019050919050565b6000602082019050818103600083015261398281613946565b9050919050565b7f5573696e67203020616464726573732100000000000000000000000000000000600082015250565b60006139bf601083612f4e565b91506139ca82613989565b602082019050919050565b600060208201905081810360008301526139ee816139b2565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b6000613a51602583612f4e565b9150613a5c826139f5565b604082019050919050565b60006020820190508181036000830152613a8081613a44565b9050919050565b6000613a9282613058565b9150613a9d83613058565b9250828203905081811115613ab557613ab461358a565b5b92915050565b6000613ac682613255565b915060ff8203613ad957613ad861358a565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613b67613b62613b5d84613b42565b613131565b613058565b9050919050565b613b7781613b4c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613bb28161301a565b82525050565b6000613bc48383613ba9565b60208301905092915050565b6000602082019050919050565b6000613be882613b7d565b613bf28185613b88565b9350613bfd83613b99565b8060005b83811015613c2e578151613c158882613bb8565b9750613c2083613bd0565b925050600181019050613c01565b5085935050505092915050565b600060a082019050613c5060008301886131ab565b613c5d6020830187613b6e565b8181036040830152613c6f8186613bdd565b9050613c7e606083018561328c565b613c8b60808301846131ab565b969550505050505056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209e6a78eb60cb0986d2c7246774a9109626d381fd5691b499f6b9b47a649b8b2764736f6c63430008110033
Deployed Bytecode
0x6080604052600436106102295760003560e01c806370a0823111610123578063a457c2d7116100ab578063dd62ed3e1161006f578063dd62ed3e14610814578063ddbf526614610851578063ea2f0b371461087a578063f2fde38b146108a3578063f7739b5f146108cc57610230565b8063a457c2d71461071f578063a514a07d1461075c578063a9059cbb14610785578063ba0382b5146107c2578063d785d5be146107eb57610230565b80637d1db4a5116100f25780637d1db4a51461064a5780638824e16e146106755780638a6034b11461069e5780638da5cb5b146106c957806395d89b41146106f457610230565b806370a0823114610590578063715018a6146105cd578063768dc710146105e45780637caefa891461062157610230565b8063313ce567116101b1578063437823ec11610175578063437823ec146104bd57806349bd5a5e146104e65780634a74bb0214610511578063590f897e1461053c57806367cbd84c1461056757610230565b8063313ce567146103d857806336b1a1bc14610403578063395093511461042c57806340b9a54b1461046957806342966c681461049457610230565b80631694505e116101f85780631694505e146102f157806318160ddd1461031c578063220f66961461034757806323b872dd146103725780632e39c6c6146103af57610230565b806306fdde0314610235578063095ea7b3146102605780631282a0a01461029d57806313fad07a146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108f5565b6040516102579190612fd3565b60405180910390f35b34801561026c57600080fd5b506102876004803603810190610282919061308e565b610987565b60405161029491906130e9565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf9190613104565b6109a5565b005b3480156102d257600080fd5b506102db610c05565b6040516102e891906130e9565b60405180910390f35b3480156102fd57600080fd5b50610306610c18565b6040516103139190613190565b60405180910390f35b34801561032857600080fd5b50610331610c3e565b60405161033e91906131ba565b60405180910390f35b34801561035357600080fd5b5061035c610c48565b60405161036991906130e9565b60405180910390f35b34801561037e57600080fd5b50610399600480360381019061039491906131d5565b610c5b565b6040516103a691906130e9565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d19190613228565b610d34565b005b3480156103e457600080fd5b506103ed610dd4565b6040516103fa9190613271565b60405180910390f35b34801561040f57600080fd5b5061042a60048036038101906104259190613104565b610deb565b005b34801561043857600080fd5b50610453600480360381019061044e919061308e565b610eb1565b60405161046091906130e9565b60405180910390f35b34801561047557600080fd5b5061047e610f64565b60405161048b91906131ba565b60405180910390f35b3480156104a057600080fd5b506104bb60048036038101906104b69190613228565b610f6a565b005b3480156104c957600080fd5b506104e460048036038101906104df9190613104565b611188565b005b3480156104f257600080fd5b506104fb61125f565b604051610508919061329b565b60405180910390f35b34801561051d57600080fd5b50610526611285565b60405161053391906130e9565b60405180910390f35b34801561054857600080fd5b50610551611296565b60405161055e91906131ba565b60405180910390f35b34801561057357600080fd5b5061058e600480360381019061058991906132b6565b61129c565b005b34801561059c57600080fd5b506105b760048036038101906105b29190613104565b61137a565b6040516105c491906131ba565b60405180910390f35b3480156105d957600080fd5b506105e26113c3565b005b3480156105f057600080fd5b5061060b60048036038101906106069190613104565b6114fd565b60405161061891906130e9565b60405180910390f35b34801561062d57600080fd5b5061064860048036038101906106439190613322565b61151d565b005b34801561065657600080fd5b5061065f6115b7565b60405161066c91906131ba565b60405180910390f35b34801561068157600080fd5b5061069c6004803603810190610697919061338d565b6115bd565b005b3480156106aa57600080fd5b506106b36116f7565b6040516106c091906130e9565b60405180910390f35b3480156106d557600080fd5b506106de61170a565b6040516106eb919061329b565b60405180910390f35b34801561070057600080fd5b50610709611733565b6040516107169190612fd3565b60405180910390f35b34801561072b57600080fd5b506107466004803603810190610741919061308e565b6117c5565b60405161075391906130e9565b60405180910390f35b34801561076857600080fd5b50610783600480360381019061077e91906133e6565b611892565b005b34801561079157600080fd5b506107ac60048036038101906107a7919061308e565b61192b565b6040516107b991906130e9565b60405180910390f35b3480156107ce57600080fd5b506107e960048036038101906107e491906133e6565b611949565b005b3480156107f757600080fd5b50610812600480360381019061080d9190613104565b6119e2565b005b34801561082057600080fd5b5061083b60048036038101906108369190613413565b611aa2565b60405161084891906131ba565b60405180910390f35b34801561085d57600080fd5b5061087860048036038101906108739190613228565b611b29565b005b34801561088657600080fd5b506108a1600480360381019061089c9190613104565b611c2c565b005b3480156108af57600080fd5b506108ca60048036038101906108c59190613104565b611d03565b005b3480156108d857600080fd5b506108f360048036038101906108ee91906133e6565b611eab565b005b60606005805461090490613482565b80601f016020809104026020016040519081016040528092919081815260200182805461093090613482565b801561097d5780601f106109525761010080835404028352916020019161097d565b820191906000526020600020905b81548152906001019060200180831161096057829003601f168201915b5050505050905090565b600061099b610994611fa6565b8484611fae565b6001905092915050565b6109ad611fa6565b73ffffffffffffffffffffffffffffffffffffffff166109cb61170a565b73ffffffffffffffffffffffffffffffffffffffff1614610a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a18906134ff565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a959190613534565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610afc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b209190613534565b6040518363ffffffff1660e01b8152600401610b3d929190613561565b6020604051808303816000875af1158015610b5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b809190613534565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601560169054906101000a900460ff1681565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600854905090565b601560149054906101000a900460ff1681565b6000610c68848484612142565b610d2984610c74611fa6565b610d2485604051806060016040528060288152602001613cb860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cda611fa6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ba9092919063ffffffff16565b611fae565b600190509392505050565b610d3c611fa6565b73ffffffffffffffffffffffffffffffffffffffff16610d5a61170a565b73ffffffffffffffffffffffffffffffffffffffff1614610db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da7906134ff565b60405180910390fd5b61271081600854610dc191906135b9565b610dcb919061362a565b60128190555050565b6000600760009054906101000a900460ff16905090565b610df3611fa6565b73ffffffffffffffffffffffffffffffffffffffff16610e1161170a565b73ffffffffffffffffffffffffffffffffffffffff1614610e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5e906134ff565b60405180910390fd5b600081905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000610f5a610ebe611fa6565b84610f558560026000610ecf611fa6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461270f90919063ffffffff16565b611fae565b6001905092915050565b600d5481565b610f72611fa6565b73ffffffffffffffffffffffffffffffffffffffff16610f9061170a565b73ffffffffffffffffffffffffffffffffffffffff1614610fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdd906134ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603611055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104c906136cd565b60405180910390fd5b6110c181604051806060016040528060228152602001613c9660229139600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ba9092919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111198160085461272590919063ffffffff16565b600881905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161117d91906131ba565b60405180910390a350565b611190611fa6565b73ffffffffffffffffffffffffffffffffffffffff166111ae61170a565b73ffffffffffffffffffffffffffffffffffffffff1614611204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fb906134ff565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60158054906101000a900460ff1681565b600e5481565b6112a4611fa6565b73ffffffffffffffffffffffffffffffffffffffff166112c261170a565b73ffffffffffffffffffffffffffffffffffffffff1614611318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130f906134ff565b60405180910390fd5b600b54818361132791906136ed565b1115611368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135f9061376d565b60405180910390fd5b80600e8190555081600d819055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6113cb611fa6565b73ffffffffffffffffffffffffffffffffffffffff166113e961170a565b73ffffffffffffffffffffffffffffffffffffffff161461143f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611436906134ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60036020528060005260406000206000915054906101000a900460ff1681565b611525611fa6565b73ffffffffffffffffffffffffffffffffffffffff1661154361170a565b73ffffffffffffffffffffffffffffffffffffffff1614611599576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611590906134ff565b60405180910390fd5b80600a60026101000a81548160ff021916908360ff16021790555050565b60125481565b6115c5611fa6565b73ffffffffffffffffffffffffffffffffffffffff166115e361170a565b73ffffffffffffffffffffffffffffffffffffffff1614611639576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611630906134ff565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600a60009054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606006805461174290613482565b80601f016020809104026020016040519081016040528092919081815260200182805461176e90613482565b80156117bb5780601f10611790576101008083540402835291602001916117bb565b820191906000526020600020905b81548152906001019060200180831161179e57829003601f168201915b5050505050905090565b60006118886117d2611fa6565b8461188385604051806060016040528060258152602001613ce060259139600260006117fc611fa6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ba9092919063ffffffff16565b611fae565b6001905092915050565b61189a611fa6565b73ffffffffffffffffffffffffffffffffffffffff166118b861170a565b73ffffffffffffffffffffffffffffffffffffffff161461190e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611905906134ff565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b600061193f611938611fa6565b8484612142565b6001905092915050565b611951611fa6565b73ffffffffffffffffffffffffffffffffffffffff1661196f61170a565b73ffffffffffffffffffffffffffffffffffffffff16146119c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bc906134ff565b60405180910390fd5b80600a60006101000a81548160ff02191690831515021790555050565b6119ea611fa6565b73ffffffffffffffffffffffffffffffffffffffff16611a0861170a565b73ffffffffffffffffffffffffffffffffffffffff1614611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a55906134ff565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b31611fa6565b73ffffffffffffffffffffffffffffffffffffffff16611b4f61170a565b73ffffffffffffffffffffffffffffffffffffffff1614611ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9c906134ff565b60405180910390fd5b601560149054906101000a900460ff1615611bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bec906137d9565b60405180910390fd5b6000611c003061137a565b9050600060648383611c1291906135b9565b611c1c919061362a565b9050611c278161273b565b505050565b611c34611fa6565b73ffffffffffffffffffffffffffffffffffffffff16611c5261170a565b73ffffffffffffffffffffffffffffffffffffffff1614611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f906134ff565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611d0b611fa6565b73ffffffffffffffffffffffffffffffffffffffff16611d2961170a565b73ffffffffffffffffffffffffffffffffffffffff1614611d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d76906134ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de59061386b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611eb3611fa6565b73ffffffffffffffffffffffffffffffffffffffff16611ed161170a565b73ffffffffffffffffffffffffffffffffffffffff1614611f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1e906134ff565b60405180910390fd5b806015806101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051611f6f91906130e9565b60405180910390a150565b60008183611f8891906135b9565b905092915050565b60008183611f9e919061362a565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120185750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b612057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204e906138d7565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161213591906131ba565b60405180910390a3505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121d257506121a261170a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121f1575060011515600a60009054906101000a900460ff161515145b1561223c5760125481111561223b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223290613969565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122a65750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6122e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122dc906139d5565b60405180910390fd5b60008111612328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231f90613a67565b60405180910390fd5b600a60029054906101000a900460ff1660ff16600a60019054906101000a900460ff1660ff16101580156123695750601560149054906101000a900460ff16155b80156123c35750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156123d9575060158054906101000a900460ff165b1561242c576000600a60016101000a81548160ff021916908360ff16021790555060006124053061137a565b90506012548111156124175760125490505b600081111561242a576124298161273b565b5b505b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124d35750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061259e5750601560169054906101000a900460ff1680156125435750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561259d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156125ac57600090506126a8565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361260f57600d54600c819055506126a7565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126a657600e54600c819055506000612683606484611f9090919063ffffffff16565b905061268f85826127af565b6126a2818461272590919063ffffffff16565b9250505b5b5b6126b484848484612952565b50505050565b6000838311158290612702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f99190612fd3565b60405180910390fd5b5082840390509392505050565b6000818361271d91906136ed565b905092915050565b600081836127339190613a87565b905092915050565b6001601560146101000a81548160ff02191690831515021790555061275f816129bc565b6000479050612790600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612bff565b506000601560146101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361281e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612815906136cd565b60405180910390fd5b61288a81604051806060016040528060228152602001613c9660229139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ba9092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128e28160085461272590919063ffffffff16565b600881905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161294691906131ba565b60405180910390a35050565b806129645761295f612c4a565b61299d565b600a600181819054906101000a900460ff168092919061298390613abb565b91906101000a81548160ff021916908360ff160217905550505b6129a8848484612ca6565b806129b6576129b5612ee1565b5b50505050565b6000600267ffffffffffffffff8111156129d9576129d8613ae4565b5b604051908082528060200260200182016040528015612a075781602001602082028036833780820191505090505b5090503081600081518110612a1f57612a1e613b13565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aea9190613534565b81600181518110612afe57612afd613b13565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612b6530601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fae565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612bc9959493929190613c3b565b600060405180830381600087803b158015612be357600080fd5b505af1158015612bf7573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612c45573d6000803e3d6000fd5b505050565b6000600c54148015612c5e57506000600d54145b8015612c6c57506000600e54145b612ca457600d54601081905550600e54601181905550600c54600f819055506000600d819055506000600e819055506000600c819055505b565b600080612cb283612efe565b91509150612d0883600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461272590919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d9d82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461270f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e3281600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461270f90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ed291906131ba565b60405180910390a35050505050565b600f54600c81905550601054600d81905550601154600e81905550565b60008060006064600c5485612f1391906135b9565b612f1d919061362a565b90506000612f34828661272590919063ffffffff16565b90508082935093505050915091565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f7d578082015181840152602081019050612f62565b60008484015250505050565b6000601f19601f8301169050919050565b6000612fa582612f43565b612faf8185612f4e565b9350612fbf818560208601612f5f565b612fc881612f89565b840191505092915050565b60006020820190508181036000830152612fed8184612f9a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061302582612ffa565b9050919050565b6130358161301a565b811461304057600080fd5b50565b6000813590506130528161302c565b92915050565b6000819050919050565b61306b81613058565b811461307657600080fd5b50565b60008135905061308881613062565b92915050565b600080604083850312156130a5576130a4612ff5565b5b60006130b385828601613043565b92505060206130c485828601613079565b9150509250929050565b60008115159050919050565b6130e3816130ce565b82525050565b60006020820190506130fe60008301846130da565b92915050565b60006020828403121561311a57613119612ff5565b5b600061312884828501613043565b91505092915050565b6000819050919050565b600061315661315161314c84612ffa565b613131565b612ffa565b9050919050565b60006131688261313b565b9050919050565b600061317a8261315d565b9050919050565b61318a8161316f565b82525050565b60006020820190506131a56000830184613181565b92915050565b6131b481613058565b82525050565b60006020820190506131cf60008301846131ab565b92915050565b6000806000606084860312156131ee576131ed612ff5565b5b60006131fc86828701613043565b935050602061320d86828701613043565b925050604061321e86828701613079565b9150509250925092565b60006020828403121561323e5761323d612ff5565b5b600061324c84828501613079565b91505092915050565b600060ff82169050919050565b61326b81613255565b82525050565b60006020820190506132866000830184613262565b92915050565b6132958161301a565b82525050565b60006020820190506132b0600083018461328c565b92915050565b600080604083850312156132cd576132cc612ff5565b5b60006132db85828601613079565b92505060206132ec85828601613079565b9150509250929050565b6132ff81613255565b811461330a57600080fd5b50565b60008135905061331c816132f6565b92915050565b60006020828403121561333857613337612ff5565b5b60006133468482850161330d565b91505092915050565b600061335a82612ffa565b9050919050565b61336a8161334f565b811461337557600080fd5b50565b60008135905061338781613361565b92915050565b6000602082840312156133a3576133a2612ff5565b5b60006133b184828501613378565b91505092915050565b6133c3816130ce565b81146133ce57600080fd5b50565b6000813590506133e0816133ba565b92915050565b6000602082840312156133fc576133fb612ff5565b5b600061340a848285016133d1565b91505092915050565b6000806040838503121561342a57613429612ff5565b5b600061343885828601613043565b925050602061344985828601613043565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061349a57607f821691505b6020821081036134ad576134ac613453565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134e9602083612f4e565b91506134f4826134b3565b602082019050919050565b60006020820190508181036000830152613518816134dc565b9050919050565b60008151905061352e8161302c565b92915050565b60006020828403121561354a57613549612ff5565b5b60006135588482850161351f565b91505092915050565b6000604082019050613576600083018561328c565b613583602083018461328c565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135c482613058565b91506135cf83613058565b92508282026135dd81613058565b915082820484148315176135f4576135f361358a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061363582613058565b915061364083613058565b9250826136505761364f6135fb565b5b828204905092915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006136b7602183612f4e565b91506136c28261365b565b604082019050919050565b600060208201905081810360008301526136e6816136aa565b9050919050565b60006136f882613058565b915061370383613058565b925082820190508082111561371b5761371a61358a565b5b92915050565b7f46656520697320746f6f20686967682100000000000000000000000000000000600082015250565b6000613757601083612f4e565b915061376282613721565b602082019050919050565b600060208201905081810360008301526137868161374a565b9050919050565b7f43757272656e746c792070726f63657373696e672c20747279206c617465722e600082015250565b60006137c3602083612f4e565b91506137ce8261378d565b602082019050919050565b600060208201905081810360008301526137f2816137b6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613855602683612f4e565b9150613860826137f9565b604082019050919050565b6000602082019050818103600083015261388481613848565b9050919050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b60006138c1601183612f4e565b91506138cc8261388b565b602082019050919050565b600060208201905081810360008301526138f0816138b4565b9050919050565b7f596f752061726520747279696e6720746f20627579206d6f7265207468616e2060008201527f746865206d6178207472616e73616374696f6e206c696d69742e000000000000602082015250565b6000613953603a83612f4e565b915061395e826138f7565b604082019050919050565b6000602082019050818103600083015261398281613946565b9050919050565b7f5573696e67203020616464726573732100000000000000000000000000000000600082015250565b60006139bf601083612f4e565b91506139ca82613989565b602082019050919050565b600060208201905081810360008301526139ee816139b2565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b6000613a51602583612f4e565b9150613a5c826139f5565b604082019050919050565b60006020820190508181036000830152613a8081613a44565b9050919050565b6000613a9282613058565b9150613a9d83613058565b9250828203905081811115613ab557613ab461358a565b5b92915050565b6000613ac682613255565b915060ff8203613ad957613ad861358a565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000613b67613b62613b5d84613b42565b613131565b613058565b9050919050565b613b7781613b4c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613bb28161301a565b82525050565b6000613bc48383613ba9565b60208301905092915050565b6000602082019050919050565b6000613be882613b7d565b613bf28185613b88565b9350613bfd83613b99565b8060005b83811015613c2e578151613c158882613bb8565b9750613c2083613bd0565b925050600181019050613c01565b5085935050505092915050565b600060a082019050613c5060008301886131ab565b613c5d6020830187613b6e565b8181036040830152613c6f8186613bdd565b9050613c7e606083018561328c565b613c8b60808301846131ab565b969550505050505056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209e6a78eb60cb0986d2c7246774a9109626d381fd5691b499f6b9b47a649b8b2764736f6c63430008110033
Deployed Bytecode Sourcemap
16506:13729:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19060:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21040:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28393:353;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23871:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17995:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19337:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18078:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21241:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24117:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19246:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28777:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21695:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17512:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19964:530;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22489:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18043:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18113:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17545:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22794:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19440:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6817:148;;;;;;;;;;;;;:::i;:::-;;16753:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23649:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17875:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23019:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17138:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6502:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19151;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22003:400;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23914:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19565:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23181:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;28978:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19772:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27311:544;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22676:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7021:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23347:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19060:83;19097:13;19130:5;19123:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19060:83;:::o;21040:193::-;21142:4;21164:39;21173:12;:10;:12::i;:::-;21187:7;21196:6;21164:8;:39::i;:::-;21221:4;21214:11;;21040:193;;;;:::o;28393:353::-;6697:12;:10;:12::i;:::-;6686:23;;:7;:5;:7::i;:::-;:23;;;6678:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28478:32:::1;28532:9;28478:64;;28587:13;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28569:53;;;28645:4;28665:13;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28569:127;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28553:13;;:143;;;;;;;;;;;;;;;;;;28725:13;28707:15;;:31;;;;;;;;;;;;;;;;;;28467:279;28393:353:::0;:::o;23871:34::-;;;;;;;;;;;;;:::o;17995:41::-;;;;;;;;;;;;;:::o;19337:95::-;19390:7;19417;;19410:14;;19337:95;:::o;18078:28::-;;;;;;;;;;;;;:::o;21241:446::-;21373:4;21390:36;21400:6;21408:9;21419:6;21390:9;:36::i;:::-;21437:220;21460:6;21481:12;:10;:12::i;:::-;21508:138;21564:6;21508:138;;;;;;;;;;;;;;;;;:11;:19;21520:6;21508:19;;;;;;;;;;;;;;;:33;21528:12;:10;:12::i;:::-;21508:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;21437:8;:220::i;:::-;21675:4;21668:11;;21241:446;;;;;:::o;24117:177::-;6697:12;:10;:12::i;:::-;6686:23;;:7;:5;:7::i;:::-;:23;;;6678:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24281:5:::1;24260:17;24250:7;;:27;;;;:::i;:::-;24249:37;;;;:::i;:::-;24234:12;:52;;;;24117:177:::0;:::o;19246:83::-;19287:5;19312:9;;;;;;;;;;;19305:16;;19246:83;:::o;28777:193::-;6697:12;:10;:12::i;:::-;6686:23;;:7;:5;:7::i;:::-;:23;;;6678:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28856:32:::1;28910:9;28856:64;;28949:13;28931:15;;:31;;;;;;;;;;;;;;;;;;28845:125;28777:193:::0;:::o;21695:300::-;21810:4;21832:133;21855:12;:10;:12::i;:::-;21882:7;21904:50;21943:10;21904:11;:25;21916:12;:10;:12::i;:::-;21904:25;;;;;;;;;;;;;;;:34;21930:7;21904:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;21832:8;:133::i;:::-;21983:4;21976:11;;21695:300;;;;:::o;17512:26::-;;;;:::o;19964:530::-;6697:12;:10;:12::i;:::-;6686:23;;:7;:5;:7::i;:::-;:23;;;6678:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20094:1:::1;20072:24;;:10;:24;;::::0;20064:70:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;20229:106;20267:6;20229:106;;;;;;;;;;;;;;;;;:7;:19;20237:10;20229:19;;;;;;;;;;;;;;;;:23;;:106;;;;;:::i;:::-;20207:7;:19;20215:10;20207:19;;;;;;;;;;;;;;;:128;;;;20411:19;20423:6;20411:7;;:11;;:19;;;;:::i;:::-;20401:7;:29;;;;20475:1;20446:40;;20455:10;20446:40;;;20479:6;20446:40;;;;;;:::i;:::-;;;;;;;;19964:530:::0;:::o;22489:111::-;6697:12;:10;:12::i;:::-;6686:23;;:7;:5;:7::i;:::-;:23;;;6678:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22588:4:::1;22558:18;:27;22577:7;22558:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;22489:111:::0;:::o;18043:28::-;;;;;;;;;;;;;:::o;18113:40::-;;;;;;;;;;;;:::o;17545:27::-;;;;:::o;22794:217::-;6697:12;:10;:12::i;:::-;6686:23;;:7;:5;:7::i;:::-;:23;;;6678:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22910:14:::1;;22897:8;22887:7;:18;;;;:::i;:::-;22886:38;;22878:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22967:8;22956;:19;;;;22996:7;22986;:17;;;;22794:217:::0;;:::o;19440:117::-;19506:7;19533;:16;19541:7;19533:16;;;;;;;;;;;;;;;;19526:23;;19440:117;;;:::o;6817:148::-;6697:12;:10;:12::i;:::-;6686:23;;:7;:5;:7::i;:::-;:23;;;6678:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6924:1:::1;6887:40;;6908:6;::::0;::::1;;;;;;;;6887:40;;;;;;;;;;;;6955:1;6938:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6817:148::o:0;16753:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;23649:177::-;6697:12;:10;:12::i;:::-;6686:23;;:7;:5;:7::i;:::-;:23;;;6678:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23796:22:::1;23782:11;;:36;;;;;;;;;;;;;;;;;;23649:177:::0;:::o;17875:53::-;;;;:::o;23019:154::-;6697:12;:10;:12::i;:::-;6686:23;;:7;:5;:7::i;:::-;:23;;;6678:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23111:6:::1;23098:10;;:19;;;;;;;;;;;;;;;;;;23161:4;23128:18;:30;23147:10;;;;;;;;;;;23128:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;23019:154:::0;:::o;17138:33::-;;;;;;;;;;;;;:::o;6502:87::-;6548:7;6575:6;;;;;;;;;;;6568:13;;6502:87;:::o;19151:::-;19190:13;19223:7;19216:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19151:87;:::o;22003:400::-;22123:4;22145:228;22168:12;:10;:12::i;:::-;22195:7;22217:145;22274:15;22217:145;;;;;;;;;;;;;;;;;:11;:25;22229:12;:10;:12::i;:::-;22217:25;;;;;;;;;;;;;;;:34;22243:7;22217:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;22145:8;:228::i;:::-;22391:4;22384:11;;22003:400;;;;:::o;23914:125::-;6697:12;:10;:12::i;:::-;6686:23;;:7;:5;:7::i;:::-;:23;;;6678:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24018:13:::1;24000:15;;:31;;;;;;;;;;;;;;;;;;23914:125:::0;:::o;19565:199::-;19670:4;19692:42;19702:12;:10;:12::i;:::-;19716:9;19727:6;19692:9;:42::i;:::-;19752:4;19745:11;;19565:199;;;;:::o;23181:95::-;6697:12;:10;:12::i;:::-;6686:23;;:7;:5;:7::i;:::-;:23;;;6678:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23262:6:::1;23245:14;;:23;;;;;;;;;;;;;;;;;;23181:95:::0;:::o;28978:106::-;6697:12;:10;:12::i;:::-;6686:23;;:7;:5;:7::i;:::-;:23;;;6678:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29069:7:::1;29053:13;;:23;;;;;;;;;;;;;;;;;;28978:106:::0;:::o;19772:184::-;19889:7;19921:11;:18;19933:5;19921:18;;;;;;;;;;;;;;;:27;19940:7;19921:27;;;;;;;;;;;;;;;;19914:34;;19772:184;;;;:::o;27311:544::-;6697:12;:10;:12::i;:::-;6686:23;;:7;:5;:7::i;:::-;:23;;;6678:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27483:16:::1;;;;;;;;;;;27482:17;27474:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;27659:24;27686;27704:4;27686:9;:24::i;:::-;27659:51;;27721:18;27807:3;27762:28;27743:16;:47;;;;:::i;:::-;27742:68;;;;:::i;:::-;27721:89;;27821:26;27836:10;27821:14;:26::i;:::-;27417:438;;27311:544:::0;:::o;22676:110::-;6697:12;:10;:12::i;:::-;6686:23;;:7;:5;:7::i;:::-;:23;;;6678:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22773:5:::1;22743:18;:27;22762:7;22743:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;22676:110:::0;:::o;7021:281::-;6697:12;:10;:12::i;:::-;6686:23;;:7;:5;:7::i;:::-;:23;;;6678:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7144:1:::1;7124:22;;:8;:22;;::::0;7102:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;7257:8;7228:38;;7249:6;::::0;::::1;;;;;;;;7228:38;;;;;;;;;;;;7286:8;7277:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;7021:281:::0;:::o;23347:190::-;6697:12;:10;:12::i;:::-;6686:23;;:7;:5;:7::i;:::-;:23;;;6678:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23457:13:::1;23433:21;::::0;:37:::1;;;;;;;;;;;;;;;;;;23486:43;23515:13;23486:43;;;;;;:::i;:::-;;;;;;;;23347:190:::0;:::o;1105:98::-;1163:7;1194:1;1190;:5;;;;:::i;:::-;1183:12;;1105:98;;;;:::o;1211:::-;1269:7;1300:1;1296;:5;;;;:::i;:::-;1289:12;;1211:98;;;;:::o;1878:::-;1931:7;1958:10;1951:17;;1878:98;:::o;24766:333::-;24924:1;24907:19;;:5;:19;;;;:44;;;;;24949:1;24930:21;;:7;:21;;;;24907:44;24885:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;25037:6;25007:11;:18;25019:5;25007:18;;;;;;;;;;;;;;;:27;25026:7;25007:27;;;;;;;;;;;;;;;:36;;;;25075:7;25059:32;;25068:5;25059:32;;;25084:6;25059:32;;;;;;:::i;:::-;;;;;;;;24766:333;;;:::o;25107:1837::-;25319:13;;;;;;;;;;;25311:21;;:4;:21;;;:38;;;;;25342:7;:5;:7::i;:::-;25336:13;;:2;:13;;;;25311:38;:64;;;;;25371:4;25353:22;;:14;;;;;;;;;;;:22;;;25311:64;25307:239;;;25428:12;;25418:6;:22;;25392:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;25307:239;25580:1;25564:18;;:4;:18;;;;:38;;;;;25600:1;25586:16;;:2;:16;;;;25564:38;25556:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25651:1;25642:6;:10;25634:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;25734:11;;;;;;;;;;;25723:22;;:7;;;;;;;;;;;:22;;;;:56;;;;;25763:16;;;;;;;;;;;25762:17;25723:56;:94;;;;;25804:13;;;;;;;;;;;25796:21;;:4;:21;;;;25723:94;:132;;;;;25834:21;;;;;;;;;;25723:132;25705:510;;;25892:1;25882:7;;:11;;;;;;;;;;;;;;;;;;25908:28;25939:24;25957:4;25939:9;:24::i;:::-;25908:55;;26005:12;;25982:20;:35;25978:111;;;26061:12;;26038:35;;25978:111;26130:1;26107:20;:24;26103:101;;;26152:36;26167:20;26152:14;:36::i;:::-;26103:101;25867:348;25705:510;26225:12;26240:4;26225:19;;26275:18;:24;26294:4;26275:24;;;;;;;;;;;;;;;;;;;;;;;;;:63;;;;26316:18;:22;26335:2;26316:22;;;;;;;;;;;;;;;;;;;;;;;;;26275:63;:145;;;;26356:15;;;;;;;;;;;:40;;;;;26383:13;;;;;;;;;;;26375:21;;:4;:21;;;;26356:40;:63;;;;;26406:13;;;;;;;;;;;26400:19;;:2;:19;;;;26356:63;26275:145;26257:626;;;26457:5;26447:15;;26257:626;;;26492:13;;;;;;;;;;;26484:21;;:4;:21;;;26480:403;;26534:7;;26522:9;:19;;;;26480:403;;;26569:13;;;;;;;;;;;26563:19;;:2;:19;;;26559:324;;26611:8;;26599:9;:20;;;;26634:18;26655:15;26666:3;26655:6;:10;;:15;;;;:::i;:::-;26634:36;;26733:23;26739:4;26745:10;26733:5;:23::i;:::-;26849:22;26860:10;26849:6;:10;;:22;;;;:::i;:::-;26840:31;;26584:299;26559:324;26480:403;26257:626;26895:41;26910:4;26916:2;26920:6;26928:7;26895:14;:41::i;:::-;25210:1734;25107:1837;;;:::o;1317:240::-;1437:7;1495:1;1490;:6;;1498:12;1482:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1537:1;1533;:5;1526:12;;1317:240;;;;;:::o;893:98::-;951:7;982:1;978;:5;;;;:::i;:::-;971:12;;893:98;;;;:::o;999:::-;1057:7;1088:1;1084;:5;;;;:::i;:::-;1077:12;;999:98;;;;:::o;27072:233::-;18405:4;18386:16;;:23;;;;;;;;;;;;;;;;;;27157:38:::1;27174:20;27157:16;:38::i;:::-;27206:19;27228:21;27206:43;;27260:37;27273:10;;;;;;;;;;;27285:11;27260:12;:37::i;:::-;27146:159;18451:5:::0;18432:16;;:24;;;;;;;;;;;;;;;;;;27072:233;:::o;20502:530::-;20637:1;20618:21;;:7;:21;;;20610:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20769:103;20804:6;20769:103;;;;;;;;;;;;;;;;;:7;:16;20777:7;20769:16;;;;;;;;;;;;;;;;:20;;:103;;;;;:::i;:::-;20750:7;:16;20758:7;20750:16;;;;;;;;;;;;;;;:122;;;;20950:19;20962:6;20950:7;;:11;;:19;;;;:::i;:::-;20940:7;:29;;;;21013:1;20987:37;;20996:7;20987:37;;;21017:6;20987:37;;;;;;:::i;:::-;;;;;;;;20502:530;;:::o;29148:350::-;29304:7;29299:97;;29328:14;:12;:14::i;:::-;29299:97;;;29375:7;;:9;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;29299:97;29406:42;29422:6;29430:9;29441:6;29406:15;:42::i;:::-;29466:7;29461:29;;29475:15;:13;:15::i;:::-;29461:29;29148:350;;;;:::o;27861:471::-;27927:21;27965:1;27951:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27927:40;;27996:4;27978;27983:1;27978:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;28022:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28012:4;28017:1;28012:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;28055:62;28072:4;28087:15;;;;;;;;;;;28105:11;28055:8;:62::i;:::-;28128:15;;;;;;;;;;;:66;;;28209:11;28235:1;28251:4;28278;28298:15;28128:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27916:416;27861:471;:::o;26952:112::-;27033:6;:15;;:23;27049:6;27033:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26952:112;;:::o;24302:295::-;24362:1;24349:9;;:14;:30;;;;;24378:1;24367:7;;:12;24349:30;:47;;;;;24395:1;24383:8;;:13;24349:47;24398:7;24345:60;24435:7;;24417:15;:25;;;;24472:8;;24453:16;:27;;;;24511:9;;24491:17;:29;;;;24541:1;24531:7;:11;;;;24564:1;24553:8;:12;;;;24588:1;24576:9;:13;;;;24302:295;:::o;29506:455::-;29637:23;29662:12;29678:19;29689:7;29678:10;:19::i;:::-;29636:61;;;;29726:28;29746:7;29726;:15;29734:6;29726:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;29708:7;:15;29716:6;29708:15;;;;;;;;;;;;;;;:46;;;;29786:39;29809:15;29786:7;:18;29794:9;29786:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;29765:7;:18;29773:9;29765:18;;;;;;;;;;;;;;;:60;;;;29861:32;29888:4;29861:7;:22;29877:4;29861:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;29836:7;:22;29852:4;29836:22;;;;;;;;;;;;;;;:57;;;;29926:9;29909:44;;29918:6;29909:44;;;29937:15;29909:44;;;;;;:::i;:::-;;;;;;;;29625:336;;29506:455;;;:::o;24605:155::-;24661:17;;24649:9;:29;;;;24699:15;;24689:7;:25;;;;24736:16;;24725:8;:27;;;;24605:155::o;29967:265::-;30053:7;30062;30087:12;30126:3;30113:9;;30103:7;:19;;;;:::i;:::-;30102:27;;;;:::i;:::-;30087:42;;30140:23;30166:17;30178:4;30166:7;:11;;:17;;;;:::i;:::-;30140:43;;30202:15;30219:4;30194:30;;;;;;29967:265;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:153::-;4204:9;4237:37;4268:5;4237:37;:::i;:::-;4224:50;;4127:153;;;:::o;4286:185::-;4400:64;4458:5;4400:64;:::i;:::-;4395:3;4388:77;4286:185;;:::o;4477:276::-;4597:4;4635:2;4624:9;4620:18;4612:26;;4648:98;4743:1;4732:9;4728:17;4719:6;4648:98;:::i;:::-;4477:276;;;;:::o;4759:118::-;4846:24;4864:5;4846:24;:::i;:::-;4841:3;4834:37;4759:118;;:::o;4883:222::-;4976:4;5014:2;5003:9;4999:18;4991:26;;5027:71;5095:1;5084:9;5080:17;5071:6;5027:71;:::i;:::-;4883:222;;;;:::o;5111:619::-;5188:6;5196;5204;5253:2;5241:9;5232:7;5228:23;5224:32;5221:119;;;5259:79;;:::i;:::-;5221:119;5379:1;5404:53;5449:7;5440:6;5429:9;5425:22;5404:53;:::i;:::-;5394:63;;5350:117;5506:2;5532:53;5577:7;5568:6;5557:9;5553:22;5532:53;:::i;:::-;5522:63;;5477:118;5634:2;5660:53;5705:7;5696:6;5685:9;5681:22;5660:53;:::i;:::-;5650:63;;5605:118;5111:619;;;;;:::o;5736:329::-;5795:6;5844:2;5832:9;5823:7;5819:23;5815:32;5812:119;;;5850:79;;:::i;:::-;5812:119;5970:1;5995:53;6040:7;6031:6;6020:9;6016:22;5995:53;:::i;:::-;5985:63;;5941:117;5736:329;;;;:::o;6071:86::-;6106:7;6146:4;6139:5;6135:16;6124:27;;6071:86;;;:::o;6163:112::-;6246:22;6262:5;6246:22;:::i;:::-;6241:3;6234:35;6163:112;;:::o;6281:214::-;6370:4;6408:2;6397:9;6393:18;6385:26;;6421:67;6485:1;6474:9;6470:17;6461:6;6421:67;:::i;:::-;6281:214;;;;:::o;6501:118::-;6588:24;6606:5;6588:24;:::i;:::-;6583:3;6576:37;6501:118;;:::o;6625:222::-;6718:4;6756:2;6745:9;6741:18;6733:26;;6769:71;6837:1;6826:9;6822:17;6813:6;6769:71;:::i;:::-;6625:222;;;;:::o;6853:474::-;6921:6;6929;6978:2;6966:9;6957:7;6953:23;6949:32;6946:119;;;6984:79;;:::i;:::-;6946:119;7104:1;7129:53;7174:7;7165:6;7154:9;7150:22;7129:53;:::i;:::-;7119:63;;7075:117;7231:2;7257:53;7302:7;7293:6;7282:9;7278:22;7257:53;:::i;:::-;7247:63;;7202:118;6853:474;;;;;:::o;7333:118::-;7404:22;7420:5;7404:22;:::i;:::-;7397:5;7394:33;7384:61;;7441:1;7438;7431:12;7384:61;7333:118;:::o;7457:135::-;7501:5;7539:6;7526:20;7517:29;;7555:31;7580:5;7555:31;:::i;:::-;7457:135;;;;:::o;7598:325::-;7655:6;7704:2;7692:9;7683:7;7679:23;7675:32;7672:119;;;7710:79;;:::i;:::-;7672:119;7830:1;7855:51;7898:7;7889:6;7878:9;7874:22;7855:51;:::i;:::-;7845:61;;7801:115;7598:325;;;;:::o;7929:104::-;7974:7;8003:24;8021:5;8003:24;:::i;:::-;7992:35;;7929:104;;;:::o;8039:138::-;8120:32;8146:5;8120:32;:::i;:::-;8113:5;8110:43;8100:71;;8167:1;8164;8157:12;8100:71;8039:138;:::o;8183:155::-;8237:5;8275:6;8262:20;8253:29;;8291:41;8326:5;8291:41;:::i;:::-;8183:155;;;;:::o;8344:345::-;8411:6;8460:2;8448:9;8439:7;8435:23;8431:32;8428:119;;;8466:79;;:::i;:::-;8428:119;8586:1;8611:61;8664:7;8655:6;8644:9;8640:22;8611:61;:::i;:::-;8601:71;;8557:125;8344:345;;;;:::o;8695:116::-;8765:21;8780:5;8765:21;:::i;:::-;8758:5;8755:32;8745:60;;8801:1;8798;8791:12;8745:60;8695:116;:::o;8817:133::-;8860:5;8898:6;8885:20;8876:29;;8914:30;8938:5;8914:30;:::i;:::-;8817:133;;;;:::o;8956:323::-;9012:6;9061:2;9049:9;9040:7;9036:23;9032:32;9029:119;;;9067:79;;:::i;:::-;9029:119;9187:1;9212:50;9254:7;9245:6;9234:9;9230:22;9212:50;:::i;:::-;9202:60;;9158:114;8956:323;;;;:::o;9285:474::-;9353:6;9361;9410:2;9398:9;9389:7;9385:23;9381:32;9378:119;;;9416:79;;:::i;:::-;9378:119;9536:1;9561:53;9606:7;9597:6;9586:9;9582:22;9561:53;:::i;:::-;9551:63;;9507:117;9663:2;9689:53;9734:7;9725:6;9714:9;9710:22;9689:53;:::i;:::-;9679:63;;9634:118;9285:474;;;;;:::o;9765:180::-;9813:77;9810:1;9803:88;9910:4;9907:1;9900:15;9934:4;9931:1;9924:15;9951:320;9995:6;10032:1;10026:4;10022:12;10012:22;;10079:1;10073:4;10069:12;10100:18;10090:81;;10156:4;10148:6;10144:17;10134:27;;10090:81;10218:2;10210:6;10207:14;10187:18;10184:38;10181:84;;10237:18;;:::i;:::-;10181:84;10002:269;9951:320;;;:::o;10277:182::-;10417:34;10413:1;10405:6;10401:14;10394:58;10277:182;:::o;10465:366::-;10607:3;10628:67;10692:2;10687:3;10628:67;:::i;:::-;10621:74;;10704:93;10793:3;10704:93;:::i;:::-;10822:2;10817:3;10813:12;10806:19;;10465:366;;;:::o;10837:419::-;11003:4;11041:2;11030:9;11026:18;11018:26;;11090:9;11084:4;11080:20;11076:1;11065:9;11061:17;11054:47;11118:131;11244:4;11118:131;:::i;:::-;11110:139;;10837:419;;;:::o;11262:143::-;11319:5;11350:6;11344:13;11335:22;;11366:33;11393:5;11366:33;:::i;:::-;11262:143;;;;:::o;11411:351::-;11481:6;11530:2;11518:9;11509:7;11505:23;11501:32;11498:119;;;11536:79;;:::i;:::-;11498:119;11656:1;11681:64;11737:7;11728:6;11717:9;11713:22;11681:64;:::i;:::-;11671:74;;11627:128;11411:351;;;;:::o;11768:332::-;11889:4;11927:2;11916:9;11912:18;11904:26;;11940:71;12008:1;11997:9;11993:17;11984:6;11940:71;:::i;:::-;12021:72;12089:2;12078:9;12074:18;12065:6;12021:72;:::i;:::-;11768:332;;;;;:::o;12106:180::-;12154:77;12151:1;12144:88;12251:4;12248:1;12241:15;12275:4;12272:1;12265:15;12292:410;12332:7;12355:20;12373:1;12355:20;:::i;:::-;12350:25;;12389:20;12407:1;12389:20;:::i;:::-;12384:25;;12444:1;12441;12437:9;12466:30;12484:11;12466:30;:::i;:::-;12455:41;;12645:1;12636:7;12632:15;12629:1;12626:22;12606:1;12599:9;12579:83;12556:139;;12675:18;;:::i;:::-;12556:139;12340:362;12292:410;;;;:::o;12708:180::-;12756:77;12753:1;12746:88;12853:4;12850:1;12843:15;12877:4;12874:1;12867:15;12894:185;12934:1;12951:20;12969:1;12951:20;:::i;:::-;12946:25;;12985:20;13003:1;12985:20;:::i;:::-;12980:25;;13024:1;13014:35;;13029:18;;:::i;:::-;13014:35;13071:1;13068;13064:9;13059:14;;12894:185;;;;:::o;13085:220::-;13225:34;13221:1;13213:6;13209:14;13202:58;13294:3;13289:2;13281:6;13277:15;13270:28;13085:220;:::o;13311:366::-;13453:3;13474:67;13538:2;13533:3;13474:67;:::i;:::-;13467:74;;13550:93;13639:3;13550:93;:::i;:::-;13668:2;13663:3;13659:12;13652:19;;13311:366;;;:::o;13683:419::-;13849:4;13887:2;13876:9;13872:18;13864:26;;13936:9;13930:4;13926:20;13922:1;13911:9;13907:17;13900:47;13964:131;14090:4;13964:131;:::i;:::-;13956:139;;13683:419;;;:::o;14108:191::-;14148:3;14167:20;14185:1;14167:20;:::i;:::-;14162:25;;14201:20;14219:1;14201:20;:::i;:::-;14196:25;;14244:1;14241;14237:9;14230:16;;14265:3;14262:1;14259:10;14256:36;;;14272:18;;:::i;:::-;14256:36;14108:191;;;;:::o;14305:166::-;14445:18;14441:1;14433:6;14429:14;14422:42;14305:166;:::o;14477:366::-;14619:3;14640:67;14704:2;14699:3;14640:67;:::i;:::-;14633:74;;14716:93;14805:3;14716:93;:::i;:::-;14834:2;14829:3;14825:12;14818:19;;14477:366;;;:::o;14849:419::-;15015:4;15053:2;15042:9;15038:18;15030:26;;15102:9;15096:4;15092:20;15088:1;15077:9;15073:17;15066:47;15130:131;15256:4;15130:131;:::i;:::-;15122:139;;14849:419;;;:::o;15274:182::-;15414:34;15410:1;15402:6;15398:14;15391:58;15274:182;:::o;15462:366::-;15604:3;15625:67;15689:2;15684:3;15625:67;:::i;:::-;15618:74;;15701:93;15790:3;15701:93;:::i;:::-;15819:2;15814:3;15810:12;15803:19;;15462:366;;;:::o;15834:419::-;16000:4;16038:2;16027:9;16023:18;16015:26;;16087:9;16081:4;16077:20;16073:1;16062:9;16058:17;16051:47;16115:131;16241:4;16115:131;:::i;:::-;16107:139;;15834:419;;;:::o;16259:225::-;16399:34;16395:1;16387:6;16383:14;16376:58;16468:8;16463:2;16455:6;16451:15;16444:33;16259:225;:::o;16490:366::-;16632:3;16653:67;16717:2;16712:3;16653:67;:::i;:::-;16646:74;;16729:93;16818:3;16729:93;:::i;:::-;16847:2;16842:3;16838:12;16831:19;;16490:366;;;:::o;16862:419::-;17028:4;17066:2;17055:9;17051:18;17043:26;;17115:9;17109:4;17105:20;17101:1;17090:9;17086:17;17079:47;17143:131;17269:4;17143:131;:::i;:::-;17135:139;;16862:419;;;:::o;17287:167::-;17427:19;17423:1;17415:6;17411:14;17404:43;17287:167;:::o;17460:366::-;17602:3;17623:67;17687:2;17682:3;17623:67;:::i;:::-;17616:74;;17699:93;17788:3;17699:93;:::i;:::-;17817:2;17812:3;17808:12;17801:19;;17460:366;;;:::o;17832:419::-;17998:4;18036:2;18025:9;18021:18;18013:26;;18085:9;18079:4;18075:20;18071:1;18060:9;18056:17;18049:47;18113:131;18239:4;18113:131;:::i;:::-;18105:139;;17832:419;;;:::o;18257:245::-;18397:34;18393:1;18385:6;18381:14;18374:58;18466:28;18461:2;18453:6;18449:15;18442:53;18257:245;:::o;18508:366::-;18650:3;18671:67;18735:2;18730:3;18671:67;:::i;:::-;18664:74;;18747:93;18836:3;18747:93;:::i;:::-;18865:2;18860:3;18856:12;18849:19;;18508:366;;;:::o;18880:419::-;19046:4;19084:2;19073:9;19069:18;19061:26;;19133:9;19127:4;19123:20;19119:1;19108:9;19104:17;19097:47;19161:131;19287:4;19161:131;:::i;:::-;19153:139;;18880:419;;;:::o;19305:166::-;19445:18;19441:1;19433:6;19429:14;19422:42;19305:166;:::o;19477:366::-;19619:3;19640:67;19704:2;19699:3;19640:67;:::i;:::-;19633:74;;19716:93;19805:3;19716:93;:::i;:::-;19834:2;19829:3;19825:12;19818:19;;19477:366;;;:::o;19849:419::-;20015:4;20053:2;20042:9;20038:18;20030:26;;20102:9;20096:4;20092:20;20088:1;20077:9;20073:17;20066:47;20130:131;20256:4;20130:131;:::i;:::-;20122:139;;19849:419;;;:::o;20274:224::-;20414:34;20410:1;20402:6;20398:14;20391:58;20483:7;20478:2;20470:6;20466:15;20459:32;20274:224;:::o;20504:366::-;20646:3;20667:67;20731:2;20726:3;20667:67;:::i;:::-;20660:74;;20743:93;20832:3;20743:93;:::i;:::-;20861:2;20856:3;20852:12;20845:19;;20504:366;;;:::o;20876:419::-;21042:4;21080:2;21069:9;21065:18;21057:26;;21129:9;21123:4;21119:20;21115:1;21104:9;21100:17;21093:47;21157:131;21283:4;21157:131;:::i;:::-;21149:139;;20876:419;;;:::o;21301:194::-;21341:4;21361:20;21379:1;21361:20;:::i;:::-;21356:25;;21395:20;21413:1;21395:20;:::i;:::-;21390:25;;21439:1;21436;21432:9;21424:17;;21463:1;21457:4;21454:11;21451:37;;;21468:18;;:::i;:::-;21451:37;21301:194;;;;:::o;21501:167::-;21538:3;21561:22;21577:5;21561:22;:::i;:::-;21552:31;;21605:4;21598:5;21595:15;21592:41;;21613:18;;:::i;:::-;21592:41;21660:1;21653:5;21649:13;21642:20;;21501:167;;;:::o;21674:180::-;21722:77;21719:1;21712:88;21819:4;21816:1;21809:15;21843:4;21840:1;21833:15;21860:180;21908:77;21905:1;21898:88;22005:4;22002:1;21995:15;22029:4;22026:1;22019:15;22046:85;22091:7;22120:5;22109:16;;22046:85;;;:::o;22137:158::-;22195:9;22228:61;22246:42;22255:32;22281:5;22255:32;:::i;:::-;22246:42;:::i;:::-;22228:61;:::i;:::-;22215:74;;22137:158;;;:::o;22301:147::-;22396:45;22435:5;22396:45;:::i;:::-;22391:3;22384:58;22301:147;;:::o;22454:114::-;22521:6;22555:5;22549:12;22539:22;;22454:114;;;:::o;22574:184::-;22673:11;22707:6;22702:3;22695:19;22747:4;22742:3;22738:14;22723:29;;22574:184;;;;:::o;22764:132::-;22831:4;22854:3;22846:11;;22884:4;22879:3;22875:14;22867:22;;22764:132;;;:::o;22902:108::-;22979:24;22997:5;22979:24;:::i;:::-;22974:3;22967:37;22902:108;;:::o;23016:179::-;23085:10;23106:46;23148:3;23140:6;23106:46;:::i;:::-;23184:4;23179:3;23175:14;23161:28;;23016:179;;;;:::o;23201:113::-;23271:4;23303;23298:3;23294:14;23286:22;;23201:113;;;:::o;23350:732::-;23469:3;23498:54;23546:5;23498:54;:::i;:::-;23568:86;23647:6;23642:3;23568:86;:::i;:::-;23561:93;;23678:56;23728:5;23678:56;:::i;:::-;23757:7;23788:1;23773:284;23798:6;23795:1;23792:13;23773:284;;;23874:6;23868:13;23901:63;23960:3;23945:13;23901:63;:::i;:::-;23894:70;;23987:60;24040:6;23987:60;:::i;:::-;23977:70;;23833:224;23820:1;23817;23813:9;23808:14;;23773:284;;;23777:14;24073:3;24066:10;;23474:608;;;23350:732;;;;:::o;24088:831::-;24351:4;24389:3;24378:9;24374:19;24366:27;;24403:71;24471:1;24460:9;24456:17;24447:6;24403:71;:::i;:::-;24484:80;24560:2;24549:9;24545:18;24536:6;24484:80;:::i;:::-;24611:9;24605:4;24601:20;24596:2;24585:9;24581:18;24574:48;24639:108;24742:4;24733:6;24639:108;:::i;:::-;24631:116;;24757:72;24825:2;24814:9;24810:18;24801:6;24757:72;:::i;:::-;24839:73;24907:3;24896:9;24892:19;24883:6;24839:73;:::i;:::-;24088:831;;;;;;;;:::o
Swarm Source
ipfs://9e6a78eb60cb0986d2c7246774a9109626d381fd5691b499f6b9b47a649b8b27
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.