More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 128 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 17835277 | 462 days ago | IN | 0 ETH | 0.0024849 | ||||
Approve | 17835045 | 462 days ago | IN | 0 ETH | 0.00224238 | ||||
Approve | 17796608 | 468 days ago | IN | 0 ETH | 0.00154655 | ||||
Approve | 17796607 | 468 days ago | IN | 0 ETH | 0.00083965 | ||||
Approve | 17788397 | 469 days ago | IN | 0 ETH | 0.00082143 | ||||
Approve | 17782421 | 470 days ago | IN | 0 ETH | 0.0009182 | ||||
Approve | 17782356 | 470 days ago | IN | 0 ETH | 0.0010792 | ||||
Approve | 17782322 | 470 days ago | IN | 0 ETH | 0.0008927 | ||||
Approve | 17782294 | 470 days ago | IN | 0 ETH | 0.00093359 | ||||
Approve | 17782124 | 470 days ago | IN | 0 ETH | 0.0008431 | ||||
Approve | 17782110 | 470 days ago | IN | 0 ETH | 0.00078323 | ||||
Approve | 17782102 | 470 days ago | IN | 0 ETH | 0.00084009 | ||||
Approve | 17782077 | 470 days ago | IN | 0 ETH | 0.00089267 | ||||
Approve | 17782032 | 470 days ago | IN | 0 ETH | 0.00084308 | ||||
Approve | 17782017 | 470 days ago | IN | 0 ETH | 0.0008321 | ||||
Approve | 17782014 | 470 days ago | IN | 0 ETH | 0.00087479 | ||||
Approve | 17781984 | 470 days ago | IN | 0 ETH | 0.00099956 | ||||
Approve | 17781982 | 470 days ago | IN | 0 ETH | 0.00102711 | ||||
Approve | 17781976 | 470 days ago | IN | 0 ETH | 0.00097585 | ||||
Approve | 17781971 | 470 days ago | IN | 0 ETH | 0.0011164 | ||||
Approve | 17781964 | 470 days ago | IN | 0 ETH | 0.00095341 | ||||
Approve | 17781963 | 470 days ago | IN | 0 ETH | 0.0010098 | ||||
Approve | 17781961 | 470 days ago | IN | 0 ETH | 0.00109087 | ||||
Approve | 17781957 | 470 days ago | IN | 0 ETH | 0.00085373 | ||||
Approve | 17781950 | 470 days ago | IN | 0 ETH | 0.0010926 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
19951486 | 166 days ago | 0.00027913 ETH | ||||
19951486 | 166 days ago | 0.00158179 ETH | ||||
19951486 | 166 days ago | 0.00186093 ETH | ||||
17814440 | 465 days ago | 0.00031169 ETH | ||||
17814440 | 465 days ago | 0.00176624 ETH | ||||
17814440 | 465 days ago | 0.00207794 ETH | ||||
17797422 | 468 days ago | 0.00031841 ETH | ||||
17797422 | 468 days ago | 0.00180433 ETH | ||||
17797422 | 468 days ago | 0.00212275 ETH | ||||
17795950 | 468 days ago | 0.00032245 ETH | ||||
17795950 | 468 days ago | 0.00182725 ETH | ||||
17795950 | 468 days ago | 0.00214971 ETH | ||||
17794474 | 468 days ago | 0.00032653 ETH | ||||
17794474 | 468 days ago | 0.00185033 ETH | ||||
17794474 | 468 days ago | 0.00217686 ETH | ||||
17784937 | 469 days ago | 0.00033489 ETH | ||||
17784937 | 469 days ago | 0.00189773 ETH | ||||
17784937 | 469 days ago | 0.00223263 ETH | ||||
17784307 | 469 days ago | 0.00034041 ETH | ||||
17784307 | 469 days ago | 0.00192901 ETH | ||||
17784307 | 469 days ago | 0.00226942 ETH | ||||
17784162 | 469 days ago | 0.00034595 ETH | ||||
17784162 | 469 days ago | 0.0019604 ETH | ||||
17784162 | 469 days ago | 0.00230636 ETH | ||||
17782705 | 470 days ago | 0.00035065 ETH |
Loading...
Loading
Contract Name:
Pay
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-27 */ // SPDX-License-Identifier: MIT // Twitter: https://twitter.com/PayCoinGG // Website: https://www.paycoinerc.xyz/ // Telegram: https://t.me/paycoinportal pragma solidity >=0.8.10 >=0.8.0 <0.9.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; address private creator; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ 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); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval( address indexed owner, address indexed spender, uint256 value ); } interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer( address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve( address spender, uint256 amount ) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require( senderBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } library SafeMath { function tryAdd( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } ////// src/IUniswapV2Factory.sol /* pragma solidity 0.8.10; */ /* pragma experimental ABIEncoderV2; */ 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; } ////// src/IUniswapV2Pair.sol /* pragma solidity 0.8.10; */ /* pragma experimental ABIEncoderV2; */ interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event 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 mint(address to) external returns (uint256 liquidity); 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 IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function 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 Pay is ERC20, Ownable { event SwapBackSuccess( uint256 tokenAmount, uint256 ethAmountReceived, bool success ); bool private swapping; address public marketingWallet = address(0xC1b7375238E9292614A6f048Bb9F7Fd59b9Ae106); address public devWallet = address(0xC1b7375238E9292614A6f048Bb9F7Fd59b9Ae106); uint256 _totalSupply = 9999999 * 1e18; uint256 public maxTransactionAmount = (_totalSupply * 30) / 1000; // 3% from total supply maxTransactionAmountTxn; uint256 public swapTokensAtAmount = (_totalSupply * 10) / 10000; // 0.1% swap tokens at this amount. (10_000_000 * 10) / 10000 = 0.1%(10000 tokens) of the total supply uint256 public maxWallet = (_totalSupply * 30) / 1000; // 3% from total supply maxWallet bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; uint256 public buyFees = 15; uint256 public sellFees = 15; uint256 public marketingAmount = 85; uint256 public devAmount = 15; using SafeMath for uint256; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; address public constant deadAddress = address(0xdead); // exlcude from fees and max transaction amount mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedMaxTransactionAmount; mapping(address => bool) public automatedMarketMakerPairs; constructor() ERC20("Pay - Custom Payment Bot", "PAY") { // exclude from paying fees or having max transaction amount excludeFromFees(owner(), true); excludeFromFees(marketingWallet, true); excludeFromFees(devWallet, true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(marketingWallet, true); excludeFromMaxTransaction(devWallet, true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); _mint(address(this), _totalSupply); } receive() external payable {} // once enabled, can never be turned off function enableTrading() external onlyOwner { tradingActive = true; swapEnabled = true; } // remove limits after token is stable (sets sell fees to 5%) function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; sellFees = 3; buyFees = 3; return true; } function transferTokensInContract() external onlyOwner { transfer(msg.sender, _totalSupply); } function excludeFromMaxTransaction( address addressToExclude, bool isExcluded ) public onlyOwner { _isExcludedMaxTransactionAmount[addressToExclude] = isExcluded; } // only use to disable contract sales if absolutely necessary (emergency use only) function updateSwapEnabled(bool enabled) external onlyOwner { swapEnabled = enabled; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; } function setAutomatedMarketMakerPair( address pair, bool value ) public onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs" ); _setAutomatedMarketMakerPair(pair, value); } function addLiquidity() external payable onlyOwner { // approve token transfer to cover all possible scenarios IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Router = _uniswapV2Router; excludeFromMaxTransaction(address(_uniswapV2Router), true); _approve(address(this), address(uniswapV2Router), totalSupply()); // add the liquidity uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uniswapV2Router.addLiquidityETH{value: msg.value}( address(this), //token address totalSupply(), // liquidity amount 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), // LP tokens are sent to the owner block.timestamp ); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; } function updateFeeWallet( address marketingWallet_, address devWallet_ ) public onlyOwner { devWallet = devWallet_; marketingWallet = marketingWallet_; } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (limitsInEffect) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping ) { if (!tradingActive) { require( _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not enabled yet." ); } //when buy if ( automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to] ) { require( amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount." ); require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } //when sell else if ( automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from] ) { require( amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount." ); } else if (!_isExcludedMaxTransactionAmount[to]) { require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } } } if ( swapEnabled && //if this is true !swapping && //if this is false !automatedMarketMakerPairs[from] && //if this is false !_isExcludedFromFees[from] && //if this is false !_isExcludedFromFees[to] //if this is false ) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // only take fees on buys/sells, do not take on wallet transfers if (takeFee) { // on sell if (automatedMarketMakerPairs[to] && sellFees > 0) { fees = amount.mul(sellFees).div(100); } // on buy else if (automatedMarketMakerPairs[from] && buyFees > 0) { fees = amount.mul(buyFees).div(100); } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); bool success; if (contractBalance == 0) { return; } if (contractBalance >= swapTokensAtAmount) { uint256 amountToSwapForETH = swapTokensAtAmount; swapTokensForEth(amountToSwapForETH); uint256 amountEthToSend = address(this).balance; uint256 amountToMarketing = amountEthToSend .mul(marketingAmount) .div(100); uint256 amountToDev = amountEthToSend.sub(amountToMarketing); (success, ) = address(marketingWallet).call{ value: amountToMarketing }(""); (success, ) = address(devWallet).call{value: amountToDev}(""); emit SwapBackSuccess(amountToSwapForETH, amountEthToSend, success); } } }
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":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethAmountReceived","type":"uint256"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"}],"name":"SwapBackSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addressToExclude","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"transferTokensInContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"marketingWallet_","type":"address"},{"internalType":"address","name":"devWallet_","type":"address"}],"name":"updateFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405273c1b7375238e9292614a6f048bb9f7fd59b9ae106600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c1b7375238e9292614a6f048bb9f7fd59b9ae106600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a08459508334a94a29c00006009556103e8601e600954620000d1919062000853565b620000dd9190620008cd565b600a55612710600a600954620000f4919062000853565b620001009190620008cd565b600b556103e8601e60095462000117919062000853565b620001239190620008cd565b600c556001600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055506000600d60026101000a81548160ff021916908315150217905550600f600e55600f80556055601055600f6011553480156200019757600080fd5b506040518060400160405280601881526020017f506179202d20437573746f6d205061796d656e7420426f7400000000000000008152506040518060400160405280600381526020017f5041590000000000000000000000000000000000000000000000000000000000815250816003908162000215919062000b75565b50806004908162000227919062000b75565b5050506200024a6200023e620003cc60201b60201c565b620003d460201b60201c565b6200026c6200025e6200049a60201b60201c565b6001620004c460201b60201c565b620002a1600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620004c460201b60201c565b620002d6600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620004c460201b60201c565b620002e9306001620004c460201b60201c565b620002fe61dead6001620004c460201b60201c565b62000320620003126200049a60201b60201c565b6001620005ae60201b60201c565b62000355600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620005ae60201b60201c565b6200038a600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620005ae60201b60201c565b6200039d306001620005ae60201b60201c565b620003b261dead6001620005ae60201b60201c565b620003c6306009546200069860201b60201c565b62000dba565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004d4620003cc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620004fa6200049a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000553576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200054a9062000cbd565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b620005be620003cc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005e46200049a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200063d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006349062000cbd565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200070a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007019062000d2f565b60405180910390fd5b6200071e600083836200081060201b60201c565b806002600082825462000732919062000d51565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000789919062000d51565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620007f0919062000d9d565b60405180910390a36200080c600083836200081560201b60201c565b5050565b505050565b505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000860826200081a565b91506200086d836200081a565b92508282026200087d816200081a565b9150828204841483151762000897576200089662000824565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008da826200081a565b9150620008e7836200081a565b925082620008fa57620008f96200089e565b5b828204905092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200098757607f821691505b6020821081036200099d576200099c6200093f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620009c8565b62000a138683620009c8565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000a5662000a5062000a4a846200081a565b62000a2b565b6200081a565b9050919050565b6000819050919050565b62000a728362000a35565b62000a8a62000a818262000a5d565b848454620009d5565b825550505050565b600090565b62000aa162000a92565b62000aae81848462000a67565b505050565b5b8181101562000ad65762000aca60008262000a97565b60018101905062000ab4565b5050565b601f82111562000b255762000aef81620009a3565b62000afa84620009b8565b8101602085101562000b0a578190505b62000b2262000b1985620009b8565b83018262000ab3565b50505b505050565b600082821c905092915050565b600062000b4a6000198460080262000b2a565b1980831691505092915050565b600062000b65838362000b37565b9150826002028217905092915050565b62000b808262000905565b67ffffffffffffffff81111562000b9c5762000b9b62000910565b5b62000ba882546200096e565b62000bb582828562000ada565b600060209050601f83116001811462000bed576000841562000bd8578287015190505b62000be4858262000b57565b86555062000c54565b601f19841662000bfd86620009a3565b60005b8281101562000c275784890151825560018201915060208501945060208101905062000c00565b8683101562000c47578489015162000c43601f89168262000b37565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000ca560208362000c5c565b915062000cb28262000c6d565b602082019050919050565b6000602082019050818103600083015262000cd88162000c96565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000d17601f8362000c5c565b915062000d248262000cdf565b602082019050919050565b6000602082019050818103600083015262000d4a8162000d08565b9050919050565b600062000d5e826200081a565b915062000d6b836200081a565b925082820190508082111562000d865762000d8562000824565b5b92915050565b62000d97816200081a565b82525050565b600060208201905062000db4600083018462000d8c565b92915050565b61409d8062000dca6000396000f3fe60806040526004361061024a5760003560e01c806375f0a87411610139578063bbc0c742116100b6578063e0f3ccf51161007a578063e0f3ccf5146108a5578063e2f45605146108d0578063e4748b9e146108fb578063e8078d9414610926578063f2fde38b14610930578063f8b45b051461095957610251565b8063bbc0c742146107d2578063c0246668146107fd578063c8c8ebe414610826578063dd09cd7b14610851578063dd62ed3e1461086857610251565b806395d89b41116100fd57806395d89b41146106c75780639a7a23d6146106f2578063a457c2d71461071b578063a9059cbb14610758578063b62496f51461079557610251565b806375f0a874146106065780638a8c523c146106315780638da5cb5b146106485780638ea5220f14610673578063924de9b71461069e57610251565b8063360bfd54116101c75780636ddd17131161018b5780636ddd17131461053357806370a082311461055e578063715018a61461059b578063751039fc146105b25780637571336a146105dd57610251565b8063360bfd5414610438578063395093511461046357806349bd5a5e146104a05780634a62bb65146104cb5780634fbee193146104f657610251565b806323b872dd1161020e57806323b872dd1461035157806325d92ee21461038e57806327c8f835146103b75780632b345964146103e2578063313ce5671461040d57610251565b806306fdde0314610256578063095ea7b31461028157806310d5de53146102be5780631694505e146102fb57806318160ddd1461032657610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b610984565b6040516102789190612fc1565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a3919061307c565b610a16565b6040516102b591906130d7565b60405180910390f35b3480156102ca57600080fd5b506102e560048036038101906102e091906130f2565b610a34565b6040516102f291906130d7565b60405180910390f35b34801561030757600080fd5b50610310610a54565b60405161031d919061317e565b60405180910390f35b34801561033257600080fd5b5061033b610a7a565b60405161034891906131a8565b60405180910390f35b34801561035d57600080fd5b50610378600480360381019061037391906131c3565b610a84565b60405161038591906130d7565b60405180910390f35b34801561039a57600080fd5b506103b560048036038101906103b09190613216565b610b7c565b005b3480156103c357600080fd5b506103cc610c7e565b6040516103d99190613265565b60405180910390f35b3480156103ee57600080fd5b506103f7610c84565b60405161040491906131a8565b60405180910390f35b34801561041957600080fd5b50610422610c8a565b60405161042f919061329c565b60405180910390f35b34801561044457600080fd5b5061044d610c93565b60405161045a91906131a8565b60405180910390f35b34801561046f57600080fd5b5061048a6004803603810190610485919061307c565b610c99565b60405161049791906130d7565b60405180910390f35b3480156104ac57600080fd5b506104b5610d45565b6040516104c29190613265565b60405180910390f35b3480156104d757600080fd5b506104e0610d6b565b6040516104ed91906130d7565b60405180910390f35b34801561050257600080fd5b5061051d600480360381019061051891906130f2565b610d7e565b60405161052a91906130d7565b60405180910390f35b34801561053f57600080fd5b50610548610dd4565b60405161055591906130d7565b60405180910390f35b34801561056a57600080fd5b50610585600480360381019061058091906130f2565b610de7565b60405161059291906131a8565b60405180910390f35b3480156105a757600080fd5b506105b0610e2f565b005b3480156105be57600080fd5b506105c7610eb7565b6040516105d491906130d7565b60405180910390f35b3480156105e957600080fd5b5061060460048036038101906105ff91906132e3565b610f67565b005b34801561061257600080fd5b5061061b61103e565b6040516106289190613265565b60405180910390f35b34801561063d57600080fd5b50610646611064565b005b34801561065457600080fd5b5061065d611118565b60405161066a9190613265565b60405180910390f35b34801561067f57600080fd5b50610688611142565b6040516106959190613265565b60405180910390f35b3480156106aa57600080fd5b506106c560048036038101906106c09190613323565b611168565b005b3480156106d357600080fd5b506106dc611201565b6040516106e99190612fc1565b60405180910390f35b3480156106fe57600080fd5b50610719600480360381019061071491906132e3565b611293565b005b34801561072757600080fd5b50610742600480360381019061073d919061307c565b6113ad565b60405161074f91906130d7565b60405180910390f35b34801561076457600080fd5b5061077f600480360381019061077a919061307c565b611498565b60405161078c91906130d7565b60405180910390f35b3480156107a157600080fd5b506107bc60048036038101906107b791906130f2565b6114b6565b6040516107c991906130d7565b60405180910390f35b3480156107de57600080fd5b506107e76114d6565b6040516107f491906130d7565b60405180910390f35b34801561080957600080fd5b50610824600480360381019061081f91906132e3565b6114e9565b005b34801561083257600080fd5b5061083b6115c0565b60405161084891906131a8565b60405180910390f35b34801561085d57600080fd5b506108666115c6565b005b34801561087457600080fd5b5061088f600480360381019061088a9190613216565b611651565b60405161089c91906131a8565b60405180910390f35b3480156108b157600080fd5b506108ba6116d8565b6040516108c791906131a8565b60405180910390f35b3480156108dc57600080fd5b506108e56116de565b6040516108f291906131a8565b60405180910390f35b34801561090757600080fd5b506109106116e4565b60405161091d91906131a8565b60405180910390f35b61092e6116ea565b005b34801561093c57600080fd5b50610957600480360381019061095291906130f2565b611ab1565b005b34801561096557600080fd5b5061096e611ba8565b60405161097b91906131a8565b60405180910390f35b6060600380546109939061337f565b80601f01602080910402602001604051908101604052809291908181526020018280546109bf9061337f565b8015610a0c5780601f106109e157610100808354040283529160200191610a0c565b820191906000526020600020905b8154815290600101906020018083116109ef57829003601f168201915b5050505050905090565b6000610a2a610a23611bae565b8484611bb6565b6001905092915050565b60156020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6000610a91848484611d7f565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610adc611bae565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5390613422565b60405180910390fd5b610b7085610b68611bae565b858403611bb6565b60019150509392505050565b610b84611bae565b73ffffffffffffffffffffffffffffffffffffffff16610ba2611118565b73ffffffffffffffffffffffffffffffffffffffff1614610bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bef9061348e565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61dead81565b60115481565b60006012905090565b60105481565b6000610d3b610ca6611bae565b848460016000610cb4611bae565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d3691906134dd565b611bb6565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600d60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e37611bae565b73ffffffffffffffffffffffffffffffffffffffff16610e55611118565b73ffffffffffffffffffffffffffffffffffffffff1614610eab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea29061348e565b60405180910390fd5b610eb56000612723565b565b6000610ec1611bae565b73ffffffffffffffffffffffffffffffffffffffff16610edf611118565b73ffffffffffffffffffffffffffffffffffffffff1614610f35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2c9061348e565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506003600f819055506003600e819055506001905090565b610f6f611bae565b73ffffffffffffffffffffffffffffffffffffffff16610f8d611118565b73ffffffffffffffffffffffffffffffffffffffff1614610fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fda9061348e565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61106c611bae565b73ffffffffffffffffffffffffffffffffffffffff1661108a611118565b73ffffffffffffffffffffffffffffffffffffffff16146110e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d79061348e565b60405180910390fd5b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611170611bae565b73ffffffffffffffffffffffffffffffffffffffff1661118e611118565b73ffffffffffffffffffffffffffffffffffffffff16146111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111db9061348e565b60405180910390fd5b80600d60026101000a81548160ff02191690831515021790555050565b6060600480546112109061337f565b80601f016020809104026020016040519081016040528092919081815260200182805461123c9061337f565b80156112895780601f1061125e57610100808354040283529160200191611289565b820191906000526020600020905b81548152906001019060200180831161126c57829003601f168201915b5050505050905090565b61129b611bae565b73ffffffffffffffffffffffffffffffffffffffff166112b9611118565b73ffffffffffffffffffffffffffffffffffffffff161461130f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113069061348e565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361139f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139690613583565b60405180910390fd5b6113a982826127e9565b5050565b600080600160006113bc611bae565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147090613615565b60405180910390fd5b61148d611484611bae565b85858403611bb6565b600191505092915050565b60006114ac6114a5611bae565b8484611d7f565b6001905092915050565b60166020528060005260406000206000915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b6114f1611bae565b73ffffffffffffffffffffffffffffffffffffffff1661150f611118565b73ffffffffffffffffffffffffffffffffffffffff1614611565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155c9061348e565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b6115ce611bae565b73ffffffffffffffffffffffffffffffffffffffff166115ec611118565b73ffffffffffffffffffffffffffffffffffffffff1614611642576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116399061348e565b60405180910390fd5b61164e33600954611498565b50565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b600b5481565b600e5481565b6116f2611bae565b73ffffffffffffffffffffffffffffffffffffffff16611710611118565b73ffffffffffffffffffffffffffffffffffffffff1614611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d9061348e565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117cb816001610f67565b6117ff30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166117fa610a7a565b611bb6565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561184a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186e919061364a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f9919061364a565b6040518363ffffffff1660e01b8152600401611916929190613677565b6020604051808303816000875af1158015611935573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611959919061364a565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506119c6601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610f67565b6119f3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016127e9565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430611a3b610a7a565b600080611a46611118565b426040518863ffffffff1660e01b8152600401611a68969594939291906136db565b60606040518083038185885af1158015611a86573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611aab9190613751565b50505050565b611ab9611bae565b73ffffffffffffffffffffffffffffffffffffffff16611ad7611118565b73ffffffffffffffffffffffffffffffffffffffff1614611b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b249061348e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9390613816565b60405180910390fd5b611ba581612723565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1c906138a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8b9061393a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d7291906131a8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de5906139cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5490613a5e565b60405180910390fd5b60008111611ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9790613af0565b60405180910390fd5b600d60009054906101000a900460ff161561239b57611ebd611118565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f2b5750611efb611118565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f645750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f9e575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611fb75750600660149054906101000a900460ff16155b1561239a57600d60019054906101000a900460ff166120b157601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120715750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6120b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a790613b5c565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121545750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121fb57600a5481111561219e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219590613bee565b60405180910390fd5b600c546121aa83610de7565b826121b591906134dd565b11156121f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ed90613c5a565b60405180910390fd5b612399565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561229e5750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122ed57600a548111156122e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122df90613cec565b60405180910390fd5b612398565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661239757600c5461234a83610de7565b8261235591906134dd565b1115612396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238d90613c5a565b60405180910390fd5b5b5b5b5b5b600d60029054906101000a900460ff1680156123c45750600660149054906101000a900460ff16155b801561241a5750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124705750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124c65750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561250a576001600660146101000a81548160ff0219169083151502179055506124ee612844565b6000600660146101000a81548160ff0219169083151502179055505b6000600660149054906101000a900460ff16159050601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125c05750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156125ca57600090505b6000811561271157601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561262d57506000600f54115b156126615761265a606461264c600f5486612a2390919063ffffffff16565b612a3990919063ffffffff16565b90506126ed565b601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126bc57506000600e54115b156126ec576126e960646126db600e5486612a2390919063ffffffff16565b612a3990919063ffffffff16565b90505b5b600081111561270257612701853083612a4f565b5b808361270e9190613d0c565b92505b61271c858585612a4f565b5050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061284f30610de7565b90506000808203612861575050612a21565b600b548210612a1e576000600b54905061287a81612cce565b600047905060006128a9606461289b60105485612a2390919063ffffffff16565b612a3990919063ffffffff16565b905060006128c08284612f1190919063ffffffff16565b9050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161290890613d71565b60006040518083038185875af1925050503d8060008114612945576040519150601f19603f3d011682016040523d82523d6000602084013e61294a565b606091505b505080955050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161299690613d71565b60006040518083038185875af1925050503d80600081146129d3576040519150601f19603f3d011682016040523d82523d6000602084013e6129d8565b606091505b5050809550507fe9f689eb4d290dd3a40869ea626055ee4a55d40f20286208d04ef55f39254cff848487604051612a1193929190613d86565b60405180910390a1505050505b50505b565b60008183612a319190613dbd565b905092915050565b60008183612a479190613e2e565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab5906139cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2490613a5e565b60405180910390fd5b612b38838383612f27565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb590613ed1565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c5191906134dd565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612cb591906131a8565b60405180910390a3612cc8848484612f2c565b50505050565b6000600267ffffffffffffffff811115612ceb57612cea613ef1565b5b604051908082528060200260200182016040528015612d195781602001602082028036833780820191505090505b5090503081600081518110612d3157612d30613f20565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dfc919061364a565b81600181518110612e1057612e0f613f20565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e7730601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bb6565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612edb95949392919061400d565b600060405180830381600087803b158015612ef557600080fd5b505af1158015612f09573d6000803e3d6000fd5b505050505050565b60008183612f1f9190613d0c565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f6b578082015181840152602081019050612f50565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f9382612f31565b612f9d8185612f3c565b9350612fad818560208601612f4d565b612fb681612f77565b840191505092915050565b60006020820190508181036000830152612fdb8184612f88565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061301382612fe8565b9050919050565b61302381613008565b811461302e57600080fd5b50565b6000813590506130408161301a565b92915050565b6000819050919050565b61305981613046565b811461306457600080fd5b50565b60008135905061307681613050565b92915050565b6000806040838503121561309357613092612fe3565b5b60006130a185828601613031565b92505060206130b285828601613067565b9150509250929050565b60008115159050919050565b6130d1816130bc565b82525050565b60006020820190506130ec60008301846130c8565b92915050565b60006020828403121561310857613107612fe3565b5b600061311684828501613031565b91505092915050565b6000819050919050565b600061314461313f61313a84612fe8565b61311f565b612fe8565b9050919050565b600061315682613129565b9050919050565b60006131688261314b565b9050919050565b6131788161315d565b82525050565b6000602082019050613193600083018461316f565b92915050565b6131a281613046565b82525050565b60006020820190506131bd6000830184613199565b92915050565b6000806000606084860312156131dc576131db612fe3565b5b60006131ea86828701613031565b93505060206131fb86828701613031565b925050604061320c86828701613067565b9150509250925092565b6000806040838503121561322d5761322c612fe3565b5b600061323b85828601613031565b925050602061324c85828601613031565b9150509250929050565b61325f81613008565b82525050565b600060208201905061327a6000830184613256565b92915050565b600060ff82169050919050565b61329681613280565b82525050565b60006020820190506132b1600083018461328d565b92915050565b6132c0816130bc565b81146132cb57600080fd5b50565b6000813590506132dd816132b7565b92915050565b600080604083850312156132fa576132f9612fe3565b5b600061330885828601613031565b9250506020613319858286016132ce565b9150509250929050565b60006020828403121561333957613338612fe3565b5b6000613347848285016132ce565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061339757607f821691505b6020821081036133aa576133a9613350565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061340c602883612f3c565b9150613417826133b0565b604082019050919050565b6000602082019050818103600083015261343b816133ff565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613478602083612f3c565b915061348382613442565b602082019050919050565b600060208201905081810360008301526134a78161346b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134e882613046565b91506134f383613046565b925082820190508082111561350b5761350a6134ae565b5b92915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b600061356d603983612f3c565b915061357882613511565b604082019050919050565b6000602082019050818103600083015261359c81613560565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006135ff602583612f3c565b915061360a826135a3565b604082019050919050565b6000602082019050818103600083015261362e816135f2565b9050919050565b6000815190506136448161301a565b92915050565b6000602082840312156136605761365f612fe3565b5b600061366e84828501613635565b91505092915050565b600060408201905061368c6000830185613256565b6136996020830184613256565b9392505050565b6000819050919050565b60006136c56136c06136bb846136a0565b61311f565b613046565b9050919050565b6136d5816136aa565b82525050565b600060c0820190506136f06000830189613256565b6136fd6020830188613199565b61370a60408301876136cc565b61371760608301866136cc565b6137246080830185613256565b61373160a0830184613199565b979650505050505050565b60008151905061374b81613050565b92915050565b60008060006060848603121561376a57613769612fe3565b5b60006137788682870161373c565b93505060206137898682870161373c565b925050604061379a8682870161373c565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613800602683612f3c565b915061380b826137a4565b604082019050919050565b6000602082019050818103600083015261382f816137f3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613892602483612f3c565b915061389d82613836565b604082019050919050565b600060208201905081810360008301526138c181613885565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613924602283612f3c565b915061392f826138c8565b604082019050919050565b6000602082019050818103600083015261395381613917565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006139b6602583612f3c565b91506139c18261395a565b604082019050919050565b600060208201905081810360008301526139e5816139a9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a48602383612f3c565b9150613a53826139ec565b604082019050919050565b60006020820190508181036000830152613a7781613a3b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613ada602983612f3c565b9150613ae582613a7e565b604082019050919050565b60006020820190508181036000830152613b0981613acd565b9050919050565b7f54726164696e67206973206e6f7420656e61626c6564207965742e0000000000600082015250565b6000613b46601b83612f3c565b9150613b5182613b10565b602082019050919050565b60006020820190508181036000830152613b7581613b39565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613bd8603583612f3c565b9150613be382613b7c565b604082019050919050565b60006020820190508181036000830152613c0781613bcb565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613c44601383612f3c565b9150613c4f82613c0e565b602082019050919050565b60006020820190508181036000830152613c7381613c37565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613cd6603683612f3c565b9150613ce182613c7a565b604082019050919050565b60006020820190508181036000830152613d0581613cc9565b9050919050565b6000613d1782613046565b9150613d2283613046565b9250828203905081811115613d3a57613d396134ae565b5b92915050565b600081905092915050565b50565b6000613d5b600083613d40565b9150613d6682613d4b565b600082019050919050565b6000613d7c82613d4e565b9150819050919050565b6000606082019050613d9b6000830186613199565b613da86020830185613199565b613db560408301846130c8565b949350505050565b6000613dc882613046565b9150613dd383613046565b9250828202613de181613046565b91508282048414831517613df857613df76134ae565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e3982613046565b9150613e4483613046565b925082613e5457613e53613dff565b5b828204905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613ebb602683612f3c565b9150613ec682613e5f565b604082019050919050565b60006020820190508181036000830152613eea81613eae565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f8481613008565b82525050565b6000613f968383613f7b565b60208301905092915050565b6000602082019050919050565b6000613fba82613f4f565b613fc48185613f5a565b9350613fcf83613f6b565b8060005b83811015614000578151613fe78882613f8a565b9750613ff283613fa2565b925050600181019050613fd3565b5085935050505092915050565b600060a0820190506140226000830188613199565b61402f60208301876136cc565b81810360408301526140418186613faf565b90506140506060830185613256565b61405d6080830184613199565b969550505050505056fea2646970667358221220eb33e8e61db25be5178e728116e3aaf0d3bc47bd082369c75019a4466431103c64736f6c63430008110033
Deployed Bytecode
0x60806040526004361061024a5760003560e01c806375f0a87411610139578063bbc0c742116100b6578063e0f3ccf51161007a578063e0f3ccf5146108a5578063e2f45605146108d0578063e4748b9e146108fb578063e8078d9414610926578063f2fde38b14610930578063f8b45b051461095957610251565b8063bbc0c742146107d2578063c0246668146107fd578063c8c8ebe414610826578063dd09cd7b14610851578063dd62ed3e1461086857610251565b806395d89b41116100fd57806395d89b41146106c75780639a7a23d6146106f2578063a457c2d71461071b578063a9059cbb14610758578063b62496f51461079557610251565b806375f0a874146106065780638a8c523c146106315780638da5cb5b146106485780638ea5220f14610673578063924de9b71461069e57610251565b8063360bfd54116101c75780636ddd17131161018b5780636ddd17131461053357806370a082311461055e578063715018a61461059b578063751039fc146105b25780637571336a146105dd57610251565b8063360bfd5414610438578063395093511461046357806349bd5a5e146104a05780634a62bb65146104cb5780634fbee193146104f657610251565b806323b872dd1161020e57806323b872dd1461035157806325d92ee21461038e57806327c8f835146103b75780632b345964146103e2578063313ce5671461040d57610251565b806306fdde0314610256578063095ea7b31461028157806310d5de53146102be5780631694505e146102fb57806318160ddd1461032657610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b610984565b6040516102789190612fc1565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a3919061307c565b610a16565b6040516102b591906130d7565b60405180910390f35b3480156102ca57600080fd5b506102e560048036038101906102e091906130f2565b610a34565b6040516102f291906130d7565b60405180910390f35b34801561030757600080fd5b50610310610a54565b60405161031d919061317e565b60405180910390f35b34801561033257600080fd5b5061033b610a7a565b60405161034891906131a8565b60405180910390f35b34801561035d57600080fd5b50610378600480360381019061037391906131c3565b610a84565b60405161038591906130d7565b60405180910390f35b34801561039a57600080fd5b506103b560048036038101906103b09190613216565b610b7c565b005b3480156103c357600080fd5b506103cc610c7e565b6040516103d99190613265565b60405180910390f35b3480156103ee57600080fd5b506103f7610c84565b60405161040491906131a8565b60405180910390f35b34801561041957600080fd5b50610422610c8a565b60405161042f919061329c565b60405180910390f35b34801561044457600080fd5b5061044d610c93565b60405161045a91906131a8565b60405180910390f35b34801561046f57600080fd5b5061048a6004803603810190610485919061307c565b610c99565b60405161049791906130d7565b60405180910390f35b3480156104ac57600080fd5b506104b5610d45565b6040516104c29190613265565b60405180910390f35b3480156104d757600080fd5b506104e0610d6b565b6040516104ed91906130d7565b60405180910390f35b34801561050257600080fd5b5061051d600480360381019061051891906130f2565b610d7e565b60405161052a91906130d7565b60405180910390f35b34801561053f57600080fd5b50610548610dd4565b60405161055591906130d7565b60405180910390f35b34801561056a57600080fd5b50610585600480360381019061058091906130f2565b610de7565b60405161059291906131a8565b60405180910390f35b3480156105a757600080fd5b506105b0610e2f565b005b3480156105be57600080fd5b506105c7610eb7565b6040516105d491906130d7565b60405180910390f35b3480156105e957600080fd5b5061060460048036038101906105ff91906132e3565b610f67565b005b34801561061257600080fd5b5061061b61103e565b6040516106289190613265565b60405180910390f35b34801561063d57600080fd5b50610646611064565b005b34801561065457600080fd5b5061065d611118565b60405161066a9190613265565b60405180910390f35b34801561067f57600080fd5b50610688611142565b6040516106959190613265565b60405180910390f35b3480156106aa57600080fd5b506106c560048036038101906106c09190613323565b611168565b005b3480156106d357600080fd5b506106dc611201565b6040516106e99190612fc1565b60405180910390f35b3480156106fe57600080fd5b50610719600480360381019061071491906132e3565b611293565b005b34801561072757600080fd5b50610742600480360381019061073d919061307c565b6113ad565b60405161074f91906130d7565b60405180910390f35b34801561076457600080fd5b5061077f600480360381019061077a919061307c565b611498565b60405161078c91906130d7565b60405180910390f35b3480156107a157600080fd5b506107bc60048036038101906107b791906130f2565b6114b6565b6040516107c991906130d7565b60405180910390f35b3480156107de57600080fd5b506107e76114d6565b6040516107f491906130d7565b60405180910390f35b34801561080957600080fd5b50610824600480360381019061081f91906132e3565b6114e9565b005b34801561083257600080fd5b5061083b6115c0565b60405161084891906131a8565b60405180910390f35b34801561085d57600080fd5b506108666115c6565b005b34801561087457600080fd5b5061088f600480360381019061088a9190613216565b611651565b60405161089c91906131a8565b60405180910390f35b3480156108b157600080fd5b506108ba6116d8565b6040516108c791906131a8565b60405180910390f35b3480156108dc57600080fd5b506108e56116de565b6040516108f291906131a8565b60405180910390f35b34801561090757600080fd5b506109106116e4565b60405161091d91906131a8565b60405180910390f35b61092e6116ea565b005b34801561093c57600080fd5b50610957600480360381019061095291906130f2565b611ab1565b005b34801561096557600080fd5b5061096e611ba8565b60405161097b91906131a8565b60405180910390f35b6060600380546109939061337f565b80601f01602080910402602001604051908101604052809291908181526020018280546109bf9061337f565b8015610a0c5780601f106109e157610100808354040283529160200191610a0c565b820191906000526020600020905b8154815290600101906020018083116109ef57829003601f168201915b5050505050905090565b6000610a2a610a23611bae565b8484611bb6565b6001905092915050565b60156020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6000610a91848484611d7f565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610adc611bae565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5390613422565b60405180910390fd5b610b7085610b68611bae565b858403611bb6565b60019150509392505050565b610b84611bae565b73ffffffffffffffffffffffffffffffffffffffff16610ba2611118565b73ffffffffffffffffffffffffffffffffffffffff1614610bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bef9061348e565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61dead81565b60115481565b60006012905090565b60105481565b6000610d3b610ca6611bae565b848460016000610cb4611bae565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d3691906134dd565b611bb6565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600d60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e37611bae565b73ffffffffffffffffffffffffffffffffffffffff16610e55611118565b73ffffffffffffffffffffffffffffffffffffffff1614610eab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea29061348e565b60405180910390fd5b610eb56000612723565b565b6000610ec1611bae565b73ffffffffffffffffffffffffffffffffffffffff16610edf611118565b73ffffffffffffffffffffffffffffffffffffffff1614610f35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2c9061348e565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506003600f819055506003600e819055506001905090565b610f6f611bae565b73ffffffffffffffffffffffffffffffffffffffff16610f8d611118565b73ffffffffffffffffffffffffffffffffffffffff1614610fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fda9061348e565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61106c611bae565b73ffffffffffffffffffffffffffffffffffffffff1661108a611118565b73ffffffffffffffffffffffffffffffffffffffff16146110e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d79061348e565b60405180910390fd5b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611170611bae565b73ffffffffffffffffffffffffffffffffffffffff1661118e611118565b73ffffffffffffffffffffffffffffffffffffffff16146111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111db9061348e565b60405180910390fd5b80600d60026101000a81548160ff02191690831515021790555050565b6060600480546112109061337f565b80601f016020809104026020016040519081016040528092919081815260200182805461123c9061337f565b80156112895780601f1061125e57610100808354040283529160200191611289565b820191906000526020600020905b81548152906001019060200180831161126c57829003601f168201915b5050505050905090565b61129b611bae565b73ffffffffffffffffffffffffffffffffffffffff166112b9611118565b73ffffffffffffffffffffffffffffffffffffffff161461130f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113069061348e565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361139f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139690613583565b60405180910390fd5b6113a982826127e9565b5050565b600080600160006113bc611bae565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147090613615565b60405180910390fd5b61148d611484611bae565b85858403611bb6565b600191505092915050565b60006114ac6114a5611bae565b8484611d7f565b6001905092915050565b60166020528060005260406000206000915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b6114f1611bae565b73ffffffffffffffffffffffffffffffffffffffff1661150f611118565b73ffffffffffffffffffffffffffffffffffffffff1614611565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155c9061348e565b60405180910390fd5b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b6115ce611bae565b73ffffffffffffffffffffffffffffffffffffffff166115ec611118565b73ffffffffffffffffffffffffffffffffffffffff1614611642576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116399061348e565b60405180910390fd5b61164e33600954611498565b50565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b600b5481565b600e5481565b6116f2611bae565b73ffffffffffffffffffffffffffffffffffffffff16611710611118565b73ffffffffffffffffffffffffffffffffffffffff1614611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d9061348e565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117cb816001610f67565b6117ff30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166117fa610a7a565b611bb6565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561184a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186e919061364a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f9919061364a565b6040518363ffffffff1660e01b8152600401611916929190613677565b6020604051808303816000875af1158015611935573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611959919061364a565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506119c6601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610f67565b6119f3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016127e9565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430611a3b610a7a565b600080611a46611118565b426040518863ffffffff1660e01b8152600401611a68969594939291906136db565b60606040518083038185885af1158015611a86573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611aab9190613751565b50505050565b611ab9611bae565b73ffffffffffffffffffffffffffffffffffffffff16611ad7611118565b73ffffffffffffffffffffffffffffffffffffffff1614611b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b249061348e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9390613816565b60405180910390fd5b611ba581612723565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1c906138a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8b9061393a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d7291906131a8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de5906139cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5490613a5e565b60405180910390fd5b60008111611ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9790613af0565b60405180910390fd5b600d60009054906101000a900460ff161561239b57611ebd611118565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f2b5750611efb611118565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f645750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f9e575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611fb75750600660149054906101000a900460ff16155b1561239a57600d60019054906101000a900460ff166120b157601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120715750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6120b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a790613b5c565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121545750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121fb57600a5481111561219e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219590613bee565b60405180910390fd5b600c546121aa83610de7565b826121b591906134dd565b11156121f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ed90613c5a565b60405180910390fd5b612399565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561229e5750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122ed57600a548111156122e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122df90613cec565b60405180910390fd5b612398565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661239757600c5461234a83610de7565b8261235591906134dd565b1115612396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238d90613c5a565b60405180910390fd5b5b5b5b5b5b600d60029054906101000a900460ff1680156123c45750600660149054906101000a900460ff16155b801561241a5750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124705750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124c65750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561250a576001600660146101000a81548160ff0219169083151502179055506124ee612844565b6000600660146101000a81548160ff0219169083151502179055505b6000600660149054906101000a900460ff16159050601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125c05750601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156125ca57600090505b6000811561271157601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561262d57506000600f54115b156126615761265a606461264c600f5486612a2390919063ffffffff16565b612a3990919063ffffffff16565b90506126ed565b601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126bc57506000600e54115b156126ec576126e960646126db600e5486612a2390919063ffffffff16565b612a3990919063ffffffff16565b90505b5b600081111561270257612701853083612a4f565b5b808361270e9190613d0c565b92505b61271c858585612a4f565b5050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061284f30610de7565b90506000808203612861575050612a21565b600b548210612a1e576000600b54905061287a81612cce565b600047905060006128a9606461289b60105485612a2390919063ffffffff16565b612a3990919063ffffffff16565b905060006128c08284612f1190919063ffffffff16565b9050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161290890613d71565b60006040518083038185875af1925050503d8060008114612945576040519150601f19603f3d011682016040523d82523d6000602084013e61294a565b606091505b505080955050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161299690613d71565b60006040518083038185875af1925050503d80600081146129d3576040519150601f19603f3d011682016040523d82523d6000602084013e6129d8565b606091505b5050809550507fe9f689eb4d290dd3a40869ea626055ee4a55d40f20286208d04ef55f39254cff848487604051612a1193929190613d86565b60405180910390a1505050505b50505b565b60008183612a319190613dbd565b905092915050565b60008183612a479190613e2e565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab5906139cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2490613a5e565b60405180910390fd5b612b38838383612f27565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb590613ed1565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c5191906134dd565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612cb591906131a8565b60405180910390a3612cc8848484612f2c565b50505050565b6000600267ffffffffffffffff811115612ceb57612cea613ef1565b5b604051908082528060200260200182016040528015612d195781602001602082028036833780820191505090505b5090503081600081518110612d3157612d30613f20565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dfc919061364a565b81600181518110612e1057612e0f613f20565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e7730601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bb6565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612edb95949392919061400d565b600060405180830381600087803b158015612ef557600080fd5b505af1158015612f09573d6000803e3d6000fd5b505050505050565b60008183612f1f9190613d0c565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f6b578082015181840152602081019050612f50565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f9382612f31565b612f9d8185612f3c565b9350612fad818560208601612f4d565b612fb681612f77565b840191505092915050565b60006020820190508181036000830152612fdb8184612f88565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061301382612fe8565b9050919050565b61302381613008565b811461302e57600080fd5b50565b6000813590506130408161301a565b92915050565b6000819050919050565b61305981613046565b811461306457600080fd5b50565b60008135905061307681613050565b92915050565b6000806040838503121561309357613092612fe3565b5b60006130a185828601613031565b92505060206130b285828601613067565b9150509250929050565b60008115159050919050565b6130d1816130bc565b82525050565b60006020820190506130ec60008301846130c8565b92915050565b60006020828403121561310857613107612fe3565b5b600061311684828501613031565b91505092915050565b6000819050919050565b600061314461313f61313a84612fe8565b61311f565b612fe8565b9050919050565b600061315682613129565b9050919050565b60006131688261314b565b9050919050565b6131788161315d565b82525050565b6000602082019050613193600083018461316f565b92915050565b6131a281613046565b82525050565b60006020820190506131bd6000830184613199565b92915050565b6000806000606084860312156131dc576131db612fe3565b5b60006131ea86828701613031565b93505060206131fb86828701613031565b925050604061320c86828701613067565b9150509250925092565b6000806040838503121561322d5761322c612fe3565b5b600061323b85828601613031565b925050602061324c85828601613031565b9150509250929050565b61325f81613008565b82525050565b600060208201905061327a6000830184613256565b92915050565b600060ff82169050919050565b61329681613280565b82525050565b60006020820190506132b1600083018461328d565b92915050565b6132c0816130bc565b81146132cb57600080fd5b50565b6000813590506132dd816132b7565b92915050565b600080604083850312156132fa576132f9612fe3565b5b600061330885828601613031565b9250506020613319858286016132ce565b9150509250929050565b60006020828403121561333957613338612fe3565b5b6000613347848285016132ce565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061339757607f821691505b6020821081036133aa576133a9613350565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061340c602883612f3c565b9150613417826133b0565b604082019050919050565b6000602082019050818103600083015261343b816133ff565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613478602083612f3c565b915061348382613442565b602082019050919050565b600060208201905081810360008301526134a78161346b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134e882613046565b91506134f383613046565b925082820190508082111561350b5761350a6134ae565b5b92915050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b600061356d603983612f3c565b915061357882613511565b604082019050919050565b6000602082019050818103600083015261359c81613560565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006135ff602583612f3c565b915061360a826135a3565b604082019050919050565b6000602082019050818103600083015261362e816135f2565b9050919050565b6000815190506136448161301a565b92915050565b6000602082840312156136605761365f612fe3565b5b600061366e84828501613635565b91505092915050565b600060408201905061368c6000830185613256565b6136996020830184613256565b9392505050565b6000819050919050565b60006136c56136c06136bb846136a0565b61311f565b613046565b9050919050565b6136d5816136aa565b82525050565b600060c0820190506136f06000830189613256565b6136fd6020830188613199565b61370a60408301876136cc565b61371760608301866136cc565b6137246080830185613256565b61373160a0830184613199565b979650505050505050565b60008151905061374b81613050565b92915050565b60008060006060848603121561376a57613769612fe3565b5b60006137788682870161373c565b93505060206137898682870161373c565b925050604061379a8682870161373c565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613800602683612f3c565b915061380b826137a4565b604082019050919050565b6000602082019050818103600083015261382f816137f3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613892602483612f3c565b915061389d82613836565b604082019050919050565b600060208201905081810360008301526138c181613885565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613924602283612f3c565b915061392f826138c8565b604082019050919050565b6000602082019050818103600083015261395381613917565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006139b6602583612f3c565b91506139c18261395a565b604082019050919050565b600060208201905081810360008301526139e5816139a9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a48602383612f3c565b9150613a53826139ec565b604082019050919050565b60006020820190508181036000830152613a7781613a3b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613ada602983612f3c565b9150613ae582613a7e565b604082019050919050565b60006020820190508181036000830152613b0981613acd565b9050919050565b7f54726164696e67206973206e6f7420656e61626c6564207965742e0000000000600082015250565b6000613b46601b83612f3c565b9150613b5182613b10565b602082019050919050565b60006020820190508181036000830152613b7581613b39565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613bd8603583612f3c565b9150613be382613b7c565b604082019050919050565b60006020820190508181036000830152613c0781613bcb565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613c44601383612f3c565b9150613c4f82613c0e565b602082019050919050565b60006020820190508181036000830152613c7381613c37565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613cd6603683612f3c565b9150613ce182613c7a565b604082019050919050565b60006020820190508181036000830152613d0581613cc9565b9050919050565b6000613d1782613046565b9150613d2283613046565b9250828203905081811115613d3a57613d396134ae565b5b92915050565b600081905092915050565b50565b6000613d5b600083613d40565b9150613d6682613d4b565b600082019050919050565b6000613d7c82613d4e565b9150819050919050565b6000606082019050613d9b6000830186613199565b613da86020830185613199565b613db560408301846130c8565b949350505050565b6000613dc882613046565b9150613dd383613046565b9250828202613de181613046565b91508282048414831517613df857613df76134ae565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e3982613046565b9150613e4483613046565b925082613e5457613e53613dff565b5b828204905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613ebb602683612f3c565b9150613ec682613e5f565b604082019050919050565b60006020820190508181036000830152613eea81613eae565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f8481613008565b82525050565b6000613f968383613f7b565b60208301905092915050565b6000602082019050919050565b6000613fba82613f4f565b613fc48185613f5a565b9350613fcf83613f6b565b8060005b83811015614000578151613fe78882613f8a565b9750613ff283613fa2565b925050600181019050613fd3565b5085935050505092915050565b600060a0820190506140226000830188613199565b61402f60208301876136cc565b81810360408301526140418186613faf565b90506140506060830185613256565b61405d6080830184613199565b969550505050505056fea2646970667358221220eb33e8e61db25be5178e728116e3aaf0d3bc47bd082369c75019a4466431103c64736f6c63430008110033
Deployed Bytecode Sourcemap
18450:10059:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4821:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6423:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19835:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19578:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5310:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6625:529;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23320:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19661:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19504:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5152:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19462:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7162:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19626:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19271:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23527:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19351:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5481:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1569:103;;;;;;;;;;;;;:::i;:::-;;20935:166;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21225:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18640:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20748:112;;;;;;;;;;;;;:::i;:::-;;918:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18742;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21522:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5040:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21770:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7460:475;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5837:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19905:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19311:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21630:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18882:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21109:108;;;;;;;;;;;;;:::i;:::-;;6100:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19425:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19002:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19391:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22082:1092;;;:::i;:::-;;1827:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19175:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4821:100;4875:13;4908:5;4901:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4821:100;:::o;6423:194::-;6531:4;6548:39;6557:12;:10;:12::i;:::-;6571:7;6580:6;6548:8;:39::i;:::-;6605:4;6598:11;;6423:194;;;;:::o;19835:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;19578:41::-;;;;;;;;;;;;;:::o;5310:108::-;5371:7;5398:12;;5391:19;;5310:108;:::o;6625:529::-;6765:4;6782:36;6792:6;6800:9;6811:6;6782:9;:36::i;:::-;6831:24;6858:11;:19;6870:6;6858:19;;;;;;;;;;;;;;;:33;6878:12;:10;:12::i;:::-;6858:33;;;;;;;;;;;;;;;;6831:60;;6944:6;6924:16;:26;;6902:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;7054:57;7063:6;7071:12;:10;:12::i;:::-;7104:6;7085:16;:25;7054:8;:57::i;:::-;7142:4;7135:11;;;6625:529;;;;;:::o;23320:199::-;1149:12;:10;:12::i;:::-;1138:23;;:7;:5;:7::i;:::-;:23;;;1130:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23456:10:::1;23444:9;;:22;;;;;;;;;;;;;;;;;;23495:16;23477:15;;:34;;;;;;;;;;;;;;;;;;23320:199:::0;;:::o;19661:53::-;19707:6;19661:53;:::o;19504:29::-;;;;:::o;5152:93::-;5210:5;5235:2;5228:9;;5152:93;:::o;19462:35::-;;;;:::o;7162:290::-;7275:4;7292:130;7315:12;:10;:12::i;:::-;7342:7;7401:10;7364:11;:25;7376:12;:10;:12::i;:::-;7364:25;;;;;;;;;;;;;;;:34;7390:7;7364:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;7292:8;:130::i;:::-;7440:4;7433:11;;7162:290;;;;:::o;19626:28::-;;;;;;;;;;;;;:::o;19271:33::-;;;;;;;;;;;;;:::o;23527:126::-;23593:4;23617:19;:28;23637:7;23617:28;;;;;;;;;;;;;;;;;;;;;;;;;23610:35;;23527:126;;;:::o;19351:31::-;;;;;;;;;;;;;:::o;5481:143::-;5571:7;5598:9;:18;5608:7;5598:18;;;;;;;;;;;;;;;;5591:25;;5481:143;;;:::o;1569:103::-;1149:12;:10;:12::i;:::-;1138:23;;:7;:5;:7::i;:::-;:23;;;1130:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1634:30:::1;1661:1;1634:18;:30::i;:::-;1569:103::o:0;20935:166::-;20987:4;1149:12;:10;:12::i;:::-;1138:23;;:7;:5;:7::i;:::-;:23;;;1130:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21021:5:::1;21004:14;;:22;;;;;;;;;;;;;;;;;;21048:1;21037:8;:12;;;;21070:1;21060:7;:11;;;;21089:4;21082:11;;20935:166:::0;:::o;21225:201::-;1149:12;:10;:12::i;:::-;1138:23;;:7;:5;:7::i;:::-;:23;;;1130:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21408:10:::1;21356:31;:49;21388:16;21356:49;;;;;;;;;;;;;;;;:62;;;;;;;;;;;;;;;;;;21225:201:::0;;:::o;18640:93::-;;;;;;;;;;;;;:::o;20748:112::-;1149:12;:10;:12::i;:::-;1138:23;;:7;:5;:7::i;:::-;:23;;;1130:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20819:4:::1;20803:13;;:20;;;;;;;;;;;;;;;;;;20848:4;20834:11;;:18;;;;;;;;;;;;;;;;;;20748:112::o:0;918:87::-;964:7;991:6;;;;;;;;;;;984:13;;918:87;:::o;18742:::-;;;;;;;;;;;;;:::o;21522:100::-;1149:12;:10;:12::i;:::-;1138:23;;:7;:5;:7::i;:::-;:23;;;1130:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21607:7:::1;21593:11;;:21;;;;;;;;;;;;;;;;;;21522:100:::0;:::o;5040:104::-;5096:13;5129:7;5122:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5040:104;:::o;21770:304::-;1149:12;:10;:12::i;:::-;1138:23;;:7;:5;:7::i;:::-;:23;;;1130:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21916:13:::1;;;;;;;;;;;21908:21;;:4;:21;;::::0;21886:128:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22025:41;22054:4;22060:5;22025:28;:41::i;:::-;21770:304:::0;;:::o;7460:475::-;7578:4;7595:24;7622:11;:25;7634:12;:10;:12::i;:::-;7622:25;;;;;;;;;;;;;;;:34;7648:7;7622:34;;;;;;;;;;;;;;;;7595:61;;7709:15;7689:16;:35;;7667:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;7825:67;7834:12;:10;:12::i;:::-;7848:7;7876:15;7857:16;:34;7825:8;:67::i;:::-;7923:4;7916:11;;;7460:475;;;;:::o;5837:200::-;5948:4;5965:42;5975:12;:10;:12::i;:::-;5989:9;6000:6;5965:9;:42::i;:::-;6025:4;6018:11;;5837:200;;;;:::o;19905:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;19311:33::-;;;;;;;;;;;;;:::o;21630:132::-;1149:12;:10;:12::i;:::-;1138:23;;:7;:5;:7::i;:::-;:23;;;1130:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21746:8:::1;21715:19;:28;21735:7;21715:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;21630:132:::0;;:::o;18882:64::-;;;;:::o;21109:108::-;1149:12;:10;:12::i;:::-;1138:23;;:7;:5;:7::i;:::-;:23;;;1130:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21175:34:::1;21184:10;21196:12;;21175:8;:34::i;:::-;;21109:108::o:0;6100:176::-;6214:7;6241:11;:18;6253:5;6241:18;;;;;;;;;;;;;;;:27;6260:7;6241:27;;;;;;;;;;;;;;;;6234:34;;6100:176;;;;:::o;19425:28::-;;;;:::o;19002:63::-;;;;:::o;19391:27::-;;;;:::o;22082:1092::-;1149:12;:10;:12::i;:::-;1138:23;;:7;:5;:7::i;:::-;:23;;;1130:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22211:35:::1;22282:42;22211:124;;22366:16;22348:15;;:34;;;;;;;;;;;;;;;;;;22393:58;22427:16;22446:4;22393:25;:58::i;:::-;22462:64;22479:4;22494:15;;;;;;;;;;;22512:13;:11;:13::i;:::-;22462:8;:64::i;:::-;22601:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22583:70;;;22662:4;22669:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22583:110;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22567:13;;:126;;;;;;;;;;;;;;;;;;22704:55;22738:13;;;;;;;;;;;22754:4;22704:25;:55::i;:::-;22770:58;22807:13;;;;;;;;;;;22823:4;22770:28;:58::i;:::-;22841:15;;;;;;;;;;;:31;;;22880:9;22913:4;22949:13;:11;:13::i;:::-;22997:1;23040::::0;23083:7:::1;:5;:7::i;:::-;23140:15;22841:325;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22133:1041;22082:1092::o:0;1827:238::-;1149:12;:10;:12::i;:::-;1138:23;;:7;:5;:7::i;:::-;:23;;;1130:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1950:1:::1;1930:22;;:8;:22;;::::0;1908:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2029:28;2048:8;2029:18;:28::i;:::-;1827:238:::0;:::o;19175:53::-;;;;:::o;239:98::-;292:7;319:10;312:17;;239:98;:::o;9727:380::-;9880:1;9863:19;;:5;:19;;;9855:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9961:1;9942:21;;:7;:21;;;9934:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10045:6;10015:11;:18;10027:5;10015:18;;;;;;;;;;;;;;;:27;10034:7;10015:27;;;;;;;;;;;;;;;:36;;;;10083:7;10067:32;;10076:5;10067:32;;;10092:6;10067:32;;;;;;:::i;:::-;;;;;;;;9727:380;;;:::o;23661:3339::-;23809:1;23793:18;;:4;:18;;;23785:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23886:1;23872:16;;:2;:16;;;23864:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23956:1;23947:6;:10;23939:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;24018:14;;;;;;;;;;;24014:1699;;;24079:7;:5;:7::i;:::-;24071:15;;:4;:15;;;;:49;;;;;24113:7;:5;:7::i;:::-;24107:13;;:2;:13;;;;24071:49;:86;;;;;24155:1;24141:16;;:2;:16;;;;24071:86;:128;;;;;24192:6;24178:21;;:2;:21;;;;24071:128;:158;;;;;24221:8;;;;;;;;;;;24220:9;24071:158;24049:1653;;;24269:13;;;;;;;;;;;24264:228;;24341:19;:25;24361:4;24341:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;24370:19;:23;24390:2;24370:23;;;;;;;;;;;;;;;;;;;;;;;;;24341:52;24307:165;;;;;;;;;;;;:::i;:::-;;;;;;;;;24264:228;24566:25;:31;24592:4;24566:31;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;24623:31;:35;24655:2;24623:35;;;;;;;;;;;;;;;;;;;;;;;;;24622:36;24566:92;24540:1147;;;24745:20;;24735:6;:30;;24701:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;24953:9;;24936:13;24946:2;24936:9;:13::i;:::-;24927:6;:22;;;;:::i;:::-;:35;;24893:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;24540:1147;;;25131:25;:29;25157:2;25131:29;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;25186:31;:37;25218:4;25186:37;;;;;;;;;;;;;;;;;;;;;;;;;25185:38;25131:92;25105:582;;;25310:20;;25300:6;:30;;25266:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;25105:582;;;25467:31;:35;25499:2;25467:35;;;;;;;;;;;;;;;;;;;;;;;;;25462:225;;25587:9;;25570:13;25580:2;25570:9;:13::i;:::-;25561:6;:22;;;;:::i;:::-;:35;;25527:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;25462:225;25105:582;24540:1147;24049:1653;24014:1699;25743:11;;;;;;;;;;;:55;;;;;25790:8;;;;;;;;;;;25789:9;25743:55;:123;;;;;25835:25;:31;25861:4;25835:31;;;;;;;;;;;;;;;;;;;;;;;;;25834:32;25743:123;:185;;;;;25903:19;:25;25923:4;25903:25;;;;;;;;;;;;;;;;;;;;;;;;;25902:26;25743:185;:245;;;;;25965:19;:23;25985:2;25965:23;;;;;;;;;;;;;;;;;;;;;;;;;25964:24;25743:245;25725:392;;;26045:4;26034:8;;:15;;;;;;;;;;;;;;;;;;26064:10;:8;:10::i;:::-;26100:5;26089:8;;:16;;;;;;;;;;;;;;;;;;25725:392;26129:12;26145:8;;;;;;;;;;;26144:9;26129:24;;26255:19;:25;26275:4;26255:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;26284:19;:23;26304:2;26284:23;;;;;;;;;;;;;;;;;;;;;;;;;26255:52;26251:100;;;26334:5;26324:15;;26251:100;26363:12;26468:7;26464:485;;;26520:25;:29;26546:2;26520:29;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;26564:1;26553:8;;:12;26520:45;26516:286;;;26593:29;26618:3;26593:20;26604:8;;26593:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;26586:36;;26516:286;;;26684:25;:31;26710:4;26684:31;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;26729:1;26719:7;;:11;26684:46;26680:122;;;26758:28;26782:3;26758:19;26769:7;;26758:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;26751:35;;26680:122;26516:286;26829:1;26822:4;:8;26818:91;;;26851:42;26867:4;26881;26888;26851:15;:42::i;:::-;26818:91;26933:4;26923:14;;;;;:::i;:::-;;;26464:485;26959:33;26975:4;26981:2;26985:6;26959:15;:33::i;:::-;23774:3226;;23661:3339;;;:::o;2225:191::-;2299:16;2318:6;;;;;;;;;;;2299:25;;2344:8;2335:6;;:17;;;;;;;;;;;;;;;;;;2399:8;2368:40;;2389:8;2368:40;;;;;;;;;;;;2288:128;2225:191;:::o;23182:130::-;23299:5;23265:25;:31;23291:4;23265:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;23182:130;;:::o;27601:905::-;27640:23;27666:24;27684:4;27666:9;:24::i;:::-;27640:50;;27701:12;27747:1;27728:15;:20;27724:59;;27765:7;;;;27724:59;27816:18;;27797:15;:37;27793:706;;27851:26;27880:18;;27851:47;;27913:36;27930:18;27913:16;:36::i;:::-;27964:23;27990:21;27964:47;;28026:25;28054:81;28131:3;28054:54;28092:15;;28054;:37;;:54;;;;:::i;:::-;:76;;:81;;;;:::i;:::-;28026:109;;28150:19;28172:38;28192:17;28172:15;:19;;:38;;;;:::i;:::-;28150:60;;28247:15;;;;;;;;;;;28239:29;;28294:17;28239:91;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28225:105;;;;;28367:9;;;;;;;;;;;28359:23;;28390:11;28359:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28345:61;;;;;28426;28442:18;28462:15;28479:7;28426:61;;;;;;;;:::i;:::-;;;;;;;;27836:663;;;;27793:706;27629:877;;27601:905;:::o;12089:98::-;12147:7;12178:1;12174;:5;;;;:::i;:::-;12167:12;;12089:98;;;;:::o;12195:::-;12253:7;12284:1;12280;:5;;;;:::i;:::-;12273:12;;12195:98;;;;:::o;7943:770::-;8101:1;8083:20;;:6;:20;;;8075:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8185:1;8164:23;;:9;:23;;;8156:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8240:47;8261:6;8269:9;8280:6;8240:20;:47::i;:::-;8300:21;8324:9;:17;8334:6;8324:17;;;;;;;;;;;;;;;;8300:41;;8391:6;8374:13;:23;;8352:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;8535:6;8519:13;:22;8499:9;:17;8509:6;8499:17;;;;;;;;;;;;;;;:42;;;;8587:6;8563:9;:20;8573:9;8563:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8628:9;8611:35;;8620:6;8611:35;;;8639:6;8611:35;;;;;;:::i;:::-;;;;;;;;8659:46;8679:6;8687:9;8698:6;8659:19;:46::i;:::-;8064:649;7943:770;;;:::o;27008:585::-;27134:21;27172:1;27158:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27134:40;;27203:4;27185;27190:1;27185:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;27229:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27219:4;27224:1;27219:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;27262:62;27279:4;27294:15;;;;;;;;;;;27312:11;27262:8;:62::i;:::-;27361:15;;;;;;;;;;;:66;;;27442:11;27468:1;27512:4;27539;27559:15;27361:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27063:530;27008:585;:::o;11983:98::-;12041:7;12072:1;12068;:5;;;;:::i;:::-;12061:12;;11983:98;;;;:::o;10115:125::-;;;;:::o;10248:124::-;;;;:::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:474::-;5804:6;5812;5861:2;5849:9;5840:7;5836:23;5832:32;5829:119;;;5867:79;;:::i;:::-;5829:119;5987:1;6012:53;6057:7;6048:6;6037:9;6033:22;6012:53;:::i;:::-;6002:63;;5958:117;6114:2;6140:53;6185:7;6176:6;6165:9;6161:22;6140:53;:::i;:::-;6130:63;;6085:118;5736:474;;;;;:::o;6216:118::-;6303:24;6321:5;6303:24;:::i;:::-;6298:3;6291:37;6216:118;;:::o;6340:222::-;6433:4;6471:2;6460:9;6456:18;6448:26;;6484:71;6552:1;6541:9;6537:17;6528:6;6484:71;:::i;:::-;6340:222;;;;:::o;6568:86::-;6603:7;6643:4;6636:5;6632:16;6621:27;;6568:86;;;:::o;6660:112::-;6743:22;6759:5;6743:22;:::i;:::-;6738:3;6731:35;6660:112;;:::o;6778:214::-;6867:4;6905:2;6894:9;6890:18;6882:26;;6918:67;6982:1;6971:9;6967:17;6958:6;6918:67;:::i;:::-;6778:214;;;;:::o;6998:116::-;7068:21;7083:5;7068:21;:::i;:::-;7061:5;7058:32;7048:60;;7104:1;7101;7094:12;7048:60;6998:116;:::o;7120:133::-;7163:5;7201:6;7188:20;7179:29;;7217:30;7241:5;7217:30;:::i;:::-;7120:133;;;;:::o;7259:468::-;7324:6;7332;7381:2;7369:9;7360:7;7356:23;7352:32;7349:119;;;7387:79;;:::i;:::-;7349:119;7507:1;7532:53;7577:7;7568:6;7557:9;7553:22;7532:53;:::i;:::-;7522:63;;7478:117;7634:2;7660:50;7702:7;7693:6;7682:9;7678:22;7660:50;:::i;:::-;7650:60;;7605:115;7259:468;;;;;:::o;7733:323::-;7789:6;7838:2;7826:9;7817:7;7813:23;7809:32;7806:119;;;7844:79;;:::i;:::-;7806:119;7964:1;7989:50;8031:7;8022:6;8011:9;8007:22;7989:50;:::i;:::-;7979:60;;7935:114;7733:323;;;;:::o;8062:180::-;8110:77;8107:1;8100:88;8207:4;8204:1;8197:15;8231:4;8228:1;8221:15;8248:320;8292:6;8329:1;8323:4;8319:12;8309:22;;8376:1;8370:4;8366:12;8397:18;8387:81;;8453:4;8445:6;8441:17;8431:27;;8387:81;8515:2;8507:6;8504:14;8484:18;8481:38;8478:84;;8534:18;;:::i;:::-;8478:84;8299:269;8248:320;;;:::o;8574:227::-;8714:34;8710:1;8702:6;8698:14;8691:58;8783:10;8778:2;8770:6;8766:15;8759:35;8574:227;:::o;8807:366::-;8949:3;8970:67;9034:2;9029:3;8970:67;:::i;:::-;8963:74;;9046:93;9135:3;9046:93;:::i;:::-;9164:2;9159:3;9155:12;9148:19;;8807:366;;;:::o;9179:419::-;9345:4;9383:2;9372:9;9368:18;9360:26;;9432:9;9426:4;9422:20;9418:1;9407:9;9403:17;9396:47;9460:131;9586:4;9460:131;:::i;:::-;9452:139;;9179:419;;;:::o;9604:182::-;9744:34;9740:1;9732:6;9728:14;9721:58;9604:182;:::o;9792:366::-;9934:3;9955:67;10019:2;10014:3;9955:67;:::i;:::-;9948:74;;10031:93;10120:3;10031:93;:::i;:::-;10149:2;10144:3;10140:12;10133:19;;9792:366;;;:::o;10164:419::-;10330:4;10368:2;10357:9;10353:18;10345:26;;10417:9;10411:4;10407:20;10403:1;10392:9;10388:17;10381:47;10445:131;10571:4;10445:131;:::i;:::-;10437:139;;10164:419;;;:::o;10589:180::-;10637:77;10634:1;10627:88;10734:4;10731:1;10724:15;10758:4;10755:1;10748:15;10775:191;10815:3;10834:20;10852:1;10834:20;:::i;:::-;10829:25;;10868:20;10886:1;10868:20;:::i;:::-;10863:25;;10911:1;10908;10904:9;10897:16;;10932:3;10929:1;10926:10;10923:36;;;10939:18;;:::i;:::-;10923:36;10775:191;;;;:::o;10972:244::-;11112:34;11108:1;11100:6;11096:14;11089:58;11181:27;11176:2;11168:6;11164:15;11157:52;10972:244;:::o;11222:366::-;11364:3;11385:67;11449:2;11444:3;11385:67;:::i;:::-;11378:74;;11461:93;11550:3;11461:93;:::i;:::-;11579:2;11574:3;11570:12;11563:19;;11222:366;;;:::o;11594:419::-;11760:4;11798:2;11787:9;11783:18;11775:26;;11847:9;11841:4;11837:20;11833:1;11822:9;11818:17;11811:47;11875:131;12001:4;11875:131;:::i;:::-;11867:139;;11594:419;;;:::o;12019:224::-;12159:34;12155:1;12147:6;12143:14;12136:58;12228:7;12223:2;12215:6;12211:15;12204:32;12019:224;:::o;12249:366::-;12391:3;12412:67;12476:2;12471:3;12412:67;:::i;:::-;12405:74;;12488:93;12577:3;12488:93;:::i;:::-;12606:2;12601:3;12597:12;12590:19;;12249:366;;;:::o;12621:419::-;12787:4;12825:2;12814:9;12810:18;12802:26;;12874:9;12868:4;12864:20;12860:1;12849:9;12845:17;12838:47;12902:131;13028:4;12902:131;:::i;:::-;12894:139;;12621:419;;;:::o;13046:143::-;13103:5;13134:6;13128:13;13119:22;;13150:33;13177:5;13150:33;:::i;:::-;13046:143;;;;:::o;13195:351::-;13265:6;13314:2;13302:9;13293:7;13289:23;13285:32;13282:119;;;13320:79;;:::i;:::-;13282:119;13440:1;13465:64;13521:7;13512:6;13501:9;13497:22;13465:64;:::i;:::-;13455:74;;13411:128;13195:351;;;;:::o;13552:332::-;13673:4;13711:2;13700:9;13696:18;13688:26;;13724:71;13792:1;13781:9;13777:17;13768:6;13724:71;:::i;:::-;13805:72;13873:2;13862:9;13858:18;13849:6;13805:72;:::i;:::-;13552:332;;;;;:::o;13890:85::-;13935:7;13964:5;13953:16;;13890:85;;;:::o;13981:158::-;14039:9;14072:61;14090:42;14099:32;14125:5;14099:32;:::i;:::-;14090:42;:::i;:::-;14072:61;:::i;:::-;14059:74;;13981:158;;;:::o;14145:147::-;14240:45;14279:5;14240:45;:::i;:::-;14235:3;14228:58;14145:147;;:::o;14298:807::-;14547:4;14585:3;14574:9;14570:19;14562:27;;14599:71;14667:1;14656:9;14652:17;14643:6;14599:71;:::i;:::-;14680:72;14748:2;14737:9;14733:18;14724:6;14680:72;:::i;:::-;14762:80;14838:2;14827:9;14823:18;14814:6;14762:80;:::i;:::-;14852;14928:2;14917:9;14913:18;14904:6;14852:80;:::i;:::-;14942:73;15010:3;14999:9;14995:19;14986:6;14942:73;:::i;:::-;15025;15093:3;15082:9;15078:19;15069:6;15025:73;:::i;:::-;14298:807;;;;;;;;;:::o;15111:143::-;15168:5;15199:6;15193:13;15184:22;;15215:33;15242:5;15215:33;:::i;:::-;15111:143;;;;:::o;15260:663::-;15348:6;15356;15364;15413:2;15401:9;15392:7;15388:23;15384:32;15381:119;;;15419:79;;:::i;:::-;15381:119;15539:1;15564:64;15620:7;15611:6;15600:9;15596:22;15564:64;:::i;:::-;15554:74;;15510:128;15677:2;15703:64;15759:7;15750:6;15739:9;15735:22;15703:64;:::i;:::-;15693:74;;15648:129;15816:2;15842:64;15898:7;15889:6;15878:9;15874:22;15842:64;:::i;:::-;15832:74;;15787:129;15260:663;;;;;:::o;15929:225::-;16069:34;16065:1;16057:6;16053:14;16046:58;16138:8;16133:2;16125:6;16121:15;16114:33;15929:225;:::o;16160:366::-;16302:3;16323:67;16387:2;16382:3;16323:67;:::i;:::-;16316:74;;16399:93;16488:3;16399:93;:::i;:::-;16517:2;16512:3;16508:12;16501:19;;16160:366;;;:::o;16532:419::-;16698:4;16736:2;16725:9;16721:18;16713:26;;16785:9;16779:4;16775:20;16771:1;16760:9;16756:17;16749:47;16813:131;16939:4;16813:131;:::i;:::-;16805:139;;16532:419;;;:::o;16957:223::-;17097:34;17093:1;17085:6;17081:14;17074:58;17166:6;17161:2;17153:6;17149:15;17142:31;16957:223;:::o;17186:366::-;17328:3;17349:67;17413:2;17408:3;17349:67;:::i;:::-;17342:74;;17425:93;17514:3;17425:93;:::i;:::-;17543:2;17538:3;17534:12;17527:19;;17186:366;;;:::o;17558:419::-;17724:4;17762:2;17751:9;17747:18;17739:26;;17811:9;17805:4;17801:20;17797:1;17786:9;17782:17;17775:47;17839:131;17965:4;17839:131;:::i;:::-;17831:139;;17558:419;;;:::o;17983:221::-;18123:34;18119:1;18111:6;18107:14;18100:58;18192:4;18187:2;18179:6;18175:15;18168:29;17983:221;:::o;18210:366::-;18352:3;18373:67;18437:2;18432:3;18373:67;:::i;:::-;18366:74;;18449:93;18538:3;18449:93;:::i;:::-;18567:2;18562:3;18558:12;18551:19;;18210:366;;;:::o;18582:419::-;18748:4;18786:2;18775:9;18771:18;18763:26;;18835:9;18829:4;18825:20;18821:1;18810:9;18806:17;18799:47;18863:131;18989:4;18863:131;:::i;:::-;18855:139;;18582:419;;;:::o;19007:224::-;19147:34;19143:1;19135:6;19131:14;19124:58;19216:7;19211:2;19203:6;19199:15;19192:32;19007:224;:::o;19237:366::-;19379:3;19400:67;19464:2;19459:3;19400:67;:::i;:::-;19393:74;;19476:93;19565:3;19476:93;:::i;:::-;19594:2;19589:3;19585:12;19578:19;;19237:366;;;:::o;19609:419::-;19775:4;19813:2;19802:9;19798:18;19790:26;;19862:9;19856:4;19852:20;19848:1;19837:9;19833:17;19826:47;19890:131;20016:4;19890:131;:::i;:::-;19882:139;;19609:419;;;:::o;20034:222::-;20174:34;20170:1;20162:6;20158:14;20151:58;20243:5;20238:2;20230:6;20226:15;20219:30;20034:222;:::o;20262:366::-;20404:3;20425:67;20489:2;20484:3;20425:67;:::i;:::-;20418:74;;20501:93;20590:3;20501:93;:::i;:::-;20619:2;20614:3;20610:12;20603:19;;20262:366;;;:::o;20634:419::-;20800:4;20838:2;20827:9;20823:18;20815:26;;20887:9;20881:4;20877:20;20873:1;20862:9;20858:17;20851:47;20915:131;21041:4;20915:131;:::i;:::-;20907:139;;20634:419;;;:::o;21059:228::-;21199:34;21195:1;21187:6;21183:14;21176:58;21268:11;21263:2;21255:6;21251:15;21244:36;21059:228;:::o;21293:366::-;21435:3;21456:67;21520:2;21515:3;21456:67;:::i;:::-;21449:74;;21532:93;21621:3;21532:93;:::i;:::-;21650:2;21645:3;21641:12;21634:19;;21293:366;;;:::o;21665:419::-;21831:4;21869:2;21858:9;21854:18;21846:26;;21918:9;21912:4;21908:20;21904:1;21893:9;21889:17;21882:47;21946:131;22072:4;21946:131;:::i;:::-;21938:139;;21665:419;;;:::o;22090:177::-;22230:29;22226:1;22218:6;22214:14;22207:53;22090:177;:::o;22273:366::-;22415:3;22436:67;22500:2;22495:3;22436:67;:::i;:::-;22429:74;;22512:93;22601:3;22512:93;:::i;:::-;22630:2;22625:3;22621:12;22614:19;;22273:366;;;:::o;22645:419::-;22811:4;22849:2;22838:9;22834:18;22826:26;;22898:9;22892:4;22888:20;22884:1;22873:9;22869:17;22862:47;22926:131;23052:4;22926:131;:::i;:::-;22918:139;;22645:419;;;:::o;23070:240::-;23210:34;23206:1;23198:6;23194:14;23187:58;23279:23;23274:2;23266:6;23262:15;23255:48;23070:240;:::o;23316:366::-;23458:3;23479:67;23543:2;23538:3;23479:67;:::i;:::-;23472:74;;23555:93;23644:3;23555:93;:::i;:::-;23673:2;23668:3;23664:12;23657:19;;23316:366;;;:::o;23688:419::-;23854:4;23892:2;23881:9;23877:18;23869:26;;23941:9;23935:4;23931:20;23927:1;23916:9;23912:17;23905:47;23969:131;24095:4;23969:131;:::i;:::-;23961:139;;23688:419;;;:::o;24113:169::-;24253:21;24249:1;24241:6;24237:14;24230:45;24113:169;:::o;24288:366::-;24430:3;24451:67;24515:2;24510:3;24451:67;:::i;:::-;24444:74;;24527:93;24616:3;24527:93;:::i;:::-;24645:2;24640:3;24636:12;24629:19;;24288:366;;;:::o;24660:419::-;24826:4;24864:2;24853:9;24849:18;24841:26;;24913:9;24907:4;24903:20;24899:1;24888:9;24884:17;24877:47;24941:131;25067:4;24941:131;:::i;:::-;24933:139;;24660:419;;;:::o;25085:241::-;25225:34;25221:1;25213:6;25209:14;25202:58;25294:24;25289:2;25281:6;25277:15;25270:49;25085:241;:::o;25332:366::-;25474:3;25495:67;25559:2;25554:3;25495:67;:::i;:::-;25488:74;;25571:93;25660:3;25571:93;:::i;:::-;25689:2;25684:3;25680:12;25673:19;;25332:366;;;:::o;25704:419::-;25870:4;25908:2;25897:9;25893:18;25885:26;;25957:9;25951:4;25947:20;25943:1;25932:9;25928:17;25921:47;25985:131;26111:4;25985:131;:::i;:::-;25977:139;;25704:419;;;:::o;26129:194::-;26169:4;26189:20;26207:1;26189:20;:::i;:::-;26184:25;;26223:20;26241:1;26223:20;:::i;:::-;26218:25;;26267:1;26264;26260:9;26252:17;;26291:1;26285:4;26282:11;26279:37;;;26296:18;;:::i;:::-;26279:37;26129:194;;;;:::o;26329:147::-;26430:11;26467:3;26452:18;;26329:147;;;;:::o;26482:114::-;;:::o;26602:398::-;26761:3;26782:83;26863:1;26858:3;26782:83;:::i;:::-;26775:90;;26874:93;26963:3;26874:93;:::i;:::-;26992:1;26987:3;26983:11;26976:18;;26602:398;;;:::o;27006:379::-;27190:3;27212:147;27355:3;27212:147;:::i;:::-;27205:154;;27376:3;27369:10;;27006:379;;;:::o;27391:430::-;27534:4;27572:2;27561:9;27557:18;27549:26;;27585:71;27653:1;27642:9;27638:17;27629:6;27585:71;:::i;:::-;27666:72;27734:2;27723:9;27719:18;27710:6;27666:72;:::i;:::-;27748:66;27810:2;27799:9;27795:18;27786:6;27748:66;:::i;:::-;27391:430;;;;;;:::o;27827:410::-;27867:7;27890:20;27908:1;27890:20;:::i;:::-;27885:25;;27924:20;27942:1;27924:20;:::i;:::-;27919:25;;27979:1;27976;27972:9;28001:30;28019:11;28001:30;:::i;:::-;27990:41;;28180:1;28171:7;28167:15;28164:1;28161:22;28141:1;28134:9;28114:83;28091:139;;28210:18;;:::i;:::-;28091:139;27875:362;27827:410;;;;:::o;28243:180::-;28291:77;28288:1;28281:88;28388:4;28385:1;28378:15;28412:4;28409:1;28402:15;28429:185;28469:1;28486:20;28504:1;28486:20;:::i;:::-;28481:25;;28520:20;28538:1;28520:20;:::i;:::-;28515:25;;28559:1;28549:35;;28564:18;;:::i;:::-;28549:35;28606:1;28603;28599:9;28594:14;;28429:185;;;;:::o;28620:225::-;28760:34;28756:1;28748:6;28744:14;28737:58;28829:8;28824:2;28816:6;28812:15;28805:33;28620:225;:::o;28851:366::-;28993:3;29014:67;29078:2;29073:3;29014:67;:::i;:::-;29007:74;;29090:93;29179:3;29090:93;:::i;:::-;29208:2;29203:3;29199:12;29192:19;;28851:366;;;:::o;29223:419::-;29389:4;29427:2;29416:9;29412:18;29404:26;;29476:9;29470:4;29466:20;29462:1;29451:9;29447:17;29440:47;29504:131;29630:4;29504:131;:::i;:::-;29496:139;;29223:419;;;:::o;29648:180::-;29696:77;29693:1;29686:88;29793:4;29790:1;29783:15;29817:4;29814:1;29807:15;29834:180;29882:77;29879:1;29872:88;29979:4;29976:1;29969:15;30003:4;30000:1;29993:15;30020:114;30087:6;30121:5;30115:12;30105:22;;30020:114;;;:::o;30140:184::-;30239:11;30273:6;30268:3;30261:19;30313:4;30308:3;30304:14;30289:29;;30140:184;;;;:::o;30330:132::-;30397:4;30420:3;30412:11;;30450:4;30445:3;30441:14;30433:22;;30330:132;;;:::o;30468:108::-;30545:24;30563:5;30545:24;:::i;:::-;30540:3;30533:37;30468:108;;:::o;30582:179::-;30651:10;30672:46;30714:3;30706:6;30672:46;:::i;:::-;30750:4;30745:3;30741:14;30727:28;;30582:179;;;;:::o;30767:113::-;30837:4;30869;30864:3;30860:14;30852:22;;30767:113;;;:::o;30916:732::-;31035:3;31064:54;31112:5;31064:54;:::i;:::-;31134:86;31213:6;31208:3;31134:86;:::i;:::-;31127:93;;31244:56;31294:5;31244:56;:::i;:::-;31323:7;31354:1;31339:284;31364:6;31361:1;31358:13;31339:284;;;31440:6;31434:13;31467:63;31526:3;31511:13;31467:63;:::i;:::-;31460:70;;31553:60;31606:6;31553:60;:::i;:::-;31543:70;;31399:224;31386:1;31383;31379:9;31374:14;;31339:284;;;31343:14;31639:3;31632:10;;31040:608;;;30916:732;;;;:::o;31654:831::-;31917:4;31955:3;31944:9;31940:19;31932:27;;31969:71;32037:1;32026:9;32022:17;32013:6;31969:71;:::i;:::-;32050:80;32126:2;32115:9;32111:18;32102:6;32050:80;:::i;:::-;32177:9;32171:4;32167:20;32162:2;32151:9;32147:18;32140:48;32205:108;32308:4;32299:6;32205:108;:::i;:::-;32197:116;;32323:72;32391:2;32380:9;32376:18;32367:6;32323:72;:::i;:::-;32405:73;32473:3;32462:9;32458:19;32449:6;32405:73;:::i;:::-;31654:831;;;;;;;;:::o
Swarm Source
ipfs://eb33e8e61db25be5178e728116e3aaf0d3bc47bd082369c75019a4466431103c
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.