code: def parse_template(input_filename, output_filename=''):
      
      data = load_input()
      with open(input_filename, 'rb') as file:
          template = file.read().decode("utf-8")
      
      # Check if 'input' in data
      if not 'input' in data:
          raise ValueError("Could not find 'input' in data")
      
      # Parse template
      for field in data['input']:
          subs = ["filename", "value"] if isinstance(data['input'][field], dict) and "filename" in data['input'][field] and "value" in data['input'][field] else [""]
          for sub in subs:
              displayed_field = field + (":" if sub else "") + sub
              regex = re.compile("@([^@]*)@" + displayed_field + '@([^@]*)@')
              for prefix, postfix in set(regex.findall(template)):
                  if sub == "value":
                      text = open(data['input'][field][sub], 'rb').read().decode('utf-8')
                  elif sub:
                      text = data['input'][field][sub]
                  else:
                      text = data['input'][field]
                  rep = "\n".join([prefix + v + postfix for v in text.splitlines()])
                  template = template.replace("@{0}@{1}@{2}@".format(prefix, displayed_field, postfix), rep)
      
      if output_filename == '':
          output_filename=input_filename
      
      # Ensure directory of resulting file exists
      try:
          os.makedirs(os.path.dirname(output_filename))
      except OSError as e:
          pass
  
      # Write file
      with open(output_filename, 'wb') as file:
          file.write(template.encode("utf-8"))
docs: Parses a template file
          Replaces all occurences of @@problem_id@@ by the value
          of the 'problem_id' key in data dictionary
          
          input_filename: file to parse
          output_filename: if not specified, overwrite input file