func: function buyTokens(address beneficiary) public payable {
          require(beneficiary != address(0));
          require(validPurchase());
  
          uint256 weiAmount = msg.value;
  
          
          uint256 tokens = weiAmount.mul(rate);
          
          if (block.timestamp < presaleEnd) tokens = tokens.mul(100).div(75);
  
          
          weiRaised = weiRaised.add(weiAmount);
  
          token.transfer(beneficiary, tokens);
          TokenPurchase(msg.sender, beneficiary, weiAmount, tokens);
  
          forwardFunds();
      }