ERC-20
Overview
Max Total Supply
100,000,000 $imple
Holders
67
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Simple
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-13 */ pragma solidity ^0.8.17; // SPDX-License-Identifier: Unlicensed interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } 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); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { // 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 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } abstract contract Context { //function _msgSender() internal view virtual returns (address payable) { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly {codehash := extcodehash(account)} return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success,) = recipient.call{value : amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{value : weiValue}(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ 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; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 9; } /** * @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: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; } _balances[to] += amount; emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ 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); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _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); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address token0, address token1) external view returns (address); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH(address token,uint amountTokenDesired,uint amountTokenMin,uint amountETHMin,address to,uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); } contract Simple is ERC20, Ownable { using SafeMath for uint256; using Address for address; modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } IUniswapV2Router02 public uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address public marketPair; mapping(address => bool) private _isExcludedFromFee; uint256 private _totalSupply = 100_000_000 * 10 ** 9; uint256 public _maxWalletAmount = 1_500_000 * 10 ** 9; uint256 public buyFee = 98; uint256 public sellFee = 98; bool inSwapAndLiquify; uint256 public ethPriceToSwap = 100000000000000000; address private team = 0xF8114634fcd2F2947EE1B8c3E88ad34e5f3c8d6A; address public deployer; bool private tradingOpen = false; constructor() ERC20("Simple", "$imple") { _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; deployer = owner(); _mint(msg.sender, _totalSupply); } 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"); uint256 taxAmount = 0; bool takeFees = !_isExcludedFromFee[from] && !_isExcludedFromFee[to] && from != owner() && to != owner(); if(from != owner() && to != owner()) { if(takeFees) { taxAmount = amount.mul(buyFee).div(100); if (from != marketPair && to == marketPair) { taxAmount = amount.mul(sellFee).div(100); uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance > 0) { uint256 tokenAmount = getTokenPrice(); if (contractTokenBalance >= tokenAmount && !inSwapAndLiquify) { swapTokensForEth(tokenAmount); } } } } uint256 amountToHolder = amount.sub(taxAmount); uint256 holderBalance = balanceOf(to).add(amountToHolder); if (from == marketPair) { require(holderBalance <= _maxWalletAmount, "Wallet cannot exceed max Wallet limit"); } if (from != marketPair && to != marketPair) { require(holderBalance <= _maxWalletAmount, "Wallet cannot exceed max Wallet limit"); } if(taxAmount > 0) { super._transfer(from, address(this), taxAmount); } super._transfer(from, to, amountToHolder); } else { super._transfer(from, to, amount); } } function manualSwap() external { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance > 0) { if (!inSwapAndLiquify) { swapTokensForEth(contractTokenBalance); } } } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); uint256 balance = address(this).balance; payable(team).transfer(balance); } function getTokenPrice() public view returns (uint256) { address[] memory path = new address[](2); path[0] = uniswapV2Router.WETH(); path[1] = address(this); return uniswapV2Router.getAmountsOut(ethPriceToSwap, path)[1]; } function excludeIncludeFromFee(address[] calldata addresses, bool isExcludeFromFee) public onlyOwner { addRemoveFee(addresses, isExcludeFromFee); } function setWalletAddress(address team_) external onlyOwner { team = team_; } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); marketPair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); tradingOpen = true; } function airDrops(address[] calldata holders, uint256[] calldata amounts) external onlyOwner { uint256 iterator = 0; require(holders.length == amounts.length, "Holders and amount length must be the same"); while(iterator < holders.length){ _transfer(msg.sender, holders[iterator], amounts[iterator]); iterator += 1; } } function addRemoveFee(address[] calldata addresses, bool flag) private { for (uint256 i = 0; i < addresses.length; i++) { address addr = addresses[i]; _isExcludedFromFee[addr] = flag; } } function setEthPriceToSwap(uint256 ethPriceToSwap_) external onlyOwner { ethPriceToSwap = ethPriceToSwap_; } function setFees(uint256 buy, uint256 sell) external onlyOwner { buyFee = buy; sellFee = sell; } function setMaxWalletAmount(uint256 maxWalletAmount) external onlyOwner { _maxWalletAmount = maxWalletAmount * 10 ** 9; } receive() external payable {} function recoverEthInContract() external { uint256 ethBalance = address(this).balance; payable(deployer).transfer(ethBalance); } function recoverERC20Tokens(address contractAddress) external { IERC20 erc20Token = IERC20(contractAddress); uint256 balance = erc20Token.balanceOf(address(this)); erc20Token.transfer(deployer, balance); } }
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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"holders","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airDrops","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"deployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ethPriceToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"isExcludeFromFee","type":"bool"}],"name":"excludeIncludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTokenPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"}],"name":"recoverERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverEthInContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ethPriceToSwap_","type":"uint256"}],"name":"setEthPriceToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"team_","type":"address"}],"name":"setWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555067016345785d8a00006009556605543df729c000600a556062600b556062600c5567016345785d8a0000600e5573f8114634fcd2f2947ee1b8c3e88ad34e5f3c8d6a600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060146101000a81548160ff0219169083151502179055503480156200010357600080fd5b506040518060400160405280600681526020017f53696d706c6500000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f24696d706c65000000000000000000000000000000000000000000000000000081525081600390816200018191906200079e565b5080600490816200019391906200079e565b5050506000620001a86200037060201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506001600860006200025d6200037860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003166200037860201b60201c565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200036a33600954620003a260201b60201c565b620009a0565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000414576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200040b90620008e6565b60405180910390fd5b62000428600083836200051a60201b60201c565b80600260008282546200043c919062000937565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000493919062000937565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004fa919062000983565b60405180910390a362000516600083836200051f60201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005a657607f821691505b602082108103620005bc57620005bb6200055e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006267fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005e7565b620006328683620005e7565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200067f6200067962000673846200064a565b62000654565b6200064a565b9050919050565b6000819050919050565b6200069b836200065e565b620006b3620006aa8262000686565b848454620005f4565b825550505050565b600090565b620006ca620006bb565b620006d781848462000690565b505050565b5b81811015620006ff57620006f3600082620006c0565b600181019050620006dd565b5050565b601f8211156200074e576200071881620005c2565b6200072384620005d7565b8101602085101562000733578190505b6200074b6200074285620005d7565b830182620006dc565b50505b505050565b600082821c905092915050565b6000620007736000198460080262000753565b1980831691505092915050565b60006200078e838362000760565b9150826002028217905092915050565b620007a98262000524565b67ffffffffffffffff811115620007c557620007c46200052f565b5b620007d182546200058d565b620007de82828562000703565b600060209050601f83116001811462000816576000841562000801578287015190505b6200080d858262000780565b8655506200087d565b601f1984166200082686620005c2565b60005b82811015620008505784890151825560018201915060208501945060208101905062000829565b868310156200087057848901516200086c601f89168262000760565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620008ce601f8362000885565b9150620008db8262000896565b602082019050919050565b600060208201905081810360008301526200090181620008bf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000944826200064a565b915062000951836200064a565b92508282019050808211156200096c576200096b62000908565b5b92915050565b6200097d816200064a565b82525050565b60006020820190506200099a600083018462000972565b92915050565b613ef280620009b06000396000f3fe6080604052600436106101e75760003560e01c80636c0a24eb11610102578063ac1a386a11610095578063dcda6af311610064578063dcda6af3146106cb578063dd62ed3e146106f4578063e9ac0e5914610731578063f2fde38b14610748576101ee565b8063ac1a386a14610637578063b2abbbc414610660578063c9567bf914610689578063d5f39488146106a0576101ee565b80638da5cb5b116100d15780638da5cb5b1461056757806395d89b4114610592578063a457c2d7146105bd578063a9059cbb146105fa576101ee565b80636c0a24eb146104bf57806370a08231146104ea578063715018a61461052757806384afff9b1461053e576101ee565b8063313ce5671161017a5780634b94f50e116101495780634b94f50e1461042757806350faa48f1461045257806351bc3c851461047d57806354a5df1f14610494576101ee565b8063313ce5671461036b5780633950935114610396578063441d801f146103d357806347062402146103fc576101ee565b806318160ddd116101b657806318160ddd146102af57806323b872dd146102da57806327a14fc2146103175780632b14ca5614610340576101ee565b806306fdde03146101f3578063095ea7b31461021e5780630b78f9c01461025b5780631694505e14610284576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610771565b6040516102159190612b5a565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190612c24565b610803565b6040516102529190612c7f565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190612c9a565b610826565b005b34801561029057600080fd5b506102996108cf565b6040516102a69190612d39565b60405180910390f35b3480156102bb57600080fd5b506102c46108f5565b6040516102d19190612d63565b60405180910390f35b3480156102e657600080fd5b5061030160048036038101906102fc9190612d7e565b6108ff565b60405161030e9190612c7f565b60405180910390f35b34801561032357600080fd5b5061033e60048036038101906103399190612dd1565b61092e565b005b34801561034c57600080fd5b506103556109de565b6040516103629190612d63565b60405180910390f35b34801561037757600080fd5b506103806109e4565b60405161038d9190612e1a565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b89190612c24565b6109ed565b6040516103ca9190612c7f565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f59190612ec6565b610a24565b005b34801561040857600080fd5b50610411610acb565b60405161041e9190612d63565b60405180910390f35b34801561043357600080fd5b5061043c610ad1565b6040516104499190612d63565b60405180910390f35b34801561045e57600080fd5b50610467610d14565b6040516104749190612f35565b60405180910390f35b34801561048957600080fd5b50610492610d3a565b005b3480156104a057600080fd5b506104a9610d72565b6040516104b69190612d63565b60405180910390f35b3480156104cb57600080fd5b506104d4610d78565b6040516104e19190612d63565b60405180910390f35b3480156104f657600080fd5b50610511600480360381019061050c9190612f50565b610d7e565b60405161051e9190612d63565b60405180910390f35b34801561053357600080fd5b5061053c610dc6565b005b34801561054a57600080fd5b5061056560048036038101906105609190612f50565b610f1e565b005b34801561057357600080fd5b5061057c611047565b6040516105899190612f35565b60405180910390f35b34801561059e57600080fd5b506105a7611071565b6040516105b49190612b5a565b60405180910390f35b3480156105c957600080fd5b506105e460048036038101906105df9190612c24565b611103565b6040516105f19190612c7f565b60405180910390f35b34801561060657600080fd5b50610621600480360381019061061c9190612c24565b61117a565b60405161062e9190612c7f565b60405180910390f35b34801561064357600080fd5b5061065e60048036038101906106599190612f50565b61119d565b005b34801561066c57600080fd5b5061068760048036038101906106829190612dd1565b611278565b005b34801561069557600080fd5b5061069e611319565b005b3480156106ac57600080fd5b506106b56115fb565b6040516106c29190612f35565b60405180910390f35b3480156106d757600080fd5b506106f260048036038101906106ed9190612fd3565b611621565b005b34801561070057600080fd5b5061071b60048036038101906107169190613054565b611774565b6040516107289190612d63565b60405180910390f35b34801561073d57600080fd5b506107466117fb565b005b34801561075457600080fd5b5061076f600480360381019061076a9190612f50565b61186c565b005b606060038054610780906130c3565b80601f01602080910402602001604051908101604052809291908181526020018280546107ac906130c3565b80156107f95780601f106107ce576101008083540402835291602001916107f9565b820191906000526020600020905b8154815290600101906020018083116107dc57829003601f168201915b5050505050905090565b60008061080e611a32565b905061081b818585611a3a565b600191505092915050565b61082e611a32565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b490613140565b60405180910390fd5b81600b8190555080600c819055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b60008061090a611a32565b9050610917858285611c03565b610922858585611c8f565b60019150509392505050565b610936611a32565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bc90613140565b60405180910390fd5b633b9aca00816109d5919061318f565b600a8190555050565b600c5481565b60006009905090565b6000806109f8611a32565b9050610a19818585610a0a8589611774565b610a1491906131d1565b611a3a565b600191505092915050565b610a2c611a32565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab290613140565b60405180910390fd5b610ac68383836122b1565b505050565b600b5481565b600080600267ffffffffffffffff811115610aef57610aee613205565b5b604051908082528060200260200182016040528015610b1d5781602001602082028036833780820191505090505b509050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb19190613249565b81600081518110610bc557610bc4613276565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110610c1457610c13613276565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f600e54836040518363ffffffff1660e01b8152600401610cad929190613363565b600060405180830381865afa158015610cca573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610cf391906134b7565b600181518110610d0657610d05613276565b5b602002602001015191505090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d4530610d7e565b90506000811115610d6f57600d60009054906101000a900460ff16610d6e57610d6d8161235c565b5b5b50565b600e5481565b600a5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dce611a32565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5490613140565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f5e9190612f35565b602060405180830381865afa158015610f7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9f9190613500565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610ffe92919061352d565b6020604051808303816000875af115801561101d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611041919061356b565b50505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611080906130c3565b80601f01602080910402602001604051908101604052809291908181526020018280546110ac906130c3565b80156110f95780601f106110ce576101008083540402835291602001916110f9565b820191906000526020600020905b8154815290600101906020018083116110dc57829003601f168201915b5050505050905090565b60008061110e611a32565b9050600061111c8286611774565b905083811015611161576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111589061360a565b60405180910390fd5b61116e8286868403611a3a565b60019250505092915050565b600080611185611a32565b9050611192818585611c8f565b600191505092915050565b6111a5611a32565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122b90613140565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611280611a32565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690613140565b60405180910390fd5b80600e8190555050565b611321611a32565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a790613140565b60405180910390fd5b601060149054906101000a900460ff1615611400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f790613676565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561146d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114919190613249565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561151a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153e9190613249565b6040518363ffffffff1660e01b815260040161155b929190613696565b6020604051808303816000875af115801561157a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159e9190613249565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060146101000a81548160ff021916908315150217905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611629611a32565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116af90613140565b60405180910390fd5b6000828290508585905014611702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f990613731565b60405180910390fd5b5b8484905081101561176d576117593386868481811061172557611724613276565b5b905060200201602081019061173a9190612f50565b85858581811061174d5761174c613276565b5b90506020020135611c8f565b60018161176691906131d1565b9050611703565b5050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000479050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611868573d6000803e3d6000fd5b5050565b611874611a32565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fa90613140565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611972576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611969906137c3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611aa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa090613855565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0f906138e7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bf69190612d63565b60405180910390a3505050565b6000611c0f8484611774565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611c895781811015611c7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7290613953565b60405180910390fd5b611c888484848403611a3a565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf5906139e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6490613a77565b60405180910390fd5b60008111611db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da790613b09565b60405180910390fd5b600080600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e575750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e965750611e66611047565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611ed55750611ea5611047565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b9050611edf611047565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611f4d5750611f1d611047565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561229e5780156120af57611f806064611f72600b548661260e90919063ffffffff16565b61268890919063ffffffff16565b9150600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561202d5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156120ae5761205a606461204c600c548661260e90919063ffffffff16565b61268890919063ffffffff16565b9150600061206730610d7e565b905060008111156120ac57600061207c610ad1565b905080821015801561209b5750600d60009054906101000a900460ff16155b156120aa576120a98161235c565b5b505b505b5b60006120c483856126d290919063ffffffff16565b905060006120e3826120d588610d7e565b61271c90919063ffffffff16565b9050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff160361218057600a5481111561217f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217690613b9b565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415801561222c5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b1561227757600a54811115612276576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226d90613b9b565b60405180910390fd5b5b600084111561228c5761228b87308661277a565b5b61229787878461277a565b50506122aa565b6122a985858561277a565b5b5050505050565b60005b838390508110156123565760008484838181106122d4576122d3613276565b5b90506020020160208101906122e99190612f50565b905082600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050808061234e90613bbb565b9150506122b4565b50505050565b6000600267ffffffffffffffff81111561237957612378613205565b5b6040519080825280602002602001820160405280156123a75781602001602082028036833780820191505090505b50905030816000815181106123bf576123be613276565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248a9190613249565b8160018151811061249e5761249d613276565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061250530600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a3a565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612569959493929190613c3e565b600060405180830381600087803b15801561258357600080fd5b505af1158015612597573d6000803e3d6000fd5b505050506000479050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612608573d6000803e3d6000fd5b50505050565b60008083036126205760009050612682565b6000828461262e919061318f565b905082848261263d9190613cc7565b1461267d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267490613d6a565b60405180910390fd5b809150505b92915050565b60006126ca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129f9565b905092915050565b600061271483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612a5c565b905092915050565b600080828461272b91906131d1565b905083811015612770576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276790613dd6565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e0906139e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284f90613a77565b60405180910390fd5b612863838383612ac0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156128e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e090613e68565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461297c91906131d1565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129e09190612d63565b60405180910390a36129f3848484612ac5565b50505050565b60008083118290612a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a379190612b5a565b60405180910390fd5b5060008385612a4f9190613cc7565b9050809150509392505050565b6000838311158290612aa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9b9190612b5a565b60405180910390fd5b5060008385612ab39190613e88565b9050809150509392505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b04578082015181840152602081019050612ae9565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b2c82612aca565b612b368185612ad5565b9350612b46818560208601612ae6565b612b4f81612b10565b840191505092915050565b60006020820190508181036000830152612b748184612b21565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612bbb82612b90565b9050919050565b612bcb81612bb0565b8114612bd657600080fd5b50565b600081359050612be881612bc2565b92915050565b6000819050919050565b612c0181612bee565b8114612c0c57600080fd5b50565b600081359050612c1e81612bf8565b92915050565b60008060408385031215612c3b57612c3a612b86565b5b6000612c4985828601612bd9565b9250506020612c5a85828601612c0f565b9150509250929050565b60008115159050919050565b612c7981612c64565b82525050565b6000602082019050612c946000830184612c70565b92915050565b60008060408385031215612cb157612cb0612b86565b5b6000612cbf85828601612c0f565b9250506020612cd085828601612c0f565b9150509250929050565b6000819050919050565b6000612cff612cfa612cf584612b90565b612cda565b612b90565b9050919050565b6000612d1182612ce4565b9050919050565b6000612d2382612d06565b9050919050565b612d3381612d18565b82525050565b6000602082019050612d4e6000830184612d2a565b92915050565b612d5d81612bee565b82525050565b6000602082019050612d786000830184612d54565b92915050565b600080600060608486031215612d9757612d96612b86565b5b6000612da586828701612bd9565b9350506020612db686828701612bd9565b9250506040612dc786828701612c0f565b9150509250925092565b600060208284031215612de757612de6612b86565b5b6000612df584828501612c0f565b91505092915050565b600060ff82169050919050565b612e1481612dfe565b82525050565b6000602082019050612e2f6000830184612e0b565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612e5a57612e59612e35565b5b8235905067ffffffffffffffff811115612e7757612e76612e3a565b5b602083019150836020820283011115612e9357612e92612e3f565b5b9250929050565b612ea381612c64565b8114612eae57600080fd5b50565b600081359050612ec081612e9a565b92915050565b600080600060408486031215612edf57612ede612b86565b5b600084013567ffffffffffffffff811115612efd57612efc612b8b565b5b612f0986828701612e44565b93509350506020612f1c86828701612eb1565b9150509250925092565b612f2f81612bb0565b82525050565b6000602082019050612f4a6000830184612f26565b92915050565b600060208284031215612f6657612f65612b86565b5b6000612f7484828501612bd9565b91505092915050565b60008083601f840112612f9357612f92612e35565b5b8235905067ffffffffffffffff811115612fb057612faf612e3a565b5b602083019150836020820283011115612fcc57612fcb612e3f565b5b9250929050565b60008060008060408587031215612fed57612fec612b86565b5b600085013567ffffffffffffffff81111561300b5761300a612b8b565b5b61301787828801612e44565b9450945050602085013567ffffffffffffffff81111561303a57613039612b8b565b5b61304687828801612f7d565b925092505092959194509250565b6000806040838503121561306b5761306a612b86565b5b600061307985828601612bd9565b925050602061308a85828601612bd9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806130db57607f821691505b6020821081036130ee576130ed613094565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061312a602083612ad5565b9150613135826130f4565b602082019050919050565b600060208201905081810360008301526131598161311d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061319a82612bee565b91506131a583612bee565b92508282026131b381612bee565b915082820484148315176131ca576131c9613160565b5b5092915050565b60006131dc82612bee565b91506131e783612bee565b92508282019050808211156131ff576131fe613160565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061324381612bc2565b92915050565b60006020828403121561325f5761325e612b86565b5b600061326d84828501613234565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132da81612bb0565b82525050565b60006132ec83836132d1565b60208301905092915050565b6000602082019050919050565b6000613310826132a5565b61331a81856132b0565b9350613325836132c1565b8060005b8381101561335657815161333d88826132e0565b9750613348836132f8565b925050600181019050613329565b5085935050505092915050565b60006040820190506133786000830185612d54565b818103602083015261338a8184613305565b90509392505050565b61339c82612b10565b810181811067ffffffffffffffff821117156133bb576133ba613205565b5b80604052505050565b60006133ce612b7c565b90506133da8282613393565b919050565b600067ffffffffffffffff8211156133fa576133f9613205565b5b602082029050602081019050919050565b60008151905061341a81612bf8565b92915050565b600061343361342e846133df565b6133c4565b9050808382526020820190506020840283018581111561345657613455612e3f565b5b835b8181101561347f578061346b888261340b565b845260208401935050602081019050613458565b5050509392505050565b600082601f83011261349e5761349d612e35565b5b81516134ae848260208601613420565b91505092915050565b6000602082840312156134cd576134cc612b86565b5b600082015167ffffffffffffffff8111156134eb576134ea612b8b565b5b6134f784828501613489565b91505092915050565b60006020828403121561351657613515612b86565b5b60006135248482850161340b565b91505092915050565b60006040820190506135426000830185612f26565b61354f6020830184612d54565b9392505050565b60008151905061356581612e9a565b92915050565b60006020828403121561358157613580612b86565b5b600061358f84828501613556565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006135f4602583612ad5565b91506135ff82613598565b604082019050919050565b60006020820190508181036000830152613623816135e7565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613660601783612ad5565b915061366b8261362a565b602082019050919050565b6000602082019050818103600083015261368f81613653565b9050919050565b60006040820190506136ab6000830185612f26565b6136b86020830184612f26565b9392505050565b7f486f6c6465727320616e6420616d6f756e74206c656e677468206d757374206260008201527f65207468652073616d6500000000000000000000000000000000000000000000602082015250565b600061371b602a83612ad5565b9150613726826136bf565b604082019050919050565b6000602082019050818103600083015261374a8161370e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006137ad602683612ad5565b91506137b882613751565b604082019050919050565b600060208201905081810360008301526137dc816137a0565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061383f602483612ad5565b915061384a826137e3565b604082019050919050565b6000602082019050818103600083015261386e81613832565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006138d1602283612ad5565b91506138dc82613875565b604082019050919050565b60006020820190508181036000830152613900816138c4565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061393d601d83612ad5565b915061394882613907565b602082019050919050565b6000602082019050818103600083015261396c81613930565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006139cf602583612ad5565b91506139da82613973565b604082019050919050565b600060208201905081810360008301526139fe816139c2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a61602383612ad5565b9150613a6c82613a05565b604082019050919050565b60006020820190508181036000830152613a9081613a54565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613af3602983612ad5565b9150613afe82613a97565b604082019050919050565b60006020820190508181036000830152613b2281613ae6565b9050919050565b7f57616c6c65742063616e6e6f7420657863656564206d61782057616c6c65742060008201527f6c696d6974000000000000000000000000000000000000000000000000000000602082015250565b6000613b85602583612ad5565b9150613b9082613b29565b604082019050919050565b60006020820190508181036000830152613bb481613b78565b9050919050565b6000613bc682612bee565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613bf857613bf7613160565b5b600182019050919050565b6000819050919050565b6000613c28613c23613c1e84613c03565b612cda565b612bee565b9050919050565b613c3881613c0d565b82525050565b600060a082019050613c536000830188612d54565b613c606020830187613c2f565b8181036040830152613c728186613305565b9050613c816060830185612f26565b613c8e6080830184612d54565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613cd282612bee565b9150613cdd83612bee565b925082613ced57613cec613c98565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d54602183612ad5565b9150613d5f82613cf8565b604082019050919050565b60006020820190508181036000830152613d8381613d47565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613dc0601b83612ad5565b9150613dcb82613d8a565b602082019050919050565b60006020820190508181036000830152613def81613db3565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613e52602683612ad5565b9150613e5d82613df6565b604082019050919050565b60006020820190508181036000830152613e8181613e45565b9050919050565b6000613e9382612bee565b9150613e9e83612bee565b9250828203905081811115613eb657613eb5613160565b5b9291505056fea2646970667358221220a99b496340d7afc998372e24831e4e24bca89dff85e178c2c7a554a65f4cb44464736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101e75760003560e01c80636c0a24eb11610102578063ac1a386a11610095578063dcda6af311610064578063dcda6af3146106cb578063dd62ed3e146106f4578063e9ac0e5914610731578063f2fde38b14610748576101ee565b8063ac1a386a14610637578063b2abbbc414610660578063c9567bf914610689578063d5f39488146106a0576101ee565b80638da5cb5b116100d15780638da5cb5b1461056757806395d89b4114610592578063a457c2d7146105bd578063a9059cbb146105fa576101ee565b80636c0a24eb146104bf57806370a08231146104ea578063715018a61461052757806384afff9b1461053e576101ee565b8063313ce5671161017a5780634b94f50e116101495780634b94f50e1461042757806350faa48f1461045257806351bc3c851461047d57806354a5df1f14610494576101ee565b8063313ce5671461036b5780633950935114610396578063441d801f146103d357806347062402146103fc576101ee565b806318160ddd116101b657806318160ddd146102af57806323b872dd146102da57806327a14fc2146103175780632b14ca5614610340576101ee565b806306fdde03146101f3578063095ea7b31461021e5780630b78f9c01461025b5780631694505e14610284576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610771565b6040516102159190612b5a565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190612c24565b610803565b6040516102529190612c7f565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190612c9a565b610826565b005b34801561029057600080fd5b506102996108cf565b6040516102a69190612d39565b60405180910390f35b3480156102bb57600080fd5b506102c46108f5565b6040516102d19190612d63565b60405180910390f35b3480156102e657600080fd5b5061030160048036038101906102fc9190612d7e565b6108ff565b60405161030e9190612c7f565b60405180910390f35b34801561032357600080fd5b5061033e60048036038101906103399190612dd1565b61092e565b005b34801561034c57600080fd5b506103556109de565b6040516103629190612d63565b60405180910390f35b34801561037757600080fd5b506103806109e4565b60405161038d9190612e1a565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b89190612c24565b6109ed565b6040516103ca9190612c7f565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f59190612ec6565b610a24565b005b34801561040857600080fd5b50610411610acb565b60405161041e9190612d63565b60405180910390f35b34801561043357600080fd5b5061043c610ad1565b6040516104499190612d63565b60405180910390f35b34801561045e57600080fd5b50610467610d14565b6040516104749190612f35565b60405180910390f35b34801561048957600080fd5b50610492610d3a565b005b3480156104a057600080fd5b506104a9610d72565b6040516104b69190612d63565b60405180910390f35b3480156104cb57600080fd5b506104d4610d78565b6040516104e19190612d63565b60405180910390f35b3480156104f657600080fd5b50610511600480360381019061050c9190612f50565b610d7e565b60405161051e9190612d63565b60405180910390f35b34801561053357600080fd5b5061053c610dc6565b005b34801561054a57600080fd5b5061056560048036038101906105609190612f50565b610f1e565b005b34801561057357600080fd5b5061057c611047565b6040516105899190612f35565b60405180910390f35b34801561059e57600080fd5b506105a7611071565b6040516105b49190612b5a565b60405180910390f35b3480156105c957600080fd5b506105e460048036038101906105df9190612c24565b611103565b6040516105f19190612c7f565b60405180910390f35b34801561060657600080fd5b50610621600480360381019061061c9190612c24565b61117a565b60405161062e9190612c7f565b60405180910390f35b34801561064357600080fd5b5061065e60048036038101906106599190612f50565b61119d565b005b34801561066c57600080fd5b5061068760048036038101906106829190612dd1565b611278565b005b34801561069557600080fd5b5061069e611319565b005b3480156106ac57600080fd5b506106b56115fb565b6040516106c29190612f35565b60405180910390f35b3480156106d757600080fd5b506106f260048036038101906106ed9190612fd3565b611621565b005b34801561070057600080fd5b5061071b60048036038101906107169190613054565b611774565b6040516107289190612d63565b60405180910390f35b34801561073d57600080fd5b506107466117fb565b005b34801561075457600080fd5b5061076f600480360381019061076a9190612f50565b61186c565b005b606060038054610780906130c3565b80601f01602080910402602001604051908101604052809291908181526020018280546107ac906130c3565b80156107f95780601f106107ce576101008083540402835291602001916107f9565b820191906000526020600020905b8154815290600101906020018083116107dc57829003601f168201915b5050505050905090565b60008061080e611a32565b905061081b818585611a3a565b600191505092915050565b61082e611a32565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b490613140565b60405180910390fd5b81600b8190555080600c819055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b60008061090a611a32565b9050610917858285611c03565b610922858585611c8f565b60019150509392505050565b610936611a32565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bc90613140565b60405180910390fd5b633b9aca00816109d5919061318f565b600a8190555050565b600c5481565b60006009905090565b6000806109f8611a32565b9050610a19818585610a0a8589611774565b610a1491906131d1565b611a3a565b600191505092915050565b610a2c611a32565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab290613140565b60405180910390fd5b610ac68383836122b1565b505050565b600b5481565b600080600267ffffffffffffffff811115610aef57610aee613205565b5b604051908082528060200260200182016040528015610b1d5781602001602082028036833780820191505090505b509050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb19190613249565b81600081518110610bc557610bc4613276565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110610c1457610c13613276565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f600e54836040518363ffffffff1660e01b8152600401610cad929190613363565b600060405180830381865afa158015610cca573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610cf391906134b7565b600181518110610d0657610d05613276565b5b602002602001015191505090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d4530610d7e565b90506000811115610d6f57600d60009054906101000a900460ff16610d6e57610d6d8161235c565b5b5b50565b600e5481565b600a5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dce611a32565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5490613140565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f5e9190612f35565b602060405180830381865afa158015610f7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9f9190613500565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610ffe92919061352d565b6020604051808303816000875af115801561101d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611041919061356b565b50505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611080906130c3565b80601f01602080910402602001604051908101604052809291908181526020018280546110ac906130c3565b80156110f95780601f106110ce576101008083540402835291602001916110f9565b820191906000526020600020905b8154815290600101906020018083116110dc57829003601f168201915b5050505050905090565b60008061110e611a32565b9050600061111c8286611774565b905083811015611161576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111589061360a565b60405180910390fd5b61116e8286868403611a3a565b60019250505092915050565b600080611185611a32565b9050611192818585611c8f565b600191505092915050565b6111a5611a32565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122b90613140565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611280611a32565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690613140565b60405180910390fd5b80600e8190555050565b611321611a32565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a790613140565b60405180910390fd5b601060149054906101000a900460ff1615611400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f790613676565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561146d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114919190613249565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561151a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153e9190613249565b6040518363ffffffff1660e01b815260040161155b929190613696565b6020604051808303816000875af115801561157a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159e9190613249565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060146101000a81548160ff021916908315150217905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611629611a32565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116af90613140565b60405180910390fd5b6000828290508585905014611702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f990613731565b60405180910390fd5b5b8484905081101561176d576117593386868481811061172557611724613276565b5b905060200201602081019061173a9190612f50565b85858581811061174d5761174c613276565b5b90506020020135611c8f565b60018161176691906131d1565b9050611703565b5050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000479050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611868573d6000803e3d6000fd5b5050565b611874611a32565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fa90613140565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611972576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611969906137c3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611aa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa090613855565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0f906138e7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611bf69190612d63565b60405180910390a3505050565b6000611c0f8484611774565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611c895781811015611c7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7290613953565b60405180910390fd5b611c888484848403611a3a565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf5906139e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6490613a77565b60405180910390fd5b60008111611db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da790613b09565b60405180910390fd5b600080600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e575750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e965750611e66611047565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611ed55750611ea5611047565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b9050611edf611047565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611f4d5750611f1d611047565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561229e5780156120af57611f806064611f72600b548661260e90919063ffffffff16565b61268890919063ffffffff16565b9150600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561202d5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156120ae5761205a606461204c600c548661260e90919063ffffffff16565b61268890919063ffffffff16565b9150600061206730610d7e565b905060008111156120ac57600061207c610ad1565b905080821015801561209b5750600d60009054906101000a900460ff16155b156120aa576120a98161235c565b5b505b505b5b60006120c483856126d290919063ffffffff16565b905060006120e3826120d588610d7e565b61271c90919063ffffffff16565b9050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff160361218057600a5481111561217f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217690613b9b565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415801561222c5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b1561227757600a54811115612276576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226d90613b9b565b60405180910390fd5b5b600084111561228c5761228b87308661277a565b5b61229787878461277a565b50506122aa565b6122a985858561277a565b5b5050505050565b60005b838390508110156123565760008484838181106122d4576122d3613276565b5b90506020020160208101906122e99190612f50565b905082600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050808061234e90613bbb565b9150506122b4565b50505050565b6000600267ffffffffffffffff81111561237957612378613205565b5b6040519080825280602002602001820160405280156123a75781602001602082028036833780820191505090505b50905030816000815181106123bf576123be613276565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248a9190613249565b8160018151811061249e5761249d613276565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061250530600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a3a565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612569959493929190613c3e565b600060405180830381600087803b15801561258357600080fd5b505af1158015612597573d6000803e3d6000fd5b505050506000479050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612608573d6000803e3d6000fd5b50505050565b60008083036126205760009050612682565b6000828461262e919061318f565b905082848261263d9190613cc7565b1461267d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267490613d6a565b60405180910390fd5b809150505b92915050565b60006126ca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129f9565b905092915050565b600061271483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612a5c565b905092915050565b600080828461272b91906131d1565b905083811015612770576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276790613dd6565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e0906139e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284f90613a77565b60405180910390fd5b612863838383612ac0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156128e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e090613e68565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461297c91906131d1565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129e09190612d63565b60405180910390a36129f3848484612ac5565b50505050565b60008083118290612a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a379190612b5a565b60405180910390fd5b5060008385612a4f9190613cc7565b9050809150509392505050565b6000838311158290612aa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9b9190612b5a565b60405180910390fd5b5060008385612ab39190613e88565b9050809150509392505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b04578082015181840152602081019050612ae9565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b2c82612aca565b612b368185612ad5565b9350612b46818560208601612ae6565b612b4f81612b10565b840191505092915050565b60006020820190508181036000830152612b748184612b21565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612bbb82612b90565b9050919050565b612bcb81612bb0565b8114612bd657600080fd5b50565b600081359050612be881612bc2565b92915050565b6000819050919050565b612c0181612bee565b8114612c0c57600080fd5b50565b600081359050612c1e81612bf8565b92915050565b60008060408385031215612c3b57612c3a612b86565b5b6000612c4985828601612bd9565b9250506020612c5a85828601612c0f565b9150509250929050565b60008115159050919050565b612c7981612c64565b82525050565b6000602082019050612c946000830184612c70565b92915050565b60008060408385031215612cb157612cb0612b86565b5b6000612cbf85828601612c0f565b9250506020612cd085828601612c0f565b9150509250929050565b6000819050919050565b6000612cff612cfa612cf584612b90565b612cda565b612b90565b9050919050565b6000612d1182612ce4565b9050919050565b6000612d2382612d06565b9050919050565b612d3381612d18565b82525050565b6000602082019050612d4e6000830184612d2a565b92915050565b612d5d81612bee565b82525050565b6000602082019050612d786000830184612d54565b92915050565b600080600060608486031215612d9757612d96612b86565b5b6000612da586828701612bd9565b9350506020612db686828701612bd9565b9250506040612dc786828701612c0f565b9150509250925092565b600060208284031215612de757612de6612b86565b5b6000612df584828501612c0f565b91505092915050565b600060ff82169050919050565b612e1481612dfe565b82525050565b6000602082019050612e2f6000830184612e0b565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612e5a57612e59612e35565b5b8235905067ffffffffffffffff811115612e7757612e76612e3a565b5b602083019150836020820283011115612e9357612e92612e3f565b5b9250929050565b612ea381612c64565b8114612eae57600080fd5b50565b600081359050612ec081612e9a565b92915050565b600080600060408486031215612edf57612ede612b86565b5b600084013567ffffffffffffffff811115612efd57612efc612b8b565b5b612f0986828701612e44565b93509350506020612f1c86828701612eb1565b9150509250925092565b612f2f81612bb0565b82525050565b6000602082019050612f4a6000830184612f26565b92915050565b600060208284031215612f6657612f65612b86565b5b6000612f7484828501612bd9565b91505092915050565b60008083601f840112612f9357612f92612e35565b5b8235905067ffffffffffffffff811115612fb057612faf612e3a565b5b602083019150836020820283011115612fcc57612fcb612e3f565b5b9250929050565b60008060008060408587031215612fed57612fec612b86565b5b600085013567ffffffffffffffff81111561300b5761300a612b8b565b5b61301787828801612e44565b9450945050602085013567ffffffffffffffff81111561303a57613039612b8b565b5b61304687828801612f7d565b925092505092959194509250565b6000806040838503121561306b5761306a612b86565b5b600061307985828601612bd9565b925050602061308a85828601612bd9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806130db57607f821691505b6020821081036130ee576130ed613094565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061312a602083612ad5565b9150613135826130f4565b602082019050919050565b600060208201905081810360008301526131598161311d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061319a82612bee565b91506131a583612bee565b92508282026131b381612bee565b915082820484148315176131ca576131c9613160565b5b5092915050565b60006131dc82612bee565b91506131e783612bee565b92508282019050808211156131ff576131fe613160565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061324381612bc2565b92915050565b60006020828403121561325f5761325e612b86565b5b600061326d84828501613234565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132da81612bb0565b82525050565b60006132ec83836132d1565b60208301905092915050565b6000602082019050919050565b6000613310826132a5565b61331a81856132b0565b9350613325836132c1565b8060005b8381101561335657815161333d88826132e0565b9750613348836132f8565b925050600181019050613329565b5085935050505092915050565b60006040820190506133786000830185612d54565b818103602083015261338a8184613305565b90509392505050565b61339c82612b10565b810181811067ffffffffffffffff821117156133bb576133ba613205565b5b80604052505050565b60006133ce612b7c565b90506133da8282613393565b919050565b600067ffffffffffffffff8211156133fa576133f9613205565b5b602082029050602081019050919050565b60008151905061341a81612bf8565b92915050565b600061343361342e846133df565b6133c4565b9050808382526020820190506020840283018581111561345657613455612e3f565b5b835b8181101561347f578061346b888261340b565b845260208401935050602081019050613458565b5050509392505050565b600082601f83011261349e5761349d612e35565b5b81516134ae848260208601613420565b91505092915050565b6000602082840312156134cd576134cc612b86565b5b600082015167ffffffffffffffff8111156134eb576134ea612b8b565b5b6134f784828501613489565b91505092915050565b60006020828403121561351657613515612b86565b5b60006135248482850161340b565b91505092915050565b60006040820190506135426000830185612f26565b61354f6020830184612d54565b9392505050565b60008151905061356581612e9a565b92915050565b60006020828403121561358157613580612b86565b5b600061358f84828501613556565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006135f4602583612ad5565b91506135ff82613598565b604082019050919050565b60006020820190508181036000830152613623816135e7565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613660601783612ad5565b915061366b8261362a565b602082019050919050565b6000602082019050818103600083015261368f81613653565b9050919050565b60006040820190506136ab6000830185612f26565b6136b86020830184612f26565b9392505050565b7f486f6c6465727320616e6420616d6f756e74206c656e677468206d757374206260008201527f65207468652073616d6500000000000000000000000000000000000000000000602082015250565b600061371b602a83612ad5565b9150613726826136bf565b604082019050919050565b6000602082019050818103600083015261374a8161370e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006137ad602683612ad5565b91506137b882613751565b604082019050919050565b600060208201905081810360008301526137dc816137a0565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061383f602483612ad5565b915061384a826137e3565b604082019050919050565b6000602082019050818103600083015261386e81613832565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006138d1602283612ad5565b91506138dc82613875565b604082019050919050565b60006020820190508181036000830152613900816138c4565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061393d601d83612ad5565b915061394882613907565b602082019050919050565b6000602082019050818103600083015261396c81613930565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006139cf602583612ad5565b91506139da82613973565b604082019050919050565b600060208201905081810360008301526139fe816139c2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a61602383612ad5565b9150613a6c82613a05565b604082019050919050565b60006020820190508181036000830152613a9081613a54565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613af3602983612ad5565b9150613afe82613a97565b604082019050919050565b60006020820190508181036000830152613b2281613ae6565b9050919050565b7f57616c6c65742063616e6e6f7420657863656564206d61782057616c6c65742060008201527f6c696d6974000000000000000000000000000000000000000000000000000000602082015250565b6000613b85602583612ad5565b9150613b9082613b29565b604082019050919050565b60006020820190508181036000830152613bb481613b78565b9050919050565b6000613bc682612bee565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613bf857613bf7613160565b5b600182019050919050565b6000819050919050565b6000613c28613c23613c1e84613c03565b612cda565b612bee565b9050919050565b613c3881613c0d565b82525050565b600060a082019050613c536000830188612d54565b613c606020830187613c2f565b8181036040830152613c728186613305565b9050613c816060830185612f26565b613c8e6080830184612d54565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613cd282612bee565b9150613cdd83612bee565b925082613ced57613cec613c98565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d54602183612ad5565b9150613d5f82613cf8565b604082019050919050565b60006020820190508181036000830152613d8381613d47565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613dc0601b83612ad5565b9150613dcb82613d8a565b602082019050919050565b60006020820190508181036000830152613def81613db3565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613e52602683612ad5565b9150613e5d82613df6565b604082019050919050565b60006020820190508181036000830152613e8181613e45565b9050919050565b6000613e9382612bee565b9150613e9e83612bee565b9250828203905081811115613eb657613eb5613160565b5b9291505056fea2646970667358221220a99b496340d7afc998372e24831e4e24bca89dff85e178c2c7a554a65f4cb44464736f6c63430008110033
Deployed Bytecode Sourcemap
19805:6057:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8119:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10469:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25154:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19995:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9238:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11250:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25281:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20351:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9081:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11954:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23854:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20318:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23582:264;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20108:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22704:267;;;;;;;;;;;;;:::i;:::-;;20413:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20257:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9409:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6932:148;;;;;;;;;;;;;:::i;:::-;;25620:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6718:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8338:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12695:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9742:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24022:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25024:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24121:257;;;;;;;;;;;;;:::i;:::-;;20543:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24386:386;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9998:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25461;;;;;;;;;;;;;:::i;:::-;;7088:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8119:100;8173:13;8206:5;8199:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8119:100;:::o;10469:201::-;10552:4;10569:13;10585:12;:10;:12::i;:::-;10569:28;;10608:32;10617:5;10624:7;10633:6;10608:8;:32::i;:::-;10658:4;10651:11;;;10469:201;;;;:::o;25154:119::-;6855:12;:10;:12::i;:::-;6845:22;;:6;;;;;;;;;;;:22;;;6837:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25237:3:::1;25228:6;:12;;;;25261:4;25251:7;:14;;;;25154:119:::0;;:::o;19995:106::-;;;;;;;;;;;;;:::o;9238:108::-;9299:7;9326:12;;9319:19;;9238:108;:::o;11250:295::-;11381:4;11398:15;11416:12;:10;:12::i;:::-;11398:30;;11439:38;11455:4;11461:7;11470:6;11439:15;:38::i;:::-;11488:27;11498:4;11504:2;11508:6;11488:9;:27::i;:::-;11533:4;11526:11;;;11250:295;;;;;:::o;25281:135::-;6855:12;:10;:12::i;:::-;6845:22;;:6;;;;;;;;;;;:22;;;6837:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25401:7:::1;25383:15;:25;;;;:::i;:::-;25364:16;:44;;;;25281:135:::0;:::o;20351:27::-;;;;:::o;9081:92::-;9139:5;9164:1;9157:8;;9081:92;:::o;11954:238::-;12042:4;12059:13;12075:12;:10;:12::i;:::-;12059:28;;12098:64;12107:5;12114:7;12151:10;12123:25;12133:5;12140:7;12123:9;:25::i;:::-;:38;;;;:::i;:::-;12098:8;:64::i;:::-;12180:4;12173:11;;;11954:238;;;;:::o;23854:161::-;6855:12;:10;:12::i;:::-;6845:22;;:6;;;;;;;;;;;:22;;;6837:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23966:41:::1;23979:9;;23990:16;23966:12;:41::i;:::-;23854:161:::0;;;:::o;20318:26::-;;;;:::o;23582:264::-;23628:7;23649:21;23687:1;23673:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23649:40;;23710:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23700:4;23705:1;23700:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;23761:4;23743;23748:1;23743:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23784:15;;;;;;;;;;;:29;;;23814:14;;23830:4;23784:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23836:1;23784:54;;;;;;;;:::i;:::-;;;;;;;;23777:61;;;23582:264;:::o;20108:25::-;;;;;;;;;;;;;:::o;22704:267::-;22746:28;22777:24;22795:4;22777:9;:24::i;:::-;22746:55;;22839:1;22816:20;:24;22812:152;;;22862:16;;;;;;;;;;;22857:96;;22899:38;22916:20;22899:16;:38::i;:::-;22857:96;22812:152;22735:236;22704:267::o;20413:50::-;;;;:::o;20257:54::-;;;;:::o;9409:127::-;9483:7;9510:9;:18;9520:7;9510:18;;;;;;;;;;;;;;;;9503:25;;9409:127;;;:::o;6932:148::-;6855:12;:10;:12::i;:::-;6845:22;;:6;;;;;;;;;;;:22;;;6837:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7039:1:::1;7002:40;;7023:6;;;;;;;;;;;7002:40;;;;;;;;;;;;7070:1;7053:6;;:19;;;;;;;;;;;;;;;;;;6932:148::o:0;25620:237::-;25693:17;25720:15;25693:43;;25747:15;25765:10;:20;;;25794:4;25765:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25747:53;;25811:10;:19;;;25831:8;;;;;;;;;;;25841:7;25811:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25682:175;;25620:237;:::o;6718:79::-;6756:7;6783:6;;;;;;;;;;;6776:13;;6718:79;:::o;8338:104::-;8394:13;8427:7;8420:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8338:104;:::o;12695:436::-;12788:4;12805:13;12821:12;:10;:12::i;:::-;12805:28;;12844:24;12871:25;12881:5;12888:7;12871:9;:25::i;:::-;12844:52;;12935:15;12915:16;:35;;12907:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;13028:60;13037:5;13044:7;13072:15;13053:16;:34;13028:8;:60::i;:::-;13119:4;13112:11;;;;12695:436;;;;:::o;9742:193::-;9821:4;9838:13;9854:12;:10;:12::i;:::-;9838:28;;9877;9887:5;9894:2;9898:6;9877:9;:28::i;:::-;9923:4;9916:11;;;9742:193;;;;:::o;24022:91::-;6855:12;:10;:12::i;:::-;6845:22;;:6;;;;;;;;;;;:22;;;6837:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24100:5:::1;24093:4;;:12;;;;;;;;;;;;;;;;;;24022:91:::0;:::o;25024:122::-;6855:12;:10;:12::i;:::-;6845:22;;:6;;;;;;;;;;;:22;;;6837:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25123:15:::1;25106:14;:32;;;;25024:122:::0;:::o;24121:257::-;6855:12;:10;:12::i;:::-;6845:22;;:6;;;;;;;;;;;:22;;;6837:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24185:11:::1;;;;;;;;;;;24184:12;24176:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;24265:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24247:55;;;24311:4;24318:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24247:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24234:10;;:107;;;;;;;;;;;;;;;;;;24366:4;24352:11;;:18;;;;;;;;;;;;;;;;;;24121:257::o:0;20543:23::-;;;;;;;;;;;;;:::o;24386:386::-;6855:12;:10;:12::i;:::-;6845:22;;:6;;;;;;;;;;;:22;;;6837:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24490:16:::1;24547:7;;:14;;24529:7;;:14;;:32;24521:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;24619:146;24636:7;;:14;;24625:8;:25;24619:146;;;24666:59;24676:10;24688:7;;24696:8;24688:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;24707:7;;24715:8;24707:17;;;;;;;:::i;:::-;;;;;;;;24666:9;:59::i;:::-;24752:1;24740:13;;;;;:::i;:::-;;;24619:146;;;24479:293;24386:386:::0;;;;:::o;9998:151::-;10087:7;10114:11;:18;10126:5;10114:18;;;;;;;;;;;;;;;:27;10133:7;10114:27;;;;;;;;;;;;;;;;10107:34;;9998:151;;;;:::o;25461:::-;25513:18;25534:21;25513:42;;25574:8;;;;;;;;;;;25566:26;;:38;25593:10;25566:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25502:110;25461:151::o;7088:244::-;6855:12;:10;:12::i;:::-;6845:22;;:6;;;;;;;;;;;:22;;;6837:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7197:1:::1;7177:22;;:8;:22;;::::0;7169:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;7287:8;7258:38;;7279:6;;;;;;;;;;;7258:38;;;;;;;;;;;;7316:8;7307:6;;:17;;;;;;;;;;;;;;;;;;7088:244:::0;:::o;3060:98::-;3113:7;3140:10;3133:17;;3060:98;:::o;16320:380::-;16473:1;16456:19;;:5;:19;;;16448:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16554:1;16535:21;;:7;:21;;;16527:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16638:6;16608:11;:18;16620:5;16608:18;;;;;;;;;;;;;;;:27;16627:7;16608:27;;;;;;;;;;;;;;;:36;;;;16676:7;16660:32;;16669:5;16660:32;;;16685:6;16660:32;;;;;;:::i;:::-;;;;;;;;16320:380;;;:::o;16991:453::-;17126:24;17153:25;17163:5;17170:7;17153:9;:25::i;:::-;17126:52;;17213:17;17193:16;:37;17189:248;;17275:6;17255:16;:26;;17247:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17359:51;17368:5;17375:7;17403:6;17384:16;:25;17359:8;:51::i;:::-;17189:248;17115:329;16991:453;;;:::o;20835:1861::-;20949:1;20933:18;;:4;:18;;;20925:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21026:1;21012:16;;:2;:16;;;21004:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;21096:1;21087:6;:10;21079:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;21154:17;21186:13;21203:18;:24;21222:4;21203:24;;;;;;;;;;;;;;;;;;;;;;;;;21202:25;:52;;;;;21232:18;:22;21251:2;21232:22;;;;;;;;;;;;;;;;;;;;;;;;;21231:23;21202:52;:71;;;;;21266:7;:5;:7::i;:::-;21258:15;;:4;:15;;;;21202:71;:88;;;;;21283:7;:5;:7::i;:::-;21277:13;;:2;:13;;;;21202:88;21186:104;;21311:7;:5;:7::i;:::-;21303:15;;:4;:15;;;;:32;;;;;21328:7;:5;:7::i;:::-;21322:13;;:2;:13;;;;21303:32;21300:1389;;;21355:8;21352:626;;;21396:27;21419:3;21396:18;21407:6;;21396;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;21384:39;;21454:10;;;;;;;;;;;21446:18;;:4;:18;;;;:38;;;;;21474:10;;;;;;;;;;;21468:16;;:2;:16;;;21446:38;21442:521;;;21521:28;21545:3;21521:19;21532:7;;21521:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;21509:40;;21572:28;21603:24;21621:4;21603:9;:24::i;:::-;21572:55;;21677:1;21654:20;:24;21650:294;;;21707:19;21729:15;:13;:15::i;:::-;21707:37;;21799:11;21775:20;:35;;:56;;;;;21815:16;;;;;;;;;;;21814:17;21775:56;21771:150;;;21864:29;21881:11;21864:16;:29::i;:::-;21771:150;21680:264;21650:294;21486:477;21442:521;21352:626;21992:22;22017:21;22028:9;22017:6;:10;;:21;;;;:::i;:::-;21992:46;;22053:21;22077:33;22095:14;22077:13;22087:2;22077:9;:13::i;:::-;:17;;:33;;;;:::i;:::-;22053:57;;22137:10;;;;;;;;;;;22129:18;;:4;:18;;;22125:142;;22193:16;;22176:13;:33;;22168:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;22125:142;22293:10;;;;;;;;;;;22285:18;;:4;:18;;;;:38;;;;;22313:10;;;;;;;;;;;22307:16;;:2;:16;;;;22285:38;22281:162;;;22369:16;;22352:13;:33;;22344:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;22281:162;22472:1;22460:9;:13;22457:100;;;22494:47;22510:4;22524;22531:9;22494:15;:47::i;:::-;22457:100;22570:41;22586:4;22592:2;22596:14;22570:15;:41::i;:::-;21337:1286;;21300:1389;;;22644:33;22660:4;22666:2;22670:6;22644:15;:33::i;:::-;21300:1389;20914:1782;;20835:1861;;;:::o;24780:236::-;24867:9;24862:147;24886:9;;:16;;24882:1;:20;24862:147;;;24924:12;24939:9;;24949:1;24939:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;24924:27;;24993:4;24966:18;:24;24985:4;24966:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;24909:100;24904:3;;;;;:::i;:::-;;;;24862:147;;;;24780:236;;;:::o;22978:592::-;23044:21;23082:1;23068:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23044:40;;23113:4;23095;23100:1;23095:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23139:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23129:4;23134:1;23129:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;23172:62;23189:4;23204:15;;;;;;;;;;;23222:11;23172:8;:62::i;:::-;23271:15;;;;;;;;;;;:66;;;23352:11;23378:1;23395:4;23422;23442:15;23271:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23479:15;23497:21;23479:39;;23537:4;;;;;;;;;;;23529:22;;:31;23552:7;23529:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23033:537;;22978:592;:::o;1732:471::-;1790:7;2040:1;2035;:6;2031:47;;2065:1;2058:8;;;;2031:47;2090:9;2106:1;2102;:5;;;;:::i;:::-;2090:17;;2135:1;2130;2126;:5;;;;:::i;:::-;:10;2118:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2194:1;2187:8;;;1732:471;;;;;:::o;2211:132::-;2269:7;2296:39;2300:1;2303;2296:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2289:46;;2211:132;;;;:::o;1388:136::-;1446:7;1473:43;1477:1;1480;1473:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1466:50;;1388:136;;;;:::o;1199:181::-;1257:7;1277:9;1293:1;1289;:5;;;;:::i;:::-;1277:17;;1318:1;1313;:6;;1305:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1371:1;1364:8;;;1199:181;;;;:::o;13601:671::-;13748:1;13732:18;;:4;:18;;;13724:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13825:1;13811:16;;:2;:16;;;13803:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13880:38;13901:4;13907:2;13911:6;13880:20;:38::i;:::-;13931:19;13953:9;:15;13963:4;13953:15;;;;;;;;;;;;;;;;13931:37;;14002:6;13987:11;:21;;13979:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;14119:6;14105:11;:20;14087:9;:15;14097:4;14087:15;;;;;;;;;;;;;;;:38;;;;14164:6;14147:9;:13;14157:2;14147:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;14203:2;14188:26;;14197:4;14188:26;;;14207:6;14188:26;;;;;;:::i;:::-;;;;;;;;14227:37;14247:4;14253:2;14257:6;14227:19;:37::i;:::-;13713:559;13601:671;;;:::o;2351:278::-;2437:7;2469:1;2465;:5;2472:12;2457:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2496:9;2512:1;2508;:5;;;;:::i;:::-;2496:17;;2620:1;2613:8;;;2351:278;;;;;:::o;1532:192::-;1618:7;1651:1;1646;:6;;1654:12;1638:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1678:9;1694:1;1690;:5;;;;:::i;:::-;1678:17;;1715:1;1708:8;;;1532:192;;;;;:::o;18044:125::-;;;;:::o;18773: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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652: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:474::-;3514:6;3522;3571:2;3559:9;3550:7;3546:23;3542:32;3539:119;;;3577:79;;:::i;:::-;3539:119;3697:1;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3668:117;3824:2;3850:53;3895:7;3886:6;3875:9;3871:22;3850:53;:::i;:::-;3840:63;;3795:118;3446:474;;;;;:::o;3926:60::-;3954:3;3975:5;3968:12;;3926:60;;;:::o;3992:142::-;4042:9;4075:53;4093:34;4102:24;4120:5;4102:24;:::i;:::-;4093:34;:::i;:::-;4075:53;:::i;:::-;4062:66;;3992:142;;;:::o;4140:126::-;4190:9;4223:37;4254:5;4223:37;:::i;:::-;4210:50;;4140:126;;;:::o;4272:153::-;4349:9;4382:37;4413:5;4382:37;:::i;:::-;4369:50;;4272:153;;;:::o;4431:185::-;4545:64;4603:5;4545:64;:::i;:::-;4540:3;4533:77;4431:185;;:::o;4622:276::-;4742:4;4780:2;4769:9;4765:18;4757:26;;4793:98;4888:1;4877:9;4873:17;4864:6;4793:98;:::i;:::-;4622:276;;;;:::o;4904:118::-;4991:24;5009:5;4991:24;:::i;:::-;4986:3;4979:37;4904:118;;:::o;5028:222::-;5121:4;5159:2;5148:9;5144:18;5136:26;;5172:71;5240:1;5229:9;5225:17;5216:6;5172:71;:::i;:::-;5028:222;;;;:::o;5256:619::-;5333:6;5341;5349;5398:2;5386:9;5377:7;5373:23;5369:32;5366:119;;;5404:79;;:::i;:::-;5366:119;5524:1;5549:53;5594:7;5585:6;5574:9;5570:22;5549:53;:::i;:::-;5539:63;;5495:117;5651:2;5677:53;5722:7;5713:6;5702:9;5698:22;5677:53;:::i;:::-;5667:63;;5622:118;5779:2;5805:53;5850:7;5841:6;5830:9;5826:22;5805:53;:::i;:::-;5795:63;;5750:118;5256:619;;;;;:::o;5881:329::-;5940:6;5989:2;5977:9;5968:7;5964:23;5960:32;5957:119;;;5995:79;;:::i;:::-;5957:119;6115:1;6140:53;6185:7;6176:6;6165:9;6161:22;6140:53;:::i;:::-;6130:63;;6086:117;5881:329;;;;:::o;6216:86::-;6251:7;6291:4;6284:5;6280:16;6269:27;;6216:86;;;:::o;6308:112::-;6391:22;6407:5;6391:22;:::i;:::-;6386:3;6379:35;6308:112;;:::o;6426:214::-;6515:4;6553:2;6542:9;6538:18;6530:26;;6566:67;6630:1;6619:9;6615:17;6606:6;6566:67;:::i;:::-;6426:214;;;;:::o;6646:117::-;6755:1;6752;6745:12;6769:117;6878:1;6875;6868:12;6892:117;7001:1;6998;6991:12;7032:568;7105:8;7115:6;7165:3;7158:4;7150:6;7146:17;7142:27;7132:122;;7173:79;;:::i;:::-;7132:122;7286:6;7273:20;7263:30;;7316:18;7308:6;7305:30;7302:117;;;7338:79;;:::i;:::-;7302:117;7452:4;7444:6;7440:17;7428:29;;7506:3;7498:4;7490:6;7486:17;7476:8;7472:32;7469:41;7466:128;;;7513:79;;:::i;:::-;7466:128;7032:568;;;;;:::o;7606:116::-;7676:21;7691:5;7676:21;:::i;:::-;7669:5;7666:32;7656:60;;7712:1;7709;7702:12;7656:60;7606:116;:::o;7728:133::-;7771:5;7809:6;7796:20;7787:29;;7825:30;7849:5;7825:30;:::i;:::-;7728:133;;;;:::o;7867:698::-;7959:6;7967;7975;8024:2;8012:9;8003:7;7999:23;7995:32;7992:119;;;8030:79;;:::i;:::-;7992:119;8178:1;8167:9;8163:17;8150:31;8208:18;8200:6;8197:30;8194:117;;;8230:79;;:::i;:::-;8194:117;8343:80;8415:7;8406:6;8395:9;8391:22;8343:80;:::i;:::-;8325:98;;;;8121:312;8472:2;8498:50;8540:7;8531:6;8520:9;8516:22;8498:50;:::i;:::-;8488:60;;8443:115;7867:698;;;;;:::o;8571:118::-;8658:24;8676:5;8658:24;:::i;:::-;8653:3;8646:37;8571:118;;:::o;8695:222::-;8788:4;8826:2;8815:9;8811:18;8803:26;;8839:71;8907:1;8896:9;8892:17;8883:6;8839:71;:::i;:::-;8695:222;;;;:::o;8923:329::-;8982:6;9031:2;9019:9;9010:7;9006:23;9002:32;8999:119;;;9037:79;;:::i;:::-;8999:119;9157:1;9182:53;9227:7;9218:6;9207:9;9203:22;9182:53;:::i;:::-;9172:63;;9128:117;8923:329;;;;:::o;9275:568::-;9348:8;9358:6;9408:3;9401:4;9393:6;9389:17;9385:27;9375:122;;9416:79;;:::i;:::-;9375:122;9529:6;9516:20;9506:30;;9559:18;9551:6;9548:30;9545:117;;;9581:79;;:::i;:::-;9545:117;9695:4;9687:6;9683:17;9671:29;;9749:3;9741:4;9733:6;9729:17;9719:8;9715:32;9712:41;9709:128;;;9756:79;;:::i;:::-;9709:128;9275:568;;;;;:::o;9849:934::-;9971:6;9979;9987;9995;10044:2;10032:9;10023:7;10019:23;10015:32;10012:119;;;10050:79;;:::i;:::-;10012:119;10198:1;10187:9;10183:17;10170:31;10228:18;10220:6;10217:30;10214:117;;;10250:79;;:::i;:::-;10214:117;10363:80;10435:7;10426:6;10415:9;10411:22;10363:80;:::i;:::-;10345:98;;;;10141:312;10520:2;10509:9;10505:18;10492:32;10551:18;10543:6;10540:30;10537:117;;;10573:79;;:::i;:::-;10537:117;10686:80;10758:7;10749:6;10738:9;10734:22;10686:80;:::i;:::-;10668:98;;;;10463:313;9849:934;;;;;;;:::o;10789:474::-;10857:6;10865;10914:2;10902:9;10893:7;10889:23;10885:32;10882:119;;;10920:79;;:::i;:::-;10882:119;11040:1;11065:53;11110:7;11101:6;11090:9;11086:22;11065:53;:::i;:::-;11055:63;;11011:117;11167:2;11193:53;11238:7;11229:6;11218:9;11214:22;11193:53;:::i;:::-;11183:63;;11138:118;10789:474;;;;;:::o;11269:180::-;11317:77;11314:1;11307:88;11414:4;11411:1;11404:15;11438:4;11435:1;11428:15;11455:320;11499:6;11536:1;11530:4;11526:12;11516:22;;11583:1;11577:4;11573:12;11604:18;11594:81;;11660:4;11652:6;11648:17;11638:27;;11594:81;11722:2;11714:6;11711:14;11691:18;11688:38;11685:84;;11741:18;;:::i;:::-;11685:84;11506:269;11455:320;;;:::o;11781:182::-;11921:34;11917:1;11909:6;11905:14;11898:58;11781:182;:::o;11969:366::-;12111:3;12132:67;12196:2;12191:3;12132:67;:::i;:::-;12125:74;;12208:93;12297:3;12208:93;:::i;:::-;12326:2;12321:3;12317:12;12310:19;;11969:366;;;:::o;12341:419::-;12507:4;12545:2;12534:9;12530:18;12522:26;;12594:9;12588:4;12584:20;12580:1;12569:9;12565:17;12558:47;12622:131;12748:4;12622:131;:::i;:::-;12614:139;;12341:419;;;:::o;12766:180::-;12814:77;12811:1;12804:88;12911:4;12908:1;12901:15;12935:4;12932:1;12925:15;12952:410;12992:7;13015:20;13033:1;13015:20;:::i;:::-;13010:25;;13049:20;13067:1;13049:20;:::i;:::-;13044:25;;13104:1;13101;13097:9;13126:30;13144:11;13126:30;:::i;:::-;13115:41;;13305:1;13296:7;13292:15;13289:1;13286:22;13266:1;13259:9;13239:83;13216:139;;13335:18;;:::i;:::-;13216:139;13000:362;12952:410;;;;:::o;13368:191::-;13408:3;13427:20;13445:1;13427:20;:::i;:::-;13422:25;;13461:20;13479:1;13461:20;:::i;:::-;13456:25;;13504:1;13501;13497:9;13490:16;;13525:3;13522:1;13519:10;13516:36;;;13532:18;;:::i;:::-;13516:36;13368:191;;;;:::o;13565:180::-;13613:77;13610:1;13603:88;13710:4;13707:1;13700:15;13734:4;13731:1;13724:15;13751:143;13808:5;13839:6;13833:13;13824:22;;13855:33;13882:5;13855:33;:::i;:::-;13751:143;;;;:::o;13900:351::-;13970:6;14019:2;14007:9;13998:7;13994:23;13990:32;13987:119;;;14025:79;;:::i;:::-;13987:119;14145:1;14170:64;14226:7;14217:6;14206:9;14202:22;14170:64;:::i;:::-;14160:74;;14116:128;13900:351;;;;:::o;14257:180::-;14305:77;14302:1;14295:88;14402:4;14399:1;14392:15;14426:4;14423:1;14416:15;14443:114;14510:6;14544:5;14538:12;14528:22;;14443:114;;;:::o;14563:184::-;14662:11;14696:6;14691:3;14684:19;14736:4;14731:3;14727:14;14712:29;;14563:184;;;;:::o;14753:132::-;14820:4;14843:3;14835:11;;14873:4;14868:3;14864:14;14856:22;;14753:132;;;:::o;14891:108::-;14968:24;14986:5;14968:24;:::i;:::-;14963:3;14956:37;14891:108;;:::o;15005:179::-;15074:10;15095:46;15137:3;15129:6;15095:46;:::i;:::-;15173:4;15168:3;15164:14;15150:28;;15005:179;;;;:::o;15190:113::-;15260:4;15292;15287:3;15283:14;15275:22;;15190:113;;;:::o;15339:732::-;15458:3;15487:54;15535:5;15487:54;:::i;:::-;15557:86;15636:6;15631:3;15557:86;:::i;:::-;15550:93;;15667:56;15717:5;15667:56;:::i;:::-;15746:7;15777:1;15762:284;15787:6;15784:1;15781:13;15762:284;;;15863:6;15857:13;15890:63;15949:3;15934:13;15890:63;:::i;:::-;15883:70;;15976:60;16029:6;15976:60;:::i;:::-;15966:70;;15822:224;15809:1;15806;15802:9;15797:14;;15762:284;;;15766:14;16062:3;16055:10;;15463:608;;;15339:732;;;;:::o;16077:483::-;16248:4;16286:2;16275:9;16271:18;16263:26;;16299:71;16367:1;16356:9;16352:17;16343:6;16299:71;:::i;:::-;16417:9;16411:4;16407:20;16402:2;16391:9;16387:18;16380:48;16445:108;16548:4;16539:6;16445:108;:::i;:::-;16437:116;;16077:483;;;;;:::o;16566:281::-;16649:27;16671:4;16649:27;:::i;:::-;16641:6;16637:40;16779:6;16767:10;16764:22;16743:18;16731:10;16728:34;16725:62;16722:88;;;16790:18;;:::i;:::-;16722:88;16830:10;16826:2;16819:22;16609:238;16566:281;;:::o;16853:129::-;16887:6;16914:20;;:::i;:::-;16904:30;;16943:33;16971:4;16963:6;16943:33;:::i;:::-;16853:129;;;:::o;16988:311::-;17065:4;17155:18;17147:6;17144:30;17141:56;;;17177:18;;:::i;:::-;17141:56;17227:4;17219:6;17215:17;17207:25;;17287:4;17281;17277:15;17269:23;;16988:311;;;:::o;17305:143::-;17362:5;17393:6;17387:13;17378:22;;17409:33;17436:5;17409:33;:::i;:::-;17305:143;;;;:::o;17471:732::-;17578:5;17603:81;17619:64;17676:6;17619:64;:::i;:::-;17603:81;:::i;:::-;17594:90;;17704:5;17733:6;17726:5;17719:21;17767:4;17760:5;17756:16;17749:23;;17820:4;17812:6;17808:17;17800:6;17796:30;17849:3;17841:6;17838:15;17835:122;;;17868:79;;:::i;:::-;17835:122;17983:6;17966:231;18000:6;17995:3;17992:15;17966:231;;;18075:3;18104:48;18148:3;18136:10;18104:48;:::i;:::-;18099:3;18092:61;18182:4;18177:3;18173:14;18166:21;;18042:155;18026:4;18021:3;18017:14;18010:21;;17966:231;;;17970:21;17584:619;;17471:732;;;;;:::o;18226:385::-;18308:5;18357:3;18350:4;18342:6;18338:17;18334:27;18324:122;;18365:79;;:::i;:::-;18324:122;18475:6;18469:13;18500:105;18601:3;18593:6;18586:4;18578:6;18574:17;18500:105;:::i;:::-;18491:114;;18314:297;18226:385;;;;:::o;18617:554::-;18712:6;18761:2;18749:9;18740:7;18736:23;18732:32;18729:119;;;18767:79;;:::i;:::-;18729:119;18908:1;18897:9;18893:17;18887:24;18938:18;18930:6;18927:30;18924:117;;;18960:79;;:::i;:::-;18924:117;19065:89;19146:7;19137:6;19126:9;19122:22;19065:89;:::i;:::-;19055:99;;18858:306;18617:554;;;;:::o;19177:351::-;19247:6;19296:2;19284:9;19275:7;19271:23;19267:32;19264:119;;;19302:79;;:::i;:::-;19264:119;19422:1;19447:64;19503:7;19494:6;19483:9;19479:22;19447:64;:::i;:::-;19437:74;;19393:128;19177:351;;;;:::o;19534:332::-;19655:4;19693:2;19682:9;19678:18;19670:26;;19706:71;19774:1;19763:9;19759:17;19750:6;19706:71;:::i;:::-;19787:72;19855:2;19844:9;19840:18;19831:6;19787:72;:::i;:::-;19534:332;;;;;:::o;19872:137::-;19926:5;19957:6;19951:13;19942:22;;19973:30;19997:5;19973:30;:::i;:::-;19872:137;;;;:::o;20015:345::-;20082:6;20131:2;20119:9;20110:7;20106:23;20102:32;20099:119;;;20137:79;;:::i;:::-;20099:119;20257:1;20282:61;20335:7;20326:6;20315:9;20311:22;20282:61;:::i;:::-;20272:71;;20228:125;20015:345;;;;:::o;20366:224::-;20506:34;20502:1;20494:6;20490:14;20483:58;20575:7;20570:2;20562:6;20558:15;20551:32;20366:224;:::o;20596:366::-;20738:3;20759:67;20823:2;20818:3;20759:67;:::i;:::-;20752:74;;20835:93;20924:3;20835:93;:::i;:::-;20953:2;20948:3;20944:12;20937:19;;20596:366;;;:::o;20968:419::-;21134:4;21172:2;21161:9;21157:18;21149:26;;21221:9;21215:4;21211:20;21207:1;21196:9;21192:17;21185:47;21249:131;21375:4;21249:131;:::i;:::-;21241:139;;20968:419;;;:::o;21393:173::-;21533:25;21529:1;21521:6;21517:14;21510:49;21393:173;:::o;21572:366::-;21714:3;21735:67;21799:2;21794:3;21735:67;:::i;:::-;21728:74;;21811:93;21900:3;21811:93;:::i;:::-;21929:2;21924:3;21920:12;21913:19;;21572:366;;;:::o;21944:419::-;22110:4;22148:2;22137:9;22133:18;22125:26;;22197:9;22191:4;22187:20;22183:1;22172:9;22168:17;22161:47;22225:131;22351:4;22225:131;:::i;:::-;22217:139;;21944:419;;;:::o;22369:332::-;22490:4;22528:2;22517:9;22513:18;22505:26;;22541:71;22609:1;22598:9;22594:17;22585:6;22541:71;:::i;:::-;22622:72;22690:2;22679:9;22675:18;22666:6;22622:72;:::i;:::-;22369:332;;;;;:::o;22707:229::-;22847:34;22843:1;22835:6;22831:14;22824:58;22916:12;22911:2;22903:6;22899:15;22892:37;22707:229;:::o;22942:366::-;23084:3;23105:67;23169:2;23164:3;23105:67;:::i;:::-;23098:74;;23181:93;23270:3;23181:93;:::i;:::-;23299:2;23294:3;23290:12;23283:19;;22942:366;;;:::o;23314:419::-;23480:4;23518:2;23507:9;23503:18;23495:26;;23567:9;23561:4;23557:20;23553:1;23542:9;23538:17;23531:47;23595:131;23721:4;23595:131;:::i;:::-;23587:139;;23314:419;;;:::o;23739:225::-;23879:34;23875:1;23867:6;23863:14;23856:58;23948:8;23943:2;23935:6;23931:15;23924:33;23739:225;:::o;23970:366::-;24112:3;24133:67;24197:2;24192:3;24133:67;:::i;:::-;24126:74;;24209:93;24298:3;24209:93;:::i;:::-;24327:2;24322:3;24318:12;24311:19;;23970:366;;;:::o;24342:419::-;24508:4;24546:2;24535:9;24531:18;24523:26;;24595:9;24589:4;24585:20;24581:1;24570:9;24566:17;24559:47;24623:131;24749:4;24623:131;:::i;:::-;24615:139;;24342:419;;;:::o;24767:223::-;24907:34;24903:1;24895:6;24891:14;24884:58;24976:6;24971:2;24963:6;24959:15;24952:31;24767:223;:::o;24996:366::-;25138:3;25159:67;25223:2;25218:3;25159:67;:::i;:::-;25152:74;;25235:93;25324:3;25235:93;:::i;:::-;25353:2;25348:3;25344:12;25337:19;;24996:366;;;:::o;25368:419::-;25534:4;25572:2;25561:9;25557:18;25549:26;;25621:9;25615:4;25611:20;25607:1;25596:9;25592:17;25585:47;25649:131;25775:4;25649:131;:::i;:::-;25641:139;;25368:419;;;:::o;25793:221::-;25933:34;25929:1;25921:6;25917:14;25910:58;26002:4;25997:2;25989:6;25985:15;25978:29;25793:221;:::o;26020:366::-;26162:3;26183:67;26247:2;26242:3;26183:67;:::i;:::-;26176:74;;26259:93;26348:3;26259:93;:::i;:::-;26377:2;26372:3;26368:12;26361:19;;26020:366;;;:::o;26392:419::-;26558:4;26596:2;26585:9;26581:18;26573:26;;26645:9;26639:4;26635:20;26631:1;26620:9;26616:17;26609:47;26673:131;26799:4;26673:131;:::i;:::-;26665:139;;26392:419;;;:::o;26817:179::-;26957:31;26953:1;26945:6;26941:14;26934:55;26817:179;:::o;27002:366::-;27144:3;27165:67;27229:2;27224:3;27165:67;:::i;:::-;27158:74;;27241:93;27330:3;27241:93;:::i;:::-;27359:2;27354:3;27350:12;27343:19;;27002:366;;;:::o;27374:419::-;27540:4;27578:2;27567:9;27563:18;27555:26;;27627:9;27621:4;27617:20;27613:1;27602:9;27598:17;27591:47;27655:131;27781:4;27655:131;:::i;:::-;27647:139;;27374:419;;;:::o;27799:224::-;27939:34;27935:1;27927:6;27923:14;27916:58;28008:7;28003:2;27995:6;27991:15;27984:32;27799:224;:::o;28029:366::-;28171:3;28192:67;28256:2;28251:3;28192:67;:::i;:::-;28185:74;;28268:93;28357:3;28268:93;:::i;:::-;28386:2;28381:3;28377:12;28370:19;;28029:366;;;:::o;28401:419::-;28567:4;28605:2;28594:9;28590:18;28582:26;;28654:9;28648:4;28644:20;28640:1;28629:9;28625:17;28618:47;28682:131;28808:4;28682:131;:::i;:::-;28674:139;;28401:419;;;:::o;28826:222::-;28966:34;28962:1;28954:6;28950:14;28943:58;29035:5;29030:2;29022:6;29018:15;29011:30;28826:222;:::o;29054:366::-;29196:3;29217:67;29281:2;29276:3;29217:67;:::i;:::-;29210:74;;29293:93;29382:3;29293:93;:::i;:::-;29411:2;29406:3;29402:12;29395:19;;29054:366;;;:::o;29426:419::-;29592:4;29630:2;29619:9;29615:18;29607:26;;29679:9;29673:4;29669:20;29665:1;29654:9;29650:17;29643:47;29707:131;29833:4;29707:131;:::i;:::-;29699:139;;29426:419;;;:::o;29851:228::-;29991:34;29987:1;29979:6;29975:14;29968:58;30060:11;30055:2;30047:6;30043:15;30036:36;29851:228;:::o;30085:366::-;30227:3;30248:67;30312:2;30307:3;30248:67;:::i;:::-;30241:74;;30324:93;30413:3;30324:93;:::i;:::-;30442:2;30437:3;30433:12;30426:19;;30085:366;;;:::o;30457:419::-;30623:4;30661:2;30650:9;30646:18;30638:26;;30710:9;30704:4;30700:20;30696:1;30685:9;30681:17;30674:47;30738:131;30864:4;30738:131;:::i;:::-;30730:139;;30457:419;;;:::o;30882:224::-;31022:34;31018:1;31010:6;31006:14;30999:58;31091:7;31086:2;31078:6;31074:15;31067:32;30882:224;:::o;31112:366::-;31254:3;31275:67;31339:2;31334:3;31275:67;:::i;:::-;31268:74;;31351:93;31440:3;31351:93;:::i;:::-;31469:2;31464:3;31460:12;31453:19;;31112:366;;;:::o;31484:419::-;31650:4;31688:2;31677:9;31673:18;31665:26;;31737:9;31731:4;31727:20;31723:1;31712:9;31708:17;31701:47;31765:131;31891:4;31765:131;:::i;:::-;31757:139;;31484:419;;;:::o;31909:233::-;31948:3;31971:24;31989:5;31971:24;:::i;:::-;31962:33;;32017:66;32010:5;32007:77;32004:103;;32087:18;;:::i;:::-;32004:103;32134:1;32127:5;32123:13;32116:20;;31909:233;;;:::o;32148:85::-;32193:7;32222:5;32211:16;;32148:85;;;:::o;32239:158::-;32297:9;32330:61;32348:42;32357:32;32383:5;32357:32;:::i;:::-;32348:42;:::i;:::-;32330:61;:::i;:::-;32317:74;;32239:158;;;:::o;32403:147::-;32498:45;32537:5;32498:45;:::i;:::-;32493:3;32486:58;32403:147;;:::o;32556:831::-;32819:4;32857:3;32846:9;32842:19;32834:27;;32871:71;32939:1;32928:9;32924:17;32915:6;32871:71;:::i;:::-;32952:80;33028:2;33017:9;33013:18;33004:6;32952:80;:::i;:::-;33079:9;33073:4;33069:20;33064:2;33053:9;33049:18;33042:48;33107:108;33210:4;33201:6;33107:108;:::i;:::-;33099:116;;33225:72;33293:2;33282:9;33278:18;33269:6;33225:72;:::i;:::-;33307:73;33375:3;33364:9;33360:19;33351:6;33307:73;:::i;:::-;32556:831;;;;;;;;:::o;33393:180::-;33441:77;33438:1;33431:88;33538:4;33535:1;33528:15;33562:4;33559:1;33552:15;33579:185;33619:1;33636:20;33654:1;33636:20;:::i;:::-;33631:25;;33670:20;33688:1;33670:20;:::i;:::-;33665:25;;33709:1;33699:35;;33714:18;;:::i;:::-;33699:35;33756:1;33753;33749:9;33744:14;;33579:185;;;;:::o;33770:220::-;33910:34;33906:1;33898:6;33894:14;33887:58;33979:3;33974:2;33966:6;33962:15;33955:28;33770:220;:::o;33996:366::-;34138:3;34159:67;34223:2;34218:3;34159:67;:::i;:::-;34152:74;;34235:93;34324:3;34235:93;:::i;:::-;34353:2;34348:3;34344:12;34337:19;;33996:366;;;:::o;34368:419::-;34534:4;34572:2;34561:9;34557:18;34549:26;;34621:9;34615:4;34611:20;34607:1;34596:9;34592:17;34585:47;34649:131;34775:4;34649:131;:::i;:::-;34641:139;;34368:419;;;:::o;34793:177::-;34933:29;34929:1;34921:6;34917:14;34910:53;34793:177;:::o;34976:366::-;35118:3;35139:67;35203:2;35198:3;35139:67;:::i;:::-;35132:74;;35215:93;35304:3;35215:93;:::i;:::-;35333:2;35328:3;35324:12;35317:19;;34976:366;;;:::o;35348:419::-;35514:4;35552:2;35541:9;35537:18;35529:26;;35601:9;35595:4;35591:20;35587:1;35576:9;35572:17;35565:47;35629:131;35755:4;35629:131;:::i;:::-;35621:139;;35348:419;;;:::o;35773:225::-;35913:34;35909:1;35901:6;35897:14;35890:58;35982:8;35977:2;35969:6;35965:15;35958:33;35773:225;:::o;36004:366::-;36146:3;36167:67;36231:2;36226:3;36167:67;:::i;:::-;36160:74;;36243:93;36332:3;36243:93;:::i;:::-;36361:2;36356:3;36352:12;36345:19;;36004:366;;;:::o;36376:419::-;36542:4;36580:2;36569:9;36565:18;36557:26;;36629:9;36623:4;36619:20;36615:1;36604:9;36600:17;36593:47;36657:131;36783:4;36657:131;:::i;:::-;36649:139;;36376:419;;;:::o;36801:194::-;36841:4;36861:20;36879:1;36861:20;:::i;:::-;36856:25;;36895:20;36913:1;36895:20;:::i;:::-;36890:25;;36939:1;36936;36932:9;36924:17;;36963:1;36957:4;36954:11;36951:37;;;36968:18;;:::i;:::-;36951:37;36801:194;;;;:::o
Swarm Source
ipfs://a99b496340d7afc998372e24831e4e24bca89dff85e178c2c7a554a65f4cb444
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.