ETH Price: $1,970.09 (+3.30%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Send56145942018-05-14 22:40:252847 days ago1526337625IN
0xa07e4134...E32DcE546
0 ETH0.001689920
Send56144282018-05-14 22:00:502847 days ago1526335250IN
0xa07e4134...E32DcE546
0 ETH0.001689920
Send56129232018-05-14 15:42:462848 days ago1526312566IN
0xa07e4134...E32DcE546
0 ETH0.003379840
Pause State Swit...56129182018-05-14 15:40:282848 days ago1526312428IN
0xa07e4134...E32DcE546
0 ETH0.0011015240
Set Crowdsale Da...56129112018-05-14 15:38:292848 days ago1526312309IN
0xa07e4134...E32DcE546
0 ETH0.0017764840
Pause State Swit...56129012018-05-14 15:36:432848 days ago1526312203IN
0xa07e4134...E32DcE546
0 ETH0.0011015240
Send56127372018-05-14 14:50:002848 days ago1526309400IN
0xa07e4134...E32DcE546
0 ETH0.0005808820
Send56127072018-05-14 14:41:192848 days ago1526308879IN
0xa07e4134...E32DcE546
0 ETH0.000261399
Send56126662018-05-14 14:30:182848 days ago1526308218IN
0xa07e4134...E32DcE546
0 ETH0.0005808820
Send56126302018-05-14 14:22:072848 days ago1526307727IN
0xa07e4134...E32DcE546
0 ETH0.0012198442
Send56125852018-05-14 14:10:062848 days ago1526307006IN
0xa07e4134...E32DcE546
0 ETH0.0011617640
Send56119612018-05-14 11:36:152848 days ago1526297775IN
0xa07e4134...E32DcE546
0 ETH0.0005239418
Send56119612018-05-14 11:36:152848 days ago1526297775IN
0xa07e4134...E32DcE546
0 ETH0.0011934241
Send56113092018-05-14 8:40:302848 days ago1526287230IN
0xa07e4134...E32DcE546
0 ETH0.0013098645
Send56111972018-05-14 8:11:372848 days ago1526285497IN
0xa07e4134...E32DcE546
0 ETH0.0005821620
Send56111882018-05-14 8:09:222848 days ago1526285362IN
0xa07e4134...E32DcE546
0 ETH0.0011934241
Send56111792018-05-14 8:07:092848 days ago1526285229IN
0xa07e4134...E32DcE546
0 ETH0.0012807544
Send56111492018-05-14 8:00:482848 days ago1526284848IN
0xa07e4134...E32DcE546
0 ETH0.0011643240
Send56095212018-05-14 1:04:092848 days ago1526259849IN
0xa07e4134...E32DcE546
0 ETH0.0011643240
Send56095092018-05-14 1:01:212848 days ago1526259681IN
0xa07e4134...E32DcE546
0 ETH0.0011934241
Send56095002018-05-14 0:58:272848 days ago1526259507IN
0xa07e4134...E32DcE546
0 ETH0.0011934241
Send56094482018-05-14 0:47:302848 days ago1526258850IN
0xa07e4134...E32DcE546
0 ETH0.0011934241
Send56094402018-05-14 0:44:362848 days ago1526258676IN
0xa07e4134...E32DcE546
0 ETH0.0011934241
Send56094112018-05-14 0:35:532848 days ago1526258153IN
0xa07e4134...E32DcE546
0 ETH0.0011934241
Send56093982018-05-14 0:32:352848 days ago1526257955IN
0xa07e4134...E32DcE546
0 ETH0.0011934241
View all transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BGXCrowdsale

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-05-07
*/

pragma solidity ^0.4.20;

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;
    }
}

contract Ownable {
    address public owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    function Ownable() public {
        owner = msg.sender;
    }

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

}

contract BGXTokenInterface{

    function distribute( address _to, uint256 _amount ) public returns( bool );
    function finally( address _teamAddress ) public returns( bool );

}

contract BGXCrowdsale is Ownable{

    using SafeMath for uint256;

    BGXTokenInterface bgxTokenInterface;

    address   public bgxWallet;
    address[] public adviser;
    address[] public bounty;
    address[] public team;

    mapping( address => uint256 ) adviserAmount;
    mapping( address => uint256 ) bountyAmount;
    mapping( address => uint256 ) teamAmount;

    uint256 public presaleDateStart      = 1524571200;
    uint256 public presaleDateFinish     = 1526385600;
    uint256 public saleDateStart         = 1526990400;
    uint256 public saleDateFinish        = 1528200000;

    uint256 constant public hardcap      = 500000000 ether;
    uint256 public presaleHardcap        = 30000000  ether;
    uint256 public softcap               = 40000000  ether;
    uint256 public totalBGX              = 0;
    uint256 constant public minimal      = 1000 ether;

    uint256 reserved                     = 250000000 ether;
    uint256 constant teamLimit           = 100000000 ether;
    uint256 constant advisersLimit       = 100000000 ether;
    uint256 constant bountyLimit         = 50000000 ether;
    uint256 public distributionDate      = 0;

    bool paused = false;

    enum CrowdsaleStates { Pause, Presale, Sale, OverHardcap, Finish }

    CrowdsaleStates public state = CrowdsaleStates.Pause;

    uint256 public sendNowLastCount = 0;
    uint256 public finishLastCount = 0;
    uint256 public finishCurrentLimit = 0;

    modifier activeState {
        require(
            getState() == CrowdsaleStates.Presale
            || getState() == CrowdsaleStates.Sale
        );
        _;
    }

    modifier onPause {
        require(
            getState() == CrowdsaleStates.Pause
        );
        _;
    }

    modifier overSoftcap {
        require(
            totalBGX >= softcap
        );
        _;
    }

    modifier finishOrHardcap {
        require(
            getState() == CrowdsaleStates.OverHardcap
            || getState() == CrowdsaleStates.Finish
        );
        _;
    }

    // fix for short address attack
    modifier onlyPayloadSize(uint size) {
        require(msg.data.length == size + 4);
        _;
    }

    address[]                     public investors;
    mapping( address => uint256 ) public investorBalance;
    mapping( address => bool )    public inBlackList;



    function setBgxWalletAddress( address _a ) public onlyOwner returns( bool )
    {
        require( address(0) != _a );
        bgxWallet = _a;
        return true;
    }

    function setCrowdsaleDate( uint256 _presaleStart, uint256 _presaleFinish, uint256 _saleStart, uint256 _saleFinish ) public onlyOwner onPause returns( bool )
    {
        presaleDateStart = _presaleStart;
        presaleDateFinish = _presaleFinish;
        saleDateStart = _saleStart;
        saleDateFinish = _saleFinish;

        return true;
    }

    function setCaps( uint256 _presaleHardcap, uint256 _softcap ) public onlyOwner onPause returns( bool )
    {
        presaleHardcap = _presaleHardcap;
        softcap = _softcap;

        return true;
    }


    function getState() public returns( CrowdsaleStates )
    {

        if( state == CrowdsaleStates.Pause || paused ) return CrowdsaleStates.Pause;
        if( state == CrowdsaleStates.Finish ) return CrowdsaleStates.Finish;

        if( totalBGX >= hardcap ) return CrowdsaleStates.OverHardcap;


        if( now >= presaleDateStart && now <= presaleDateFinish ){

            if( totalBGX >= presaleHardcap ) return CrowdsaleStates.Pause;
            return CrowdsaleStates.Presale;

        }

        if( now >= saleDateStart && now <= saleDateFinish ){

            if( totalBGX >= hardcap ) {
                _startCounter();
                return CrowdsaleStates.OverHardcap;
            }
            return CrowdsaleStates.Sale;

        }

        if( now > saleDateFinish ) {
            _startCounter();
            return CrowdsaleStates.Finish;
        }

        return CrowdsaleStates.Pause;

    }

    function _startCounter() internal
    {
        if (distributionDate <= 0) {
            distributionDate = now + 2 days;
        }
    }


    function pauseStateSwithcer() public onlyOwner returns( bool )
    {
        paused = !paused;
    }

    function start() public onlyOwner returns( bool )
    {
        state = CrowdsaleStates.Presale;

        return true;
    }


    function send(address _addr, uint _amount) public onlyOwner activeState onlyPayloadSize(2 * 32) returns( bool )
    {
        require( address(0) != _addr && _amount >= minimal && !inBlackList[_addr] );

        if( getState() == CrowdsaleStates.Presale ) require( totalBGX.add( _amount ) <= presaleHardcap );
        if( getState() == CrowdsaleStates.Sale )    require( totalBGX.add( _amount ) <= hardcap );


        investors.push( _addr );


        investorBalance[_addr] = investorBalance[_addr].add( _amount );
        if ( !inBlackList[_addr]) {
            totalBGX = totalBGX.add( _amount );
        }
        return true;

    }

    function investorsCount() public constant returns( uint256 )
    {
        return investors.length;
    }

    function sendNow( uint256 _count ) public onlyOwner overSoftcap  returns( bool )
    {
        require( sendNowLastCount.add( _count ) <= investors.length );

        uint256 to = sendNowLastCount.add( _count );

        for( uint256 i = sendNowLastCount; i <= to - 1; i++ )
            if( !inBlackList[investors[i]] ){
                investorBalance[investors[i]] = 0;
                bgxTokenInterface.distribute( investors[i], investorBalance[investors[i]] );
            }

        sendNowLastCount = sendNowLastCount.add( _count );
    }


    function blackListSwithcer( address _addr ) public onlyOwner returns( bool )
    {
        require( address(0) != _addr );

        if( !inBlackList[_addr] ){
            totalBGX = totalBGX.sub( investorBalance[_addr] );
        } else {
            totalBGX = totalBGX.add( investorBalance[_addr] );
        }

        inBlackList[_addr] = !inBlackList[_addr];

    }


    function finish( uint256 _count) public onlyOwner finishOrHardcap overSoftcap returns( bool )
    {
        require(_count > 0);
        require(distributionDate > 0 && distributionDate <= now);
        if (finishCurrentLimit == 0) {
            finishCurrentLimit = bountyLimit.add(teamLimit.add(advisersLimit));
        }
        // advisers + bounters total cnt
        uint256 totalCnt = adviser.length.add(bounty.length);

        if (finishLastCount < adviser.length) {
            for( uint256 i = finishLastCount; i <= adviser.length - 1; i++  ){
                finishCurrentLimit = finishCurrentLimit.sub( adviserAmount[adviser[i]] );
                bgxTokenInterface.distribute( adviser[i],adviserAmount[adviser[i]] );
                finishLastCount++;
                _count--;
                if (_count <= 0) {
                    return true;
                }
            }
        }
        if (finishLastCount < totalCnt) {
            for( i = finishLastCount.sub(adviser.length); i <= bounty.length - 1; i++  ){
                finishCurrentLimit = finishCurrentLimit.sub( bountyAmount[bounty[i]] );
                bgxTokenInterface.distribute( bounty[i],bountyAmount[bounty[i]] );
                finishLastCount ++;
                _count--;
                if (_count <= 0) {
                    return true;
                }
            }
        }
        if (finishLastCount >= totalCnt && finishLastCount < totalCnt.add(team.length)) {
            for( i =  finishLastCount.sub(totalCnt); i <= team.length - 1; i++  ){

                finishCurrentLimit = finishCurrentLimit.sub( teamAmount[team[i]] );
                bgxTokenInterface.distribute( team[i],teamAmount[team[i]] );
                finishLastCount ++;
                _count--;
                if (_count <= 0) {
                    return true;
                }
            }
        }

        reserved = reserved.add( finishCurrentLimit );

        return true;

    }



    function sendToTeam() public onlyOwner finishOrHardcap overSoftcap returns( bool )
    {
        bgxTokenInterface.distribute( bgxWallet, reserved );
        bgxTokenInterface.finally( bgxWallet );

        return true;
    }




    function setAdvisers( address[] _addrs, uint256[] _amounts ) public onlyOwner finishOrHardcap returns( bool )
    {
        require( _addrs.length == _amounts.length );

        adviser = _addrs;
        uint256 limit = 0;

        for( uint256 i = 0; i <= adviser.length - 1; i++  ){
            require( limit.add( _amounts[i] ) <= advisersLimit );
            adviserAmount[adviser[i]] = _amounts[i];
            limit.add( _amounts[i] );
        }
    }

    function setBounty( address[] _addrs, uint256[] _amounts ) public onlyOwner finishOrHardcap returns( bool )
    {
        require( _addrs.length == _amounts.length );

        bounty = _addrs;
        uint256 limit = 0;

        for( uint256 i = 0; i <= bounty.length - 1; i++  ){
            require( limit.add( _amounts[i] ) <= bountyLimit );
            bountyAmount[bounty[i]] = _amounts[i];
            limit.add( _amounts[i] );
        }
    }

    function setTeams( address[] _addrs, uint256[] _amounts ) public onlyOwner finishOrHardcap returns( bool )
    {
        require( _addrs.length == _amounts.length );

        team = _addrs;
        uint256 limit = 0;

        for( uint256 i = 0; i <= team.length - 1; i++  ){
            require( limit.add( _amounts[i] ) <= teamLimit );
            teamAmount[team[i]] = _amounts[i];
            limit.add( _amounts[i] );
        }
    }


    function setBGXTokenInterface( address _BGXTokenAddress ) public onlyOwner returns( bool )
    {
        require( _BGXTokenAddress != address(0) );
        bgxTokenInterface = BGXTokenInterface( _BGXTokenAddress );
    }


    function time() public constant returns(uint256 )
    {
        return now;
    }




}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"saleDateStart","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"finishCurrentLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"getState","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"team","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addrs","type":"address[]"},{"name":"_amounts","type":"uint256[]"}],"name":"setAdvisers","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_presaleHardcap","type":"uint256"},{"name":"_softcap","type":"uint256"}],"name":"setCaps","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"bounty","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"finishLastCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"investorsCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"investorBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"investors","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_presaleStart","type":"uint256"},{"name":"_presaleFinish","type":"uint256"},{"name":"_saleStart","type":"uint256"},{"name":"_saleFinish","type":"uint256"}],"name":"setCrowdsaleDate","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pauseStateSwithcer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"presaleDateStart","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"sendToTeam","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"blackListSwithcer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addrs","type":"address[]"},{"name":"_amounts","type":"uint256[]"}],"name":"setBounty","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addrs","type":"address[]"},{"name":"_amounts","type":"uint256[]"}],"name":"setTeams","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"saleDateFinish","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"inBlackList","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_BGXTokenAddress","type":"address"}],"name":"setBGXTokenInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minimal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_count","type":"uint256"}],"name":"sendNow","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalBGX","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"presaleDateFinish","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hardcap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"adviser","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"start","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"state","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bgxWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"presaleHardcap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_amount","type":"uint256"}],"name":"send","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_count","type":"uint256"}],"name":"finish","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"distributionDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_a","type":"address"}],"name":"setBgxWalletAddress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"softcap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sendNowLastCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

6060604052635adf1c40600955635afacbc0600a55635b040640600b55635b167b40600c556a18d0bf423c03d8de000000600d556a2116545850052128000000600e556000600f556acecb8f27f4200f3a00000060105560006011556000601260006101000a81548160ff0219169083151502179055506000601260016101000a81548160ff0219169083600481111561009557fe5b0217905550600060135560006014556000601555336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506132d7806100f86000396000f3006060604052600436106101ee576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063086914c3146101f357806308ac184b1461021c57806316ada547146102455780631865c57d1461026e578063197ebd53146102a55780631f0a21ad14610308578063212bf316146103ba578063227882d6146103fe57806329a2c27b146104615780632b7110511461048a57806333941681146104b35780633feb5f2b14610500578063474ceb4d14610563578063476a29e2146105b957806348e37220146105e65780634f9660ed1461060f57806350ec59031461063c57806356d906c71461068d5780635ac36d701461073f578063659ae215146107f157806378e7d4181461081a5780637d6fb0891461086b5780638da5cb5b146108bc57806394a53d41146109115780639faefe0c1461093a578063a3a81d4014610975578063a9ae83231461099e578063b071cbe6146109c7578063b7d3855f146109f0578063be9a655514610a53578063c19d93fb14610a80578063c736e11814610ab7578063cba25e7914610b0c578063d0679d3414610b35578063d353a1cb14610b8f578063e34c8dbf14610bca578063f2fde38b14610bf3578063f32113d514610c2c578063f89be59314610c7d578063fee2445414610ca6575b600080fd5b34156101fe57600080fd5b610206610ccf565b6040518082815260200191505060405180910390f35b341561022757600080fd5b61022f610cd5565b6040518082815260200191505060405180910390f35b341561025057600080fd5b610258610cdb565b6040518082815260200191505060405180910390f35b341561027957600080fd5b610281610ce3565b6040518082600481111561029157fe5b60ff16815260200191505060405180910390f35b34156102b057600080fd5b6102c66004808035906020019091905050610e2d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561031357600080fd5b6103a060048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050610e6c565b604051808215151515815260200191505060405180910390f35b34156103c557600080fd5b6103e46004808035906020019091908035906020019091905050611078565b604051808215151515815260200191505060405180910390f35b341561040957600080fd5b61041f6004808035906020019091905050611119565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561046c57600080fd5b610474611158565b6040518082815260200191505060405180910390f35b341561049557600080fd5b61049d61115e565b6040518082815260200191505060405180910390f35b34156104be57600080fd5b6104ea600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061116b565b6040518082815260200191505060405180910390f35b341561050b57600080fd5b6105216004808035906020019091905050611183565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561056e57600080fd5b61059f60048080359060200190919080359060200190919080359060200190919080359060200190919050506111c2565b604051808215151515815260200191505060405180910390f35b34156105c457600080fd5b6105cc611273565b604051808215151515815260200191505060405180910390f35b34156105f157600080fd5b6105f96112fd565b6040518082815260200191505060405180910390f35b341561061a57600080fd5b610622611303565b604051808215151515815260200191505060405180910390f35b341561064757600080fd5b610673600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506115c3565b604051808215151515815260200191505060405180910390f35b341561069857600080fd5b61072560048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050611812565b604051808215151515815260200191505060405180910390f35b341561074a57600080fd5b6107d760048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050611a1e565b604051808215151515815260200191505060405180910390f35b34156107fc57600080fd5b610804611c2a565b6040518082815260200191505060405180910390f35b341561082557600080fd5b610851600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c30565b604051808215151515815260200191505060405180910390f35b341561087657600080fd5b6108a2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c50565b604051808215151515815260200191505060405180910390f35b34156108c757600080fd5b6108cf611d2f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561091c57600080fd5b610924611d54565b6040518082815260200191505060405180910390f35b341561094557600080fd5b61095b6004808035906020019091905050611d61565b604051808215151515815260200191505060405180910390f35b341561098057600080fd5b6109886120f0565b6040518082815260200191505060405180910390f35b34156109a957600080fd5b6109b16120f6565b6040518082815260200191505060405180910390f35b34156109d257600080fd5b6109da6120fc565b6040518082815260200191505060405180910390f35b34156109fb57600080fd5b610a11600480803590602001909190505061210c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a5e57600080fd5b610a6661214b565b604051808215151515815260200191505060405180910390f35b3415610a8b57600080fd5b610a936121d3565b60405180826004811115610aa357fe5b60ff16815260200191505060405180910390f35b3415610ac257600080fd5b610aca6121e6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610b1757600080fd5b610b1f61220c565b6040518082815260200191505060405180910390f35b3415610b4057600080fd5b610b75600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612212565b604051808215151515815260200191505060405180910390f35b3415610b9a57600080fd5b610bb06004808035906020019091905050612595565b604051808215151515815260200191505060405180910390f35b3415610bd557600080fd5b610bdd612ef1565b6040518082815260200191505060405180910390f35b3415610bfe57600080fd5b610c2a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612ef7565b005b3415610c3757600080fd5b610c63600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061304c565b604051808215151515815260200191505060405180910390f35b3415610c8857600080fd5b610c9061312f565b6040518082815260200191505060405180910390f35b3415610cb157600080fd5b610cb9613135565b6040518082815260200191505060405180910390f35b600b5481565b60155481565b600042905090565b6000806004811115610cf157fe5b601260019054906101000a900460ff166004811115610d0c57fe5b1480610d245750601260009054906101000a900460ff165b15610d325760009050610e2a565b600480811115610d3e57fe5b601260019054906101000a900460ff166004811115610d5957fe5b1415610d685760049050610e2a565b6b019d971e4fe8401e74000000600f54101515610d885760039050610e2a565b6009544210158015610d9c5750600a544211155b15610dc057600d54600f54101515610db75760009050610e2a565b60019050610e2a565b600b544210158015610dd45750600c544211155b15610e0a576b019d971e4fe8401e74000000600f54101515610e0157610df861313b565b60039050610e2a565b60029050610e2a565b600c54421115610e2557610e1c61313b565b60049050610e2a565b600090505b90565b600581815481101515610e3c57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ecc57600080fd5b60036004811115610ed957fe5b610ee1610ce3565b6004811115610eec57fe5b1480610f145750600480811115610eff57fe5b610f07610ce3565b6004811115610f1257fe5b145b1515610f1f57600080fd5b83518551141515610f2f57600080fd5b8460039080519060200190610f4592919061318d565b5060009150600090505b60016003805490500381111515611070576a52b7d2dcc80cd2e4000000610f968583815181101515610f7d57fe5b906020019060200201518461315690919063ffffffff16565b11151515610fa357600080fd5b8381815181101515610fb157fe5b9060200190602002015160066000600384815481101515610fce57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611062848281518110151561104957fe5b906020019060200201518361315690919063ffffffff16565b508080600101915050610f4f565b505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110d557600080fd5b600060048111156110e257fe5b6110ea610ce3565b60048111156110f557fe5b14151561110157600080fd5b82600d8190555081600e819055506001905092915050565b60048181548110151561112857fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b6000601680549050905090565b60176020528060005260406000206000915090505481565b60168181548110151561119257fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561121f57600080fd5b6000600481111561122c57fe5b611234610ce3565b600481111561123f57fe5b14151561124b57600080fd5b8460098190555083600a8190555082600b8190555081600c8190555060019050949350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112d057600080fd5b601260009054906101000a900460ff1615601260006101000a81548160ff02191690831515021790555090565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561136057600080fd5b6003600481111561136d57fe5b611375610ce3565b600481111561138057fe5b14806113a8575060048081111561139357fe5b61139b610ce3565b60048111156113a657fe5b145b15156113b357600080fd5b600e54600f54101515156113c657600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb932108600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166010546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156114ae57600080fd5b5af115156114bb57600080fd5b5050506040518051905050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166376e7430e600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156115a457600080fd5b5af115156115b157600080fd5b50505060405180519050506001905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561162057600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff161415151561165c57600080fd5b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561170e57611703601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600f5461317490919063ffffffff16565b600f81905550611769565b611762601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600f5461315690919063ffffffff16565b600f819055505b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550919050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561187257600080fd5b6003600481111561187f57fe5b611887610ce3565b600481111561189257fe5b14806118ba57506004808111156118a557fe5b6118ad610ce3565b60048111156118b857fe5b145b15156118c557600080fd5b835185511415156118d557600080fd5b84600490805190602001906118eb92919061318d565b5060009150600090505b60016004805490500381111515611a16576a295be96e6406697200000061193c858381518110151561192357fe5b906020019060200201518461315690919063ffffffff16565b1115151561194957600080fd5b838181518110151561195757fe5b906020019060200201516007600060048481548110151561197457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a0884828151811015156119ef57fe5b906020019060200201518361315690919063ffffffff16565b5080806001019150506118f5565b505092915050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a7e57600080fd5b60036004811115611a8b57fe5b611a93610ce3565b6004811115611a9e57fe5b1480611ac65750600480811115611ab157fe5b611ab9610ce3565b6004811115611ac457fe5b145b1515611ad157600080fd5b83518551141515611ae157600080fd5b8460059080519060200190611af792919061318d565b5060009150600090505b60016005805490500381111515611c22576a52b7d2dcc80cd2e4000000611b488583815181101515611b2f57fe5b906020019060200201518461315690919063ffffffff16565b11151515611b5557600080fd5b8381815181101515611b6357fe5b9060200190602002015160086000600584815481101515611b8057fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c148482815181101515611bfb57fe5b906020019060200201518361315690919063ffffffff16565b508080600101915050611b01565b505092915050565b600c5481565b60186020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cad57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611ce957600080fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b683635c9adc5dea0000081565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dc157600080fd5b600e54600f5410151515611dd457600080fd5b601680549050611def8560135461315690919063ffffffff16565b11151515611dfc57600080fd5b611e118460135461315690919063ffffffff16565b915060135490505b60018203811115156120ce5760186000601683815481101515611e3857fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156120c157600060176000601684815481101515611ec757fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb932108601683815481101515611f7e57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660176000601686815481101515611fbd57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156120a857600080fd5b5af115156120b557600080fd5b50505060405180519050505b8080600101915050611e19565b6120e38460135461315690919063ffffffff16565b6013819055505050919050565b600f5481565b600a5481565b6b019d971e4fe8401e7400000081565b60038181548110151561211b57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121a857600080fd5b6001601260016101000a81548160ff021916908360048111156121c757fe5b02179055506001905090565b601260019054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561226f57600080fd5b6001600481111561227c57fe5b612284610ce3565b600481111561228f57fe5b14806122b85750600260048111156122a357fe5b6122ab610ce3565b60048111156122b657fe5b145b15156122c357600080fd5b60406004810160003690501415156122da57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16141580156123205750683635c9adc5dea000008310155b80156123765750601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b151561238157600080fd5b6001600481111561238e57fe5b612396610ce3565b60048111156123a157fe5b14156123cd57600d546123bf84600f5461315690919063ffffffff16565b111515156123cc57600080fd5b5b600260048111156123da57fe5b6123e2610ce3565b60048111156123ed57fe5b1415612423576b019d971e4fe8401e7400000061241584600f5461315690919063ffffffff16565b1115151561242257600080fd5b5b601680548060010182816124379190613217565b9160005260206000209001600086909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506124d883601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461315690919063ffffffff16565b601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561258a5761258383600f5461315690919063ffffffff16565b600f819055505b600191505092915050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125f557600080fd5b6003600481111561260257fe5b61260a610ce3565b600481111561261557fe5b148061263d575060048081111561262857fe5b612630610ce3565b600481111561263b57fe5b145b151561264857600080fd5b600e54600f541015151561265b57600080fd5b60008411151561266a57600080fd5b600060115411801561267e57504260115411155b151561268957600080fd5b600060155414156126d6576126cf6126b56a52b7d2dcc80cd2e40000008061315690919063ffffffff16565b6a295be96e6406697200000061315690919063ffffffff16565b6015819055505b6126f360048054905060038054905061315690919063ffffffff16565b9150600380549050601454101561297a5760145490505b60016003805490500381111515612979576127a96006600060038481548110151561273157fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460155461317490919063ffffffff16565b601581905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb9321086003838154811015156127fc57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006600060038681548110151561283b57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561292657600080fd5b5af1151561293357600080fd5b505050604051805190505060146000815480929190600101919050555083806001900394505060008411151561296c5760019250612eea565b808060010191505061270a565b5b816014541015612c115761299e60038054905060145461317490919063ffffffff16565b90505b60016004805490500381111515612c1057612a40600760006004848154811015156129c857fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460155461317490919063ffffffff16565b601581905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb932108600483815481101515612a9357fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660076000600486815481101515612ad257fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515612bbd57600080fd5b5af11515612bca57600080fd5b5050506040518051905050601460008154809291906001019190505550838060019003945050600084111515612c035760019250612eea565b80806001019150506129a1565b5b8160145410158015612c3b5750612c366005805490508361315690919063ffffffff16565b601454105b15612ec857612c558260145461317490919063ffffffff16565b90505b60016005805490500381111515612ec757612cf760086000600584815481101515612c7f57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460155461317490919063ffffffff16565b601581905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb932108600583815481101515612d4a57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660086000600586815481101515612d8957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515612e7457600080fd5b5af11515612e8157600080fd5b5050506040518051905050601460008154809291906001019190505550838060019003945050600084111515612eba5760019250612eea565b8080600101915050612c58565b5b612edf60155460105461315690919063ffffffff16565b601081905550600192505b5050919050565b60115481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f5257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612f8e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130a957600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16141515156130e557600080fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600e5481565b60135481565b6000601154111515613154576202a30042016011819055505b565b600080828401905083811015151561316a57fe5b8091505092915050565b600082821115151561318257fe5b818303905092915050565b828054828255906000526020600020908101928215613206579160200282015b828111156132055782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906131ad565b5b5090506132139190613243565b5090565b81548183558181151161323e5781836000526020600020918201910161323d9190613286565b5b505050565b61328391905b8082111561327f57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101613249565b5090565b90565b6132a891905b808211156132a457600081600090555060010161328c565b5090565b905600a165627a7a72305820c052a3b6f47c90659be5c761be8509078c72db8d30500af7207d7ed367e94b360029

Deployed Bytecode

0x6060604052600436106101ee576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063086914c3146101f357806308ac184b1461021c57806316ada547146102455780631865c57d1461026e578063197ebd53146102a55780631f0a21ad14610308578063212bf316146103ba578063227882d6146103fe57806329a2c27b146104615780632b7110511461048a57806333941681146104b35780633feb5f2b14610500578063474ceb4d14610563578063476a29e2146105b957806348e37220146105e65780634f9660ed1461060f57806350ec59031461063c57806356d906c71461068d5780635ac36d701461073f578063659ae215146107f157806378e7d4181461081a5780637d6fb0891461086b5780638da5cb5b146108bc57806394a53d41146109115780639faefe0c1461093a578063a3a81d4014610975578063a9ae83231461099e578063b071cbe6146109c7578063b7d3855f146109f0578063be9a655514610a53578063c19d93fb14610a80578063c736e11814610ab7578063cba25e7914610b0c578063d0679d3414610b35578063d353a1cb14610b8f578063e34c8dbf14610bca578063f2fde38b14610bf3578063f32113d514610c2c578063f89be59314610c7d578063fee2445414610ca6575b600080fd5b34156101fe57600080fd5b610206610ccf565b6040518082815260200191505060405180910390f35b341561022757600080fd5b61022f610cd5565b6040518082815260200191505060405180910390f35b341561025057600080fd5b610258610cdb565b6040518082815260200191505060405180910390f35b341561027957600080fd5b610281610ce3565b6040518082600481111561029157fe5b60ff16815260200191505060405180910390f35b34156102b057600080fd5b6102c66004808035906020019091905050610e2d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561031357600080fd5b6103a060048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050610e6c565b604051808215151515815260200191505060405180910390f35b34156103c557600080fd5b6103e46004808035906020019091908035906020019091905050611078565b604051808215151515815260200191505060405180910390f35b341561040957600080fd5b61041f6004808035906020019091905050611119565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561046c57600080fd5b610474611158565b6040518082815260200191505060405180910390f35b341561049557600080fd5b61049d61115e565b6040518082815260200191505060405180910390f35b34156104be57600080fd5b6104ea600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061116b565b6040518082815260200191505060405180910390f35b341561050b57600080fd5b6105216004808035906020019091905050611183565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561056e57600080fd5b61059f60048080359060200190919080359060200190919080359060200190919080359060200190919050506111c2565b604051808215151515815260200191505060405180910390f35b34156105c457600080fd5b6105cc611273565b604051808215151515815260200191505060405180910390f35b34156105f157600080fd5b6105f96112fd565b6040518082815260200191505060405180910390f35b341561061a57600080fd5b610622611303565b604051808215151515815260200191505060405180910390f35b341561064757600080fd5b610673600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506115c3565b604051808215151515815260200191505060405180910390f35b341561069857600080fd5b61072560048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050611812565b604051808215151515815260200191505060405180910390f35b341561074a57600080fd5b6107d760048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050611a1e565b604051808215151515815260200191505060405180910390f35b34156107fc57600080fd5b610804611c2a565b6040518082815260200191505060405180910390f35b341561082557600080fd5b610851600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c30565b604051808215151515815260200191505060405180910390f35b341561087657600080fd5b6108a2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c50565b604051808215151515815260200191505060405180910390f35b34156108c757600080fd5b6108cf611d2f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561091c57600080fd5b610924611d54565b6040518082815260200191505060405180910390f35b341561094557600080fd5b61095b6004808035906020019091905050611d61565b604051808215151515815260200191505060405180910390f35b341561098057600080fd5b6109886120f0565b6040518082815260200191505060405180910390f35b34156109a957600080fd5b6109b16120f6565b6040518082815260200191505060405180910390f35b34156109d257600080fd5b6109da6120fc565b6040518082815260200191505060405180910390f35b34156109fb57600080fd5b610a11600480803590602001909190505061210c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a5e57600080fd5b610a6661214b565b604051808215151515815260200191505060405180910390f35b3415610a8b57600080fd5b610a936121d3565b60405180826004811115610aa357fe5b60ff16815260200191505060405180910390f35b3415610ac257600080fd5b610aca6121e6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610b1757600080fd5b610b1f61220c565b6040518082815260200191505060405180910390f35b3415610b4057600080fd5b610b75600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612212565b604051808215151515815260200191505060405180910390f35b3415610b9a57600080fd5b610bb06004808035906020019091905050612595565b604051808215151515815260200191505060405180910390f35b3415610bd557600080fd5b610bdd612ef1565b6040518082815260200191505060405180910390f35b3415610bfe57600080fd5b610c2a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612ef7565b005b3415610c3757600080fd5b610c63600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061304c565b604051808215151515815260200191505060405180910390f35b3415610c8857600080fd5b610c9061312f565b6040518082815260200191505060405180910390f35b3415610cb157600080fd5b610cb9613135565b6040518082815260200191505060405180910390f35b600b5481565b60155481565b600042905090565b6000806004811115610cf157fe5b601260019054906101000a900460ff166004811115610d0c57fe5b1480610d245750601260009054906101000a900460ff165b15610d325760009050610e2a565b600480811115610d3e57fe5b601260019054906101000a900460ff166004811115610d5957fe5b1415610d685760049050610e2a565b6b019d971e4fe8401e74000000600f54101515610d885760039050610e2a565b6009544210158015610d9c5750600a544211155b15610dc057600d54600f54101515610db75760009050610e2a565b60019050610e2a565b600b544210158015610dd45750600c544211155b15610e0a576b019d971e4fe8401e74000000600f54101515610e0157610df861313b565b60039050610e2a565b60029050610e2a565b600c54421115610e2557610e1c61313b565b60049050610e2a565b600090505b90565b600581815481101515610e3c57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ecc57600080fd5b60036004811115610ed957fe5b610ee1610ce3565b6004811115610eec57fe5b1480610f145750600480811115610eff57fe5b610f07610ce3565b6004811115610f1257fe5b145b1515610f1f57600080fd5b83518551141515610f2f57600080fd5b8460039080519060200190610f4592919061318d565b5060009150600090505b60016003805490500381111515611070576a52b7d2dcc80cd2e4000000610f968583815181101515610f7d57fe5b906020019060200201518461315690919063ffffffff16565b11151515610fa357600080fd5b8381815181101515610fb157fe5b9060200190602002015160066000600384815481101515610fce57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611062848281518110151561104957fe5b906020019060200201518361315690919063ffffffff16565b508080600101915050610f4f565b505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110d557600080fd5b600060048111156110e257fe5b6110ea610ce3565b60048111156110f557fe5b14151561110157600080fd5b82600d8190555081600e819055506001905092915050565b60048181548110151561112857fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b6000601680549050905090565b60176020528060005260406000206000915090505481565b60168181548110151561119257fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561121f57600080fd5b6000600481111561122c57fe5b611234610ce3565b600481111561123f57fe5b14151561124b57600080fd5b8460098190555083600a8190555082600b8190555081600c8190555060019050949350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112d057600080fd5b601260009054906101000a900460ff1615601260006101000a81548160ff02191690831515021790555090565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561136057600080fd5b6003600481111561136d57fe5b611375610ce3565b600481111561138057fe5b14806113a8575060048081111561139357fe5b61139b610ce3565b60048111156113a657fe5b145b15156113b357600080fd5b600e54600f54101515156113c657600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb932108600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166010546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156114ae57600080fd5b5af115156114bb57600080fd5b5050506040518051905050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166376e7430e600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156115a457600080fd5b5af115156115b157600080fd5b50505060405180519050506001905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561162057600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff161415151561165c57600080fd5b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561170e57611703601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600f5461317490919063ffffffff16565b600f81905550611769565b611762601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600f5461315690919063ffffffff16565b600f819055505b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550919050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561187257600080fd5b6003600481111561187f57fe5b611887610ce3565b600481111561189257fe5b14806118ba57506004808111156118a557fe5b6118ad610ce3565b60048111156118b857fe5b145b15156118c557600080fd5b835185511415156118d557600080fd5b84600490805190602001906118eb92919061318d565b5060009150600090505b60016004805490500381111515611a16576a295be96e6406697200000061193c858381518110151561192357fe5b906020019060200201518461315690919063ffffffff16565b1115151561194957600080fd5b838181518110151561195757fe5b906020019060200201516007600060048481548110151561197457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a0884828151811015156119ef57fe5b906020019060200201518361315690919063ffffffff16565b5080806001019150506118f5565b505092915050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a7e57600080fd5b60036004811115611a8b57fe5b611a93610ce3565b6004811115611a9e57fe5b1480611ac65750600480811115611ab157fe5b611ab9610ce3565b6004811115611ac457fe5b145b1515611ad157600080fd5b83518551141515611ae157600080fd5b8460059080519060200190611af792919061318d565b5060009150600090505b60016005805490500381111515611c22576a52b7d2dcc80cd2e4000000611b488583815181101515611b2f57fe5b906020019060200201518461315690919063ffffffff16565b11151515611b5557600080fd5b8381815181101515611b6357fe5b9060200190602002015160086000600584815481101515611b8057fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c148482815181101515611bfb57fe5b906020019060200201518361315690919063ffffffff16565b508080600101915050611b01565b505092915050565b600c5481565b60186020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cad57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611ce957600080fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b683635c9adc5dea0000081565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dc157600080fd5b600e54600f5410151515611dd457600080fd5b601680549050611def8560135461315690919063ffffffff16565b11151515611dfc57600080fd5b611e118460135461315690919063ffffffff16565b915060135490505b60018203811115156120ce5760186000601683815481101515611e3857fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156120c157600060176000601684815481101515611ec757fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb932108601683815481101515611f7e57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660176000601686815481101515611fbd57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156120a857600080fd5b5af115156120b557600080fd5b50505060405180519050505b8080600101915050611e19565b6120e38460135461315690919063ffffffff16565b6013819055505050919050565b600f5481565b600a5481565b6b019d971e4fe8401e7400000081565b60038181548110151561211b57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121a857600080fd5b6001601260016101000a81548160ff021916908360048111156121c757fe5b02179055506001905090565b601260019054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561226f57600080fd5b6001600481111561227c57fe5b612284610ce3565b600481111561228f57fe5b14806122b85750600260048111156122a357fe5b6122ab610ce3565b60048111156122b657fe5b145b15156122c357600080fd5b60406004810160003690501415156122da57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16141580156123205750683635c9adc5dea000008310155b80156123765750601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b151561238157600080fd5b6001600481111561238e57fe5b612396610ce3565b60048111156123a157fe5b14156123cd57600d546123bf84600f5461315690919063ffffffff16565b111515156123cc57600080fd5b5b600260048111156123da57fe5b6123e2610ce3565b60048111156123ed57fe5b1415612423576b019d971e4fe8401e7400000061241584600f5461315690919063ffffffff16565b1115151561242257600080fd5b5b601680548060010182816124379190613217565b9160005260206000209001600086909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506124d883601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461315690919063ffffffff16565b601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561258a5761258383600f5461315690919063ffffffff16565b600f819055505b600191505092915050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125f557600080fd5b6003600481111561260257fe5b61260a610ce3565b600481111561261557fe5b148061263d575060048081111561262857fe5b612630610ce3565b600481111561263b57fe5b145b151561264857600080fd5b600e54600f541015151561265b57600080fd5b60008411151561266a57600080fd5b600060115411801561267e57504260115411155b151561268957600080fd5b600060155414156126d6576126cf6126b56a52b7d2dcc80cd2e40000008061315690919063ffffffff16565b6a295be96e6406697200000061315690919063ffffffff16565b6015819055505b6126f360048054905060038054905061315690919063ffffffff16565b9150600380549050601454101561297a5760145490505b60016003805490500381111515612979576127a96006600060038481548110151561273157fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460155461317490919063ffffffff16565b601581905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb9321086003838154811015156127fc57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006600060038681548110151561283b57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561292657600080fd5b5af1151561293357600080fd5b505050604051805190505060146000815480929190600101919050555083806001900394505060008411151561296c5760019250612eea565b808060010191505061270a565b5b816014541015612c115761299e60038054905060145461317490919063ffffffff16565b90505b60016004805490500381111515612c1057612a40600760006004848154811015156129c857fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460155461317490919063ffffffff16565b601581905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb932108600483815481101515612a9357fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660076000600486815481101515612ad257fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515612bbd57600080fd5b5af11515612bca57600080fd5b5050506040518051905050601460008154809291906001019190505550838060019003945050600084111515612c035760019250612eea565b80806001019150506129a1565b5b8160145410158015612c3b5750612c366005805490508361315690919063ffffffff16565b601454105b15612ec857612c558260145461317490919063ffffffff16565b90505b60016005805490500381111515612ec757612cf760086000600584815481101515612c7f57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460155461317490919063ffffffff16565b601581905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb932108600583815481101515612d4a57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660086000600586815481101515612d8957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515612e7457600080fd5b5af11515612e8157600080fd5b5050506040518051905050601460008154809291906001019190505550838060019003945050600084111515612eba5760019250612eea565b8080600101915050612c58565b5b612edf60155460105461315690919063ffffffff16565b601081905550600192505b5050919050565b60115481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f5257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612f8e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130a957600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16141515156130e557600080fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600e5481565b60135481565b6000601154111515613154576202a30042016011819055505b565b600080828401905083811015151561316a57fe5b8091505092915050565b600082821115151561318257fe5b818303905092915050565b828054828255906000526020600020908101928215613206579160200282015b828111156132055782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906131ad565b5b5090506132139190613243565b5090565b81548183558181151161323e5781836000526020600020918201910161323d9190613286565b5b505050565b61328391905b8082111561327f57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101613249565b5090565b90565b6132a891905b808211156132a457600081600090555060010161328c565b5090565b905600a165627a7a72305820c052a3b6f47c90659be5c761be8509078c72db8d30500af7207d7ed367e94b360029

Swarm Source

bzzr://c052a3b6f47c90659be5c761be8509078c72db8d30500af7207d7ed367e94b36

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.