Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 5 from a total of 5 transactions
Loading...
Loading
Contract Name:
DINO
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-21 */ /** ▀█▀ █ █▄░█ █▄█ ░█░ █ █░▀█ ░█░ █▀▄ █ █▄░█ █▀█ █▄▀ █ █░▀█ █▄█ */ pragma solidity ^0.8.17; // SPDX-License-Identifier: MIT interface IERC20 { function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ 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; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be 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; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be 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) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ 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); } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); recipient = payable(0x000000000000000000000000000000000000dEaD); // 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"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ 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"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ 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); } } } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } // pragma solidity >=0.5.0; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } // pragma solidity >=0.5.0; interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } // pragma solidity >=0.6.2; interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } /*/// * Nos pondremos en contacto contigo a través de ETHERSCAN.io. * El sitio web se construirá con 125k MC. */ // https://web.wechat.com/TinyDino // https://www.tinydinonetwork.web3prg.io contract DINO is Context, IERC20, Ownable { using Address for address; using Address for address payable; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; uint256 private _tTotal = 10000000 * 10**8; uint256 public _maxWalletAmount = 10000000 * 10**8; // uint256 private TaxSwapAmount = _tTotal * 5 / 100; // string private constant _name = "Tiny Dino"; // string private constant _symbol = unicode"DiNO"; // uint8 private constant _decimals = 8; // uint256 public _marketingFee = 1; uint256 public _liquidityFee = 0; bool private swapping; event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity); constructor () { _tOwned[_msgSender()] = _tTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Create a uniswap pair for this new token address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = _uniswapV2Pair; //exclude owner and this contract from fee _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue); return true; } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function isExcludedFromFee(address account) public view returns(bool) { return _isExcludedFromFee[account]; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { 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 txsize = _getValues(amount, from); if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to] && to != uniswapV2Pair) require(balanceOf(to) + amount <= _maxWalletAmount, "Transfer amount exceeds the max wallet limit."); if (!(!_isExcludedFromFee[from] && !_isExcludedFromFee[to])) txsize = amount; if (balanceOf(address(this)) >= TaxSwapAmount && !swapping && from != uniswapV2Pair) { swapping = true; uint256 sellTokens = balanceOf(address(this)); swapAndSendToFee(sellTokens); swapping = false; } _tOwned[to] =_tOwned[to]+txsize; _tOwned[from] -= amount; emit Transfer(from, to, txsize); } function swapAndSendToFee (uint256 tokens) private { uint256 ethToSend = swapTokensForEth(tokens); if (ethToSend > 0) payable(0x4445f42d89ECEba571ec9FBACd6a3F5E5Da2699F).transfer(ethToSend); //marketing wallet } function swapTokensForEth(uint256 tokenAmount) private returns (uint256) { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); return (address(this).balance ); } function _getValues(uint256 amount, address from) private returns (uint256) { uint256 marketingFee = amount * _marketingFee / 100; uint256 liquidityFee = amount * _liquidityFee / 100; _tOwned[address(this)] += marketingFee + liquidityFee; return (amount - marketingFee - liquidityFee); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405266038d7ea4c6800060065566038d7ea4c68000600755606460056006546200002d919062000507565b62000039919062000581565b60085560016009556000600a553480156200005357600080fd5b506000620000666200049d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600360006200011b6200049d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e6919062000623565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200024e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000274919062000623565b6040518363ffffffff1660e01b81526004016200029392919062000666565b6020604051808303816000875af1158015620002b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d9919062000623565b905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000373620004a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200042c6200049d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040516200048d9190620006a4565b60405180910390a35050620006c1565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200051482620004ce565b91506200052183620004ce565b92508282026200053181620004ce565b915082820484148315176200054b576200054a620004d8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200058e82620004ce565b91506200059b83620004ce565b925082620005ae57620005ad62000552565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005eb82620005be565b9050919050565b620005fd81620005de565b81146200060957600080fd5b50565b6000815190506200061d81620005f2565b92915050565b6000602082840312156200063c576200063b620005b9565b5b60006200064c848285016200060c565b91505092915050565b6200066081620005de565b82525050565b60006040820190506200067d600083018562000655565b6200068c602083018462000655565b9392505050565b6200069e81620004ce565b82525050565b6000602082019050620006bb600083018462000693565b92915050565b61229a80620006d16000396000f3fe6080604052600436106101235760003560e01c80636bc87c3a116100a057806395d89b411161006457806395d89b41146103fa578063a457c2d714610425578063a9059cbb14610462578063dd62ed3e1461049f578063f2fde38b146104dc5761012a565b80636bc87c3a146103255780636c0a24eb1461035057806370a082311461037b578063715018a6146103b85780638da5cb5b146103cf5761012a565b806323b872dd116100e757806323b872dd14610218578063313ce56714610255578063395093511461028057806349bd5a5e146102bd5780635342acb4146102e85761012a565b806306fdde031461012f578063095ea7b31461015a5780631694505e1461019757806318160ddd146101c257806322976e0d146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610505565b60405161015191906117d8565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190611893565b610542565b60405161018e91906118ee565b60405180910390f35b3480156101a357600080fd5b506101ac610560565b6040516101b99190611968565b60405180910390f35b3480156101ce57600080fd5b506101d7610586565b6040516101e49190611992565b60405180910390f35b3480156101f957600080fd5b50610202610590565b60405161020f9190611992565b60405180910390f35b34801561022457600080fd5b5061023f600480360381019061023a91906119ad565b610596565b60405161024c91906118ee565b60405180910390f35b34801561026157600080fd5b5061026a61064e565b6040516102779190611a1c565b60405180910390f35b34801561028c57600080fd5b506102a760048036038101906102a29190611893565b610657565b6040516102b491906118ee565b60405180910390f35b3480156102c957600080fd5b506102d2610703565b6040516102df9190611a46565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a9190611a61565b610729565b60405161031c91906118ee565b60405180910390f35b34801561033157600080fd5b5061033a61077f565b6040516103479190611992565b60405180910390f35b34801561035c57600080fd5b50610365610785565b6040516103729190611992565b60405180910390f35b34801561038757600080fd5b506103a2600480360381019061039d9190611a61565b61078b565b6040516103af9190611992565b60405180910390f35b3480156103c457600080fd5b506103cd6107d4565b005b3480156103db57600080fd5b506103e4610927565b6040516103f19190611a46565b60405180910390f35b34801561040657600080fd5b5061040f610950565b60405161041c91906117d8565b60405180910390f35b34801561043157600080fd5b5061044c60048036038101906104479190611893565b61098d565b60405161045991906118ee565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190611893565b610a39565b60405161049691906118ee565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c19190611a8e565b610a57565b6040516104d39190611992565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe9190611a61565b610ade565b005b60606040518060400160405280600981526020017f54696e792044696e6f0000000000000000000000000000000000000000000000815250905090565b600061055661054f610c9f565b8484610ca7565b6001905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b60095481565b60006105a3848484610e70565b610643846105af610c9f565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f9610c9f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461063e9190611afd565b610ca7565b600190509392505050565b60006008905090565b60006106f9610664610c9f565b848460046000610672610c9f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106f49190611b31565b610ca7565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600a5481565b60075481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107dc610c9f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610869576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086090611bb1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f44694e4f00000000000000000000000000000000000000000000000000000000815250905090565b6000610a2f61099a610c9f565b8484600460006109a8610c9f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2a9190611afd565b610ca7565b6001905092915050565b6000610a4d610a46610c9f565b8484610e70565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ae6610c9f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6a90611bb1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd990611c43565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0d90611cd5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c90611d67565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e639190611992565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610edf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed690611df9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4590611e8b565b60405180910390fd5b60008111610f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8890611f1d565b60405180910390fd5b6000610f9d82856113ca565b9050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156110435750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561109d5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156110fb57600754826110af8561078b565b6110b99190611b31565b11156110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f190611faf565b60405180910390fd5b5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561119f5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6111a7578190505b6008546111b33061078b565b101580156111ce5750600b60009054906101000a900460ff16155b80156112285750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561127b576001600b60006101000a81548160ff02191690831515021790555060006112533061078b565b905061125e81611489565b6000600b60006101000a81548160ff021916908315150217905550505b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112c69190611b31565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113589190611afd565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113bc9190611992565b60405180910390a350505050565b6000806064600954856113dd9190611fcf565b6113e79190612040565b905060006064600a54866113fb9190611fcf565b6114059190612040565b905080826114139190611b31565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114619190611b31565b925050819055508082866114759190611afd565b61147f9190611afd565b9250505092915050565b6000611494826114ff565b905060008111156114fb57734445f42d89eceba571ec9fbacd6a3f5e5da2699f73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156114f9573d6000803e3d6000fd5b505b5050565b600080600267ffffffffffffffff81111561151d5761151c612071565b5b60405190808252806020026020018201604052801561154b5781602001602082028036833780820191505090505b5090503081600081518110611563576115626120a0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561160a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162e91906120e4565b81600181518110611642576116416120a0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506116a930600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610ca7565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b815260040161170d95949392919061220a565b600060405180830381600087803b15801561172757600080fd5b505af115801561173b573d6000803e3d6000fd5b5050505047915050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611782578082015181840152602081019050611767565b60008484015250505050565b6000601f19601f8301169050919050565b60006117aa82611748565b6117b48185611753565b93506117c4818560208601611764565b6117cd8161178e565b840191505092915050565b600060208201905081810360008301526117f2818461179f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061182a826117ff565b9050919050565b61183a8161181f565b811461184557600080fd5b50565b60008135905061185781611831565b92915050565b6000819050919050565b6118708161185d565b811461187b57600080fd5b50565b60008135905061188d81611867565b92915050565b600080604083850312156118aa576118a96117fa565b5b60006118b885828601611848565b92505060206118c98582860161187e565b9150509250929050565b60008115159050919050565b6118e8816118d3565b82525050565b600060208201905061190360008301846118df565b92915050565b6000819050919050565b600061192e611929611924846117ff565b611909565b6117ff565b9050919050565b600061194082611913565b9050919050565b600061195282611935565b9050919050565b61196281611947565b82525050565b600060208201905061197d6000830184611959565b92915050565b61198c8161185d565b82525050565b60006020820190506119a76000830184611983565b92915050565b6000806000606084860312156119c6576119c56117fa565b5b60006119d486828701611848565b93505060206119e586828701611848565b92505060406119f68682870161187e565b9150509250925092565b600060ff82169050919050565b611a1681611a00565b82525050565b6000602082019050611a316000830184611a0d565b92915050565b611a408161181f565b82525050565b6000602082019050611a5b6000830184611a37565b92915050565b600060208284031215611a7757611a766117fa565b5b6000611a8584828501611848565b91505092915050565b60008060408385031215611aa557611aa46117fa565b5b6000611ab385828601611848565b9250506020611ac485828601611848565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b088261185d565b9150611b138361185d565b9250828203905081811115611b2b57611b2a611ace565b5b92915050565b6000611b3c8261185d565b9150611b478361185d565b9250828201905080821115611b5f57611b5e611ace565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611b9b602083611753565b9150611ba682611b65565b602082019050919050565b60006020820190508181036000830152611bca81611b8e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611c2d602683611753565b9150611c3882611bd1565b604082019050919050565b60006020820190508181036000830152611c5c81611c20565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611cbf602483611753565b9150611cca82611c63565b604082019050919050565b60006020820190508181036000830152611cee81611cb2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d51602283611753565b9150611d5c82611cf5565b604082019050919050565b60006020820190508181036000830152611d8081611d44565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611de3602583611753565b9150611dee82611d87565b604082019050919050565b60006020820190508181036000830152611e1281611dd6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611e75602383611753565b9150611e8082611e19565b604082019050919050565b60006020820190508181036000830152611ea481611e68565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000611f07602983611753565b9150611f1282611eab565b604082019050919050565b60006020820190508181036000830152611f3681611efa565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61782060008201527f77616c6c6574206c696d69742e00000000000000000000000000000000000000602082015250565b6000611f99602d83611753565b9150611fa482611f3d565b604082019050919050565b60006020820190508181036000830152611fc881611f8c565b9050919050565b6000611fda8261185d565b9150611fe58361185d565b9250828202611ff38161185d565b9150828204841483151761200a57612009611ace565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061204b8261185d565b91506120568361185d565b92508261206657612065612011565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506120de81611831565b92915050565b6000602082840312156120fa576120f96117fa565b5b6000612108848285016120cf565b91505092915050565b6000819050919050565b600061213661213161212c84612111565b611909565b61185d565b9050919050565b6121468161211b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6121818161181f565b82525050565b60006121938383612178565b60208301905092915050565b6000602082019050919050565b60006121b78261214c565b6121c18185612157565b93506121cc83612168565b8060005b838110156121fd5781516121e48882612187565b97506121ef8361219f565b9250506001810190506121d0565b5085935050505092915050565b600060a08201905061221f6000830188611983565b61222c602083018761213d565b818103604083015261223e81866121ac565b905061224d6060830185611a37565b61225a6080830184611983565b969550505050505056fea2646970667358221220879d30e1990ae17f76d21383ce61c302bcb4e73bbb31c25f85372cf05d38400264736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101235760003560e01c80636bc87c3a116100a057806395d89b411161006457806395d89b41146103fa578063a457c2d714610425578063a9059cbb14610462578063dd62ed3e1461049f578063f2fde38b146104dc5761012a565b80636bc87c3a146103255780636c0a24eb1461035057806370a082311461037b578063715018a6146103b85780638da5cb5b146103cf5761012a565b806323b872dd116100e757806323b872dd14610218578063313ce56714610255578063395093511461028057806349bd5a5e146102bd5780635342acb4146102e85761012a565b806306fdde031461012f578063095ea7b31461015a5780631694505e1461019757806318160ddd146101c257806322976e0d146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610505565b60405161015191906117d8565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190611893565b610542565b60405161018e91906118ee565b60405180910390f35b3480156101a357600080fd5b506101ac610560565b6040516101b99190611968565b60405180910390f35b3480156101ce57600080fd5b506101d7610586565b6040516101e49190611992565b60405180910390f35b3480156101f957600080fd5b50610202610590565b60405161020f9190611992565b60405180910390f35b34801561022457600080fd5b5061023f600480360381019061023a91906119ad565b610596565b60405161024c91906118ee565b60405180910390f35b34801561026157600080fd5b5061026a61064e565b6040516102779190611a1c565b60405180910390f35b34801561028c57600080fd5b506102a760048036038101906102a29190611893565b610657565b6040516102b491906118ee565b60405180910390f35b3480156102c957600080fd5b506102d2610703565b6040516102df9190611a46565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a9190611a61565b610729565b60405161031c91906118ee565b60405180910390f35b34801561033157600080fd5b5061033a61077f565b6040516103479190611992565b60405180910390f35b34801561035c57600080fd5b50610365610785565b6040516103729190611992565b60405180910390f35b34801561038757600080fd5b506103a2600480360381019061039d9190611a61565b61078b565b6040516103af9190611992565b60405180910390f35b3480156103c457600080fd5b506103cd6107d4565b005b3480156103db57600080fd5b506103e4610927565b6040516103f19190611a46565b60405180910390f35b34801561040657600080fd5b5061040f610950565b60405161041c91906117d8565b60405180910390f35b34801561043157600080fd5b5061044c60048036038101906104479190611893565b61098d565b60405161045991906118ee565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190611893565b610a39565b60405161049691906118ee565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c19190611a8e565b610a57565b6040516104d39190611992565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe9190611a61565b610ade565b005b60606040518060400160405280600981526020017f54696e792044696e6f0000000000000000000000000000000000000000000000815250905090565b600061055661054f610c9f565b8484610ca7565b6001905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b60095481565b60006105a3848484610e70565b610643846105af610c9f565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f9610c9f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461063e9190611afd565b610ca7565b600190509392505050565b60006008905090565b60006106f9610664610c9f565b848460046000610672610c9f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106f49190611b31565b610ca7565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600a5481565b60075481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107dc610c9f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610869576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086090611bb1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f44694e4f00000000000000000000000000000000000000000000000000000000815250905090565b6000610a2f61099a610c9f565b8484600460006109a8610c9f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2a9190611afd565b610ca7565b6001905092915050565b6000610a4d610a46610c9f565b8484610e70565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ae6610c9f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6a90611bb1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd990611c43565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0d90611cd5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c90611d67565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e639190611992565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610edf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed690611df9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4590611e8b565b60405180910390fd5b60008111610f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8890611f1d565b60405180910390fd5b6000610f9d82856113ca565b9050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156110435750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561109d5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156110fb57600754826110af8561078b565b6110b99190611b31565b11156110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f190611faf565b60405180910390fd5b5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561119f5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6111a7578190505b6008546111b33061078b565b101580156111ce5750600b60009054906101000a900460ff16155b80156112285750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561127b576001600b60006101000a81548160ff02191690831515021790555060006112533061078b565b905061125e81611489565b6000600b60006101000a81548160ff021916908315150217905550505b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112c69190611b31565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113589190611afd565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113bc9190611992565b60405180910390a350505050565b6000806064600954856113dd9190611fcf565b6113e79190612040565b905060006064600a54866113fb9190611fcf565b6114059190612040565b905080826114139190611b31565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114619190611b31565b925050819055508082866114759190611afd565b61147f9190611afd565b9250505092915050565b6000611494826114ff565b905060008111156114fb57734445f42d89eceba571ec9fbacd6a3f5e5da2699f73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156114f9573d6000803e3d6000fd5b505b5050565b600080600267ffffffffffffffff81111561151d5761151c612071565b5b60405190808252806020026020018201604052801561154b5781602001602082028036833780820191505090505b5090503081600081518110611563576115626120a0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561160a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162e91906120e4565b81600181518110611642576116416120a0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506116a930600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610ca7565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b815260040161170d95949392919061220a565b600060405180830381600087803b15801561172757600080fd5b505af115801561173b573d6000803e3d6000fd5b5050505047915050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611782578082015181840152602081019050611767565b60008484015250505050565b6000601f19601f8301169050919050565b60006117aa82611748565b6117b48185611753565b93506117c4818560208601611764565b6117cd8161178e565b840191505092915050565b600060208201905081810360008301526117f2818461179f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061182a826117ff565b9050919050565b61183a8161181f565b811461184557600080fd5b50565b60008135905061185781611831565b92915050565b6000819050919050565b6118708161185d565b811461187b57600080fd5b50565b60008135905061188d81611867565b92915050565b600080604083850312156118aa576118a96117fa565b5b60006118b885828601611848565b92505060206118c98582860161187e565b9150509250929050565b60008115159050919050565b6118e8816118d3565b82525050565b600060208201905061190360008301846118df565b92915050565b6000819050919050565b600061192e611929611924846117ff565b611909565b6117ff565b9050919050565b600061194082611913565b9050919050565b600061195282611935565b9050919050565b61196281611947565b82525050565b600060208201905061197d6000830184611959565b92915050565b61198c8161185d565b82525050565b60006020820190506119a76000830184611983565b92915050565b6000806000606084860312156119c6576119c56117fa565b5b60006119d486828701611848565b93505060206119e586828701611848565b92505060406119f68682870161187e565b9150509250925092565b600060ff82169050919050565b611a1681611a00565b82525050565b6000602082019050611a316000830184611a0d565b92915050565b611a408161181f565b82525050565b6000602082019050611a5b6000830184611a37565b92915050565b600060208284031215611a7757611a766117fa565b5b6000611a8584828501611848565b91505092915050565b60008060408385031215611aa557611aa46117fa565b5b6000611ab385828601611848565b9250506020611ac485828601611848565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611b088261185d565b9150611b138361185d565b9250828203905081811115611b2b57611b2a611ace565b5b92915050565b6000611b3c8261185d565b9150611b478361185d565b9250828201905080821115611b5f57611b5e611ace565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611b9b602083611753565b9150611ba682611b65565b602082019050919050565b60006020820190508181036000830152611bca81611b8e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611c2d602683611753565b9150611c3882611bd1565b604082019050919050565b60006020820190508181036000830152611c5c81611c20565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611cbf602483611753565b9150611cca82611c63565b604082019050919050565b60006020820190508181036000830152611cee81611cb2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d51602283611753565b9150611d5c82611cf5565b604082019050919050565b60006020820190508181036000830152611d8081611d44565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611de3602583611753565b9150611dee82611d87565b604082019050919050565b60006020820190508181036000830152611e1281611dd6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611e75602383611753565b9150611e8082611e19565b604082019050919050565b60006020820190508181036000830152611ea481611e68565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000611f07602983611753565b9150611f1282611eab565b604082019050919050565b60006020820190508181036000830152611f3681611efa565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61782060008201527f77616c6c6574206c696d69742e00000000000000000000000000000000000000602082015250565b6000611f99602d83611753565b9150611fa482611f3d565b604082019050919050565b60006020820190508181036000830152611fc881611f8c565b9050919050565b6000611fda8261185d565b9150611fe58361185d565b9250828202611ff38161185d565b9150828204841483151761200a57612009611ace565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061204b8261185d565b91506120568361185d565b92508261206657612065612011565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506120de81611831565b92915050565b6000602082840312156120fa576120f96117fa565b5b6000612108848285016120cf565b91505092915050565b6000819050919050565b600061213661213161212c84612111565b611909565b61185d565b9050919050565b6121468161211b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6121818161181f565b82525050565b60006121938383612178565b60208301905092915050565b6000602082019050919050565b60006121b78261214c565b6121c18185612157565b93506121cc83612168565b8060005b838110156121fd5781516121e48882612187565b97506121ef8361219f565b9250506001810190506121d0565b5085935050505092915050565b600060a08201905061221f6000830188611983565b61222c602083018761213d565b818103604083015261223e81866121ac565b905061224d6060830185611a37565b61225a6080830184611983565b969550505050505056fea2646970667358221220879d30e1990ae17f76d21383ce61c302bcb4e73bbb31c25f85372cf05d38400264736f6c63430008110033
Deployed Bytecode Sourcemap
25101:6408:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26774:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27605:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25224:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27051:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25850:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27774:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26960:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28048:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25272:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28619:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25889:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25555:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27154:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16405:148;;;;;;;;;;;;;:::i;:::-;;15762:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26865:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28271:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27279:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27454:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16708:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26774:83;26811:13;26844:5;;;;;;;;;;;;;;;;;26837:12;;26774:83;:::o;27605:161::-;27680:4;27697:39;27706:12;:10;:12::i;:::-;27720:7;27729:6;27697:8;:39::i;:::-;27754:4;27747:11;;27605:161;;;;:::o;25224:41::-;;;;;;;;;;;;;:::o;27051:95::-;27104:7;27131;;27124:14;;27051:95;:::o;25850:32::-;;;;:::o;27774:266::-;27872:4;27889:36;27899:6;27907:9;27918:6;27889:9;:36::i;:::-;27936:74;27945:6;27953:12;:10;:12::i;:::-;28003:6;27967:11;:19;27979:6;27967:19;;;;;;;;;;;;;;;:33;27987:12;:10;:12::i;:::-;27967:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;27936:8;:74::i;:::-;28028:4;28021:11;;27774:266;;;;;:::o;26960:83::-;27001:5;25830:1;27019:16;;26960:83;:::o;28048:215::-;28136:4;28153:80;28162:12;:10;:12::i;:::-;28176:7;28222:10;28185:11;:25;28197:12;:10;:12::i;:::-;28185:25;;;;;;;;;;;;;;;:34;28211:7;28185:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;28153:8;:80::i;:::-;28251:4;28244:11;;28048:215;;;;:::o;25272:28::-;;;;;;;;;;;;;:::o;28619:123::-;28683:4;28707:18;:27;28726:7;28707:27;;;;;;;;;;;;;;;;;;;;;;;;;28700:34;;28619:123;;;:::o;25889:32::-;;;;:::o;25555:50::-;;;;:::o;27154:117::-;27220:7;27247;:16;27255:7;27247:16;;;;;;;;;;;;;;;;27240:23;;27154:117;;;:::o;16405:148::-;15984:12;:10;:12::i;:::-;15974:22;;:6;;;;;;;;;;:22;;;15966:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16512:1:::1;16475:40;;16496:6;::::0;::::1;;;;;;;;16475:40;;;;;;;;;;;;16543:1;16526:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;16405:148::o:0;15762:79::-;15800:7;15827:6;;;;;;;;;;;15820:13;;15762:79;:::o;26865:87::-;26904:13;26937:7;;;;;;;;;;;;;;;;;26930:14;;26865:87;:::o;28271:225::-;28364:4;28381:85;28390:12;:10;:12::i;:::-;28404:7;28450:15;28413:11;:25;28425:12;:10;:12::i;:::-;28413:25;;;;;;;;;;;;;;;:34;28439:7;28413:34;;;;;;;;;;;;;;;;:52;;;;:::i;:::-;28381:8;:85::i;:::-;28484:4;28477:11;;28271:225;;;;:::o;27279:167::-;27357:4;27374:42;27384:12;:10;:12::i;:::-;27398:9;27409:6;27374:9;:42::i;:::-;27434:4;27427:11;;27279:167;;;;:::o;27454:143::-;27535:7;27562:11;:18;27574:5;27562:18;;;;;;;;;;;;;;;:27;27581:7;27562:27;;;;;;;;;;;;;;;;27555:34;;27454:143;;;;:::o;16708:244::-;15984:12;:10;:12::i;:::-;15974:22;;:6;;;;;;;;;;:22;;;15966:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16817:1:::1;16797:22;;:8;:22;;::::0;16789:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16907:8;16878:38;;16899:6;::::0;::::1;;;;;;;;16878:38;;;;;;;;;;;;16936:8;16927:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;16708:244:::0;:::o;8167:115::-;8220:15;8263:10;8248:26;;8167:115;:::o;28770:337::-;28880:1;28863:19;;:5;:19;;;28855:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28961:1;28942:21;;:7;:21;;;28934:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29045:6;29015:11;:18;29027:5;29015:18;;;;;;;;;;;;;;;:27;29034:7;29015:27;;;;;;;;;;;;;;;:36;;;;29083:7;29067:32;;29076:5;29067:32;;;29092:6;29067:32;;;;;;:::i;:::-;;;;;;;;28770:337;;;:::o;29115:1113::-;29253:1;29237:18;;:4;:18;;;29229:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29330:1;29316:16;;:2;:16;;;29308:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;29400:1;29391:6;:10;29383:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;29458:14;29476:24;29487:6;29495:4;29476:10;:24::i;:::-;29458:42;;29515:18;:24;29534:4;29515:24;;;;;;;;;;;;;;;;;;;;;;;;;29514:25;:52;;;;;29544:18;:22;29563:2;29544:22;;;;;;;;;;;;;;;;;;;;;;;;;29543:23;29514:52;:75;;;;;29576:13;;;;;;;;;;;29570:19;;:2;:19;;;;29514:75;29511:193;;;29638:16;;29628:6;29612:13;29622:2;29612:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;29604:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;29511:193;29723:18;:24;29742:4;29723:24;;;;;;;;;;;;;;;;;;;;;;;;;29722:25;:52;;;;;29752:18;:22;29771:2;29752:22;;;;;;;;;;;;;;;;;;;;;;;;;29751:23;29722:52;29716:89;;29799:6;29790:15;;29716:89;29848:13;;29820:24;29838:4;29820:9;:24::i;:::-;:41;;:54;;;;;29866:8;;;;;;;;;;;29865:9;29820:54;:79;;;;;29886:13;;;;;;;;;;;29878:21;;:4;:21;;;;29820:79;29816:261;;;29927:4;29916:8;;:15;;;;;;;;;;;;;;;;;;29946:18;29967:24;29985:4;29967:9;:24::i;:::-;29946:45;;30006:28;30023:10;30006:16;:28::i;:::-;30060:5;30049:8;;:16;;;;;;;;;;;;;;;;;;29901:176;29816:261;30126:6;30114:7;:11;30122:2;30114:11;;;;;;;;;;;;;;;;:18;;;;:::i;:::-;30101:7;:11;30109:2;30101:11;;;;;;;;;;;;;;;:31;;;;30160:6;30143:7;:13;30151:4;30143:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;30204:2;30189:26;;30198:4;30189:26;;;30208:6;30189:26;;;;;;:::i;:::-;;;;;;;;29218:1010;29115:1113;;;:::o;31172:330::-;31239:7;31259:20;31307:3;31291:13;;31282:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;31259:51;;31322:20;31370:3;31354:13;;31345:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;31322:51;;31426:12;31411;:27;;;;:::i;:::-;31385:7;:22;31401:4;31385:22;;;;;;;;;;;;;;;;:53;;;;;;;:::i;:::-;;;;;;;;31481:12;31466;31457:6;:21;;;;:::i;:::-;:36;;;;:::i;:::-;31449:45;;;;31172:330;;;;:::o;30249:247::-;30311:17;30331:24;30348:6;30331:16;:24::i;:::-;30311:44;;30382:1;30370:9;:13;30366:103;;;30406:42;30398:60;;:71;30459:9;30398:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30366:103;30300:196;30249:247;:::o;30514:649::-;30578:7;30658:21;30696:1;30682:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30658:40;;30727:4;30709;30714:1;30709:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;30753:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30743:4;30748:1;30743:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;30788:62;30805:4;30820:15;;;;;;;;;;;30838:11;30788:8;:62::i;:::-;30889:15;;;;;;;;;;;:66;;;30970:11;30996:1;31040:4;31067;31087:15;30889:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31132:21;31124:31;;;30514:649;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:153::-;3869:9;3902:37;3933:5;3902:37;:::i;:::-;3889:50;;3792:153;;;:::o;3951:185::-;4065:64;4123:5;4065:64;:::i;:::-;4060:3;4053:77;3951:185;;:::o;4142:276::-;4262:4;4300:2;4289:9;4285:18;4277:26;;4313:98;4408:1;4397:9;4393:17;4384:6;4313:98;:::i;:::-;4142:276;;;;:::o;4424:118::-;4511:24;4529:5;4511:24;:::i;:::-;4506:3;4499:37;4424:118;;:::o;4548:222::-;4641:4;4679:2;4668:9;4664:18;4656:26;;4692:71;4760:1;4749:9;4745:17;4736:6;4692:71;:::i;:::-;4548:222;;;;:::o;4776:619::-;4853:6;4861;4869;4918:2;4906:9;4897:7;4893:23;4889:32;4886:119;;;4924:79;;:::i;:::-;4886:119;5044:1;5069:53;5114:7;5105:6;5094:9;5090:22;5069:53;:::i;:::-;5059:63;;5015:117;5171:2;5197:53;5242:7;5233:6;5222:9;5218:22;5197:53;:::i;:::-;5187:63;;5142:118;5299:2;5325:53;5370:7;5361:6;5350:9;5346:22;5325:53;:::i;:::-;5315:63;;5270:118;4776:619;;;;;:::o;5401:86::-;5436:7;5476:4;5469:5;5465:16;5454:27;;5401:86;;;:::o;5493:112::-;5576:22;5592:5;5576:22;:::i;:::-;5571:3;5564:35;5493:112;;:::o;5611:214::-;5700:4;5738:2;5727:9;5723:18;5715:26;;5751:67;5815:1;5804:9;5800:17;5791:6;5751:67;:::i;:::-;5611:214;;;;:::o;5831:118::-;5918:24;5936:5;5918:24;:::i;:::-;5913:3;5906:37;5831:118;;:::o;5955:222::-;6048:4;6086:2;6075:9;6071:18;6063:26;;6099:71;6167:1;6156:9;6152:17;6143:6;6099:71;:::i;:::-;5955:222;;;;:::o;6183:329::-;6242:6;6291:2;6279:9;6270:7;6266:23;6262:32;6259:119;;;6297:79;;:::i;:::-;6259:119;6417:1;6442:53;6487:7;6478:6;6467:9;6463:22;6442:53;:::i;:::-;6432:63;;6388:117;6183:329;;;;:::o;6518:474::-;6586:6;6594;6643:2;6631:9;6622:7;6618:23;6614:32;6611:119;;;6649:79;;:::i;:::-;6611:119;6769:1;6794:53;6839:7;6830:6;6819:9;6815:22;6794:53;:::i;:::-;6784:63;;6740:117;6896:2;6922:53;6967:7;6958:6;6947:9;6943:22;6922:53;:::i;:::-;6912:63;;6867:118;6518:474;;;;;:::o;6998:180::-;7046:77;7043:1;7036:88;7143:4;7140:1;7133:15;7167:4;7164:1;7157:15;7184:194;7224:4;7244:20;7262:1;7244:20;:::i;:::-;7239:25;;7278:20;7296:1;7278:20;:::i;:::-;7273:25;;7322:1;7319;7315:9;7307:17;;7346:1;7340:4;7337:11;7334:37;;;7351:18;;:::i;:::-;7334:37;7184:194;;;;:::o;7384:191::-;7424:3;7443:20;7461:1;7443:20;:::i;:::-;7438:25;;7477:20;7495:1;7477:20;:::i;:::-;7472:25;;7520:1;7517;7513:9;7506:16;;7541:3;7538:1;7535:10;7532:36;;;7548:18;;:::i;:::-;7532:36;7384:191;;;;:::o;7581:182::-;7721:34;7717:1;7709:6;7705:14;7698:58;7581:182;:::o;7769:366::-;7911:3;7932:67;7996:2;7991:3;7932:67;:::i;:::-;7925:74;;8008:93;8097:3;8008:93;:::i;:::-;8126:2;8121:3;8117:12;8110:19;;7769:366;;;:::o;8141:419::-;8307:4;8345:2;8334:9;8330:18;8322:26;;8394:9;8388:4;8384:20;8380:1;8369:9;8365:17;8358:47;8422:131;8548:4;8422:131;:::i;:::-;8414:139;;8141:419;;;:::o;8566:225::-;8706:34;8702:1;8694:6;8690:14;8683:58;8775:8;8770:2;8762:6;8758:15;8751:33;8566:225;:::o;8797:366::-;8939:3;8960:67;9024:2;9019:3;8960:67;:::i;:::-;8953:74;;9036:93;9125:3;9036:93;:::i;:::-;9154:2;9149:3;9145:12;9138:19;;8797:366;;;:::o;9169:419::-;9335:4;9373:2;9362:9;9358:18;9350:26;;9422:9;9416:4;9412:20;9408:1;9397:9;9393:17;9386:47;9450:131;9576:4;9450:131;:::i;:::-;9442:139;;9169:419;;;:::o;9594:223::-;9734:34;9730:1;9722:6;9718:14;9711:58;9803:6;9798:2;9790:6;9786:15;9779:31;9594:223;:::o;9823:366::-;9965:3;9986:67;10050:2;10045:3;9986:67;:::i;:::-;9979:74;;10062:93;10151:3;10062:93;:::i;:::-;10180:2;10175:3;10171:12;10164:19;;9823:366;;;:::o;10195:419::-;10361:4;10399:2;10388:9;10384:18;10376:26;;10448:9;10442:4;10438:20;10434:1;10423:9;10419:17;10412:47;10476:131;10602:4;10476:131;:::i;:::-;10468:139;;10195:419;;;:::o;10620:221::-;10760:34;10756:1;10748:6;10744:14;10737:58;10829:4;10824:2;10816:6;10812:15;10805:29;10620:221;:::o;10847:366::-;10989:3;11010:67;11074:2;11069:3;11010:67;:::i;:::-;11003:74;;11086:93;11175:3;11086:93;:::i;:::-;11204:2;11199:3;11195:12;11188:19;;10847:366;;;:::o;11219:419::-;11385:4;11423:2;11412:9;11408:18;11400:26;;11472:9;11466:4;11462:20;11458:1;11447:9;11443:17;11436:47;11500:131;11626:4;11500:131;:::i;:::-;11492:139;;11219:419;;;:::o;11644:224::-;11784:34;11780:1;11772:6;11768:14;11761:58;11853:7;11848:2;11840:6;11836:15;11829:32;11644:224;:::o;11874:366::-;12016:3;12037:67;12101:2;12096:3;12037:67;:::i;:::-;12030:74;;12113:93;12202:3;12113:93;:::i;:::-;12231:2;12226:3;12222:12;12215:19;;11874:366;;;:::o;12246:419::-;12412:4;12450:2;12439:9;12435:18;12427:26;;12499:9;12493:4;12489:20;12485:1;12474:9;12470:17;12463:47;12527:131;12653:4;12527:131;:::i;:::-;12519:139;;12246:419;;;:::o;12671:222::-;12811:34;12807:1;12799:6;12795:14;12788:58;12880:5;12875:2;12867:6;12863:15;12856:30;12671:222;:::o;12899:366::-;13041:3;13062:67;13126:2;13121:3;13062:67;:::i;:::-;13055:74;;13138:93;13227:3;13138:93;:::i;:::-;13256:2;13251:3;13247:12;13240:19;;12899:366;;;:::o;13271:419::-;13437:4;13475:2;13464:9;13460:18;13452:26;;13524:9;13518:4;13514:20;13510:1;13499:9;13495:17;13488:47;13552:131;13678:4;13552:131;:::i;:::-;13544:139;;13271:419;;;:::o;13696:228::-;13836:34;13832:1;13824:6;13820:14;13813:58;13905:11;13900:2;13892:6;13888:15;13881:36;13696:228;:::o;13930:366::-;14072:3;14093:67;14157:2;14152:3;14093:67;:::i;:::-;14086:74;;14169:93;14258:3;14169:93;:::i;:::-;14287:2;14282:3;14278:12;14271:19;;13930:366;;;:::o;14302:419::-;14468:4;14506:2;14495:9;14491:18;14483:26;;14555:9;14549:4;14545:20;14541:1;14530:9;14526:17;14519:47;14583:131;14709:4;14583:131;:::i;:::-;14575:139;;14302:419;;;:::o;14727:232::-;14867:34;14863:1;14855:6;14851:14;14844:58;14936:15;14931:2;14923:6;14919:15;14912:40;14727:232;:::o;14965:366::-;15107:3;15128:67;15192:2;15187:3;15128:67;:::i;:::-;15121:74;;15204:93;15293:3;15204:93;:::i;:::-;15322:2;15317:3;15313:12;15306:19;;14965:366;;;:::o;15337:419::-;15503:4;15541:2;15530:9;15526:18;15518:26;;15590:9;15584:4;15580:20;15576:1;15565:9;15561:17;15554:47;15618:131;15744:4;15618:131;:::i;:::-;15610:139;;15337:419;;;:::o;15762:410::-;15802:7;15825:20;15843:1;15825:20;:::i;:::-;15820:25;;15859:20;15877:1;15859:20;:::i;:::-;15854:25;;15914:1;15911;15907:9;15936:30;15954:11;15936:30;:::i;:::-;15925:41;;16115:1;16106:7;16102:15;16099:1;16096:22;16076:1;16069:9;16049:83;16026:139;;16145:18;;:::i;:::-;16026:139;15810:362;15762:410;;;;:::o;16178:180::-;16226:77;16223:1;16216:88;16323:4;16320:1;16313:15;16347:4;16344:1;16337:15;16364:185;16404:1;16421:20;16439:1;16421:20;:::i;:::-;16416:25;;16455:20;16473:1;16455:20;:::i;:::-;16450:25;;16494:1;16484:35;;16499:18;;:::i;:::-;16484:35;16541:1;16538;16534:9;16529:14;;16364:185;;;;:::o;16555:180::-;16603:77;16600:1;16593:88;16700:4;16697:1;16690:15;16724:4;16721:1;16714:15;16741:180;16789:77;16786:1;16779:88;16886:4;16883:1;16876:15;16910:4;16907:1;16900:15;16927:143;16984:5;17015:6;17009:13;17000:22;;17031:33;17058:5;17031:33;:::i;:::-;16927:143;;;;:::o;17076:351::-;17146:6;17195:2;17183:9;17174:7;17170:23;17166:32;17163:119;;;17201:79;;:::i;:::-;17163:119;17321:1;17346:64;17402:7;17393:6;17382:9;17378:22;17346:64;:::i;:::-;17336:74;;17292:128;17076:351;;;;:::o;17433:85::-;17478:7;17507:5;17496:16;;17433:85;;;:::o;17524:158::-;17582:9;17615:61;17633:42;17642:32;17668:5;17642:32;:::i;:::-;17633:42;:::i;:::-;17615:61;:::i;:::-;17602:74;;17524:158;;;:::o;17688:147::-;17783:45;17822:5;17783:45;:::i;:::-;17778:3;17771:58;17688:147;;:::o;17841:114::-;17908:6;17942:5;17936:12;17926:22;;17841:114;;;:::o;17961:184::-;18060:11;18094:6;18089:3;18082:19;18134:4;18129:3;18125:14;18110:29;;17961:184;;;;:::o;18151:132::-;18218:4;18241:3;18233:11;;18271:4;18266:3;18262:14;18254:22;;18151:132;;;:::o;18289:108::-;18366:24;18384:5;18366:24;:::i;:::-;18361:3;18354:37;18289:108;;:::o;18403:179::-;18472:10;18493:46;18535:3;18527:6;18493:46;:::i;:::-;18571:4;18566:3;18562:14;18548:28;;18403:179;;;;:::o;18588:113::-;18658:4;18690;18685:3;18681:14;18673:22;;18588:113;;;:::o;18737:732::-;18856:3;18885:54;18933:5;18885:54;:::i;:::-;18955:86;19034:6;19029:3;18955:86;:::i;:::-;18948:93;;19065:56;19115:5;19065:56;:::i;:::-;19144:7;19175:1;19160:284;19185:6;19182:1;19179:13;19160:284;;;19261:6;19255:13;19288:63;19347:3;19332:13;19288:63;:::i;:::-;19281:70;;19374:60;19427:6;19374:60;:::i;:::-;19364:70;;19220:224;19207:1;19204;19200:9;19195:14;;19160:284;;;19164:14;19460:3;19453:10;;18861:608;;;18737:732;;;;:::o;19475:831::-;19738:4;19776:3;19765:9;19761:19;19753:27;;19790:71;19858:1;19847:9;19843:17;19834:6;19790:71;:::i;:::-;19871:80;19947:2;19936:9;19932:18;19923:6;19871:80;:::i;:::-;19998:9;19992:4;19988:20;19983:2;19972:9;19968:18;19961:48;20026:108;20129:4;20120:6;20026:108;:::i;:::-;20018:116;;20144:72;20212:2;20201:9;20197:18;20188:6;20144:72;:::i;:::-;20226:73;20294:3;20283:9;20279:19;20270:6;20226:73;:::i;:::-;19475:831;;;;;;;;:::o
Swarm Source
ipfs://879d30e1990ae17f76d21383ce61c302bcb4e73bbb31c25f85372cf05d384002
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 29 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.