  function allocateTokenByType(address accountAddress,uint256 amount,uint8 roleType) onlyOwner public {
    require(accountAddress != address(0x0), "accountAddress not right");
    require(roleType <=5 ,"roleType must be 0~5");
    require(now < beginTime ,"beginTime <= now, so can not set");
    amount = amount.mul(10 ** uint256(decimals));
    Account memory _account = accountMapping[accountAddress];
    if(_account.ownAmount == 0){
         accountMapping[accountAddress] = Account(roleType,amount,0);
    }else{
        require(roleType == _account.roleType ,"roleType must be same!");
        accountMapping[accountAddress].ownAmount = _account.ownAmount.add(amount);
        accountMapping[accountAddress].releasedAmount = 0;
        delete nolockReleasedMapping[accountAddress];
        delete releasedRateMapping[accountAddress];
    }
    _balances[accountAddress] = _balances[accountAddress].add(amount);
    _balances[msg.sender] = _balances[msg.sender].sub(amount);
    if(roleType == 1){
        role1_balance = role1_balance.sub(amount);
    }
    releaseToken(accountAddress);
  }