function transferFrom(
    address from,
    address to,
    uint256 value
  )
    public whenNotPaused
    returns (bool)
  {
    require(value <= _balances[from]);
    require(value <= _allowed[from][msg.sender]);
    require(to != address(0));
    uint256 time = getLockTokenTime(from);
    uint256 blockTime = block.timestamp;
    require(blockTime >time);
    _balances[from] = _balances[from].sub(value);
    _balances[to] = _balances[to].add(value);
    _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);
    emit Transfer(from, to, value);
    return true;
  }