code: def fsn2norm(path):
      
  
      native = _fsn2native(path)
  
      if is_win:
          return _decode_surrogatepass(
              native.encode("utf-16-le", _surrogatepass),
              "utf-16-le")
      elif PY3:
          return bytes2fsn(native, None)
      else:
          return path
docs: Args:
          path (fsnative): The path to normalize
      Returns:
          `fsnative`
  
      Normalizes an fsnative path.
  
      The same underlying path can have multiple representations as fsnative
      (due to surrogate pairs and variable length encodings). When concatenating
      fsnative the result might be different than concatenating the serialized
      form and then deserializing it.
  
      This returns the normalized form i.e. the form which os.listdir() would
      return. This is useful when you alter fsnative but require that the same
      underlying path always maps to the same fsnative value.
  
      All functions like :func:`bytes2fsn`, :func:`fsnative`, :func:`text2fsn`
      and :func:`path2fsn` always return a normalized path, independent of their
      input.