Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 AUSC
Holders
1,504
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,624.5 AUSCValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Auscoin
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-02-21 */ pragma solidity ^0.4.18; /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } /** * @title Math * @dev Assorted math operations */ library Math { function max64(uint64 a, uint64 b) internal pure returns (uint64) { return a >= b ? a : b; } function min64(uint64 a, uint64 b) internal pure returns (uint64) { return a < b ? a : b; } function max256(uint256 a, uint256 b) internal pure returns (uint256) { return a >= b ? a : b; } function min256(uint256 a, uint256 b) internal pure returns (uint256) { return a < b ? a : b; } } /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ function Ownable() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0)); OwnershipTransferred(owner, newOwner); owner = newOwner; } } /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws 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 Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } /** * @title Basic token * @dev Basic version of StandardToken, with no allowances. */ contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) balances; uint256 totalSupply_; /** * @dev total number of tokens in existence */ function totalSupply() public view returns (uint256) { return totalSupply_; } /** * @dev transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[msg.sender]); // SafeMath.sub will throw if there is not enough balance. balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); Transfer(msg.sender, _to, _value); return true; } /** * @dev Gets the balance of the specified address. * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) public view returns (uint256 balance) { return balances[_owner]; } } /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public view returns (uint256); function transferFrom(address from, address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @title Standard ERC20 token * * @dev Implementation of the basic standard token. * @dev https://github.com/ethereum/EIPs/issues/20 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract StandardToken is ERC20, BasicToken { mapping (address => mapping (address => uint256)) internal allowed; /** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); Transfer(_from, _to, _value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * * 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 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) public view returns (uint256) { return allowed[_owner][_spender]; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _addedValue The amount of tokens to increase the allowance by. */ function increaseApproval(address _spender, uint _addedValue) public returns (bool) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) { uint oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } contract Auscoin is StandardToken, Ownable { // Publicly listed name string public name = "AUSCOIN COIN"; // Symbol under which token will be trading string public symbol = "AUSC"; // 1 ETH consists of 10^18 Wei, which is the smallest ETH unit uint8 public decimals = 18; // Defining the value of a million for easy calculations - order of declaration matters (hoisting) uint256 million = 1000000 * (uint256(10) ** decimals); // We are offering a total of 100 Million Auscoin Tokens to distribute uint256 public totalSupply = 100 * million; // This is established on contract deployment in relevance to the (at the time) ETH/USD exchange rate uint256 public exchangeRate; // Initialized to 0, this value tracks the total amount of ETH sent to the smart contract uint256 public totalEthRaised = 0; // The time at which the ICO allows for buy interactions, 12th Feb 6PM uint256 public startTime; // The time at which the ICO stops buy interactions, 12th Feb 6PM + 28 days, after this only transfers and withdrawals are allowed uint256 public endTime; // The AusGroup token allocation will not be available to AusGroup until this date uint256 public ausGroupReleaseDate; // Address where the ether raised is transfered to and address where the token balance is stored within the balances mapping address public fundsWallet; // Address where the bonus tokens are transferred to and held address public bonusWallet; // Address where AusGroup tokens are held address public ausGroup; // Whitelister - the entity with permission to add addresses to the whiteList mapping address public whiteLister; // Initial Allocation amounts uint256 public ausGroupAllocation = 50 * million; uint256 public bountyAllocation = 1 * million; uint256 public preSeedAllocation = 3 * million; uint256 public bonusAllocation = 6 * million; // Whitelisted mapping - the addresses which have participated in the ICO and are allowed to transact after the ICO. // ICO Participants need to be verify their identity before they can use AusCoin mapping (address => bool) public whiteListed; // ICO Participant mapping (address => bool) isICOParticipant; // Constants uint256 numberOfMillisecsPerYear = 365 * 24 * 60 * 60 * 1000; uint256 amountPerYearAvailableToAusGroup = 5 * million; function Auscoin( uint256 _startTime, uint256 _endTime, uint256 _ausGroupReleaseDate, uint256 _exchangeRate, address _bonusWallet, address _ausGroup, address _bounty, address _preSeedFund, address _whiteLister ) public { fundsWallet = owner; bonusWallet = _bonusWallet; startTime = _startTime; endTime = _endTime; // 4 weeks ausGroupReleaseDate = _ausGroupReleaseDate; exchangeRate = _exchangeRate; ausGroup = _ausGroup; whiteLister = _whiteLister; // Assign total supply to funds wallet // https://github.com/OpenZeppelin/zeppelin-solidity/issues/494 // A token contract which creates new tokens SHOULD trigger a Transfer event with the _from address set to 0x0 when tokens are created. balances[fundsWallet] = totalSupply; Transfer(0x0, fundsWallet, totalSupply); // Allocate bonus tokens // https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/token/BasicToken.sol // The inherited transfer method from the StandardToken which inherits from BasicToken emits Transfer events and subtracts/adds respective // amounts to respective accounts super.transfer(bonusWallet, bonusAllocation); // Transfer pre-allocated funds super.transfer(_ausGroup, ausGroupAllocation); // Allocate bounty funds super.transfer(_bounty, bountyAllocation); // Allocate pre-seed funds super.transfer(_preSeedFund, preSeedAllocation); } // Time utility function function currentTime() public view returns (uint256) { return now * 1000; } // calculateBonusAmount, view tag attached as it does not manipulate state function calculateBonusAmount(uint256 amount) view internal returns (uint256) { uint256 totalAvailableDuringICO = totalSupply - (bonusAllocation + ausGroupAllocation + bountyAllocation + preSeedAllocation); uint256 sold = totalAvailableDuringICO - balances[fundsWallet]; uint256 amountForThirtyBonusBracket = int256((10 * million) - sold) > 0 ? (10 * million) - sold : 0; uint256 amountForTwentyBonusBracket = int256((20 * million) - sold) > 0 ? (20 * million) - sold : 0; uint256 amountForTenBonusBracket = int256((30 * million) - sold) > 0 ? (30 * million) - sold : 0; uint256 thirtyBonusBracket = Math.min256(Math.max256(0, amountForThirtyBonusBracket), Math.min256(amount, (10 * million))); uint256 twentyBonusBracket = Math.min256(Math.max256(0, amountForTwentyBonusBracket), Math.min256(amount - thirtyBonusBracket, (10 * million))); uint256 tenBonusBracket = Math.min256(Math.max256(0, amountForTenBonusBracket), Math.min256(amount - twentyBonusBracket - thirtyBonusBracket, (10 * million))); uint256 totalBonus = thirtyBonusBracket.mul(30).div(100) + twentyBonusBracket.mul(20).div(100) + tenBonusBracket.mul(10).div(100); return totalBonus; } // Payable functions. Fall out and low level buy // isIcoOpen modifier ensures ETH payments can only be made if the ICO is 'open', after start and before end date (or if all tokens are sold) // payable is needed on the fallback function in order to receive Ether // Reference: http://solidity.readthedocs.io/en/develop/contracts.html function() isIcoOpen payable public { buyTokens(); } function buyTokens() isIcoOpen payable public { // Use the exchange rate set at deployment to calculate the amount of tokens the transferred ETH converts to uint256 tokenAmount = msg.value.mul(exchangeRate); // Calculate the bonus the sender will receive based on which Tier the current Smart Contract is sitting on uint256 bonusAmount = calculateBonusAmount(tokenAmount); // Ensure that the tokenAmount is greater than the total funds currently present require(balances[fundsWallet] >= tokenAmount); // Ensure that the bonusAmount is greater than the total bonus currently availbale in the bonusWallet require(balances[bonusWallet] >= bonusAmount); // Add to the state level ETH raised value totalEthRaised = totalEthRaised.add(msg.value); // Deduct the said amount from the relevant wallet addresses in the balance map balances[bonusWallet] = balances[bonusWallet].sub(bonusAmount); balances[fundsWallet] = balances[fundsWallet].sub(tokenAmount); // Add the sold tokens to the sender's wallet address in the balance map for them to claim after ICO balances[msg.sender] = balances[msg.sender].add(tokenAmount.add(bonusAmount)); // Add them to the isICOParticipant mapping isICOParticipant[msg.sender] = true; fundsWallet.transfer(msg.value); // Since we did not use the transfer method, we manually emit the Transfer event Transfer(fundsWallet, msg.sender, tokenAmount); Transfer(bonusWallet, msg.sender, bonusAmount); } function addToWhiteList(address _purchaser) canAddToWhiteList public { whiteListed[_purchaser] = true; } function setWhiteLister(address _newWhiteLister) onlyOwner public { whiteLister = _newWhiteLister; } // Transfers function transfer(address _to, uint _value) isIcoClosed public returns (bool success) { require(msg.sender != ausGroup); if (isICOParticipant[msg.sender]) { require(whiteListed[msg.sender]); } return super.transfer(_to, _value); } function ausgroupTransfer(address _to, uint _value) timeRestrictedAccess isValidAusGroupTransfer(_value) public returns (bool success) { require(msg.sender == ausGroup); require(balances[ausGroup] >= _value); return super.transfer(_to, _value); } // Override to enforce modifier that ensures that ICO is closed before the following function is invoked function transferFrom(address _from, address _to, uint _value) isIcoClosed public returns (bool success) { require(_from != ausGroup); if (isICOParticipant[_from]) { require(whiteListed[_from]); } return super.transferFrom(_from, _to, _value); } function burnUnsoldTokens() isIcoClosed onlyOwner public { uint256 bonusLeft = balances[bonusWallet]; uint256 fundsLeft = balances[fundsWallet]; // Burn anything in our balances map balances[bonusWallet] = 0; balances[fundsWallet] = 0; Transfer(bonusWallet, 0, bonusLeft); Transfer(fundsWallet, 0, fundsLeft); } // Modifiers modifier isIcoOpen() { require(currentTime() >= startTime); require(currentTime() < endTime); _; } modifier isIcoClosed() { require(currentTime() >= endTime); _; } modifier timeRestrictedAccess() { require(currentTime() >= ausGroupReleaseDate); _; } modifier canAddToWhiteList() { require(msg.sender == whiteLister); _; } modifier isValidAusGroupTransfer(uint256 _value) { uint256 yearsAfterRelease = ((currentTime() - ausGroupReleaseDate) / numberOfMillisecsPerYear) + 1; uint256 cumulativeTotalAvailable = yearsAfterRelease * amountPerYearAvailableToAusGroup; require(cumulativeTotalAvailable > 0); uint256 amountAlreadyTransferred = ausGroupAllocation - balances[ausGroup]; uint256 amountAvailable = cumulativeTotalAvailable - amountAlreadyTransferred; require(_value <= amountAvailable); _; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"bonusAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ausGroup","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"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":true,"inputs":[],"name":"bonusWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundsWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"exchangeRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_purchaser","type":"address"}],"name":"addToWhiteList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"ausgroupTransfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"burnUnsoldTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newWhiteLister","type":"address"}],"name":"setWhiteLister","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ausGroupReleaseDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ausGroupAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalEthRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"currentTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","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"},{"constant":true,"inputs":[],"name":"whiteLister","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"preSeedAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bountyAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whiteListed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"},{"name":"_ausGroupReleaseDate","type":"uint256"},{"name":"_exchangeRate","type":"uint256"},{"name":"_bonusWallet","type":"address"},{"name":"_ausGroup","type":"address"},{"name":"_bounty","type":"address"},{"name":"_preSeedFund","type":"address"},{"name":"_whiteLister","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]
Contract Creation Code
60606040526040805190810160405280600c81526020017f415553434f494e20434f494e0000000000000000000000000000000000000000815250600490805190602001906200005192919062000725565b506040805190810160405280600481526020017f4155534300000000000000000000000000000000000000000000000000000000815250600590805190602001906200009f92919062000725565b506012600660006101000a81548160ff021916908360ff160217905550600660009054906101000a900460ff1660ff16600a0a620f4240026007556007546064026008556000600a55600754603202601255600754600102601355600754600302601455600754600602601555640757b12c0060185560075460050260195534156200012a57600080fd5b604051610120806200331c8339810160405280805190602001909190805190602001909190805190602001909190805190602001909190805190602001909190805190602001909190805190602001909190805190602001909190805190602001909190505033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555088600b8190555087600c8190555086600d819055508560098190555083601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600854600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008546040518082815260200191505060405180910390a362000432600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601554620004ab640100000000026200289f176401000000009004565b506200045584601254620004ab640100000000026200289f176401000000009004565b506200047883601354620004ab640100000000026200289f176401000000009004565b506200049b82601454620004ab640100000000026200289f176401000000009004565b50505050505050505050620007d4565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515620004e957600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156200053757600080fd5b62000598826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620006ec64010000000002620024cc179091906401000000009004565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200063b826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200070664010000000002620024ae179091906401000000009004565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000828211151515620006fb57fe5b818303905092915050565b60008082840190508381101515156200071b57fe5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200076857805160ff191683800117855562000799565b8280016001018555821562000799579182015b82811115620007985782518255916020019190600101906200077b565b5b509050620007a89190620007ac565b5090565b620007d191905b80821115620007cd576000816000905550600101620007b3565b5090565b90565b612b3880620007e46000396000f3006060604052600436106101a1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063016211b5146101da57806305d1afec1461020357806306fdde0314610258578063095ea7b3146102e657806318160ddd1461034057806318c1d9b2146103695780632194f3a2146103be57806323b872dd14610413578063313ce5671461048c5780633197cbb6146104bb5780633ba0b9a9146104e457806347ee03941461050d5780635baf4a091461054657806366188463146105a057806370a08231146105fa57806378e97925146106475780638da5cb5b14610670578063940bb344146106c55780639576bfbd146106da57806395d89b4114610713578063a2da2b47146107a1578063a9059cbb146107ca578063c758b81314610824578063c9e904be1461084d578063d0febe4c14610876578063d18e81b314610880578063d73dd623146108a9578063dd62ed3e14610903578063ef26e41d1461096f578063f2fde38b146109c4578063f3465181146109fd578063f6b9d05d14610a26578063fa0fca8414610a4f575b600b546101ac610aa0565b101515156101b957600080fd5b600c546101c4610aa0565b1015156101d057600080fd5b6101d8610aac565b005b34156101e557600080fd5b6101ed611018565b6040518082815260200191505060405180910390f35b341561020e57600080fd5b61021661101e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561026357600080fd5b61026b611044565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ab578082015181840152602081019050610290565b50505050905090810190601f1680156102d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102f157600080fd5b610326600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506110e2565b604051808215151515815260200191505060405180910390f35b341561034b57600080fd5b6103536111d4565b6040518082815260200191505060405180910390f35b341561037457600080fd5b61037c6111da565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103c957600080fd5b6103d1611200565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561041e57600080fd5b610472600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611226565b604051808215151515815260200191505060405180910390f35b341561049757600080fd5b61049f61135c565b604051808260ff1660ff16815260200191505060405180910390f35b34156104c657600080fd5b6104ce61136f565b6040518082815260200191505060405180910390f35b34156104ef57600080fd5b6104f7611375565b6040518082815260200191505060405180910390f35b341561051857600080fd5b610544600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061137b565b005b341561055157600080fd5b610586600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611432565b604051808215151515815260200191505060405180910390f35b34156105ab57600080fd5b6105e0600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506115e4565b604051808215151515815260200191505060405180910390f35b341561060557600080fd5b610631600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611875565b6040518082815260200191505060405180910390f35b341561065257600080fd5b61065a6118bd565b6040518082815260200191505060405180910390f35b341561067b57600080fd5b6106836118c3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106d057600080fd5b6106d86118e9565b005b34156106e557600080fd5b610711600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611bda565b005b341561071e57600080fd5b610726611c7a565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561076657808201518184015260208101905061074b565b50505050905090810190601f1680156107935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156107ac57600080fd5b6107b4611d18565b6040518082815260200191505060405180910390f35b34156107d557600080fd5b61080a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611d1e565b604051808215151515815260200191505060405180910390f35b341561082f57600080fd5b610837611e52565b6040518082815260200191505060405180910390f35b341561085857600080fd5b610860611e58565b6040518082815260200191505060405180910390f35b61087e610aac565b005b341561088b57600080fd5b610893610aa0565b6040518082815260200191505060405180910390f35b34156108b457600080fd5b6108e9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611e5e565b604051808215151515815260200191505060405180910390f35b341561090e57600080fd5b610959600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061205a565b6040518082815260200191505060405180910390f35b341561097a57600080fd5b6109826120e1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109cf57600080fd5b6109fb600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612107565b005b3415610a0857600080fd5b610a1061225f565b6040518082815260200191505060405180910390f35b3415610a3157600080fd5b610a39612265565b6040518082815260200191505060405180910390f35b3415610a5a57600080fd5b610a86600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061226b565b604051808215151515815260200191505060405180910390f35b60006103e84202905090565b600080600b54610aba610aa0565b10151515610ac757600080fd5b600c54610ad2610aa0565b101515610ade57600080fd5b610af36009543461228b90919063ffffffff16565b9150610afe826122c6565b905081600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610b6f57600080fd5b80600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610bde57600080fd5b610bf334600a546124ae90919063ffffffff16565b600a81905550610c6c81600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124cc90919063ffffffff16565b600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d4382600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124cc90919063ffffffff16565b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e0a610dbd82846124ae90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ae90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501515610f0657600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60155481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110da5780601f106110af576101008083540402835291602001916110da565b820191906000526020600020905b8154815290600101906020018083116110bd57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60085481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600c54611233610aa0565b1015151561124057600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561129d57600080fd5b601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561134857601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561134757600080fd5b5b6113538484846124e5565b90509392505050565b600660009054906101000a900460ff1681565b600c5481565b60095481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113d757600080fd5b6001601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600d5461143f610aa0565b1015151561144c57600080fd5b816000806000806001601854600d54611463610aa0565b0381151561146d57fe5b040193506019548402925060008311151561148757600080fd5b600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601254039150818303905080851115151561150257600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561155e57600080fd5b86600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156115cd57600080fd5b6115d7888861289f565b9550505050505092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808311156116f5576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611789565b61170883826124cc90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600b5481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600c546118f7610aa0565b1015151561190457600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561196057600080fd5b600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000806000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000806000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c3657600080fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d105780601f10611ce557610100808354040283529160200191611d10565b820191906000526020600020905b815481529060010190602001808311611cf357829003601f168201915b505050505081565b600d5481565b6000600c54611d2b610aa0565b10151515611d3857600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515611d9557600080fd5b601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e4057601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611e3f57600080fd5b5b611e4a838361289f565b905092915050565b60125481565b600a5481565b6000611eef82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ae90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561216357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561219f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60145481565b60135481565b60166020528060005260406000206000915054906101000a900460ff1681565b60008060008414156122a057600091506122bf565b82840290508284828115156122b157fe5b041415156122bb57fe5b8091505b5092915050565b600080600080600080600080600080601454601354601254601554010101600854039850600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205489039750600088600754600a02031361236557600061236e565b87600754600a02035b9650600088600754601402031361238657600061238f565b87600754601402035b9550600088600754601e0203136123a75760006123b0565b87600754601e02035b94506123d46123c0600089612abe565b6123cf8d600754600a02612ad8565b612ad8565b93506123fa6123e4600088612abe565b6123f5868e03600754600a02612ad8565b612ad8565b925061242261240a600087612abe565b61241d86868f0303600754600a02612ad8565b612ad8565b915061244b606461243d600a8561228b90919063ffffffff16565b612af190919063ffffffff16565b612472606461246460148761228b90919063ffffffff16565b612af190919063ffffffff16565b612499606461248b601e8961228b90919063ffffffff16565b612af190919063ffffffff16565b01019050809950505050505050505050919050565b60008082840190508381101515156124c257fe5b8091505092915050565b60008282111515156124da57fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561252257600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561256f57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156125fa57600080fd5b61264b826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124cc90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126de826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ae90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127af82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124cc90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156128dc57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561292957600080fd5b61297a826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124cc90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a0d826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ae90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600081831015612ace5781612ad0565b825b905092915050565b6000818310612ae75781612ae9565b825b905092915050565b6000808284811515612aff57fe5b04905080915050929150505600a165627a7a72305820e9df579f23b898d0ecc85579dc81ff80510bc861533777b12591948255aef04400290000000000000000000000000000000000000000000000000000016188d02d800000000000000000000000000000000000000000000000000000016219023d80000000000000000000000000000000000000000000000000000001782015c180000000000000000000000000000000000000000000000000000000000000047e000000000000000000000000f15a103b07467224d1e90cb3e39349646c18323800000000000000000000000080d10df9bab5faad5a4869e0067ce3d529b0a614000000000000000000000000f48a37499eef8c8a8f3456a715cf449461cca7100000000000000000000000008588473ded6b54f5b2428409d4b23dd922bfc75d00000000000000000000000023d3fe92dac510f940ae68faf700c809229c6c27
Deployed Bytecode
0x6060604052600436106101a1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063016211b5146101da57806305d1afec1461020357806306fdde0314610258578063095ea7b3146102e657806318160ddd1461034057806318c1d9b2146103695780632194f3a2146103be57806323b872dd14610413578063313ce5671461048c5780633197cbb6146104bb5780633ba0b9a9146104e457806347ee03941461050d5780635baf4a091461054657806366188463146105a057806370a08231146105fa57806378e97925146106475780638da5cb5b14610670578063940bb344146106c55780639576bfbd146106da57806395d89b4114610713578063a2da2b47146107a1578063a9059cbb146107ca578063c758b81314610824578063c9e904be1461084d578063d0febe4c14610876578063d18e81b314610880578063d73dd623146108a9578063dd62ed3e14610903578063ef26e41d1461096f578063f2fde38b146109c4578063f3465181146109fd578063f6b9d05d14610a26578063fa0fca8414610a4f575b600b546101ac610aa0565b101515156101b957600080fd5b600c546101c4610aa0565b1015156101d057600080fd5b6101d8610aac565b005b34156101e557600080fd5b6101ed611018565b6040518082815260200191505060405180910390f35b341561020e57600080fd5b61021661101e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561026357600080fd5b61026b611044565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ab578082015181840152602081019050610290565b50505050905090810190601f1680156102d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102f157600080fd5b610326600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506110e2565b604051808215151515815260200191505060405180910390f35b341561034b57600080fd5b6103536111d4565b6040518082815260200191505060405180910390f35b341561037457600080fd5b61037c6111da565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103c957600080fd5b6103d1611200565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561041e57600080fd5b610472600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611226565b604051808215151515815260200191505060405180910390f35b341561049757600080fd5b61049f61135c565b604051808260ff1660ff16815260200191505060405180910390f35b34156104c657600080fd5b6104ce61136f565b6040518082815260200191505060405180910390f35b34156104ef57600080fd5b6104f7611375565b6040518082815260200191505060405180910390f35b341561051857600080fd5b610544600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061137b565b005b341561055157600080fd5b610586600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611432565b604051808215151515815260200191505060405180910390f35b34156105ab57600080fd5b6105e0600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506115e4565b604051808215151515815260200191505060405180910390f35b341561060557600080fd5b610631600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611875565b6040518082815260200191505060405180910390f35b341561065257600080fd5b61065a6118bd565b6040518082815260200191505060405180910390f35b341561067b57600080fd5b6106836118c3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106d057600080fd5b6106d86118e9565b005b34156106e557600080fd5b610711600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611bda565b005b341561071e57600080fd5b610726611c7a565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561076657808201518184015260208101905061074b565b50505050905090810190601f1680156107935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156107ac57600080fd5b6107b4611d18565b6040518082815260200191505060405180910390f35b34156107d557600080fd5b61080a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611d1e565b604051808215151515815260200191505060405180910390f35b341561082f57600080fd5b610837611e52565b6040518082815260200191505060405180910390f35b341561085857600080fd5b610860611e58565b6040518082815260200191505060405180910390f35b61087e610aac565b005b341561088b57600080fd5b610893610aa0565b6040518082815260200191505060405180910390f35b34156108b457600080fd5b6108e9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611e5e565b604051808215151515815260200191505060405180910390f35b341561090e57600080fd5b610959600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061205a565b6040518082815260200191505060405180910390f35b341561097a57600080fd5b6109826120e1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109cf57600080fd5b6109fb600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612107565b005b3415610a0857600080fd5b610a1061225f565b6040518082815260200191505060405180910390f35b3415610a3157600080fd5b610a39612265565b6040518082815260200191505060405180910390f35b3415610a5a57600080fd5b610a86600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061226b565b604051808215151515815260200191505060405180910390f35b60006103e84202905090565b600080600b54610aba610aa0565b10151515610ac757600080fd5b600c54610ad2610aa0565b101515610ade57600080fd5b610af36009543461228b90919063ffffffff16565b9150610afe826122c6565b905081600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610b6f57600080fd5b80600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610bde57600080fd5b610bf334600a546124ae90919063ffffffff16565b600a81905550610c6c81600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124cc90919063ffffffff16565b600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d4382600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124cc90919063ffffffff16565b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e0a610dbd82846124ae90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ae90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501515610f0657600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60155481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110da5780601f106110af576101008083540402835291602001916110da565b820191906000526020600020905b8154815290600101906020018083116110bd57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60085481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600c54611233610aa0565b1015151561124057600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561129d57600080fd5b601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561134857601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561134757600080fd5b5b6113538484846124e5565b90509392505050565b600660009054906101000a900460ff1681565b600c5481565b60095481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113d757600080fd5b6001601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600d5461143f610aa0565b1015151561144c57600080fd5b816000806000806001601854600d54611463610aa0565b0381151561146d57fe5b040193506019548402925060008311151561148757600080fd5b600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601254039150818303905080851115151561150257600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561155e57600080fd5b86600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156115cd57600080fd5b6115d7888861289f565b9550505050505092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808311156116f5576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611789565b61170883826124cc90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600b5481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600c546118f7610aa0565b1015151561190457600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561196057600080fd5b600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000806000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000806000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c3657600080fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d105780601f10611ce557610100808354040283529160200191611d10565b820191906000526020600020905b815481529060010190602001808311611cf357829003601f168201915b505050505081565b600d5481565b6000600c54611d2b610aa0565b10151515611d3857600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515611d9557600080fd5b601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e4057601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611e3f57600080fd5b5b611e4a838361289f565b905092915050565b60125481565b600a5481565b6000611eef82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ae90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561216357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561219f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60145481565b60135481565b60166020528060005260406000206000915054906101000a900460ff1681565b60008060008414156122a057600091506122bf565b82840290508284828115156122b157fe5b041415156122bb57fe5b8091505b5092915050565b600080600080600080600080600080601454601354601254601554010101600854039850600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205489039750600088600754600a02031361236557600061236e565b87600754600a02035b9650600088600754601402031361238657600061238f565b87600754601402035b9550600088600754601e0203136123a75760006123b0565b87600754601e02035b94506123d46123c0600089612abe565b6123cf8d600754600a02612ad8565b612ad8565b93506123fa6123e4600088612abe565b6123f5868e03600754600a02612ad8565b612ad8565b925061242261240a600087612abe565b61241d86868f0303600754600a02612ad8565b612ad8565b915061244b606461243d600a8561228b90919063ffffffff16565b612af190919063ffffffff16565b612472606461246460148761228b90919063ffffffff16565b612af190919063ffffffff16565b612499606461248b601e8961228b90919063ffffffff16565b612af190919063ffffffff16565b01019050809950505050505050505050919050565b60008082840190508381101515156124c257fe5b8091505092915050565b60008282111515156124da57fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561252257600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561256f57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156125fa57600080fd5b61264b826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124cc90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126de826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ae90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127af82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124cc90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156128dc57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561292957600080fd5b61297a826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124cc90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a0d826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ae90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600081831015612ace5781612ad0565b825b905092915050565b6000818310612ae75781612ae9565b825b905092915050565b6000808284811515612aff57fe5b04905080915050929150505600a165627a7a72305820e9df579f23b898d0ecc85579dc81ff80510bc861533777b12591948255aef0440029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000016188d02d800000000000000000000000000000000000000000000000000000016219023d80000000000000000000000000000000000000000000000000000001782015c180000000000000000000000000000000000000000000000000000000000000047e000000000000000000000000f15a103b07467224d1e90cb3e39349646c18323800000000000000000000000080d10df9bab5faad5a4869e0067ce3d529b0a614000000000000000000000000f48a37499eef8c8a8f3456a715cf449461cca7100000000000000000000000008588473ded6b54f5b2428409d4b23dd922bfc75d00000000000000000000000023d3fe92dac510f940ae68faf700c809229c6c27
-----Decoded View---------------
Arg [0] : _startTime (uint256): 1518418800000
Arg [1] : _endTime (uint256): 1520838000000
Arg [2] : _ausGroupReleaseDate (uint256): 1615446000000
Arg [3] : _exchangeRate (uint256): 1150
Arg [4] : _bonusWallet (address): 0xf15a103B07467224d1E90Cb3e39349646C183238
Arg [5] : _ausGroup (address): 0x80d10dF9bAB5fAad5A4869E0067cE3D529b0A614
Arg [6] : _bounty (address): 0xF48A37499EEF8C8A8f3456a715CF449461cCA710
Arg [7] : _preSeedFund (address): 0x8588473DEd6b54f5b2428409D4B23Dd922BFc75d
Arg [8] : _whiteLister (address): 0x23d3fe92dac510F940ae68FaF700C809229C6C27
-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000016188d02d80
Arg [1] : 0000000000000000000000000000000000000000000000000000016219023d80
Arg [2] : 000000000000000000000000000000000000000000000000000001782015c180
Arg [3] : 000000000000000000000000000000000000000000000000000000000000047e
Arg [4] : 000000000000000000000000f15a103b07467224d1e90cb3e39349646c183238
Arg [5] : 00000000000000000000000080d10df9bab5faad5a4869e0067ce3d529b0a614
Arg [6] : 000000000000000000000000f48a37499eef8c8a8f3456a715cf449461cca710
Arg [7] : 0000000000000000000000008588473ded6b54f5b2428409d4b23dd922bfc75d
Arg [8] : 00000000000000000000000023d3fe92dac510f940ae68faf700c809229c6c27
Swarm Source
bzzr://e9df579f23b898d0ecc85579dc81ff80510bc861533777b12591948255aef044
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.