Contract 0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a17

 

Contract Overview

Balance:
0.677904756236433062 Ether

EtherValue:
$100.45 (@ $148.17/ETH)
TxHash Block Age From To Value [TxFee]
0x35b43778babe8c1f852a274bafa2866f07f83a3e00f5fce2e15b3854ed2a6c3d678876184 days 6 hrs ago0x77cc58acd7573896a41b177f6fb6ca939374343f IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.00027366
0x764aaa10f4503b66779731e99ab58ef5603d565e705bd84d75d4ecab23066cdd678875984 days 6 hrs ago0x77cc58acd7573896a41b177f6fb6ca939374343f IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.000521676
0x9965850c87303b06b45ccf093173f051c3ba2a77d1b6e75fcdff91ad4e2979dc678875884 days 6 hrs ago0x77cc58acd7573896a41b177f6fb6ca939374343f IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.000596988
0x88c292fd100ba755c82736ee83b825c7e431c85d2522b2077301140f14dc3368678875584 days 6 hrs ago0x77cc58acd7573896a41b177f6fb6ca939374343f IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.000596988
0xe3fdb9d1640d045a995e8f376573d0819234a8e74d153e2de31aff799d2b8f256616906112 days 11 hrs ago0x87f7a5708e384407b4ed494be1ff22ae68ab11f9 IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.000282625
0x2ea535d678822aaff4eec10fd0efabec649275a208b02f78635e9da6fa7cd1f36519815128 days 8 hrs ago0xf32cc9d687acc534cee527719c148aab51bd30ca IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.000395675
0xa53ee9f7357951f8cb3c3da25ebc85677e0e2ac150e7179fd82e7eb7625d555d6519810128 days 8 hrs ago0xf32cc9d687acc534cee527719c148aab51bd30ca IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.000249065
0xe994d10de431bfd078c56986ac2bf3ed70cd23b88da67b7a4235f586502bb4dc6501866131 days 6 hrs ago0xadcfb18ebd7ec546af6f9f8cd1100ee4716836bb IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.00033915
0xe5f4d20b185c963ff3ee4872410976e03f2d3d65b6e51199dc240f03a89a133a6499997131 days 13 hrs ago0x782817af926037d78f42a11f69ef625986e8e9f9 IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.00113261106
0x6d6a765acd00658243c4c7d4d91491c966dc6dd3c003306dffbe4cda2fd27e556499985131 days 13 hrs ago0x782817af926037d78f42a11f69ef625986e8e9f9 IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.000508900673
0xe4bc04669b0d6c47b51e8949fadaedb493f09e4740da56a44bf932d9de8fbb366492468132 days 18 hrs ago0x8b3ad493c077e894a034db7eb53e8285560298fd IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.000299646
0xcd9aef6695322a9de7ed0bd407506ea5a09fda1a068cb6ec98d821d3ad4e212a6491804132 days 21 hrs ago0x066a859cc8c56fd5c7faa4694a11e4e7daf9dc25 IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.00009122
0xbe73c40e6ee713cecdc47118f2c13302e81d20f8fab0a99d95e5e0585fb845fe6491801132 days 21 hrs ago0x066a859cc8c56fd5c7faa4694a11e4e7daf9dc25 IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.000260838
0xdf35e1f51124403ab6f76695c8742e7e683b79bdf572c9d4a96d2c9b3bbeb3be6491799132 days 21 hrs ago0x066a859cc8c56fd5c7faa4694a11e4e7daf9dc25 IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.000395715
0x66e2f80ae4134c4ec2a2a21e035dd69cfaa62a933b3d665f2d05aab7c68a7d706491799132 days 21 hrs ago0x066a859cc8c56fd5c7faa4694a11e4e7daf9dc25 IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.000316572
0x962c46e9dde7b081d4ce41a5e9167ac75f8eca1e3721e6aa7d13c3526022dc146491799132 days 21 hrs ago0x066a859cc8c56fd5c7faa4694a11e4e7daf9dc25 IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.000237429
0x0ec0142eb8de4b656d9d8c633f48b0cdd8cf45e804fd486af9067b64f54cfc416491799132 days 21 hrs ago0x066a859cc8c56fd5c7faa4694a11e4e7daf9dc25 IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.000316572
0x7b723047ed1467bb89478030aa5c81d04f5ce02dbca1861ef38398cc2ba9a7ef6487311133 days 15 hrs ago0x4fc6c9296336e907ecf9727af0eb2a1bfebf16e0 IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.000316572
0x4e97225e7593f4cca922cf8e47e55ad297edc971b7d15f0213a380291e5727d86486781133 days 17 hrs ago0x87f7a5708e384407b4ed494be1ff22ae68ab11f9 IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.000115705
0xfe34579a8ecae5473925b951f4d79acff2d753fb65460ef6ec434844e9fa21d66486308133 days 18 hrs ago0x18a417d09c1668eca0fbb2fdea5e8787724a95cf IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.000282625
0x0728c28a6604ea4400ada1a6219d1fd628124de0ff68e10b75233e219b0d049b6486299133 days 18 hrs ago0x18a417d09c1668eca0fbb2fdea5e8787724a95cf IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.000249065
0x4b132518f379559ad1a38b91b2c4da44ae97f064ecc37189d9ffc6a699d20a3d6486291133 days 18 hrs ago0x18a417d09c1668eca0fbb2fdea5e8787724a95cf IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.000249065
0x15dcff5a0ca4946639dbc5b142e968d3002ff233f44d253788d26a31764497cd6486283133 days 18 hrs ago0x18a417d09c1668eca0fbb2fdea5e8787724a95cf IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.0015
0xd7d6efcd8ce4084e52962bf7db4567deddcd2d40229b7b9bdc24b10ff5a013cf6486275133 days 18 hrs ago0x49aace9df37a76e38e0b12b0fcc6d12f5c43a2bc IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.00011214
0xec4e359723acb858513a2f9aed6d52c44492a017bcc3aaad3996f9f652d8a7dc6485248133 days 22 hrs ago0x35731d76faa41b26b3c62fab50d403e21ad2fecf IN  0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170 Ether0.000394776
[ Download CSV Export 

Latest 25 Internal Transaction, Click here to view more Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0x764aaa10f4503b66779731e99ab58ef5603d565e705bd84d75d4ecab23066cdd678875984 days 6 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170x77cc58acd7573896a41b177f6fb6ca939374343f0.085874654730208356 Ether
0xe3fdb9d1640d045a995e8f376573d0819234a8e74d153e2de31aff799d2b8f256616906112 days 11 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170x87f7a5708e384407b4ed494be1ff22ae68ab11f90.013342909597747845 Ether
0x2ea535d678822aaff4eec10fd0efabec649275a208b02f78635e9da6fa7cd1f36519815128 days 8 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170xf32cc9d687acc534cee527719c148aab51bd30ca0.007496198381007888 Ether
0xe994d10de431bfd078c56986ac2bf3ed70cd23b88da67b7a4235f586502bb4dc6501866131 days 6 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170xadcfb18ebd7ec546af6f9f8cd1100ee4716836bb0.006889720444196433 Ether
0xbe73c40e6ee713cecdc47118f2c13302e81d20f8fab0a99d95e5e0585fb845fe6491801132 days 21 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170x066a859cc8c56fd5c7faa4694a11e4e7daf9dc250.000000000234718573 Ether
0xfe34579a8ecae5473925b951f4d79acff2d753fb65460ef6ec434844e9fa21d66486308133 days 18 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170x18a417d09c1668eca0fbb2fdea5e8787724a95cf0.07616342971981565 Ether
0xec4e359723acb858513a2f9aed6d52c44492a017bcc3aaad3996f9f652d8a7dc6485248133 days 22 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170x35731d76faa41b26b3c62fab50d403e21ad2fecf0.000000870789122038 Ether
0xd3fb617a27456f922d0886916b67dd69bf173a5e9dd02f9f1a490450da71ff126483740134 days 4 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170x79aabc60ad036db0b3e8adbd7e14a137a9a15e9c0.01983616749394098 Ether
0x4c8133d3fce6ccb315449bc31dfd05e1d789bb24ed2702a3440fb9c08044bed96483698134 days 4 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170x79aabc60ad036db0b3e8adbd7e14a137a9a15e9c0.065413431725754793 Ether
0x06d1178874189d40630a2e0fbc55d2f6ebe2ce3372a188a899c13b69f1a876a56482389134 days 10 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170x782817af926037d78f42a11f69ef625986e8e9f90.078579206624410736 Ether
0xe17f7dfe7f2a636624bc02b3a7ea8c368fc7c2b65b392b5eba43e03900383f5b6481447134 days 13 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170x6ee3286f8a1cfd2329ef39eb58d6c5f13cd4b1760.018859571419139567 Ether
0x9e27dec16ff4f1424a51341a1f3996080e636de92ab683268b062b62000b05f16480463134 days 17 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170x4fc6c9296336e907ecf9727af0eb2a1bfebf16e00.654998131940691198 Ether
0x00778ae7d8e98a8251432f63635dbee73eb106ec4538b7d8bee0b5d8db4a7c8c6478988134 days 23 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170xa382858066a1f46d4acd0db1cd77f33d244cd86f1.316648786220311413 Ether
0xcda12a244812387a9d8dc4f12ef86d682a09020f05cb19bfd755c73fbbf7a69e6478908134 days 23 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170xa382858066a1f46d4acd0db1cd77f33d244cd86f0.594797486143190615 Ether
0xdb717d6eee40073488078eeef2e960810958b7b9ee5e8f566be82e91e8ae030a6478829135 days ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170xadcfb18ebd7ec546af6f9f8cd1100ee4716836bb0.051167236211345179 Ether
0xb3357695193d1d468ac40c31f505b6c1a359ed917e882eb5b4dc90865d2316356478536135 days 1 hr ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170xadcfb18ebd7ec546af6f9f8cd1100ee4716836bb0.222670179855500532 Ether
0x093c19a2627a9989454347a75e8901f53b4daba550dcce697a0d520db13e73076478502135 days 1 hr ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170xadcfb18ebd7ec546af6f9f8cd1100ee4716836bb0.117890926619044696 Ether
0xbb7c66e8938bca1770f34c32199c329483219790ae70000e03d0225bc9473c436478431135 days 1 hr ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170x6ee3286f8a1cfd2329ef39eb58d6c5f13cd4b1760.055236334485611973 Ether
0x96d07d709f8da9069afb300d0c1117010353cb68b7bdce2a0cdd0ca80b95ced06478246135 days 2 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170xa375a08ea176a056ce699b6bc228e5ac346875180.000007258882133448 Ether
0xcf6b6e4e71eeec244c6389be5816481d0bedcb5fa0100ee681d28900e9d4e1da6478221135 days 2 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170x1e7f5c43565559214412d619c505544f05e8368a0.326627112031038009 Ether
0x8d330892f229c5b8588289818708d3d2384b5553c39ddff92ff893b99f7a20546478103135 days 2 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170x6742e1b1eab041c13251b589329860a205b13c960.031958457807830357 Ether
0xab95bcb875f0dbec4fec03f54fb958582d03a34269513c6995cd2bd000b2aa2b6478012135 days 3 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170x1e7f5c43565559214412d619c505544f05e8368a0.000149608798924364 Ether
0xdbed5bc05b25919475664d4866f591739126a24c74639007da841d79834752976477967135 days 3 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170x6ee3286f8a1cfd2329ef39eb58d6c5f13cd4b1760.000257729107355739 Ether
0x989d8e4154f8994e4e609e88b2efdbb1f8b23dbcfc2b62b08510df11859d60ec6477956135 days 3 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170x1e7f5c43565559214412d619c505544f05e8368a0.055035515191191244 Ether
0xd68f9bf3198be9f46bfc2f0c485e30316e2eda4e4c82699d18b4f2da26c185a06477850135 days 3 hrs ago0x871ca48e0f6b712eb2dd2e70aeb6f6eeca764a170x1e7f5c43565559214412d619c505544f05e8368a0.001907143046601685 Ether
[ Download CSV Export 
Contract Source Code Verified (Similar Match)
Note: This contract matches the deployed ByteCode of the Verified Source Code for Contract 0x3865f5b4ec91b5510a9658e6739a129736dfbf68
Contract Name: CryptoMinerTokenGold
Compiler Version: v0.4.25+commit.59dbf8f1
Optimization Enabled: No
Runs (Optimizer):  200


Contract Source Code
pragma solidity ^0.4.25;

/*
* https://minertokengold.me
*
* Crypto miner token Gold concept
*
* [✓] 3% Withdraw fee
* [✓] 8% Deposit fee
* [✓] 1% Token transfer
* [✓] 35% Referal link
*
*/

contract CryptoMinerTokenGold {

    modifier onlyBagholders {
        require(myTokens() > 0);
        _;
    }

    modifier onlyStronghands {
        require(myDividends(true) > 0);
        _;
    }

    event onTokenPurchase(
        address indexed customerAddress,
        uint256 incomingEthereum,
        uint256 tokensMinted,
        address indexed referredBy,
        uint timestamp,
        uint256 price
);

    event onTokenSell(
        address indexed customerAddress,
        uint256 tokensBurned,
        uint256 ethereumEarned,
        uint timestamp,
        uint256 price
);

    event onReinvestment(
        address indexed customerAddress,
        uint256 ethereumReinvested,
        uint256 tokensMinted
);

    event onWithdraw(
        address indexed customerAddress,
        uint256 ethereumWithdrawn
);

    event Transfer(
        address indexed from,
        address indexed to,
        uint256 tokens
);

    string public name = "Crypto Miner Token Gold";
    string public symbol = "CMTG";
    uint8 constant public decimals = 18;
    uint8 constant internal entryFee_ = 8;
    uint8 constant internal transferFee_ = 1;
    uint8 constant internal exitFee_ = 3;
    uint8 constant internal refferalFee_ = 35;
    uint256 constant internal tokenPriceInitial_ = 0.0000001 ether;
    uint256 constant internal tokenPriceIncremental_ = 0.00000001 ether;
    uint256 constant internal magnitude = 2 ** 64;
    uint256 public stakingRequirement = 50e18;
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal referralBalance_;
    mapping(address => int256) internal payoutsTo_;
    uint256 internal tokenSupply_;
    uint256 internal profitPerShare_;

    function buy(address _referredBy) public payable returns (uint256) {
        purchaseTokens(msg.value, _referredBy);
    }

    function() payable public {
        purchaseTokens(msg.value, 0x0);
    }

    function reinvest() onlyStronghands public {
        uint256 _dividends = myDividends(false);
        address _customerAddress = msg.sender;
        payoutsTo_[_customerAddress] +=  (int256) (_dividends * magnitude);
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        uint256 _tokens = purchaseTokens(_dividends, 0x0);
        emit onReinvestment(_customerAddress, _dividends, _tokens);
    }

    function exit() public {
        address _customerAddress = msg.sender;
        uint256 _tokens = tokenBalanceLedger_[_customerAddress];
        if (_tokens > 0) sell(_tokens);
        withdraw();
    }

    function withdraw() onlyStronghands public {
        address _customerAddress = msg.sender;
        uint256 _dividends = myDividends(false);
        payoutsTo_[_customerAddress] += (int256) (_dividends * magnitude);
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        _customerAddress.transfer(_dividends);
        emit onWithdraw(_customerAddress, _dividends);
    }

    function sell(uint256 _amountOfTokens) onlyBagholders public {
        address _customerAddress = msg.sender;
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _tokens = _amountOfTokens;
        uint256 _ethereum = tokensToEthereum_(_tokens);
        uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereum, exitFee_), 100);
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);

        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens);

        int256 _updatedPayouts = (int256) (profitPerShare_ * _tokens + (_taxedEthereum * magnitude));
        payoutsTo_[_customerAddress] -= _updatedPayouts;

        if (tokenSupply_ > 0) {
            profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
        }
        emit onTokenSell(_customerAddress, _tokens, _taxedEthereum, now, buyPrice());
    }

    function transfer(address _toAddress, uint256 _amountOfTokens) onlyBagholders public returns (bool) {
        address _customerAddress = msg.sender;
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);

        if (myDividends(true) > 0) {
            withdraw();
        }

        uint256 _tokenFee = SafeMath.div(SafeMath.mul(_amountOfTokens, transferFee_), 100);
        uint256 _taxedTokens = SafeMath.sub(_amountOfTokens, _tokenFee);
        uint256 _dividends = tokensToEthereum_(_tokenFee);

        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokenFee);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _taxedTokens);
        payoutsTo_[_customerAddress] -= (int256) (profitPerShare_ * _amountOfTokens);
        payoutsTo_[_toAddress] += (int256) (profitPerShare_ * _taxedTokens);
        profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
        emit Transfer(_customerAddress, _toAddress, _taxedTokens);
        return true;
    }


    function totalEthereumBalance() public view returns (uint256) {
        return this.balance;
    }

    function totalSupply() public view returns (uint256) {
        return tokenSupply_;
    }

    function myTokens() public view returns (uint256) {
        address _customerAddress = msg.sender;
        return balanceOf(_customerAddress);
    }

    function myDividends(bool _includeReferralBonus) public view returns (uint256) {
        address _customerAddress = msg.sender;
        return _includeReferralBonus ? dividendsOf(_customerAddress) + referralBalance_[_customerAddress] : dividendsOf(_customerAddress) ;
    }

    function balanceOf(address _customerAddress) public view returns (uint256) {
        return tokenBalanceLedger_[_customerAddress];
    }

    function dividendsOf(address _customerAddress) public view returns (uint256) {
        return (uint256) ((int256) (profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - payoutsTo_[_customerAddress]) / magnitude;
    }

    function sellPrice() public view returns (uint256) {
        // our calculation relies on the token supply, so we need supply. Doh.
        if (tokenSupply_ == 0) {
            return tokenPriceInitial_ - tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(1e18);
            uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereum, exitFee_), 100);
            uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);

            return _taxedEthereum;
        }
    }

    function buyPrice() public view returns (uint256) {
        if (tokenSupply_ == 0) {
            return tokenPriceInitial_ + tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(1e18);
            uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereum, entryFee_), 100);
            uint256 _taxedEthereum = SafeMath.add(_ethereum, _dividends);

            return _taxedEthereum;
        }
    }

    function calculateTokensReceived(uint256 _ethereumToSpend) public view returns (uint256) {
        uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereumToSpend, entryFee_), 100);
        uint256 _taxedEthereum = SafeMath.sub(_ethereumToSpend, _dividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);

        return _amountOfTokens;
    }

    function calculateEthereumReceived(uint256 _tokensToSell) public view returns (uint256) {
        require(_tokensToSell <= tokenSupply_);
        uint256 _ethereum = tokensToEthereum_(_tokensToSell);
        uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereum, exitFee_), 100);
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
        return _taxedEthereum;
    }


    function purchaseTokens(uint256 _incomingEthereum, address _referredBy) internal returns (uint256) {
        address _customerAddress = msg.sender;
        uint256 _undividedDividends = SafeMath.div(SafeMath.mul(_incomingEthereum, entryFee_), 100);
        uint256 _referralBonus = SafeMath.div(SafeMath.mul(_undividedDividends, refferalFee_), 100);
        uint256 _dividends = SafeMath.sub(_undividedDividends, _referralBonus);
        uint256 _taxedEthereum = SafeMath.sub(_incomingEthereum, _undividedDividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);
        uint256 _fee = _dividends * magnitude;

        require(_amountOfTokens > 0 && SafeMath.add(_amountOfTokens, tokenSupply_) > tokenSupply_);

        if (
            _referredBy != 0x0000000000000000000000000000000000000000 &&
            _referredBy != _customerAddress &&
            tokenBalanceLedger_[_referredBy] >= stakingRequirement
        ) {
            referralBalance_[_referredBy] = SafeMath.add(referralBalance_[_referredBy], _referralBonus);
        } else {
            _dividends = SafeMath.add(_dividends, _referralBonus);
            _fee = _dividends * magnitude;
        }

        if (tokenSupply_ > 0) {
            tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
            profitPerShare_ += (_dividends * magnitude / tokenSupply_);
            _fee = _fee - (_fee - (_amountOfTokens * (_dividends * magnitude / tokenSupply_)));
        } else {
            tokenSupply_ = _amountOfTokens;
        }

        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        int256 _updatedPayouts = (int256) (profitPerShare_ * _amountOfTokens - _fee);
        payoutsTo_[_customerAddress] += _updatedPayouts;
        emit onTokenPurchase(_customerAddress, _incomingEthereum, _amountOfTokens, _referredBy, now, buyPrice());

        return _amountOfTokens;
    }

    function ethereumToTokens_(uint256 _ethereum) internal view returns (uint256) {
        uint256 _tokenPriceInitial = tokenPriceInitial_ * 1e18;
        uint256 _tokensReceived =
            (
                (
                    SafeMath.sub(
                        (sqrt
                            (
                                (_tokenPriceInitial ** 2)
                                +
                                (2 * (tokenPriceIncremental_ * 1e18) * (_ethereum * 1e18))
                                +
                                ((tokenPriceIncremental_ ** 2) * (tokenSupply_ ** 2))
                                +
                                (2 * tokenPriceIncremental_ * _tokenPriceInitial*tokenSupply_)
                            )
                        ), _tokenPriceInitial
                    )
                ) / (tokenPriceIncremental_)
            ) - (tokenSupply_);

        return _tokensReceived;
    }

    function tokensToEthereum_(uint256 _tokens) internal view returns (uint256) {
        uint256 tokens_ = (_tokens + 1e18);
        uint256 _tokenSupply = (tokenSupply_ + 1e18);
        uint256 _etherReceived =
            (
                SafeMath.sub(
                    (
                        (
                            (
                                tokenPriceInitial_ + (tokenPriceIncremental_ * (_tokenSupply / 1e18))
                            ) - tokenPriceIncremental_
                        ) * (tokens_ - 1e18)
                    ), (tokenPriceIncremental_ * ((tokens_ ** 2 - tokens_) / 1e18)) / 2
                )
                / 1e18);

        return _etherReceived;
    }

    function sqrt(uint256 x) internal pure returns (uint256 y) {
        uint256 z = (x + 1) / 2;
        y = x;

        while (z < y) {
            y = z;
            z = (x / z + z) / 2;
        }
    }


}

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) {
        uint256 c = a / b;
        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 ABI
[{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"dividendsOf","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":true,"inputs":[{"name":"_ethereumToSpend","type":"uint256"}],"name":"calculateTokensReceived","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":"_tokensToSell","type":"uint256"}],"name":"calculateEthereumReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakingRequirement","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalEthereumBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"myTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_referredBy","type":"address"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingEthereum","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"ethereumEarned","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumReinvested","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumWithdrawn","type":"uint256"}],"name":"onWithdraw","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"}]

Contract Creation Code
60806040526040805190810160405280601781526020017f43727970746f204d696e657220546f6b656e20476f6c640000000000000000008152506000908051906020019062000051929190620000c1565b506040805190810160405280600481526020017f434d544700000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f929190620000c1565b506802b5e3af16b1880000600255348015620000ba57600080fd5b5062000170565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200010457805160ff191683800117855562000135565b8280016001018555821562000135579182015b828111156200013457825182559160200191906001019062000117565b5b50905062000144919062000148565b5090565b6200016d91905b80821115620001695760008160009055506001016200014f565b5090565b90565b61197480620001806000396000f300608060405260043610610111576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461011f57806306fdde031461017657806310d0ffdd1461020657806318160ddd146102475780632260937314610272578063313ce567146102b35780633ccfd60b146102e45780634b750334146102fb57806356d399e814610326578063688abbf7146103515780636b2f46321461039457806370a08231146103bf5780638620410b14610416578063949e8acd1461044157806395d89b411461046c578063a9059cbb146104fc578063e4849b3214610561578063e9fad8ee1461058e578063f088d547146105a5578063fdb5a03e146105ef575b61011c346000610606565b50005b34801561012b57600080fd5b50610160600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109f4565b6040518082815260200191505060405180910390f35b34801561018257600080fd5b5061018b610a96565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101cb5780820151818401526020810190506101b0565b50505050905090810190601f1680156101f85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021257600080fd5b5061023160048036038101908080359060200190929190505050610b34565b6040518082815260200191505060405180910390f35b34801561025357600080fd5b5061025c610b76565b6040518082815260200191505060405180910390f35b34801561027e57600080fd5b5061029d60048036038101908080359060200190929190505050610b80565b6040518082815260200191505060405180910390f35b3480156102bf57600080fd5b506102c8610bd3565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102f057600080fd5b506102f9610bd8565b005b34801561030757600080fd5b50610310610d7c565b6040518082815260200191505060405180910390f35b34801561033257600080fd5b5061033b610de4565b6040518082815260200191505060405180910390f35b34801561035d57600080fd5b5061037e600480360381019080803515159060200190929190505050610dea565b6040518082815260200191505060405180910390f35b3480156103a057600080fd5b506103a9610e56565b6040518082815260200191505060405180910390f35b3480156103cb57600080fd5b50610400600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e75565b6040518082815260200191505060405180910390f35b34801561042257600080fd5b5061042b610ebe565b6040518082815260200191505060405180910390f35b34801561044d57600080fd5b50610456610f26565b6040518082815260200191505060405180910390f35b34801561047857600080fd5b50610481610f3b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104c15780820151818401526020810190506104a6565b50505050905090810190601f1680156104ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561050857600080fd5b50610547600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fd9565b604051808215151515815260200191505060405180910390f35b34801561056d57600080fd5b5061058c600480360381019080803590602001909291905050506112fc565b005b34801561059a57600080fd5b506105a361154b565b005b6105d9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115b2565b6040518082815260200191505060405180910390f35b3480156105fb57600080fd5b506106046115c4565b005b600080600080600080600080600033975061062f6106288c600860ff16611738565b6064611773565b965061064961064288602360ff16611738565b6064611773565b9550610655878761178e565b94506106618b8861178e565b935061066c846117a7565b92506801000000000000000085029150600083118015610698575060065461069684600654611834565b115b15156106a357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff161415801561070c57508773ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614155b80156107595750600254600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156107ef576107a7600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487611834565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061080a565b6107f98587611834565b945068010000000000000000850291505b600060065411156108755761082160065484611834565b60068190555060065468010000000000000000860281151561083f57fe5b0460076000828254019250508190555060065468010000000000000000860281151561086757fe5b04830282038203915061087d565b826006819055505b6108c6600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611834565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081836007540203905080600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508973ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8032875b28d82ddbd303a9e4e5529d047a14ecb6290f80012a81b7e6227ff1ab8d86426109b9610ebe565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390a3829850505050505050505092915050565b600068010000000000000000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546007540203811515610a8e57fe5b049050919050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b2c5780601f10610b0157610100808354040283529160200191610b2c565b820191906000526020600020905b815481529060010190602001808311610b0f57829003601f168201915b505050505081565b600080600080610b52610b4b86600860ff16611738565b6064611773565b9250610b5e858461178e565b9150610b69826117a7565b9050809350505050919050565b6000600654905090565b6000806000806006548511151515610b9757600080fd5b610ba085611852565b9250610bba610bb384600360ff16611738565b6064611773565b9150610bc6838361178e565b9050809350505050919050565b601281565b6000806000610be76001610dea565b111515610bf357600080fd5b339150610c006000610dea565b9050680100000000000000008102600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d29573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b60008060008060006006541415610da1576402540be40064174876e800039350610dde565b610db2670de0b6b3a7640000611852565b9250610dcc610dc584600360ff16611738565b6064611773565b9150610dd8838361178e565b90508093505b50505090565b60025481565b60008033905082610e0357610dfe816109f4565b610e4e565b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e4c826109f4565b015b915050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060008060006006541415610ee3576402540be40064174876e800019350610f20565b610ef4670de0b6b3a7640000611852565b9250610f0e610f0784600860ff16611738565b6064611773565b9150610f1a8383611834565b90508093505b50505090565b600080339050610f3581610e75565b91505090565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fd15780601f10610fa657610100808354040283529160200191610fd1565b820191906000526020600020905b815481529060010190602001808311610fb457829003601f168201915b505050505081565b600080600080600080610fea610f26565b111515610ff657600080fd5b339350600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054861115151561104757600080fd5b60006110536001610dea565b111561106257611061610bd8565b5b61107a61107387600160ff16611738565b6064611773565b9250611086868461178e565b915061109183611852565b905061109f6006548461178e565b6006819055506110ee600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548761178e565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061117a600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611834565b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560075402600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508160075402600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061128360075460065468010000000000000000840281151561127d57fe5b04611834565b6007819055508673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600194505050505092915050565b600080600080600080600061130f610f26565b11151561131b57600080fd5b339550600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054871115151561136c57600080fd5b86945061137885611852565b935061139261138b85600360ff16611738565b6064611773565b925061139e848461178e565b91506113ac6006548661178e565b6006819055506113fb600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661178e565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550680100000000000000008202856007540201905080600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600060065411156114d5576114ce6007546006546801000000000000000086028115156114c857fe5b04611834565b6007819055505b8573ffffffffffffffffffffffffffffffffffffffff167f8d3a0130073dbd54ab6ac632c05946df540553d3b514c9f8165b4ab7f2b1805e868442611518610ebe565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390a250505050505050565b600080339150600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111156115a6576115a5816112fc565b5b6115ae610bd8565b5050565b60006115be3483610606565b50919050565b6000806000806115d46001610dea565b1115156115e057600080fd5b6115ea6000610dea565b9250339150680100000000000000008302600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054830192506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116db836000610606565b90508173ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b600080600084141561174d576000915061176c565b828402905082848281151561175e57fe5b0414151561176857fe5b8091505b5092915050565b600080828481151561178157fe5b0490508091505092915050565b600082821115151561179c57fe5b818303905092915050565b6000806000670de0b6b3a764000064174876e8000291506006546402540be40061181d611817600654866402540be400600202020260026006540a60026402540be4000a02670de0b6b3a76400008a02670de0b6b3a76400006402540be40002600202026002890a0101016118fd565b8561178e565b81151561182657fe5b040390508092505050919050565b600080828401905083811015151561184857fe5b8091505092915050565b600080600080670de0b6b3a764000085019250670de0b6b3a7640000600654019150670de0b6b3a76400006118e6670de0b6b3a764000085036402540be400670de0b6b3a7640000868115156118a457fe5b046402540be4000264174876e8000103026002670de0b6b3a7640000876002890a038115156118cf57fe5b046402540be400028115156118e057fe5b0461178e565b8115156118ef57fe5b049050809350505050919050565b60008060026001840181151561190f57fe5b0490508291505b8181101561194257809150600281828581151561192f57fe5b040181151561193a57fe5b049050611916565b509190505600a165627a7a72305820e412b63615d7d93f61b4fe164c65aa94315cb049daf382674ac4d80d45be4e9c0029


   Swarm Source:
bzzr://e412b63615d7d93f61b4fe164c65aa94315cb049daf382674ac4d80d45be4e9c
Block Age transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.