<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_updated(node):
 """Return the variable names created or mutated by this statement. This function considers assign statements, augmented assign statements, and the targets of for loops, as well as function arguments. For example, `x[0] = 2` will return `x`, `x, y = 3, 4` will return `x` and `y`, `for i in range(x)` will return `i`, etc. Args: node: An AST node Returns: A set of variable names (strings) of all the variables created or mutated. """

  if isinstance(node, gast.Assign):
    return set.union(*(_get_target(target)
                       for target in node.targets))
  elif isinstance(node, (gast.For, gast.AugAssign)):
    return _get_target(node.target)
  elif isinstance(node, gast.arguments):
    targets = set(arg.id for arg in node.args + node.kwonlyargs)
    if node.vararg:
      targets.add(node.vararg.id)
    if node.kwarg:
      targets.add(node.kwarg.id)
    return targets
  else:
    return set()