code: def nic_v1(msg, NICs):
      
      if typecode(msg) < 5 or typecode(msg) > 22:
          raise RuntimeError(
              "%s: Not a surface position message (5<TC<8), \
              airborne position message (8<TC<19), \
              or airborne position with GNSS height (20<TC<22)" % msg
          )
  
      tc = typecode(msg)
      NIC = uncertainty.TC_NICv1_lookup[tc]
  
      if isinstance(NIC, dict):
          NIC = NIC[NICs]
  
      try:
          Rc = uncertainty.NICv1[NIC][NICs]['Rc']
          VPL = uncertainty.NICv1[NIC][NICs]['VPL']
      except KeyError:
          Rc, VPL = uncertainty.NA, uncertainty.NA
  
      return Rc, VPL
docs: Calculate NIC, navigation integrity category, for ADS-B version 1
  
      Args:
          msg (string): 28 bytes hexadecimal message string
          NICs (int or string): NIC supplement
  
      Returns:
          int or string: Horizontal Radius of Containment
          int or string: Vertical Protection Limit