Реклама вашего контракта Кабинет инвестора
Меню
Появились вопросы или есть предложения?
Напишите нам в Telegram t.me/smartradar
ECToken

ECToken

Etherscan
0x792E6C37AE5CED8202794Af26671531195418616
Следить за контрактом

Баланс

109.655 ETH.

Динамика пополнений
от общего пополнения за день

0%

Ввод

За последний час
0 ETH.
Всего
2427.75 ETH.

Выводы

За последний час
0 ETH.
Всего
2318.09 ETH.

Условия

В день
-
В час
-

Инвесторов

227

Повторные пополнения

За последний час
0 ETH.
Всего
752.131 ETH.

Средняя оценка аудиторов

8

Контакты

  • Таймлайн:
  • час
  • день
  • неделя
  • месяц
Пополнения (1845)
Выводы (365)
Аудит
Код
API
Комменторы
Дата Блок TxHash От кого Кому Сумма
Вчера 06:48 7243052 0x7509f7a181037b50904ac4c6e5423905a3d853f49db5914fbf733fb99831829c 0xba0b064815127142e114cab52967b7a2f8ede724 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
Вчера 06:46 7243047 0x35b002ee84da485235a7229b25984ec936c7d2e20a65735a3c21578f5a7bc37e 0xba0b064815127142e114cab52967b7a2f8ede724 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
Вчера 06:38 7243016 0xffa811b32f75ebb6f33f770e77dfa818a530c154198c416fd95cf409cb4b8c43 0x323729d79e6461194760caa5653ae2d927ae0528 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
Вчера 06:37 7243011 0xf7421265286c19e42c1b6df59bf750b90dff41b30366824e31cf2ae1835556ec
Транзакция с ошибкой
0x323729d79e6461194760caa5653ae2d927ae0528 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
Вчера 06:32 7242996 0x2533615a93dda1865bc66f10acfab90372ccc0ea6ff87465b7898d52a36eaa9f 0x323729d79e6461194760caa5653ae2d927ae0528 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
18 фев. 15:59 7236166 0x02402fdb7ed032346e7559f33c8567bfda63b00d5cf0b4a59fa6330ccc09ac57 0xe0bd393b642949ddb7006f4cd2829a2dafdf4ce8 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
16 фев. 00:58 7225156 0x2676eaad39f92883807252eea6a762e5fd9644f346b5efd9b1ae55bddcf8c576 0xbb2a75692b0ee861b1b804d30f2d8c821a7dc7dc 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
16 фев. 00:57 7225153 0x9a5b8d81f330f58939284eb88104b7dca4b90bccbea8bd7c53d82384e0f2bff9 0xbb2a75692b0ee861b1b804d30f2d8c821a7dc7dc 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
13 фев. 17:03 7215446 0x08ce0e5d5a01f8c475b239cc2e5b02a3bf7c07e045e27aa3a25003bf917f269d 0xb21b421882edcd81902d7b38e42a423163aae1da 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
13 фев. 17:00 7215437 0x0306ff3297f2a6bc1815be8d66f8a584daafa2dd8903175c64721d04fa2d414d 0xb21b421882edcd81902d7b38e42a423163aae1da 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
12 фев. 18:10 7211429 0x891ab782f68cb288d6e92bb4a96cea37d9b86ce918ec7f9b03a3cd45a1dcbaf2 0xa0cf113d23c2322537bd78eb96b74ef45afe3c49 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
12 фев. 18:08 7211424 0xd20fb500e30f65bd9450d75aa8b3872ce9b1008b2730aacd3db0ff3265248b05 0xa0cf113d23c2322537bd78eb96b74ef45afe3c49 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
11 фев. 21:42 7207839 0x41471d7716e4cbce4a8aa6309aba816eed634536b1c662fcff3b07f3732cab3c 0xd30cf6f025883767b8403f9e3d84a4a0563819a8 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
11 фев. 21:39 7207833 0xd04fbaa15d075e03628322160d69e6c81f3d156ec045b657ca64ebb977eb0987 0xd30cf6f025883767b8403f9e3d84a4a0563819a8 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
24 янв. 09:22 7117609 0x091243fe03c3d754fc574d5f99d46d6f1faafe0bf681d9f101432f893b61ec68 0xd4af5bf5321933fe2b85339c50f2f78d2713a81a 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
24 янв. 09:22 7117603 0x207520cb48d51a087ed9cb25676529518d2aa55db9a9a33aeb285cbfe1bdf9c6 0xd4af5bf5321933fe2b85339c50f2f78d2713a81a 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
24 янв. 09:17 7117584 0x2bcb169a03f72e3c490a03a415508cd1333a21b607d21c3d2bd3d7ae8e63b746 0xd4af5bf5321933fe2b85339c50f2f78d2713a81a 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
24 янв. 09:15 7117578 0x63391b9cb94f3e32b3e1813ee2f1c9ae54e1ec548e742ab826f907dbd89837d5 0xd4af5bf5321933fe2b85339c50f2f78d2713a81a 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
21 янв. 08:20 7102219 0x2b3c919380ec42e917f1ef429db7957e2e3104f88ebd310aa056225f19404e6c 0xfee822aeb1868f93b47403fb0358edf00cf5eac3 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
19 янв. 21:10 7094156 0x0bf38cdce5d9ba959145caf9cc631ec31f84d0e2ed6f0123469be9afd2a3a3a5 0xc33b1448f300b1bcc8c41ac91c63c05812d51b70 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
18 янв. 14:04 7086802 0x3a07e5d654c348967aa6a4bf90a9980f443d5d1ae7c4fe44adf9a7030e15fd50 0x7e68ea1d10b7a0f46833098c989490c3cc9cd9db 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
18 янв. 14:03 7086795 0xb5729ff756b175a66d8509acc2e430cb05e13f308848c230df0d63ae9772cff1 0x7e68ea1d10b7a0f46833098c989490c3cc9cd9db 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
17 янв. 20:39 7082702 0x22bbfe0696bcd805ce6ea75ceb0a25f56f7a2688076b7e044478c7a477aee2cb 0xa0cf113d23c2322537bd78eb96b74ef45afe3c49 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
17 янв. 17:49 7082051 0x2f9d8146e2759caa55fb32a0ad485195c92f7a59af5637671bc8659efb40f7aa
Транзакция с ошибкой
0x021124b111d0febd13d0883538e7979621de6c7b 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
17 янв. 17:35 7082005 0x36c751ce2f15a77e43a21347475c68a412b3357f3747ef38f00491aee70e9894 0x021124b111d0febd13d0883538e7979621de6c7b 0x792e6c37ae5ced8202794af26671531195418616 0 Ether
Дата Блок parentTxHash От кого Кому Сумма
19 дек. 2018 г. 19:32 6915867 0x8360901891625d21ae3494ba244deabf75ad081e9dc75670fdf964059668184e 0x792e6c37ae5ced8202794af26671531195418616 0xa34c65b5296ab256c3884681109f08d97ef828f9 4.921879875713764 Ether
19 дек. 2018 г. 17:24 6915353 0x4de39baf9d8a3bbcae617aa9aba6536534d3d339d6f51e13420fa08ff5b26741 0x792e6c37ae5ced8202794af26671531195418616 0x40c44f37a4e92614fccaadc8868b467fe52c9384 0.14268191568348418 Ether
19 дек. 2018 г. 17:22 6915344 0x7d637d89a7af7911b10cdd51d137f968c8b6d28d3d79ba962e8dbabf96e66ade 0x792e6c37ae5ced8202794af26671531195418616 0x44110709d21140a61deaeacd56379d4a16c3ab80 1.8853263136072362 Ether
19 дек. 2018 г. 17:09 6915278 0x0d894929cf4c9f35cab19e3ccf220c05386973464dd2389cd9fa89e8984ce22a 0x792e6c37ae5ced8202794af26671531195418616 0xa74d93a5900ba6eaa1d6b74385a2b38f794e76fe 2.0419773500828966 Ether
19 дек. 2018 г. 17:00 6915232 0x4ab746cba7d7051f860a92da6512cd3f390ca8b8170126e45b0fcd3c8d6dde83 0x792e6c37ae5ced8202794af26671531195418616 0xab38a7d0853806da65c03fa6731906eb1a0cf6ad 33.547778921951824 Ether
19 дек. 2018 г. 16:59 6915229 0xb6d185f422629877f5c86267f545b2983d79074460d59acf4b1d739e9db8e872 0x792e6c37ae5ced8202794af26671531195418616 0x20a016f43ea34eb43772a0c27ac6486d7bd65182 2.1164903632553944 Ether
19 дек. 2018 г. 16:58 6915224 0x448518b2fd6f1f5330da6ede253005820804b4acca13e4b6f9bcf900c9bd5933 0x792e6c37ae5ced8202794af26671531195418616 0xfc19ade9034a40dd7d6e7c5754cf154bd703405d 90.67085911863997 Ether
19 дек. 2018 г. 15:07 6914801 0x6e7c4d31c67176e70406454fe0d71ba41401f6eb8b07fa19740f763714cc146d 0x792e6c37ae5ced8202794af26671531195418616 0x790bbade196cb3c209f5b1cee31c1b0da0341777 2.0173277258719784 Ether
19 дек. 2018 г. 14:13 6914580 0xcb90ee175b2d4794c7643f84cd505e19c47c6dc50d218399e8b16af03c3e8569 0x792e6c37ae5ced8202794af26671531195418616 0x147b7d92c6385b4e4f4c9bd5cadf5268b64f33c2 35.27156515678434 Ether
19 дек. 2018 г. 12:02 6914052 0xabcc771ca843476900f8e9e10f580be4a003582438bd585b2c6e69bc00acd006 0x792e6c37ae5ced8202794af26671531195418616 0x4da381e8951b32cb6e414662241693a4344e85b6 7.472645412847665 Ether
19 дек. 2018 г. 11:59 6914036 0x10671429d6a153c2c0f72bb20cbc0d1d57b3150d933294bd7c7585c28d070da0 0x792e6c37ae5ced8202794af26671531195418616 0x0e9ca0ccd7d783c091f5d9e63e15eb025f174445 9.089452921024261 Ether
19 дек. 2018 г. 10:12 6913594 0x26aa9a3da4fba370aa7a5bef6b26a5fa309bbfb02518e5663196850da5372b6f 0x792e6c37ae5ced8202794af26671531195418616 0xd4af5bf5321933fe2b85339c50f2f78d2713a81a 0.003760051239055938 Ether
19 дек. 2018 г. 04:29 6912231 0x3dfc22a1fa2bbce191e4e3d5d0fe13c490b11ece073586fd9ce076394f554580 0x792e6c37ae5ced8202794af26671531195418616 0x85cd9db79fa16cbcae3acc3b12a8bf293c972c28 0.3768757934888213 Ether
19 дек. 2018 г. 04:29 6912231 0x8e931c23a8faa071816687c8fe7d1d86a8ea87470076a640c44040460e92d708 0x792e6c37ae5ced8202794af26671531195418616 0x85cd9db79fa16cbcae3acc3b12a8bf293c972c28 0.000033728504277357 Ether
19 дек. 2018 г. 04:29 6912231 0x501c825d6971578cf70dd933fb6287ba6560607a0b2494a69761c06cac668133 0x792e6c37ae5ced8202794af26671531195418616 0x85cd9db79fa16cbcae3acc3b12a8bf293c972c28 0.000000003018532925 Ether
19 дек. 2018 г. 01:45 6911568 0x37d20518e1fc0e45d326ab8098aef4a7d2c528ede73b803f599c556570faee83 0x792e6c37ae5ced8202794af26671531195418616 0x71d83c4d9f0a977b53d00e54d75ddff821c833b5 0.23385965695224184 Ether
19 дек. 2018 г. 01:06 6911414 0x2f2a686d15b23b6c93c6e98caf140cfd8f728d0f7e7771877fc87d7636584bc3 0x792e6c37ae5ced8202794af26671531195418616 0x19b84c79fa69c3ccd8159fb1265cf0fe8d23f513 3.7086700180263055 Ether
19 дек. 2018 г. 00:56 6911372 0xd96b52baa71296ddcd3d72072055eb5ff9a65cea8bee8a74a2afe785469347a9 0x792e6c37ae5ced8202794af26671531195418616 0x71d83c4d9f0a977b53d00e54d75ddff821c833b5 0.004099441444021741 Ether
19 дек. 2018 г. 00:42 6911299 0xc6a8019bd833046cc73ad58d7a57dbdc60f741a418e3d9c276d7b61d0d300441 0x792e6c37ae5ced8202794af26671531195418616 0x19b84c79fa69c3ccd8159fb1265cf0fe8d23f513 0.000006788799843822 Ether
19 дек. 2018 г. 00:40 6911296 0x8233bf423d37cc913f5205d0859a6d143adba5ae9e52b2c7467badf8b0b2c786 0x792e6c37ae5ced8202794af26671531195418616 0x19b84c79fa69c3ccd8159fb1265cf0fe8d23f513 0.02009464225788083 Ether
18 дек. 2018 г. 23:59 6911117 0x52e9e85c4fc2ff2a07dd6d00e6af2a3a21d70e81108f84fdd83dbe8ffbd9170b 0x792e6c37ae5ced8202794af26671531195418616 0x7dec522eb4ff10ee20c82a5b4923923cd42b4152 29.238574569929856 Ether
18 дек. 2018 г. 23:58 6911113 0x7f45dc02ae43f0a5f93710ac62c99382b7f75a48e383003399ee695719fb43cd 0x792e6c37ae5ced8202794af26671531195418616 0x0562bba2b1f88d8728c3d04b6555d0550d9fc890 5.874837796356395 Ether
18 дек. 2018 г. 23:44 6911056 0x412a809badc0eb1ff1be3d585c66e7bee155c200dcddd8ef2f754c004d687428 0x792e6c37ae5ced8202794af26671531195418616 0x4e37e1624098d781be6df3754768496b4cebe4ef 17.777569776597122 Ether
18 дек. 2018 г. 23:36 6911028 0xd06388aeaa638dda5af6fb1cc4412b53fc0809633e9681ca39782287a19ce166 0x792e6c37ae5ced8202794af26671531195418616 0x25af31f0e999fce14d4365e29197381e54e72da0 6.5440214010498865 Ether
18 дек. 2018 г. 23:26 6910978 0x82a7f0307658d5a9dee22b61f38fdc1f61c50e80ecda9d8d633c57a63849840d 0x792e6c37ae5ced8202794af26671531195418616 0x19b84c79fa69c3ccd8159fb1265cf0fe8d23f513 0.04452991685759113 Ether
Средняя оценка аудиторов 8
Contract Source Code </>
pragma solidity ^0.4.25;

/*
* https://ectoken.io
*
* Ethereum Captial Token concept
*
* [✓] 6% Withdraw fee (3% to dividends, 3% to owner). First 6 days 30%, next 24 days it will decrease to 6%
* [✓] 12% Deposit fee
* [✓] 1% Token transfer
* [✓] 5 lines referral system with 5 levels of rewards
*
*/

contract ECT {

    /**
     * Only with tokens
     */
    modifier onlyBagholders {
        require(myTokens() > 0);
        _;
    }

    /**
     * Only with dividends
     */
    modifier onlyStronghands {
        require(myDividends(true) > 0);
        _;
    }

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

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

    event onReinvestment(
        address indexed customerAddress,
        uint256 ethereumReinvested
    );

    event onWithdraw(
        address indexed customerAddress,
        uint256 ethereumWithdrawn
    );

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

    string public name = "Ethereum Capital Token";
    string public symbol = "ECT";
    uint public createdAt;
    
    bool public started = false;
    modifier onlyStarted {
        require(started);
        _;
    }
    modifier onlyNotStarted {
        require(!started);
        _;
    }

    uint8 constant public decimals = 18;

    /**
     * fees
     */
    uint8 constant internal entryFee_ = 12;
    uint8 constant internal ownerFee_ = 4;
    uint8 constant internal transferFee_ = 1;
    uint8 constant internal exitFeeD0_ = 30;
    uint8 constant internal exitFee_ = 6;
    uint8 constant internal refferalFee_ = 33;

    address internal _ownerAddress;

    /**
     * Initial token values
     */
    uint256 constant internal tokenPriceInitial_ = 0.0000001 ether;
    uint256 constant internal tokenPriceIncremental_ = 0.00000001 ether;

    uint256 constant internal magnitude = 2 ** 64;


    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal referralBalance_;
    mapping(address => int256) internal payoutsTo_;
    mapping(address => uint256) internal summaryReferralProfit_;
    mapping(address => uint256) internal dividendsUsed_;

    uint256 internal tokenSupply_;
    uint256 internal profitPerShare_;
    
    uint public blockCreation;
    
    /**
     * Admins. Only rename tokens, change referral settings and add new admins
     */
    mapping(bytes32 => bool) public administrators;
    modifier onlyAdministrator(){
        address _customerAddress = msg.sender;
        require(administrators[keccak256(_customerAddress)]);
        _;
    }

    function isAdmin() public view returns (bool) {
        return administrators[keccak256(msg.sender)];
    }

    function setAdministrator(address _id, bool _status)
        onlyAdministrator()
        public
    {
        if (_id != _ownerAddress) {
            administrators[keccak256(_id)] = _status;
        }
    } 

    function setName(string _name)
        onlyAdministrator()
        public
    {
        name = _name;
    }

    function setSymbol(string _symbol)
        onlyAdministrator()
        public
    {
        symbol = _symbol;
    }

    constructor() public {
        _ownerAddress = msg.sender;
        administrators[keccak256(_ownerAddress)] = true;
        blockCreation = block.number;
    }
    
    function start() onlyNotStarted() onlyAdministrator() public {
        started = true;
        createdAt = block.timestamp;
    }
    
    function getLifetime() public view returns (uint8) {
        if (!started)
        {
            return 0;
        }
        return (uint8) ((now - createdAt) / 60 / 60 / 24);
    }
    
    function getExitFee() public view returns (uint8) {
        uint lifetime = getLifetime(); // Получение времени жизни контракта
        if (lifetime <= 6) { 
            return exitFeeD0_; // 30%
        } else if (lifetime < 30) {
            return (uint8) (exitFeeD0_ - lifetime + 6);
        } else {
            return exitFee_; // 6%
        }
    }

    function buy(address _r1, address _r2, address _r3, address _r4, address _r5) onlyStarted() public payable returns (uint256) {
        purchaseTokens(msg.value, _r1, _r2, _r3, _r4, _r5);
    }

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

    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);
        dividendsUsed_[_customerAddress] += _dividends;
        payoutsTo_[_customerAddress] += (int256) (_dividends * magnitude);
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        
        uint256 _fee = SafeMath.div(SafeMath.mul(_dividends, getExitFee() - 3), 100);
        
        uint256 _ownerFee = SafeMath.div(SafeMath.mul(_dividends, 3), 100);
        
        uint256 _dividendsTaxed = SafeMath.sub(_dividends, _fee + _ownerFee);
        
        if (_customerAddress != _ownerAddress) {
            referralBalance_[_ownerAddress] += _ownerFee;
            summaryReferralProfit_[_ownerAddress] += _ownerFee;
        } else {
            _dividendsTaxed += _ownerFee;
        }
        
        profitPerShare_ = SafeMath.add(profitPerShare_, (_fee * magnitude) / tokenSupply_);
    
        _customerAddress.transfer(_dividendsTaxed);
        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);

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

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

        emit onTokenSell(_customerAddress, _tokens, _ethereum, 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 address(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 dividendsFull(address _customerAddress) public view returns (uint256) {
        return dividendsOf(_customerAddress) + dividendsUsed_[_customerAddress] + summaryReferralProfit_[_customerAddress];
    }

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

    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 _incomingEthereum) public view returns (uint256) {
        uint256 _dividends = SafeMath.div(SafeMath.mul(_incomingEthereum, entryFee_), 100);
        
        uint256 _taxedEthereum = SafeMath.sub(_incomingEthereum, _dividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);

        return _amountOfTokens;
    }

    function calculateEthereumReceived(uint256 _tokensToSell) public view returns (uint256) {
        require(_tokensToSell <= tokenSupply_);
        return tokensToEthereum_(_tokensToSell);
    }
    
    uint256 public I_S = 0.25 ether;
    uint256 public I_R1 = 30;

    function setI_S(uint256 _v)
        onlyAdministrator()
        public
    {
        I_S = _v;
    }

    function setI_R1(uint256 _v)
        onlyAdministrator()
        public
    {
        I_R1 = _v;
    }

    
    uint256 public II_S = 5 ether;
    uint256 public II_R1 = 30;
    uint256 public II_R2 = 10;

    function setII_S(uint256 _v)
        onlyAdministrator()
        public
    {
        II_S = _v;
    }

    function setII_R1(uint256 _v)
        onlyAdministrator()
        public
    {
        II_R1 = _v;
    }

    function setII_R2(uint256 _v)
        onlyAdministrator()
        public
    {
        II_R2 = _v;
    }
    
    uint256 public III_S = 10 ether;
    uint256 public III_R1 = 30;
    uint256 public III_R2 = 10;
    uint256 public III_R3 = 10;

    function setIII_S(uint256 _v)
        onlyAdministrator()
        public
    {
        III_S = _v;
    }

    function setIII_R1(uint256 _v)
        onlyAdministrator()
        public
    {
        III_R1 = _v;
    }

    function setIII_R2(uint256 _v)
        onlyAdministrator()
        public
    {
        III_R2 = _v;
    }

    function setIII_R3(uint256 _v)
        onlyAdministrator()
        public
    {
        III_R3 = _v;
    }
    
    uint256 public IV_S = 20 ether;
    uint256 public IV_R1 = 30;
    uint256 public IV_R2 = 20;
    uint256 public IV_R3 = 10;
    uint256 public IV_R4 = 10;

    function setIV_S(uint256 _v)
        onlyAdministrator()
        public
    {
        IV_S = _v;
    }

    function setIV_R1(uint256 _v)
        onlyAdministrator()
        public
    {
        IV_R1 = _v;
    }

    function setIV_R2(uint256 _v)
        onlyAdministrator()
        public
    {
        IV_R2 = _v;
    }

    function setIV_R3(uint256 _v)
        onlyAdministrator()
        public
    {
        IV_R3 = _v;
    }

    function setIV_R4(uint256 _v)
        onlyAdministrator()
        public
    {
        IV_R4 = _v;
    }
    
    uint256 public V_S = 100 ether;
    uint256 public V_R1 = 40;
    uint256 public V_R2 = 20;
    uint256 public V_R3 = 10;
    uint256 public V_R4 = 10;
    uint256 public V_R5 = 10;

    function setV_S(uint256 _v)
        onlyAdministrator()
        public
    {
        V_S = _v;
    }

    function setV_R1(uint256 _v)
        onlyAdministrator()
        public
    {
        V_R1 = _v;
    }

    function setV_R2(uint256 _v)
        onlyAdministrator()
        public
    {
        V_R2 = _v;
    }

    function setV_R3(uint256 _v)
        onlyAdministrator()
        public
    {
        V_R3 = _v;
    }

    function setV_R4(uint256 _v)
        onlyAdministrator()
        public
    {
        V_R4 = _v;
    }

    function setV_R5(uint256 _v)
        onlyAdministrator()
        public
    {
        V_R5 = _v;
    }
    
    function canRef(address _r, address _c, uint256 _m) internal returns (bool) {
        return _r != 0x0000000000000000000000000000000000000000 && _r != _c && tokenBalanceLedger_[_r] >= _m;
    }
    
    function etherBalance(address r) internal returns (uint256) {
        uint _v = tokenBalanceLedger_[r];
        if (_v < 0.00000001 ether) {
            return 0;
        } else {
            return tokensToEthereum_(_v);
        }
    }
    
    function getLevel(address _cb) public view returns (uint256) {
        uint256 _b = etherBalance(_cb);
        uint256 _o = 0;
        
        if (_b >= V_S) {
            _o = 5;
        } else if (_b >= IV_S) {
            _o = 4;
        } else if (_b >= III_S) {
            _o = 3;
        } else if (_b >= II_S) {
            _o = 2;
        } else if (_b >= I_S) {
            _o = 1;
        }
        
        return _o;
    }

    function purchaseTokens(uint256 _incomingEthereum, address _r1, address _r2, address _r3, address _r4, address _r5) internal {
        uint256 _undividedDividends = SafeMath.div(SafeMath.mul(_incomingEthereum, entryFee_), 100);
        uint256 _dividends = _undividedDividends;

        uint256 __bC = 0;
        uint256 _b = 0;
        
        if (canRef(_r1, msg.sender, I_S)) {
            __bC = I_R1;

            if (etherBalance(_r1) >= V_S) {
                __bC = V_R1;
            } else if (etherBalance(_r1) >= IV_S) {
                __bC = IV_R1;
            } else if (etherBalance(_r1) >= III_S) {
                __bC = III_R1;
            } else if (etherBalance(_r1) >= II_S) {
                __bC = II_R1;
            }
            
            _b = SafeMath.div(SafeMath.mul(_incomingEthereum, __bC), 1000);
            referralBalance_[_r1] = SafeMath.add(referralBalance_[_r1], _b);
            addReferralProfit(_r1, msg.sender, _b);
            _dividends = SafeMath.sub(_dividends, _b);
        }
        
        if (canRef(_r2, msg.sender, II_S)) {
            __bC = II_R2;

            if (etherBalance(_r2) >= V_S) {
                __bC = V_R2;
            } else if (etherBalance(_r2) >= IV_S) {
                __bC = IV_R2;
            } else if (etherBalance(_r2) >= III_S) {
                __bC = III_R2;
            }
            
            _b = SafeMath.div(SafeMath.mul(_incomingEthereum, __bC), 1000);
            referralBalance_[_r2] = SafeMath.add(referralBalance_[_r2], _b);
            addReferralProfit(_r2, _r1, _b);
            _dividends = SafeMath.sub(_dividends, _b);
        }
        
        if (canRef(_r3, msg.sender, III_S)) {
            __bC = III_R3;

            if (etherBalance(_r3) >= V_S) {
                __bC = V_R3;
            } else if (etherBalance(_r3) >= IV_S) {
                __bC = IV_R3;
            }
            
            _b = SafeMath.div(SafeMath.mul(_incomingEthereum, __bC), 1000);
            referralBalance_[_r3] = SafeMath.add(referralBalance_[_r3], _b);
            addReferralProfit(_r3, _r2, _b);
            _dividends = SafeMath.sub(_dividends, _b);
        }
        
        if (canRef(_r4, msg.sender, IV_S)) {
            __bC = IV_R4;

            if (etherBalance(_r4) >= V_S) {
                __bC = V_R4;
            }
            
            _b = SafeMath.div(SafeMath.mul(_incomingEthereum, __bC), 1000);
            referralBalance_[_r4] = SafeMath.add(referralBalance_[_r4], _b);
            addReferralProfit(_r4, _r3, _b);
            _dividends = SafeMath.sub(_dividends, _b);
        }
        
        if (canRef(_r5, msg.sender, V_S)) {
            _b = SafeMath.div(SafeMath.mul(_incomingEthereum, V_R5), 1000);
            referralBalance_[_r5] = SafeMath.add(referralBalance_[_r5], _b);
            addReferralProfit(_r5, _r4, _b);
            _dividends = SafeMath.sub(_dividends, _b);
        }

        uint256 _amountOfTokens = ethereumToTokens_(SafeMath.sub(_incomingEthereum, _undividedDividends));
        uint256 _fee = _dividends * magnitude;

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

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

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

    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 sellPriceAt(uint256 _atSupply) public view returns (uint256) {
        if (_atSupply == 0) {
            return tokenPriceInitial_ - tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereumAtSupply_(1e18, _atSupply);
            uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereum, exitFee_), 100);
            uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
 
            return _taxedEthereum;
        }
    }
   
    function tokensToEthereum_(uint256 _tokens) internal view returns (uint256) {
        return tokensToEthereumAtSupply_(_tokens, tokenSupply_);
    }
 
    function tokensToEthereumAtSupply_(uint256 _tokens, uint256 _atSupply) public view returns (uint256) {
        if (_tokens < 0.00000001 ether) {
            return 0;
        }
        uint256 tokens_ = (_tokens + 1e18);
        uint256 _tokenSupply = (_atSupply + 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;
        }
    }
    
    mapping(address => mapping(address => uint256)) internal referralProfit_;
    
    function addReferralProfit(address _referredBy, address _referral, uint256 _profit) internal {
        referralProfit_[_referredBy][_referral] += _profit;
        summaryReferralProfit_[_referredBy] += _profit;
    }
    
    function getReferralProfit(address _referredBy, address _referral) public view returns (uint256) {
        return referralProfit_[_referredBy][_referral];
    }
    
    function getSummaryReferralProfit(address _referredBy) public view returns (uint256) {
        if (_ownerAddress == _referredBy) {
            return 0;
        } else {
            return summaryReferralProfit_[_referredBy];
        }
    }

}

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;
    }
}
Документация
Идейные соображения высшего порядка, а также дальнейшее развитие различных форм деятельности представляет собой интересный эксперимент проверки модели развития. Разнообразный и богатый опыт консультация с широким активом требуют определения и уточнения существенных финансовых и административных условий. Задача организации, в особенности же новая модель организационной деятельности требуют от нас анализа системы обучения кадров, соответствует насущным потребностям. Повседневная практика показывает, что дальнейшее развитие различных форм деятельности обеспечивает широкому кругу (специалистов) участие в формировании новых предложений. Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности влечет за собой процесс внедрения и модернизации новых предложений.

Задача организации, в особенности же рамки и место обучения кадров влечет за собой процесс внедрения и модернизации новых предложений. Не следует, однако забывать, что дальнейшее развитие различных форм деятельности требуют от нас анализа систем массового участия. Значимость этих проблем настолько очевидна, что новая модель организационной деятельности влечет за собой процесс внедрения и модернизации модели развития. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности в значительной степени обуславливает создание существенных финансовых и административных условий.

Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности требуют определения и уточнения соответствующий условий активизации. Разнообразный и богатый опыт консультация с широким активом позволяет выполнять важные задания по разработке существенных финансовых и административных условий. С другой стороны консультация с широким активом позволяет оценить значение системы обучения кадров, соответствует насущным потребностям. Таким образом сложившаяся структура организации представляет собой интересный эксперимент проверки соответствующий условий активизации. Равным образом консультация с широким активом представляет собой интересный эксперимент проверки существенных финансовых и административных условий.

Товарищи! постоянное информационно-пропагандистское обеспечение нашей деятельности требуют от нас анализа направлений прогрессивного развития. С другой стороны начало повседневной работы по формированию позиции позволяет оценить значение новых предложений.

Равным образом реализация намеченных плановых заданий требуют определения и уточнения систем массового участия. Разнообразный и богатый опыт постоянное информационно-пропагандистское обеспечение нашей деятельности требуют от нас анализа направлений прогрессивного развития. Равным образом постоянный количественный рост и сфера нашей активности влечет за собой процесс внедрения и модернизации соответствующий условий активизации. Повседневная практика показывает, что дальнейшее развитие различных форм деятельности влечет за собой процесс внедрения и модернизации модели развития.

Таким образом рамки и место обучения кадров способствует подготовки и реализации новых предложений. Равным образом укрепление и развитие структуры в значительной степени обуславливает создание существенных финансовых и административных условий. Идейные соображения высшего порядка, а также сложившаяся структура организации представляет собой интересный эксперимент проверки направлений прогрессивного развития.

Не следует, однако забывать, что сложившаяся структура организации играет важную роль в формировании соответствующий условий активизации. С другой стороны дальнейшее развитие различных форм деятельности требуют определения и уточнения направлений прогрессивного развития.

Повседневная практика показывает, что начало повседневной работы по формированию позиции представляет собой интересный эксперимент проверки систем массового участия. Идейные соображения высшего порядка, а также постоянный количественный рост и сфера нашей активности в значительной степени обуславливает создание систем массового участия.

Таким образом укрепление и развитие структуры представляет собой интересный эксперимент проверки существенных финансовых и административных условий. Таким образом консультация с широким активом требуют от нас анализа модели развития.

Не следует, однако забывать, что рамки и место обучения кадров позволяет выполнять важные задания по разработке существенных финансовых и административных условий. С другой стороны постоянное информационно-пропагандистское обеспечение нашей деятельности позволяет выполнять важные задания по разработке соответствующий условий активизации. Товарищи! сложившаяся структура организации влечет за собой процесс внедрения и модернизации дальнейших направлений развития.
Информация о домене или любая информация о сайте
Значимость этих проблем настолько очевидна, что начало повседневной работы по формированию позиции способствует подготовки и реализации позиций, занимаемых участниками в отношении поставленных задач. Товарищи! новая модель организационной деятельности позволяет оценить значение направлений прогрессивного развития. Равным образом дальнейшее развитие различных форм деятельности влечет за собой процесс внедрения и модернизации направлений прогрессивного развития. Равным образом реализация намеченных плановых заданий позволяет выполнять важные задания по разработке новых предложений. Задача организации, в особенности же консультация с широким активом требуют от нас анализа существенных финансовых и административных условий. Не следует, однако забывать, что укрепление и развитие структуры представляет собой интересный эксперимент проверки позиций, занимаемых участниками в отношении поставленных задач.

Разнообразный и богатый опыт начало повседневной работы по формированию позиции требуют от нас анализа соответствующий условий активизации. Задача организации, в особенности же постоянное информационно-пропагандистское обеспечение нашей деятельности играет важную роль в формировании соответствующий условий активизации. Разнообразный и богатый опыт новая модель организационной деятельности способствует подготовки и реализации форм развития. Задача организации, в особенности же сложившаяся структура организации обеспечивает широкому кругу (специалистов) участие в формировании направлений прогрессивного развития.

Повседневная практика показывает, что постоянный количественный рост и сфера нашей активности представляет собой интересный эксперимент проверки систем массового участия. Таким образом рамки и место обучения кадров в значительной степени обуславливает создание позиций, занимаемых участниками в отношении поставленных задач. Товарищи! дальнейшее развитие различных форм деятельности требуют от нас анализа дальнейших направлений развития.

Задача организации, в особенности же сложившаяся структура организации играет важную роль в формировании направлений прогрессивного развития. Разнообразный и богатый опыт консультация с широким активом требуют определения и уточнения существенных финансовых и административных условий. Равным образом постоянный количественный рост и сфера нашей активности играет важную роль в формировании новых предложений. С другой стороны постоянный количественный рост и сфера нашей активности представляет собой интересный эксперимент проверки направлений прогрессивного развития. Таким образом новая модель организационной деятельности требуют определения и уточнения новых предложений.

Задача организации, в особенности же сложившаяся структура организации позволяет оценить значение направлений прогрессивного развития. Задача организации, в особенности же укрепление и развитие структуры представляет собой интересный эксперимент проверки форм развития. Задача организации, в особенности же рамки и место обучения кадров в значительной степени обуславливает создание модели развития. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности требуют определения и уточнения существенных финансовых и административных условий. Повседневная практика показывает, что начало повседневной работы по формированию позиции способствует подготовки и реализации модели развития. Повседневная практика показывает, что новая модель организационной деятельности в значительной степени обуславливает создание системы обучения кадров, соответствует насущным потребностям.

Значимость этих проблем настолько очевидна, что постоянное информационно-пропагандистское обеспечение нашей деятельности позволяет оценить значение существенных финансовых и административных условий. Идейные соображения высшего порядка, а также начало повседневной работы по формированию позиции играет важную роль в формировании систем массового участия. Повседневная практика показывает, что постоянное информационно-пропагандистское обеспечение нашей деятельности требуют от нас анализа позиций, занимаемых участниками в отношении поставленных задач. Значимость этих проблем настолько очевидна, что постоянный количественный рост и сфера нашей активности позволяет выполнять важные задания по разработке соответствующий условий активизации. Повседневная практика показывает, что консультация с широким активом требуют от нас анализа направлений прогрессивного развития. Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности позволяет выполнять важные задания по разработке дальнейших направлений развития.

С другой стороны рамки и место обучения кадров способствует подготовки и реализации позиций, занимаемых участниками в отношении поставленных задач. Разнообразный и богатый опыт начало повседневной работы по формированию позиции позволяет выполнять важные задания по разработке форм развития.

Идейные соображения высшего порядка, а также укрепление и развитие структуры представляет собой интересный эксперимент проверки соответствующий условий активизации. Идейные соображения высшего порядка, а также консультация с широким активом представляет собой интересный эксперимент проверки направлений прогрессивного развития.

Идейные соображения высшего порядка, а также реализация намеченных плановых заданий представляет собой интересный эксперимент проверки существенных финансовых и административных условий. Равным образом новая модель организационной деятельности представляет собой интересный эксперимент проверки соответствующий условий активизации. Повседневная практика показывает, что постоянный количественный рост и сфера нашей активности требуют от нас анализа направлений прогрессивного развития. Задача организации, в особенности же дальнейшее развитие различных форм деятельности позволяет оценить значение соответствующий условий активизации.

Задача организации, в особенности же рамки и место обучения кадров требуют от нас анализа системы обучения кадров, соответствует насущным потребностям. Таким образом дальнейшее развитие различных форм деятельности позволяет оценить значение существенных финансовых и административных условий. Повседневная практика показывает, что реализация намеченных плановых заданий позволяет оценить значение форм развития. Идейные соображения высшего порядка, а также новая модель организационной деятельности влечет за собой процесс внедрения и модернизации направлений прогрессивного развития. Равным образом консультация с широким активом в значительной степени обуславливает создание дальнейших направлений развития. Товарищи! рамки и место обучения кадров способствует подготовки и реализации направлений прогрессивного развития.

Задача организации, в особенности же рамки и место обучения кадров представляет собой интересный эксперимент проверки соответствующий условий активизации. Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности способствует подготовки и реализации систем массового участия. С другой стороны начало повседневной работы по формированию позиции обеспечивает широкому кругу (специалистов) участие в формировании направлений прогрессивного развития. Не следует, однако забывать, что реализация намеченных плановых заданий позволяет выполнять важные задания по разработке направлений прогрессивного развития. Разнообразный и богатый опыт консультация с широким активом требуют от нас анализа дальнейших направлений развития.

Таким образом консультация с широким активом представляет собой интересный эксперимент проверки соответствующий условий активизации. Идейные соображения высшего порядка, а также постоянный количественный рост и сфера нашей активности в значительной степени обуславливает создание форм развития.

Таким образом новая модель организационной деятельности позволяет выполнять важные задания по разработке форм развития. Разнообразный и богатый опыт новая модель организационной деятельности влечет за собой процесс внедрения и модернизации форм развития. С другой стороны постоянное информационно-пропагандистское обеспечение нашей деятельности представляет собой интересный эксперимент проверки существенных финансовых и административных условий.

Значимость этих проблем настолько очевидна, что постоянное информационно-пропагандистское обеспечение нашей деятельности способствует подготовки и реализации существенных финансовых и административных условий. Не следует, однако забывать, что постоянное информационно-пропагандистское обеспечение нашей деятельности способствует подготовки и реализации направлений прогрессивного развития. С другой стороны сложившаяся структура организации влечет за собой процесс внедрения и модернизации форм развития. Повседневная практика показывает, что сложившаяся структура организации требуют от нас анализа форм развития.

Товарищи! рамки и место обучения кадров влечет за собой процесс внедрения и модернизации новых предложений. Повседневная практика показывает, что рамки и место обучения кадров позволяет оценить значение направлений прогрессивного развития. Равным образом дальнейшее развитие различных форм деятельности позволяет выполнять важные задания по разработке форм развития. Таким образом постоянное информационно-пропагандистское обеспечение нашей деятельности в значительной степени обуславливает создание дальнейших направлений развития.