function setAllocation(address _address, uint256 total_value, uint time, uint256 balanceRequire) public onlyOwner returns(bool) {
    uint256 sum = 0;
    sum = sum.add(balanceRequire);

    require(total_value >= sum);

    require(balances[msg.sender] >= sum);

    uint256 createTime;

    if(allocations[_address].length == 0){
      receiptors.push(_address);
    }

    bool find = false;

    for (uint j = 0; j < allocations[_address].length; j++) {
      if (allocations[_address][j].time == time) {
        allocations[_address][j].balance = allocations[_address][j].balance.add(balanceRequire);
        find = true;
        break;
      }
    }

    if (!find) {
      createTime = now;
      allocations[_address].push(TimeLock(time, balanceRequire, createTime));
    }

    bool result = super.transfer(_address, total_value);

    emit Transferred(msg.sender, _address, createTime, total_value, time);

    return result;
  }