ERC-20
Overview
Max Total Supply
500,000,000 QCX
Holders
4,991
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
QuickxProtocol
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-01-22 */ pragma solidity 0.4.24; library SafeMath { 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; } 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; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } // source : https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md contract ERC20 { function totalSupply() public view returns (uint); function balanceOf(address tokenOwner) public view returns (uint balance); function allowance(address tokenOwner, address spender) public view returns (uint remaining); function transfer(address to, uint tokens) public returns (bool success); function approve(address spender, uint tokens) public returns (bool success); function transferFrom(address from, address to, uint tokens) public returns (bool success); event Transfer(address indexed from, address indexed to, uint tokens); event Approval(address indexed tokenOwner, address indexed spender, uint tokens); } contract QuickxToken is ERC20 { using SafeMath for uint; // ------------------------------------------------------------------------ // EVENTS // ------------------------------------------------------------------------ event LogBurn(address indexed from, uint256 amount); event LogFreezed(address targetAddress, bool frozen); event LogEmerygencyFreezed(bool emergencyFreezeStatus); // ------------------------------------------------------------------------ // STATE VARIABLES // ------------------------------------------------------------------------ string public name = "QuickX Protocol"; string public symbol = "QCX"; uint8 public decimals = 8; address public owner; uint public totalSupply = 500000000 * (10 ** 8); uint public currentSupply = 250000000 * (10 ** 8); // 50% of total supply bool public emergencyFreeze = true; // ------------------------------------------------------------------------ // MAPPINNGS // ------------------------------------------------------------------------ mapping (address => uint) internal balances; mapping (address => mapping (address => uint) ) private allowed; mapping (address => bool) private frozen; // ------------------------------------------------------------------------ // CONSTRUCTOR // ------------------------------------------------------------------------ constructor () public { owner = address(0x2cf93Eed42d4D0C0121F99a4AbBF0d838A004F64); } // ------------------------------------------------------------------------ // MODIFIERS // ------------------------------------------------------------------------ modifier onlyOwner { require(msg.sender == owner); _; } modifier unfreezed(address _account) { require(!frozen[_account]); _; } modifier noEmergencyFreeze() { require(!emergencyFreeze); _; } // ------------------------------------------------------------------------ // Transfer Token // ------------------------------------------------------------------------ function transfer(address _to, uint _value) public unfreezed(_to) unfreezed(msg.sender) noEmergencyFreeze() returns (bool success) { require(_to != 0x0); _transfer(msg.sender, _to, _value); return true; } // ------------------------------------------------------------------------ // Approve others to spend on your behalf // RACE CONDITION HANDLED // ------------------------------------------------------------------------ function approve(address _spender, uint _value) public unfreezed(_spender) unfreezed(msg.sender) noEmergencyFreeze() returns (bool success) { // To change the approve amount you first have to reduce the addresses` // allowance to zero by calling `approve(_spender, 0)` if it is not // already 0 to mitigate the race condition described here: // https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 require((_value == 0) || (allowed[msg.sender][_spender] == 0)); allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } function increaseApproval(address _spender, uint _addedValue) public unfreezed(_spender) unfreezed(msg.sender) noEmergencyFreeze() returns (bool success) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } function decreaseApproval(address _spender, uint _subtractedValue) public unfreezed(_spender) unfreezed(msg.sender) noEmergencyFreeze() returns (bool success) { uint oldAllowance = allowed[msg.sender][_spender]; if (_subtractedValue > oldAllowance) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldAllowance.sub(_subtractedValue); } emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } // ------------------------------------------------------------------------ // Transferred approved amount from other's account // ------------------------------------------------------------------------ function transferFrom(address _from, address _to, uint _value) public unfreezed(_to) unfreezed(_from) noEmergencyFreeze() returns (bool success) { require(_value <= allowed[_from][msg.sender]); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); _transfer(_from, _to, _value); return true; } // ------------------------------------------------------------------------ // ONLYOWNER METHODS // ------------------------------------------------------------------------ // ------------------------------------------------------------------------ // Freeze account - onlyOwner // ------------------------------------------------------------------------ function freezeAccount (address _target, bool _freeze) public onlyOwner { require(_target != 0x0); frozen[_target] = _freeze; emit LogFreezed(_target, _freeze); } // ------------------------------------------------------------------------ // Emerygency freeze - onlyOwner // ------------------------------------------------------------------------ function emergencyFreezeAllAccounts (bool _freeze) public onlyOwner { emergencyFreeze = _freeze; emit LogEmerygencyFreezed(_freeze); } // ------------------------------------------------------------------------ // Burn (Destroy tokens) // ------------------------------------------------------------------------ function burn(uint256 _value) public onlyOwner returns (bool success) { require(balances[msg.sender] >= _value); balances[msg.sender] = balances[msg.sender].sub(_value); totalSupply = totalSupply.sub(_value); currentSupply = currentSupply.sub(_value); emit LogBurn(msg.sender, _value); return true; } // ------------------------------------------------------------------------ // CONSTANT METHODS // ------------------------------------------------------------------------ // ------------------------------------------------------------------------ // Check Balance : Constant // ------------------------------------------------------------------------ function balanceOf(address _tokenOwner) public view returns (uint) { return balances[_tokenOwner]; } // ------------------------------------------------------------------------ // Total supply : Constant // ------------------------------------------------------------------------ function totalSupply() public view returns (uint) { return totalSupply; } // ------------------------------------------------------------------------ // Check Allowance : Constant // ------------------------------------------------------------------------ function allowance(address _tokenOwner, address _spender) public view returns (uint) { return allowed[_tokenOwner][_spender]; } // ------------------------------------------------------------------------ // Get Freeze Status : Constant // ------------------------------------------------------------------------ function isFreezed(address _targetAddress) public view returns (bool) { return frozen[_targetAddress]; } function _transfer(address from, address to, uint amount) internal { require(balances[from] >= amount); uint balBeforeTransfer = balances[from].add(balances[to]); balances[from] = balances[from].sub(amount); balances[to] = balances[to].add(amount); uint balAfterTransfer = balances[from].add(balances[to]); assert(balBeforeTransfer == balAfterTransfer); emit Transfer(from, to, amount); } } contract QuickxProtocol is QuickxToken { using SafeMath for uint; // ------------------------------------------------------------------------ // STATE VARIABLES 00000000 // ------------------------------------------------------------------------ // 50% of totail coins will be sold in ico uint public tokenSaleAllocation = 250000000 * (10 ** 8); // 2% of total supply goes for bounty uint public bountyAllocation = 10000000 * (10 ** 8); //13% of total tokens is reserved for founders and team uint public founderAllocation = 65000000 * (10 ** 8); //5% of total tokens is reserved for partners uint public partnersAllocation = 25000000 * (10 ** 8); // 15% of total tokens is for Liquidity reserve uint public liquidityReserveAllocation = 75000000 * (10 ** 8); //5% of total tokens is reserved for advisors uint public advisoryAllocation = 25000000 * (10 ** 8); //10% of total tokens in reserved for pre-seed Inverstors uint public preSeedInvestersAllocation = 50000000 * (10 ** 8); uint[] public founderFunds = [ 1300000000000000, 2600000000000000, 3900000000000000, 5200000000000000, 6500000000000000 ]; // 8 decimals included uint[] public advisoryFunds = [ 500000000000000, 1000000000000000, 1500000000000000, 2000000000000000, 2500000000000000 ]; uint public founderFundsWithdrawn = 0; uint public advisoryFundsWithdrawn = 0; // check allcatios bool public bountyAllocated; //bool public founderAllocated; bool public partnersAllocated; bool public liquidityReserveAllocated; bool public preSeedInvestersAllocated; uint public icoSuccessfulTime; bool public isIcoSuccessful; address public beneficiary; // address of hard wallet of admin. // ico state variables uint private totalRaised = 0; // total wei raised by ICO uint private totalCoinsSold = 0; // total coins sold in ICO uint private softCap; // soft cap target in ether uint private hardCap; // hard cap target in ether // rate is number of tokens (including decimals) per wei uint private rateNum; // rate numerator (to avoid fractions) (rate = rateNum/rateDeno) uint private rateDeno; // rate denominator (to avoid fractions) (rate = rateNum/rateDeno) uint public tokenSaleStart; // time when token sale starts uint public tokenSaleEnds; // time when token sale ends bool public icoPaused; // ICO can be paused anytime // ------------------------------------------------------------------------ // EVENTS // ------------------------------------------------------------------------ event LogBontyAllocated( address recepient, uint amount); event LogPartnersAllocated( address recepient, uint amount); event LogLiquidityreserveAllocated( address recepient, uint amount); event LogPreSeedInverstorsAllocated( address recepient, uint amount); event LogAdvisorsAllocated( address recepient, uint amount); event LogFoundersAllocated( address indexed recepient, uint indexed amount); // ico events event LogFundingReceived( address indexed addr, uint indexed weiRecieved, uint indexed tokenTransferred, uint currentTotal); event LogRateUpdated( uint rateNum, uint rateDeno); event LogPaidToOwner( address indexed beneficiary, uint indexed amountPaid); event LogWithdrawnRemaining( address _owner, uint amountWithdrawan); event LogIcoEndDateUpdated( uint _oldEndDate, uint _newEndDate); event LogIcoSuccessful(); /* mappings */ mapping (address => uint) public contributedAmount; // amount contributed by a user // ------------------------------------------------------------------------ // CONSTRUCTOR // ------------------------------------------------------------------------ constructor () public { owner = address(0x2cf93Eed42d4D0C0121F99a4AbBF0d838A004F64); rateNum = 75; rateDeno = 100000000; softCap = 4000 ether; hardCap = 30005019135500000000000 wei; tokenSaleStart = now; tokenSaleEnds = now; balances[this] = currentSupply; isIcoSuccessful = true; icoSuccessfulTime = now; beneficiary = address(0x2cf93Eed42d4D0C0121F99a4AbBF0d838A004F64); emit LogIcoSuccessful(); emit Transfer(0x0, address(this), currentSupply); } /* Fallback function */ function () public payable { require(msg.data.length == 0); contribute(); } modifier isFundRaising() { require( totalRaised <= hardCap && now >= tokenSaleStart && now < tokenSaleEnds && !icoPaused ); _; } // ------------------------------------------------------------------------ // ONLY OWNER METHODS // ------------------------------------------------------------------------ function allocateBountyTokens() public onlyOwner { require(isIcoSuccessful && icoSuccessfulTime > 0); require(!bountyAllocated); balances[owner] = balances[owner].add(bountyAllocation); currentSupply = currentSupply.add(bountyAllocation); bountyAllocated = true; assert(currentSupply <= totalSupply); emit LogBontyAllocated(owner, bountyAllocation); emit Transfer(0x0, owner, bountyAllocation); } function allocatePartnersTokens() public onlyOwner { require(isIcoSuccessful && icoSuccessfulTime > 0); require(!partnersAllocated); balances[owner] = balances[owner].add(partnersAllocation); currentSupply = currentSupply.add(partnersAllocation); partnersAllocated = true; assert(currentSupply <= totalSupply); emit LogPartnersAllocated(owner, partnersAllocation); emit Transfer(0x0, owner, partnersAllocation); } function allocateLiquidityReserveTokens() public onlyOwner { require(isIcoSuccessful && icoSuccessfulTime > 0); require(!liquidityReserveAllocated); balances[owner] = balances[owner].add(liquidityReserveAllocation); currentSupply = currentSupply.add(liquidityReserveAllocation); liquidityReserveAllocated = true; assert(currentSupply <= totalSupply); emit LogLiquidityreserveAllocated(owner, liquidityReserveAllocation); emit Transfer(0x0, owner, liquidityReserveAllocation); } function allocatePreSeedInvesterTokens() public onlyOwner { require(isIcoSuccessful && icoSuccessfulTime > 0); require(!preSeedInvestersAllocated); balances[owner] = balances[owner].add(preSeedInvestersAllocation); currentSupply = currentSupply.add(preSeedInvestersAllocation); preSeedInvestersAllocated = true; assert(currentSupply <= totalSupply); emit LogPreSeedInverstorsAllocated(owner, preSeedInvestersAllocation); emit Transfer(0x0, owner, preSeedInvestersAllocation); } function allocateFounderTokens() public onlyOwner { require(isIcoSuccessful && icoSuccessfulTime > 0); uint calculatedFunds = calculateFoundersTokens(); uint eligibleFunds = calculatedFunds.sub(founderFundsWithdrawn); require(eligibleFunds > 0); balances[owner] = balances[owner].add(eligibleFunds); currentSupply = currentSupply.add(eligibleFunds); founderFundsWithdrawn = founderFundsWithdrawn.add(eligibleFunds); assert(currentSupply <= totalSupply); emit LogFoundersAllocated(owner, eligibleFunds); emit Transfer(0x0, owner, eligibleFunds); } function allocateAdvisoryTokens() public onlyOwner { require(isIcoSuccessful && icoSuccessfulTime > 0); uint calculatedFunds = calculateAdvisoryTokens(); uint eligibleFunds = calculatedFunds.sub(advisoryFundsWithdrawn); require(eligibleFunds > 0); balances[owner] = balances[owner].add(eligibleFunds); currentSupply = currentSupply.add(eligibleFunds); advisoryFundsWithdrawn = advisoryFundsWithdrawn.add(eligibleFunds); assert(currentSupply <= totalSupply); emit LogAdvisorsAllocated(owner, eligibleFunds); emit Transfer(0x0, owner, eligibleFunds); } // there is no explicit need of this function as funds are directly transferred to owner's hardware wallet. // but this is kept just to avoid any case when ETH is locked in contract function withdrawEth () public onlyOwner { owner.transfer(address(this).balance); emit LogPaidToOwner(owner, address(this).balance); } function updateRate (uint _rateNum, uint _rateDeno) public onlyOwner { rateNum = _rateNum; rateDeno = _rateDeno; emit LogRateUpdated(rateNum, rateDeno); } function updateIcoEndDate(uint _newDate) public onlyOwner { uint oldEndDate = tokenSaleEnds; tokenSaleEnds = _newDate; emit LogIcoEndDateUpdated (oldEndDate, _newDate); } // admin can withdraw token not sold in ICO function withdrawUnsold() public onlyOwner returns (bool) { require(now > tokenSaleEnds); uint unsold = (tokenSaleAllocation.sub(totalCoinsSold)); balances[owner] = balances[owner].add(unsold); balances[address(this)] = balances[address(this)].sub(unsold); emit LogWithdrawnRemaining(owner, unsold); emit Transfer(address(this), owner, unsold); return true; } // ------------------------------------------------------------------------ // Owner can transfer out any accidentally sent ERC20 tokens // ------------------------------------------------------------------------ function transferAnyERC20Token(address _tokenAddress, uint _value) public onlyOwner returns (bool success) { // this condition is to stop admin from withdrawing funds unless all funds of ICO are successfully settelled if (_tokenAddress == address(this)) { require(now > tokenSaleStart + 730 days); // expecting 2 years time, all vested funds will be released. } return ERC20(_tokenAddress).transfer(owner, _value); } function pauseICO(bool pauseStatus) public onlyOwner returns (bool status) { require(icoPaused != pauseStatus); icoPaused = pauseStatus; return true; } // ------------------------------------------------------------------------ // PUBLIC METHODS // ------------------------------------------------------------------------ function contribute () public payable isFundRaising returns(bool) { uint calculatedTokens = calculateTokens(msg.value); require(calculatedTokens > 0); require(totalCoinsSold.add(calculatedTokens) <= tokenSaleAllocation); contributedAmount[msg.sender] = contributedAmount[msg.sender].add(msg.value); totalRaised = totalRaised.add(msg.value); totalCoinsSold = totalCoinsSold.add(calculatedTokens); _transfer(address(this), msg.sender, calculatedTokens); beneficiary.transfer(msg.value); checkIfSoftCapReached(); emit LogFundingReceived(msg.sender, msg.value, calculatedTokens, totalRaised); emit LogPaidToOwner(beneficiary, msg.value); return true; } // ------------------------------------------------------------------------ // CONSTANT METHODS // ------------------------------------------------------------------------ function calculateTokens(uint weisToTransfer) public view returns(uint) { uint discount = calculateDiscount(); uint coins = weisToTransfer.mul(rateNum).mul(discount).div(100 * rateDeno); return coins; } function getTotalWeiRaised () public view returns(uint totalEthRaised) { return totalRaised; } function getTotalCoinsSold() public view returns(uint _coinsSold) { return totalCoinsSold; } function getSoftCap () public view returns(uint _softCap) { return softCap; } function getHardCap () public view returns(uint _hardCap) { return hardCap; } function getContractOwner () public view returns(address contractOwner) { return owner; } function isContractAcceptingPayment() public view returns (bool) { if (totalRaised < hardCap && now >= tokenSaleStart && now < tokenSaleEnds && totalCoinsSold < tokenSaleAllocation) return true; else return false; } // ------------------------------------------------------------------------ // INTERNAL METHODS // ------------------------------------------------------------------------ function calculateFoundersTokens() internal view returns(uint) { uint timeAferIcoSuceess = now.sub(icoSuccessfulTime); uint timeSpendInMonths = timeAferIcoSuceess.div(30 days); if (timeSpendInMonths >= 3 && timeSpendInMonths < 6) { return founderFunds[0]; } else if (timeSpendInMonths >= 6 && timeSpendInMonths < 9) { return founderFunds[1]; } else if (timeSpendInMonths >= 9 && timeSpendInMonths < 12) { return founderFunds[2]; } else if (timeSpendInMonths >= 12 && timeSpendInMonths < 18) { return founderFunds[3]; } else if (timeSpendInMonths >= 18) { return founderFunds[4]; } else { revert(); } } function calculateAdvisoryTokens()internal view returns(uint) { uint timeSpentAfterIcoEnd = now.sub(icoSuccessfulTime); uint timeSpendInMonths = timeSpentAfterIcoEnd.div(30 days); if (timeSpendInMonths >= 0 && timeSpendInMonths < 3) return advisoryFunds[0]; if (timeSpendInMonths < 6) return advisoryFunds[1]; if (timeSpendInMonths < 9) return advisoryFunds[2]; if (timeSpendInMonths < 12) return advisoryFunds[3]; if (timeSpendInMonths >= 12) return advisoryFunds[4]; revert(); } function checkIfSoftCapReached() internal returns (bool) { if (totalRaised >= softCap && !isIcoSuccessful) { isIcoSuccessful = true; icoSuccessfulTime = now; emit LogIcoSuccessful(); } return; } function calculateDiscount() internal view returns(uint) { if (totalCoinsSold < 12500000000000000) { return 115; // 15 % discount } else if (totalCoinsSold < 18750000000000000) { return 110; // 10 % discount } else if (totalCoinsSold < 25000000000000000) { return 105; // 5 % discount } else { // this case should never arise return 100; // 0 % discount } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"tokenSaleAllocation","outputs":[{"name":"","type":"uint256"}],"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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newDate","type":"uint256"}],"name":"updateIcoEndDate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"advisoryFundsWithdrawn","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"founderFunds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"founderFundsWithdrawn","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bountyAllocated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"advisoryFunds","outputs":[{"name":"","type":"uint256"}],"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":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoPaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSaleStart","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_rateNum","type":"uint256"},{"name":"_rateDeno","type":"uint256"}],"name":"updateRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getContractOwner","outputs":[{"name":"contractOwner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTotalCoinsSold","outputs":[{"name":"_coinsSold","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getSoftCap","outputs":[{"name":"_softCap","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"pauseStatus","type":"bool"}],"name":"pauseICO","outputs":[{"name":"status","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"allocateLiquidityReserveTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawUnsold","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"allocatePreSeedInvesterTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"weisToTransfer","type":"uint256"}],"name":"calculateTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_freeze","type":"bool"}],"name":"emergencyFreezeAllAccounts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"allocatePartnersTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isIcoSuccessful","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_targetAddress","type":"address"}],"name":"isFreezed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"allocateBountyTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"founderAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"preSeedInvestersAllocation","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":true,"inputs":[],"name":"liquidityReserveAllocated","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":true,"inputs":[],"name":"isContractAcceptingPayment","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"partnersAllocated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTotalWeiRaised","outputs":[{"name":"totalEthRaised","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEth","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"tokenSaleEnds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"allocateAdvisoryTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"partnersAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"allocateFounderTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getHardCap","outputs":[{"name":"_hardCap","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"advisoryAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoSuccessfulTime","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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"contribute","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenAddress","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenOwner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"contributedAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"emergencyFreeze","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"liquidityReserveAllocation","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":"preSeedInvestersAllocated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recepient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogBontyAllocated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recepient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogPartnersAllocated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recepient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogLiquidityreserveAllocated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recepient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogPreSeedInverstorsAllocated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recepient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogAdvisorsAllocated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"recepient","type":"address"},{"indexed":true,"name":"amount","type":"uint256"}],"name":"LogFoundersAllocated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":true,"name":"weiRecieved","type":"uint256"},{"indexed":true,"name":"tokenTransferred","type":"uint256"},{"indexed":false,"name":"currentTotal","type":"uint256"}],"name":"LogFundingReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"rateNum","type":"uint256"},{"indexed":false,"name":"rateDeno","type":"uint256"}],"name":"LogRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":true,"name":"amountPaid","type":"uint256"}],"name":"LogPaidToOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_owner","type":"address"},{"indexed":false,"name":"amountWithdrawan","type":"uint256"}],"name":"LogWithdrawnRemaining","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_oldEndDate","type":"uint256"},{"indexed":false,"name":"_newEndDate","type":"uint256"}],"name":"LogIcoEndDateUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"LogIcoSuccessful","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogBurn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"targetAddress","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"LogFreezed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"emergencyFreezeStatus","type":"bool"}],"name":"LogEmerygencyFreezed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
60806040526040805190810160405280600f81526020017f517569636b582050726f746f636f6c000000000000000000000000000000000081525060009080519060200190620000519291906200049f565b506040805190810160405280600381526020017f5143580000000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f9291906200049f565b506008600260006101000a81548160ff021916908360ff16021790555066b1a2bc2ec500006003556658d15e176280006004556001600560006101000a81548160ff0219169083151502179055506658d15e1762800060095566038d7ea4c68000600a55661717b72f0a4000600b556608e1bc9bf04000600c55661aa535d3d0c000600d556608e1bc9bf04000600e556611c37937e08000600f5560a06040519081016040528066049e57d635400066ffffffffffffff16815260200166093cafac6a800066ffffffffffffff168152602001660ddb07829fc00066ffffffffffffff1681526020016612795f58d5000066ffffffffffffff168152602001661717b72f0a400066ffffffffffffff168152506010906005620001c492919062000526565b5060a0604051908101604052806601c6bf5263400066ffffffffffffff16815260200166038d7ea4c6800066ffffffffffffff1681526020016605543df729c00066ffffffffffffff16815260200166071afd498d000066ffffffffffffff1681526020016608e1bc9bf0400066ffffffffffffff1681525060119060056200024f92919062000526565b5060006012556000601355600060175560006018553480156200027157600080fd5b50732cf93eed42d4d0c0121f99a4abbf0d838a004f64600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732cf93eed42d4d0c0121f99a4abbf0d838a004f64600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604b601b819055506305f5e100601c8190555068d8d726b7177a80000060198190555069065a9349ea5523cd7800601a8190555042601d8190555042601e81905550600454600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601660006101000a81548160ff02191690831515021790555042601581905550732cf93eed42d4d0c0121f99a4abbf0d838a004f64601660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fc8ba19d69e2df173a022cf0fcdaee173bc9cdb3553f54528c68f82ef7f1539b860405160405180910390a13073ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040518082815260200191505060405180910390a3620005ab565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004e257805160ff191683800117855562000513565b8280016001018555821562000513579182015b8281111562000512578251825591602001919060010190620004f5565b5b50905062000522919062000583565b5090565b82805482825590600052602060002090810192821562000570579160200282015b828111156200056f578251829066ffffffffffffff1690559160200191906001019062000547565b5b5090506200057f919062000583565b5090565b620005a891905b80821115620005a45760008160009055506001016200058a565b5090565b90565b61482880620005bb6000396000f3006080604052600436106102ca576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630459bb1d146102e757806306fdde0314610312578063095ea7b3146103a25780630a1fdc1e14610407578063132714aa14610434578063150b56351461045f57806317811af5146104a057806318160ddd146104cb5780631bc59aa6146104f6578063239b1f541461052557806323b872dd14610566578063313ce567146105eb57806338af3eed1461061c5780633b278f2a14610673578063403911a6146106a2578063405abb41146106cd57806342966c6814610704578063442890d5146107495780634a1d0e6f146107a05780634d52a512146107cb5780634f2f1af9146107f657806359d96a7e1461083d57806361d6d3851461085457806366188463146108835780637080e99f146108e857806370a08231146108ff57806371aa60fd14610956578063771282f6146109975780637898278f146109c257806379116c5d146109f15780637f28c44f14610a085780638111f24e14610a3757806381fcfbcc14610a92578063824338bd14610aa957806388b1c1ce14610ad45780638da5cb5b14610aff57806391cc2cc514610b5657806395d89b4114610b8557806399ed0d1714610c155780639b677edc14610c445780639f0c83f914610c73578063a0ef91df14610c9e578063a9059cbb14610cb5578063a9d2495414610d1a578063b450710214610d45578063bae5e69314610d5c578063bcfcb03e14610d87578063bf0a07bd14610d9e578063c026f58d14610dc9578063ca135a6114610df4578063d73dd62314610e1f578063d7bb99ba14610e84578063dc39d06d14610ea6578063dd62ed3e14610f0b578063e0961f1714610f82578063e724529c14610fd9578063f3d4b94214611028578063f4fc3e6f14611057578063f6b9d05d14611082578063f846eb19146110ad575b6000803690501415156102dc57600080fd5b6102e46110dc565b50005b3480156102f357600080fd5b506102fc61136d565b6040518082815260200191505060405180910390f35b34801561031e57600080fd5b50610327611373565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036757808201518184015260208101905061034c565b50505050905090810190601f1680156103945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103ae57600080fd5b506103ed600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611411565b604051808215151515815260200191505060405180910390f35b34801561041357600080fd5b506104326004803603810190808035906020019092919050505061166b565b005b34801561044057600080fd5b50610449611718565b6040518082815260200191505060405180910390f35b34801561046b57600080fd5b5061048a6004803603810190808035906020019092919050505061171e565b6040518082815260200191505060405180910390f35b3480156104ac57600080fd5b506104b5611741565b6040518082815260200191505060405180910390f35b3480156104d757600080fd5b506104e0611747565b6040518082815260200191505060405180910390f35b34801561050257600080fd5b5061050b611751565b604051808215151515815260200191505060405180910390f35b34801561053157600080fd5b5061055060048036038101908080359060200190929190505050611764565b6040518082815260200191505060405180910390f35b34801561057257600080fd5b506105d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611787565b604051808215151515815260200191505060405180910390f35b3480156105f757600080fd5b50610600611a0b565b604051808260ff1660ff16815260200191505060405180910390f35b34801561062857600080fd5b50610631611a1e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561067f57600080fd5b50610688611a44565b604051808215151515815260200191505060405180910390f35b3480156106ae57600080fd5b506106b7611a57565b6040518082815260200191505060405180910390f35b3480156106d957600080fd5b506107026004803603810190808035906020019092919080359060200190929190505050611a5d565b005b34801561071057600080fd5b5061072f60048036038101908080359060200190929190505050611b0e565b604051808215151515815260200191505060405180910390f35b34801561075557600080fd5b5061075e611cdc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107ac57600080fd5b506107b5611d06565b6040518082815260200191505060405180910390f35b3480156107d757600080fd5b506107e0611d10565b6040518082815260200191505060405180910390f35b34801561080257600080fd5b50610823600480360381019080803515159060200190929190505050611d1a565b604051808215151515815260200191505060405180910390f35b34801561084957600080fd5b50610852611dbd565b005b34801561086057600080fd5b50610869612086565b604051808215151515815260200191505060405180910390f35b34801561088f57600080fd5b506108ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612398565b604051808215151515815260200191505060405180910390f35b3480156108f457600080fd5b506108fd6126fb565b005b34801561090b57600080fd5b50610940600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129c4565b6040518082815260200191505060405180910390f35b34801561096257600080fd5b5061098160048036038101908080359060200190929190505050612a0d565b6040518082815260200191505060405180910390f35b3480156109a357600080fd5b506109ac612a66565b6040518082815260200191505060405180910390f35b3480156109ce57600080fd5b506109ef600480360381019080803515159060200190929190505050612a6c565b005b3480156109fd57600080fd5b50610a06612b20565b005b348015610a1457600080fd5b50610a1d612de9565b604051808215151515815260200191505060405180910390f35b348015610a4357600080fd5b50610a78600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dfc565b604051808215151515815260200191505060405180910390f35b348015610a9e57600080fd5b50610aa7612e52565b005b348015610ab557600080fd5b50610abe61311b565b6040518082815260200191505060405180910390f35b348015610ae057600080fd5b50610ae9613121565b6040518082815260200191505060405180910390f35b348015610b0b57600080fd5b50610b14613127565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b6257600080fd5b50610b6b61314d565b604051808215151515815260200191505060405180910390f35b348015610b9157600080fd5b50610b9a613160565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bda578082015181840152602081019050610bbf565b50505050905090810190601f168015610c075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c2157600080fd5b50610c2a6131fe565b604051808215151515815260200191505060405180910390f35b348015610c5057600080fd5b50610c59613247565b604051808215151515815260200191505060405180910390f35b348015610c7f57600080fd5b50610c8861325a565b6040518082815260200191505060405180910390f35b348015610caa57600080fd5b50610cb3613264565b005b348015610cc157600080fd5b50610d00600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506133bf565b604051808215151515815260200191505060405180910390f35b348015610d2657600080fd5b50610d2f6134ce565b6040518082815260200191505060405180910390f35b348015610d5157600080fd5b50610d5a6134d4565b005b348015610d6857600080fd5b50610d716137ae565b6040518082815260200191505060405180910390f35b348015610d9357600080fd5b50610d9c6137b4565b005b348015610daa57600080fd5b50610db3613a67565b6040518082815260200191505060405180910390f35b348015610dd557600080fd5b50610dde613a71565b6040518082815260200191505060405180910390f35b348015610e0057600080fd5b50610e09613a77565b6040518082815260200191505060405180910390f35b348015610e2b57600080fd5b50610e6a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613a7d565b604051808215151515815260200191505060405180910390f35b610e8c6110dc565b604051808215151515815260200191505060405180910390f35b348015610eb257600080fd5b50610ef1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613d4b565b604051808215151515815260200191505060405180910390f35b348015610f1757600080fd5b50610f6c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613efc565b6040518082815260200191505060405180910390f35b348015610f8e57600080fd5b50610fc3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613f83565b6040518082815260200191505060405180910390f35b348015610fe557600080fd5b50611026600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050613f9a565b005b34801561103457600080fd5b5061103d6140e6565b604051808215151515815260200191505060405180910390f35b34801561106357600080fd5b5061106c6140f9565b6040518082815260200191505060405180910390f35b34801561108e57600080fd5b506110976140ff565b6040518082815260200191505060405180910390f35b3480156110b957600080fd5b506110c2614105565b604051808215151515815260200191505060405180910390f35b600080601a54601754111580156110f55750601d544210155b80156111025750601e5442105b801561111b5750601f60009054906101000a900460ff16155b151561112657600080fd5b61112f34612a0d565b905060008111151561114057600080fd5b6009546111588260185461411890919063ffffffff16565b1115151561116557600080fd5b6111b734602060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b602060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061120f3460175461411890919063ffffffff16565b60178190555061122a8160185461411890919063ffffffff16565b60188190555061123b303383614136565b601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156112a3573d6000803e3d6000fd5b506112ac61444e565b5080343373ffffffffffffffffffffffffffffffffffffffff167fa73186877f0b4ccd5219831b83db2813c7b9a2dd91e43b7f238cdd41bc8b6b316017546040518082815260200191505060405180910390a434601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8ed948c0cb38c1f447cb19b6f45212d2d735ee2d59dd0a02d2697a25ea7473c360405160405180910390a3600191505090565b60095481565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114095780601f106113de57610100808354040283529160200191611409565b820191906000526020600020905b8154815290600101906020018083116113ec57829003601f168201915b505050505081565b600082600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561146d57600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156114c757600080fd5b600560009054906101000a900460ff161515156114e357600080fd5b600084148061156e57506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b151561157957600080fd5b83600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925866040518082815260200191505060405180910390a360019250505092915050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116c957600080fd5b601e54905081601e819055507f33dd1f01879e9bccfcb3ae9d640e0a4c46721aee0287c96e1ec887b8e16595258183604051808381526020018281526020019250505060405180910390a15050565b60135481565b60108181548110151561172d57fe5b906000526020600020016000915090505481565b60125481565b6000600354905090565b601460009054906101000a900460ff1681565b60118181548110151561177357fe5b906000526020600020016000915090505481565b600082600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156117e357600080fd5b84600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561183d57600080fd5b600560009054906101000a900460ff1615151561185957600080fd5b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484111515156118e457600080fd5b61197384600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144c890919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119fe868686614136565b6001925050509392505050565b600260009054906101000a900460ff1681565b601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900460ff1681565b601d5481565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ab957600080fd5b81601b8190555080601c819055507f1d6b5a42045a5ee15c609786566814fdea6efac4f0c041d3577b5a9ce304a525601b54601c54604051808381526020018281526020019250505060405180910390a15050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b6c57600080fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611bba57600080fd5b611c0c82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144c890919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c64826003546144c890919063ffffffff16565b600381905550611c7f826004546144c890919063ffffffff16565b6004819055503373ffffffffffffffffffffffffffffffffffffffff167f38d762ef507761291a578e921acfe29c1af31a7331ea03e391cf16cfc4d4f581836040518082815260200191505060405180910390a260019050919050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601854905090565b6000601954905090565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d7857600080fd5b811515601f60009054906101000a900460ff16151514151515611d9a57600080fd5b81601f60006101000a81548160ff02191690831515021790555060019050919050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e1957600080fd5b601660009054906101000a900460ff168015611e3757506000601554115b1515611e4257600080fd5b601460029054906101000a900460ff16151515611e5e57600080fd5b611ed4600d5460066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f50600d5460045461411890919063ffffffff16565b6004819055506001601460026101000a81548160ff02191690831515021790555060035460045411151515611f8157fe5b7f79cfa97a78f0d65b153dd45ab4cd59441c54634d8771fd00e6aec8365bc5f09a600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d54604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d546040518082815260200191505060405180910390a3565b600080600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120e557600080fd5b601e54421115156120f557600080fd5b61210c6018546009546144c890919063ffffffff16565b90506121828160066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061223981600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144c890919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f19c53189df303bd288346a6d153f4f28d05e891dc832e73b72b3b0ef1642357e600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600191505090565b60008083600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156123f557600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561244f57600080fd5b600560009054906101000a900460ff1615151561246b57600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054925082851115612579576000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061260d565b61258c85846144c890919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001935050505092915050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561275757600080fd5b601660009054906101000a900460ff16801561277557506000601554115b151561278057600080fd5b601460039054906101000a900460ff1615151561279c57600080fd5b612812600f5460066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061288e600f5460045461411890919063ffffffff16565b6004819055506001601460036101000a81548160ff021916908315150217905550600354600454111515156128bf57fe5b7f408e353c0b43da18517f296753c7bd84650649d71e05b4e9a54a0415d62488a0600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f54604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f546040518082815260200191505060405180910390a3565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000612a1a6144e1565b9150612a5a601c54606402612a4c84612a3e601b548961453990919063ffffffff16565b61453990919063ffffffff16565b61457490919063ffffffff16565b90508092505050919050565b60045481565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ac857600080fd5b80600560006101000a81548160ff0219169083151502179055507f607a2eb5bc51cd7ff68792f9e7c49352b7be26fd0068783e323e36f9f635980681604051808215151515815260200191505060405180910390a150565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612b7c57600080fd5b601660009054906101000a900460ff168015612b9a57506000601554115b1515612ba557600080fd5b601460019054906101000a900460ff16151515612bc157600080fd5b612c37600c5460066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cb3600c5460045461411890919063ffffffff16565b6004819055506001601460016101000a81548160ff02191690831515021790555060035460045411151515612ce457fe5b7fb02502445088457e4c9e503bccdcfe4e5dd8c1d41fbb2d0b1a1d94ff6261a073600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c54604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c546040518082815260200191505060405180910390a3565b601660009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612eae57600080fd5b601660009054906101000a900460ff168015612ecc57506000601554115b1515612ed757600080fd5b601460009054906101000a900460ff16151515612ef357600080fd5b612f69600a5460066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fe5600a5460045461411890919063ffffffff16565b6004819055506001601460006101000a81548160ff0219169083151502179055506003546004541115151561301657fe5b7f9595a4f845fc9697f1974afc41d46cdfdb3a787f057c1d080db9044152ddca65600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a54604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040518082815260200191505060405180910390a3565b600b5481565b600f5481565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460029054906101000a900460ff1681565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131f65780601f106131cb576101008083540402835291602001916131f6565b820191906000526020600020905b8154815290600101906020018083116131d957829003601f168201915b505050505081565b6000601a546017541080156132155750601d544210155b80156132225750601e5442105b80156132315750600954601854105b1561323f5760019050613244565b600090505b90565b601460019054906101000a900460ff1681565b6000601754905090565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156132c057600080fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015801561333f573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff1631600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8ed948c0cb38c1f447cb19b6f45212d2d735ee2d59dd0a02d2697a25ea7473c360405160405180910390a3565b600082600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561341b57600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561347557600080fd5b600560009054906101000a900460ff1615151561349157600080fd5b60008573ffffffffffffffffffffffffffffffffffffffff16141515156134b757600080fd5b6134c2338686614136565b60019250505092915050565b601e5481565b600080600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561353357600080fd5b601660009054906101000a900460ff16801561355157506000601554115b151561355c57600080fd5b61356461458f565b915061357b601354836144c890919063ffffffff16565b905060008111151561358c57600080fd5b6136008160066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061367a8160045461411890919063ffffffff16565b6004819055506136958160135461411890919063ffffffff16565b601381905550600354600454111515156136ab57fe5b7fbbf4e0ab9f7955cde2442d5d6dc3a80c7a35b38d90820c9b89e4748520a0a6eb600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600c5481565b600080600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561381357600080fd5b601660009054906101000a900460ff16801561383157506000601554115b151561383c57600080fd5b6138446146b2565b915061385b601254836144c890919063ffffffff16565b905060008111151561386c57600080fd5b6138e08160066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061395a8160045461411890919063ffffffff16565b6004819055506139758160125461411890919063ffffffff16565b6012819055506003546004541115151561398b57fe5b80600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddfe4a1c5b60069989d419e1800e71a9806afe484ceedd1c34221379f918211e60405160405180910390a3600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000601a54905090565b600e5481565b60155481565b600082600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515613ad957600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515613b3357600080fd5b600560009054906101000a900460ff16151515613b4f57600080fd5b613bde84600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a360019250505092915050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613da957600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613df4576303c26700601d540142111515613df357600080fd5b5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613eb957600080fd5b505af1158015613ecd573d6000803e3d6000fd5b505050506040513d6020811015613ee357600080fd5b8101908080519060200190929190505050905092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b602080528060005260406000206000915090505481565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613ff657600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415151561401c57600080fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fdad2539b39cdbb96eb5dac852bf880a471c22b0e9d698aa1d48eae8d014ea8f48282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b600560009054906101000a900460ff1681565b600d5481565b600a5481565b601460039054906101000a900460ff1681565b600080828401905083811015151561412c57fe5b8091505092915050565b60008082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561418757600080fd5b614218600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b915061426c83600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144c890919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061430183600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506143d5600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b905080821415156143e257fe5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b6000601954601754101580156144715750601660009054906101000a900460ff16155b156144c5576001601660006101000a81548160ff021916908315150217905550426015819055507fc8ba19d69e2df173a022cf0fcdaee173bc9cdb3553f54528c68f82ef7f1539b860405160405180910390a15b90565b60008282111515156144d657fe5b818303905092915050565b6000662c68af0bb1400060185410156144fd5760739050614536565b66429d069189e000601854101561451757606e9050614536565b6658d15e1762800060185410156145315760699050614536565b606490505b90565b600080600084141561454e576000915061456d565b828402905082848281151561455f57fe5b0414151561456957fe5b8091505b5092915050565b600080828481151561458257fe5b0490508091505092915050565b60008060006145a9601554426144c890919063ffffffff16565b91506145c162278d008361457490919063ffffffff16565b9050600081101580156145d45750600381105b156145fb57601160008154811015156145e957fe5b906000526020600020015492506146ad565b6006811015614626576011600181548110151561461457fe5b906000526020600020015492506146ad565b6009811015614651576011600281548110151561463f57fe5b906000526020600020015492506146ad565b600c81101561467c576011600381548110151561466a57fe5b906000526020600020015492506146ad565b600c811015156146a8576011600481548110151561469657fe5b906000526020600020015492506146ad565b600080fd5b505090565b60008060006146cc601554426144c890919063ffffffff16565b91506146e462278d008361457490919063ffffffff16565b9050600381101580156146f75750600681105b1561471e576010600081548110151561470c57fe5b906000526020600020015492506147f7565b6006811015801561472f5750600981105b15614756576010600181548110151561474457fe5b906000526020600020015492506147f7565b600981101580156147675750600c81105b1561478e576010600281548110151561477c57fe5b906000526020600020015492506147f7565b600c811015801561479f5750601281105b156147c657601060038154811015156147b457fe5b906000526020600020015492506147f7565b6012811015156147f257601060048154811015156147e057fe5b906000526020600020015492506147f7565b600080fd5b5050905600a165627a7a7230582095b089bf1de7ff070e4079be62adc1d5cfcb46e5e711f69ed73da71297aaac440029
Deployed Bytecode
0x6080604052600436106102ca576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630459bb1d146102e757806306fdde0314610312578063095ea7b3146103a25780630a1fdc1e14610407578063132714aa14610434578063150b56351461045f57806317811af5146104a057806318160ddd146104cb5780631bc59aa6146104f6578063239b1f541461052557806323b872dd14610566578063313ce567146105eb57806338af3eed1461061c5780633b278f2a14610673578063403911a6146106a2578063405abb41146106cd57806342966c6814610704578063442890d5146107495780634a1d0e6f146107a05780634d52a512146107cb5780634f2f1af9146107f657806359d96a7e1461083d57806361d6d3851461085457806366188463146108835780637080e99f146108e857806370a08231146108ff57806371aa60fd14610956578063771282f6146109975780637898278f146109c257806379116c5d146109f15780637f28c44f14610a085780638111f24e14610a3757806381fcfbcc14610a92578063824338bd14610aa957806388b1c1ce14610ad45780638da5cb5b14610aff57806391cc2cc514610b5657806395d89b4114610b8557806399ed0d1714610c155780639b677edc14610c445780639f0c83f914610c73578063a0ef91df14610c9e578063a9059cbb14610cb5578063a9d2495414610d1a578063b450710214610d45578063bae5e69314610d5c578063bcfcb03e14610d87578063bf0a07bd14610d9e578063c026f58d14610dc9578063ca135a6114610df4578063d73dd62314610e1f578063d7bb99ba14610e84578063dc39d06d14610ea6578063dd62ed3e14610f0b578063e0961f1714610f82578063e724529c14610fd9578063f3d4b94214611028578063f4fc3e6f14611057578063f6b9d05d14611082578063f846eb19146110ad575b6000803690501415156102dc57600080fd5b6102e46110dc565b50005b3480156102f357600080fd5b506102fc61136d565b6040518082815260200191505060405180910390f35b34801561031e57600080fd5b50610327611373565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561036757808201518184015260208101905061034c565b50505050905090810190601f1680156103945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103ae57600080fd5b506103ed600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611411565b604051808215151515815260200191505060405180910390f35b34801561041357600080fd5b506104326004803603810190808035906020019092919050505061166b565b005b34801561044057600080fd5b50610449611718565b6040518082815260200191505060405180910390f35b34801561046b57600080fd5b5061048a6004803603810190808035906020019092919050505061171e565b6040518082815260200191505060405180910390f35b3480156104ac57600080fd5b506104b5611741565b6040518082815260200191505060405180910390f35b3480156104d757600080fd5b506104e0611747565b6040518082815260200191505060405180910390f35b34801561050257600080fd5b5061050b611751565b604051808215151515815260200191505060405180910390f35b34801561053157600080fd5b5061055060048036038101908080359060200190929190505050611764565b6040518082815260200191505060405180910390f35b34801561057257600080fd5b506105d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611787565b604051808215151515815260200191505060405180910390f35b3480156105f757600080fd5b50610600611a0b565b604051808260ff1660ff16815260200191505060405180910390f35b34801561062857600080fd5b50610631611a1e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561067f57600080fd5b50610688611a44565b604051808215151515815260200191505060405180910390f35b3480156106ae57600080fd5b506106b7611a57565b6040518082815260200191505060405180910390f35b3480156106d957600080fd5b506107026004803603810190808035906020019092919080359060200190929190505050611a5d565b005b34801561071057600080fd5b5061072f60048036038101908080359060200190929190505050611b0e565b604051808215151515815260200191505060405180910390f35b34801561075557600080fd5b5061075e611cdc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107ac57600080fd5b506107b5611d06565b6040518082815260200191505060405180910390f35b3480156107d757600080fd5b506107e0611d10565b6040518082815260200191505060405180910390f35b34801561080257600080fd5b50610823600480360381019080803515159060200190929190505050611d1a565b604051808215151515815260200191505060405180910390f35b34801561084957600080fd5b50610852611dbd565b005b34801561086057600080fd5b50610869612086565b604051808215151515815260200191505060405180910390f35b34801561088f57600080fd5b506108ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612398565b604051808215151515815260200191505060405180910390f35b3480156108f457600080fd5b506108fd6126fb565b005b34801561090b57600080fd5b50610940600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129c4565b6040518082815260200191505060405180910390f35b34801561096257600080fd5b5061098160048036038101908080359060200190929190505050612a0d565b6040518082815260200191505060405180910390f35b3480156109a357600080fd5b506109ac612a66565b6040518082815260200191505060405180910390f35b3480156109ce57600080fd5b506109ef600480360381019080803515159060200190929190505050612a6c565b005b3480156109fd57600080fd5b50610a06612b20565b005b348015610a1457600080fd5b50610a1d612de9565b604051808215151515815260200191505060405180910390f35b348015610a4357600080fd5b50610a78600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dfc565b604051808215151515815260200191505060405180910390f35b348015610a9e57600080fd5b50610aa7612e52565b005b348015610ab557600080fd5b50610abe61311b565b6040518082815260200191505060405180910390f35b348015610ae057600080fd5b50610ae9613121565b6040518082815260200191505060405180910390f35b348015610b0b57600080fd5b50610b14613127565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b6257600080fd5b50610b6b61314d565b604051808215151515815260200191505060405180910390f35b348015610b9157600080fd5b50610b9a613160565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bda578082015181840152602081019050610bbf565b50505050905090810190601f168015610c075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c2157600080fd5b50610c2a6131fe565b604051808215151515815260200191505060405180910390f35b348015610c5057600080fd5b50610c59613247565b604051808215151515815260200191505060405180910390f35b348015610c7f57600080fd5b50610c8861325a565b6040518082815260200191505060405180910390f35b348015610caa57600080fd5b50610cb3613264565b005b348015610cc157600080fd5b50610d00600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506133bf565b604051808215151515815260200191505060405180910390f35b348015610d2657600080fd5b50610d2f6134ce565b6040518082815260200191505060405180910390f35b348015610d5157600080fd5b50610d5a6134d4565b005b348015610d6857600080fd5b50610d716137ae565b6040518082815260200191505060405180910390f35b348015610d9357600080fd5b50610d9c6137b4565b005b348015610daa57600080fd5b50610db3613a67565b6040518082815260200191505060405180910390f35b348015610dd557600080fd5b50610dde613a71565b6040518082815260200191505060405180910390f35b348015610e0057600080fd5b50610e09613a77565b6040518082815260200191505060405180910390f35b348015610e2b57600080fd5b50610e6a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613a7d565b604051808215151515815260200191505060405180910390f35b610e8c6110dc565b604051808215151515815260200191505060405180910390f35b348015610eb257600080fd5b50610ef1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613d4b565b604051808215151515815260200191505060405180910390f35b348015610f1757600080fd5b50610f6c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613efc565b6040518082815260200191505060405180910390f35b348015610f8e57600080fd5b50610fc3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613f83565b6040518082815260200191505060405180910390f35b348015610fe557600080fd5b50611026600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050613f9a565b005b34801561103457600080fd5b5061103d6140e6565b604051808215151515815260200191505060405180910390f35b34801561106357600080fd5b5061106c6140f9565b6040518082815260200191505060405180910390f35b34801561108e57600080fd5b506110976140ff565b6040518082815260200191505060405180910390f35b3480156110b957600080fd5b506110c2614105565b604051808215151515815260200191505060405180910390f35b600080601a54601754111580156110f55750601d544210155b80156111025750601e5442105b801561111b5750601f60009054906101000a900460ff16155b151561112657600080fd5b61112f34612a0d565b905060008111151561114057600080fd5b6009546111588260185461411890919063ffffffff16565b1115151561116557600080fd5b6111b734602060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b602060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061120f3460175461411890919063ffffffff16565b60178190555061122a8160185461411890919063ffffffff16565b60188190555061123b303383614136565b601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156112a3573d6000803e3d6000fd5b506112ac61444e565b5080343373ffffffffffffffffffffffffffffffffffffffff167fa73186877f0b4ccd5219831b83db2813c7b9a2dd91e43b7f238cdd41bc8b6b316017546040518082815260200191505060405180910390a434601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8ed948c0cb38c1f447cb19b6f45212d2d735ee2d59dd0a02d2697a25ea7473c360405160405180910390a3600191505090565b60095481565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114095780601f106113de57610100808354040283529160200191611409565b820191906000526020600020905b8154815290600101906020018083116113ec57829003601f168201915b505050505081565b600082600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561146d57600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156114c757600080fd5b600560009054906101000a900460ff161515156114e357600080fd5b600084148061156e57506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b151561157957600080fd5b83600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925866040518082815260200191505060405180910390a360019250505092915050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116c957600080fd5b601e54905081601e819055507f33dd1f01879e9bccfcb3ae9d640e0a4c46721aee0287c96e1ec887b8e16595258183604051808381526020018281526020019250505060405180910390a15050565b60135481565b60108181548110151561172d57fe5b906000526020600020016000915090505481565b60125481565b6000600354905090565b601460009054906101000a900460ff1681565b60118181548110151561177357fe5b906000526020600020016000915090505481565b600082600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156117e357600080fd5b84600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561183d57600080fd5b600560009054906101000a900460ff1615151561185957600080fd5b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484111515156118e457600080fd5b61197384600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144c890919063ffffffff16565b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119fe868686614136565b6001925050509392505050565b600260009054906101000a900460ff1681565b601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601f60009054906101000a900460ff1681565b601d5481565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ab957600080fd5b81601b8190555080601c819055507f1d6b5a42045a5ee15c609786566814fdea6efac4f0c041d3577b5a9ce304a525601b54601c54604051808381526020018281526020019250505060405180910390a15050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b6c57600080fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611bba57600080fd5b611c0c82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144c890919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c64826003546144c890919063ffffffff16565b600381905550611c7f826004546144c890919063ffffffff16565b6004819055503373ffffffffffffffffffffffffffffffffffffffff167f38d762ef507761291a578e921acfe29c1af31a7331ea03e391cf16cfc4d4f581836040518082815260200191505060405180910390a260019050919050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601854905090565b6000601954905090565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d7857600080fd5b811515601f60009054906101000a900460ff16151514151515611d9a57600080fd5b81601f60006101000a81548160ff02191690831515021790555060019050919050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e1957600080fd5b601660009054906101000a900460ff168015611e3757506000601554115b1515611e4257600080fd5b601460029054906101000a900460ff16151515611e5e57600080fd5b611ed4600d5460066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f50600d5460045461411890919063ffffffff16565b6004819055506001601460026101000a81548160ff02191690831515021790555060035460045411151515611f8157fe5b7f79cfa97a78f0d65b153dd45ab4cd59441c54634d8771fd00e6aec8365bc5f09a600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d54604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d546040518082815260200191505060405180910390a3565b600080600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120e557600080fd5b601e54421115156120f557600080fd5b61210c6018546009546144c890919063ffffffff16565b90506121828160066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061223981600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144c890919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f19c53189df303bd288346a6d153f4f28d05e891dc832e73b72b3b0ef1642357e600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600191505090565b60008083600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156123f557600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561244f57600080fd5b600560009054906101000a900460ff1615151561246b57600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054925082851115612579576000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061260d565b61258c85846144c890919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001935050505092915050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561275757600080fd5b601660009054906101000a900460ff16801561277557506000601554115b151561278057600080fd5b601460039054906101000a900460ff1615151561279c57600080fd5b612812600f5460066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061288e600f5460045461411890919063ffffffff16565b6004819055506001601460036101000a81548160ff021916908315150217905550600354600454111515156128bf57fe5b7f408e353c0b43da18517f296753c7bd84650649d71e05b4e9a54a0415d62488a0600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f54604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f546040518082815260200191505060405180910390a3565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000612a1a6144e1565b9150612a5a601c54606402612a4c84612a3e601b548961453990919063ffffffff16565b61453990919063ffffffff16565b61457490919063ffffffff16565b90508092505050919050565b60045481565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ac857600080fd5b80600560006101000a81548160ff0219169083151502179055507f607a2eb5bc51cd7ff68792f9e7c49352b7be26fd0068783e323e36f9f635980681604051808215151515815260200191505060405180910390a150565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612b7c57600080fd5b601660009054906101000a900460ff168015612b9a57506000601554115b1515612ba557600080fd5b601460019054906101000a900460ff16151515612bc157600080fd5b612c37600c5460066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cb3600c5460045461411890919063ffffffff16565b6004819055506001601460016101000a81548160ff02191690831515021790555060035460045411151515612ce457fe5b7fb02502445088457e4c9e503bccdcfe4e5dd8c1d41fbb2d0b1a1d94ff6261a073600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c54604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c546040518082815260200191505060405180910390a3565b601660009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612eae57600080fd5b601660009054906101000a900460ff168015612ecc57506000601554115b1515612ed757600080fd5b601460009054906101000a900460ff16151515612ef357600080fd5b612f69600a5460066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fe5600a5460045461411890919063ffffffff16565b6004819055506001601460006101000a81548160ff0219169083151502179055506003546004541115151561301657fe5b7f9595a4f845fc9697f1974afc41d46cdfdb3a787f057c1d080db9044152ddca65600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a54604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040518082815260200191505060405180910390a3565b600b5481565b600f5481565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460029054906101000a900460ff1681565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131f65780601f106131cb576101008083540402835291602001916131f6565b820191906000526020600020905b8154815290600101906020018083116131d957829003601f168201915b505050505081565b6000601a546017541080156132155750601d544210155b80156132225750601e5442105b80156132315750600954601854105b1561323f5760019050613244565b600090505b90565b601460019054906101000a900460ff1681565b6000601754905090565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156132c057600080fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015801561333f573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff1631600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8ed948c0cb38c1f447cb19b6f45212d2d735ee2d59dd0a02d2697a25ea7473c360405160405180910390a3565b600082600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561341b57600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561347557600080fd5b600560009054906101000a900460ff1615151561349157600080fd5b60008573ffffffffffffffffffffffffffffffffffffffff16141515156134b757600080fd5b6134c2338686614136565b60019250505092915050565b601e5481565b600080600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561353357600080fd5b601660009054906101000a900460ff16801561355157506000601554115b151561355c57600080fd5b61356461458f565b915061357b601354836144c890919063ffffffff16565b905060008111151561358c57600080fd5b6136008160066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061367a8160045461411890919063ffffffff16565b6004819055506136958160135461411890919063ffffffff16565b601381905550600354600454111515156136ab57fe5b7fbbf4e0ab9f7955cde2442d5d6dc3a80c7a35b38d90820c9b89e4748520a0a6eb600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600c5481565b600080600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561381357600080fd5b601660009054906101000a900460ff16801561383157506000601554115b151561383c57600080fd5b6138446146b2565b915061385b601254836144c890919063ffffffff16565b905060008111151561386c57600080fd5b6138e08160066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b60066000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061395a8160045461411890919063ffffffff16565b6004819055506139758160125461411890919063ffffffff16565b6012819055506003546004541115151561398b57fe5b80600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddfe4a1c5b60069989d419e1800e71a9806afe484ceedd1c34221379f918211e60405160405180910390a3600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000601a54905090565b600e5481565b60155481565b600082600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515613ad957600080fd5b33600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515613b3357600080fd5b600560009054906101000a900460ff16151515613b4f57600080fd5b613bde84600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a360019250505092915050565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613da957600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613df4576303c26700601d540142111515613df357600080fd5b5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015613eb957600080fd5b505af1158015613ecd573d6000803e3d6000fd5b505050506040513d6020811015613ee357600080fd5b8101908080519060200190929190505050905092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b602080528060005260406000206000915090505481565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613ff657600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415151561401c57600080fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fdad2539b39cdbb96eb5dac852bf880a471c22b0e9d698aa1d48eae8d014ea8f48282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b600560009054906101000a900460ff1681565b600d5481565b600a5481565b601460039054906101000a900460ff1681565b600080828401905083811015151561412c57fe5b8091505092915050565b60008082600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561418757600080fd5b614218600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b915061426c83600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546144c890919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061430183600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506143d5600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461411890919063ffffffff16565b905080821415156143e257fe5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b6000601954601754101580156144715750601660009054906101000a900460ff16155b156144c5576001601660006101000a81548160ff021916908315150217905550426015819055507fc8ba19d69e2df173a022cf0fcdaee173bc9cdb3553f54528c68f82ef7f1539b860405160405180910390a15b90565b60008282111515156144d657fe5b818303905092915050565b6000662c68af0bb1400060185410156144fd5760739050614536565b66429d069189e000601854101561451757606e9050614536565b6658d15e1762800060185410156145315760699050614536565b606490505b90565b600080600084141561454e576000915061456d565b828402905082848281151561455f57fe5b0414151561456957fe5b8091505b5092915050565b600080828481151561458257fe5b0490508091505092915050565b60008060006145a9601554426144c890919063ffffffff16565b91506145c162278d008361457490919063ffffffff16565b9050600081101580156145d45750600381105b156145fb57601160008154811015156145e957fe5b906000526020600020015492506146ad565b6006811015614626576011600181548110151561461457fe5b906000526020600020015492506146ad565b6009811015614651576011600281548110151561463f57fe5b906000526020600020015492506146ad565b600c81101561467c576011600381548110151561466a57fe5b906000526020600020015492506146ad565b600c811015156146a8576011600481548110151561469657fe5b906000526020600020015492506146ad565b600080fd5b505090565b60008060006146cc601554426144c890919063ffffffff16565b91506146e462278d008361457490919063ffffffff16565b9050600381101580156146f75750600681105b1561471e576010600081548110151561470c57fe5b906000526020600020015492506147f7565b6006811015801561472f5750600981105b15614756576010600181548110151561474457fe5b906000526020600020015492506147f7565b600981101580156147675750600c81105b1561478e576010600281548110151561477c57fe5b906000526020600020015492506147f7565b600c811015801561479f5750601281105b156147c657601060038154811015156147b457fe5b906000526020600020015492506147f7565b6012811015156147f257601060048154811015156147e057fe5b906000526020600020015492506147f7565b600080fd5b5050905600a165627a7a7230582095b089bf1de7ff070e4079be62adc1d5cfcb46e5e711f69ed73da71297aaac440029
Swarm Source
bzzr://95b089bf1de7ff070e4079be62adc1d5cfcb46e5e711f69ed73da71297aaac44
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.