import re


def parse_description(dsc):
    """
    Parse the given string into a hash.
    The string format is `key: value`,
    where key gets converted to upper case
    and value extends until a new line.
    A special last field `Abstract:` extends until the end of string.
    """
    meta, abstract = re.split('abstract:\s*\n*', dsc, flags=re.I)
    ret = {'ABSTRACT': abstract}
    for line in meta.splitlines():
        if ':' in line:
            key, value = re.split('\s*:\s*', line, 1)
            key = key.upper()
            ret[key] = value
    return ret