<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def parse_metadata(lines):
 """Parse list of lines with metadata information from SOFT file. Args: lines (:obj:`Iterable`):
 Iterator over the lines. Returns: :obj:`dict`: Metadata from SOFT file. """

    meta = defaultdict(list)
    for line in lines:
        line = line.rstrip()
        if line.startswith("!"):
            if "_table_begin" in line or "_table_end" in line:
                continue
            key, value = __parse_entry(line)
            meta[key].append(value)

    return dict(meta)