Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
21,000,000 XAMPL
Holders
6
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Balance
7,916.61003069 XAMPLValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x2802dca7...6aEe745B1 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
GeneralToken
Compiler Version
v0.4.24+commit.e67f0147
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-08-03 */ pragma solidity ^0.4.24; interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) external; } /** * @title SafeMath * @dev Math operations with safety checks that revert on error */ library SafeMath { /** * @dev Multiplies two numbers, reverts on 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-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b); return c; } /** * @dev Integer division of two numbers truncating the quotient, reverts on division by zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0); // Solidity only automatically asserts when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); uint256 c = a - b; return c; } /** * @dev Adds two numbers, reverts on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a); return c; } /** * @dev Divides two numbers and returns the remainder (unsigned integer modulo), * reverts when dividing by zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0); return a % b; } } /** * @title SafeMathInt * @dev Math operations for int256 with overflow safety checks. */ library SafeMathInt { int256 private constant MIN_INT256 = int256(1) << 255; int256 private constant MAX_INT256 = ~(int256(1) << 255); /** * @dev Multiplies two int256 variables and fails on overflow. */ function mul(int256 a, int256 b) internal pure returns (int256) { int256 c = a * b; // Detect overflow when multiplying MIN_INT256 with -1 require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256)); require((b == 0) || (c / b == a)); return c; } /** * @dev Division of two int256 variables and fails on overflow. */ function div(int256 a, int256 b) internal pure returns (int256) { // Prevent overflow when dividing MIN_INT256 by -1 require(b != -1 || a != MIN_INT256); // Solidity already throws when dividing by 0. return a / b; } /** * @dev Subtracts two int256 variables and fails on overflow. */ function sub(int256 a, int256 b) internal pure returns (int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a)); return c; } /** * @dev Adds two int256 variables and fails on overflow. */ function add(int256 a, int256 b) internal pure returns (int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a)); return c; } /** * @dev Converts to absolute value, and fails on overflow. */ function abs(int256 a) internal pure returns (int256) { require(a != MIN_INT256); return a < 0 ? -a : a; } } contract GeneralToken { using SafeMath for uint256; using SafeMathInt for int256; address private _owner; string private _name; string private _symbol; uint8 private _decimals = 8; // Precautionary emergency controls. bool public rebasePaused; bool public tokenPaused; uint256 private constant MAX_UINT256 = ~uint256(0); uint256 private _initalSupply; // TOTAL_GONS is a multiple of INITIAL_FRAGMENTS_SUPPLY so that _gonsPerFragment is an integer. // Use the highest value that fits in a uint256 for max granularity. uint256 private _totalGons; // MAX_SUPPLY = maximum integer < (sqrt(4*TOTAL_GONS + 1) - 1) / 2 uint256 private constant MAX_SUPPLY = ~uint128(0); // (2^128) - 1 uint256 private _totalSupply; uint256 private _gonsPerFragment; mapping(address => uint256) private _gonBalances; // This is denominated in Fragments, because the gons-fragments conversion might change before // it's fully paid. mapping (address => mapping (address => uint256)) private _allowedFragments; // This generates a public event on the blockchain that will notify clients event Transfer(address indexed from, address indexed to, uint256 value); // This notifies clients about the amount burnt // event Burn(address indexed from, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); event LogRebase(uint256 totalSupply); event LogRebasePaused(bool paused); event LogTokenPaused(bool paused); // rebase whether paused,default false modifier whenRebaseNotPaused() { require(!rebasePaused); _; } // token whether paused,default false modifier whenTokenNotPaused() { require(!tokenPaused); _; } // validate to address modifier validRecipient(address to) { require(to != address(0x0)); require(to != address(this)); _; } /** * @return the address of the owner. */ function owner() public view returns(address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(isOwner()); _; } /** * @return true if `msg.sender` is the owner of the contract. */ function isOwner() public view returns(bool) { return msg.sender == _owner; } /** * Constructor function * * Initializes contract with initial supply tokens to the creator of the contract */ constructor ( uint256 initialSupply, string tokenName, string tokenSymbol ) public { // Set owner _owner = msg.sender; // set name,symbol,decimals _name = tokenName; _symbol = tokenSymbol; _initalSupply = initialSupply * 10 ** uint256(_decimals); _totalGons = MAX_UINT256 - (MAX_UINT256 % _initalSupply); rebasePaused = false; tokenPaused = false; _totalSupply = _initalSupply; _gonBalances[_owner] = _totalGons; _gonsPerFragment = _totalGons.div(_totalSupply); emit Transfer(address(0x0), _owner, _totalSupply); } /** * @dev Notifies Fragments contract about a new rebase cycle. * @param supplyDelta The number of new fragment tokens to add into circulation via expansion. * @return The total number of fragments after the supply adjustment. */ function rebase(uint256 supplyDelta) external onlyOwner whenRebaseNotPaused returns (uint256) { if (supplyDelta == 0) { emit LogRebase(_totalSupply); return _totalSupply; } _totalSupply = supplyDelta * 10 ** uint256(_decimals); if (_totalSupply > MAX_SUPPLY) { _totalSupply = MAX_SUPPLY; } _gonsPerFragment = _totalGons.div(_totalSupply); emit LogRebase(_totalSupply); return _totalSupply; } /** * @dev Pauses or unpauses the execution of rebase operations. * @param paused Pauses rebase operations if this is true. */ function setRebasePaused(bool paused) external onlyOwner { rebasePaused = paused; emit LogRebasePaused(paused); } /** * @dev Pauses or unpauses execution of ERC-20 transactions. * @param paused Pauses ERC-20 transactions if this is true. */ function setTokenPaused(bool paused) external onlyOwner { tokenPaused = paused; emit LogTokenPaused(paused); } /** * @return The total number of fragments. */ function totalSupply() public view returns (uint256) { return _totalSupply; } /** * @param who The address to query. * @return The balance of the specified address. */ function balanceOf(address who) public view returns (uint256) { return _gonBalances[who].div(_gonsPerFragment); } /** * @return the name of the token. */ function name() public view returns(string) { return _name; } /** * @return the symbol of the token. */ function symbol() public view returns(string) { return _symbol; } /** * @return the number of decimals of the token. */ function decimals() public view returns(uint8) { return _decimals; } /** * Internal transfer, only can be called by this contract */ function _transfer(address _from, address _to, uint256 _value) internal { // Prevent transfer to 0x0 address. Use burn() instead // require(_to != address(0)); uint256 gonValue = _value.mul(_gonsPerFragment); // Check if the sender has enough require(_gonBalances[_from] >= gonValue); // Check for overflows require(_gonBalances[_to].add(gonValue) >= _gonBalances[_to]); // Save this for an assertion in the future uint256 previousBalances = _gonBalances[_from].add(_gonBalances[_to]); // Subtract from the sender _gonBalances[_from] = _gonBalances[_from].sub(gonValue); _gonBalances[_to] = _gonBalances[_to].add(gonValue); // Add transfer event emit Transfer(_from, _to, _value); // Asserts are used to use static analysis to find bugs in your code. They should never fail assert(_gonBalances[_from].add(_gonBalances[_to]) == previousBalances); } /** * Transfer tokens * * Send `_value` tokens to `_to` from your account * * @param _to The address of the recipient * @param _value the amount to send */ function transfer(address _to, uint256 _value) public validRecipient(_to) whenTokenNotPaused returns (bool) { _transfer(msg.sender, _to, _value); return true; } /** * @dev Function to check the amount of tokens that an owner has allowed to a spender. * @param owner_ The address which owns the funds. * @param spender The address which will spend the funds. * @return The number of tokens still available for the spender. */ function allowance(address owner_, address spender) public view returns (uint256) { return _allowedFragments[owner_][spender]; } /** * Transfer tokens from other address * * Send `_value` tokens to `_to` on behalf of `_from` * * @param _from The address of the sender * @param _to The address of the recipient * @param _value the amount to send */ function transferFrom(address _from, address _to, uint256 _value) public validRecipient(_to) whenTokenNotPaused returns (bool) { require(_value <= _allowedFragments[_from][msg.sender]); // Check allowance _allowedFragments[_from][msg.sender] = _allowedFragments[_from][msg.sender].sub(_value); _transfer(_from, _to, _value); return true; } /** * Set allowance for other address * * Allows `_spender` to spend no more than `_value` tokens on your behalf * * @param _spender The address authorized to spend * @param _value the max amount they can spend */ function approve(address _spender, uint256 _value) public whenTokenNotPaused returns (bool) { require(_spender != address(0)); _allowedFragments[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } /** * @dev Increase the amount of tokens that an owner has allowed to a spender. * This method should be used instead of approve() to avoid the double approval vulnerability * described above. * @param spender The address which will spend the funds. * @param addedValue The amount of tokens to increase the allowance by. */ function increaseAllowance(address spender, uint256 addedValue) public whenTokenNotPaused returns (bool) { _allowedFragments[msg.sender][spender] = _allowedFragments[msg.sender][spender].add(addedValue); emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]); return true; } /** * @dev Decrease the amount of tokens that an owner has allowed to a spender. * * @param spender The address which will spend the funds. * @param subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseAllowance(address spender, uint256 subtractedValue) public whenTokenNotPaused returns (bool) { uint256 oldValue = _allowedFragments[msg.sender][spender]; if (subtractedValue >= oldValue) { _allowedFragments[msg.sender][spender] = 0; } else { _allowedFragments[msg.sender][spender] = oldValue.sub(subtractedValue); } emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]); return true; } /** * Set allowance for other address and notify * * Allows `_spender` to spend no more than `_value` tokens on your behalf, and then ping the contract about it * * @param _spender The address authorized to spend * @param _value the max amount they can spend * @param _extraData some extra information to send to the approved contract */ function approveAndCall(address _spender, uint256 _value, bytes _extraData) public whenTokenNotPaused returns (bool) { tokenRecipient spender = tokenRecipient(_spender); if (approve(_spender, _value)) { spender.receiveApproval(msg.sender, _value, address(this), _extraData); return true; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"paused","type":"bool"}],"name":"setRebasePaused","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"paused","type":"bool"}],"name":"setTokenPaused","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rebasePaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenPaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"supplyDelta","type":"uint256"}],"name":"rebase","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner_","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"initialSupply","type":"uint256"},{"name":"tokenName","type":"string"},{"name":"tokenSymbol","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"totalSupply","type":"uint256"}],"name":"LogRebase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"paused","type":"bool"}],"name":"LogRebasePaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"paused","type":"bool"}],"name":"LogTokenPaused","type":"event"}]
Contract Creation Code
60806040526008600360006101000a81548160ff021916908360ff1602179055503480156200002d57600080fd5b5060405162001f3c38038062001f3c833981018060405281019080805190602001909291908051820192919060200180518201929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160019080519060200190620000be929190620002a2565b508060029080519060200190620000d7929190620002a2565b50600360009054906101000a900460ff1660ff16600a0a83026004819055506004546000198115156200010657fe5b06600019036005819055506000600360016101000a81548160ff0219169083151502179055506000600360026101000a81548160ff021916908315150217905550600454600681905550600554600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001de600654600554620002766401000000000262001b47179091906401000000009004565b6007819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a350505062000351565b6000806000831115156200028957600080fd5b82848115156200029557fe5b0490508091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002e557805160ff191683800117855562000316565b8280016001018555821562000316579182015b8281111562000315578251825591602001919060010190620002f8565b5b50905062000325919062000329565b5090565b6200034e91905b808211156200034a57600081600090555060010162000330565b5090565b90565b611bdb80620003616000396000f300608060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461010c578063095ea7b31461019c57806318160ddd1461020157806322872e0b1461022c57806323b872dd1461025b57806329519457146102e0578063313ce5671461030f578063395093511461034057806353ca9f24146103a557806370a08231146103d457806386c75e741461042b5780638da5cb5b1461045a5780638f32d59b146104b157806395d89b41146104e0578063a457c2d714610570578063a9059cbb146105d5578063bc4f2d6d1461063a578063cae9ca511461067b578063dd62ed3e14610726575b600080fd5b34801561011857600080fd5b5061012161079d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610161578082015181840152602081019050610146565b50505050905090810190601f16801561018e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a857600080fd5b506101e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083f565b604051808215151515815260200191505060405180910390f35b34801561020d57600080fd5b50610216610989565b6040518082815260200191505060405180910390f35b34801561023857600080fd5b50610259600480360381019080803515159060200190929190505050610993565b005b34801561026757600080fd5b506102c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109fe565b604051808215151515815260200191505060405180910390f35b3480156102ec57600080fd5b5061030d600480360381019080803515159060200190929190505050610c45565b005b34801561031b57600080fd5b50610324610cb0565b604051808260ff1660ff16815260200191505060405180910390f35b34801561034c57600080fd5b5061038b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cc7565b604051808215151515815260200191505060405180910390f35b3480156103b157600080fd5b506103ba610edf565b604051808215151515815260200191505060405180910390f35b3480156103e057600080fd5b50610415600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef2565b6040518082815260200191505060405180910390f35b34801561043757600080fd5b50610440610f4f565b604051808215151515815260200191505060405180910390f35b34801561046657600080fd5b5061046f610f62565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104bd57600080fd5b506104c6610f8b565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b506104f5610fe2565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561053557808201518184015260208101905061051a565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057c57600080fd5b506105bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611084565b604051808215151515815260200191505060405180910390f35b3480156105e157600080fd5b50610620600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611332565b604051808215151515815260200191505060405180910390f35b34801561064657600080fd5b50610665600480360381019080803590602001909291905050506113de565b6040518082815260200191505060405180910390f35b34801561068757600080fd5b5061070c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611514565b604051808215151515815260200191505060405180910390f35b34801561073257600080fd5b50610787600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116b3565b6040518082815260200191505060405180910390f35b606060018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108355780601f1061080a57610100808354040283529160200191610835565b820191906000526020600020905b81548152906001019060200180831161081857829003601f168201915b5050505050905090565b6000600360029054906101000a900460ff1615151561085d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561089957600080fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600654905090565b61099b610f8b565b15156109a657600080fd5b80600360016101000a81548160ff0219169083151502179055507fb36927c68760751ec71d827eb30be804be612d87c7c6b6a1f255258c6a1bea6681604051808215151515815260200191505060405180910390a150565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a3d57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a7857600080fd5b600360029054906101000a900460ff16151515610a9457600080fd5b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515610b1f57600080fd5b610bae83600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461173a90919063ffffffff16565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c3985858561175b565b60019150509392505050565b610c4d610f8b565b1515610c5857600080fd5b80600360026101000a81548160ff0219169083151502179055507f398c4e18c8ef7f11eb3921fe2d01d3b469329a5f01febf5ba17f2462f27f439c81604051808215151515815260200191505060405180910390a150565b6000600360009054906101000a900460ff16905090565b6000600360029054906101000a900460ff16151515610ce557600080fd5b610d7482600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2690919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600360019054906101000a900460ff1681565b6000610f48600754600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b4790919063ffffffff16565b9050919050565b600360029054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b606060028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561107a5780601f1061104f5761010080835404028352916020019161107a565b820191906000526020600020905b81548152906001019060200180831161105d57829003601f168201915b5050505050905090565b600080600360029054906101000a900460ff161515156110a357600080fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831015156111b2576000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611246565b6111c5838261173a90919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561137157600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156113ac57600080fd5b600360029054906101000a900460ff161515156113c857600080fd5b6113d333858561175b565b600191505092915050565b60006113e8610f8b565b15156113f357600080fd5b600360019054906101000a900460ff1615151561140f57600080fd5b600082141561145b577f60633057fb2c2558942a126acc1dc7c639b6fdee660a0171f7500e2ac5918b2e6006546040518082815260200191505060405180910390a1600654905061150f565b600360009054906101000a900460ff1660ff16600a0a82026006819055506000196fffffffffffffffffffffffffffffffff1660065411156114b3576000196fffffffffffffffffffffffffffffffff166006819055505b6114ca600654600554611b4790919063ffffffff16565b6007819055507f60633057fb2c2558942a126acc1dc7c639b6fdee660a0171f7500e2ac5918b2e6006546040518082815260200191505060405180910390a160065490505b919050565b600080600360029054906101000a900460ff1615151561153357600080fd5b849050611540858561083f565b156116aa578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561163a57808201518184015260208101905061161f565b50505050905090810190601f1680156116675780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561168957600080fd5b505af115801561169d573d6000803e3d6000fd5b50505050600191506116ab565b5b509392505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083831115151561174c57600080fd5b82840390508091505092915050565b60008061177360075484611b7190919063ffffffff16565b915081600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156117c357600080fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461185583600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2690919063ffffffff16565b1015151561186257600080fd5b6118f3600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2690919063ffffffff16565b905061194782600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461173a90919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119dc82600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2690919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a380611b16600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2690919063ffffffff16565b141515611b1f57fe5b5050505050565b6000808284019050838110151515611b3d57600080fd5b8091505092915050565b600080600083111515611b5957600080fd5b8284811515611b6457fe5b0490508091505092915050565b6000806000841415611b865760009150611ba8565b8284029050828482811515611b9757fe5b04141515611ba457600080fd5b8091505b50929150505600a165627a7a723058205de10f5ae88e7b04878d1c8cc7ced94eb15f1601b280dbb43c7ace150206573100290000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000a466c6f7720436861696e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004464c4f5700000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461010c578063095ea7b31461019c57806318160ddd1461020157806322872e0b1461022c57806323b872dd1461025b57806329519457146102e0578063313ce5671461030f578063395093511461034057806353ca9f24146103a557806370a08231146103d457806386c75e741461042b5780638da5cb5b1461045a5780638f32d59b146104b157806395d89b41146104e0578063a457c2d714610570578063a9059cbb146105d5578063bc4f2d6d1461063a578063cae9ca511461067b578063dd62ed3e14610726575b600080fd5b34801561011857600080fd5b5061012161079d565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610161578082015181840152602081019050610146565b50505050905090810190601f16801561018e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a857600080fd5b506101e7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083f565b604051808215151515815260200191505060405180910390f35b34801561020d57600080fd5b50610216610989565b6040518082815260200191505060405180910390f35b34801561023857600080fd5b50610259600480360381019080803515159060200190929190505050610993565b005b34801561026757600080fd5b506102c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109fe565b604051808215151515815260200191505060405180910390f35b3480156102ec57600080fd5b5061030d600480360381019080803515159060200190929190505050610c45565b005b34801561031b57600080fd5b50610324610cb0565b604051808260ff1660ff16815260200191505060405180910390f35b34801561034c57600080fd5b5061038b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cc7565b604051808215151515815260200191505060405180910390f35b3480156103b157600080fd5b506103ba610edf565b604051808215151515815260200191505060405180910390f35b3480156103e057600080fd5b50610415600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef2565b6040518082815260200191505060405180910390f35b34801561043757600080fd5b50610440610f4f565b604051808215151515815260200191505060405180910390f35b34801561046657600080fd5b5061046f610f62565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104bd57600080fd5b506104c6610f8b565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b506104f5610fe2565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561053557808201518184015260208101905061051a565b50505050905090810190601f1680156105625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561057c57600080fd5b506105bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611084565b604051808215151515815260200191505060405180910390f35b3480156105e157600080fd5b50610620600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611332565b604051808215151515815260200191505060405180910390f35b34801561064657600080fd5b50610665600480360381019080803590602001909291905050506113de565b6040518082815260200191505060405180910390f35b34801561068757600080fd5b5061070c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611514565b604051808215151515815260200191505060405180910390f35b34801561073257600080fd5b50610787600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116b3565b6040518082815260200191505060405180910390f35b606060018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108355780601f1061080a57610100808354040283529160200191610835565b820191906000526020600020905b81548152906001019060200180831161081857829003601f168201915b5050505050905090565b6000600360029054906101000a900460ff1615151561085d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561089957600080fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600654905090565b61099b610f8b565b15156109a657600080fd5b80600360016101000a81548160ff0219169083151502179055507fb36927c68760751ec71d827eb30be804be612d87c7c6b6a1f255258c6a1bea6681604051808215151515815260200191505060405180910390a150565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a3d57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a7857600080fd5b600360029054906101000a900460ff16151515610a9457600080fd5b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515610b1f57600080fd5b610bae83600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461173a90919063ffffffff16565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c3985858561175b565b60019150509392505050565b610c4d610f8b565b1515610c5857600080fd5b80600360026101000a81548160ff0219169083151502179055507f398c4e18c8ef7f11eb3921fe2d01d3b469329a5f01febf5ba17f2462f27f439c81604051808215151515815260200191505060405180910390a150565b6000600360009054906101000a900460ff16905090565b6000600360029054906101000a900460ff16151515610ce557600080fd5b610d7482600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2690919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600360019054906101000a900460ff1681565b6000610f48600754600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b4790919063ffffffff16565b9050919050565b600360029054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b606060028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561107a5780601f1061104f5761010080835404028352916020019161107a565b820191906000526020600020905b81548152906001019060200180831161105d57829003601f168201915b5050505050905090565b600080600360029054906101000a900460ff161515156110a357600080fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831015156111b2576000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611246565b6111c5838261173a90919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561137157600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156113ac57600080fd5b600360029054906101000a900460ff161515156113c857600080fd5b6113d333858561175b565b600191505092915050565b60006113e8610f8b565b15156113f357600080fd5b600360019054906101000a900460ff1615151561140f57600080fd5b600082141561145b577f60633057fb2c2558942a126acc1dc7c639b6fdee660a0171f7500e2ac5918b2e6006546040518082815260200191505060405180910390a1600654905061150f565b600360009054906101000a900460ff1660ff16600a0a82026006819055506000196fffffffffffffffffffffffffffffffff1660065411156114b3576000196fffffffffffffffffffffffffffffffff166006819055505b6114ca600654600554611b4790919063ffffffff16565b6007819055507f60633057fb2c2558942a126acc1dc7c639b6fdee660a0171f7500e2ac5918b2e6006546040518082815260200191505060405180910390a160065490505b919050565b600080600360029054906101000a900460ff1615151561153357600080fd5b849050611540858561083f565b156116aa578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561163a57808201518184015260208101905061161f565b50505050905090810190601f1680156116675780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561168957600080fd5b505af115801561169d573d6000803e3d6000fd5b50505050600191506116ab565b5b509392505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083831115151561174c57600080fd5b82840390508091505092915050565b60008061177360075484611b7190919063ffffffff16565b915081600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156117c357600080fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461185583600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2690919063ffffffff16565b1015151561186257600080fd5b6118f3600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2690919063ffffffff16565b905061194782600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461173a90919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119dc82600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2690919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a380611b16600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2690919063ffffffff16565b141515611b1f57fe5b5050505050565b6000808284019050838110151515611b3d57600080fd5b8091505092915050565b600080600083111515611b5957600080fd5b8284811515611b6457fe5b0490508091505092915050565b6000806000841415611b865760009150611ba8565b8284029050828482811515611b9757fe5b04141515611ba457600080fd5b8091505b50929150505600a165627a7a723058205de10f5ae88e7b04878d1c8cc7ced94eb15f1601b280dbb43c7ace15020657310029
Deployed Bytecode Sourcemap
3896:11236:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9244:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9244:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;9244:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12527:281;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12527:281:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8776:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8776:123:0;;;;;;;;;;;;;;;;;;;;;;;8230:159;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8230:159:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11872:386;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11872:386:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8547:156;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8547:156:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9544:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9544:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;13181:371;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13181:371:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4160:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4160:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;9020:159;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9020:159:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4191:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4191:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5995:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5995:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;6329:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6329:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;9386:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9386:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;9386:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13814:540;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13814:540:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10928:183;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10928:183:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7516:556;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7516:556:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14753:376;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14753:376:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11418:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11418:174:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9244:75;9280:6;9306:5;9299:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9244:75;:::o;12527:281::-;12613:4;5726:11;;;;;;;;;;;5725:12;5717:21;;;;;;;;12658:1;12638:22;;:8;:22;;;;12630:31;;;;;;;;12716:6;12674:17;:29;12692:10;12674:29;;;;;;;;;;;;;;;:39;12704:8;12674:39;;;;;;;;;;;;;;;:48;;;;12759:8;12738:38;;12747:10;12738:38;;;12769:6;12738:38;;;;;;;;;;;;;;;;;;12796:4;12789:11;;12527:281;;;;:::o;8776:123::-;8847:7;8879:12;;8872:19;;8776:123;:::o;8230:159::-;6206:9;:7;:9::i;:::-;6198:18;;;;;;;;8336:6;8321:12;;:21;;;;;;;;;;;;;;;;;;8358:23;8374:6;8358:23;;;;;;;;;;;;;;;;;;;;;;8230:159;:::o;11872:386::-;11993:4;11960:3;5863;5849:18;;:2;:18;;;;5841:27;;;;;;;;5901:4;5887:19;;:2;:19;;;;5879:28;;;;;;;;5726:11;;;;;;;;;;;5725:12;5717:21;;;;;;;;12028:17;:24;12046:5;12028:24;;;;;;;;;;;;;;;:36;12053:10;12028:36;;;;;;;;;;;;;;;;12018:6;:46;;12010:55;;;;;;;;12140:48;12181:6;12140:17;:24;12158:5;12140:24;;;;;;;;;;;;;;;:36;12165:10;12140:36;;;;;;;;;;;;;;;;:40;;:48;;;;:::i;:::-;12101:17;:24;12119:5;12101:24;;;;;;;;;;;;;;;:36;12126:10;12101:36;;;;;;;;;;;;;;;:87;;;;12199:29;12209:5;12216:3;12221:6;12199:9;:29::i;:::-;12246:4;12239:11;;11872:386;;;;;;:::o;8547:156::-;6206:9;:7;:9::i;:::-;6198:18;;;;;;;;8651:6;8637:11;;:20;;;;;;;;;;;;;;;;;;8673:22;8688:6;8673:22;;;;;;;;;;;;;;;;;;;;;;8547:156;:::o;9544:82::-;9584:5;9609:9;;;;;;;;;;;9602:16;;9544:82;:::o;13181:371::-;13307:4;5726:11;;;;;;;;;;;5725:12;5717:21;;;;;;;;13383:54;13426:10;13383:17;:29;13401:10;13383:29;;;;;;;;;;;;;;;:38;13413:7;13383:38;;;;;;;;;;;;;;;;:42;;:54;;;;:::i;:::-;13329:17;:29;13347:10;13329:29;;;;;;;;;;;;;;;:38;13359:7;13329:38;;;;;;;;;;;;;;;:108;;;;13474:7;13453:69;;13462:10;13453:69;;;13483:17;:29;13501:10;13483:29;;;;;;;;;;;;;;;:38;13513:7;13483:38;;;;;;;;;;;;;;;;13453:69;;;;;;;;;;;;;;;;;;13540:4;13533:11;;13181:371;;;;:::o;4160:24::-;;;;;;;;;;;;;:::o;9020:159::-;9100:7;9132:39;9154:16;;9132:12;:17;9145:3;9132:17;;;;;;;;;;;;;;;;:21;;:39;;;;:::i;:::-;9125:46;;9020:159;;;:::o;4191:23::-;;;;;;;;;;;;;:::o;5995:78::-;6032:7;6059:6;;;;;;;;;;;6052:13;;5995:78;:::o;6329:91::-;6368:4;6406:6;;;;;;;;;;;6392:20;;:10;:20;;;6385:27;;6329:91;:::o;9386:79::-;9424:6;9450:7;9443:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9386:79;:::o;13814:540::-;13945:4;13967:16;5726:11;;;;;;;;;;;5725:12;5717:21;;;;;;;;13986:17;:29;14004:10;13986:29;;;;;;;;;;;;;;;:38;14016:7;13986:38;;;;;;;;;;;;;;;;13967:57;;14058:8;14039:15;:27;;14035:205;;;14124:1;14083:17;:29;14101:10;14083:29;;;;;;;;;;;;;;;:38;14113:7;14083:38;;;;;;;;;;;;;;;:42;;;;14035:205;;;14199:29;14212:15;14199:8;:12;;:29;;;;:::i;:::-;14158:17;:29;14176:10;14158:29;;;;;;;;;;;;;;;:38;14188:7;14158:38;;;;;;;;;;;;;;;:70;;;;14035:205;14276:7;14255:69;;14264:10;14255:69;;;14285:17;:29;14303:10;14285:29;;;;;;;;;;;;;;;:38;14315:7;14285:38;;;;;;;;;;;;;;;;14255:69;;;;;;;;;;;;;;;;;;14342:4;14335:11;;13814:540;;;;;:::o;10928:183::-;11030:4;10997:3;5863;5849:18;;:2;:18;;;;5841:27;;;;;;;;5901:4;5887:19;;:2;:19;;;;5879:28;;;;;;;;5726:11;;;;;;;;;;;5725:12;5717:21;;;;;;;;11047:34;11057:10;11069:3;11074:6;11047:9;:34::i;:::-;11099:4;11092:11;;10928:183;;;;;:::o;7516:556::-;7637:7;6206:9;:7;:9::i;:::-;6198:18;;;;;;;;5592:12;;;;;;;;;;;5591:13;5583:22;;;;;;;;7681:1;7666:11;:16;7662:111;;;7704:23;7714:12;;7704:23;;;;;;;;;;;;;;;;;;7749:12;;7742:19;;;;7662:111;7828:9;;;;;;;;;;;7820:18;;7814:2;:24;7800:11;:38;7785:12;:53;;;;4647:1;4638:11;7870:10;;7855:12;;:25;7851:83;;;4647:1;4638:11;7912:10;;7897:12;:25;;;;7851:83;7965:28;7980:12;;7965:10;;:14;;:28;;;;:::i;:::-;7946:16;:47;;;;8011:23;8021:12;;8011:23;;;;;;;;;;;;;;;;;;8052:12;;8045:19;;5616:1;7516:556;;;:::o;14753:376::-;14891:4;14908:22;5726:11;;;;;;;;;;;5725:12;5717:21;;;;;;;;14948:8;14908:49;;14972:25;14980:8;14990:6;14972:7;:25::i;:::-;14968:154;;;15014:7;:23;;;15038:10;15050:6;15066:4;15073:10;15014:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;15014:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15014:70:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15014:70:0;;;;15106:4;15099:11;;;;14968:154;5749:1;14753:376;;;;;;:::o;11418:174::-;11518:7;11550:17;:25;11568:6;11550:25;;;;;;;;;;;;;;;:34;11576:7;11550:34;;;;;;;;;;;;;;;;11543:41;;11418:174;;;;:::o;1329:150::-;1387:7;1433:9;1420:1;1415;:6;;1407:15;;;;;;;;1449:1;1445;:5;1433:17;;1470:1;1463:8;;1329:150;;;;;:::o;9715:1002::-;9904:16;10215:24;9923:28;9934:16;;9923:6;:10;;:28;;;;:::i;:::-;9904:47;;10036:8;10013:12;:19;10026:5;10013:19;;;;;;;;;;;;;;;;:31;;10005:40;;;;;;;;10131:12;:17;10144:3;10131:17;;;;;;;;;;;;;;;;10096:31;10118:8;10096:12;:17;10109:3;10096:17;;;;;;;;;;;;;;;;:21;;:31;;;;:::i;:::-;:52;;10088:61;;;;;;;;10242:42;10266:12;:17;10279:3;10266:17;;;;;;;;;;;;;;;;10242:12;:19;10255:5;10242:19;;;;;;;;;;;;;;;;:23;;:42;;;;:::i;:::-;10215:69;;10354:33;10378:8;10354:12;:19;10367:5;10354:19;;;;;;;;;;;;;;;;:23;;:33;;;;:::i;:::-;10332:12;:19;10345:5;10332:19;;;;;;;;;;;;;;;:55;;;;10418:31;10440:8;10418:12;:17;10431:3;10418:17;;;;;;;;;;;;;;;;:21;;:31;;;;:::i;:::-;10398:12;:17;10411:3;10398:17;;;;;;;;;;;;;;;:51;;;;10514:3;10498:28;;10507:5;10498:28;;;10519:6;10498:28;;;;;;;;;;;;;;;;;;10692:16;10646:42;10670:12;:17;10683:3;10670:17;;;;;;;;;;;;;;;;10646:12;:19;10659:5;10646:19;;;;;;;;;;;;;;;;:23;;:42;;;;:::i;:::-;:62;10639:70;;;;;;9715:1002;;;;;:::o;1555:150::-;1613:7;1633:9;1649:1;1645;:5;1633:17;;1674:1;1669;:6;;1661:15;;;;;;;;1696:1;1689:8;;1555:150;;;;;:::o;909:294::-;967:7;1070:9;999:1;995;:5;987:14;;;;;;;;1086:1;1082;:5;;;;;;;;1070:17;;1194:1;1187:8;;909:294;;;;;:::o;353:433::-;411:7;710:9;660:1;655;:6;651:47;;;685:1;678:8;;;;651:47;726:1;722;:5;710:17;;755:1;750;746;:5;;;;;;;;:10;738:19;;;;;;;;777:1;770:8;;353:433;;;;;;:::o
Swarm Source
bzzr://5de10f5ae88e7b04878d1c8cc7ced94eb15f1601b280dbb43c7ace1502065731
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.