code: def velocity(msg):
      
  
      if 5 <= typecode(msg) <= 8:
          return surface_velocity(msg)
  
      elif typecode(msg) == 19:
          return airborne_velocity(msg)
  
      else:
          raise RuntimeError("incorrect or inconsistant message types, expecting 4<TC<9 or TC=19")
docs: Calculate the speed, heading, and vertical rate
      (handles both airborne or surface message)
  
      Args:
          msg (string): 28 bytes hexadecimal message string
  
      Returns:
          (int, float, int, string): speed (kt), ground track or heading (degree),
              rate of climb/descend (ft/min), and speed type
              ('GS' for ground speed, 'AS' for airspeed)