def decode_vigenere_character(character, key):
    """
    Decode a single character according to the Vigenere cipher.
    Will maintain the case of the ciphertext character
    """
    a_value = ord('a') if character.islower() else ord('a')
    return chr((ord(character.lower()) - ord(key.lower())) % 26 + a_value)