function canSpend(address tokenOwner, uint _value) public constant returns (bool success) {

        if (_value > balances[tokenOwner].balance) {return false;}     
        if (tokenOwner==address(0)) {return false;}                               

        if (tokenOwner==owner) {return true;}                                       
        if (_whitelistAll) {return true;}                                   
        if (balances[tokenOwner].airDropQty==0) {return true;}                      
        if (block.timestamp>1569974400) {return true;}                      

        
         if (block.timestamp < 1535760000) {return false;}

        
        if (block.timestamp < 1546214400 && (balances[tokenOwner].balance - _value) < (balances[tokenOwner].airDropQty / 10 * 9)) {
            return false;
        }

        
        if (block.timestamp < 1553990400 && (balances[tokenOwner].balance - _value) < balances[tokenOwner].airDropQty / 4 * 3) {
            return false;
        }

        
        if (block.timestamp < 1561852800 && (balances[tokenOwner].balance - _value) < balances[tokenOwner].airDropQty / 2) {
            return false;
        }

        
        if (block.timestamp < 1569974400 && (balances[tokenOwner].balance - _value) < balances[tokenOwner].airDropQty / 4) {
            return false;
        }
        
        return true;

    }