code: def icao(msg):
      
  
      DF = df(msg)
  
      if DF in (11, 17, 18):
          addr = msg[2:8]
      elif DF in (0, 4, 5, 16, 20, 21):
          c0 = bin2int(crc(msg, encode=True))
          c1 = hex2int(msg[-6:])
          addr = '%06X' % (c0 ^ c1)
      else:
          addr = None
  
      return addr
docs: Calculate the ICAO address from an Mode-S message
      with DF4, DF5, DF20, DF21
  
      Args:
          msg (String): 28 bytes hexadecimal message string
  
      Returns:
          String: ICAO address in 6 bytes hexadecimal string