from typing import Dict
from typing import Mapping


def deep_update(original: Dict, updates: Mapping) -> Dict:
    """
    Update a nested dictionary with new values, leaving unupdated values in place.
    Modifies original in place.

    :param original: the dictionary whose values will be updated
    :param updates: the dictionary with the values to you want to insert into original
    """
    for key, value in updates.items():
        if isinstance(value, Mapping) and value:
            returned = deep_update(original.get(key, {}), value)
            original[key] = returned
        else:
            original[key] = updates[key]
    return original