input: Write a function to find the maximum value within a nested dictionary. Define the function findMaxValue(dict) and use recursion to search through each level of the nested dictionary. Return the highest value found. 
  
  assert findMaxValue({
      "key1": {
          "value1": 10, 
          "value2": 20
      },
      "key2": {
          "value3": 40
      },
  })==40
  
  assert findMaxValue({
      "a": {
          "b": {
              "c": {
                  "d": 80
              }
          }
      }
  })==80
  
  assert findMaxValue({})==None
  
  assert findMaxValue({
      "k1": 50, 
      "k2": {"innerKey": 100}
  })==100
output: def findMaxValue(dict):
      max_value = None
      for key, value in dict.items():
          if isinstance(value, dict):
              nested_max = findMaxValue(value)
              if nested_max is not None:
                  if max_value is None or nested_max > max_value:
                      max_value = nested_max
          else:
              if max_value is None or value > max_value:
                  max_value = value
      return max_value