code: def decode(value: str) -> Union[str, None, bool, int, float]:
      
  
      assert value.isdigit() or value[0] == '-' and value[1:].isdigit()
  
      if -I32_BOUND <= int(value) < I32_BOUND:  # it's an i32: it is its own encoding
          return int(value)
      elif int(value) == I32_BOUND:
          return None
  
      (prefix, value) = (int(value[0]), int(value[1:]))
      ival = int(value) - I32_BOUND
      if ival == 0:
          return ''  # special case: empty string encodes as 2**31
      elif ival == 1:
          return False  # sentinel for bool False
      elif ival == 2:
          return True  # sentinel for bool True
  
      blen = ceil(log(ival, 16)/2)
      ibytes = unhexlify(ival.to_bytes(blen, 'big'))
      return DECODE_PREFIX.get(prefix, str)(ibytes.decode())
docs: Decode encoded credential attribute value.
  
      :param value: numeric string to decode
      :return: decoded value, stringified if original was neither str, bool, int, nor float