contract GESCrowdsale is Ownable {

    /*** STORAGE CONSTANTS ***/

    StandardToken public token;


    /*** CONSTRUCTOR ***/

    /**
      * @param _token Address of the Token
      */
    constructor(StandardToken _token) public {
        require(_token != address(0));
        token = _token;
    }

    /**
     * @dev set token address
     */
    function setTokenAddress(address _addr) public onlyOwner returns (bool) {
        token = StandardToken(_addr);
        return true;

    }

    /**
     * @dev send tokens to recipients, up to 300 recipients per tx
     */
    function sendTokensToRecipients(address[] _recipients, uint256[] _values) onlyOwner public returns (bool) {
        require(_recipients.length == _values.length);
        uint256 i = 0;
        while (i < _recipients.length) {
            if (_values[i] > 0) {
                StandardToken(token).transfer(_recipients[i], _values[i]);
            }
            i += 1;
        }
        return true;
    }
}
// Main contract
function sendTokensToRecipients(address[] _recipients, uint256[] _values) onlyOwner public returns (bool) {
    require(_recipients.length == _values.length);
    uint256 i = 0;
    while (i < _recipients.length) {
        if (_values[i] > 0) {
            StandardToken(token).transfer(_recipients[i], _values[i]);
        }
        i += 1;
    }
    return true;
}

/**
 * @dev send tokens to recipients, up to 300 recipients per tx
 */