code: def __preprocess_arguments(root):
      
      # Set the flags to require a value
      flags = ','.join(vsflags(VSFlags.UserValueRequired))
  
      # Search through the arguments
      arguments = root.getElementsByTagName('Argument')
  
      for argument in arguments:
          reference = __get_attribute(argument, 'Property')
          found = None
  
          # Look for the argument within the root's children
          for child in root.childNodes:
              # Ignore Text nodes
              if isinstance(child, Element):
                  name = __get_attribute(child, 'Name')
  
                  if name == reference:
                      found = child
                      break
  
          if found is not None:
              logging.info('Found property named %s', reference)
              # Get the associated switch
              switch = __get_attribute(argument.parentNode, 'Switch')
  
              # See if there is already a switch associated with the element.
              if __get_attribute(found, 'Switch'):
                  logging.debug('Copying node %s', reference)
                  clone = found.cloneNode(True)
                  root.insertBefore(clone, found)
                  found = clone
  
              found.setAttribute('Switch', switch)
              found.setAttribute('Flags', flags)
          else:
              logging.warning('Could not find property named %s', reference)
docs: Preprocesses occurrences of Argument within the root.
  
      Argument XML values reference other values within the document by name. The
      referenced value does not contain a switch. This function will add the
      switch associated with the argument.