code: public static MutableFst readFstFromBinaryStream(ObjectInput in) throws IOException,
                                                                            ClassNotFoundException {
      int version = in.readInt();
      if (version < FIRST_VERSION && version > CURRENT_VERSION) {
        throw new IllegalArgumentException("cant read version fst model " + version);
      }
  
      MutableSymbolTable is = readStringMap(in);
      MutableSymbolTable os = readStringMap(in);
  
      MutableSymbolTable ss = null;
      if (in.readBoolean()) {
        ss = readStringMap(in);
      }
      return readFstWithTables(in, is, os, ss);
    }
docs: Deserializes an Fst from an ObjectInput
  
  @param in the ObjectInput. It should be already be initialized by the caller.